//____________________________________________________________________
//
// Plot overlayed or stacked MC histograms with DATA on top
//
// * The same binning for all histograms is required
// * Until now only 1d histograms are supported
//
// For drawing the histograms in grouped/ungrouped mode use
// SetGroupHistograms(). All MC stack histograms can be unified into a
// single-coloured histogram by SetUnifyMCStack().
//
// The total statistical uncertainty of the MC can be shown by using
// SetDrawMCError(). The errors are displayed as a rectangular hatched
// area on top of each bin.
//
// Usually the error per bin for the DATA histogram as well as for the
// total MC stack is computed as sqrt(sum of squares of weight) for
// each bin, which is ROOT's standard error handling for
// histograms. For verly low entry numbers inside a bin such kind of
// errors are not valid any more since the error function becomes more
// and more poissonic and the entry number is bound to be larger equal
// than zero which results in asymmetric error bars and in non-zero
// errors for bins without any entry. To obtain a better description,
// for entry numbers less then 33 the upper and lower confidence
// limits are estimated for a confidence level of 68% by the method of
// Feldman and Cousins (see the class TFeldmanCousins or the
// Statistics Review of the Particle Data Group). This method provides
// a smooth transition from the symmetric gaussian errors for large
// entry numbers to the completely asymmetric errors for zero-entry
// bins. This gives a realistic description of the uncertainties,
// however it slows down the speed of drawing the histograms. The
// limitt of 33 entries was chosen to have a fair trade-off between a
// good description and the time needed for drawing.
//
//
// Fitter:
// The plot gives the possibility to fit the MC distributions to the
// data distribution. This is done using the TFractionFitter class
// contained in ROOT.
// Starting from your plot object HepDataMCPlot *pl, the fit can be easily
// performed. First start with:
// pl->PrepareFit();
// This creates the needed HepTemplate objects. Folders are treated as one
// template per default. If you want to have all samples as single templates,
// use pl->PrepareFit(kTRUE);
// If you want you can specify start values for the template fractions
// pl->SetTemplateStartValue(template_name,initValue,initErr);
// and/or bounds:
// pl->SetTemplateBounds(template_name,low,up);
// The functions pl->ListFolders() and pl->ListSingleSamples() list all
// folders and single samples contained in the plot. Their names are used
// for the naming of the template objects.
// The fit is started by:
// pl->Fit();
// The function returns the value 0, if the fit converged.
// You can list all obtained fractions by
// pl->ListTemplateFractions();
// or get a fraction of a specific template:
// pl->GetTemplateFitFraction(template_name);
// Note that the fit uses only non-empty histograms. Templates for empty
// histograms are not created.
// Finally you can plot the data together with the fitted MC as stacked
// histogram by:
// pl->DrawFit();
//
// Author: Oliver Maria Kind <mailto: kind@mail.desy.de>
// Update: $Id: HepDataMCPlot.cxx,v 1.73 2017/05/12 13:38:47 kaphle Exp $
// Copyright: 2009 (C) Oliver Maria Kind
//
#ifndef HEP_HepDataMCPlot
#include <HepDataMCPlot.h>
#endif
#include <HepTemplate.h>
#include <TList.h>
#include <TObjString.h>
#include <HepDataMCSample.h>
#include <TStyle.h>
#include <TBrowser.h>
#include <TPad.h>
#include <iostream>
#include <TObjectTable.h> 
#include <TLegendEntry.h>
#include <TFeldmanCousins.h>
#include <TFractionFitter.h>
#include <TVirtualFitter.h>
#include <Fit/Fitter.h>
#include <TSystem.h>
#include <TROOT.h>
#include <TMath.h>

#include <TLatex.h>
#include <TPave.h>
#include <cmath>
#include <TLine.h>
#include <TMarker.h>
#include <TH1.h>

#include "Math/Math.h"
#include "Math/SpecFuncMathCore.h"
#include "Math/QuantFuncMathCore.h"


using namespace std;

#ifndef __CINT__
ClassImp(HepDataMCPlot);
#endif

static TFeldmanCousins fgFC(0.680);

static Double_t fgFCHigherCache[33] = {1.28,2.755,4.255,5.305,6.78,7.81,9.28,10.305,11.32,12.795,13.81,14.82,16.295,17.305,18.32,19.325,20.8,21.81,22.82,23.825,25.305,26.31,27.32,28.325,29.33,30.805,31.815,32.82,33.825,34.83,36.24,37.315,38.32};
static Double_t fgFCLowerCache[33] = {0,0.37,0.74,1.105,2.34,2.755,3.825,4.255,5.305,6.335,6.78,7.81,8.83,9.28,10.305,11.32,12.335,12.795,13.81,14.82,15.835,16.295,17.305,18.32,19.325,20.335,20.8,21.81,22.82,23.825,24.835,25.305,26.31};


//____________________________________________________________________

HepDataMCPlot::HepDataMCPlot() {
    //
    // Default constructor
    //
    fMCHistStack = 0;
    fLegend = 0;
    fLegendLarge = 0;
    fXTitle = 0;
    fYTitle = 0;
    fMCFolders = 0;
    fMCSingleSamples = 0;
    fMCErrors  = 0;
    fMCFittedHistStack = 0;
    fGraphDATA = 0;
    fDrawData = kTRUE;
    fDrawDataErrorX = kTRUE;
    fAddRange = 1.1;
    fRatioHeight = 0.4;
    fRatioLine = 0;
    fUseShortCMSLumiLabel = kTRUE;
    fHistogramLastInStack = 0;
    fFirstDraw = kTRUE;
}

//____________________________________________________________________

HepDataMCPlot::HepDataMCPlot(const char* name, const char* title) :
    TNamed(name, title) {
    //
    // Normal constructor
    //
    fHistDATA = 0;
    fMCHistStack = new THStack(Form("hstack_%s", name), title);
    fLegend = new TLegend(0.59, 0.42, 0.90, 0.86);
    // fLegend = new TLegend(0.54, 0.42, 0.86, 0.86); // 0.59 .. 0.90
    fLegendLarge = 0;
    fFirstDraw = kTRUE;
    fFirstLegend = kTRUE;
    fXTitle = new TString;
    fYTitle = new TString;
    fN_MCHistograms = 0;
    fMCFolders = 0;
    fMCSingleSamples = 0;
    fGroupHistograms = kTRUE;
    fUnifyMCStack = kFALSE;
    fDrawMCError  = kFALSE;
    fDrawNormError  = kFALSE;
    fDrawData = kTRUE;
    fDrawDataErrorX = kTRUE;
    fDrawDataZeroEntryErrors = kTRUE;
    fDrawDataZeroEntries = kTRUE;
    fUseOverflowUnderflow = kTRUE;
    fMCErrors  = 0;
    fGraphDATA = 0;
    fMCFitTemplates = 0;
    fFitter = 0;
    fMCFittedHistStack = 0;
    fDrawCMSLumiAtlasLabel = kTRUE;
    fUseShortCMSLumiLabel = kTRUE;
    fUseAtlasStyle = kTRUE;
    fAtlasLabelStatus = "Internal";
    fCenterOfMassEnergyLabel = "7";
    fLuminosityLabel = "4.7 fb^{-1}";
    fAtlasLabelPosX      = 0.56;
    // fAtlasLabelPosX      = 0.51;
    fAtlasLabelPosY      = 0.88;
    fCMSEnergyLabelPosX  = 0.20;
    fCMSEnergyLabelPosY  = 0.79;
    fLuminosityLabelPosX = 0.20;
    fLuminosityLabelPosY = 0.85;
    fYRangeUser = kFALSE;
    fDrawDataMCRatio  = kTRUE;
    fDataMCRatioCenterOne  = kFALSE;
    fDrawSignificance = kFALSE;
    fCanvas    = 0;
    fMainPad   = 0;
    fRatioPad1 = 0;
    fRatioPad2 = 0;
    fRatioHeight = 0.4;
    fHistogramMainPad   = 0;
    fHistogramRatioPad1 = 0;
    fHistogramRatioPad2 = 0;
    fRatioLine = 0;
    fHistogramLastInStack = 0;
    fScaleOverlay = 1.;
    fDrawSignalOverlay = kTRUE;
}

//____________________________________________________________________

HepDataMCPlot::~HepDataMCPlot() {
    //
    // Default destructor
    //
    if ( fMCHistStack != 0 ) { 
	if ( fMCHistStack->GetHists() != 0 ) fMCHistStack->GetHists()->Delete();  
	delete fMCHistStack; 
    }
    if ( fLegend      != 0 ) delete fLegend;
    if ( fLegendLarge != 0 ) delete fLegendLarge;
    if ( fXTitle      != 0 ) delete fXTitle;
    if ( fYTitle      != 0 ) delete fYTitle;  
    fHistDATA = 0;
    if ( fMCFolders != 0 ) {
//	fMCFolders->Delete();
	delete fMCFolders;
    }
}

//____________________________________________________________________

void HepDataMCPlot::SetHistDATA(TH1F *h, const char* label = "Data",
				Float_t lumiData = 1.) {
    //
    // Set DATA histogram
    //
      
    fHistDATA = h;
    fHistDATA->SetName(Form("%s_data", h->GetName()));
    fHistDATA->SetTitle(label);

    fLumiDATA = lumiData;
}

//____________________________________________________________________

void HepDataMCPlot::AddHistMC(TH1F *h, HepDataMCSample *sample) {
    //
    // Add MC histogram to stack
    //
    fMCHistStack->Add(h);
    sample->SetHistogram(h);
    h->SetName(Form("%s_mc%d", h->GetName(), fN_MCHistograms++));
    h->SetTitle(sample->GetLabel());
    h->SetLineColor(gStyle->GetHistLineColor());
    h->SetLineStyle(sample->GetLineStyle());
    h->SetLineWidth(sample->GetLineWidth());
    h->SetFillColor(sample->GetColor());
    h->SetFillStyle(sample->GetFillStyle());
    fLegend->AddEntry(h, sample->GetLabel(), "F");
}

//____________________________________________________________________

void HepDataMCPlot::AddHistMC(TH1F *h, HepDataMCFolder *folder,
			      HepDataMCSample *sample) {
    //
    // Add grouped MC histogram to stack
    //
    AddHistMC(h, sample);
    // Grouped legend ?
}

//____________________________________________________________________

void HepDataMCPlot::Draw(Option_t *option) {
    //
    // Draw this object
    // - by default, two pads are drawn, one for the stack and one for
    //   the significance. Best results are obtained if drawn in a
    //   Canvas of specified height and width (with default config)
    // 
    //               width      height
    //   No ratio:    700         500
    //    1 ratio:    700         633
    //    2 ratio:    700         765
    //
    //
    // Options available:
    //   "NOSTACK" - Overlay MC histograms rather than stack them
    //   "NOLEG"   - Do not draw a legend
    //   "NORM"    - Normalize the plots to Integral of 1 in case of "nostack" option. Use the option like hist->Draw("nostack,norm").
    //   !!!ATTENTION!!! The histograms are scaled after the option "norm". You have to close root and restart it to get again the unnormalized plots
    //
    
    // Convert option string
    TString opt = option;
    opt.ToLower();

    // Setup ATLAS style
    if ( fUseAtlasStyle ) SetAtlasStyle();
    
    // Option: Draw Data
    if ( opt.Contains("nodata") )
	fDrawData = kFALSE;

    // Option: Unstacked?
    Bool_t nostack = opt.Contains("nostack");
    if ( nostack  || !fDrawData || fHistDATA == 0 ) {
	// No ratios in this case
	fDrawDataMCRatio  = kFALSE;
	fDrawSignificance = kFALSE;
    }
	
    // Flag: Overflow/Underflow
    if ( fUseOverflowUnderflow ) {
	// DATA
	if ( fHistDATA != 0 )
	    AddOverflowUnderflowBins(fHistDATA);
	
	// MC
	TH1F *h_mc = 0;
	TIter next_hist(fMCHistStack->GetHists());
	while ( (h_mc = (TH1F*)next_hist()) )
	    AddOverflowUnderflowBins(h_mc);

	// The stack needs modifications if it was already created
	// e.g. by rebinning or scaling the plot
	fMCHistStack->Modified();
    }
    

    // Flag: ATLAS, CMS, Lumi label
    // Add some more space in case of drawing ATLAS labels
    if ( fDrawCMSLumiAtlasLabel ) fAddRange = 1.3;

    // All options are set
    // --> now do the pad configuration
    SetupPad();

    
    // Clear all axis titles beside the one to draw
    TH1F *h_mc = 0; 
    TIter next_hist(fMCHistStack->GetHists());

    // Remove all other titles    
    while ( (h_mc = (TH1F*)next_hist()) ) {
	   h_mc->SetXTitle(""); 
	   h_mc->SetYTitle("");
	   h_mc->SetLabelSize(0., "X");
    }
    
    // Stacked or unstacked
    if ( nostack ) {
	DrawNoStack(opt.Data());
	fDrawMCError = kFALSE; // no mc error needed
    } else {
	DrawStack(opt.Data());
    }

    // Draw ratio plot
    if ( fDrawDataMCRatio ) {
	DrawDataMCRatio();
    }

    // Draw significance plot
    if ( fDrawSignificance ) {
	DrawSignificance();
    }

    // Draw legend
    if ( !opt.Contains("noleg") ) {
	DrawLegend();
    }
    fCanvas->cd();
    
    // Draw Atlas label, CMS and Lumi
    if (fDrawCMSLumiAtlasLabel) {
	fMainPad->cd();
	DrawATLASLabel(fAtlasLabelPosX,
		       fAtlasLabelPosY,
		       fAtlasLabelStatus);
	if ( fUseShortCMSLumiLabel ) {
	    DrawTextLatex(fCMSEnergyLabelPosX,
			  fCMSEnergyLabelPosY,
			  1, "#sqrt{s} = "+fCenterOfMassEnergyLabel+" TeV, "+fLuminosityLabel);
	} else {
	    DrawTextLatex(fCMSEnergyLabelPosX,
			  fCMSEnergyLabelPosY,
			  1
			  ,"#sqrt{s} = "+fCenterOfMassEnergyLabel+" TeV");
	    
	    DrawTextLatex(fLuminosityLabelPosX,
			  fLuminosityLabelPosY, 1,
			  "#int Ldt = "+fLuminosityLabel); 
	}
    }

    // Setup Axis
    SetupAxis();
    
    // go back to the original pad / canvas
    fCanvas->cd();
    fCanvas->Update();

    if ( fFirstDraw ) fFirstDraw = kFALSE;
}

//____________________________________________________________________

TString HepDataMCPlot::GetPathInsideFile(TDirectory *dir) {
    //
    // Strip filesystem path from the full path of the given directory
    //
    TString path(dir->GetPath());
    TObjArray *tokens = path.Tokenize(":");
    if ( tokens->GetEntries() < 2 ) return "";
    TString PathInsideFile = ((TObjString*)tokens->At(1))->GetString().Copy();
    tokens->Delete();
    return PathInsideFile;
}

//____________________________________________________________________

void HepDataMCPlot::SetXTitle(const char* title) {
    //
    // Set title of x-axis
    //
    fXTitle->Remove(0);
    fXTitle->Append(title);
    if ( gPad != 0 ) {
	TIter next(gPad->GetListOfPrimitives());
	TObject *obj = 0;
	while ( (obj = next()) ) {
	    TString objname(obj->GetName());
	    if ( objname.Contains(GetName()) ) {
		if ( obj->InheritsFrom("THStack") ) {
		    ((THStack*)obj)->GetXaxis()->SetTitle(title);
		}
		if ( obj->InheritsFrom("TH1F") ) {
		    ((TH1F*)obj)->SetXTitle(title);
		}
	    }
	}
	gPad->Modified();
	gPad->Update();
    }
}

//____________________________________________________________________

void HepDataMCPlot::SetYTitle(const char* title) {
    //
    // Set title of y-axis
    //
    fYTitle->Remove(0);
    fYTitle->Append(title);
    if ( gPad != 0 ) {
	TIter next(gPad->GetListOfPrimitives());
	TObject *obj = 0;
	while ( (obj = next()) ) {
	    TString objname(obj->GetName());
	    if ( objname.Contains(GetName()) ) {
		if ( obj->InheritsFrom("THStack") ) {
		    ((THStack*)obj)->GetYaxis()->SetTitle(title);
		}
		if ( obj->InheritsFrom("TH1F") ) {
		    ((TH1F*)obj)->SetYTitle(title);
		}
	    }
	}
	gPad->Modified();
	gPad->Update();
    }
}

//____________________________________________________________________

void HepDataMCPlot::SetXRange(Double_t xmin, Double_t xmax) {
    //
    // Set range of x-axis
    //
    if ( fCanvas != 0 ) {
	if ( fMainPad != 0 )
	    SetXRange(fMainPad, xmin, xmax);
	if ( fRatioPad1 != 0 ) {
	    SetXRange(fRatioPad1, xmin, xmax);
	    // Update line in ratio
	    if ( fRatioLine != 0 ) {
		fRatioLine->SetX1(xmin);
		fRatioLine->SetX2(xmax);
	    }
	}
	if ( fRatioPad2 != 0 )
	    SetXRange(fRatioPad2, xmin, xmax);
	fCanvas->Modified();
	fCanvas->Update();
    }
}

//____________________________________________________________________

void HepDataMCPlot::SetXRange(TPad *pad, Double_t xmin, Double_t xmax) {
    //
    // Set range of x-axis
    //
    TIter next(pad->GetListOfPrimitives());
    TObject *obj = 0;
    while ( (obj = next()) ) {
	if ( obj->InheritsFrom("THStack") ) {
	    ((THStack*)obj)->GetXaxis()->SetRangeUser(xmin, xmax);
	}
	if ( obj->InheritsFrom("TH1") ) {
	    ((TH1*)obj)->GetXaxis()->SetRangeUser(xmin, xmax);
	}
    }
    pad->Modified();
    pad->Update();
}

//____________________________________________________________________

void HepDataMCPlot::SetYRange(Double_t ymin, Double_t ymax) {
    //
    // Set range of y-axis
    //
    // Needs to be called before plot is drawn!    
    //
    fYRangeUser = kTRUE;
    fYRangeUserMin = ymin;
    fYRangeUserMax = ymax;
}

//____________________________________________________________________

void HepDataMCPlot::SetYRangeRatio(Double_t ymin, Double_t ymax, Int_t ratio) {
    //
    // Set range of y-axis of ratio plot
    //
    // Needs to be called before plot is drawn!    
    //
    if ( ratio == 1 && fRatioPad1 != 0
	 && (fDrawDataMCRatio || fDrawSignificance)) {
	fHistogramRatioPad1->GetYaxis()->SetRangeUser(ymin, ymax);
	fRatioPad1->Modified();
	fRatioPad1->Update();    
    } else if ( ratio == 2 && fRatioPad2 != 0
		&& (fDrawDataMCRatio && fDrawSignificance)) {
	fHistogramRatioPad2->GetYaxis()->SetRangeUser(ymin, ymax);
	fRatioPad2->Modified();
	fRatioPad2->Update();    
    } else {
	Error("SetYRangeRatio", "Ratio plot not available!");
    }
}

//____________________________________________________________________

void HepDataMCPlot::SetNdivisionsX(Int_t n, Bool_t optim) {
    //
    // Set no. of X axis divisions
    //
    if ( gPad != 0 ) {
	fMCHistStack->GetXaxis()->SetNdivisions(n, optim);
	gPad->Modified();
	gPad->Update();
    }
}

//____________________________________________________________________

void HepDataMCPlot::SetNdivisionsY(Int_t n, Bool_t optim) {
    //
    // Set no. of Y axis divisions
    //
    if ( gPad != 0 ) {
	fMCHistStack->GetYaxis()->SetNdivisions(n, optim);
	gPad->Modified();
	gPad->Update();
    }
}  

//____________________________________________________________________

void HepDataMCPlot::Browse(TBrowser *b) {
    // 
    // Browse plotter in TBrowser
    //
    Draw(b ? b->GetDrawOption() : "");
    gPad->Update();
}

//____________________________________________________________________

void HepDataMCPlot::DrawLegend() {
    //
    // Draw legend
    //
    // In case of gswitched on grouping of histograms only the group
    // entries but not the entries inside the groupe will be displayed
    //

    // Choose main pad to draw
    TPad *padsav = (TPad*)gPad;
    fMainPad->cd();
    
    // =============
    // Update legend
    // =============
    fLegend->Clear();

    // Adjust legend position
    // cout << fLegend->GetX1NDC() << endl;
    // cout << fLegend->GetX1NDC() + 0.05 - gStyle->GetPadRightMargin() << endl;
    // fLegend->SetX1( fLegend->GetX1NDC() + 0.05 - gStyle->GetPadRightMargin());
    // fLegend->SetX2( fLegend->GetX2NDC() + 0.05 - gStyle->GetPadRightMargin());

    fLegend->SetFillColor(0);
    fLegend->SetFillStyle(0);
    fLegend->SetLineColor(0);
    fLegend->SetBorderSize(0);

    // Add DATA
    if ( (fHistDATA != 0) && fDrawData ) {
	fLegend->AddEntry(fHistDATA, fHistDATA->GetTitle(), "P");
    }

    // In case of a unified MC stack do not specify the MC samples
    if ( fUnifyMCStack == kTRUE ) {
	fLegend->AddEntry(fHistMCTop, "MC", "F");
    } else {
	// Use this list to determine what the un-grouped MC histograms
	// are
	TList *hists_to_draw = new TList;
	hists_to_draw->AddAll(fMCHistStack->GetHists());
	
	// Add all grouped histograms
	TH1F *h_mc = 0;
	if ( fGroupHistograms == kTRUE ) {
	    TIter next_folder(fMCFolders, kIterBackward);
	    HepDataMCFolder *folder = 0;
	    while ( (folder = (HepDataMCFolder*)next_folder()) ) {
		HepDataMCSample *sample = 0;
		TIter next_sample(folder->GetMCSamples(), kIterBackward);
		while ( (sample = (HepDataMCSample*)next_sample()) ) {
		    h_mc = sample->GetHistogram();
		    hists_to_draw->Remove(h_mc);
		    if ( sample == folder->GetMCSamples()->Last() ) {
			TString label = folder->GetTitle();
			if ( fDrawSignalOverlay && h_mc == fHistogramLastInStack
			     && fScaleOverlay != 1. ) {
			    // Change label in case of scaled overlay
			    label.Append(Form(" #times %-.0f", fScaleOverlay));
			}
			fLegend->AddEntry(h_mc, label, "F");
		    }
		}
	    }
	}
	
	// Add the (remaining) un-grouped histograms
	TIter next_ungrouped_hist(hists_to_draw, kIterBackward);
	while ( (h_mc = (TH1F*)next_ungrouped_hist()) ) {
	    TString label = h_mc->GetTitle();
	    if ( fDrawSignalOverlay && h_mc == fHistogramLastInStack
		 && fScaleOverlay != 1. ) {
		// Change label in case of scaled overlay
	    	label.Append(Form(" #times %-.0f", fScaleOverlay));
	    }
	    fLegend->AddEntry(h_mc, label, "F");
	}
	delete hists_to_draw;
    }

    if ( fDrawMCError && fDrawNormError ) {
	fLegend->AddEntry(fMCErrors, "MC + Norm. Uncertainty", "f" );
    } else if ( fDrawMCError ) {
	fLegend->AddEntry(fMCErrors, "MC Uncertainty", "f" );
    }
    
    // Draw
    if ( fFirstLegend ) {
    	fFirstLegend = kFALSE;
    	fLegend->Paint();
    }
    fLegend->Draw();
    padsav->cd();
}

//____________________________________________________________________

void HepDataMCPlot::DrawLegendPad() {
    //
    // Draw enlarged legend clone into the current pad.
    // The pad is cleaned before
    //
    if ( fLegendLarge != 0 ) delete fLegendLarge;  
    fLegendLarge = (TLegend*)fLegend->Clone();  
    fLegendLarge->SetX1NDC(0.);
    fLegendLarge->SetX2NDC(1.);
    fLegendLarge->SetY1NDC(0.);
    fLegendLarge->SetY2NDC(1.);
    fLegendLarge->SetX1(0.);
    fLegendLarge->SetX2(1.);
    fLegendLarge->SetY1(0.);
    fLegendLarge->SetY2(1.);
    if ( gPad ) gPad->Clear();
    fLegendLarge->Draw();
    gPad->Modified();
    gPad->Update();
}

//____________________________________________________________________

void HepDataMCPlot::SetGroupHistograms(Bool_t GroupHistograms) {
    //
    // Switch grouping of histograms on or off
    //
    fGroupHistograms = GroupHistograms;
    if ( gPad ) {
	Draw();
	gPad->Update();
    }
}

//____________________________________________________________________

Int_t HepDataMCPlot::DistancetoPrimitive(Int_t px, Int_t py) {
    //
    // Compute distance from point px,py
    //
    const Int_t kMaxDist = 10;
    Int_t dist = 99999;
    
    // Are we on the axis ?
    TH1 *h = fMCHistStack->GetHistogram();
    if ( h != 0 ) dist = h->DistancetoPrimitive(px, py);

    // Are we at the DATA histogram or the topmost MC histogram ?
    Int_t distt = 99999;
    if ( fHistDATA != 0 ) {
	distt = fHistDATA->DistancetoPrimitive(px, py);
	if ( distt < dist ) dist = distt;
    }
    h = (TH1*)fMCHistStack->GetStack()->Last();
    distt = h->DistancetoPrimitive(px, py);
    if ( distt < dist ) dist = distt;

    // Is this object being selected ?
    if ( dist < kMaxDist ) {
	gPad->SetSelected(this);
	gPad->SetCursor(kPointer);
    }
    
    return dist;
}

//____________________________________________________________________

void HepDataMCPlot::SetUnifyMCStack(Bool_t UnifyMCStack) {
    //
    // Draw all histograms of the MC stack
    //
    SetUnifyMCStack(UnifyMCStack, kTRUE);
}

//____________________________________________________________________

void HepDataMCPlot::SetUnifyMCStack(Bool_t UnifyMCStack, Bool_t DoRedraw) {
    //
    // Draw all histograms of the MC stack
    //
    fUnifyMCStack = UnifyMCStack;
    if ( DoRedraw == kTRUE ) {
	Draw();
	gPad->Update();
    }
}

//____________________________________________________________________

void HepDataMCPlot::SetDrawData(Bool_t DrawData) {
    //
    // Draw DATA histogram
    //
    fDrawData = DrawData;
    if ( gPad ) {
	Draw();
	gPad->Update();
    }
}

//____________________________________________________________________

void HepDataMCPlot::SetDrawDataMCRatio(Bool_t DrawDataMCRatio) {
    //
    // Draw DATA MC ratio
    //
    fDrawDataMCRatio = DrawDataMCRatio;
    if ( gPad ) {
	Draw();
	gPad->Update();
    }
}

//____________________________________________________________________

void HepDataMCPlot::SetDrawSignificance(Bool_t DrawSignificance) {
    //
    // Draw Significance
    //
    fDrawSignificance = DrawSignificance;
    if ( gPad ) {
	Draw();
	gPad->Update();
    }
}

//____________________________________________________________________

void HepDataMCPlot::SetDataMCRatioCenterOne(Bool_t DataMCRatioCenterOne) {
    //
    // Draw Significance
    //
    fDataMCRatioCenterOne = DataMCRatioCenterOne;
    if ( gPad ) {
	Draw();
	gPad->Update();
    }
}

//____________________________________________________________________

void HepDataMCPlot::SetDrawMCError(Bool_t DrawMCError) {
    //
    // Draw MC error band
    //
    SetDrawMCError(DrawMCError, kTRUE);
}

//____________________________________________________________________

void HepDataMCPlot::SetDrawNormError(Bool_t DrawNormError) {
    //
    // Include normalisation uncertainties in error band
    //
    fDrawNormError = DrawNormError;
}

//____________________________________________________________________

void HepDataMCPlot::SetDrawDataZeroEntryErrors(Bool_t DrawDataZeroEntryErrors) {
    //
    // Draw the Data error bars even for 0 data entry bins
    //
    fDrawDataZeroEntryErrors = DrawDataZeroEntryErrors;
    if ( gPad ) {
	Draw();
	gPad->Update();
    }
}

//____________________________________________________________________

void HepDataMCPlot::SetDrawDataZeroEntries(Bool_t flag) {
    //
    // Draw the marker for bins with no data
    //
    fDrawDataZeroEntries = flag;
    if ( gPad ) {
	Draw();
	gPad->Update();
    }
}

//____________________________________________________________________

void HepDataMCPlot::SetDrawMCError(Bool_t DrawMCError, Bool_t DoRedraw) {
    //
    // Draw MC error band
    //
    fDrawMCError = DrawMCError;
    if ( DoRedraw == kTRUE ) {
	Draw();
	gPad->Update();
    }
}

//____________________________________________________________________

void HepDataMCPlot::SetUseOverflowUnderflow(Bool_t UseOverflowUnderflow) {
    //
    // Add overflow to last bin and underflow to first bin 
    //
    fUseOverflowUnderflow = UseOverflowUnderflow;
    if ( gPad ) {
     	Draw();
	gPad->Update();
    }
}

//____________________________________________________________________

TGraphAsymmErrors* HepDataMCPlot::SetErrors(TH1F *hist,
					    Bool_t IsData,
					    Option_t *option) {
    //
    // Internal helper function.
    //
    // Creates the graph for drawing (asymmetric) errors. For large
    // entries numbers the errors are taken from the given histogram
    // (as well as the xy-positions). For low numbers (<33) the errors
    // are estimated by the FeldmanCousins method.
    //
    TString opt = option;
    Double_t y = 0.;
    Double_t ey_lo = 0.;
    Double_t ey_up = 0.;

    Double_t stat_ey_lo = 0.;
    Double_t stat_ey_up = 0.;
    Double_t norm_ey_lo = 0.;
    Double_t norm_ey_up = 0.;

    // Create graph
    TGraphAsymmErrors *ErrorGraph = new TGraphAsymmErrors(hist->GetNbinsX());

    // Set graph positions and errors for each histogram bin
    // i   = number of the point of the graph (starts at 0)
    // bin = histogram bin numbers start at 1 ( --> i+1)
    for ( Int_t i = 0; i < hist->GetNbinsX(); i++ ) {
	Int_t bin = i+1;

	y = hist->GetBinContent(bin);
	if (opt.Contains("norm")) {
	    // the histogram is drawn normalized, but the histogram itself
	    // contains non-normalized entries
	    y = y/hist->GetSumOfWeights();
	}

	// Set each point: (bin-center, y)
	ErrorGraph->SetPoint(i, hist->GetBinCenter(bin), y);
	if ( IsData && !fDrawDataZeroEntries && y == 0 ) // move zero entries to -infinity
	    ErrorGraph->SetPoint(i, hist->GetBinCenter(bin), -9999.);


	// Compute the statistical uncertainty
	ComputeStatisticalUncertainty(hist, bin,
				      stat_ey_up,
				      stat_ey_lo);

	// Compute normalization uncertainty
	if ( !IsData && fDrawNormError ) { // MC only
	    ComputeNormUncertainty(bin,
				   norm_ey_up,
				   norm_ey_lo);
	}

	// sum of both errors:
	ey_up = TMath::Sqrt(stat_ey_up*stat_ey_up + norm_ey_up*norm_ey_up);
	ey_lo = TMath::Sqrt(stat_ey_lo*stat_ey_lo + norm_ey_lo*norm_ey_lo);

	// Only for data:
	// Draw error for empty bins?
	if (IsData && y == 0 && !fDrawDataZeroEntryErrors)
	    ey_up = 0;

	// scale the uncertainty of each point when
	// drawing normalized plots
	if ( opt.Contains("norm") ) {
	    ey_lo = ey_lo/hist->GetSumOfWeights();
	    ey_up = ey_up/hist->GetSumOfWeights();
	}

	// Draw x-error for data?
	if (IsData && !fDrawDataErrorX ) {
	    ErrorGraph->SetPointError(i,
				      0., 0.,
				      ey_lo, ey_up);
	} else {
	    ErrorGraph->SetPointError(i,
				      hist->GetBinWidth(bin)*0.5,
				      hist->GetBinWidth(bin)*0.5,
				      ey_lo, ey_up);
	}	    
    }
    return ErrorGraph;
}

//____________________________________________________________________

void HepDataMCPlot::ComputeStatisticalUncertainty(TH1F *h, Int_t bin,
						  Double_t &ey_up, Double_t &ey_lo) {
    //
    // Computes upper and lower errors for given number of events in
    // bin of histogram h.
    // For low numbers (<33) the errors
    // are estimated by the FeldmanCousins method.
    //
    Double_t y = h->GetBinContent(bin);

    if ( y < fgFeldmanCousinsMaxEntries ) {
	// Entries with QCDMM weights might be below zero
	// Take absolute value then...
	// Negative values should be avoided, rebin your histogram!
	if ( y < 0 )
	    y = TMath::Abs(y);
	
	// Use Feldman&Cousins for low entry numbers
    	ey_up = fgFCHigherCache[(Int_t)y] - y; if(ey_up<0) ey_up = y;
    	ey_lo = y - fgFCLowerCache[(Int_t)y];  if(ey_lo<0) ey_lo = y;
    } else {
	// Use Root's errors otherwise
	ey_up = h->GetBinError(bin);
	ey_lo = h->GetBinError(bin);
    }
}

//____________________________________________________________________

void HepDataMCPlot::ComputeNormUncertainty(Int_t bin,
					   Double_t &ey_up,
					   Double_t &ey_lo) {
    //
    // Compute the normalization uncertainty per bin
    //
    // For each grouped template an uncertainty must be provided
    //
    
    TList *hists_mc = GetListOfMCTemplates("err");
    TH1F *h_mc = 0;
    Double_t rel_unc = 0.;
    HepDataMCFolder *folder;
    Double_t err2 = 0.;
    
    for ( Int_t i = 0; i < hists_mc->GetEntries(); i++ ) {
	// reset uncertainty to protect against single samples
	rel_unc = 0.;
	
	// Get number of events and compute uncertainty
	h_mc = (TH1F*) hists_mc->At(i);
	
	if ( fMCFolders->GetEntries() > i ) {
	    // protect against single samples
	    // (the list of MC templates is synchronised
	    //  with the list of folders, single samples are last)
	    folder = (HepDataMCFolder*) fMCFolders->At(i);
	    rel_unc = folder->GetNormUncertainty();
	}
	err2 += TMath::Power(rel_unc*h_mc->GetBinContent(bin),2);
    }
    ey_up = TMath::Sqrt(err2);
    ey_lo = ey_up; // error is symmetric

    hists_mc->Delete();
    delete hists_mc;
}

//____________________________________________________________________

void HepDataMCPlot::PrepareFit(Bool_t single_samples, Bool_t prepare_effs) {
    //
    // Prepares fit using TFractionFitter
    //
    // HepTemplate objects are created from the list of MC samples.
    // Per default, sample groups are treated as one template.
    // Set single_samples to TRUE, if you want to fit each single
    // sample.
    // If prepare_effs is set to TRUE, cut efficiencies are calculated
    // and assigned to the template objects. For that, it is assumed
    // that the number of entries in the fit histogram is equal to the
    // number of events after all cuts applied. The denominator for the
    // efficiencies is taken from the event info histogram. In case of
    // folders a weighted sum is calculated. The efficiencies are probably
    // needed to calculate cross sections from the fit results.
    //

    //Check for data hist
    if(fHistDATA==0) {
	Error("PrepareFit", "Plot contains no data histogram. Fit is not possible.");
	gSystem->Abort(-1);
    }
    
    if(fMCFitTemplates==0) fMCFitTemplates = new TList();
    Float_t eff = 0;
    Float_t denom = 0;
    Float_t weight = 0;
    if (single_samples) {
	Info("PrepareFit", "Creating templates for single samples.");
	//Loop over folders and generate templates for each sample of them
	TIter next_folder(fMCFolders);
	HepDataMCFolder *folder = 0;
	while ( (folder = (HepDataMCFolder*)next_folder()) ) {
	    TIter next_sample(folder->GetMCSamples());
	    HepDataMCSample *sample = 0;
	    while ( (sample = (HepDataMCSample*)next_sample()) ) {
		HepTemplate* temp = new HepTemplate();
		temp->SetName(gSystem->BaseName(sample->GetName()));
		temp->SetInputHistogram(sample->GetHistogram());
		temp->SetColor(sample->GetColor());
		if(prepare_effs) {
		    if(sample->GetNEvents()>0)
			eff = sample->GetHistogram()->Integral()/(sample->GetNEvents()*fLumiDATA/sample->GetLumi());
		    else eff = 0;
		    temp->SetCutEfficiency(eff);
		}
		fMCFitTemplates->Add(temp);
		Info("PrepareFit", "Added template: %s", temp->GetName());
	    }
	}

	//Loop over all single samples, not belonging to a folder
	TIter next_singlesample(fMCSingleSamples);
	HepDataMCSample *single_sample = 0;
	while ( (single_sample = (HepDataMCSample*)next_singlesample()) ) {
	    HepTemplate* temp = new HepTemplate();
	    //eff = ((TH1F*)single_sample->GetHistogram())->Integral()/single_sample->GetNEvents();
	    temp->SetName(gSystem->BaseName(single_sample->GetName()));
	    temp->SetInputHistogram(single_sample->GetHistogram());
	    temp->SetColor(single_sample->GetColor());
	    if(prepare_effs) {
		if(single_sample->GetNEvents()>0)
		    eff = single_sample->GetHistogram()->Integral()/(single_sample->GetNEvents()*fLumiDATA/single_sample->GetLumi());
		else eff = 0;
		temp->SetCutEfficiency(eff);
	    }
	    fMCFitTemplates->Add(temp);
	    Info("PrepareFit", "Added template: %s", temp->GetName());
	}
    }
    else {
	Info("PrepareFit", "Creating templates using folder structure.");
	//Loop over folders and generate template for each folder
	TIter next_folder(fMCFolders);
	HepDataMCFolder *folder = 0;
	while ( (folder = (HepDataMCFolder*)next_folder()) ) {
	    TIter next_sample(folder->GetMCSamples());
	    HepTemplate* temp = new HepTemplate();
	    HepDataMCSample *sample = 0;
	    sample = (HepDataMCSample*)next_sample();
	    if(sample==0) continue; //Next folder in case of empty folder
	    TH1F *h_folder = (TH1F*)((TH1F*)sample->GetHistogram())->Clone();
	    temp->SetName(folder->GetName());
	    temp->SetColor(folder->GetColor());
	    if(prepare_effs) {
		eff = 0;
		denom = 0;
		weight = 0;
	    }
	    while ( (sample = (HepDataMCSample*)next_sample()) ) {
		h_folder->Add(sample->GetHistogram());
		if(prepare_effs) {
		    denom = denom + sample->GetHistogram()->Integral()*fLumiDATA/sample->GetLumi();
		}
	    }
	    temp->SetInputHistogram(h_folder);
	    if(prepare_effs) {
		TIter next_sample2(folder->GetMCSamples());
		while ( (sample = (HepDataMCSample*)next_sample2()) ) {
		    weight = sample->GetHistogram()->Integral()*fLumiDATA/(sample->GetLumi()*denom);
		    eff = eff + weight * sample->GetHistogram()->Integral()/(sample->GetNEvents()*fLumiDATA/sample->GetLumi());
		}
		temp->SetCutEfficiency(eff);
	    }
	    fMCFitTemplates->Add(temp);
	    Info("PrepareFit", "Added template: %s", temp->GetName());
	}

	//Loop over all single samples, not belonging to a folder
	TIter next_singlesample(fMCSingleSamples);
	HepDataMCSample *single_sample = 0;
	while ( (single_sample = (HepDataMCSample*)next_singlesample()) ) {
	    HepTemplate* temp = new HepTemplate();
	    temp->SetName(gSystem->BaseName(single_sample->GetName()));
	    temp->SetTitle(gSystem->BaseName(single_sample->GetName()));
	    temp->SetInputHistogram(single_sample->GetHistogram());
	    temp->SetColor(single_sample->GetColor());
	    if(prepare_effs) {
		if(single_sample->GetNEvents()>0)
		    eff = single_sample->GetHistogram()->Integral()/(single_sample->GetNEvents()*fLumiDATA/single_sample->GetLumi());
		else eff = 0;
		temp->SetCutEfficiency(eff);
	    }
	    fMCFitTemplates->Add(temp);
	    Info("PrepareFit", "Added template: %s",temp->GetName());
	}
    }

    Info("PrepareFit", "Created %d template objects.",fMCFitTemplates->GetEntries());
    cout << endl;
}

//____________________________________________________________________

Int_t HepDataMCPlot::Fit() {
    //
    // Perform the fit
    //
    // Create TFractionFitter instance. Start values and constraints
    // given to template objects are set and the fit is started.
    // Returns the return value from TFractionFitter.
    //

    // Preparing Array with template-histograms
    if(fMCFitTemplates==0) {
	Info("Fit", "Empty template list. Calling PrepareFit() function.");
	PrepareFit();
    }
    if(fMCFitTemplates->GetEntries()==0) {
	Info("Fit", "Template list has 0 entries. Empty plot? Calling PrepareFit() function.");
	PrepareFit();
	if(fMCFitTemplates->GetEntries()==0) {
	    Error("Fit", "Still no templates. Assuming that plot is empty. Abort !!!");
	    return -1;
	}
    }
    TObjArray *mc = new TObjArray(fMCFitTemplates->GetEntries());
    HepTemplate* templ = 0;
    TH1F *templ_hist = 0;
    //Temporary template list, containing all templates used for the fit:
    TList *templ_list = new TList(); 
    for ( Int_t i = 0; i < fMCFitTemplates->GetEntries(); i++){
	templ = (HepTemplate*)fMCFitTemplates->At(i);
	templ_hist = templ->GetInputHistogram();
        if(templ_hist->GetEntries()>0) {
	    mc->Add(templ_hist);
	    templ_list->Add(templ);
	}
    }

    // Initialization and configuration of FractionFitter
    fFitter = new TFractionFitter(fHistDATA, mc);
#if (ROOT_VERSION_CODE < ROOT_VERSION(5,99,0))
    TVirtualFitter * fVFitter = fFitter->GetFitter();
#endif

    //Set start values and constraints
    for ( Int_t i = 0; i < templ_list->GetEntries(); i++ ){
        templ = (HepTemplate*)templ_list->At(i);
#if (ROOT_VERSION_CODE < ROOT_VERSION(5,99,0))
	if ( templ->HasStartValue() ) {
	    fVFitter->SetParameter(i,templ->GetName(),templ->GetStartValue(),templ->GetStartValueError(),
				   templ->GetLowerBound(),templ->GetUpperBound());
	}
        else if ( !templ->HasStartValue() && templ->IsBound() ){
            fFitter->Constrain( i ,templ->GetLowerBound(), templ->GetUpperBound());
        }
#else
        ROOT::Fit::ParameterSettings & par = fFitter->GetFitter()->Config().ParSettings(i);
        par.SetName(templ->GetName());
	if ( templ->HasStartValue() ) {
           par.SetValue(templ->GetStartValue());
           par.SetStepSize(templ->GetStartValueError());
        }
        if ( templ->IsBound() ) {
           par.SetLowerLimit(templ->GetLowerBound());
           par.SetUpperLimit(templ->GetUpperBound());
        }
#endif
    }

    // Performing Fit
    cout << endl;
    cout << "===============================================" << endl;
    Info("Fit", "Starting fit procedure !!!");
    cout << "===============================================" << endl;
    cout << endl;
    Int_t status = fFitter->Fit();
    cout << endl;

    // Gathering results
    if (status == 0) {
	cout << "===============================================" << endl;
	Info("Fit", "Fitter converged !!!");
	cout << "===============================================" << endl;
	cout << endl;
	//Store obtained fractions and histograms in template objects.
	//Create final stacked plot.
	Double_t fraction, error;
	TH1F* result = (TH1F*)fFitter->GetPlot();
	fMCFittedHistStack = new THStack(Form("%s_stacked",result->GetName()),
					 Form("%s (stacked)", result->GetTitle()));
	TH1F* stack_hist = 0;
	for (Int_t i = 0; i < templ_list->GetEntries(); ++i ) {
	    templ = (HepTemplate*)templ_list->At(i);
	    fFitter->GetResult(i, fraction, error);
	    templ->SetFitFraction(fraction);
	    templ->SetFitFractionError(error);
	    templ_hist = (TH1F*)fFitter->GetMCPrediction(i);
	    templ_hist->SetName(Form("%s_fitted", templ->GetInputHistogram()->GetName()));
	    templ_hist->SetTitle(Form("%s (fitted), fraction = %f, uncertainty = %f",
				      templ->GetInputHistogram()->GetTitle(),
				      fraction, error));
	    templ->SetFittedHistogram(templ_hist);

	    stack_hist = (TH1F*)templ_hist->Clone();
	    stack_hist->SetFillColor(templ->GetColor());
	    stack_hist->Scale(result->Integral()/stack_hist->Integral()*fraction);
	    fMCFittedHistStack->Add(stack_hist);
	}

	//delete stack_hist;
    }
    else {
	cout << endl;
	Error("Fit", "Fitter failed with status code %d !!!", status);
	return status;
    }

    

    delete templ_list;
    //delete templ_hist;
    //delete templ;

    return 0;
}

//____________________________________________________________________

void HepDataMCPlot::DrawFit(Option_t *option) {
    //
    // Draw fitted MC histogram stack together with data
    //
    TString opt = option;
    opt.ToLower();

    fHistDATA->Draw("Ep");
    fMCFittedHistStack->Draw("hist,same");
    fHistDATA->Draw("Epsame");

    //Legend!!!
    if ( !opt.Contains("noleg") ) {
	DrawLegend();
    }
}

//____________________________________________________________________

void HepDataMCPlot::ListFolders() {
    cout << endl;
    Info("ListFolders", "Listing names of HepDataMCFolder objects:");
    for(Int_t i = 0; i < fMCFolders->GetEntries(); i++) {
	Info("ListFolders", "%s", gSystem->BaseName(fMCFolders->At(i)->GetName()));
    }
    cout << endl;
}

//____________________________________________________________________

void HepDataMCPlot::ListSingleSamples() {
    cout << endl;
    Info("ListSingleSamples", "Listing names of HepDataMCSample single sample objects:");
    for(Int_t i = 0; i < fMCSingleSamples->GetEntries(); i++) {
	Info("ListSingleSamples", "%s", gSystem->BaseName(fMCSingleSamples->At(i)->GetName()));
    }
    cout << endl;
}

//____________________________________________________________________

void HepDataMCPlot::ListTemplateFractions() {
    cout << endl;
    Info("ListTemplateFractions", "Listing fractions and errors of all templates:");
    cout << "Template name \t\t\t\t" << " Fraction \t " << " Fraction error" << endl;
    cout << "----------------------------------------------------------------------------------------" << endl;
    HepTemplate *templ = 0;
    TString name = "";
    TString tab = "";
    Float_t frac = 0;
    for(Int_t i = 0; i < fMCFitTemplates->GetEntries(); i++) {
	templ = (HepTemplate*)fMCFitTemplates->At(i);
	name = templ->GetName();
	frac = templ->GetFitFraction();
	if(name.Length()<9) name = Form("%s\t\t\t\t",name.Data());
	else if(name.Length()>8 && name.Length()<17) name = Form("%s\t\t\t",name.Data());
	else if(name.Length()>16 && name.Length()<25) name = Form("%s\t\t",name.Data());
	else if(name.Length()>24 && name.Length()<33) name = Form("%s\t",name.Data());
	if(frac==0) tab = " \t\t  ";
	else tab = " \t  ";
	cout << name << " \t " << frac
	     << tab << templ->GetFitFractionError() << endl;
    }
    cout << "----------------------------------------------------------------------------------------" << endl;
    cout << endl;
}

//____________________________________________________________________

Double_t HepDataMCPlot::GetTemplateFitFraction(const char* template_name) {
    //
    // Get template fraction for specific template
    //
    HepTemplate *templ = (HepTemplate*)fMCFitTemplates->FindObject(template_name);
    if(templ!=0) return templ->GetFitFraction();
    else {
	Error("GetTemplateFitFraction", "Could not find template with name %s.", template_name);
	return -1;
    }
}

//____________________________________________________________________

Double_t HepDataMCPlot::GetTemplateFitFractionError(const char* template_name) {
    //
    // Get template fraction error for specific template
    //
    HepTemplate *templ = (HepTemplate*)fMCFitTemplates->FindObject(template_name);
    if(templ!=0) return templ->GetFitFractionError();
    else {
	Error("GetTemplateFitFractionError", "Could not find template with name %s.", template_name);
	return -1;
    }
}

//____________________________________________________________________

Float_t HepDataMCPlot::GetTemplateCutEfficiency(const char* template_name) {
    //
    // Get template cut efficiency for specific template
    //
    HepTemplate *templ = (HepTemplate*)fMCFitTemplates->FindObject(template_name);
    if(templ!=0) return templ->GetCutEfficiency();
    else {
	Error("GetTemplateCutEfficiency", "Could not find template with name %s.", template_name);
	return -1;
    }
}

//____________________________________________________________________

void HepDataMCPlot::SetTemplateBounds(const char* template_name, Double_t Lower, Double_t Upper) {
    HepTemplate *templ = (HepTemplate*)fMCFitTemplates->FindObject(template_name);
    if(templ!=0) templ->SetBounds(Lower, Upper);
    else {
	Error("SetTemplateBounds", "Could not find template with name %s.", template_name);
    }
}

//____________________________________________________________________

void HepDataMCPlot::SetTemplateStartValue(const char* template_name, Double_t frac, Double_t frac_err) {
    HepTemplate *templ = (HepTemplate*)fMCFitTemplates->FindObject(template_name);
    if(templ!=0) templ->SetStartValue(frac, frac_err);
    else {
	Error("SetTemplateStartValue", "Could not find template with name %s.", template_name);
    }
}

//____________________________________________________________________

void HepDataMCPlot::FixTemplateFraction(const char* template_name, Bool_t fix) {
    HepTemplate *templ = (HepTemplate*)fMCFitTemplates->FindObject(template_name);
    if(templ!=0) templ->FixFraction(fix);
    else {
	Error("FixTemplateFraction", "Could not find template with name %s.", template_name);
    }
}

//____________________________________________________________________

void HepDataMCPlot::Rebin(Int_t ngroup) {
    //
    // Performs a rebinning of the stacked plot.
    // Rebinning is applied to all histograms
    // (data and MC).
    //
    TH1F *h_mc = 0;

    // Rebin individual histograms
    TIter next_hist(fMCHistStack->GetHists());
    while ( (h_mc = (TH1F*)next_hist()) ) {
	h_mc->Rebin(ngroup); 
    }
    TObjArray *arr = 0;
    arr = fMCHistStack->GetStack();
    for ( Int_t i = 0; i < arr->GetEntries(); i++ ) {
	h_mc = (TH1F*)arr->At(i);
	h_mc->Rebin(ngroup);
    }
    fMCHistStack->Modified();
    if ( fHistogramLastInStack != 0 ) fHistogramLastInStack->Rebin(ngroup);
    
    // Rebin Data
    if( fHistDATA!=0 ) fHistDATA->Rebin(ngroup);

    // Redraw
    if ( gPad ) {
	Draw();
	gPad->Update();
    }
}

//____________________________________________________________________

void HepDataMCPlot::ScaleMCStack(Float_t scale) {
    //
    // Scales the complete MC hist stack by the given scale
    //
    
    TH1F *h_mc = 0;
    
    TIter next_hist(fMCHistStack->GetHists());
    while ( (h_mc = (TH1F*)next_hist()) ) {
	h_mc->Scale(scale); 
    }
    
    fHistMCTop->Scale(scale);

    TObjArray *arr = 0;
    arr = fMCHistStack->GetStack();
    for (Int_t i = 0; i < arr->GetEntries(); i++) {
	h_mc = (TH1F*)arr->At(i);
	h_mc->Scale(scale); 
    }
    
    if ( gPad ) {
	Draw();
	gPad->Update();
    }
    
}

//____________________________________________________________________

void HepDataMCPlot::ScaleMCFolder(Float_t scale, const char* mc_folder) {
    //
    // Scales only a group of histograms by the given scale
    //

    TString FolderToScale = mc_folder;

    TH1F *h_mc = 0;

    // Loop over folders
    TIter next_folder(fMCFolders);
    HepDataMCFolder *folder = 0;
    while ( (folder = (HepDataMCFolder*)next_folder()) ) {

	if ( !(FolderToScale.Contains(folder->GetName())) )
	    continue;
	
	TIter next_sample(folder->GetMCSamples());
	HepDataMCSample *sample = 0;

	while ( (sample = (HepDataMCSample*)next_sample()) ) {
	    h_mc  = sample->GetHistogram();
	    h_mc->Scale(scale);
	}
    }
    fMCHistStack->Modified();
}

//____________________________________________________________________

void HepDataMCPlot::DrawATLASLabel(Double_t x,Double_t y,
				   TString text,Color_t color) {
    //
    // Draw ATLAS + label
    //
    // Functions taken from official ATLAS style
    //

    // Adjust position in case user adds more space to the right margin
    // x += 0.05 - gStyle->GetPadRightMargin();

    TLatex l; //l.SetTextAlign(12); l.SetTextSize(tsize); 
    l.SetNDC();
    l.SetTextFont(72);
    l.SetTextColor(color);

    // for some reason it is not possible to get the
    // TLatex Xsize in NDC (although you ask for it)
    // --> Solution hardcode the numbers for the default Canvas
    //     (this was already done in the ATLAS Style for no ratios)
    double delx = 0.;
    if ( fDrawDataMCRatio && fDrawSignificance )
	delx = 0.115*696*gPad->GetWh()/(737*gPad->GetWw());
    else if ( fDrawDataMCRatio || fDrawSignificance )
	delx = 0.115*696*gPad->GetWh()/(604*gPad->GetWw());
    else
	delx = 0.115*696*gPad->GetWh()/(472*gPad->GetWw());
    
    l.DrawLatex(x,y,"ATLAS");
    if (text.Data()) {
	TLatex p; 
	p.SetNDC();
	p.SetTextFont(42);
	p.SetTextColor(color);
	p.DrawLatex(x+delx,y,text.Data());
    }
}

//____________________________________________________________________

void HepDataMCPlot::DrawTextLatex(Double_t x,Double_t y,
				  Color_t color,TString text,
				  Double_t tsize) {
    //
    // Draw latex text on given position
    //
    // Functions taken from official ATLAS style
    //
    
    TLatex l; //l.SetTextAlign(12); l.SetTextSize(tsize); 
    l.SetNDC();
    l.SetTextColor(color);
    l.SetTextFont(42);
    l.SetTextSize(tsize);
    l.DrawLatex(x,y,text.Data());
}

//____________________________________________________________________

void HepDataMCPlot::SetAtlasStyle(){
    //
    // set current style to ATLASstyle
    //

    TStyle *AtlasStyle = gROOT->GetStyle("ATLAS");
    if ( AtlasStyle == 0 ) {
	Warning("SetAtlasStyle", "Could not find ATLAS Style! Using current style.\nPlease load the ATLAS Style in your .rootlogon.C!");
    } else {
	// Set Atlas Style
	gROOT->SetStyle("ATLAS");
	//
	gROOT->ForceStyle();
    }
}

//____________________________________________________________________

void HepDataMCPlot::Print(Option_t *option) const {
    //
    // Print event yield table
    //
    // Options available:
    //   "SPLIT" - Print table for all samples. If this option is
    //             not given, only the grouped sample will be
    //             listed (default).
    //
    TString opt = option;
    opt.ToUpper();
    
    cout << endl
	 << "===========================" << endl
	 << "Process         Events     " << endl
	 << "===========================" << endl;

    // Signal events (signal == Samples from last folder in stack!)
    Float_t n_signal = 0.;
    Float_t err2_signal = 0.;
    
    // MC list
    Float_t n_totmc = 0.;
    Float_t totmcerr2 = 0.;
    Double_t err  = 0.;
    if ( opt.Contains("SPLIT") ) {
	TIter next(GetMCHistStack()->GetHists(), kIterBackward);
	TH1F *h_mc = 0;
	Float_t n_mc = 0.;
	while ( (h_mc = (TH1F*)next()) ) {
	    Int_t first = h_mc->GetXaxis()->GetFirst() - 1; // overflow underflow
	    Int_t last  = h_mc->GetXaxis()->GetLast()  + 1;
	    n_mc = h_mc->IntegralAndError(first, last, err);
	    if ( opt.Contains("LATEX") ) {
		printf("%-16s & %-16f & %-16f\n",
		       h_mc->GetTitle(),
		       n_mc, err);
	    } else {
		printf("%-16s%-.f ± %-.f\n",
		       h_mc->GetTitle(),
		       n_mc, err);
	    }
	    n_totmc += n_mc;
	    totmcerr2 += err*err;
	}
    } else {
	TIter next_folder(GetMCFolders(), kIterBackward);
	HepDataMCFolder *folder = 0;
	TH1F *h_mc = 0;
	Bool_t is_first_folder = kTRUE; // actually last in GetMCFolders()
	while ( (folder = (HepDataMCFolder*)next_folder()) ) {
	    Float_t err2 = 0.;
	    Float_t n_mc = 0.;
	    TIter next_sample(folder->GetMCSamples());
	    HepDataMCSample *sample = 0;
	    while ( (sample = (HepDataMCSample*)next_sample()) ) {
		h_mc = sample->GetHistogram();
		Int_t first = h_mc->GetXaxis()->GetFirst() - 1;
		Int_t last  = h_mc->GetXaxis()->GetLast()  + 1;
		n_mc += h_mc->IntegralAndError(first, last, err);
		err2 += err*err;
		totmcerr2 += err*err;

		if ( is_first_folder ){
		    err2_signal = err2; 
		    n_signal = n_mc;
		}
	    }
	    is_first_folder = kFALSE;
	    if ( opt.Contains("LATEX") ) {
		printf("\\text{%-16s} & %f & %f\n",
		       folder->GetName(),
		       n_mc, TMath::Sqrt(err2));
	    } else {
		printf("%-16s%-.f +- %-.f\n",
		       folder->GetName(),
		       n_mc, TMath::Sqrt(err2));
	    }
	    n_totmc += n_mc;
	}
    }

    // MC total
    cout << "---------------------------" << endl;
    if ( opt.Contains("LATEX") ) {
	printf("\\text{MC total}        & %f & %f\n",
	       n_totmc, TMath::Sqrt(totmcerr2));
    } else {
	printf("MC total        %-.f +- %-.f\n",
	       n_totmc, TMath::Sqrt(totmcerr2));
    }
    
    // Data
    if ( GetHistDATA() != 0 ) {
	cout << "---------------------------" << endl;
	Int_t first = GetHistDATA()->GetXaxis()->GetFirst() - 1;
	Int_t last  = GetHistDATA()->GetXaxis()->GetLast()  + 1;
	Double_t err = 0;
	Float_t n_data = GetHistDATA()->IntegralAndError(first, last, err);
	if ( opt.Contains("LATEX") ) {
	    printf("\\text{DATA}            & %f & %f\n",
		   n_data, TMath::Sqrt(n_data));
	} else {
	    printf("DATA            %-.f +- %-.f\n",
		   n_data, TMath::Sqrt(n_data));
	}
    }
    cout << "===========================" << endl;

    if ( !opt.Contains("SPLIT") ) {
	// only available if not using split mode
	// use MC+QCD as estimate for background (B)
	// if used for optimizing cuts, the data should not be used
	printf("S/B             %1.4f\n", n_signal/(n_totmc-n_signal));
	printf("S/err_B         %1.4f\n", n_signal/TMath::Sqrt(totmcerr2-err2_signal));
	
	cout << "===========================" << endl;
    }
    cout << endl;
}

//____________________________________________________________________

void HepDataMCPlot::AddOverflowUnderflowBins(TH1* hist) {
    //
    // Add overflow/underflow bin to first/last bin
    //
    
    Double_t underflow     = hist->GetBinContent(0);
    Double_t underflow_err = hist->GetBinError(0);
    
    Double_t first     = hist->GetBinContent(1);
    Double_t first_err = hist->GetBinError(1);
    
    // Set bin content and error for first/underflow bin
    hist->SetBinContent(0., 0.);
    hist->SetBinError(0., 0.);
    
    hist->SetBinContent(1, underflow + first);
    hist->SetBinError(1, TMath::Sqrt(underflow_err*underflow_err+
				     first_err*first_err));
    
    Int_t maxbin = hist->GetNbinsX();
    
    Double_t overflow     = hist->GetBinContent(maxbin+1);
    Double_t overflow_err = hist->GetBinError(maxbin+1);
    
    Double_t last     = hist->GetBinContent(maxbin);
    Double_t last_err = hist->GetBinError(maxbin);

    // Set bin content and error for first/underflow bin
    hist->SetBinContent(maxbin, last + overflow);
    hist->SetBinError(maxbin, TMath::Sqrt(last_err*last_err +
					  overflow_err*overflow_err));
    
    hist->SetBinContent(maxbin+1, 0.);
    hist->SetBinError(maxbin+1, 0.);
}

//____________________________________________________________________

void HepDataMCPlot::DrawNoStack(Option_t *option) {
    //
    // ==================================
    // Draw MC histograms in overlay mode
    // ==================================

    // The fill colour is used as histogram line colour, but
    // the histogram itself is not filled.

    // Convert option string
    TString opt = option;
    opt.ToLower();

    // Choose main pad to draw
    TPad *padsav = (TPad*)gPad;
    fMainPad->Draw();
    fMainPad->cd();
    
    // In overlay mode (non-stacked mode) do not draw data points
    fDrawData = kFALSE;
    
    // Collect all histograms that need to be drawn
    TList *hists_to_draw = new TList;
    hists_to_draw->AddAll(fMCHistStack->GetHists());

    // Setup colors
    SetColorsNoStack();
    
    TH1F *h_mc = 0;
    
    // Create grouped histograms if neccessary
    if ( fGroupHistograms ) {

	// Loop over folders
	TIter next_folder(fMCFolders);
	HepDataMCFolder *folder = 0;
	while ( (folder = (HepDataMCFolder*)next_folder()) ) {
	    TIter next_sample(folder->GetMCSamples());
	    HepDataMCSample *sample = 0;
	    
	    TH1F *h_mcgroup = 0;
	    while ( (sample = (HepDataMCSample*)next_sample()) ) {
		h_mc  = sample->GetHistogram();
		hists_to_draw->Remove(h_mc);

		// Clone first histogram to be used for the group
		// otherwise add all samples to existing group histogram
		if ( h_mcgroup == 0 ) {
		    h_mcgroup = (TH1F*) h_mc->Clone();
		    h_mcgroup->SetLineColor(folder->GetAttFill().GetFillColor());
		} else {
		    h_mcgroup->Add(h_mc);
		}
	    }

	    // Add the grouped histogram to the list
	    hists_to_draw->Add(h_mcgroup);
	}
    }
    
    // Find maximum bin content
    TIter next_hist(hists_to_draw);
    Double_t max_mc = 0.;
    while ( (h_mc = (TH1F*)next_hist()) ) {
	// Maximum is the same, also for normalized drawing
	// DrawNormalized() takes care of setting the correct maximum
	if( max_mc < h_mc->GetBinContent(h_mc->GetMaximumBin()) )
	    max_mc = h_mc->GetBinContent(h_mc->GetMaximumBin());
    }
    // Add extra space to maximum
    max_mc *= fAddRange;
    
    // Draw all histograms in the list
    next_hist.Reset();
    Bool_t first = kTRUE;    
    while ( (h_mc = (TH1F*)next_hist()) ) {
	// Set axis range
	if ( fYRangeUser ) {
	    max_mc = fYRangeUserMax;
	    h_mc->SetMinimum(fYRangeUserMin);
	}
	h_mc->SetMaximum(max_mc);

	if ( first ) {
	    first = kFALSE;
	    if ( opt.Contains("norm") ) {
		if ( h_mc->Integral() == 0 ) {
		    Warning("DrawNoStack",
			    "Integral is 0. Drawing of histogram %s not possible.",
			    h_mc->GetTitle());
		    first = kTRUE;
		} else {
		    TH1* h_copy = h_mc->DrawNormalized("hist", 1.);
		    fHistogramMainPad = h_copy;
		}
	    } else {
		h_mc->Draw("hist");
		fHistogramMainPad = h_mc;
	    }
	} else {
	    if ( opt.Contains("norm") )
		if ( h_mc->Integral() == 0 ) {
		    Warning("DrawNoStack",
			    "Integral is 0. Drawing of histogram %s not possible.",
			    h_mc->GetTitle());
		} else {
		    h_mc->DrawNormalized("hist,same", 1.);
		}
	    else
		h_mc->Draw("hist,same");
	}
    }
    
    delete hists_to_draw;
    padsav->cd();
}

//____________________________________________________________________

void HepDataMCPlot::SetColorsNoStack() {
    //
    // Setup color scheme for non-stacked mode
    //

    // Use this list to determine the un-grouped histograms
    TList *hists_to_draw = new TList;
    hists_to_draw->AddAll(fMCHistStack->GetHists());

    // Loop over folders
    TIter next_folder(fMCFolders);
    TH1F *h_mc = 0;
    HepDataMCFolder *folder = 0;
    while ( (folder = (HepDataMCFolder*)next_folder()) ) {
    	TIter next_sample(folder->GetMCSamples());
    	HepDataMCSample *sample = 0;
	
    	while ( (sample = (HepDataMCSample*)next_sample()) ) {
    	    h_mc  = sample->GetHistogram();
    	    hists_to_draw->Remove(h_mc);
	    
    	    h_mc->SetFillStyle(0);
    	    h_mc->SetLineColor(sample->GetAttFill().GetFillColor());
    	    h_mc->SetLineWidth(gStyle->GetHistLineWidth());
    	    h_mc->SetLineStyle(gStyle->GetHistLineStyle());
    	}
    }

    TIter next_ungrouped_hist(hists_to_draw);
    while ( (h_mc = (TH1F*)next_ungrouped_hist()) ) {
    	h_mc->SetFillStyle(0);
	// Soren: Assume that the line color is already set correctly?
    	// h_mc->SetLineColor(gStyle->GetHistLineColor());
	h_mc->SetLineWidth(gStyle->GetHistLineWidth());
	h_mc->SetLineStyle(gStyle->GetHistLineStyle());
    }
    delete hists_to_draw;
}

//____________________________________________________________________

void HepDataMCPlot::ExportTemplates(TFile *f, const char* suffix) {
    //
    // Saves group-histograms and single sample histograms in a
    // given file.
    //
    // The name of the histograms consists of the folder/sample name
    // and a suffix, e.g. "ttbar_jesup"
    //

    // Check if file is writable:
    if ( !f->IsWritable() ) {
	Error("SaveTemplates",
	      "File %s is not writable! Abort!",
	      f->GetName());
	gSystem->Abort(0);
    }
    f->cd();

    TList *hists_to_save = GetListOfMCTemplates(suffix);
    TH1F *h = 0;
    TIter next_hist(hists_to_save);
    while ( (h = (TH1F*)next_hist()) ) {
	h->SetDirectory(f);
    }
    
    // Export data histogram
    if ( fHistDATA ) {
	TH1F *h_data = (TH1F*) fHistDATA->Clone(Form("%s_%s",
						     "data",
						     suffix));
	h_data->SetDirectory(f);
    }
    
    // Save templates
    f->Write();
    hists_to_save->Delete();
    delete hists_to_save;
}

//____________________________________________________________________

TList* HepDataMCPlot::GetListOfMCTemplates(const char* suffix) {
    //
    // Saves group-histograms and single sample histograms and
    // returns a list of histograms
    // 
    // The name of the histograms consists of the folder/sample name
    // and a suffix, e.g. "ttbar_jesup"
    //

    // Use this list to determine the un-grouped histograms
    TList *hists_to_save = new TList;
    hists_to_save->AddAll(fMCHistStack->GetHists());
    TH1F *h_mc = 0;

    // Loop over folders
    TIter next_folder(fMCFolders);
    HepDataMCFolder *folder = 0;
    while ( (folder = (HepDataMCFolder*)next_folder()) ) {
	TIter next_sample(folder->GetMCSamples());
	HepDataMCSample *sample = 0;
	
	TH1F *h_mcgroup = 0;
	while ( (sample = (HepDataMCSample*)next_sample()) ) {
	    h_mc  = sample->GetHistogram();
	    hists_to_save->Remove(h_mc);
	    
	    // Clone first histogram to be used for the group
	    // otherwise add all samples to existing group histogram
	    if ( h_mcgroup == 0 )
		h_mcgroup = (TH1F*) h_mc->Clone(Form("%s_%s",
						     folder->GetName(),
						     suffix));
	    else
		h_mcgroup->Add(h_mc);
	}
	
	// Add the grouped histogram to the list
	hists_to_save->Add(h_mcgroup);
    }
    
    return hists_to_save;
}

//____________________________________________________________________

void HepDataMCPlot::PrintBinStatistics(Option_t *option) {
    //
    // Print S/B and S/sqrt(B) for all bins
    //

    TString opt = option;
    opt.ToUpper();

    TList *hists = GetListOfMCTemplates("Statistics");
    
    // It is assumed that the signal process is drawn as topmost histogram
    // --> therefore it is the last histogram in the list.

    TH1F *bkg = (TH1F*)((TH1F*) hists->At(0))->Clone("bkg");
    for ( Int_t i = 1; i < hists->GetEntries()-1; i++ ) {
	bkg->Add((TH1F*)hists->At(i));
    }
    TH1F *sig = (TH1F*)((TH1F*) hists->At(hists->GetEntries()-1))->Clone("sig");
    
    // Binning starts at 1, over and underflow bin are excluded here
    printf("========================================\n");
    printf(" Bin Low Edge |     S/B    |  S/sqrt(B) \n");
    printf("========================================\n");
    for ( Int_t bin = 1; bin <= sig->GetNbinsX(); bin++ ) {
	if ( opt.Contains("LATEX") ) {
	    printf(" %-4.3f & %-8f & %-8f\n",
		   sig->GetXaxis()->GetBinLowEdge(bin),
		   sig->GetBinContent(bin)/bkg->GetBinContent(bin),
		   sig->GetBinContent(bin)/TMath::Sqrt((bkg->GetSumw2())->At(bin)));
	} else {
	    printf("    %-4.3f     |  %-8f  |  %-8f\n",
		   sig->GetXaxis()->GetBinLowEdge(bin),
		   sig->GetBinContent(bin)/bkg->GetBinContent(bin),
		   sig->GetBinContent(bin)/TMath::Sqrt((bkg->GetSumw2())->At(bin)));
	}
    }
    printf("========================================\n");
    
    delete bkg;
    delete sig;
    hists->Delete();
    delete hists;
}

//____________________________________________________________________

void HepDataMCPlot::DrawStack(Option_t *option) {
    //
    // ==================================
    // Draw MC histograms in stacked mode
    // ==================================
    //    
    // In case of stacked histogram mode draw the histograms in
    // filled mode with their fill color. Use the histogram line
    // colour of the current style for drawing the histogram
    // outline
    
    // Convert option string
    TString opt = option;
    opt.ToLower();

    // Choose main pad to draw
    TPad *padsav = (TPad*)gPad;
    fMainPad->Draw();
    fMainPad->cd();

    // Remove signal MC from stack
    if ( fFirstDraw && fDrawSignalOverlay ) {
    	fHistogramLastInStack = (TH1*)fMCHistStack->GetHists()->Last();
    	fHistogramLastInStack->Scale(fScaleOverlay);
    	fMCHistStack->GetHists()->RemoveLast();
    }
    
    // Set colors
    SetColorsStack();
    
    // Get maximum bin content
    Double_t max_mc = fMCHistStack->GetMaximum();
    Double_t max_data = 0.;
    if ( fHistDATA != 0 && fDrawData )
	max_data = fHistDATA->GetMaximum();
    Double_t ymax = 0.;
    if ( max_mc > max_data ) 
	ymax = max_mc;
    else
	ymax = max_data;

    // Add extra space to maximum
    ymax *= fAddRange;
    if ( fYRangeUser ) {
	ymax = fYRangeUserMax;

	fMCHistStack->SetMinimum(fYRangeUserMin);
	if ( fHistDATA )
		fHistDATA->SetMinimum(fYRangeUserMin);
    }
    
    // Set y range
    fMCHistStack->SetMaximum(ymax);
    if ( fHistDATA != 0 )
      	fHistDATA->SetMaximum(ymax);

    // Draw MC histograms
    if ( fUnifyMCStack ) {
	// In case of unified MC histograms draw simply the top-most one
	fHistMCTop = (TH1F*) (fMCHistStack->GetStack()->Last())->Clone("top_last");
	fHistMCTop->Draw("hist,same"); // do not use: DrawClone --> produces artefacts when saving plots!!!
	fHistMCTop->SetXTitle(fXTitle->Data());
	fHistMCTop->SetYTitle(fYTitle->Data());
	fHistMCTop->SetFillStyle(1001);
	fHistMCTop->SetFillColor(fgUnifyColor);
	fHistogramMainPad = fHistMCTop;
    } else {
	// In case of drawing all the different MCs draw the stack and the topmost one
	// again to show the histogram line
	fMCHistStack->Draw("hist");
	fMCHistStack->GetHistogram()->SetXTitle(fXTitle->Data());
	fMCHistStack->GetHistogram()->SetYTitle(fYTitle->Data());
	fHistogramMainPad = fMCHistStack->GetHistogram();
	fHistMCTop = (TH1F*) (fMCHistStack->GetStack()->Last())->Clone("top_last");
	fHistMCTop->Draw("hist,same"); // do not use: DrawClone --> produces artefacts when saving plots!!!
	fHistMCTop->SetFillStyle(0);
    }

    // Draw overlay of signal histogram
    if ( fDrawSignalOverlay ) {
	fHistogramLastInStack->SetFillColorAlpha(kMagenta, 0.2);
	fHistogramLastInStack->SetLineColor(kMagenta);
	fHistogramLastInStack->SetLineWidth(2);
	fHistogramLastInStack->Draw("hist,same");
    }
    
    // Draw MC uncertainty band (if wished)
    if ( fDrawMCError ) {
    	fMCErrors = SetErrors(fHistMCTop, kFALSE);
    	fMCErrors->SetLineColor(16);   // before: 6 (pink)
    	fMCErrors->SetFillColor(16);   // before: 6 (pink)
    	fMCErrors->SetFillStyle(3254); // before: 3005 
    	fMCErrors->Draw("2,same");
    } else {
    	Info("Draw",
    	     "MC error graph was not set. No MC errors are drawn.");
    }
    
    // Draw DATA histogram on top (if exist)
    // with black markers (boxes)
    if ( fDrawData && (fHistDATA != 0) ) {
	
    	fHistDATA->SetMarkerStyle(gStyle->GetMarkerStyle());
	fGraphDATA = SetErrors(fHistDATA,kTRUE,option);
	fGraphDATA->SetMarkerStyle(fHistDATA->GetMarkerStyle());
	fGraphDATA->SetLineColor(fHistDATA->GetLineColor());

	fGraphDATA->Draw("EP");

	// if ( fDrawDataZeroEntryErrors )
        //     fHistDATA->Draw("E0 X0 P same"); // or P0?
	// else
	//     fHistDATA->Draw("E X0 P same");
    }

    // Restore old gPad pointer
    padsav->cd();
}



//____________________________________________________________________

void HepDataMCPlot::SetColorsStack() {
    //
    // Setup colour scheme for stacked mode
    //
    // In case of grouped drawing mode set the line and fill
    // attributes of the grouped histograms first. The histograms
    // within one group get all the same colour for filling and the
    // histogram line so that they appear as a single histogram

    // Use this list to determine the un-grouped histograms
    TList *hists_to_draw = new TList;
    hists_to_draw->AddAll(fMCHistStack->GetHists());
    
    // Do not forget to change the clone histograms internally
    // used by the hist stack too
    TIter next_folder(fMCFolders);
    HepDataMCFolder *folder = 0;
    TH1F *h_mc = 0;
    TH1F *h_mc2 = 0;
    while ( (folder = (HepDataMCFolder*)next_folder()) ) {
	TIter next_sample(folder->GetMCSamples());
	HepDataMCSample *sample = 0;
	while ( (sample = (HepDataMCSample*)next_sample()) ) {
	    // Change the sample and the cloned histogram from THStack
	    h_mc = sample->GetHistogram();
	    h_mc2  = (TH1F*)fMCHistStack->GetStack()->FindObject(h_mc->GetName());


	    h_mc ->SetFillStyle(1001);
	    h_mc ->SetFillColor(folder->GetAttFill().GetFillColor());
	    h_mc ->SetLineStyle(gStyle->GetHistLineStyle());
	    h_mc ->SetLineColor(folder->GetAttFill().GetFillColor());
	    h_mc ->SetLineWidth(0);

	    if ( h_mc2 != 0 ) {
		h_mc2->SetFillStyle(1001);
		h_mc2->SetFillColor(folder->GetAttFill().GetFillColor());
		h_mc2->SetLineStyle(gStyle->GetHistLineStyle());
		h_mc2->SetLineColor(folder->GetAttFill().GetFillColor());
		h_mc2->SetLineWidth(0);
	    }

	    if ( fGroupHistograms == kTRUE ) {
		hists_to_draw->Remove(h_mc);

		if ( folder->GetAttFill().GetFillColor() == kWhite ) {
		    h_mc ->SetLineColor(kBlack);
		    h_mc ->SetLineWidth(1);

		    if ( h_mc2 != 0 ) {
			h_mc2->SetLineColor(kBlack);
			h_mc2->SetLineWidth(1);
		    }
		}
	    } else {
		if ( h_mc2 != 0 ) {
		    h_mc2->SetLineWidth(1);
		}
	    }
	}
    }
    
    // Set line and fill attributes for the remaining un-grouped
    // MC histograms. In case of un-grouped drawing these are all
    // histograms of the MC stack
    TIter next_ungrouped_hist(hists_to_draw);
    while ( (h_mc = (TH1F*)next_ungrouped_hist()) ) {
	h_mc2 = (TH1F*)fMCHistStack->GetStack()->FindObject(h_mc->GetName());
	
	h_mc ->SetFillStyle(1001);
	h_mc ->SetLineColor(gStyle->GetHistLineColor());
	h_mc ->SetLineStyle(gStyle->GetHistLineStyle());
	h_mc ->SetLineWidth(0);

	h_mc2->SetFillStyle(1001);
	h_mc2->SetLineColor(gStyle->GetHistLineColor());
	h_mc2->SetLineStyle(gStyle->GetHistLineStyle());
	h_mc2->SetLineWidth(0);
    }
    delete hists_to_draw;
}

//____________________________________________________________________

void HepDataMCPlot::SetupPad() {
    //
    // Setup Pads for drawing the stack and ratio-plots
    //
    
    // How many ratio plots?
    Int_t NRatios = 0;
    if ( fDrawDataMCRatio ) NRatios++;
    if ( fDrawSignificance ) NRatios++;

    // Clear current pad or create a new one
    if ( gPad ) {
	gPad->Clear();
	fCanvas = 0;
    } else {
	fCanvas = gROOT->MakeDefCanvas();
    }

    Double_t newheight  = 1.;
    Double_t newheight2 = 1.;
    Double_t addspace = fRatioHeight - gStyle->GetPadBottomMargin() + gStyle->GetLabelSize()*0.5;
    if ( NRatios == 1 ) {
	
	newheight = (1. + addspace);
	// Main Pad NDCs
	fMainPad = new TPad("MainPad", "", 0., 1.- 1./newheight, 1., 1.);

	// First Ratio Pad NDC (overlap with Main intended!)
	fRatioPad1 = new TPad("RatioPad1", "", 0., 0., 1., fRatioHeight/newheight);
	fRatioPad1->SetBottomMargin(gStyle->GetPadBottomMargin()/fRatioHeight);

	fRatioPad2 = 0;
    } else if ( NRatios == 2 ) {
	newheight  = (1. +    addspace);
	newheight2 = (1. + 2.*addspace);

	// Main Pad NDCs
	fMainPad = new TPad("MainPad", "", 0., 1.- 1./newheight2, 1., 1.);
	
	// First Ratio Pad NDC (overlap with Main intended!)
	fRatioPad1 = new TPad("RatioPad1", "", 0., 1.-newheight/newheight2, 1., 1.-(newheight-fRatioHeight)/newheight2);
	fRatioPad1->SetBottomMargin(gStyle->GetPadBottomMargin()/fRatioHeight);

	// Second Ratio Pad NDC (overlap with first ratio intended!)
	fRatioPad2 = new TPad("RatioPad1", "", 0., 0., 1., fRatioHeight/newheight2);
	fRatioPad2->SetBottomMargin(gStyle->GetPadBottomMargin()/fRatioHeight);
    } else {
	fMainPad = new TPad("MainPad", "", 0., 0., 1., 1.);
	fRatioPad1 = 0;
	fRatioPad2 = 0;
    }

    if ( fCanvas != 0 ) 
	fCanvas->SetWindowSize(fCanvas->GetWindowWidth(),
			       fCanvas->GetWindowHeight()*(1 + NRatios*addspace));
    
    // store the original pad (this is not always a canvas)
    fCanvas = (TCanvas*) gPad;

}
	
//____________________________________________________________________

void HepDataMCPlot::DrawDataMCRatio() {
    //
    // Draw Data/MC ratio
    //
    // The data/mc ratio is plotted with dotted markers and their
    // uncertainty corresponds to the relative uncertainty from data.
    // Furthermore the uncertainty on the prediction (i.e. MC/MC) is
    // shown as shaded uncertainty band.
    //

    

    // Choose pad for ratio
    // (Currently always the first one!)
    TPad *padsav = (TPad*)gPad;
    fRatioPad1->Draw();
    fRatioPad1->cd();
    fRatioPad1->SetGrid();
    
    if ( fHistDATA == 0 ) {
	Error("DrawDataMCRatio", "Data histogram does not exist. Abort!");
	gSystem->Abort(0);
    } else if ( fHistMCTop == 0 ) {
	Error("DrawDataMCRatio", "Stack is not drawn. Draw stack first! Abort!");
	gSystem->Abort(0);
    }
    // Data
    TH1F *h_ratio = (TH1F*) fHistDATA->Clone("ratio");
    TH1F *h_error = (TH1F*) fHistMCTop->Clone("PredictionUncertainty");
    
    // Copy the uncertainty from the MCerrors graph
    // those include any uncertainties, e.g. normalization uncertainties
    for ( Int_t bin = 1; bin <= fHistMCTop->GetNbinsX(); bin++ ) {
        // note that the error graph points start at 0, bins start at 1.
        // GetErrorY() returns the mean of upper and lower error
        h_error->SetBinError(bin, fMCErrors->GetErrorY(bin-1));
	
	// then compute relative error for each bin
	if ( h_error->GetBinContent(bin) == 0 )
	    h_error->SetBinError(bin, 0.);
	else 
	    h_error->SetBinError(bin, h_error->GetBinError(bin)/h_error->GetBinContent(bin));
    }
    
    // Data, MC ratio:
    if ( fDataMCRatioCenterOne ) {
	// Data/MC
	h_ratio->Divide(fHistMCTop);
	// MC/MC (Prediction is 1)
	for ( Int_t bin = 1; bin <= h_error->GetNbinsX(); bin++ )
	    h_error->SetBinContent(bin, 1);

    } else {
	// (Data - MC)/MC
	h_ratio->Add(fHistMCTop, -1.);
	h_ratio->Divide(fHistMCTop);
	
	// (MC - MC)/MC (Prediction is 0)
	for ( Int_t bin = 1; bin <= h_error->GetNbinsX(); bin++ )
	    h_error->SetBinContent(bin, 0);
    }
    
    // Errors
    for (Int_t bin = 0; bin < h_error->GetNbinsX(); bin++) {
	// set relative data error
	if ( fHistMCTop->GetBinContent(bin) == 0 ) {
	    h_ratio->SetBinError(bin, 0.);
	} else {
	    h_ratio->SetBinError(bin, fHistDATA->GetBinError(bin)/fHistMCTop->GetBinContent(bin));
	}
    }
    
    // Setup style
    h_ratio->SetMarkerStyle(gStyle->GetMarkerStyle());
    h_ratio->SetMarkerSize(0.8*gStyle->GetMarkerSize());

    Double_t ymax = h_ratio->GetBinContent(h_ratio->GetMaximumBin());
    Double_t ymin = h_ratio->GetBinContent(h_ratio->GetMinimumBin());
    if ( fDataMCRatioCenterOne ) {
	ymax -= 1.;
	ymin -= 1.;
    }
    
    if ( ymax > 0. && ymin < 0. ) {
	ymin = TMath::Abs(ymin);
    } else if ( ymax < 0 && ymin < 0 ) {
	ymax = TMath::Abs(ymax);
	ymin = TMath::Abs(ymin);	    
    }
    Double_t yrange = ymax > ymin ? ymax*fAddRange/1.3 : ymin*fAddRange/1.3;
    
    if ( fDataMCRatioCenterOne ) {
	h_ratio->SetYTitle("Data / MC");
	h_ratio->SetMaximum(1+yrange);
	h_ratio->SetMinimum(1-yrange);
    } else {
	h_ratio->SetYTitle("Data/MC - 1"); // (Data - MC)/MC
	h_ratio->SetMaximum( yrange);
	h_ratio->SetMinimum(-yrange);
    }

    h_ratio->Draw("axis");

    if ( fDataMCRatioCenterOne ) {
	fRatioLine = new TLine(h_error->GetXaxis()->GetXmin(), 1.,
			 h_error->GetXaxis()->GetXmax(), 1.);
    } else {
	fRatioLine = new TLine(h_error->GetXaxis()->GetXmin(), 0.,
			 h_error->GetXaxis()->GetXmax(), 0.);
    }
    fRatioLine->SetHorizontal(kTRUE);
    fRatioLine->SetLineStyle(7);
    fRatioLine->SetLineColor(kBlack);
    fRatioLine->Draw();

    TGraphAsymmErrors *h_errorband = new TGraphAsymmErrors(h_error);
    h_errorband->SetFillStyle(3254);
    h_errorband->SetFillColor(16);
    h_errorband->SetLineColor(16);
    h_errorband->SetMarkerSize(0.);
    h_errorband->Draw("5,same");

    if ( fDrawDataErrorX )
	h_ratio->Draw("E0 P same");
    else
	h_ratio->Draw("E0 P X0 same");

    // Save pointer to histogram holding axis
    fHistogramRatioPad1 = h_ratio;

    // Redraw grid lines
    fRatioPad1->RedrawAxis("g");

    padsav->cd();
}

//____________________________________________________________________

void HepDataMCPlot::SetupAxis() {
    //
    // Setup axis labels and axis range
    //
    // Title size needs to be rescaled when using ratio plots. Size
    // depends whether axis is redrawn in the ratio pad or main pad.
    //

    // Scale for labels for subpads is given by 1./fRatioHeight
    if ( fDrawDataMCRatio && fDrawSignificance ) {
	// Setup second ratio plot if both ratios are drawn
	fHistogramRatioPad2->SetTitleSize(1./fRatioHeight*gStyle->GetTitleSize("X"), "X");
	fHistogramRatioPad2->SetLabelSize(1./fRatioHeight*gStyle->GetLabelSize("X"), "X");

	fHistogramRatioPad2->SetTitleSize(1./fRatioHeight*gStyle->GetTitleSize("Y"), "Y");
	fHistogramRatioPad2->SetLabelSize(1./fRatioHeight*gStyle->GetLabelSize("Y"), "Y");

	fHistogramRatioPad2->SetTitleFont(gStyle->GetTitleFont("X"), "X");
	fHistogramRatioPad2->SetTitleFont(gStyle->GetTitleFont("Y"), "Y");

	fHistogramRatioPad2->SetXTitle(fXTitle->Data());
	fHistogramRatioPad2->SetTitleOffset(gStyle->GetTitleOffset("X"),"X");
	fHistogramRatioPad2->SetTitleOffset(gStyle->GetTitleOffset("Y")*fRatioHeight,"Y");

	// reduce number of ticks on y-axis
	fHistogramRatioPad2->GetYaxis()->SetNdivisions(505);
	fHistogramRatioPad2->GetYaxis()->SetDecimals(kTRUE);
	fHistogramRatioPad2->GetXaxis()->SetDecimals(kTRUE);
    }
    
    if ( fDrawDataMCRatio || fDrawSignificance ) {
	// Setup first ratio
	if ( fDrawDataMCRatio && fDrawSignificance ) {
	    // if second ratio is present, don't draw titel and labels for the first one
	    fHistogramRatioPad1->SetTitleSize(0., "X");
	    fHistogramRatioPad1->SetLabelSize(0., "X");
	} else {
	    fHistogramRatioPad1->SetTitleSize(1./fRatioHeight*gStyle->GetTitleSize("X"), "X");
	    fHistogramRatioPad1->SetLabelSize(1./fRatioHeight*gStyle->GetLabelSize("X"), "X");
	}
	fHistogramRatioPad1->SetTitleSize(1./fRatioHeight*gStyle->GetTitleSize("Y"), "Y");
	fHistogramRatioPad1->SetLabelSize(1./fRatioHeight*gStyle->GetLabelSize("Y"), "Y");

	fHistogramRatioPad1->SetTitleFont(gStyle->GetTitleFont("X"), "X");
	fHistogramRatioPad1->SetTitleFont(gStyle->GetTitleFont("Y"), "Y");

	fHistogramRatioPad1->SetXTitle(fXTitle->Data());
	fHistogramRatioPad1->SetTitleOffset(gStyle->GetTitleOffset("X"),"X");
	fHistogramRatioPad1->SetTitleOffset(gStyle->GetTitleOffset("Y")*fRatioHeight,"Y");

	// reduce number of ticks on y-axis
	fHistogramRatioPad1->GetYaxis()->SetNdivisions(505);
	fHistogramRatioPad1->GetYaxis()->SetDecimals(kTRUE);
	fHistogramRatioPad1->GetXaxis()->SetDecimals(kTRUE);

	// Setup Main pad in case of ratios
	fHistogramMainPad->SetXTitle(fXTitle->Data());
	fHistogramMainPad->SetYTitle(fYTitle->Data());
	fHistogramMainPad->SetLabelSize(0., "X");
	fHistogramMainPad->SetTitleSize(0., "X");
    	fHistogramMainPad->GetXaxis()->SetDecimals(kTRUE);
	fHistogramMainPad->GetYaxis()->SetDecimals(kTRUE);
    }
    
    if ( !fDrawDataMCRatio && !fDrawSignificance ) {
	// If no ratio is drawn, restore the label size
	fHistogramMainPad->SetXTitle(fXTitle->Data());
	fHistogramMainPad->SetYTitle(fYTitle->Data());
	fHistogramMainPad->SetLabelSize(gStyle->GetLabelSize("X"), "X");
	fHistogramMainPad->SetTitleSize(gStyle->GetTitleSize("X"), "X");
    }
}

//____________________________________________________________________

void HepDataMCPlot::DrawSignificance() {
    //
    // Draw Significance
    //

    // Choose pad for ratio
    TPad *padsav = (TPad*)gPad;
    if ( fDrawDataMCRatio ) {
	// take the second pad
	fRatioPad2->Draw();
	fRatioPad2->cd();
	fRatioPad2->SetGrid();
    } else {
	// take the first
	fRatioPad1->Draw();
	fRatioPad1->cd();
	fRatioPad1->SetGrid();
    }

    if ( fHistDATA == 0 ) {
	Error("DrawDataMCRatio", "Data histogram does not exist. Abort!");
	gSystem->Abort(0);
    } else if ( fHistMCTop == 0 ) {
	Error("DrawDataMCRatio", "Stack is not drawn. Draw stack first! Abort!");
	gSystem->Abort(0);
    }

    TH1F *h_sigma = CompareHistograms(fHistDATA, fHistMCTop);
    h_sigma->SetYTitle("Significance");
    h_sigma->SetFillColor(kGray);

    Double_t ymax = h_sigma->GetBinContent(h_sigma->GetMaximumBin());
    Double_t ymin = h_sigma->GetBinContent(h_sigma->GetMinimumBin());
    
    if ( ymax > 0. && ymin < 0. ) {
	ymin = TMath::Abs(ymin);
    } else if ( ymax < 0 && ymin < 0 ) {
	ymax = TMath::Abs(ymax);
	ymin = TMath::Abs(ymin);	    
    }
    Double_t yrange = ymax > ymin ? ymax*fAddRange : ymin*fAddRange;
    h_sigma->SetMaximum( yrange);
    h_sigma->SetMinimum(-yrange);

    h_sigma->Draw("hist");

    if ( fDrawDataMCRatio && fDrawSignificance )
	fHistogramRatioPad2 = h_sigma;
    else
	fHistogramRatioPad1 = h_sigma;
    
    padsav->cd();
}

//____________________________________________________________________

TH1F* HepDataMCPlot::CompareHistograms(TH1* hObs, TH1* hExp,
				       bool neglectUncertainty,
				       bool variableBinning,
				       TH1* hPull) {
    //
    // Given two ROOT histograms (with the same binning!) containing the
    // observed and expected counts, create and return a histogram showing
    // the significance of their bin-to-bin discrepancies.
    //
    // If the histogram representing the expectation (second input
    // parameter) has non-zero bin "errors", these are considered the
    // standard deviations representing the full uncertainty and the
    // significance is computed accordingly, unless this is disabled (third
    // parameter).
    //
    // The last input pointer is the pull histogram, which is filled with
    // all z-values, without discarding the bins for which the p-value is
    // larger than 0.5: in case of ideal match, the pulls follow a standard
    // normal distribution.  A typical binnin for the pulls is from -5 to
    // +5 with 20 bins.
    //
    //
    // 
    // Code from 
    // "Plotting the Differences Between Data and Expectation"
    // by Georgios Choudalakis and Diego Casadei
    // Eur. Phys. J. Plus 127 (2012) 25 
    // http://dx.doi.org/10.1140/epjp/i2012-12025-y
    // (http://arxiv.org/abs/1111.2062)
    //
    // -----------------------------------------------------------------
    // This code is covered by the GNU General Public License:
    // http://www.gnu.org/licenses/gpl.html
    // -----------------------------------------------------------------
    // Diego Casadei <casadei@cern.ch> 7 Dec 2011
    //
    
    if (hObs==0 || hExp==0) {
	cerr << "ERROR in CompareHistograms(): invalid input" << endl;
	return 0;
    }
    TString name=hObs->GetName();
    name+="_cmp_";
    name+=hExp->GetName();
    int Nbins = hObs->GetNbinsX();
    if (Nbins != hExp->GetNbinsX()) {
	cerr << "ERROR in CompareHistograms(): different binning" << endl;
	return 0;
    }
    TH1F* hOut = 0;
    if (variableBinning) {
	hOut = new TH1F(name, "",
			hObs->GetXaxis()->GetNbins(),
			hObs->GetXaxis()->GetXbins()->GetArray());
    } else {
	hOut = new TH1F(name, "",
			Nbins,
			hObs->GetXaxis()->GetXmin(),
			hObs->GetXaxis()->GetXmax());
    }
    hOut->GetXaxis()->SetTitle( hObs->GetXaxis()->GetTitle() );
    hOut->GetYaxis()->SetTitle("significance");
    hOut->SetFillColor(2);
    
    for (int i=1; i<=Nbins; ++i) { // SKIP UNDER- AND OVER-FLOWS
	// if (hObs->GetBinContent(i)<=0) continue;
	
	unsigned nObs = (int) hObs->GetBinContent(i);
	float nExp = hExp->GetBinContent(i);
	float vrnc = hExp->GetBinError(i);
	vrnc *= vrnc; // variance
	float zValue = 0;
	float pValue = 1;
	if (vrnc>0 && !neglectUncertainty) {
	    // account for systematic uncertainty
	    pValue = pValuePoissonError(nObs, nExp, vrnc);
	} else {
	    // assume perfect knowledge of Poisson parameter
	    pValue = pValuePoisson(nObs,nExp);
	}
	zValue = pValueToSignificance(pValue, (nObs>nExp));
	if (pValue<0.5) hOut->SetBinContent(i, zValue);
	if (hPull) hPull->Fill(zValue);
    }
    
    return hOut;
}

//____________________________________________________________________

Double_t HepDataMCPlot::pja_normal_quantile(double p) {
    //
    //
    // Normal quantile computed following Peter John Acklam's
    // pseudo-code algorithm for rational approximation
    // (pjacklam@online.no) 
    // http://home.online.no/~pjacklam/notes/invnorm/
    //
    // The algorithm below assumes p is the input and x is the output.
    //
    //  Coefficients in rational approximations.
    //  a(1) <- -3.969683028665376e+01
    //  a(2) <-  2.209460984245205e+02
    //  a(3) <- -2.759285104469687e+02
    //  a(4) <-  1.383577518672690e+02
    //  a(5) <- -3.066479806614716e+01
    //  a(6) <-  2.506628277459239e+00
    //
    //  b(1) <- -5.447609879822406e+01
    //  b(2) <-  1.615858368580409e+02
    //  b(3) <- -1.556989798598866e+02
    //  b(4) <-  6.680131188771972e+01
    //  b(5) <- -1.328068155288572e+01
    //
    //  c(1) <- -7.784894002430293e-03
    //  c(2) <- -3.223964580411365e-01
    //  c(3) <- -2.400758277161838e+00
    //  c(4) <- -2.549732539343734e+00
    //  c(5) <-  4.374664141464968e+00
    //  c(6) <-  2.938163982698783e+00
    //
    //  d(1) <-  7.784695709041462e-03
    //  d(2) <-  3.224671290700398e-01
    //  d(3) <-  2.445134137142996e+00
    //  d(4) <-  3.754408661907416e+00
    //
    //  Define break-points.
    //
    //  p_low  <- 0.02425
    //  p_high <- 1 - p_low
    //
    //  Rational approximation for lower region.
    //
    //  if 0 < p < p_low
    //     q <- sqrt(-2*log(p))
    //     x <- (((((c(1)*q+c(2))*q+c(3))*q+c(4))*q+c(5))*q+c(6)) /
    //           ((((d(1)*q+d(2))*q+d(3))*q+d(4))*q+1)
    //  endif
    //
    //  Rational approximation for central region.
    //
    //  if p_low <= p <= p_high
    //     q <- p - 0.5
    //     r <- q*q
    //     x <- (((((a(1)*r+a(2))*r+a(3))*r+a(4))*r+a(5))*r+a(6))*q /
    //          (((((b(1)*r+b(2))*r+b(3))*r+b(4))*r+b(5))*r+1)
    //  endif
    //
    //  Rational approximation for upper region.
    //
    //  if p_high < p < 1
    //     q <- sqrt(-2*log(1-p))
    //     x <- -(((((c(1)*q+c(2))*q+c(3))*q+c(4))*q+c(5))*q+c(6)) /
    //            ((((d(1)*q+d(2))*q+d(3))*q+d(4))*q+1)
    //  endif
    //
    // The absolute value of the relative error (x_approx - x)/x is
    // <= 1.15e-9 for all input values p which can be represented in
    // IEEE double precision arithmetic.
    //
    //
    //
    //
    // Code from
    // "Plotting the Differences Between Data and Expectation"
    // by Georgios Choudalakis and Diego Casadei
    // Eur. Phys. J. Plus 127 (2012) 25 
    // http://dx.doi.org/10.1140/epjp/i2012-12025-y
    // (http://arxiv.org/abs/1111.2062)
    //
    // -----------------------------------------------------------------
    // This code is covered by the GNU General Public License:
    // http://www.gnu.org/licenses/gpl.html
    // -----------------------------------------------------------------
    //
    
    
    double a[6] = {
	-3.969683028665376e+01, // a(1) -> a[0]
	 2.209460984245205e+02, // a(2)
	-2.759285104469687e+02, // a(3)
	 1.383577518672690e+02, // a(4)
	-3.066479806614716e+01, // a(5)
	 2.506628277459239e+00, // a(6) -> a[5]
    };
    
    double b[5] = {
	-5.447609879822406e+01, // b(1) -> b[0]
	 1.615858368580409e+02, // b(2)
	-1.556989798598866e+02, // b(3)
	 6.680131188771972e+01, // b(4)
	-1.328068155288572e+01, // b(5) -> b[4]
    };
    
    double c[6] = {
	-7.784894002430293e-03, // c(1) -> c[0]
	-3.223964580411365e-01, // c(2)
	-2.400758277161838e+00, // c(3)
	-2.549732539343734e+00, // c(4)
	 4.374664141464968e+00, // c(5)
	 2.938163982698783e+00, // c(6) -> c[5]
    };
    
    double d[4] = {
	7.784695709041462e-03, // d(1) -> d[0]
	3.224671290700398e-01, // d(2)
	2.445134137142996e+00, // d(3)
	3.754408661907416e+00, // d(4) -> d[3]
    };
    
    // Define break-points.
    double p_low  = 0.02425;
    double p_high = 1 - p_low;
    
    // output value
    double x=0;
    
    // Rational approximation for lower region.
    if (0 < p && p < p_low) {
	double q = sqrt(-2*log(p));
	x = (((((c[0]*q+c[1])*q+c[2])*q+c[3])*q+c[4])*q+c[5]) /
	    ((((d[0]*q+d[1])*q+d[2])*q+d[3])*q+1);
    }
    // Rational approximation for central region.
    else if (p_low <= p && p <= p_high) {
	double q = p - 0.5;
	double r = q*q;
	x = (((((a[0]*r+a[1])*r+a[2])*r+a[3])*r+a[4])*r+a[5])*q /
	    (((((b[0]*r+b[1])*r+b[2])*r+b[3])*r+b[4])*r+1);
    }
    // Rational approximation for upper region.
    else if (p_high < p && p < 1) {
	double q = sqrt(-2*log(1-p));
	x = -(((((c[0]*q+c[1])*q+c[2])*q+c[3])*q+c[4])*q+c[5]) /
	    ((((d[0]*q+d[1])*q+d[2])*q+d[3])*q+1);
    }
    
    return x;
}

//____________________________________________________________________

Double_t HepDataMCPlot::pValuePoisson(unsigned nObs, double nExp) {
    //
    // p-value for Poisson distribution, no uncertainty on the parameter
    // -----------------------------------------------------------------
    //
    // Diego Casadei <casadei@cern.ch>   Oct 2011
    // Last update: 4 Nov 2011 (using incomplete Gamma from ROOT)
    // -----------------------------------------------------------------
    //
    // Consider Poi(k|nExp) and compute the p-value which corresponds to
    // the observation of nObs counts.
    //
    // When nObs > nExp there is an excess of observed events and
    //
    //   p-value = P(n>=nObs|nExp) = \sum_{n=nObs}^{\infty} Poi(n|nExp)
    //           = 1 - \sum_{n=0}^{nObs-1} Poi(n|nExp)
    //           = 1 - e^{-nExp} \sum_{n=0}^{nObs-1} nExp^n / n!
    //
    // Otherwise (nObs <= nExp) there is a deficit and
    //
    //   p-value = P(n<=nObs|nExp) = \sum_{n=0}^{nObs} Poi(n|nExp)
    //           = e^{-nExp} \sum_{n=0}^{nObs} nExp^n / n!
    //
    //
    //
    // Code from
    // "Plotting the Differences Between Data and Expectation"
    // by Georgios Choudalakis and Diego Casadei
    // Eur. Phys. J. Plus 127 (2012) 25 
    // http://dx.doi.org/10.1140/epjp/i2012-12025-y
    // (http://arxiv.org/abs/1111.2062)
    //
    // -----------------------------------------------------------------
    // This code is covered by the GNU General Public License:
    // http://www.gnu.org/licenses/gpl.html
    // -----------------------------------------------------------------

    if (nExp==0) return 0.5;
    if (nExp<0) {
	cerr << "ERROR in pValuePoisson(): invalid expectation = " << nExp
	     << " returning 0.5" << endl;
	return 0.5;
    }
    
    // ROOT provides everything:
    if (nObs>nExp) // excess
	return ROOT::Math::inc_gamma(nObs,nExp);
    else // deficit
	return ROOT::Math::inc_gamma_c(nObs+1,nExp);
}

//____________________________________________________________________

Double_t HepDataMCPlot::pValuePoissonError(unsigned nObs,
					   double E,
					   double V) {
    //
    //  p-value for Poisson distribution when there is uncertainty on the
    // parameter
    //
    // -----------------------------------------------------------------
    //
    // Diego Casadei <casadei@cern.ch>  6 Nov 2011
    // Last update: 3 Mar 2012 (logarithms used only for big numbers)
    //
    // -----------------------------------------------------------------
    //
    // Consider Poi(k|nExp) and compute the p-value which corresponds to
    // the observation of nObs counts, in the case of uncertain nExp whose
    // variance is provided.
    //
    // The prior for nExp is a Gamma density which matches the expectation
    // and variance provided as input.  The marginal model is provided by
    // the Poisson-Gamma mixture, which is used to compute the p-value.
    //
    // Gamma density: the parameters are
    //  * a = shape param  [dimensionless]
    //  * b = rate param   [dimension: inverse of x]
    //
    //   nExp ~ Ga(x|a,b) = [b^a/Gamma(a)] x^{a-1} exp(-bx)
    //
    // One has E[x] = a/b and V[x] = a/b^2 hence
    //  * b = E/V
    //  * a = E*b
    //
    // The integral of Poi(n|x) Ga(x|a,b) over x gives the (marginal)
    // probability of observing n counts as
    //
    //               b^a [Gamma(n+a) / Gamma(a)]
    //   P(n|a,b) = -----------------------------
    //                      n! (1+b)^{n+a}
    //
    // When nObs > nExp there is an excess of observed events and
    //
    //   p-value = P(n>=nObs) = \sum_{n=nObs}^{\infty} P(n)
    //           = 1 - \sum_{n=0}^{nObs-1} P(n)
    //
    // Otherwise (nObs <= nExp) there is a deficit and
    //
    //   p-value = P(n<=nObs) = \sum_{n=0}^{nObs} P(n)
    //
    // To compute the sum, we use the following recurrent relation:
    //
    //   P(n=0) = [b/(1+b)]^a
    //   P(n=1) = [b/(1+b)]^a a/(1+b) = P(n=0) a/(1+b)
    //   P(n=2) = [b/(1+b)]^a a/(1+b) (a+1)/[2(1+b)] = P(n=1) (a+1)/[2(1+b)]
    //   ...        ...
    //   P(n=k) = P(n=k-1) (a+k-1) / [k(1+b)]
    //
    // and to avoid rounding errors, we work with logarithms.
    //
    //
    // Code from
    // "Plotting the Differences Between Data and Expectation"
    // by Georgios Choudalakis and Diego Casadei
    // Eur. Phys. J. Plus 127 (2012) 25 
    // http://dx.doi.org/10.1140/epjp/i2012-12025-y
    // (http://arxiv.org/abs/1111.2062)
    //
    // -----------------------------------------------------------------
    // This code is covered by the GNU General Public License:
    // http://www.gnu.org/licenses/gpl.html
    // -----------------------------------------------------------------
    if (E<=0 || V<=0) {
	cerr << "ERROR in pValuePoissonError(): expectation and variance must be positive. "
	     << "Returning 0.5" << endl;
	return 0.5;
    }
    double B = E/V;
    double A = E*B;
    
    // relative syst = sqrt(V)/E = 1/sqrt(A)
    // relative stat = 1/sqrt(nObs)
    // if syst < 0.1*stat there is no need for syst:
    // save a bit of CPU time :-)
    // if (A>100*nObs) return pValuePoisson(nObs,E); // UNCOMMENT TO SPEED-UP
    if (A>100) { // need to use logarithms
	
	unsigned stop=nObs;
	if (nObs>E) --stop;
	
	/// NB: must work in log-scale otherwise troubles!
	double logProb = A*log(B/(1+B));
	double sum=exp(logProb); // P(n=0)
	for (unsigned u=1; u<=stop; ++u) {
	    logProb += log((A+u-1)/(u*(1+B)));
	    sum += exp(logProb);
	}
	if (nObs>E)  // excess
	    return 1-sum;
	else  // deficit
	    return sum;
	
    } else {
	
	// Recursive formula: P(n;A,B) = P(n-1;A,B) (A+n-1)/(n*(1+B))
	double p0 = pow(B/(1+B),A); // P(0;A,B)
	double nExp = A/B;
	if (nObs>nExp) {// excess
	    double pLast = p0;
	    double sum = p0;
	    for (unsigned k=1; k<=nObs-1; ++k) {
		double p = pLast * (A+k-1) / (k*(1+B));
		// cout << Form("Excess: P(%d;%8.5g) = %8.5g and sum = %8.5g",k-1,nExp,pLast,sum) << " -> ";
		sum += p;
		pLast = p;
		// cout << Form("P(%d;%8.5g) = %8.5g and sum = %8.5g",k,nExp,pLast,sum) << endl;
	    }
	    return 1-sum;
	} else {// deficit
	    double pLast = p0;
	    double sum = p0;
	    for (unsigned k=1; k<=nObs; ++k) {
		// cout << Form("Deficit: P(%d;%8.5g) = %8.5g and sum = %8.5g",k-1,nExp,pLast,sum) << " -> ";
		double p = pLast * (A+k-1) / (k*(1+B));
		sum += p;
		pLast = p;
		// cout << Form("P(%d;%8.5g) = %8.5g and sum = %8.5g",k,nExp,pLast,sum) << endl;
	    }
	    return sum;
	}
    }
}


//____________________________________________________________________

Double_t HepDataMCPlot::pValueToSignificance(double p, bool excess) {
    //
    // Convert a p-value into a right-tail normal significance, i.e. into
    // the number of Gaussian standard deviations which correspond to it.
    // -----------------------------------------------------------------
    // Code from
    // "Plotting the Differences Between Data and Expectation"
    // by Georgios Choudalakis and Diego Casadei
    // Eur. Phys. J. Plus 127 (2012) 25 
    // http://dx.doi.org/10.1140/epjp/i2012-12025-y
    // (http://arxiv.org/abs/1111.2062)
    //
    // -----------------------------------------------------------------
    // This code is covered by the GNU General Public License:
    // http://www.gnu.org/licenses/gpl.html
    // -----------------------------------------------------------------
    
    if (p<0 || p>1) {
	cerr << "ERROR: p-value must belong to [0,1] but input value is " << p << endl;
	return 0;
    }
    /*
      if (excess) 
      return TMath::normal_quantile(1-p,1);
      else
      return TMath::normal_quantile(p,1);
    */
    
    if (excess) 
	return pja_normal_quantile(1-p);
    else
	return pja_normal_quantile(p);
}


//____________________________________________________________________

void HepDataMCPlot::OptimizeBinning(Double_t zs, Double_t zb,
				    Bool_t DrawStack) {
    //
    // Optimize binning for given HepDataMCPlot
    // (this plot should have many bin (~100 - ~1000)
    // 
    // To optimize the binning, the quantity Z_ij
    // 
    // BEGIN_LATEX
    // Z(i,j) = z_{S}*#frac{n_{S}(i,j)}{N_S} + z_{B}*#frac{n_{B}(i,j)}{N_B}
    // END_LATEX
    // 
    // with
    //
    // BEGIN_LATEX(separator='=', align='rl')
    // n_{S(B)}(i,j) = #text{Number of signal (bkg) events with indices between i and j}
    // N_{S(B)} = #text{Number of signal (bkg) events}
    // END_LATEX
    //
    // is computed. BEGIN_LATEX z_{S} END_LATEX and BEGIN_LATEX z_{B} END_LATEX are parameters for adjusting the number of bins.
    // 
    // The binning is determined in a iterative procedure. Starting with
    // BEGIN_LATEX i = j = k, #text{with} k_{last bin} END_LATEX , then
    //  1) Compute BEGIN_LATEX Z(i,j) END_LATEX
    //  2) Check if BEGIN_LATEX Z(i,j) > 1 && #sqrt{n_B(i,j)} < 0.1 END_LATEX
    //  2.a) Condition is true  -> Merge all bins from i to j
    //                             Set j = i-1 and go back to 1)
    //  2.b) Condition is false -> Reduce i by one and go back to 1).
    //
    //  Repeat this until i == 1.
    //
    
    const Int_t maxbins = 51; // 50 bins (bin numbering starts with 1)

    TList *hists_mc = GetListOfMCTemplates("binning");
    // Assume that signal is last histogram in the stack
    TH1F *h_sig = (TH1F*) hists_mc->Last();
    TH1F *h_bkg = (TH1F*) ((TH1F*) hists_mc->At(0))->Clone("bkg");
    for ( Int_t i = 1; i < hists_mc->GetEntries() - 1; i++ ) {
	// ToDo: Find smart way to skip samples
	// TString name = hists_mc->At(i)->GetName();
	// if ( name.Contains("wjetsLF") ) {
	//     cout << name.Data() << endl;
	//     continue;
	// }
	h_bkg->Add((TH1F*) hists_mc->At(i));
    }

    Double_t Ns = h_sig->Integral();
    Double_t Nb = h_bkg->Integral();
    
    // sum of weights for sqrt(B) computation
    // TArrayD *sig_sw2 = h_sig->GetSumw2();
    TArrayD *bkg_sw2 = h_bkg->GetSumw2();

    // Assume that 50 is the maximum number of bins after rebinning
    // Store array of low binedges (in reversed order)
    Double_t lowbinedges[maxbins];
    Int_t binnumbers[maxbins];

    for ( Int_t a = 0; a < maxbins; a++ ) { lowbinedges[a] = 0.; }

    cout << "Bin |  Binrange | S/B | S/sqrt(B) |" << endl;
		
    Int_t nbins = 1;
    for ( Int_t j = h_sig->GetNbinsX(); j > 0; j-- ) {
	Double_t Zij = 0;
	Double_t ns_ij = 0;
	Double_t nb_ij = 0;
	Double_t bkg_err = 0;
	
	Int_t i = j;
	for (; i > 0; i-- ) {
	    ns_ij += h_sig->GetBinContent(i);
	    nb_ij += h_bkg->GetBinContent(i);
	    bkg_err += bkg_sw2->At(i);
	    
	    Zij = zs*ns_ij/Ns + zb*nb_ij/Nb;
	    if ( (Zij > 1. && sqrt(bkg_err)/Nb < 0.1)
		 || i == 1 ) {
		lowbinedges[nbins] = h_sig->GetXaxis()->GetBinLowEdge(i);
		binnumbers[nbins] = j;
		
		std::cout.precision(8);
		// printf("%-3d | %-4d-%-4d | %-3.3f |    %-3.3f    |\n",
		//        nbins, i, j,
		//        ns_ij/nb_ij, ns_ij/sqrt(bkg_err));
		nbins++;
		if ( nbins == maxbins ) {
		    Error("OptimizeBinning",
			  "Maximum number of allowed bins reached. Stop.");
		    return;
		}
		break;
	    }
	}
	j = i;
    }
    
    // set last bin's low edge
    // --> it's the low edge of the overflow bin
    //
    // the first bin's low edge is already set
    // nbins is here already the overflow bin, no '+1' needed!
    Int_t lastbin = h_sig->GetNbinsX();
    lowbinedges[0] = h_sig->GetXaxis()->GetBinLowEdge(lastbin+1);

    // Array stores the bin numbers of the upper edges
    // Thus this is the underflow bin's upper edge, which is zero.
    binnumbers[nbins] = 0.;
    
    // Print Binarray
    cout << "Array[" << nbins << "] = {" ;
    for ( Int_t bin = nbins-1; bin >= 0; bin-- ) {
	printf("%8.8f", lowbinedges[bin]);
	if ( bin > 0 ) cout << ", ";
	else cout << "}" << endl;
    }

    // Create empty histograms for filling rebinned histogram
    // Assume that 50 is the maximum number of bins after rebining
    if ( DrawStack ) {
	THStack *stack = new THStack;

	Bool_t rebinData = kTRUE;
	TH1F *hdata = new TH1F("hist_data", "hist_data", nbins-1, 0., 1.);

	for ( Int_t l = 0; l < hists_mc->GetEntries(); l++ ) {
	    
	    // Create Histogram with correct number of bins
	    TH1F *hist = new TH1F(Form("hist_%d", l), Form("hist_%d", l),
				  nbins-1, 0., 1.);

	    // Rebin each Histogram
	    TH1F *h_org = (TH1F*) hists_mc->At(l);
	    
	    // We need to iterate backwards through binnumbers!
	    Int_t bin = 1;
	    for ( Int_t m = nbins; m > 1; m-- ) {

		if ( rebinData ) {
		    Double_t val2 = fHistDATA->Integral(binnumbers[m] + 1, binnumbers[m-1]);
		    hdata->SetBinContent(bin, val2);
		}
		
		Double_t val = h_org->Integral(binnumbers[m] + 1, binnumbers[m-1]);
		hist->SetBinContent(bin, val);
		bin++;
	    }

	    rebinData = kFALSE;
	    
	    // Adjust colors
	    hist->SetFillColor(h_org->GetFillColor());
	    hist->SetLineColor(h_org->GetFillColor());
	    hist->SetLineWidth(1);
	    hist->SetFillStyle(1001);
	    
	    cout << hist->Integral() << endl;
	    
	    // Add hist to Stack
	    stack->Add(hist);
	}
	stack->Draw();
	hdata->Draw("same");
    }
}

//____________________________________________________________________

void HepDataMCPlot::SetScaleOverlay(Float_t ScaleOverlay) {
    //
    // Scale factor of the overlay histogram (see
    // SetDrawSignalOverlay())
    //
    fScaleOverlay = ScaleOverlay;
    if ( gPad ) Draw();
}

//____________________________________________________________________

void HepDataMCPlot::SetDrawSignalOverlay(Bool_t DrawSignalOverlay) {
    //
    // Flag for drawing the signal MC (assumed to be the least entry
    // in the MC histogram stack) as overlay instead as part of the
    // stack
    //
    fDrawSignalOverlay = DrawSignalOverlay;
    if ( gPad ) Draw();
}
 HepDataMCPlot.cxx:1
 HepDataMCPlot.cxx:2
 HepDataMCPlot.cxx:3
 HepDataMCPlot.cxx:4
 HepDataMCPlot.cxx:5
 HepDataMCPlot.cxx:6
 HepDataMCPlot.cxx:7
 HepDataMCPlot.cxx:8
 HepDataMCPlot.cxx:9
 HepDataMCPlot.cxx:10
 HepDataMCPlot.cxx:11
 HepDataMCPlot.cxx:12
 HepDataMCPlot.cxx:13
 HepDataMCPlot.cxx:14
 HepDataMCPlot.cxx:15
 HepDataMCPlot.cxx:16
 HepDataMCPlot.cxx:17
 HepDataMCPlot.cxx:18
 HepDataMCPlot.cxx:19
 HepDataMCPlot.cxx:20
 HepDataMCPlot.cxx:21
 HepDataMCPlot.cxx:22
 HepDataMCPlot.cxx:23
 HepDataMCPlot.cxx:24
 HepDataMCPlot.cxx:25
 HepDataMCPlot.cxx:26
 HepDataMCPlot.cxx:27
 HepDataMCPlot.cxx:28
 HepDataMCPlot.cxx:29
 HepDataMCPlot.cxx:30
 HepDataMCPlot.cxx:31
 HepDataMCPlot.cxx:32
 HepDataMCPlot.cxx:33
 HepDataMCPlot.cxx:34
 HepDataMCPlot.cxx:35
 HepDataMCPlot.cxx:36
 HepDataMCPlot.cxx:37
 HepDataMCPlot.cxx:38
 HepDataMCPlot.cxx:39
 HepDataMCPlot.cxx:40
 HepDataMCPlot.cxx:41
 HepDataMCPlot.cxx:42
 HepDataMCPlot.cxx:43
 HepDataMCPlot.cxx:44
 HepDataMCPlot.cxx:45
 HepDataMCPlot.cxx:46
 HepDataMCPlot.cxx:47
 HepDataMCPlot.cxx:48
 HepDataMCPlot.cxx:49
 HepDataMCPlot.cxx:50
 HepDataMCPlot.cxx:51
 HepDataMCPlot.cxx:52
 HepDataMCPlot.cxx:53
 HepDataMCPlot.cxx:54
 HepDataMCPlot.cxx:55
 HepDataMCPlot.cxx:56
 HepDataMCPlot.cxx:57
 HepDataMCPlot.cxx:58
 HepDataMCPlot.cxx:59
 HepDataMCPlot.cxx:60
 HepDataMCPlot.cxx:61
 HepDataMCPlot.cxx:62
 HepDataMCPlot.cxx:63
 HepDataMCPlot.cxx:64
 HepDataMCPlot.cxx:65
 HepDataMCPlot.cxx:66
 HepDataMCPlot.cxx:67
 HepDataMCPlot.cxx:68
 HepDataMCPlot.cxx:69
 HepDataMCPlot.cxx:70
 HepDataMCPlot.cxx:71
 HepDataMCPlot.cxx:72
 HepDataMCPlot.cxx:73
 HepDataMCPlot.cxx:74
 HepDataMCPlot.cxx:75
 HepDataMCPlot.cxx:76
 HepDataMCPlot.cxx:77
 HepDataMCPlot.cxx:78
 HepDataMCPlot.cxx:79
 HepDataMCPlot.cxx:80
 HepDataMCPlot.cxx:81
 HepDataMCPlot.cxx:82
 HepDataMCPlot.cxx:83
 HepDataMCPlot.cxx:84
 HepDataMCPlot.cxx:85
 HepDataMCPlot.cxx:86
 HepDataMCPlot.cxx:87
 HepDataMCPlot.cxx:88
 HepDataMCPlot.cxx:89
 HepDataMCPlot.cxx:90
 HepDataMCPlot.cxx:91
 HepDataMCPlot.cxx:92
 HepDataMCPlot.cxx:93
 HepDataMCPlot.cxx:94
 HepDataMCPlot.cxx:95
 HepDataMCPlot.cxx:96
 HepDataMCPlot.cxx:97
 HepDataMCPlot.cxx:98
 HepDataMCPlot.cxx:99
 HepDataMCPlot.cxx:100
 HepDataMCPlot.cxx:101
 HepDataMCPlot.cxx:102
 HepDataMCPlot.cxx:103
 HepDataMCPlot.cxx:104
 HepDataMCPlot.cxx:105
 HepDataMCPlot.cxx:106
 HepDataMCPlot.cxx:107
 HepDataMCPlot.cxx:108
 HepDataMCPlot.cxx:109
 HepDataMCPlot.cxx:110
 HepDataMCPlot.cxx:111
 HepDataMCPlot.cxx:112
 HepDataMCPlot.cxx:113
 HepDataMCPlot.cxx:114
 HepDataMCPlot.cxx:115
 HepDataMCPlot.cxx:116
 HepDataMCPlot.cxx:117
 HepDataMCPlot.cxx:118
 HepDataMCPlot.cxx:119
 HepDataMCPlot.cxx:120
 HepDataMCPlot.cxx:121
 HepDataMCPlot.cxx:122
 HepDataMCPlot.cxx:123
 HepDataMCPlot.cxx:124
 HepDataMCPlot.cxx:125
 HepDataMCPlot.cxx:126
 HepDataMCPlot.cxx:127
 HepDataMCPlot.cxx:128
 HepDataMCPlot.cxx:129
 HepDataMCPlot.cxx:130
 HepDataMCPlot.cxx:131
 HepDataMCPlot.cxx:132
 HepDataMCPlot.cxx:133
 HepDataMCPlot.cxx:134
 HepDataMCPlot.cxx:135
 HepDataMCPlot.cxx:136
 HepDataMCPlot.cxx:137
 HepDataMCPlot.cxx:138
 HepDataMCPlot.cxx:139
 HepDataMCPlot.cxx:140
 HepDataMCPlot.cxx:141
 HepDataMCPlot.cxx:142
 HepDataMCPlot.cxx:143
 HepDataMCPlot.cxx:144
 HepDataMCPlot.cxx:145
 HepDataMCPlot.cxx:146
 HepDataMCPlot.cxx:147
 HepDataMCPlot.cxx:148
 HepDataMCPlot.cxx:149
 HepDataMCPlot.cxx:150
 HepDataMCPlot.cxx:151
 HepDataMCPlot.cxx:152
 HepDataMCPlot.cxx:153
 HepDataMCPlot.cxx:154
 HepDataMCPlot.cxx:155
 HepDataMCPlot.cxx:156
 HepDataMCPlot.cxx:157
 HepDataMCPlot.cxx:158
 HepDataMCPlot.cxx:159
 HepDataMCPlot.cxx:160
 HepDataMCPlot.cxx:161
 HepDataMCPlot.cxx:162
 HepDataMCPlot.cxx:163
 HepDataMCPlot.cxx:164
 HepDataMCPlot.cxx:165
 HepDataMCPlot.cxx:166
 HepDataMCPlot.cxx:167
 HepDataMCPlot.cxx:168
 HepDataMCPlot.cxx:169
 HepDataMCPlot.cxx:170
 HepDataMCPlot.cxx:171
 HepDataMCPlot.cxx:172
 HepDataMCPlot.cxx:173
 HepDataMCPlot.cxx:174
 HepDataMCPlot.cxx:175
 HepDataMCPlot.cxx:176
 HepDataMCPlot.cxx:177
 HepDataMCPlot.cxx:178
 HepDataMCPlot.cxx:179
 HepDataMCPlot.cxx:180
 HepDataMCPlot.cxx:181
 HepDataMCPlot.cxx:182
 HepDataMCPlot.cxx:183
 HepDataMCPlot.cxx:184
 HepDataMCPlot.cxx:185
 HepDataMCPlot.cxx:186
 HepDataMCPlot.cxx:187
 HepDataMCPlot.cxx:188
 HepDataMCPlot.cxx:189
 HepDataMCPlot.cxx:190
 HepDataMCPlot.cxx:191
 HepDataMCPlot.cxx:192
 HepDataMCPlot.cxx:193
 HepDataMCPlot.cxx:194
 HepDataMCPlot.cxx:195
 HepDataMCPlot.cxx:196
 HepDataMCPlot.cxx:197
 HepDataMCPlot.cxx:198
 HepDataMCPlot.cxx:199
 HepDataMCPlot.cxx:200
 HepDataMCPlot.cxx:201
 HepDataMCPlot.cxx:202
 HepDataMCPlot.cxx:203
 HepDataMCPlot.cxx:204
 HepDataMCPlot.cxx:205
 HepDataMCPlot.cxx:206
 HepDataMCPlot.cxx:207
 HepDataMCPlot.cxx:208
 HepDataMCPlot.cxx:209
 HepDataMCPlot.cxx:210
 HepDataMCPlot.cxx:211
 HepDataMCPlot.cxx:212
 HepDataMCPlot.cxx:213
 HepDataMCPlot.cxx:214
 HepDataMCPlot.cxx:215
 HepDataMCPlot.cxx:216
 HepDataMCPlot.cxx:217
 HepDataMCPlot.cxx:218
 HepDataMCPlot.cxx:219
 HepDataMCPlot.cxx:220
 HepDataMCPlot.cxx:221
 HepDataMCPlot.cxx:222
 HepDataMCPlot.cxx:223
 HepDataMCPlot.cxx:224
 HepDataMCPlot.cxx:225
 HepDataMCPlot.cxx:226
 HepDataMCPlot.cxx:227
 HepDataMCPlot.cxx:228
 HepDataMCPlot.cxx:229
 HepDataMCPlot.cxx:230
 HepDataMCPlot.cxx:231
 HepDataMCPlot.cxx:232
 HepDataMCPlot.cxx:233
 HepDataMCPlot.cxx:234
 HepDataMCPlot.cxx:235
 HepDataMCPlot.cxx:236
 HepDataMCPlot.cxx:237
 HepDataMCPlot.cxx:238
 HepDataMCPlot.cxx:239
 HepDataMCPlot.cxx:240
 HepDataMCPlot.cxx:241
 HepDataMCPlot.cxx:242
 HepDataMCPlot.cxx:243
 HepDataMCPlot.cxx:244
 HepDataMCPlot.cxx:245
 HepDataMCPlot.cxx:246
 HepDataMCPlot.cxx:247
 HepDataMCPlot.cxx:248
 HepDataMCPlot.cxx:249
 HepDataMCPlot.cxx:250
 HepDataMCPlot.cxx:251
 HepDataMCPlot.cxx:252
 HepDataMCPlot.cxx:253
 HepDataMCPlot.cxx:254
 HepDataMCPlot.cxx:255
 HepDataMCPlot.cxx:256
 HepDataMCPlot.cxx:257
 HepDataMCPlot.cxx:258
 HepDataMCPlot.cxx:259
 HepDataMCPlot.cxx:260
 HepDataMCPlot.cxx:261
 HepDataMCPlot.cxx:262
 HepDataMCPlot.cxx:263
 HepDataMCPlot.cxx:264
 HepDataMCPlot.cxx:265
 HepDataMCPlot.cxx:266
 HepDataMCPlot.cxx:267
 HepDataMCPlot.cxx:268
 HepDataMCPlot.cxx:269
 HepDataMCPlot.cxx:270
 HepDataMCPlot.cxx:271
 HepDataMCPlot.cxx:272
 HepDataMCPlot.cxx:273
 HepDataMCPlot.cxx:274
 HepDataMCPlot.cxx:275
 HepDataMCPlot.cxx:276
 HepDataMCPlot.cxx:277
 HepDataMCPlot.cxx:278
 HepDataMCPlot.cxx:279
 HepDataMCPlot.cxx:280
 HepDataMCPlot.cxx:281
 HepDataMCPlot.cxx:282
 HepDataMCPlot.cxx:283
 HepDataMCPlot.cxx:284
 HepDataMCPlot.cxx:285
 HepDataMCPlot.cxx:286
 HepDataMCPlot.cxx:287
 HepDataMCPlot.cxx:288
 HepDataMCPlot.cxx:289
 HepDataMCPlot.cxx:290
 HepDataMCPlot.cxx:291
 HepDataMCPlot.cxx:292
 HepDataMCPlot.cxx:293
 HepDataMCPlot.cxx:294
 HepDataMCPlot.cxx:295
 HepDataMCPlot.cxx:296
 HepDataMCPlot.cxx:297
 HepDataMCPlot.cxx:298
 HepDataMCPlot.cxx:299
 HepDataMCPlot.cxx:300
 HepDataMCPlot.cxx:301
 HepDataMCPlot.cxx:302
 HepDataMCPlot.cxx:303
 HepDataMCPlot.cxx:304
 HepDataMCPlot.cxx:305
 HepDataMCPlot.cxx:306
 HepDataMCPlot.cxx:307
 HepDataMCPlot.cxx:308
 HepDataMCPlot.cxx:309
 HepDataMCPlot.cxx:310
 HepDataMCPlot.cxx:311
 HepDataMCPlot.cxx:312
 HepDataMCPlot.cxx:313
 HepDataMCPlot.cxx:314
 HepDataMCPlot.cxx:315
 HepDataMCPlot.cxx:316
 HepDataMCPlot.cxx:317
 HepDataMCPlot.cxx:318
 HepDataMCPlot.cxx:319
 HepDataMCPlot.cxx:320
 HepDataMCPlot.cxx:321
 HepDataMCPlot.cxx:322
 HepDataMCPlot.cxx:323
 HepDataMCPlot.cxx:324
 HepDataMCPlot.cxx:325
 HepDataMCPlot.cxx:326
 HepDataMCPlot.cxx:327
 HepDataMCPlot.cxx:328
 HepDataMCPlot.cxx:329
 HepDataMCPlot.cxx:330
 HepDataMCPlot.cxx:331
 HepDataMCPlot.cxx:332
 HepDataMCPlot.cxx:333
 HepDataMCPlot.cxx:334
 HepDataMCPlot.cxx:335
 HepDataMCPlot.cxx:336
 HepDataMCPlot.cxx:337
 HepDataMCPlot.cxx:338
 HepDataMCPlot.cxx:339
 HepDataMCPlot.cxx:340
 HepDataMCPlot.cxx:341
 HepDataMCPlot.cxx:342
 HepDataMCPlot.cxx:343
 HepDataMCPlot.cxx:344
 HepDataMCPlot.cxx:345
 HepDataMCPlot.cxx:346
 HepDataMCPlot.cxx:347
 HepDataMCPlot.cxx:348
 HepDataMCPlot.cxx:349
 HepDataMCPlot.cxx:350
 HepDataMCPlot.cxx:351
 HepDataMCPlot.cxx:352
 HepDataMCPlot.cxx:353
 HepDataMCPlot.cxx:354
 HepDataMCPlot.cxx:355
 HepDataMCPlot.cxx:356
 HepDataMCPlot.cxx:357
 HepDataMCPlot.cxx:358
 HepDataMCPlot.cxx:359
 HepDataMCPlot.cxx:360
 HepDataMCPlot.cxx:361
 HepDataMCPlot.cxx:362
 HepDataMCPlot.cxx:363
 HepDataMCPlot.cxx:364
 HepDataMCPlot.cxx:365
 HepDataMCPlot.cxx:366
 HepDataMCPlot.cxx:367
 HepDataMCPlot.cxx:368
 HepDataMCPlot.cxx:369
 HepDataMCPlot.cxx:370
 HepDataMCPlot.cxx:371
 HepDataMCPlot.cxx:372
 HepDataMCPlot.cxx:373
 HepDataMCPlot.cxx:374
 HepDataMCPlot.cxx:375
 HepDataMCPlot.cxx:376
 HepDataMCPlot.cxx:377
 HepDataMCPlot.cxx:378
 HepDataMCPlot.cxx:379
 HepDataMCPlot.cxx:380
 HepDataMCPlot.cxx:381
 HepDataMCPlot.cxx:382
 HepDataMCPlot.cxx:383
 HepDataMCPlot.cxx:384
 HepDataMCPlot.cxx:385
 HepDataMCPlot.cxx:386
 HepDataMCPlot.cxx:387
 HepDataMCPlot.cxx:388
 HepDataMCPlot.cxx:389
 HepDataMCPlot.cxx:390
 HepDataMCPlot.cxx:391
 HepDataMCPlot.cxx:392
 HepDataMCPlot.cxx:393
 HepDataMCPlot.cxx:394
 HepDataMCPlot.cxx:395
 HepDataMCPlot.cxx:396
 HepDataMCPlot.cxx:397
 HepDataMCPlot.cxx:398
 HepDataMCPlot.cxx:399
 HepDataMCPlot.cxx:400
 HepDataMCPlot.cxx:401
 HepDataMCPlot.cxx:402
 HepDataMCPlot.cxx:403
 HepDataMCPlot.cxx:404
 HepDataMCPlot.cxx:405
 HepDataMCPlot.cxx:406
 HepDataMCPlot.cxx:407
 HepDataMCPlot.cxx:408
 HepDataMCPlot.cxx:409
 HepDataMCPlot.cxx:410
 HepDataMCPlot.cxx:411
 HepDataMCPlot.cxx:412
 HepDataMCPlot.cxx:413
 HepDataMCPlot.cxx:414
 HepDataMCPlot.cxx:415
 HepDataMCPlot.cxx:416
 HepDataMCPlot.cxx:417
 HepDataMCPlot.cxx:418
 HepDataMCPlot.cxx:419
 HepDataMCPlot.cxx:420
 HepDataMCPlot.cxx:421
 HepDataMCPlot.cxx:422
 HepDataMCPlot.cxx:423
 HepDataMCPlot.cxx:424
 HepDataMCPlot.cxx:425
 HepDataMCPlot.cxx:426
 HepDataMCPlot.cxx:427
 HepDataMCPlot.cxx:428
 HepDataMCPlot.cxx:429
 HepDataMCPlot.cxx:430
 HepDataMCPlot.cxx:431
 HepDataMCPlot.cxx:432
 HepDataMCPlot.cxx:433
 HepDataMCPlot.cxx:434
 HepDataMCPlot.cxx:435
 HepDataMCPlot.cxx:436
 HepDataMCPlot.cxx:437
 HepDataMCPlot.cxx:438
 HepDataMCPlot.cxx:439
 HepDataMCPlot.cxx:440
 HepDataMCPlot.cxx:441
 HepDataMCPlot.cxx:442
 HepDataMCPlot.cxx:443
 HepDataMCPlot.cxx:444
 HepDataMCPlot.cxx:445
 HepDataMCPlot.cxx:446
 HepDataMCPlot.cxx:447
 HepDataMCPlot.cxx:448
 HepDataMCPlot.cxx:449
 HepDataMCPlot.cxx:450
 HepDataMCPlot.cxx:451
 HepDataMCPlot.cxx:452
 HepDataMCPlot.cxx:453
 HepDataMCPlot.cxx:454
 HepDataMCPlot.cxx:455
 HepDataMCPlot.cxx:456
 HepDataMCPlot.cxx:457
 HepDataMCPlot.cxx:458
 HepDataMCPlot.cxx:459
 HepDataMCPlot.cxx:460
 HepDataMCPlot.cxx:461
 HepDataMCPlot.cxx:462
 HepDataMCPlot.cxx:463
 HepDataMCPlot.cxx:464
 HepDataMCPlot.cxx:465
 HepDataMCPlot.cxx:466
 HepDataMCPlot.cxx:467
 HepDataMCPlot.cxx:468
 HepDataMCPlot.cxx:469
 HepDataMCPlot.cxx:470
 HepDataMCPlot.cxx:471
 HepDataMCPlot.cxx:472
 HepDataMCPlot.cxx:473
 HepDataMCPlot.cxx:474
 HepDataMCPlot.cxx:475
 HepDataMCPlot.cxx:476
 HepDataMCPlot.cxx:477
 HepDataMCPlot.cxx:478
 HepDataMCPlot.cxx:479
 HepDataMCPlot.cxx:480
 HepDataMCPlot.cxx:481
 HepDataMCPlot.cxx:482
 HepDataMCPlot.cxx:483
 HepDataMCPlot.cxx:484
 HepDataMCPlot.cxx:485
 HepDataMCPlot.cxx:486
 HepDataMCPlot.cxx:487
 HepDataMCPlot.cxx:488
 HepDataMCPlot.cxx:489
 HepDataMCPlot.cxx:490
 HepDataMCPlot.cxx:491
 HepDataMCPlot.cxx:492
 HepDataMCPlot.cxx:493
 HepDataMCPlot.cxx:494
 HepDataMCPlot.cxx:495
 HepDataMCPlot.cxx:496
 HepDataMCPlot.cxx:497
 HepDataMCPlot.cxx:498
 HepDataMCPlot.cxx:499
 HepDataMCPlot.cxx:500
 HepDataMCPlot.cxx:501
 HepDataMCPlot.cxx:502
 HepDataMCPlot.cxx:503
 HepDataMCPlot.cxx:504
 HepDataMCPlot.cxx:505
 HepDataMCPlot.cxx:506
 HepDataMCPlot.cxx:507
 HepDataMCPlot.cxx:508
 HepDataMCPlot.cxx:509
 HepDataMCPlot.cxx:510
 HepDataMCPlot.cxx:511
 HepDataMCPlot.cxx:512
 HepDataMCPlot.cxx:513
 HepDataMCPlot.cxx:514
 HepDataMCPlot.cxx:515
 HepDataMCPlot.cxx:516
 HepDataMCPlot.cxx:517
 HepDataMCPlot.cxx:518
 HepDataMCPlot.cxx:519
 HepDataMCPlot.cxx:520
 HepDataMCPlot.cxx:521
 HepDataMCPlot.cxx:522
 HepDataMCPlot.cxx:523
 HepDataMCPlot.cxx:524
 HepDataMCPlot.cxx:525
 HepDataMCPlot.cxx:526
 HepDataMCPlot.cxx:527
 HepDataMCPlot.cxx:528
 HepDataMCPlot.cxx:529
 HepDataMCPlot.cxx:530
 HepDataMCPlot.cxx:531
 HepDataMCPlot.cxx:532
 HepDataMCPlot.cxx:533
 HepDataMCPlot.cxx:534
 HepDataMCPlot.cxx:535
 HepDataMCPlot.cxx:536
 HepDataMCPlot.cxx:537
 HepDataMCPlot.cxx:538
 HepDataMCPlot.cxx:539
 HepDataMCPlot.cxx:540
 HepDataMCPlot.cxx:541
 HepDataMCPlot.cxx:542
 HepDataMCPlot.cxx:543
 HepDataMCPlot.cxx:544
 HepDataMCPlot.cxx:545
 HepDataMCPlot.cxx:546
 HepDataMCPlot.cxx:547
 HepDataMCPlot.cxx:548
 HepDataMCPlot.cxx:549
 HepDataMCPlot.cxx:550
 HepDataMCPlot.cxx:551
 HepDataMCPlot.cxx:552
 HepDataMCPlot.cxx:553
 HepDataMCPlot.cxx:554
 HepDataMCPlot.cxx:555
 HepDataMCPlot.cxx:556
 HepDataMCPlot.cxx:557
 HepDataMCPlot.cxx:558
 HepDataMCPlot.cxx:559
 HepDataMCPlot.cxx:560
 HepDataMCPlot.cxx:561
 HepDataMCPlot.cxx:562
 HepDataMCPlot.cxx:563
 HepDataMCPlot.cxx:564
 HepDataMCPlot.cxx:565
 HepDataMCPlot.cxx:566
 HepDataMCPlot.cxx:567
 HepDataMCPlot.cxx:568
 HepDataMCPlot.cxx:569
 HepDataMCPlot.cxx:570
 HepDataMCPlot.cxx:571
 HepDataMCPlot.cxx:572
 HepDataMCPlot.cxx:573
 HepDataMCPlot.cxx:574
 HepDataMCPlot.cxx:575
 HepDataMCPlot.cxx:576
 HepDataMCPlot.cxx:577
 HepDataMCPlot.cxx:578
 HepDataMCPlot.cxx:579
 HepDataMCPlot.cxx:580
 HepDataMCPlot.cxx:581
 HepDataMCPlot.cxx:582
 HepDataMCPlot.cxx:583
 HepDataMCPlot.cxx:584
 HepDataMCPlot.cxx:585
 HepDataMCPlot.cxx:586
 HepDataMCPlot.cxx:587
 HepDataMCPlot.cxx:588
 HepDataMCPlot.cxx:589
 HepDataMCPlot.cxx:590
 HepDataMCPlot.cxx:591
 HepDataMCPlot.cxx:592
 HepDataMCPlot.cxx:593
 HepDataMCPlot.cxx:594
 HepDataMCPlot.cxx:595
 HepDataMCPlot.cxx:596
 HepDataMCPlot.cxx:597
 HepDataMCPlot.cxx:598
 HepDataMCPlot.cxx:599
 HepDataMCPlot.cxx:600
 HepDataMCPlot.cxx:601
 HepDataMCPlot.cxx:602
 HepDataMCPlot.cxx:603
 HepDataMCPlot.cxx:604
 HepDataMCPlot.cxx:605
 HepDataMCPlot.cxx:606
 HepDataMCPlot.cxx:607
 HepDataMCPlot.cxx:608
 HepDataMCPlot.cxx:609
 HepDataMCPlot.cxx:610
 HepDataMCPlot.cxx:611
 HepDataMCPlot.cxx:612
 HepDataMCPlot.cxx:613
 HepDataMCPlot.cxx:614
 HepDataMCPlot.cxx:615
 HepDataMCPlot.cxx:616
 HepDataMCPlot.cxx:617
 HepDataMCPlot.cxx:618
 HepDataMCPlot.cxx:619
 HepDataMCPlot.cxx:620
 HepDataMCPlot.cxx:621
 HepDataMCPlot.cxx:622
 HepDataMCPlot.cxx:623
 HepDataMCPlot.cxx:624
 HepDataMCPlot.cxx:625
 HepDataMCPlot.cxx:626
 HepDataMCPlot.cxx:627
 HepDataMCPlot.cxx:628
 HepDataMCPlot.cxx:629
 HepDataMCPlot.cxx:630
 HepDataMCPlot.cxx:631
 HepDataMCPlot.cxx:632
 HepDataMCPlot.cxx:633
 HepDataMCPlot.cxx:634
 HepDataMCPlot.cxx:635
 HepDataMCPlot.cxx:636
 HepDataMCPlot.cxx:637
 HepDataMCPlot.cxx:638
 HepDataMCPlot.cxx:639
 HepDataMCPlot.cxx:640
 HepDataMCPlot.cxx:641
 HepDataMCPlot.cxx:642
 HepDataMCPlot.cxx:643
 HepDataMCPlot.cxx:644
 HepDataMCPlot.cxx:645
 HepDataMCPlot.cxx:646
 HepDataMCPlot.cxx:647
 HepDataMCPlot.cxx:648
 HepDataMCPlot.cxx:649
 HepDataMCPlot.cxx:650
 HepDataMCPlot.cxx:651
 HepDataMCPlot.cxx:652
 HepDataMCPlot.cxx:653
 HepDataMCPlot.cxx:654
 HepDataMCPlot.cxx:655
 HepDataMCPlot.cxx:656
 HepDataMCPlot.cxx:657
 HepDataMCPlot.cxx:658
 HepDataMCPlot.cxx:659
 HepDataMCPlot.cxx:660
 HepDataMCPlot.cxx:661
 HepDataMCPlot.cxx:662
 HepDataMCPlot.cxx:663
 HepDataMCPlot.cxx:664
 HepDataMCPlot.cxx:665
 HepDataMCPlot.cxx:666
 HepDataMCPlot.cxx:667
 HepDataMCPlot.cxx:668
 HepDataMCPlot.cxx:669
 HepDataMCPlot.cxx:670
 HepDataMCPlot.cxx:671
 HepDataMCPlot.cxx:672
 HepDataMCPlot.cxx:673
 HepDataMCPlot.cxx:674
 HepDataMCPlot.cxx:675
 HepDataMCPlot.cxx:676
 HepDataMCPlot.cxx:677
 HepDataMCPlot.cxx:678
 HepDataMCPlot.cxx:679
 HepDataMCPlot.cxx:680
 HepDataMCPlot.cxx:681
 HepDataMCPlot.cxx:682
 HepDataMCPlot.cxx:683
 HepDataMCPlot.cxx:684
 HepDataMCPlot.cxx:685
 HepDataMCPlot.cxx:686
 HepDataMCPlot.cxx:687
 HepDataMCPlot.cxx:688
 HepDataMCPlot.cxx:689
 HepDataMCPlot.cxx:690
 HepDataMCPlot.cxx:691
 HepDataMCPlot.cxx:692
 HepDataMCPlot.cxx:693
 HepDataMCPlot.cxx:694
 HepDataMCPlot.cxx:695
 HepDataMCPlot.cxx:696
 HepDataMCPlot.cxx:697
 HepDataMCPlot.cxx:698
 HepDataMCPlot.cxx:699
 HepDataMCPlot.cxx:700
 HepDataMCPlot.cxx:701
 HepDataMCPlot.cxx:702
 HepDataMCPlot.cxx:703
 HepDataMCPlot.cxx:704
 HepDataMCPlot.cxx:705
 HepDataMCPlot.cxx:706
 HepDataMCPlot.cxx:707
 HepDataMCPlot.cxx:708
 HepDataMCPlot.cxx:709
 HepDataMCPlot.cxx:710
 HepDataMCPlot.cxx:711
 HepDataMCPlot.cxx:712
 HepDataMCPlot.cxx:713
 HepDataMCPlot.cxx:714
 HepDataMCPlot.cxx:715
 HepDataMCPlot.cxx:716
 HepDataMCPlot.cxx:717
 HepDataMCPlot.cxx:718
 HepDataMCPlot.cxx:719
 HepDataMCPlot.cxx:720
 HepDataMCPlot.cxx:721
 HepDataMCPlot.cxx:722
 HepDataMCPlot.cxx:723
 HepDataMCPlot.cxx:724
 HepDataMCPlot.cxx:725
 HepDataMCPlot.cxx:726
 HepDataMCPlot.cxx:727
 HepDataMCPlot.cxx:728
 HepDataMCPlot.cxx:729
 HepDataMCPlot.cxx:730
 HepDataMCPlot.cxx:731
 HepDataMCPlot.cxx:732
 HepDataMCPlot.cxx:733
 HepDataMCPlot.cxx:734
 HepDataMCPlot.cxx:735
 HepDataMCPlot.cxx:736
 HepDataMCPlot.cxx:737
 HepDataMCPlot.cxx:738
 HepDataMCPlot.cxx:739
 HepDataMCPlot.cxx:740
 HepDataMCPlot.cxx:741
 HepDataMCPlot.cxx:742
 HepDataMCPlot.cxx:743
 HepDataMCPlot.cxx:744
 HepDataMCPlot.cxx:745
 HepDataMCPlot.cxx:746
 HepDataMCPlot.cxx:747
 HepDataMCPlot.cxx:748
 HepDataMCPlot.cxx:749
 HepDataMCPlot.cxx:750
 HepDataMCPlot.cxx:751
 HepDataMCPlot.cxx:752
 HepDataMCPlot.cxx:753
 HepDataMCPlot.cxx:754
 HepDataMCPlot.cxx:755
 HepDataMCPlot.cxx:756
 HepDataMCPlot.cxx:757
 HepDataMCPlot.cxx:758
 HepDataMCPlot.cxx:759
 HepDataMCPlot.cxx:760
 HepDataMCPlot.cxx:761
 HepDataMCPlot.cxx:762
 HepDataMCPlot.cxx:763
 HepDataMCPlot.cxx:764
 HepDataMCPlot.cxx:765
 HepDataMCPlot.cxx:766
 HepDataMCPlot.cxx:767
 HepDataMCPlot.cxx:768
 HepDataMCPlot.cxx:769
 HepDataMCPlot.cxx:770
 HepDataMCPlot.cxx:771
 HepDataMCPlot.cxx:772
 HepDataMCPlot.cxx:773
 HepDataMCPlot.cxx:774
 HepDataMCPlot.cxx:775
 HepDataMCPlot.cxx:776
 HepDataMCPlot.cxx:777
 HepDataMCPlot.cxx:778
 HepDataMCPlot.cxx:779
 HepDataMCPlot.cxx:780
 HepDataMCPlot.cxx:781
 HepDataMCPlot.cxx:782
 HepDataMCPlot.cxx:783
 HepDataMCPlot.cxx:784
 HepDataMCPlot.cxx:785
 HepDataMCPlot.cxx:786
 HepDataMCPlot.cxx:787
 HepDataMCPlot.cxx:788
 HepDataMCPlot.cxx:789
 HepDataMCPlot.cxx:790
 HepDataMCPlot.cxx:791
 HepDataMCPlot.cxx:792
 HepDataMCPlot.cxx:793
 HepDataMCPlot.cxx:794
 HepDataMCPlot.cxx:795
 HepDataMCPlot.cxx:796
 HepDataMCPlot.cxx:797
 HepDataMCPlot.cxx:798
 HepDataMCPlot.cxx:799
 HepDataMCPlot.cxx:800
 HepDataMCPlot.cxx:801
 HepDataMCPlot.cxx:802
 HepDataMCPlot.cxx:803
 HepDataMCPlot.cxx:804
 HepDataMCPlot.cxx:805
 HepDataMCPlot.cxx:806
 HepDataMCPlot.cxx:807
 HepDataMCPlot.cxx:808
 HepDataMCPlot.cxx:809
 HepDataMCPlot.cxx:810
 HepDataMCPlot.cxx:811
 HepDataMCPlot.cxx:812
 HepDataMCPlot.cxx:813
 HepDataMCPlot.cxx:814
 HepDataMCPlot.cxx:815
 HepDataMCPlot.cxx:816
 HepDataMCPlot.cxx:817
 HepDataMCPlot.cxx:818
 HepDataMCPlot.cxx:819
 HepDataMCPlot.cxx:820
 HepDataMCPlot.cxx:821
 HepDataMCPlot.cxx:822
 HepDataMCPlot.cxx:823
 HepDataMCPlot.cxx:824
 HepDataMCPlot.cxx:825
 HepDataMCPlot.cxx:826
 HepDataMCPlot.cxx:827
 HepDataMCPlot.cxx:828
 HepDataMCPlot.cxx:829
 HepDataMCPlot.cxx:830
 HepDataMCPlot.cxx:831
 HepDataMCPlot.cxx:832
 HepDataMCPlot.cxx:833
 HepDataMCPlot.cxx:834
 HepDataMCPlot.cxx:835
 HepDataMCPlot.cxx:836
 HepDataMCPlot.cxx:837
 HepDataMCPlot.cxx:838
 HepDataMCPlot.cxx:839
 HepDataMCPlot.cxx:840
 HepDataMCPlot.cxx:841
 HepDataMCPlot.cxx:842
 HepDataMCPlot.cxx:843
 HepDataMCPlot.cxx:844
 HepDataMCPlot.cxx:845
 HepDataMCPlot.cxx:846
 HepDataMCPlot.cxx:847
 HepDataMCPlot.cxx:848
 HepDataMCPlot.cxx:849
 HepDataMCPlot.cxx:850
 HepDataMCPlot.cxx:851
 HepDataMCPlot.cxx:852
 HepDataMCPlot.cxx:853
 HepDataMCPlot.cxx:854
 HepDataMCPlot.cxx:855
 HepDataMCPlot.cxx:856
 HepDataMCPlot.cxx:857
 HepDataMCPlot.cxx:858
 HepDataMCPlot.cxx:859
 HepDataMCPlot.cxx:860
 HepDataMCPlot.cxx:861
 HepDataMCPlot.cxx:862
 HepDataMCPlot.cxx:863
 HepDataMCPlot.cxx:864
 HepDataMCPlot.cxx:865
 HepDataMCPlot.cxx:866
 HepDataMCPlot.cxx:867
 HepDataMCPlot.cxx:868
 HepDataMCPlot.cxx:869
 HepDataMCPlot.cxx:870
 HepDataMCPlot.cxx:871
 HepDataMCPlot.cxx:872
 HepDataMCPlot.cxx:873
 HepDataMCPlot.cxx:874
 HepDataMCPlot.cxx:875
 HepDataMCPlot.cxx:876
 HepDataMCPlot.cxx:877
 HepDataMCPlot.cxx:878
 HepDataMCPlot.cxx:879
 HepDataMCPlot.cxx:880
 HepDataMCPlot.cxx:881
 HepDataMCPlot.cxx:882
 HepDataMCPlot.cxx:883
 HepDataMCPlot.cxx:884
 HepDataMCPlot.cxx:885
 HepDataMCPlot.cxx:886
 HepDataMCPlot.cxx:887
 HepDataMCPlot.cxx:888
 HepDataMCPlot.cxx:889
 HepDataMCPlot.cxx:890
 HepDataMCPlot.cxx:891
 HepDataMCPlot.cxx:892
 HepDataMCPlot.cxx:893
 HepDataMCPlot.cxx:894
 HepDataMCPlot.cxx:895
 HepDataMCPlot.cxx:896
 HepDataMCPlot.cxx:897
 HepDataMCPlot.cxx:898
 HepDataMCPlot.cxx:899
 HepDataMCPlot.cxx:900
 HepDataMCPlot.cxx:901
 HepDataMCPlot.cxx:902
 HepDataMCPlot.cxx:903
 HepDataMCPlot.cxx:904
 HepDataMCPlot.cxx:905
 HepDataMCPlot.cxx:906
 HepDataMCPlot.cxx:907
 HepDataMCPlot.cxx:908
 HepDataMCPlot.cxx:909
 HepDataMCPlot.cxx:910
 HepDataMCPlot.cxx:911
 HepDataMCPlot.cxx:912
 HepDataMCPlot.cxx:913
 HepDataMCPlot.cxx:914
 HepDataMCPlot.cxx:915
 HepDataMCPlot.cxx:916
 HepDataMCPlot.cxx:917
 HepDataMCPlot.cxx:918
 HepDataMCPlot.cxx:919
 HepDataMCPlot.cxx:920
 HepDataMCPlot.cxx:921
 HepDataMCPlot.cxx:922
 HepDataMCPlot.cxx:923
 HepDataMCPlot.cxx:924
 HepDataMCPlot.cxx:925
 HepDataMCPlot.cxx:926
 HepDataMCPlot.cxx:927
 HepDataMCPlot.cxx:928
 HepDataMCPlot.cxx:929
 HepDataMCPlot.cxx:930
 HepDataMCPlot.cxx:931
 HepDataMCPlot.cxx:932
 HepDataMCPlot.cxx:933
 HepDataMCPlot.cxx:934
 HepDataMCPlot.cxx:935
 HepDataMCPlot.cxx:936
 HepDataMCPlot.cxx:937
 HepDataMCPlot.cxx:938
 HepDataMCPlot.cxx:939
 HepDataMCPlot.cxx:940
 HepDataMCPlot.cxx:941
 HepDataMCPlot.cxx:942
 HepDataMCPlot.cxx:943
 HepDataMCPlot.cxx:944
 HepDataMCPlot.cxx:945
 HepDataMCPlot.cxx:946
 HepDataMCPlot.cxx:947
 HepDataMCPlot.cxx:948
 HepDataMCPlot.cxx:949
 HepDataMCPlot.cxx:950
 HepDataMCPlot.cxx:951
 HepDataMCPlot.cxx:952
 HepDataMCPlot.cxx:953
 HepDataMCPlot.cxx:954
 HepDataMCPlot.cxx:955
 HepDataMCPlot.cxx:956
 HepDataMCPlot.cxx:957
 HepDataMCPlot.cxx:958
 HepDataMCPlot.cxx:959
 HepDataMCPlot.cxx:960
 HepDataMCPlot.cxx:961
 HepDataMCPlot.cxx:962
 HepDataMCPlot.cxx:963
 HepDataMCPlot.cxx:964
 HepDataMCPlot.cxx:965
 HepDataMCPlot.cxx:966
 HepDataMCPlot.cxx:967
 HepDataMCPlot.cxx:968
 HepDataMCPlot.cxx:969
 HepDataMCPlot.cxx:970
 HepDataMCPlot.cxx:971
 HepDataMCPlot.cxx:972
 HepDataMCPlot.cxx:973
 HepDataMCPlot.cxx:974
 HepDataMCPlot.cxx:975
 HepDataMCPlot.cxx:976
 HepDataMCPlot.cxx:977
 HepDataMCPlot.cxx:978
 HepDataMCPlot.cxx:979
 HepDataMCPlot.cxx:980
 HepDataMCPlot.cxx:981
 HepDataMCPlot.cxx:982
 HepDataMCPlot.cxx:983
 HepDataMCPlot.cxx:984
 HepDataMCPlot.cxx:985
 HepDataMCPlot.cxx:986
 HepDataMCPlot.cxx:987
 HepDataMCPlot.cxx:988
 HepDataMCPlot.cxx:989
 HepDataMCPlot.cxx:990
 HepDataMCPlot.cxx:991
 HepDataMCPlot.cxx:992
 HepDataMCPlot.cxx:993
 HepDataMCPlot.cxx:994
 HepDataMCPlot.cxx:995
 HepDataMCPlot.cxx:996
 HepDataMCPlot.cxx:997
 HepDataMCPlot.cxx:998
 HepDataMCPlot.cxx:999
 HepDataMCPlot.cxx:1000
 HepDataMCPlot.cxx:1001
 HepDataMCPlot.cxx:1002
 HepDataMCPlot.cxx:1003
 HepDataMCPlot.cxx:1004
 HepDataMCPlot.cxx:1005
 HepDataMCPlot.cxx:1006
 HepDataMCPlot.cxx:1007
 HepDataMCPlot.cxx:1008
 HepDataMCPlot.cxx:1009
 HepDataMCPlot.cxx:1010
 HepDataMCPlot.cxx:1011
 HepDataMCPlot.cxx:1012
 HepDataMCPlot.cxx:1013
 HepDataMCPlot.cxx:1014
 HepDataMCPlot.cxx:1015
 HepDataMCPlot.cxx:1016
 HepDataMCPlot.cxx:1017
 HepDataMCPlot.cxx:1018
 HepDataMCPlot.cxx:1019
 HepDataMCPlot.cxx:1020
 HepDataMCPlot.cxx:1021
 HepDataMCPlot.cxx:1022
 HepDataMCPlot.cxx:1023
 HepDataMCPlot.cxx:1024
 HepDataMCPlot.cxx:1025
 HepDataMCPlot.cxx:1026
 HepDataMCPlot.cxx:1027
 HepDataMCPlot.cxx:1028
 HepDataMCPlot.cxx:1029
 HepDataMCPlot.cxx:1030
 HepDataMCPlot.cxx:1031
 HepDataMCPlot.cxx:1032
 HepDataMCPlot.cxx:1033
 HepDataMCPlot.cxx:1034
 HepDataMCPlot.cxx:1035
 HepDataMCPlot.cxx:1036
 HepDataMCPlot.cxx:1037
 HepDataMCPlot.cxx:1038
 HepDataMCPlot.cxx:1039
 HepDataMCPlot.cxx:1040
 HepDataMCPlot.cxx:1041
 HepDataMCPlot.cxx:1042
 HepDataMCPlot.cxx:1043
 HepDataMCPlot.cxx:1044
 HepDataMCPlot.cxx:1045
 HepDataMCPlot.cxx:1046
 HepDataMCPlot.cxx:1047
 HepDataMCPlot.cxx:1048
 HepDataMCPlot.cxx:1049
 HepDataMCPlot.cxx:1050
 HepDataMCPlot.cxx:1051
 HepDataMCPlot.cxx:1052
 HepDataMCPlot.cxx:1053
 HepDataMCPlot.cxx:1054
 HepDataMCPlot.cxx:1055
 HepDataMCPlot.cxx:1056
 HepDataMCPlot.cxx:1057
 HepDataMCPlot.cxx:1058
 HepDataMCPlot.cxx:1059
 HepDataMCPlot.cxx:1060
 HepDataMCPlot.cxx:1061
 HepDataMCPlot.cxx:1062
 HepDataMCPlot.cxx:1063
 HepDataMCPlot.cxx:1064
 HepDataMCPlot.cxx:1065
 HepDataMCPlot.cxx:1066
 HepDataMCPlot.cxx:1067
 HepDataMCPlot.cxx:1068
 HepDataMCPlot.cxx:1069
 HepDataMCPlot.cxx:1070
 HepDataMCPlot.cxx:1071
 HepDataMCPlot.cxx:1072
 HepDataMCPlot.cxx:1073
 HepDataMCPlot.cxx:1074
 HepDataMCPlot.cxx:1075
 HepDataMCPlot.cxx:1076
 HepDataMCPlot.cxx:1077
 HepDataMCPlot.cxx:1078
 HepDataMCPlot.cxx:1079
 HepDataMCPlot.cxx:1080
 HepDataMCPlot.cxx:1081
 HepDataMCPlot.cxx:1082
 HepDataMCPlot.cxx:1083
 HepDataMCPlot.cxx:1084
 HepDataMCPlot.cxx:1085
 HepDataMCPlot.cxx:1086
 HepDataMCPlot.cxx:1087
 HepDataMCPlot.cxx:1088
 HepDataMCPlot.cxx:1089
 HepDataMCPlot.cxx:1090
 HepDataMCPlot.cxx:1091
 HepDataMCPlot.cxx:1092
 HepDataMCPlot.cxx:1093
 HepDataMCPlot.cxx:1094
 HepDataMCPlot.cxx:1095
 HepDataMCPlot.cxx:1096
 HepDataMCPlot.cxx:1097
 HepDataMCPlot.cxx:1098
 HepDataMCPlot.cxx:1099
 HepDataMCPlot.cxx:1100
 HepDataMCPlot.cxx:1101
 HepDataMCPlot.cxx:1102
 HepDataMCPlot.cxx:1103
 HepDataMCPlot.cxx:1104
 HepDataMCPlot.cxx:1105
 HepDataMCPlot.cxx:1106
 HepDataMCPlot.cxx:1107
 HepDataMCPlot.cxx:1108
 HepDataMCPlot.cxx:1109
 HepDataMCPlot.cxx:1110
 HepDataMCPlot.cxx:1111
 HepDataMCPlot.cxx:1112
 HepDataMCPlot.cxx:1113
 HepDataMCPlot.cxx:1114
 HepDataMCPlot.cxx:1115
 HepDataMCPlot.cxx:1116
 HepDataMCPlot.cxx:1117
 HepDataMCPlot.cxx:1118
 HepDataMCPlot.cxx:1119
 HepDataMCPlot.cxx:1120
 HepDataMCPlot.cxx:1121
 HepDataMCPlot.cxx:1122
 HepDataMCPlot.cxx:1123
 HepDataMCPlot.cxx:1124
 HepDataMCPlot.cxx:1125
 HepDataMCPlot.cxx:1126
 HepDataMCPlot.cxx:1127
 HepDataMCPlot.cxx:1128
 HepDataMCPlot.cxx:1129
 HepDataMCPlot.cxx:1130
 HepDataMCPlot.cxx:1131
 HepDataMCPlot.cxx:1132
 HepDataMCPlot.cxx:1133
 HepDataMCPlot.cxx:1134
 HepDataMCPlot.cxx:1135
 HepDataMCPlot.cxx:1136
 HepDataMCPlot.cxx:1137
 HepDataMCPlot.cxx:1138
 HepDataMCPlot.cxx:1139
 HepDataMCPlot.cxx:1140
 HepDataMCPlot.cxx:1141
 HepDataMCPlot.cxx:1142
 HepDataMCPlot.cxx:1143
 HepDataMCPlot.cxx:1144
 HepDataMCPlot.cxx:1145
 HepDataMCPlot.cxx:1146
 HepDataMCPlot.cxx:1147
 HepDataMCPlot.cxx:1148
 HepDataMCPlot.cxx:1149
 HepDataMCPlot.cxx:1150
 HepDataMCPlot.cxx:1151
 HepDataMCPlot.cxx:1152
 HepDataMCPlot.cxx:1153
 HepDataMCPlot.cxx:1154
 HepDataMCPlot.cxx:1155
 HepDataMCPlot.cxx:1156
 HepDataMCPlot.cxx:1157
 HepDataMCPlot.cxx:1158
 HepDataMCPlot.cxx:1159
 HepDataMCPlot.cxx:1160
 HepDataMCPlot.cxx:1161
 HepDataMCPlot.cxx:1162
 HepDataMCPlot.cxx:1163
 HepDataMCPlot.cxx:1164
 HepDataMCPlot.cxx:1165
 HepDataMCPlot.cxx:1166
 HepDataMCPlot.cxx:1167
 HepDataMCPlot.cxx:1168
 HepDataMCPlot.cxx:1169
 HepDataMCPlot.cxx:1170
 HepDataMCPlot.cxx:1171
 HepDataMCPlot.cxx:1172
 HepDataMCPlot.cxx:1173
 HepDataMCPlot.cxx:1174
 HepDataMCPlot.cxx:1175
 HepDataMCPlot.cxx:1176
 HepDataMCPlot.cxx:1177
 HepDataMCPlot.cxx:1178
 HepDataMCPlot.cxx:1179
 HepDataMCPlot.cxx:1180
 HepDataMCPlot.cxx:1181
 HepDataMCPlot.cxx:1182
 HepDataMCPlot.cxx:1183
 HepDataMCPlot.cxx:1184
 HepDataMCPlot.cxx:1185
 HepDataMCPlot.cxx:1186
 HepDataMCPlot.cxx:1187
 HepDataMCPlot.cxx:1188
 HepDataMCPlot.cxx:1189
 HepDataMCPlot.cxx:1190
 HepDataMCPlot.cxx:1191
 HepDataMCPlot.cxx:1192
 HepDataMCPlot.cxx:1193
 HepDataMCPlot.cxx:1194
 HepDataMCPlot.cxx:1195
 HepDataMCPlot.cxx:1196
 HepDataMCPlot.cxx:1197
 HepDataMCPlot.cxx:1198
 HepDataMCPlot.cxx:1199
 HepDataMCPlot.cxx:1200
 HepDataMCPlot.cxx:1201
 HepDataMCPlot.cxx:1202
 HepDataMCPlot.cxx:1203
 HepDataMCPlot.cxx:1204
 HepDataMCPlot.cxx:1205
 HepDataMCPlot.cxx:1206
 HepDataMCPlot.cxx:1207
 HepDataMCPlot.cxx:1208
 HepDataMCPlot.cxx:1209
 HepDataMCPlot.cxx:1210
 HepDataMCPlot.cxx:1211
 HepDataMCPlot.cxx:1212
 HepDataMCPlot.cxx:1213
 HepDataMCPlot.cxx:1214
 HepDataMCPlot.cxx:1215
 HepDataMCPlot.cxx:1216
 HepDataMCPlot.cxx:1217
 HepDataMCPlot.cxx:1218
 HepDataMCPlot.cxx:1219
 HepDataMCPlot.cxx:1220
 HepDataMCPlot.cxx:1221
 HepDataMCPlot.cxx:1222
 HepDataMCPlot.cxx:1223
 HepDataMCPlot.cxx:1224
 HepDataMCPlot.cxx:1225
 HepDataMCPlot.cxx:1226
 HepDataMCPlot.cxx:1227
 HepDataMCPlot.cxx:1228
 HepDataMCPlot.cxx:1229
 HepDataMCPlot.cxx:1230
 HepDataMCPlot.cxx:1231
 HepDataMCPlot.cxx:1232
 HepDataMCPlot.cxx:1233
 HepDataMCPlot.cxx:1234
 HepDataMCPlot.cxx:1235
 HepDataMCPlot.cxx:1236
 HepDataMCPlot.cxx:1237
 HepDataMCPlot.cxx:1238
 HepDataMCPlot.cxx:1239
 HepDataMCPlot.cxx:1240
 HepDataMCPlot.cxx:1241
 HepDataMCPlot.cxx:1242
 HepDataMCPlot.cxx:1243
 HepDataMCPlot.cxx:1244
 HepDataMCPlot.cxx:1245
 HepDataMCPlot.cxx:1246
 HepDataMCPlot.cxx:1247
 HepDataMCPlot.cxx:1248
 HepDataMCPlot.cxx:1249
 HepDataMCPlot.cxx:1250
 HepDataMCPlot.cxx:1251
 HepDataMCPlot.cxx:1252
 HepDataMCPlot.cxx:1253
 HepDataMCPlot.cxx:1254
 HepDataMCPlot.cxx:1255
 HepDataMCPlot.cxx:1256
 HepDataMCPlot.cxx:1257
 HepDataMCPlot.cxx:1258
 HepDataMCPlot.cxx:1259
 HepDataMCPlot.cxx:1260
 HepDataMCPlot.cxx:1261
 HepDataMCPlot.cxx:1262
 HepDataMCPlot.cxx:1263
 HepDataMCPlot.cxx:1264
 HepDataMCPlot.cxx:1265
 HepDataMCPlot.cxx:1266
 HepDataMCPlot.cxx:1267
 HepDataMCPlot.cxx:1268
 HepDataMCPlot.cxx:1269
 HepDataMCPlot.cxx:1270
 HepDataMCPlot.cxx:1271
 HepDataMCPlot.cxx:1272
 HepDataMCPlot.cxx:1273
 HepDataMCPlot.cxx:1274
 HepDataMCPlot.cxx:1275
 HepDataMCPlot.cxx:1276
 HepDataMCPlot.cxx:1277
 HepDataMCPlot.cxx:1278
 HepDataMCPlot.cxx:1279
 HepDataMCPlot.cxx:1280
 HepDataMCPlot.cxx:1281
 HepDataMCPlot.cxx:1282
 HepDataMCPlot.cxx:1283
 HepDataMCPlot.cxx:1284
 HepDataMCPlot.cxx:1285
 HepDataMCPlot.cxx:1286
 HepDataMCPlot.cxx:1287
 HepDataMCPlot.cxx:1288
 HepDataMCPlot.cxx:1289
 HepDataMCPlot.cxx:1290
 HepDataMCPlot.cxx:1291
 HepDataMCPlot.cxx:1292
 HepDataMCPlot.cxx:1293
 HepDataMCPlot.cxx:1294
 HepDataMCPlot.cxx:1295
 HepDataMCPlot.cxx:1296
 HepDataMCPlot.cxx:1297
 HepDataMCPlot.cxx:1298
 HepDataMCPlot.cxx:1299
 HepDataMCPlot.cxx:1300
 HepDataMCPlot.cxx:1301
 HepDataMCPlot.cxx:1302
 HepDataMCPlot.cxx:1303
 HepDataMCPlot.cxx:1304
 HepDataMCPlot.cxx:1305
 HepDataMCPlot.cxx:1306
 HepDataMCPlot.cxx:1307
 HepDataMCPlot.cxx:1308
 HepDataMCPlot.cxx:1309
 HepDataMCPlot.cxx:1310
 HepDataMCPlot.cxx:1311
 HepDataMCPlot.cxx:1312
 HepDataMCPlot.cxx:1313
 HepDataMCPlot.cxx:1314
 HepDataMCPlot.cxx:1315
 HepDataMCPlot.cxx:1316
 HepDataMCPlot.cxx:1317
 HepDataMCPlot.cxx:1318
 HepDataMCPlot.cxx:1319
 HepDataMCPlot.cxx:1320
 HepDataMCPlot.cxx:1321
 HepDataMCPlot.cxx:1322
 HepDataMCPlot.cxx:1323
 HepDataMCPlot.cxx:1324
 HepDataMCPlot.cxx:1325
 HepDataMCPlot.cxx:1326
 HepDataMCPlot.cxx:1327
 HepDataMCPlot.cxx:1328
 HepDataMCPlot.cxx:1329
 HepDataMCPlot.cxx:1330
 HepDataMCPlot.cxx:1331
 HepDataMCPlot.cxx:1332
 HepDataMCPlot.cxx:1333
 HepDataMCPlot.cxx:1334
 HepDataMCPlot.cxx:1335
 HepDataMCPlot.cxx:1336
 HepDataMCPlot.cxx:1337
 HepDataMCPlot.cxx:1338
 HepDataMCPlot.cxx:1339
 HepDataMCPlot.cxx:1340
 HepDataMCPlot.cxx:1341
 HepDataMCPlot.cxx:1342
 HepDataMCPlot.cxx:1343
 HepDataMCPlot.cxx:1344
 HepDataMCPlot.cxx:1345
 HepDataMCPlot.cxx:1346
 HepDataMCPlot.cxx:1347
 HepDataMCPlot.cxx:1348
 HepDataMCPlot.cxx:1349
 HepDataMCPlot.cxx:1350
 HepDataMCPlot.cxx:1351
 HepDataMCPlot.cxx:1352
 HepDataMCPlot.cxx:1353
 HepDataMCPlot.cxx:1354
 HepDataMCPlot.cxx:1355
 HepDataMCPlot.cxx:1356
 HepDataMCPlot.cxx:1357
 HepDataMCPlot.cxx:1358
 HepDataMCPlot.cxx:1359
 HepDataMCPlot.cxx:1360
 HepDataMCPlot.cxx:1361
 HepDataMCPlot.cxx:1362
 HepDataMCPlot.cxx:1363
 HepDataMCPlot.cxx:1364
 HepDataMCPlot.cxx:1365
 HepDataMCPlot.cxx:1366
 HepDataMCPlot.cxx:1367
 HepDataMCPlot.cxx:1368
 HepDataMCPlot.cxx:1369
 HepDataMCPlot.cxx:1370
 HepDataMCPlot.cxx:1371
 HepDataMCPlot.cxx:1372
 HepDataMCPlot.cxx:1373
 HepDataMCPlot.cxx:1374
 HepDataMCPlot.cxx:1375
 HepDataMCPlot.cxx:1376
 HepDataMCPlot.cxx:1377
 HepDataMCPlot.cxx:1378
 HepDataMCPlot.cxx:1379
 HepDataMCPlot.cxx:1380
 HepDataMCPlot.cxx:1381
 HepDataMCPlot.cxx:1382
 HepDataMCPlot.cxx:1383
 HepDataMCPlot.cxx:1384
 HepDataMCPlot.cxx:1385
 HepDataMCPlot.cxx:1386
 HepDataMCPlot.cxx:1387
 HepDataMCPlot.cxx:1388
 HepDataMCPlot.cxx:1389
 HepDataMCPlot.cxx:1390
 HepDataMCPlot.cxx:1391
 HepDataMCPlot.cxx:1392
 HepDataMCPlot.cxx:1393
 HepDataMCPlot.cxx:1394
 HepDataMCPlot.cxx:1395
 HepDataMCPlot.cxx:1396
 HepDataMCPlot.cxx:1397
 HepDataMCPlot.cxx:1398
 HepDataMCPlot.cxx:1399
 HepDataMCPlot.cxx:1400
 HepDataMCPlot.cxx:1401
 HepDataMCPlot.cxx:1402
 HepDataMCPlot.cxx:1403
 HepDataMCPlot.cxx:1404
 HepDataMCPlot.cxx:1405
 HepDataMCPlot.cxx:1406
 HepDataMCPlot.cxx:1407
 HepDataMCPlot.cxx:1408
 HepDataMCPlot.cxx:1409
 HepDataMCPlot.cxx:1410
 HepDataMCPlot.cxx:1411
 HepDataMCPlot.cxx:1412
 HepDataMCPlot.cxx:1413
 HepDataMCPlot.cxx:1414
 HepDataMCPlot.cxx:1415
 HepDataMCPlot.cxx:1416
 HepDataMCPlot.cxx:1417
 HepDataMCPlot.cxx:1418
 HepDataMCPlot.cxx:1419
 HepDataMCPlot.cxx:1420
 HepDataMCPlot.cxx:1421
 HepDataMCPlot.cxx:1422
 HepDataMCPlot.cxx:1423
 HepDataMCPlot.cxx:1424
 HepDataMCPlot.cxx:1425
 HepDataMCPlot.cxx:1426
 HepDataMCPlot.cxx:1427
 HepDataMCPlot.cxx:1428
 HepDataMCPlot.cxx:1429
 HepDataMCPlot.cxx:1430
 HepDataMCPlot.cxx:1431
 HepDataMCPlot.cxx:1432
 HepDataMCPlot.cxx:1433
 HepDataMCPlot.cxx:1434
 HepDataMCPlot.cxx:1435
 HepDataMCPlot.cxx:1436
 HepDataMCPlot.cxx:1437
 HepDataMCPlot.cxx:1438
 HepDataMCPlot.cxx:1439
 HepDataMCPlot.cxx:1440
 HepDataMCPlot.cxx:1441
 HepDataMCPlot.cxx:1442
 HepDataMCPlot.cxx:1443
 HepDataMCPlot.cxx:1444
 HepDataMCPlot.cxx:1445
 HepDataMCPlot.cxx:1446
 HepDataMCPlot.cxx:1447
 HepDataMCPlot.cxx:1448
 HepDataMCPlot.cxx:1449
 HepDataMCPlot.cxx:1450
 HepDataMCPlot.cxx:1451
 HepDataMCPlot.cxx:1452
 HepDataMCPlot.cxx:1453
 HepDataMCPlot.cxx:1454
 HepDataMCPlot.cxx:1455
 HepDataMCPlot.cxx:1456
 HepDataMCPlot.cxx:1457
 HepDataMCPlot.cxx:1458
 HepDataMCPlot.cxx:1459
 HepDataMCPlot.cxx:1460
 HepDataMCPlot.cxx:1461
 HepDataMCPlot.cxx:1462
 HepDataMCPlot.cxx:1463
 HepDataMCPlot.cxx:1464
 HepDataMCPlot.cxx:1465
 HepDataMCPlot.cxx:1466
 HepDataMCPlot.cxx:1467
 HepDataMCPlot.cxx:1468
 HepDataMCPlot.cxx:1469
 HepDataMCPlot.cxx:1470
 HepDataMCPlot.cxx:1471
 HepDataMCPlot.cxx:1472
 HepDataMCPlot.cxx:1473
 HepDataMCPlot.cxx:1474
 HepDataMCPlot.cxx:1475
 HepDataMCPlot.cxx:1476
 HepDataMCPlot.cxx:1477
 HepDataMCPlot.cxx:1478
 HepDataMCPlot.cxx:1479
 HepDataMCPlot.cxx:1480
 HepDataMCPlot.cxx:1481
 HepDataMCPlot.cxx:1482
 HepDataMCPlot.cxx:1483
 HepDataMCPlot.cxx:1484
 HepDataMCPlot.cxx:1485
 HepDataMCPlot.cxx:1486
 HepDataMCPlot.cxx:1487
 HepDataMCPlot.cxx:1488
 HepDataMCPlot.cxx:1489
 HepDataMCPlot.cxx:1490
 HepDataMCPlot.cxx:1491
 HepDataMCPlot.cxx:1492
 HepDataMCPlot.cxx:1493
 HepDataMCPlot.cxx:1494
 HepDataMCPlot.cxx:1495
 HepDataMCPlot.cxx:1496
 HepDataMCPlot.cxx:1497
 HepDataMCPlot.cxx:1498
 HepDataMCPlot.cxx:1499
 HepDataMCPlot.cxx:1500
 HepDataMCPlot.cxx:1501
 HepDataMCPlot.cxx:1502
 HepDataMCPlot.cxx:1503
 HepDataMCPlot.cxx:1504
 HepDataMCPlot.cxx:1505
 HepDataMCPlot.cxx:1506
 HepDataMCPlot.cxx:1507
 HepDataMCPlot.cxx:1508
 HepDataMCPlot.cxx:1509
 HepDataMCPlot.cxx:1510
 HepDataMCPlot.cxx:1511
 HepDataMCPlot.cxx:1512
 HepDataMCPlot.cxx:1513
 HepDataMCPlot.cxx:1514
 HepDataMCPlot.cxx:1515
 HepDataMCPlot.cxx:1516
 HepDataMCPlot.cxx:1517
 HepDataMCPlot.cxx:1518
 HepDataMCPlot.cxx:1519
 HepDataMCPlot.cxx:1520
 HepDataMCPlot.cxx:1521
 HepDataMCPlot.cxx:1522
 HepDataMCPlot.cxx:1523
 HepDataMCPlot.cxx:1524
 HepDataMCPlot.cxx:1525
 HepDataMCPlot.cxx:1526
 HepDataMCPlot.cxx:1527
 HepDataMCPlot.cxx:1528
 HepDataMCPlot.cxx:1529
 HepDataMCPlot.cxx:1530
 HepDataMCPlot.cxx:1531
 HepDataMCPlot.cxx:1532
 HepDataMCPlot.cxx:1533
 HepDataMCPlot.cxx:1534
 HepDataMCPlot.cxx:1535
 HepDataMCPlot.cxx:1536
 HepDataMCPlot.cxx:1537
 HepDataMCPlot.cxx:1538
 HepDataMCPlot.cxx:1539
 HepDataMCPlot.cxx:1540
 HepDataMCPlot.cxx:1541
 HepDataMCPlot.cxx:1542
 HepDataMCPlot.cxx:1543
 HepDataMCPlot.cxx:1544
 HepDataMCPlot.cxx:1545
 HepDataMCPlot.cxx:1546
 HepDataMCPlot.cxx:1547
 HepDataMCPlot.cxx:1548
 HepDataMCPlot.cxx:1549
 HepDataMCPlot.cxx:1550
 HepDataMCPlot.cxx:1551
 HepDataMCPlot.cxx:1552
 HepDataMCPlot.cxx:1553
 HepDataMCPlot.cxx:1554
 HepDataMCPlot.cxx:1555
 HepDataMCPlot.cxx:1556
 HepDataMCPlot.cxx:1557
 HepDataMCPlot.cxx:1558
 HepDataMCPlot.cxx:1559
 HepDataMCPlot.cxx:1560
 HepDataMCPlot.cxx:1561
 HepDataMCPlot.cxx:1562
 HepDataMCPlot.cxx:1563
 HepDataMCPlot.cxx:1564
 HepDataMCPlot.cxx:1565
 HepDataMCPlot.cxx:1566
 HepDataMCPlot.cxx:1567
 HepDataMCPlot.cxx:1568
 HepDataMCPlot.cxx:1569
 HepDataMCPlot.cxx:1570
 HepDataMCPlot.cxx:1571
 HepDataMCPlot.cxx:1572
 HepDataMCPlot.cxx:1573
 HepDataMCPlot.cxx:1574
 HepDataMCPlot.cxx:1575
 HepDataMCPlot.cxx:1576
 HepDataMCPlot.cxx:1577
 HepDataMCPlot.cxx:1578
 HepDataMCPlot.cxx:1579
 HepDataMCPlot.cxx:1580
 HepDataMCPlot.cxx:1581
 HepDataMCPlot.cxx:1582
 HepDataMCPlot.cxx:1583
 HepDataMCPlot.cxx:1584
 HepDataMCPlot.cxx:1585
 HepDataMCPlot.cxx:1586
 HepDataMCPlot.cxx:1587
 HepDataMCPlot.cxx:1588
 HepDataMCPlot.cxx:1589
 HepDataMCPlot.cxx:1590
 HepDataMCPlot.cxx:1591
 HepDataMCPlot.cxx:1592
 HepDataMCPlot.cxx:1593
 HepDataMCPlot.cxx:1594
 HepDataMCPlot.cxx:1595
 HepDataMCPlot.cxx:1596
 HepDataMCPlot.cxx:1597
 HepDataMCPlot.cxx:1598
 HepDataMCPlot.cxx:1599
 HepDataMCPlot.cxx:1600
 HepDataMCPlot.cxx:1601
 HepDataMCPlot.cxx:1602
 HepDataMCPlot.cxx:1603
 HepDataMCPlot.cxx:1604
 HepDataMCPlot.cxx:1605
 HepDataMCPlot.cxx:1606
 HepDataMCPlot.cxx:1607
 HepDataMCPlot.cxx:1608
 HepDataMCPlot.cxx:1609
 HepDataMCPlot.cxx:1610
 HepDataMCPlot.cxx:1611
 HepDataMCPlot.cxx:1612
 HepDataMCPlot.cxx:1613
 HepDataMCPlot.cxx:1614
 HepDataMCPlot.cxx:1615
 HepDataMCPlot.cxx:1616
 HepDataMCPlot.cxx:1617
 HepDataMCPlot.cxx:1618
 HepDataMCPlot.cxx:1619
 HepDataMCPlot.cxx:1620
 HepDataMCPlot.cxx:1621
 HepDataMCPlot.cxx:1622
 HepDataMCPlot.cxx:1623
 HepDataMCPlot.cxx:1624
 HepDataMCPlot.cxx:1625
 HepDataMCPlot.cxx:1626
 HepDataMCPlot.cxx:1627
 HepDataMCPlot.cxx:1628
 HepDataMCPlot.cxx:1629
 HepDataMCPlot.cxx:1630
 HepDataMCPlot.cxx:1631
 HepDataMCPlot.cxx:1632
 HepDataMCPlot.cxx:1633
 HepDataMCPlot.cxx:1634
 HepDataMCPlot.cxx:1635
 HepDataMCPlot.cxx:1636
 HepDataMCPlot.cxx:1637
 HepDataMCPlot.cxx:1638
 HepDataMCPlot.cxx:1639
 HepDataMCPlot.cxx:1640
 HepDataMCPlot.cxx:1641
 HepDataMCPlot.cxx:1642
 HepDataMCPlot.cxx:1643
 HepDataMCPlot.cxx:1644
 HepDataMCPlot.cxx:1645
 HepDataMCPlot.cxx:1646
 HepDataMCPlot.cxx:1647
 HepDataMCPlot.cxx:1648
 HepDataMCPlot.cxx:1649
 HepDataMCPlot.cxx:1650
 HepDataMCPlot.cxx:1651
 HepDataMCPlot.cxx:1652
 HepDataMCPlot.cxx:1653
 HepDataMCPlot.cxx:1654
 HepDataMCPlot.cxx:1655
 HepDataMCPlot.cxx:1656
 HepDataMCPlot.cxx:1657
 HepDataMCPlot.cxx:1658
 HepDataMCPlot.cxx:1659
 HepDataMCPlot.cxx:1660
 HepDataMCPlot.cxx:1661
 HepDataMCPlot.cxx:1662
 HepDataMCPlot.cxx:1663
 HepDataMCPlot.cxx:1664
 HepDataMCPlot.cxx:1665
 HepDataMCPlot.cxx:1666
 HepDataMCPlot.cxx:1667
 HepDataMCPlot.cxx:1668
 HepDataMCPlot.cxx:1669
 HepDataMCPlot.cxx:1670
 HepDataMCPlot.cxx:1671
 HepDataMCPlot.cxx:1672
 HepDataMCPlot.cxx:1673
 HepDataMCPlot.cxx:1674
 HepDataMCPlot.cxx:1675
 HepDataMCPlot.cxx:1676
 HepDataMCPlot.cxx:1677
 HepDataMCPlot.cxx:1678
 HepDataMCPlot.cxx:1679
 HepDataMCPlot.cxx:1680
 HepDataMCPlot.cxx:1681
 HepDataMCPlot.cxx:1682
 HepDataMCPlot.cxx:1683
 HepDataMCPlot.cxx:1684
 HepDataMCPlot.cxx:1685
 HepDataMCPlot.cxx:1686
 HepDataMCPlot.cxx:1687
 HepDataMCPlot.cxx:1688
 HepDataMCPlot.cxx:1689
 HepDataMCPlot.cxx:1690
 HepDataMCPlot.cxx:1691
 HepDataMCPlot.cxx:1692
 HepDataMCPlot.cxx:1693
 HepDataMCPlot.cxx:1694
 HepDataMCPlot.cxx:1695
 HepDataMCPlot.cxx:1696
 HepDataMCPlot.cxx:1697
 HepDataMCPlot.cxx:1698
 HepDataMCPlot.cxx:1699
 HepDataMCPlot.cxx:1700
 HepDataMCPlot.cxx:1701
 HepDataMCPlot.cxx:1702
 HepDataMCPlot.cxx:1703
 HepDataMCPlot.cxx:1704
 HepDataMCPlot.cxx:1705
 HepDataMCPlot.cxx:1706
 HepDataMCPlot.cxx:1707
 HepDataMCPlot.cxx:1708
 HepDataMCPlot.cxx:1709
 HepDataMCPlot.cxx:1710
 HepDataMCPlot.cxx:1711
 HepDataMCPlot.cxx:1712
 HepDataMCPlot.cxx:1713
 HepDataMCPlot.cxx:1714
 HepDataMCPlot.cxx:1715
 HepDataMCPlot.cxx:1716
 HepDataMCPlot.cxx:1717
 HepDataMCPlot.cxx:1718
 HepDataMCPlot.cxx:1719
 HepDataMCPlot.cxx:1720
 HepDataMCPlot.cxx:1721
 HepDataMCPlot.cxx:1722
 HepDataMCPlot.cxx:1723
 HepDataMCPlot.cxx:1724
 HepDataMCPlot.cxx:1725
 HepDataMCPlot.cxx:1726
 HepDataMCPlot.cxx:1727
 HepDataMCPlot.cxx:1728
 HepDataMCPlot.cxx:1729
 HepDataMCPlot.cxx:1730
 HepDataMCPlot.cxx:1731
 HepDataMCPlot.cxx:1732
 HepDataMCPlot.cxx:1733
 HepDataMCPlot.cxx:1734
 HepDataMCPlot.cxx:1735
 HepDataMCPlot.cxx:1736
 HepDataMCPlot.cxx:1737
 HepDataMCPlot.cxx:1738
 HepDataMCPlot.cxx:1739
 HepDataMCPlot.cxx:1740
 HepDataMCPlot.cxx:1741
 HepDataMCPlot.cxx:1742
 HepDataMCPlot.cxx:1743
 HepDataMCPlot.cxx:1744
 HepDataMCPlot.cxx:1745
 HepDataMCPlot.cxx:1746
 HepDataMCPlot.cxx:1747
 HepDataMCPlot.cxx:1748
 HepDataMCPlot.cxx:1749
 HepDataMCPlot.cxx:1750
 HepDataMCPlot.cxx:1751
 HepDataMCPlot.cxx:1752
 HepDataMCPlot.cxx:1753
 HepDataMCPlot.cxx:1754
 HepDataMCPlot.cxx:1755
 HepDataMCPlot.cxx:1756
 HepDataMCPlot.cxx:1757
 HepDataMCPlot.cxx:1758
 HepDataMCPlot.cxx:1759
 HepDataMCPlot.cxx:1760
 HepDataMCPlot.cxx:1761
 HepDataMCPlot.cxx:1762
 HepDataMCPlot.cxx:1763
 HepDataMCPlot.cxx:1764
 HepDataMCPlot.cxx:1765
 HepDataMCPlot.cxx:1766
 HepDataMCPlot.cxx:1767
 HepDataMCPlot.cxx:1768
 HepDataMCPlot.cxx:1769
 HepDataMCPlot.cxx:1770
 HepDataMCPlot.cxx:1771
 HepDataMCPlot.cxx:1772
 HepDataMCPlot.cxx:1773
 HepDataMCPlot.cxx:1774
 HepDataMCPlot.cxx:1775
 HepDataMCPlot.cxx:1776
 HepDataMCPlot.cxx:1777
 HepDataMCPlot.cxx:1778
 HepDataMCPlot.cxx:1779
 HepDataMCPlot.cxx:1780
 HepDataMCPlot.cxx:1781
 HepDataMCPlot.cxx:1782
 HepDataMCPlot.cxx:1783
 HepDataMCPlot.cxx:1784
 HepDataMCPlot.cxx:1785
 HepDataMCPlot.cxx:1786
 HepDataMCPlot.cxx:1787
 HepDataMCPlot.cxx:1788
 HepDataMCPlot.cxx:1789
 HepDataMCPlot.cxx:1790
 HepDataMCPlot.cxx:1791
 HepDataMCPlot.cxx:1792
 HepDataMCPlot.cxx:1793
 HepDataMCPlot.cxx:1794
 HepDataMCPlot.cxx:1795
 HepDataMCPlot.cxx:1796
 HepDataMCPlot.cxx:1797
 HepDataMCPlot.cxx:1798
 HepDataMCPlot.cxx:1799
 HepDataMCPlot.cxx:1800
 HepDataMCPlot.cxx:1801
 HepDataMCPlot.cxx:1802
 HepDataMCPlot.cxx:1803
 HepDataMCPlot.cxx:1804
 HepDataMCPlot.cxx:1805
 HepDataMCPlot.cxx:1806
 HepDataMCPlot.cxx:1807
 HepDataMCPlot.cxx:1808
 HepDataMCPlot.cxx:1809
 HepDataMCPlot.cxx:1810
 HepDataMCPlot.cxx:1811
 HepDataMCPlot.cxx:1812
 HepDataMCPlot.cxx:1813
 HepDataMCPlot.cxx:1814
 HepDataMCPlot.cxx:1815
 HepDataMCPlot.cxx:1816
 HepDataMCPlot.cxx:1817
 HepDataMCPlot.cxx:1818
 HepDataMCPlot.cxx:1819
 HepDataMCPlot.cxx:1820
 HepDataMCPlot.cxx:1821
 HepDataMCPlot.cxx:1822
 HepDataMCPlot.cxx:1823
 HepDataMCPlot.cxx:1824
 HepDataMCPlot.cxx:1825
 HepDataMCPlot.cxx:1826
 HepDataMCPlot.cxx:1827
 HepDataMCPlot.cxx:1828
 HepDataMCPlot.cxx:1829
 HepDataMCPlot.cxx:1830
 HepDataMCPlot.cxx:1831
 HepDataMCPlot.cxx:1832
 HepDataMCPlot.cxx:1833
 HepDataMCPlot.cxx:1834
 HepDataMCPlot.cxx:1835
 HepDataMCPlot.cxx:1836
 HepDataMCPlot.cxx:1837
 HepDataMCPlot.cxx:1838
 HepDataMCPlot.cxx:1839
 HepDataMCPlot.cxx:1840
 HepDataMCPlot.cxx:1841
 HepDataMCPlot.cxx:1842
 HepDataMCPlot.cxx:1843
 HepDataMCPlot.cxx:1844
 HepDataMCPlot.cxx:1845
 HepDataMCPlot.cxx:1846
 HepDataMCPlot.cxx:1847
 HepDataMCPlot.cxx:1848
 HepDataMCPlot.cxx:1849
 HepDataMCPlot.cxx:1850
 HepDataMCPlot.cxx:1851
 HepDataMCPlot.cxx:1852
 HepDataMCPlot.cxx:1853
 HepDataMCPlot.cxx:1854
 HepDataMCPlot.cxx:1855
 HepDataMCPlot.cxx:1856
 HepDataMCPlot.cxx:1857
 HepDataMCPlot.cxx:1858
 HepDataMCPlot.cxx:1859
 HepDataMCPlot.cxx:1860
 HepDataMCPlot.cxx:1861
 HepDataMCPlot.cxx:1862
 HepDataMCPlot.cxx:1863
 HepDataMCPlot.cxx:1864
 HepDataMCPlot.cxx:1865
 HepDataMCPlot.cxx:1866
 HepDataMCPlot.cxx:1867
 HepDataMCPlot.cxx:1868
 HepDataMCPlot.cxx:1869
 HepDataMCPlot.cxx:1870
 HepDataMCPlot.cxx:1871
 HepDataMCPlot.cxx:1872
 HepDataMCPlot.cxx:1873
 HepDataMCPlot.cxx:1874
 HepDataMCPlot.cxx:1875
 HepDataMCPlot.cxx:1876
 HepDataMCPlot.cxx:1877
 HepDataMCPlot.cxx:1878
 HepDataMCPlot.cxx:1879
 HepDataMCPlot.cxx:1880
 HepDataMCPlot.cxx:1881
 HepDataMCPlot.cxx:1882
 HepDataMCPlot.cxx:1883
 HepDataMCPlot.cxx:1884
 HepDataMCPlot.cxx:1885
 HepDataMCPlot.cxx:1886
 HepDataMCPlot.cxx:1887
 HepDataMCPlot.cxx:1888
 HepDataMCPlot.cxx:1889
 HepDataMCPlot.cxx:1890
 HepDataMCPlot.cxx:1891
 HepDataMCPlot.cxx:1892
 HepDataMCPlot.cxx:1893
 HepDataMCPlot.cxx:1894
 HepDataMCPlot.cxx:1895
 HepDataMCPlot.cxx:1896
 HepDataMCPlot.cxx:1897
 HepDataMCPlot.cxx:1898
 HepDataMCPlot.cxx:1899
 HepDataMCPlot.cxx:1900
 HepDataMCPlot.cxx:1901
 HepDataMCPlot.cxx:1902
 HepDataMCPlot.cxx:1903
 HepDataMCPlot.cxx:1904
 HepDataMCPlot.cxx:1905
 HepDataMCPlot.cxx:1906
 HepDataMCPlot.cxx:1907
 HepDataMCPlot.cxx:1908
 HepDataMCPlot.cxx:1909
 HepDataMCPlot.cxx:1910
 HepDataMCPlot.cxx:1911
 HepDataMCPlot.cxx:1912
 HepDataMCPlot.cxx:1913
 HepDataMCPlot.cxx:1914
 HepDataMCPlot.cxx:1915
 HepDataMCPlot.cxx:1916
 HepDataMCPlot.cxx:1917
 HepDataMCPlot.cxx:1918
 HepDataMCPlot.cxx:1919
 HepDataMCPlot.cxx:1920
 HepDataMCPlot.cxx:1921
 HepDataMCPlot.cxx:1922
 HepDataMCPlot.cxx:1923
 HepDataMCPlot.cxx:1924
 HepDataMCPlot.cxx:1925
 HepDataMCPlot.cxx:1926
 HepDataMCPlot.cxx:1927
 HepDataMCPlot.cxx:1928
 HepDataMCPlot.cxx:1929
 HepDataMCPlot.cxx:1930
 HepDataMCPlot.cxx:1931
 HepDataMCPlot.cxx:1932
 HepDataMCPlot.cxx:1933
 HepDataMCPlot.cxx:1934
 HepDataMCPlot.cxx:1935
 HepDataMCPlot.cxx:1936
 HepDataMCPlot.cxx:1937
 HepDataMCPlot.cxx:1938
 HepDataMCPlot.cxx:1939
 HepDataMCPlot.cxx:1940
 HepDataMCPlot.cxx:1941
 HepDataMCPlot.cxx:1942
 HepDataMCPlot.cxx:1943
 HepDataMCPlot.cxx:1944
 HepDataMCPlot.cxx:1945
 HepDataMCPlot.cxx:1946
 HepDataMCPlot.cxx:1947
 HepDataMCPlot.cxx:1948
 HepDataMCPlot.cxx:1949
 HepDataMCPlot.cxx:1950
 HepDataMCPlot.cxx:1951
 HepDataMCPlot.cxx:1952
 HepDataMCPlot.cxx:1953
 HepDataMCPlot.cxx:1954
 HepDataMCPlot.cxx:1955
 HepDataMCPlot.cxx:1956
 HepDataMCPlot.cxx:1957
 HepDataMCPlot.cxx:1958
 HepDataMCPlot.cxx:1959
 HepDataMCPlot.cxx:1960
 HepDataMCPlot.cxx:1961
 HepDataMCPlot.cxx:1962
 HepDataMCPlot.cxx:1963
 HepDataMCPlot.cxx:1964
 HepDataMCPlot.cxx:1965
 HepDataMCPlot.cxx:1966
 HepDataMCPlot.cxx:1967
 HepDataMCPlot.cxx:1968
 HepDataMCPlot.cxx:1969
 HepDataMCPlot.cxx:1970
 HepDataMCPlot.cxx:1971
 HepDataMCPlot.cxx:1972
 HepDataMCPlot.cxx:1973
 HepDataMCPlot.cxx:1974
 HepDataMCPlot.cxx:1975
 HepDataMCPlot.cxx:1976
 HepDataMCPlot.cxx:1977
 HepDataMCPlot.cxx:1978
 HepDataMCPlot.cxx:1979
 HepDataMCPlot.cxx:1980
 HepDataMCPlot.cxx:1981
 HepDataMCPlot.cxx:1982
 HepDataMCPlot.cxx:1983
 HepDataMCPlot.cxx:1984
 HepDataMCPlot.cxx:1985
 HepDataMCPlot.cxx:1986
 HepDataMCPlot.cxx:1987
 HepDataMCPlot.cxx:1988
 HepDataMCPlot.cxx:1989
 HepDataMCPlot.cxx:1990
 HepDataMCPlot.cxx:1991
 HepDataMCPlot.cxx:1992
 HepDataMCPlot.cxx:1993
 HepDataMCPlot.cxx:1994
 HepDataMCPlot.cxx:1995
 HepDataMCPlot.cxx:1996
 HepDataMCPlot.cxx:1997
 HepDataMCPlot.cxx:1998
 HepDataMCPlot.cxx:1999
 HepDataMCPlot.cxx:2000
 HepDataMCPlot.cxx:2001
 HepDataMCPlot.cxx:2002
 HepDataMCPlot.cxx:2003
 HepDataMCPlot.cxx:2004
 HepDataMCPlot.cxx:2005
 HepDataMCPlot.cxx:2006
 HepDataMCPlot.cxx:2007
 HepDataMCPlot.cxx:2008
 HepDataMCPlot.cxx:2009
 HepDataMCPlot.cxx:2010
 HepDataMCPlot.cxx:2011
 HepDataMCPlot.cxx:2012
 HepDataMCPlot.cxx:2013
 HepDataMCPlot.cxx:2014
 HepDataMCPlot.cxx:2015
 HepDataMCPlot.cxx:2016
 HepDataMCPlot.cxx:2017
 HepDataMCPlot.cxx:2018
 HepDataMCPlot.cxx:2019
 HepDataMCPlot.cxx:2020
 HepDataMCPlot.cxx:2021
 HepDataMCPlot.cxx:2022
 HepDataMCPlot.cxx:2023
 HepDataMCPlot.cxx:2024
 HepDataMCPlot.cxx:2025
 HepDataMCPlot.cxx:2026
 HepDataMCPlot.cxx:2027
 HepDataMCPlot.cxx:2028
 HepDataMCPlot.cxx:2029
 HepDataMCPlot.cxx:2030
 HepDataMCPlot.cxx:2031
 HepDataMCPlot.cxx:2032
 HepDataMCPlot.cxx:2033
 HepDataMCPlot.cxx:2034
 HepDataMCPlot.cxx:2035
 HepDataMCPlot.cxx:2036
 HepDataMCPlot.cxx:2037
 HepDataMCPlot.cxx:2038
 HepDataMCPlot.cxx:2039
 HepDataMCPlot.cxx:2040
 HepDataMCPlot.cxx:2041
 HepDataMCPlot.cxx:2042
 HepDataMCPlot.cxx:2043
 HepDataMCPlot.cxx:2044
 HepDataMCPlot.cxx:2045
 HepDataMCPlot.cxx:2046
 HepDataMCPlot.cxx:2047
 HepDataMCPlot.cxx:2048
 HepDataMCPlot.cxx:2049
 HepDataMCPlot.cxx:2050
 HepDataMCPlot.cxx:2051
 HepDataMCPlot.cxx:2052
 HepDataMCPlot.cxx:2053
 HepDataMCPlot.cxx:2054
 HepDataMCPlot.cxx:2055
 HepDataMCPlot.cxx:2056
 HepDataMCPlot.cxx:2057
 HepDataMCPlot.cxx:2058
 HepDataMCPlot.cxx:2059
 HepDataMCPlot.cxx:2060
 HepDataMCPlot.cxx:2061
 HepDataMCPlot.cxx:2062
 HepDataMCPlot.cxx:2063
 HepDataMCPlot.cxx:2064
 HepDataMCPlot.cxx:2065
 HepDataMCPlot.cxx:2066
 HepDataMCPlot.cxx:2067
 HepDataMCPlot.cxx:2068
 HepDataMCPlot.cxx:2069
 HepDataMCPlot.cxx:2070
 HepDataMCPlot.cxx:2071
 HepDataMCPlot.cxx:2072
 HepDataMCPlot.cxx:2073
 HepDataMCPlot.cxx:2074
 HepDataMCPlot.cxx:2075
 HepDataMCPlot.cxx:2076
 HepDataMCPlot.cxx:2077
 HepDataMCPlot.cxx:2078
 HepDataMCPlot.cxx:2079
 HepDataMCPlot.cxx:2080
 HepDataMCPlot.cxx:2081
 HepDataMCPlot.cxx:2082
 HepDataMCPlot.cxx:2083
 HepDataMCPlot.cxx:2084
 HepDataMCPlot.cxx:2085
 HepDataMCPlot.cxx:2086
 HepDataMCPlot.cxx:2087
 HepDataMCPlot.cxx:2088
 HepDataMCPlot.cxx:2089
 HepDataMCPlot.cxx:2090
 HepDataMCPlot.cxx:2091
 HepDataMCPlot.cxx:2092
 HepDataMCPlot.cxx:2093
 HepDataMCPlot.cxx:2094
 HepDataMCPlot.cxx:2095
 HepDataMCPlot.cxx:2096
 HepDataMCPlot.cxx:2097
 HepDataMCPlot.cxx:2098
 HepDataMCPlot.cxx:2099
 HepDataMCPlot.cxx:2100
 HepDataMCPlot.cxx:2101
 HepDataMCPlot.cxx:2102
 HepDataMCPlot.cxx:2103
 HepDataMCPlot.cxx:2104
 HepDataMCPlot.cxx:2105
 HepDataMCPlot.cxx:2106
 HepDataMCPlot.cxx:2107
 HepDataMCPlot.cxx:2108
 HepDataMCPlot.cxx:2109
 HepDataMCPlot.cxx:2110
 HepDataMCPlot.cxx:2111
 HepDataMCPlot.cxx:2112
 HepDataMCPlot.cxx:2113
 HepDataMCPlot.cxx:2114
 HepDataMCPlot.cxx:2115
 HepDataMCPlot.cxx:2116
 HepDataMCPlot.cxx:2117
 HepDataMCPlot.cxx:2118
 HepDataMCPlot.cxx:2119
 HepDataMCPlot.cxx:2120
 HepDataMCPlot.cxx:2121
 HepDataMCPlot.cxx:2122
 HepDataMCPlot.cxx:2123
 HepDataMCPlot.cxx:2124
 HepDataMCPlot.cxx:2125
 HepDataMCPlot.cxx:2126
 HepDataMCPlot.cxx:2127
 HepDataMCPlot.cxx:2128
 HepDataMCPlot.cxx:2129
 HepDataMCPlot.cxx:2130
 HepDataMCPlot.cxx:2131
 HepDataMCPlot.cxx:2132
 HepDataMCPlot.cxx:2133
 HepDataMCPlot.cxx:2134
 HepDataMCPlot.cxx:2135
 HepDataMCPlot.cxx:2136
 HepDataMCPlot.cxx:2137
 HepDataMCPlot.cxx:2138
 HepDataMCPlot.cxx:2139
 HepDataMCPlot.cxx:2140
 HepDataMCPlot.cxx:2141
 HepDataMCPlot.cxx:2142
 HepDataMCPlot.cxx:2143
 HepDataMCPlot.cxx:2144
 HepDataMCPlot.cxx:2145
 HepDataMCPlot.cxx:2146
 HepDataMCPlot.cxx:2147
 HepDataMCPlot.cxx:2148
 HepDataMCPlot.cxx:2149
 HepDataMCPlot.cxx:2150
 HepDataMCPlot.cxx:2151
 HepDataMCPlot.cxx:2152
 HepDataMCPlot.cxx:2153
 HepDataMCPlot.cxx:2154
 HepDataMCPlot.cxx:2155
 HepDataMCPlot.cxx:2156
 HepDataMCPlot.cxx:2157
 HepDataMCPlot.cxx:2158
 HepDataMCPlot.cxx:2159
 HepDataMCPlot.cxx:2160
 HepDataMCPlot.cxx:2161
 HepDataMCPlot.cxx:2162
 HepDataMCPlot.cxx:2163
 HepDataMCPlot.cxx:2164
 HepDataMCPlot.cxx:2165
 HepDataMCPlot.cxx:2166
 HepDataMCPlot.cxx:2167
 HepDataMCPlot.cxx:2168
 HepDataMCPlot.cxx:2169
 HepDataMCPlot.cxx:2170
 HepDataMCPlot.cxx:2171
 HepDataMCPlot.cxx:2172
 HepDataMCPlot.cxx:2173
 HepDataMCPlot.cxx:2174
 HepDataMCPlot.cxx:2175
 HepDataMCPlot.cxx:2176
 HepDataMCPlot.cxx:2177
 HepDataMCPlot.cxx:2178
 HepDataMCPlot.cxx:2179
 HepDataMCPlot.cxx:2180
 HepDataMCPlot.cxx:2181
 HepDataMCPlot.cxx:2182
 HepDataMCPlot.cxx:2183
 HepDataMCPlot.cxx:2184
 HepDataMCPlot.cxx:2185
 HepDataMCPlot.cxx:2186
 HepDataMCPlot.cxx:2187
 HepDataMCPlot.cxx:2188
 HepDataMCPlot.cxx:2189
 HepDataMCPlot.cxx:2190
 HepDataMCPlot.cxx:2191
 HepDataMCPlot.cxx:2192
 HepDataMCPlot.cxx:2193
 HepDataMCPlot.cxx:2194
 HepDataMCPlot.cxx:2195
 HepDataMCPlot.cxx:2196
 HepDataMCPlot.cxx:2197
 HepDataMCPlot.cxx:2198
 HepDataMCPlot.cxx:2199
 HepDataMCPlot.cxx:2200
 HepDataMCPlot.cxx:2201
 HepDataMCPlot.cxx:2202
 HepDataMCPlot.cxx:2203
 HepDataMCPlot.cxx:2204
 HepDataMCPlot.cxx:2205
 HepDataMCPlot.cxx:2206
 HepDataMCPlot.cxx:2207
 HepDataMCPlot.cxx:2208
 HepDataMCPlot.cxx:2209
 HepDataMCPlot.cxx:2210
 HepDataMCPlot.cxx:2211
 HepDataMCPlot.cxx:2212
 HepDataMCPlot.cxx:2213
 HepDataMCPlot.cxx:2214
 HepDataMCPlot.cxx:2215
 HepDataMCPlot.cxx:2216
 HepDataMCPlot.cxx:2217
 HepDataMCPlot.cxx:2218
 HepDataMCPlot.cxx:2219
 HepDataMCPlot.cxx:2220
 HepDataMCPlot.cxx:2221
 HepDataMCPlot.cxx:2222
 HepDataMCPlot.cxx:2223
 HepDataMCPlot.cxx:2224
 HepDataMCPlot.cxx:2225
 HepDataMCPlot.cxx:2226
 HepDataMCPlot.cxx:2227
 HepDataMCPlot.cxx:2228
 HepDataMCPlot.cxx:2229
 HepDataMCPlot.cxx:2230
 HepDataMCPlot.cxx:2231
 HepDataMCPlot.cxx:2232
 HepDataMCPlot.cxx:2233
 HepDataMCPlot.cxx:2234
 HepDataMCPlot.cxx:2235
 HepDataMCPlot.cxx:2236
 HepDataMCPlot.cxx:2237
 HepDataMCPlot.cxx:2238
 HepDataMCPlot.cxx:2239
 HepDataMCPlot.cxx:2240
 HepDataMCPlot.cxx:2241
 HepDataMCPlot.cxx:2242
 HepDataMCPlot.cxx:2243
 HepDataMCPlot.cxx:2244
 HepDataMCPlot.cxx:2245
 HepDataMCPlot.cxx:2246
 HepDataMCPlot.cxx:2247
 HepDataMCPlot.cxx:2248
 HepDataMCPlot.cxx:2249
 HepDataMCPlot.cxx:2250
 HepDataMCPlot.cxx:2251
 HepDataMCPlot.cxx:2252
 HepDataMCPlot.cxx:2253
 HepDataMCPlot.cxx:2254
 HepDataMCPlot.cxx:2255
 HepDataMCPlot.cxx:2256
 HepDataMCPlot.cxx:2257
 HepDataMCPlot.cxx:2258
 HepDataMCPlot.cxx:2259
 HepDataMCPlot.cxx:2260
 HepDataMCPlot.cxx:2261
 HepDataMCPlot.cxx:2262
 HepDataMCPlot.cxx:2263
 HepDataMCPlot.cxx:2264
 HepDataMCPlot.cxx:2265
 HepDataMCPlot.cxx:2266
 HepDataMCPlot.cxx:2267
 HepDataMCPlot.cxx:2268
 HepDataMCPlot.cxx:2269
 HepDataMCPlot.cxx:2270
 HepDataMCPlot.cxx:2271
 HepDataMCPlot.cxx:2272
 HepDataMCPlot.cxx:2273
 HepDataMCPlot.cxx:2274
 HepDataMCPlot.cxx:2275
 HepDataMCPlot.cxx:2276
 HepDataMCPlot.cxx:2277
 HepDataMCPlot.cxx:2278
 HepDataMCPlot.cxx:2279
 HepDataMCPlot.cxx:2280
 HepDataMCPlot.cxx:2281
 HepDataMCPlot.cxx:2282
 HepDataMCPlot.cxx:2283
 HepDataMCPlot.cxx:2284
 HepDataMCPlot.cxx:2285
 HepDataMCPlot.cxx:2286
 HepDataMCPlot.cxx:2287
 HepDataMCPlot.cxx:2288
 HepDataMCPlot.cxx:2289
 HepDataMCPlot.cxx:2290
 HepDataMCPlot.cxx:2291
 HepDataMCPlot.cxx:2292
 HepDataMCPlot.cxx:2293
 HepDataMCPlot.cxx:2294
 HepDataMCPlot.cxx:2295
 HepDataMCPlot.cxx:2296
 HepDataMCPlot.cxx:2297
 HepDataMCPlot.cxx:2298
 HepDataMCPlot.cxx:2299
 HepDataMCPlot.cxx:2300
 HepDataMCPlot.cxx:2301
 HepDataMCPlot.cxx:2302
 HepDataMCPlot.cxx:2303
 HepDataMCPlot.cxx:2304
 HepDataMCPlot.cxx:2305
 HepDataMCPlot.cxx:2306
 HepDataMCPlot.cxx:2307
 HepDataMCPlot.cxx:2308
 HepDataMCPlot.cxx:2309
 HepDataMCPlot.cxx:2310
 HepDataMCPlot.cxx:2311
 HepDataMCPlot.cxx:2312
 HepDataMCPlot.cxx:2313
 HepDataMCPlot.cxx:2314
 HepDataMCPlot.cxx:2315
 HepDataMCPlot.cxx:2316
 HepDataMCPlot.cxx:2317
 HepDataMCPlot.cxx:2318
 HepDataMCPlot.cxx:2319
 HepDataMCPlot.cxx:2320
 HepDataMCPlot.cxx:2321
 HepDataMCPlot.cxx:2322
 HepDataMCPlot.cxx:2323
 HepDataMCPlot.cxx:2324
 HepDataMCPlot.cxx:2325
 HepDataMCPlot.cxx:2326
 HepDataMCPlot.cxx:2327
 HepDataMCPlot.cxx:2328
 HepDataMCPlot.cxx:2329
 HepDataMCPlot.cxx:2330
 HepDataMCPlot.cxx:2331
 HepDataMCPlot.cxx:2332
 HepDataMCPlot.cxx:2333
 HepDataMCPlot.cxx:2334
 HepDataMCPlot.cxx:2335
 HepDataMCPlot.cxx:2336
 HepDataMCPlot.cxx:2337
 HepDataMCPlot.cxx:2338
 HepDataMCPlot.cxx:2339
 HepDataMCPlot.cxx:2340
 HepDataMCPlot.cxx:2341
 HepDataMCPlot.cxx:2342
 HepDataMCPlot.cxx:2343
 HepDataMCPlot.cxx:2344
 HepDataMCPlot.cxx:2345
 HepDataMCPlot.cxx:2346
 HepDataMCPlot.cxx:2347
 HepDataMCPlot.cxx:2348
 HepDataMCPlot.cxx:2349
 HepDataMCPlot.cxx:2350
 HepDataMCPlot.cxx:2351
 HepDataMCPlot.cxx:2352
 HepDataMCPlot.cxx:2353
 HepDataMCPlot.cxx:2354
 HepDataMCPlot.cxx:2355
 HepDataMCPlot.cxx:2356
 HepDataMCPlot.cxx:2357
 HepDataMCPlot.cxx:2358
 HepDataMCPlot.cxx:2359
 HepDataMCPlot.cxx:2360
 HepDataMCPlot.cxx:2361
 HepDataMCPlot.cxx:2362
 HepDataMCPlot.cxx:2363
 HepDataMCPlot.cxx:2364
 HepDataMCPlot.cxx:2365
 HepDataMCPlot.cxx:2366
 HepDataMCPlot.cxx:2367
 HepDataMCPlot.cxx:2368
 HepDataMCPlot.cxx:2369
 HepDataMCPlot.cxx:2370
 HepDataMCPlot.cxx:2371
 HepDataMCPlot.cxx:2372
 HepDataMCPlot.cxx:2373
 HepDataMCPlot.cxx:2374
 HepDataMCPlot.cxx:2375
 HepDataMCPlot.cxx:2376
 HepDataMCPlot.cxx:2377
 HepDataMCPlot.cxx:2378
 HepDataMCPlot.cxx:2379
 HepDataMCPlot.cxx:2380
 HepDataMCPlot.cxx:2381
 HepDataMCPlot.cxx:2382
 HepDataMCPlot.cxx:2383
 HepDataMCPlot.cxx:2384
 HepDataMCPlot.cxx:2385
 HepDataMCPlot.cxx:2386
 HepDataMCPlot.cxx:2387
 HepDataMCPlot.cxx:2388
 HepDataMCPlot.cxx:2389
 HepDataMCPlot.cxx:2390
 HepDataMCPlot.cxx:2391
 HepDataMCPlot.cxx:2392
 HepDataMCPlot.cxx:2393
 HepDataMCPlot.cxx:2394
 HepDataMCPlot.cxx:2395
 HepDataMCPlot.cxx:2396
 HepDataMCPlot.cxx:2397
 HepDataMCPlot.cxx:2398
 HepDataMCPlot.cxx:2399
 HepDataMCPlot.cxx:2400
 HepDataMCPlot.cxx:2401
 HepDataMCPlot.cxx:2402
 HepDataMCPlot.cxx:2403
 HepDataMCPlot.cxx:2404
 HepDataMCPlot.cxx:2405
 HepDataMCPlot.cxx:2406
 HepDataMCPlot.cxx:2407
 HepDataMCPlot.cxx:2408
 HepDataMCPlot.cxx:2409
 HepDataMCPlot.cxx:2410
 HepDataMCPlot.cxx:2411
 HepDataMCPlot.cxx:2412
 HepDataMCPlot.cxx:2413
 HepDataMCPlot.cxx:2414
 HepDataMCPlot.cxx:2415
 HepDataMCPlot.cxx:2416
 HepDataMCPlot.cxx:2417
 HepDataMCPlot.cxx:2418
 HepDataMCPlot.cxx:2419
 HepDataMCPlot.cxx:2420
 HepDataMCPlot.cxx:2421
 HepDataMCPlot.cxx:2422
 HepDataMCPlot.cxx:2423
 HepDataMCPlot.cxx:2424
 HepDataMCPlot.cxx:2425
 HepDataMCPlot.cxx:2426
 HepDataMCPlot.cxx:2427
 HepDataMCPlot.cxx:2428
 HepDataMCPlot.cxx:2429
 HepDataMCPlot.cxx:2430
 HepDataMCPlot.cxx:2431
 HepDataMCPlot.cxx:2432
 HepDataMCPlot.cxx:2433
 HepDataMCPlot.cxx:2434
 HepDataMCPlot.cxx:2435
 HepDataMCPlot.cxx:2436
 HepDataMCPlot.cxx:2437
 HepDataMCPlot.cxx:2438
 HepDataMCPlot.cxx:2439
 HepDataMCPlot.cxx:2440
 HepDataMCPlot.cxx:2441
 HepDataMCPlot.cxx:2442
 HepDataMCPlot.cxx:2443
 HepDataMCPlot.cxx:2444
 HepDataMCPlot.cxx:2445
 HepDataMCPlot.cxx:2446
 HepDataMCPlot.cxx:2447
 HepDataMCPlot.cxx:2448
 HepDataMCPlot.cxx:2449
 HepDataMCPlot.cxx:2450
 HepDataMCPlot.cxx:2451
 HepDataMCPlot.cxx:2452
 HepDataMCPlot.cxx:2453
 HepDataMCPlot.cxx:2454
 HepDataMCPlot.cxx:2455
 HepDataMCPlot.cxx:2456
 HepDataMCPlot.cxx:2457
 HepDataMCPlot.cxx:2458
 HepDataMCPlot.cxx:2459
 HepDataMCPlot.cxx:2460
 HepDataMCPlot.cxx:2461
 HepDataMCPlot.cxx:2462
 HepDataMCPlot.cxx:2463
 HepDataMCPlot.cxx:2464
 HepDataMCPlot.cxx:2465
 HepDataMCPlot.cxx:2466
 HepDataMCPlot.cxx:2467
 HepDataMCPlot.cxx:2468
 HepDataMCPlot.cxx:2469
 HepDataMCPlot.cxx:2470
 HepDataMCPlot.cxx:2471
 HepDataMCPlot.cxx:2472
 HepDataMCPlot.cxx:2473
 HepDataMCPlot.cxx:2474
 HepDataMCPlot.cxx:2475
 HepDataMCPlot.cxx:2476
 HepDataMCPlot.cxx:2477
 HepDataMCPlot.cxx:2478
 HepDataMCPlot.cxx:2479
 HepDataMCPlot.cxx:2480
 HepDataMCPlot.cxx:2481
 HepDataMCPlot.cxx:2482
 HepDataMCPlot.cxx:2483
 HepDataMCPlot.cxx:2484
 HepDataMCPlot.cxx:2485
 HepDataMCPlot.cxx:2486
 HepDataMCPlot.cxx:2487
 HepDataMCPlot.cxx:2488
 HepDataMCPlot.cxx:2489
 HepDataMCPlot.cxx:2490
 HepDataMCPlot.cxx:2491
 HepDataMCPlot.cxx:2492
 HepDataMCPlot.cxx:2493
 HepDataMCPlot.cxx:2494
 HepDataMCPlot.cxx:2495
 HepDataMCPlot.cxx:2496
 HepDataMCPlot.cxx:2497
 HepDataMCPlot.cxx:2498
 HepDataMCPlot.cxx:2499
 HepDataMCPlot.cxx:2500
 HepDataMCPlot.cxx:2501
 HepDataMCPlot.cxx:2502
 HepDataMCPlot.cxx:2503
 HepDataMCPlot.cxx:2504
 HepDataMCPlot.cxx:2505
 HepDataMCPlot.cxx:2506
 HepDataMCPlot.cxx:2507
 HepDataMCPlot.cxx:2508
 HepDataMCPlot.cxx:2509
 HepDataMCPlot.cxx:2510
 HepDataMCPlot.cxx:2511
 HepDataMCPlot.cxx:2512
 HepDataMCPlot.cxx:2513
 HepDataMCPlot.cxx:2514
 HepDataMCPlot.cxx:2515
 HepDataMCPlot.cxx:2516
 HepDataMCPlot.cxx:2517
 HepDataMCPlot.cxx:2518
 HepDataMCPlot.cxx:2519
 HepDataMCPlot.cxx:2520
 HepDataMCPlot.cxx:2521
 HepDataMCPlot.cxx:2522
 HepDataMCPlot.cxx:2523
 HepDataMCPlot.cxx:2524
 HepDataMCPlot.cxx:2525
 HepDataMCPlot.cxx:2526
 HepDataMCPlot.cxx:2527
 HepDataMCPlot.cxx:2528
 HepDataMCPlot.cxx:2529
 HepDataMCPlot.cxx:2530
 HepDataMCPlot.cxx:2531
 HepDataMCPlot.cxx:2532
 HepDataMCPlot.cxx:2533
 HepDataMCPlot.cxx:2534
 HepDataMCPlot.cxx:2535
 HepDataMCPlot.cxx:2536
 HepDataMCPlot.cxx:2537
 HepDataMCPlot.cxx:2538
 HepDataMCPlot.cxx:2539
 HepDataMCPlot.cxx:2540
 HepDataMCPlot.cxx:2541
 HepDataMCPlot.cxx:2542
 HepDataMCPlot.cxx:2543
 HepDataMCPlot.cxx:2544
 HepDataMCPlot.cxx:2545
 HepDataMCPlot.cxx:2546
 HepDataMCPlot.cxx:2547
 HepDataMCPlot.cxx:2548
 HepDataMCPlot.cxx:2549
 HepDataMCPlot.cxx:2550
 HepDataMCPlot.cxx:2551
 HepDataMCPlot.cxx:2552
 HepDataMCPlot.cxx:2553
 HepDataMCPlot.cxx:2554
 HepDataMCPlot.cxx:2555
 HepDataMCPlot.cxx:2556
 HepDataMCPlot.cxx:2557
 HepDataMCPlot.cxx:2558
 HepDataMCPlot.cxx:2559
 HepDataMCPlot.cxx:2560
 HepDataMCPlot.cxx:2561
 HepDataMCPlot.cxx:2562
 HepDataMCPlot.cxx:2563
 HepDataMCPlot.cxx:2564
 HepDataMCPlot.cxx:2565
 HepDataMCPlot.cxx:2566
 HepDataMCPlot.cxx:2567
 HepDataMCPlot.cxx:2568
 HepDataMCPlot.cxx:2569
 HepDataMCPlot.cxx:2570
 HepDataMCPlot.cxx:2571
 HepDataMCPlot.cxx:2572
 HepDataMCPlot.cxx:2573
 HepDataMCPlot.cxx:2574
 HepDataMCPlot.cxx:2575
 HepDataMCPlot.cxx:2576
 HepDataMCPlot.cxx:2577
 HepDataMCPlot.cxx:2578
 HepDataMCPlot.cxx:2579
 HepDataMCPlot.cxx:2580
 HepDataMCPlot.cxx:2581
 HepDataMCPlot.cxx:2582
 HepDataMCPlot.cxx:2583
 HepDataMCPlot.cxx:2584
 HepDataMCPlot.cxx:2585
 HepDataMCPlot.cxx:2586
 HepDataMCPlot.cxx:2587
 HepDataMCPlot.cxx:2588
 HepDataMCPlot.cxx:2589
 HepDataMCPlot.cxx:2590
 HepDataMCPlot.cxx:2591
 HepDataMCPlot.cxx:2592
 HepDataMCPlot.cxx:2593
 HepDataMCPlot.cxx:2594
 HepDataMCPlot.cxx:2595
 HepDataMCPlot.cxx:2596
 HepDataMCPlot.cxx:2597
 HepDataMCPlot.cxx:2598
 HepDataMCPlot.cxx:2599
 HepDataMCPlot.cxx:2600
 HepDataMCPlot.cxx:2601
 HepDataMCPlot.cxx:2602
 HepDataMCPlot.cxx:2603
 HepDataMCPlot.cxx:2604
 HepDataMCPlot.cxx:2605
 HepDataMCPlot.cxx:2606
 HepDataMCPlot.cxx:2607
 HepDataMCPlot.cxx:2608
 HepDataMCPlot.cxx:2609
 HepDataMCPlot.cxx:2610
 HepDataMCPlot.cxx:2611
 HepDataMCPlot.cxx:2612
 HepDataMCPlot.cxx:2613
 HepDataMCPlot.cxx:2614
 HepDataMCPlot.cxx:2615
 HepDataMCPlot.cxx:2616
 HepDataMCPlot.cxx:2617
 HepDataMCPlot.cxx:2618
 HepDataMCPlot.cxx:2619
 HepDataMCPlot.cxx:2620
 HepDataMCPlot.cxx:2621
 HepDataMCPlot.cxx:2622
 HepDataMCPlot.cxx:2623
 HepDataMCPlot.cxx:2624
 HepDataMCPlot.cxx:2625
 HepDataMCPlot.cxx:2626
 HepDataMCPlot.cxx:2627
 HepDataMCPlot.cxx:2628
 HepDataMCPlot.cxx:2629
 HepDataMCPlot.cxx:2630
 HepDataMCPlot.cxx:2631
 HepDataMCPlot.cxx:2632
 HepDataMCPlot.cxx:2633
 HepDataMCPlot.cxx:2634
 HepDataMCPlot.cxx:2635
 HepDataMCPlot.cxx:2636
 HepDataMCPlot.cxx:2637
 HepDataMCPlot.cxx:2638
 HepDataMCPlot.cxx:2639
 HepDataMCPlot.cxx:2640
 HepDataMCPlot.cxx:2641
 HepDataMCPlot.cxx:2642
 HepDataMCPlot.cxx:2643
 HepDataMCPlot.cxx:2644
 HepDataMCPlot.cxx:2645
 HepDataMCPlot.cxx:2646
 HepDataMCPlot.cxx:2647
 HepDataMCPlot.cxx:2648
 HepDataMCPlot.cxx:2649
 HepDataMCPlot.cxx:2650
 HepDataMCPlot.cxx:2651
 HepDataMCPlot.cxx:2652
 HepDataMCPlot.cxx:2653
 HepDataMCPlot.cxx:2654
 HepDataMCPlot.cxx:2655
 HepDataMCPlot.cxx:2656
 HepDataMCPlot.cxx:2657
 HepDataMCPlot.cxx:2658
 HepDataMCPlot.cxx:2659
 HepDataMCPlot.cxx:2660
 HepDataMCPlot.cxx:2661
 HepDataMCPlot.cxx:2662
 HepDataMCPlot.cxx:2663
 HepDataMCPlot.cxx:2664
 HepDataMCPlot.cxx:2665
 HepDataMCPlot.cxx:2666
 HepDataMCPlot.cxx:2667
 HepDataMCPlot.cxx:2668
 HepDataMCPlot.cxx:2669
 HepDataMCPlot.cxx:2670
 HepDataMCPlot.cxx:2671
 HepDataMCPlot.cxx:2672
 HepDataMCPlot.cxx:2673
 HepDataMCPlot.cxx:2674
 HepDataMCPlot.cxx:2675
 HepDataMCPlot.cxx:2676
 HepDataMCPlot.cxx:2677
 HepDataMCPlot.cxx:2678
 HepDataMCPlot.cxx:2679
 HepDataMCPlot.cxx:2680
 HepDataMCPlot.cxx:2681
 HepDataMCPlot.cxx:2682
 HepDataMCPlot.cxx:2683
 HepDataMCPlot.cxx:2684
 HepDataMCPlot.cxx:2685
 HepDataMCPlot.cxx:2686
 HepDataMCPlot.cxx:2687
 HepDataMCPlot.cxx:2688
 HepDataMCPlot.cxx:2689
 HepDataMCPlot.cxx:2690
 HepDataMCPlot.cxx:2691
 HepDataMCPlot.cxx:2692
 HepDataMCPlot.cxx:2693
 HepDataMCPlot.cxx:2694
 HepDataMCPlot.cxx:2695
 HepDataMCPlot.cxx:2696
 HepDataMCPlot.cxx:2697
 HepDataMCPlot.cxx:2698
 HepDataMCPlot.cxx:2699
 HepDataMCPlot.cxx:2700
 HepDataMCPlot.cxx:2701
 HepDataMCPlot.cxx:2702
 HepDataMCPlot.cxx:2703
 HepDataMCPlot.cxx:2704
 HepDataMCPlot.cxx:2705
 HepDataMCPlot.cxx:2706
 HepDataMCPlot.cxx:2707
 HepDataMCPlot.cxx:2708
 HepDataMCPlot.cxx:2709
 HepDataMCPlot.cxx:2710
 HepDataMCPlot.cxx:2711
 HepDataMCPlot.cxx:2712
 HepDataMCPlot.cxx:2713
 HepDataMCPlot.cxx:2714
 HepDataMCPlot.cxx:2715
 HepDataMCPlot.cxx:2716
 HepDataMCPlot.cxx:2717
 HepDataMCPlot.cxx:2718
 HepDataMCPlot.cxx:2719
 HepDataMCPlot.cxx:2720
 HepDataMCPlot.cxx:2721
 HepDataMCPlot.cxx:2722
 HepDataMCPlot.cxx:2723
 HepDataMCPlot.cxx:2724
 HepDataMCPlot.cxx:2725
 HepDataMCPlot.cxx:2726
 HepDataMCPlot.cxx:2727
 HepDataMCPlot.cxx:2728
 HepDataMCPlot.cxx:2729
 HepDataMCPlot.cxx:2730
 HepDataMCPlot.cxx:2731
 HepDataMCPlot.cxx:2732
 HepDataMCPlot.cxx:2733
 HepDataMCPlot.cxx:2734
 HepDataMCPlot.cxx:2735
 HepDataMCPlot.cxx:2736
 HepDataMCPlot.cxx:2737
 HepDataMCPlot.cxx:2738
 HepDataMCPlot.cxx:2739
 HepDataMCPlot.cxx:2740
 HepDataMCPlot.cxx:2741
 HepDataMCPlot.cxx:2742
 HepDataMCPlot.cxx:2743
 HepDataMCPlot.cxx:2744
 HepDataMCPlot.cxx:2745
 HepDataMCPlot.cxx:2746
 HepDataMCPlot.cxx:2747
 HepDataMCPlot.cxx:2748
 HepDataMCPlot.cxx:2749
 HepDataMCPlot.cxx:2750
 HepDataMCPlot.cxx:2751
 HepDataMCPlot.cxx:2752
 HepDataMCPlot.cxx:2753
 HepDataMCPlot.cxx:2754
 HepDataMCPlot.cxx:2755
 HepDataMCPlot.cxx:2756
 HepDataMCPlot.cxx:2757
 HepDataMCPlot.cxx:2758
 HepDataMCPlot.cxx:2759
 HepDataMCPlot.cxx:2760
 HepDataMCPlot.cxx:2761
 HepDataMCPlot.cxx:2762
 HepDataMCPlot.cxx:2763
 HepDataMCPlot.cxx:2764
 HepDataMCPlot.cxx:2765
 HepDataMCPlot.cxx:2766
 HepDataMCPlot.cxx:2767
 HepDataMCPlot.cxx:2768
 HepDataMCPlot.cxx:2769
 HepDataMCPlot.cxx:2770
 HepDataMCPlot.cxx:2771
 HepDataMCPlot.cxx:2772
 HepDataMCPlot.cxx:2773
 HepDataMCPlot.cxx:2774
 HepDataMCPlot.cxx:2775
 HepDataMCPlot.cxx:2776
 HepDataMCPlot.cxx:2777
 HepDataMCPlot.cxx:2778
 HepDataMCPlot.cxx:2779
 HepDataMCPlot.cxx:2780
 HepDataMCPlot.cxx:2781
 HepDataMCPlot.cxx:2782
 HepDataMCPlot.cxx:2783
 HepDataMCPlot.cxx:2784
 HepDataMCPlot.cxx:2785
 HepDataMCPlot.cxx:2786
 HepDataMCPlot.cxx:2787
 HepDataMCPlot.cxx:2788
 HepDataMCPlot.cxx:2789
 HepDataMCPlot.cxx:2790
 HepDataMCPlot.cxx:2791
 HepDataMCPlot.cxx:2792
 HepDataMCPlot.cxx:2793
 HepDataMCPlot.cxx:2794
 HepDataMCPlot.cxx:2795
 HepDataMCPlot.cxx:2796
 HepDataMCPlot.cxx:2797
 HepDataMCPlot.cxx:2798
 HepDataMCPlot.cxx:2799
 HepDataMCPlot.cxx:2800
 HepDataMCPlot.cxx:2801
 HepDataMCPlot.cxx:2802
 HepDataMCPlot.cxx:2803
 HepDataMCPlot.cxx:2804
 HepDataMCPlot.cxx:2805
 HepDataMCPlot.cxx:2806
 HepDataMCPlot.cxx:2807
 HepDataMCPlot.cxx:2808
 HepDataMCPlot.cxx:2809
 HepDataMCPlot.cxx:2810
 HepDataMCPlot.cxx:2811
 HepDataMCPlot.cxx:2812
 HepDataMCPlot.cxx:2813
 HepDataMCPlot.cxx:2814
 HepDataMCPlot.cxx:2815
 HepDataMCPlot.cxx:2816
 HepDataMCPlot.cxx:2817
 HepDataMCPlot.cxx:2818
 HepDataMCPlot.cxx:2819
 HepDataMCPlot.cxx:2820
 HepDataMCPlot.cxx:2821
 HepDataMCPlot.cxx:2822
 HepDataMCPlot.cxx:2823
 HepDataMCPlot.cxx:2824
 HepDataMCPlot.cxx:2825
 HepDataMCPlot.cxx:2826
 HepDataMCPlot.cxx:2827
 HepDataMCPlot.cxx:2828
 HepDataMCPlot.cxx:2829
 HepDataMCPlot.cxx:2830
 HepDataMCPlot.cxx:2831
 HepDataMCPlot.cxx:2832
 HepDataMCPlot.cxx:2833
 HepDataMCPlot.cxx:2834
 HepDataMCPlot.cxx:2835
 HepDataMCPlot.cxx:2836
 HepDataMCPlot.cxx:2837
 HepDataMCPlot.cxx:2838
 HepDataMCPlot.cxx:2839
 HepDataMCPlot.cxx:2840
 HepDataMCPlot.cxx:2841
 HepDataMCPlot.cxx:2842
 HepDataMCPlot.cxx:2843
 HepDataMCPlot.cxx:2844
 HepDataMCPlot.cxx:2845
 HepDataMCPlot.cxx:2846
 HepDataMCPlot.cxx:2847
 HepDataMCPlot.cxx:2848
 HepDataMCPlot.cxx:2849
 HepDataMCPlot.cxx:2850
 HepDataMCPlot.cxx:2851
 HepDataMCPlot.cxx:2852
 HepDataMCPlot.cxx:2853
 HepDataMCPlot.cxx:2854
 HepDataMCPlot.cxx:2855
 HepDataMCPlot.cxx:2856
 HepDataMCPlot.cxx:2857
 HepDataMCPlot.cxx:2858
 HepDataMCPlot.cxx:2859
 HepDataMCPlot.cxx:2860
 HepDataMCPlot.cxx:2861
 HepDataMCPlot.cxx:2862
 HepDataMCPlot.cxx:2863
 HepDataMCPlot.cxx:2864
 HepDataMCPlot.cxx:2865
 HepDataMCPlot.cxx:2866
 HepDataMCPlot.cxx:2867
 HepDataMCPlot.cxx:2868
 HepDataMCPlot.cxx:2869
 HepDataMCPlot.cxx:2870
 HepDataMCPlot.cxx:2871
 HepDataMCPlot.cxx:2872
 HepDataMCPlot.cxx:2873
 HepDataMCPlot.cxx:2874
 HepDataMCPlot.cxx:2875
 HepDataMCPlot.cxx:2876
 HepDataMCPlot.cxx:2877
 HepDataMCPlot.cxx:2878
 HepDataMCPlot.cxx:2879
 HepDataMCPlot.cxx:2880
 HepDataMCPlot.cxx:2881
 HepDataMCPlot.cxx:2882
 HepDataMCPlot.cxx:2883
 HepDataMCPlot.cxx:2884
 HepDataMCPlot.cxx:2885
 HepDataMCPlot.cxx:2886
 HepDataMCPlot.cxx:2887
 HepDataMCPlot.cxx:2888
 HepDataMCPlot.cxx:2889
 HepDataMCPlot.cxx:2890
 HepDataMCPlot.cxx:2891
 HepDataMCPlot.cxx:2892
 HepDataMCPlot.cxx:2893
 HepDataMCPlot.cxx:2894
 HepDataMCPlot.cxx:2895
 HepDataMCPlot.cxx:2896
 HepDataMCPlot.cxx:2897
 HepDataMCPlot.cxx:2898
 HepDataMCPlot.cxx:2899
 HepDataMCPlot.cxx:2900
 HepDataMCPlot.cxx:2901
 HepDataMCPlot.cxx:2902
 HepDataMCPlot.cxx:2903
 HepDataMCPlot.cxx:2904
 HepDataMCPlot.cxx:2905
 HepDataMCPlot.cxx:2906
 HepDataMCPlot.cxx:2907
 HepDataMCPlot.cxx:2908
 HepDataMCPlot.cxx:2909
 HepDataMCPlot.cxx:2910
 HepDataMCPlot.cxx:2911
 HepDataMCPlot.cxx:2912
 HepDataMCPlot.cxx:2913
 HepDataMCPlot.cxx:2914
 HepDataMCPlot.cxx:2915
 HepDataMCPlot.cxx:2916
 HepDataMCPlot.cxx:2917
 HepDataMCPlot.cxx:2918
 HepDataMCPlot.cxx:2919
 HepDataMCPlot.cxx:2920
 HepDataMCPlot.cxx:2921
 HepDataMCPlot.cxx:2922
 HepDataMCPlot.cxx:2923
 HepDataMCPlot.cxx:2924
 HepDataMCPlot.cxx:2925
 HepDataMCPlot.cxx:2926
 HepDataMCPlot.cxx:2927
 HepDataMCPlot.cxx:2928
 HepDataMCPlot.cxx:2929
 HepDataMCPlot.cxx:2930
 HepDataMCPlot.cxx:2931
 HepDataMCPlot.cxx:2932
 HepDataMCPlot.cxx:2933
 HepDataMCPlot.cxx:2934
 HepDataMCPlot.cxx:2935
 HepDataMCPlot.cxx:2936
 HepDataMCPlot.cxx:2937
 HepDataMCPlot.cxx:2938
 HepDataMCPlot.cxx:2939
 HepDataMCPlot.cxx:2940
 HepDataMCPlot.cxx:2941
 HepDataMCPlot.cxx:2942
 HepDataMCPlot.cxx:2943
 HepDataMCPlot.cxx:2944
 HepDataMCPlot.cxx:2945
 HepDataMCPlot.cxx:2946
 HepDataMCPlot.cxx:2947
 HepDataMCPlot.cxx:2948
 HepDataMCPlot.cxx:2949
 HepDataMCPlot.cxx:2950
 HepDataMCPlot.cxx:2951
 HepDataMCPlot.cxx:2952
 HepDataMCPlot.cxx:2953
 HepDataMCPlot.cxx:2954
 HepDataMCPlot.cxx:2955
 HepDataMCPlot.cxx:2956
 HepDataMCPlot.cxx:2957
 HepDataMCPlot.cxx:2958
 HepDataMCPlot.cxx:2959
 HepDataMCPlot.cxx:2960
 HepDataMCPlot.cxx:2961
 HepDataMCPlot.cxx:2962
 HepDataMCPlot.cxx:2963
 HepDataMCPlot.cxx:2964
 HepDataMCPlot.cxx:2965
 HepDataMCPlot.cxx:2966
 HepDataMCPlot.cxx:2967
 HepDataMCPlot.cxx:2968
 HepDataMCPlot.cxx:2969
 HepDataMCPlot.cxx:2970
 HepDataMCPlot.cxx:2971
 HepDataMCPlot.cxx:2972
 HepDataMCPlot.cxx:2973
 HepDataMCPlot.cxx:2974
 HepDataMCPlot.cxx:2975
 HepDataMCPlot.cxx:2976
 HepDataMCPlot.cxx:2977
 HepDataMCPlot.cxx:2978
 HepDataMCPlot.cxx:2979
 HepDataMCPlot.cxx:2980
 HepDataMCPlot.cxx:2981
 HepDataMCPlot.cxx:2982
 HepDataMCPlot.cxx:2983
 HepDataMCPlot.cxx:2984
 HepDataMCPlot.cxx:2985
 HepDataMCPlot.cxx:2986
 HepDataMCPlot.cxx:2987
 HepDataMCPlot.cxx:2988
 HepDataMCPlot.cxx:2989
 HepDataMCPlot.cxx:2990
 HepDataMCPlot.cxx:2991
 HepDataMCPlot.cxx:2992
 HepDataMCPlot.cxx:2993
 HepDataMCPlot.cxx:2994
 HepDataMCPlot.cxx:2995
 HepDataMCPlot.cxx:2996
 HepDataMCPlot.cxx:2997
 HepDataMCPlot.cxx:2998
 HepDataMCPlot.cxx:2999
 HepDataMCPlot.cxx:3000
 HepDataMCPlot.cxx:3001
 HepDataMCPlot.cxx:3002
 HepDataMCPlot.cxx:3003
 HepDataMCPlot.cxx:3004
 HepDataMCPlot.cxx:3005
 HepDataMCPlot.cxx:3006
 HepDataMCPlot.cxx:3007
 HepDataMCPlot.cxx:3008
 HepDataMCPlot.cxx:3009
 HepDataMCPlot.cxx:3010
 HepDataMCPlot.cxx:3011
 HepDataMCPlot.cxx:3012
 HepDataMCPlot.cxx:3013
 HepDataMCPlot.cxx:3014
 HepDataMCPlot.cxx:3015
 HepDataMCPlot.cxx:3016
 HepDataMCPlot.cxx:3017
 HepDataMCPlot.cxx:3018
 HepDataMCPlot.cxx:3019
 HepDataMCPlot.cxx:3020
 HepDataMCPlot.cxx:3021
 HepDataMCPlot.cxx:3022
 HepDataMCPlot.cxx:3023
 HepDataMCPlot.cxx:3024
 HepDataMCPlot.cxx:3025
 HepDataMCPlot.cxx:3026
 HepDataMCPlot.cxx:3027
 HepDataMCPlot.cxx:3028
 HepDataMCPlot.cxx:3029
 HepDataMCPlot.cxx:3030
 HepDataMCPlot.cxx:3031
 HepDataMCPlot.cxx:3032
 HepDataMCPlot.cxx:3033
 HepDataMCPlot.cxx:3034
 HepDataMCPlot.cxx:3035
 HepDataMCPlot.cxx:3036
 HepDataMCPlot.cxx:3037
 HepDataMCPlot.cxx:3038
 HepDataMCPlot.cxx:3039
 HepDataMCPlot.cxx:3040
 HepDataMCPlot.cxx:3041
 HepDataMCPlot.cxx:3042
 HepDataMCPlot.cxx:3043
 HepDataMCPlot.cxx:3044
 HepDataMCPlot.cxx:3045
 HepDataMCPlot.cxx:3046
 HepDataMCPlot.cxx:3047
 HepDataMCPlot.cxx:3048
 HepDataMCPlot.cxx:3049
 HepDataMCPlot.cxx:3050
 HepDataMCPlot.cxx:3051
 HepDataMCPlot.cxx:3052
 HepDataMCPlot.cxx:3053
 HepDataMCPlot.cxx:3054
 HepDataMCPlot.cxx:3055
 HepDataMCPlot.cxx:3056
 HepDataMCPlot.cxx:3057
 HepDataMCPlot.cxx:3058
 HepDataMCPlot.cxx:3059
 HepDataMCPlot.cxx:3060
 HepDataMCPlot.cxx:3061
 HepDataMCPlot.cxx:3062
 HepDataMCPlot.cxx:3063
 HepDataMCPlot.cxx:3064
 HepDataMCPlot.cxx:3065
 HepDataMCPlot.cxx:3066
 HepDataMCPlot.cxx:3067
 HepDataMCPlot.cxx:3068
 HepDataMCPlot.cxx:3069
 HepDataMCPlot.cxx:3070
 HepDataMCPlot.cxx:3071
 HepDataMCPlot.cxx:3072
 HepDataMCPlot.cxx:3073
 HepDataMCPlot.cxx:3074
 HepDataMCPlot.cxx:3075
 HepDataMCPlot.cxx:3076
 HepDataMCPlot.cxx:3077
 HepDataMCPlot.cxx:3078
 HepDataMCPlot.cxx:3079
 HepDataMCPlot.cxx:3080
 HepDataMCPlot.cxx:3081
 HepDataMCPlot.cxx:3082
 HepDataMCPlot.cxx:3083
 HepDataMCPlot.cxx:3084
 HepDataMCPlot.cxx:3085
 HepDataMCPlot.cxx:3086
 HepDataMCPlot.cxx:3087
 HepDataMCPlot.cxx:3088
 HepDataMCPlot.cxx:3089
 HepDataMCPlot.cxx:3090
 HepDataMCPlot.cxx:3091
 HepDataMCPlot.cxx:3092
 HepDataMCPlot.cxx:3093
 HepDataMCPlot.cxx:3094
 HepDataMCPlot.cxx:3095
 HepDataMCPlot.cxx:3096
 HepDataMCPlot.cxx:3097
 HepDataMCPlot.cxx:3098
 HepDataMCPlot.cxx:3099
 HepDataMCPlot.cxx:3100
 HepDataMCPlot.cxx:3101
 HepDataMCPlot.cxx:3102
 HepDataMCPlot.cxx:3103
 HepDataMCPlot.cxx:3104
 HepDataMCPlot.cxx:3105
 HepDataMCPlot.cxx:3106
 HepDataMCPlot.cxx:3107
 HepDataMCPlot.cxx:3108
 HepDataMCPlot.cxx:3109
 HepDataMCPlot.cxx:3110
 HepDataMCPlot.cxx:3111
 HepDataMCPlot.cxx:3112
 HepDataMCPlot.cxx:3113
 HepDataMCPlot.cxx:3114
 HepDataMCPlot.cxx:3115
 HepDataMCPlot.cxx:3116
 HepDataMCPlot.cxx:3117
 HepDataMCPlot.cxx:3118
 HepDataMCPlot.cxx:3119
 HepDataMCPlot.cxx:3120
 HepDataMCPlot.cxx:3121
 HepDataMCPlot.cxx:3122
 HepDataMCPlot.cxx:3123
 HepDataMCPlot.cxx:3124
 HepDataMCPlot.cxx:3125
 HepDataMCPlot.cxx:3126
 HepDataMCPlot.cxx:3127
 HepDataMCPlot.cxx:3128
 HepDataMCPlot.cxx:3129
 HepDataMCPlot.cxx:3130
 HepDataMCPlot.cxx:3131
 HepDataMCPlot.cxx:3132
 HepDataMCPlot.cxx:3133
 HepDataMCPlot.cxx:3134
 HepDataMCPlot.cxx:3135
 HepDataMCPlot.cxx:3136
 HepDataMCPlot.cxx:3137
 HepDataMCPlot.cxx:3138
 HepDataMCPlot.cxx:3139
 HepDataMCPlot.cxx:3140
 HepDataMCPlot.cxx:3141
 HepDataMCPlot.cxx:3142
 HepDataMCPlot.cxx:3143
 HepDataMCPlot.cxx:3144
 HepDataMCPlot.cxx:3145
 HepDataMCPlot.cxx:3146
 HepDataMCPlot.cxx:3147
 HepDataMCPlot.cxx:3148
 HepDataMCPlot.cxx:3149
 HepDataMCPlot.cxx:3150
 HepDataMCPlot.cxx:3151
 HepDataMCPlot.cxx:3152
 HepDataMCPlot.cxx:3153
 HepDataMCPlot.cxx:3154
 HepDataMCPlot.cxx:3155
 HepDataMCPlot.cxx:3156
 HepDataMCPlot.cxx:3157
 HepDataMCPlot.cxx:3158
 HepDataMCPlot.cxx:3159
 HepDataMCPlot.cxx:3160
 HepDataMCPlot.cxx:3161
 HepDataMCPlot.cxx:3162
 HepDataMCPlot.cxx:3163
 HepDataMCPlot.cxx:3164
 HepDataMCPlot.cxx:3165
 HepDataMCPlot.cxx:3166
 HepDataMCPlot.cxx:3167
 HepDataMCPlot.cxx:3168
 HepDataMCPlot.cxx:3169
 HepDataMCPlot.cxx:3170
 HepDataMCPlot.cxx:3171
 HepDataMCPlot.cxx:3172
 HepDataMCPlot.cxx:3173
 HepDataMCPlot.cxx:3174
 HepDataMCPlot.cxx:3175
 HepDataMCPlot.cxx:3176
 HepDataMCPlot.cxx:3177
 HepDataMCPlot.cxx:3178
 HepDataMCPlot.cxx:3179
 HepDataMCPlot.cxx:3180
 HepDataMCPlot.cxx:3181
 HepDataMCPlot.cxx:3182
 HepDataMCPlot.cxx:3183
 HepDataMCPlot.cxx:3184
 HepDataMCPlot.cxx:3185
 HepDataMCPlot.cxx:3186
 HepDataMCPlot.cxx:3187
 HepDataMCPlot.cxx:3188
 HepDataMCPlot.cxx:3189
 HepDataMCPlot.cxx:3190
 HepDataMCPlot.cxx:3191
 HepDataMCPlot.cxx:3192
 HepDataMCPlot.cxx:3193
 HepDataMCPlot.cxx:3194
 HepDataMCPlot.cxx:3195
 HepDataMCPlot.cxx:3196
 HepDataMCPlot.cxx:3197
 HepDataMCPlot.cxx:3198
 HepDataMCPlot.cxx:3199
 HepDataMCPlot.cxx:3200
 HepDataMCPlot.cxx:3201
 HepDataMCPlot.cxx:3202
 HepDataMCPlot.cxx:3203
 HepDataMCPlot.cxx:3204
 HepDataMCPlot.cxx:3205
 HepDataMCPlot.cxx:3206
 HepDataMCPlot.cxx:3207
 HepDataMCPlot.cxx:3208
 HepDataMCPlot.cxx:3209
 HepDataMCPlot.cxx:3210
 HepDataMCPlot.cxx:3211
 HepDataMCPlot.cxx:3212
 HepDataMCPlot.cxx:3213
 HepDataMCPlot.cxx:3214
 HepDataMCPlot.cxx:3215
 HepDataMCPlot.cxx:3216
 HepDataMCPlot.cxx:3217
 HepDataMCPlot.cxx:3218
 HepDataMCPlot.cxx:3219
 HepDataMCPlot.cxx:3220
 HepDataMCPlot.cxx:3221
 HepDataMCPlot.cxx:3222
 HepDataMCPlot.cxx:3223
 HepDataMCPlot.cxx:3224
 HepDataMCPlot.cxx:3225
 HepDataMCPlot.cxx:3226
 HepDataMCPlot.cxx:3227
 HepDataMCPlot.cxx:3228
 HepDataMCPlot.cxx:3229
 HepDataMCPlot.cxx:3230
 HepDataMCPlot.cxx:3231
 HepDataMCPlot.cxx:3232
 HepDataMCPlot.cxx:3233
 HepDataMCPlot.cxx:3234
 HepDataMCPlot.cxx:3235
 HepDataMCPlot.cxx:3236
 HepDataMCPlot.cxx:3237
 HepDataMCPlot.cxx:3238
 HepDataMCPlot.cxx:3239
 HepDataMCPlot.cxx:3240
 HepDataMCPlot.cxx:3241
 HepDataMCPlot.cxx:3242
 HepDataMCPlot.cxx:3243
 HepDataMCPlot.cxx:3244
 HepDataMCPlot.cxx:3245
 HepDataMCPlot.cxx:3246
 HepDataMCPlot.cxx:3247
 HepDataMCPlot.cxx:3248
 HepDataMCPlot.cxx:3249
 HepDataMCPlot.cxx:3250
 HepDataMCPlot.cxx:3251
 HepDataMCPlot.cxx:3252
 HepDataMCPlot.cxx:3253
 HepDataMCPlot.cxx:3254
 HepDataMCPlot.cxx:3255
 HepDataMCPlot.cxx:3256
 HepDataMCPlot.cxx:3257
 HepDataMCPlot.cxx:3258
 HepDataMCPlot.cxx:3259
 HepDataMCPlot.cxx:3260
 HepDataMCPlot.cxx:3261
 HepDataMCPlot.cxx:3262
 HepDataMCPlot.cxx:3263
 HepDataMCPlot.cxx:3264
 HepDataMCPlot.cxx:3265
 HepDataMCPlot.cxx:3266
 HepDataMCPlot.cxx:3267
 HepDataMCPlot.cxx:3268
 HepDataMCPlot.cxx:3269
 HepDataMCPlot.cxx:3270
 HepDataMCPlot.cxx:3271
 HepDataMCPlot.cxx:3272
 HepDataMCPlot.cxx:3273
 HepDataMCPlot.cxx:3274
 HepDataMCPlot.cxx:3275
 HepDataMCPlot.cxx:3276