//____________________________________________________________________
//
// Class for managing tasks associated with HistFactory
//
// Currently thre functions are implemented:
//
// - CreateTemplates()
//   Used for creating all templates for fitting and for shape tests,
//   respectively. All templates are saved in a file, one file
//   per channel.
//   For the fit templates, the channel discriminant will be used and the
//   corresponding histograms are saved.
//   For shape analysis, the DiscrimantRef and DiscriminantShape will be
//   used. These have to be set defined for each channel separatly.
//
// - PerformShapeTests()
//   Runs Chi2 and KS tests and save results in a dedicated file, one
//   file per channel.
//
// - CreateWorkSpace()
//   Creates the histfactory workspace and saves it to disk.
//
// A detailed example for the configuration can be found in
// $LIBSINGLETOP/tasks/task_sChannelAnalysis_HistFactory.C
// 
//  
// Author: Soeren Stamm <mailto: stamm@physik.hu-berlin.de>
// Update: $Id: AtlHistFactoryTask.cxx,v 1.31 2017/06/28 15:27:23 kaphle Exp $
// Copyright: 2015 (C) Soeren Stamm
//
#ifndef ATLAS_AtlHistFactoryTask
#include <AtlHistFactoryTask.h>
#endif
#include <AtlHistFactoryMeasurement.h>
#include <AtlHistFactoryChannel.h>
#include <AtlHistFactorySample.h>
#include <AtlHistFactorySystematic.h>
#include <HepDataMCPlot.h>
#include <RooAbsData.h>
#include <RooCategory.h>
#include <RooCatType.h>
#include <RooConstVar.h>
#include <RooFitResult.h>
#include <RooProduct.h>
#include <RooRealSumPdf.h>
#include <RooRealVar.h>
#include <RooSimultaneous.h>
#include <RooStats/ProfileLikelihoodTestStat.h>
#include <TFile.h>
#include <TGaxis.h>
#include <TGraph.h>
#include <TGraphAsymmErrors.h>
#include <TGraphErrors.h>
#include <TH2.h>
#include <TLatex.h>
#include <TLine.h>
#include <TMath.h>
#include <TMultiGraph.h>
#include <TSystem.h>
#include <iostream>

using namespace std;
using namespace RooStats;
using namespace HistFactory;
using namespace RooFit;

#ifndef __CINT__
ClassImp(AtlHistFactoryTask);
#endif

//____________________________________________________________________

AtlHistFactoryTask::AtlHistFactoryTask(const char* name,
				       const char* title) :
    AtlTask(name, title) {
    //
    // Default constructor
    //
    fMeasurement = 0;
    fRunMode = kUnknown;
    fTemplateDir = 0;
    fHistFactoryDir = 0;
    fScheme = 0;

    // Pull plot configuration
    fNPullsPerPad    = 14;
    fPullScaleFactor = 10.;
}

//____________________________________________________________________

AtlHistFactoryTask::~AtlHistFactoryTask() {
    //
    // Default destructor
    //
    delete fTemplateDir;
}

//____________________________________________________________________

void AtlHistFactoryTask::ExecInteractiveJob(Option_t* option) {
    //
    // Exec interactive job
    //

    // Convert option string
    TString opt = option;
    opt.ToLower();
    
    if ( fRunMode == kCreateFitTemplates ||
	 fRunMode == kCreateShapeTemplates ) {
	CreateTemplates();
    } else if ( fRunMode == kPerformShapeTests ) {
	PerformShapeTests();
    } else if ( fRunMode == kCreateWorkspace ) {
	CreateWorkspace();
    } else if ( fRunMode == kFitModel ) {
	FitModel();
    } else if ( fRunMode == kRateTable ) {
	ExportRateUncertainties();
    } else if ( fRunMode == kHypoTestLimit ) {
	RunLimit();
    } else {
	Error("ExecInteractiveJob", "Unknown run mode! Try again.");
    }
}

//____________________________________________________________________

void AtlHistFactoryTask::ExecGridJob(Option_t*) {
    //
    // Exec grid job
    //
    Error("ExecGridJob", "Not supported! Abort!");
    gSystem->Abort(0);
}

//____________________________________________________________________

Bool_t AtlHistFactoryTask::ExecBatchJob(Option_t*) {
    //
    // Exec batch job
    //
    Error("ExecBatchJob", "Not supported! Abort!");
    gSystem->Abort(0);

    return kFALSE;
}

//____________________________________________________________________

void AtlHistFactoryTask::CreateRunScript(Option_t *option) {
    //
    // Create Run Script
    //
    Error("ExecGridRunScript", "Not supported! Abort!");
    gSystem->Abort(0);
}

//____________________________________________________________________

void AtlHistFactoryTask::ExecNAFBatchJob(Option_t*) {
    //
    // Exec NAF batch job
    //
    Error("ExecNAFBatchJob", "Not supported! Abort!");
    gSystem->Abort(0);
}

//____________________________________________________________________

void AtlHistFactoryTask::CreateNAFBatchRunScript() {
    //
    // Create NAF Batch Run Script
    //
    Error("ExecNAFBatchRunScript", "Not supported! Abort!");
    gSystem->Abort(0);
}

//____________________________________________________________________

void AtlHistFactoryTask::CreateGridRunScript() {
    //
    // Create Grid Run Script
    //
    Error("ExecGridRunScript", "Not supported! Abort!");
    gSystem->Abort(0);
}

//____________________________________________________________________

void AtlHistFactoryTask::Initialize() {
    //
    // Initialize HistFactory Task
    // - check if measurement is set
    // - set directories used by AtlTask
    //

    if ( fMeasurement == 0 ) {
	Error("Initialize",
	      "No measurement provided. Abort");
	gSystem->Abort();
    }

    TString outdir(gSystem->ExpandPathName(fMeasurement->GetOutputDir()->Data()));
    if ( !outdir.BeginsWith("/") ) {
	Error("Initialize",
	      "Output directory has to start with '/'. Abort!");
	gSystem->Abort();
    }
    
    // dummy outputfile needed for AtlTask
    SetOutputFile(Form("%s/HistFactory.root",
		       outdir.Data()));

    // Set pointer to output directory
    if ( fHistFactoryDir == 0 ) 
	fHistFactoryDir = GetDirectoryName("");

    // Set pointer to templates directory
    if ( fTemplateDir == 0 )
 	fTemplateDir = GetDirectoryName("templates");
}

//____________________________________________________________________

void AtlHistFactoryTask::CreateTemplates() {
    //
    // Create templates for given measurement
    //

    // Several problems need to be solved:
    // 1. We need to loop over all systematics to reduce
    //    IO operations
    //    --> However, not all samples have information for all
    //        systematics?
    //        E.g. a) QCD has no systematics or special systematics
    //             b) Generator comparison only effects one specific sample
    //             c) nominal has only one sample
    //
    // 2. Sample specific configuration for systematics:
    //    --> Shape info only for subset of all samples
    //    --> Other special configuration for systematics?
    //
    // Solution for 2.:
    // --> Save a list of systematics with special configurations
    //     These overwrite the general channel list
    // x> Here: not important because we don't need this information
    //          when creating the template file
    //
    // Solution for 1.:
    // --> b) At then end of this loop, loop over the list of systematics
    //        of each sample to get systematics that are only valid
    //        for a specific sample.
    // --> a) Samples that don't have infos on systematics will have the
    //        nominal histo saved as up and down variation (e.g. QCD)
    //        The nominal histo is used in the stack plot for the systematic!
    //        This problem is already solved during plotting!
    // --> c) Let the systematic save it's own template! Just provide the file pointer!

    fScheme = fMeasurement->GetScheme();
    if ( fScheme == 0 ) {
	Error("CreateTemplates", "Plotting folder not set. Abort!");
	gSystem->Abort();
    }
    
    // Loop over all channels
    TIter next_channel(fMeasurement->GetListOfChannels());
    AtlHistFactoryChannel *ch = 0;
    while ( (ch = (AtlHistFactoryChannel*) next_channel()) ) {
	
	// Create one outputfile per channel
	TFile *f = 0;

	// Create root file
	// (store shape and fit templates in different root files)
	TString filename;
	if ( fRunMode == kCreateShapeTemplates ) {
	    GetShapeTemplatesFileName(ch->GetName(), filename);
	    f = new TFile(filename.Data(), "RECREATE");
	    Info("CreateTemplates",
		 "Store shape templates in file %s",
		 f->GetName());
	} else {
	    GetTemplatesFileName(ch->GetName(), filename);
	    f = new TFile(filename.Data(), "RECREATE");
	    Info("CreateTemplates",
		 "Store fit templates in file %s",
		 f->GetName());
	}

	// Get the name of the discriminant
	// - fit templates:   GetDiscriminant()
	// - shape templates: GetShapeDiscriminantRef()  for nominal
	//                    GetShapeDiscriminantSyst() for all systematics

	TString *DiscriminantRef  = ch->GetShapeDiscriminantRef();
	TString *DiscriminantSyst = ch->GetShapeDiscriminantSyst();
	TString *DiscriminantFit  = new TString(ch->GetDiscriminant());

	if ( fRunMode == kCreateShapeTemplates &&
	     (DiscriminantRef == 0 || DiscriminantSyst == 0) ) {
	    
	    Error("CreateTemplates", "Shape histogram 'ref' or 'syst' is not set. Abort!");
	    gSystem->Abort();
	}

	if ( fRunMode == kCreateFitTemplates &&
	     DiscriminantFit == 0 ) {

	    Error("CreateTemplates", "Discriminant histogram 'fit' is not set. Abort!");
	    gSystem->Abort();
	}
	
	// Loop over all systematics for this channel
	TIter next_syst(ch->GetListOfSystematics());
	AtlHistFactorySystematic *syst = 0;
	while ( (syst = (AtlHistFactorySystematic*) next_syst()) ) {

	    // Skip systematics?
	    if ( fMeasurement->GetNoSystematics() && !syst->IsNominal() ) 
		continue;
	    
	    // Initialize systematic for this channel
	    // - Set discriminant for this channel
	    // - Set Base dir of MCPlotter files

	    // Get the name of the discriminant
	    // - fit templates:   GetDiscriminant()
	    // - shape templates: GetShapeDiscriminantRef()  for nominal
	    //                    GetShapeDiscriminantSyst() for all systematics
	    
	    if ( fRunMode == kCreateShapeTemplates ) {
		// Choose the reference shape template for nominal
		if ( syst->IsNominal() )
		    syst->SetDiscriminant(DiscriminantRef->Data());
		else
		    syst->SetDiscriminant(DiscriminantSyst->Data());
		
	    } else {
		// Choose the channel discriminant
		syst->SetDiscriminant(DiscriminantFit->Data());
	    }
	    syst->Initialize(ch->GetMCPlotterBaseDir(),
			     fScheme->Data());
	    
	    // Loop over all processes (samples) in one channel
	    TIter next_sample(ch->GetListOfSamples());
	    AtlHistFactorySample *sample = 0;
	    while ( (sample = (AtlHistFactorySample*) next_sample()) ) {
		
		// Initialize systematic for this sample/process
		syst->ChangeProcess(sample->GetName());

		// For each process and systematic, write histograms
		// to output file
		cout << "Save templates for process: " << sample->GetTitle() << endl;
		cout << "Systematic: " << syst->GetTitle() << endl;
		syst->SaveTemplates(f);
	    } // end of sample loop

	    // Clear systematic (close files, reset internal histograms, etc.)
	    syst->Clear();
	    
	} // end of syst loop
	
	// Loop for sample specific systematics
	TIter next_sample(ch->GetListOfSamples());
	AtlHistFactorySample *sample = 0;
	while ( (sample = (AtlHistFactorySample*) next_sample()) ) {

	    // Loop over all systematics for this sample
	    TIter next_sample_syst(sample->GetListOfSystematics());
	    AtlHistFactorySystematic *sample_syst = 0;
	    while ( (sample_syst = (AtlHistFactorySystematic*) next_sample_syst()) ) {

		// Skip systematics?
		if ( fMeasurement->GetNoSystematics() && !sample_syst->IsNominal() ) 
		    continue;
		
		// Check if templates for this systematic already exist
		TList *chan_systs = ch->GetListOfSystematics();
		TObject *syst2 = chan_systs->FindObject(sample_syst->GetTitle());
		if ( syst2 != 0 ) // systematic exists and was already produced
		    continue;     // therefore skip template generation
		
		// Initialize systematic for this sample
		// - Set discriminant for this channel
		// - Set Base dir of MCPlotter files
		if ( fRunMode == kCreateShapeTemplates ) {
		    // Choose the reference shape template for nominal
		    if ( sample_syst->IsNominal() )
			sample_syst->SetDiscriminant(DiscriminantRef->Data());
		    else
			sample_syst->SetDiscriminant(DiscriminantSyst->Data());
		} else {
		    // Choose the channel discriminant
		    sample_syst->SetDiscriminant(DiscriminantFit->Data());
		}
		sample_syst->Initialize(ch->GetMCPlotterBaseDir(),
					fScheme->Data());

		// Initialize systematic for this sample/process
		sample_syst->ChangeProcess(sample->GetName());
		
		// For each process and systematic, write histograms
		// to output file
		cout << "Save templates for process: " << sample->GetTitle() << endl;
		cout << "Systematic: " << sample_syst->GetTitle() << endl;
		sample_syst->SaveTemplates(f);
	    } // end of sample systematic loop
	} // end of sample loop
	
	// Export data once per channel (if needed)
	if ( fRunMode == kCreateFitTemplates &&
	     fMeasurement->GetUseAsimovData() == kFALSE ) {
	    
	    cout << "Save DATA template." << endl;

	    // ToDo: Unify if "nominal" systematic is not used as nominal reference
	    TFile *fPlotterFile = TFile::Open(Form("%s/nominal/%s/MCPlotter.root",
						   ch->GetMCPlotterBaseDir(),
						   fScheme->Data()));
	    HepDataMCPlot *Hep = (HepDataMCPlot*) fPlotterFile->Get(DiscriminantFit->Data());

	    TH1 *h_data = Hep->GetHistDATA();
	    if ( h_data == 0 ) {
		Error(__FUNCTION__, "Could not find data histogram. Abort!");
		gSystem->Abort();
	    }
	    h_data->SetName("data");

	    f->cd();
	    h_data->Write();
	    
	    fPlotterFile->Close();
	    delete fPlotterFile;
	}

	// Histograms already written to file, just close it here
	// f->Write();
	cout << "Closing file" << endl;
	f->Close();
	// Free memory
	delete f;
    } // end of channel loop
		
}

//____________________________________________________________________

void AtlHistFactoryTask::SetRunMode(ERunMode mode) {
    //
    // Turn on/off creation of templates
    //

    fRunMode = mode;
    cout << GetName() << " - RunMode = " << fRunMode << endl;
    
    if ( mode == kCreateFitTemplates ||
	 mode == kCreateShapeTemplates ||
	 mode == kPerformShapeTests ||
	 mode == kCreateWorkspace ||
	 mode == kFitModel ||
	 mode == kRateTable ||
	 mode == kHypoTestLimit )
	SetInteractiveJob(kTRUE); // these tasks are always interactive
}

//____________________________________________________________________

void AtlHistFactoryTask::PerformShapeTests() {
    //
    // Create templates for given measurement
    //

    // Get directories (create them if necessary)
    TString *shape_dir    = GetDirectoryName("shape_tests");

    // Loop over all channels
    TIter next_channel(fMeasurement->GetListOfChannels());
    AtlHistFactoryChannel *ch = 0;
    while ( (ch = (AtlHistFactoryChannel*) next_channel()) ) {
	
	// Create one outputfile per channel
	TFile *f = new TFile(Form("%s/%s_shape_tests.root",
				  shape_dir->Data(),
				  ch->GetName()),
			     "RECREATE");
	Info("PerformShapeTests",
	     "Store shape test results in file:\n%s",
	     f->GetName());

	// Open shape template file
	TString filename;
	GetShapeTemplatesFileName(ch->GetName(), filename);
	
	TFile *f_shape_templates = TFile::Open(filename.Data());
	if ( f_shape_templates == 0 ) {
	    Error("PerformShapeTests",
		  "Could not find shape template file. Abort!");
	    gSystem->Abort();
	}

	// Open fit template file (use for systematics
	// with disjoint set of events only!)
	GetTemplatesFileName(ch->GetName(), filename);
	
	TFile *f_templates = TFile::Open(filename.Data());
	if ( f_templates == 0 ) {
	    Warning("PerformShapeTests",
		    "Could not find fit template file. It might not be needed.");
	}
	
	// Book Histograms for each sample once
	TIter next_sample(ch->GetListOfSamples());
	AtlHistFactorySample *sample = 0;
	// change directory to output file
	// otherwise the histograms will be associated with the
	// shape template file which gets closed before writing the histos.
	f->cd();
	while ( (sample = (AtlHistFactorySample*) next_sample()) ) {
	    sample->BookHistograms(ch->GetName());
	}

	
	// Loop over all processes (samples) in one channel
	next_sample.Reset();
	sample = 0;
	while ( (sample = (AtlHistFactorySample*) next_sample()) ) {

	    // Open pdf file (no plot is added to pdf)
	    TString *export_dir = GetDirectoryName(Form("shape_tests/%s",
							ch->GetName()));
	    TCanvas *c = new TCanvas("canvas", "canvas");
	    c->SaveAs(Form("%s/%s.pdf[", export_dir->Data(), sample->GetName()));
	    
	    // Loop over all systematics for this channel
	    // append here all systematics for this sample
	    // -> works since the list will be updated for each sample!
	    TList *systematics = MergeListOfSystematics(ch->GetListOfSystematics(),
							sample->GetListOfSystematics());
	    
	    TIter next_syst(systematics);
	    AtlHistFactorySystematic *syst = 0;
	    TH1F *Chi2Dist = 0;
	    while ( (syst = (AtlHistFactorySystematic*) next_syst()) ) {
		
		if ( syst->IsNominal() )
		    continue;
		
		// Set template file
		if ( syst->GetUseFullStats() ) {
		    // if nominal and the systematic use different set of events
		    // use the full statistics for the shape comparison
		    // -> In that case use the fit templates!
		    if ( f_templates == 0 ) {
			Error("PerformShapeTests",
			      "Could not find fit template file. It's needed now. Abort!");
			gSystem->Abort();
		    }
		    syst->SetTemplateFile(f_templates);
		} else {
		    // if nominal and the systematic share the same events, use
		    // histograms with disjoint set of events
		    // -> In that case use the shape templates
		    // (the user is responsible that these histograms are not
		    //  correlated!)
		    syst->SetTemplateFile(f_shape_templates);
		}
		
		// Initialize systematic for this sample/process
		syst->ChangeProcess(sample->GetName());

		// Use pseudo exp. for shape tests?
		if ( fMeasurement->GetUsePseudoExp() ) {
		    syst->SetUsePseudoExp();

		    if ( Chi2Dist == 0 ) {
			Chi2Dist = syst->GetChi2Distribution();
			// keep it in root memory, even if the
			// shape file is closed. Otherwise it will
			// cause a seg. fault if it is accessed in the
			// GetChi2Distribution function
			Chi2Dist->SetDirectory(0);
		    } else {
			syst->SetChi2Distribution(Chi2Dist);
		    }
		}
		
		// Perform shape tests
		Double_t pval_min;  // minimum of up and down p-values
		Double_t ks_min;    // minimum of up and down KS-values
		syst->PerformShapeTest(pval_min,
				       ks_min);
		
		sample->FillHistograms(syst->GetTitle(),
				       pval_min, ks_min);

		// save ctrl plots for shapes
		syst->SaveShapeCtrlPlots(f, sample->GetName());
		if ( fMeasurement->GetExportShapePlots() ) {
		    syst->ExportShapePlots(sample->GetName(),
					   export_dir->Data());
		}
		
		// Clear systematic (close files, reset internal histograms, etc.)
		syst->Clear();
		
	    } // end of syst loop for this sample
	    
	    delete systematics; // clean up systematic list

	    // Close pdf for this sample
	    c->SaveAs(Form("%s/%s.pdf]", export_dir->Data(), sample->GetName()));
	} // end of sample loop for this channel
	
	// Close shape template file, once all systematics are done
	f_shape_templates->Close();

	
	// Loop over all processes (samples) in one channel
	// in order to save the histograms
	next_sample.Reset();
	sample = 0;
	while ( (sample = (AtlHistFactorySample*) next_sample()) ) {
	    sample->WriteHistograms(f);
	}
	
	// Histograms already written to file, just close it here
	// f->Write();
	f->Close();
	// Free memory
	delete f;

    } // end of channel loop

    // Clean up directory strings
    delete shape_dir;
}

//____________________________________________________________________

void AtlHistFactoryTask::CreateWorkspace() {
    //
    // Create RooStats workspace using HistFactory
    //

    // ToDo:
    // Add new function:
    // - CreateWorkspace(const char* out_prefix) {
    //    fMeasurement->SetOutPrefix(out_prefix);
    //    CreateWorkspace();
    //   }
    // (if needed)
    //
    
    // Create the measurement
    Measurement meas = Measurement(fMeasurement->GetName(),
				   fMeasurement->GetTitle());
    
    // Misc. options
    TString *prefix = fMeasurement->GetOutPrefix();
    meas.SetOutputFilePrefix(prefix->Data());
    meas.SetExportOnly(kTRUE); // export here only, do fitting separatly
    
    // Set Lumi
    meas.SetLumi(fMeasurement->GetLumi());
    meas.SetLumiRelErr(fMeasurement->GetLumiRelError());

    // Set Parameters of interest
    TList *pois = fMeasurement->GetPOIs();
    if ( pois->GetEntries() == 0 ) {
	Error("CreateWorkspace",
	      "Histfactory needs a parameter of interest (POI). Abort!");
	gSystem->Abort();
    }
    
    TIter next_poi(pois);
    TObjString *poi = 0;
    while ( (poi = (TObjString*) next_poi()) ) {
	meas.AddPOI(poi->GetString().Data());
    }
    next_poi.Reset();

    // Set Range for all observables
    // - not very useful if one has more than one observable
    // - choose final binning when creating discriminant histogram to
    //   avoid this option!
    // if ( fMeasurement->GetBinLow() != -1 )
    // 	meas.SetBinLow(fMeasurement->GetBinLow());
    // if ( fMeasurement->GetBinHigh() != -1 )
    // 	meas.SetBinHigh(fMeasurement->GetBinHigh());
    
    // Loop over all channels
    TIter next_channel(fMeasurement->GetListOfChannels());
    AtlHistFactoryChannel *ch = 0;
    while ( (ch = (AtlHistFactoryChannel*) next_channel()) ) {
	
	// Open template file (one per channel)
	TString filename;
	GetTemplatesFileName(ch->GetName(), filename);
	
	TFile *f_templates = TFile::Open(filename.Data());
	
	if ( f_templates == 0 ) {
	    Error("CreateWorkspace",
		  "Could not find template file. Abort!");
	}

	// Add Channel
	Channel chan(ch->GetName());
	chan.SetStatErrorConfig( 0.0, "Gaussian" ); // ToDo: Check this
	
	// Add data if needed
	if ( fMeasurement->GetUseAsimovData() == kFALSE )
	    chan.SetData("data", f_templates->GetName());
	
	// Loop over all processes (samples) in one channel
	TIter next_sample(ch->GetListOfSamples());
	AtlHistFactorySample *sample = 0;
	while ( (sample = (AtlHistFactorySample*) next_sample()) ) {
	    
	    Sample HFSample(sample->GetName());
	    if ( sample->UseStatError() ) {
		HFSample.ActivateStatError();
	    }
	    HFSample.SetInputFile(f_templates->GetName());

	    // Loop over all systematics
	    // if systematics with the same name exist,
	    // the sample systematic configuration is used.
	    AtlHistFactorySystematic *syst = 0;
	    TList *systematics = MergeListOfSystematics(ch->GetListOfSystematics(),
							sample->GetListOfSystematics());
	    
	    TIter next_syst(systematics);
	    while ( (syst = (AtlHistFactorySystematic*) next_syst()) ) {

		// Only nominal?
		if ( fMeasurement->GetNoSystematics() && !syst->IsNominal() )
		    continue;		    
		
		// Set template file
		syst->SetTemplateFile(f_templates);

		// Load process histogram
		syst->ChangeProcess(sample->GetName());
		
		if ( syst->IsNominal() ) {
		    // Setup nominal templates and nominal parameters
		    // such as norm uncertainty

		    // Use strings since shape systematics rely on strings
		    HFSample.SetHistoName(syst->GetHistNominal()->GetName());
		    HFSample.SetHistoPath("");

		    if ( sample->IsSignal() ) {
			// Define signal parameter --> AddNormFactor()
			HFSample.AddNormFactor(sample->GetNormFactorName(),
					       1.,
					       sample->GetSignalLow(),
					       sample->GetSignalHigh());

			Bool_t found = kFALSE;
			while ( (poi = (TObjString*) next_poi()) ) {
			    TString poi_str = poi->GetString();
			    found = found || poi_str.Contains(sample->GetNormFactorName());
			}
			next_poi.Reset();
			if ( !found ) {
			    Error("CreateWorkspace",
				  "Signal Normfactor does not match any POI. Please check! Abort.");
			    gSystem->Abort();
			}
		    } else {
			// Bkg processes are constrained --> AddOverallSys()
			HFSample.AddOverallSys(sample->GetNormFactorName(),
					       1. - sample->GetNormUncertainty(),
					       1. + sample->GetNormUncertainty());
			if ( sample->UseLogNormal() )
			    meas.AddLogNormSyst(sample->GetNormFactorName(),
						sample->GetNormUncertainty());
		    }
		} else {
		    // Skip all data driven samples here
		    if ( sample->IsData() ) continue;
		    
		    if ( syst->GetUseShape() ) {
			// Add shape uncertainty
			// sadly we need to give strings... how insane
			HFSample.AddHistoSys(syst->GetName(),
					     syst->GetHistDown()->GetName(),
					     f_templates->GetName(), "",
					     syst->GetHistUp()->GetName(),
					     f_templates->GetName(), "");
		    } else {
			// Add only rate uncertainty
			Double_t rate_up, rate_down;
			syst->GetRateUnc(rate_up, rate_down);
			HFSample.AddOverallSys(syst->GetName(),
					       1. - rate_down, // Low
					       1. + rate_up);  // High
		    }
		}
		
		// Clear systematic (close files, reset internal histograms, etc.)
		syst->Clear();
	    } // end of syst loop

	    // Add each sample to the channel
	    chan.AddSample(HFSample);

	} // end of sample loop
	
	// Add each channel to the measurement
	meas.AddChannel(chan);

	// Close shape template file, once all systematics are done
	// f_templates->Close();
	// do not close the file here, the histogram is then not accesible anymore
    } // end of channel loop

    gSystem->cd(fHistFactoryDir->Data());

    // Redirect all output from next function(s) to a logfile.
    // a) Create logfile directory
    TString *log_dir = GetDirectoryName("logs");
    
    // b) Remove old logs
    TString logfile = Form("%s/MakeModelAndMeasurementFast.log",
			   log_dir->Data());
    gSystem->Exec(Form("rm -f %s", logfile.Data()));
    Info("CreateWorkspace", "rm -f %s", logfile.Data());

    delete log_dir;

    // c) redirect
    gSystem->RedirectOutput( logfile.Data() );

    // Collect histograms from shape systematics
    meas.CollectHistograms();

    // Save Measurement and XML
    meas.PrintTree();

    // Create model first (creates directory)
    MakeModelAndMeasurementFast(meas);

    // Print xml
    meas.PrintXML(Form("%s/xml",
		       gSystem->DirName(fMeasurement->GetOutPrefix()->Data())));

    // d) restore std out and std err
    gSystem->RedirectOutput(0);
}

//____________________________________________________________________

void AtlHistFactoryTask::FitModel() {
    // 
    // Fit Model
    //

    // Fit all channels individually
    // Loop over all channels
    TIter next_channel(fMeasurement->GetListOfChannels());
    AtlHistFactoryChannel *ch = 0;
    while ( (ch = (AtlHistFactoryChannel*) next_channel()) ) {
	TString *filename = fMeasurement->GetModelFileName(ch->GetName());
	
	// Run Fit for each channel individually
	RunFit(filename->Data(),
	       ch->GetName(),
	       fMeasurement->GetUseAsimovData() ? "asimovData" : "obsData");
	delete filename;
    }
    
    // Run combined fit
    TString *filename = fMeasurement->GetModelFileName();
    RunFit(filename->Data(),
	   "combined",
	   fMeasurement->GetUseAsimovData() ? "asimovData" : "obsData");

    // Run pulls for combined only (for now)
    if ( fMeasurement->GetRunPullPlots() )
	CreatePullPlots(filename->Data(),
			"combined",
			fMeasurement->GetUseAsimovData() ? "asimovData" : "obsData");
    
    delete filename;
}

//____________________________________________________________________

void AtlHistFactoryTask::RunFit(const char* ws_filename,
				const char* ws_name,
				const char* data_name) {
    //
    // Fit model saved in workspace
    //

    // Create log directory
    TString *logdir = GetDirectoryName("fit");

    TString logfile = logdir->Data();
    logfile.Append(Form("fit_%s_%s.log",
			ws_name,
			data_name));
    gSystem->Exec(Form("rm -f %s", logfile.Data()));
    
    // Open workspace file
    TFile *f_ws = TFile::Open(ws_filename);
    if ( f_ws == 0 ) {
	Error("RunFit", "Coulnd't find file with name: %s",
	      ws_filename);
    }
    
    // Get infos for fit
    RooWorkspace *wSpace = (RooWorkspace*) f_ws->Get(ws_name);
    RooAbsData   *data   = wSpace->data(data_name);
    
    ModelConfig *model = (ModelConfig*) wSpace->obj("ModelConfig");
    RooAbsPdf   *pdf   = model->GetPdf();

    // Redirect output
    gSystem->RedirectOutput(logfile.Data());

    RooFitResult *fitResult = pdf->fitTo(*data,
					 // RooFit::Minos(kTRUE),
    					 RooFit::SumW2Error(kFALSE),
    					 RooFit::Offset(true),
    					 RooFit::Extended(true), // overall number of events is fit parameter
    					 RooFit::Save(true));    // a non-zero fit result pointer is returned
    fitResult->Print();
    
    // Restore std output
    gSystem->RedirectOutput(0);

    fitResult->Print();

    TString Name_ws = ws_name;
    if ( Name_ws.Contains("combined") ) {
	if ( fMeasurement->GetExportCorrMatrix() ) {
	    // save correlation matrix histogram
	    TFile *f = new TFile(Form("%s/%s_corr.root",
				      logdir->Data(),
				      data_name), "RECREATE");
	    TH2* hCorr = fitResult->correlationHist();
	    hCorr->SetDirectory(f);
	    hCorr->Write();
	    f->Close();
	}

	TFile *fresult = new TFile(Form("%s/%s_fitresult.root",
					logdir->Data(),
					data_name), "RECREATE");
	fitResult->Write();
	fresult->Close();
	delete fresult;
    }
    
    // Close file
    f_ws->Close();
    delete f_ws;
    delete logdir;
}

//____________________________________________________________________

void AtlHistFactoryTask::CreatePullPlots(const char* ws_filename,
					 const char* ws_name,
					 const char* data_name) {
    //
    // Create pull plots for given workspace
    //

    // Create log directory
    TString *pulldir = GetDirectoryName("pulls");
    
    TString pullfile = pulldir->Data();
    pullfile.Append(Form("pull_%s_%s.root",
			 ws_name,
			 fMeasurement->GetUseAsimovData() ? "asimovData" : "obsData"));
    gSystem->Exec(Form("rm -f %s", pullfile.Data()));

    // Open workspace file
    TFile *f_ws = TFile::Open(ws_filename);
    if ( f_ws == 0 ) {
	Error("CreatePullPlots", "Coulnd't find file with name: %s",
	      ws_filename);
    }

    // Get infos for fit
    RooWorkspace *wSpace = (RooWorkspace*) f_ws->Get(ws_name);
    RooAbsData   *data   = wSpace->data(data_name);

    ModelConfig *model = (ModelConfig*) wSpace->obj("ModelConfig");
    RooAbsPdf   *pdf   = model->GetPdf();

    RooFitResult *fitResult  = 0;
    RooRealVar   *par        = 0;
    
    // Book Histograms for Pull Info
    TFile *fout = new TFile(pullfile.Data(),"RECREATE");
    
    TH1F *h_pull = new TH1F("h_pulls", "Pull fit value", 1., 0., 1.);
    TH1F *h_pull_err_up   = new TH1F("h_pulls_err_up", "Upper Error of Pulls", 1., 0., 1.);
    TH1F *h_pull_err_down = new TH1F("h_pulls_err_down", "Lower Error of Pulls", 1., 0., 1.);

    // Get Pulls for all NP
    // ====================

    // Nuisance parameters
    RooArgSet *nuis = (RooArgSet*)model->GetNuisanceParameters();
    TIterator *next_nuis = nuis->createIterator();

    // Fit model
    // ---------
    // Redirect output
    gSystem->Exec(Form("rm -f %s/postfit_%s.log",
		       pulldir->Data(),
		       fMeasurement->GetUseAsimovData() ? "asimovData" : "obsData"));
    gSystem->RedirectOutput(Form("%s/postfit_%s.log",
				 pulldir->Data(),
				 fMeasurement->GetUseAsimovData() ? "asimovData" : "obsData"));
    
    fitResult = pdf->fitTo(*data,
 			   RooFit::SumW2Error(kFALSE),
			   RooFit::Offset(true),
			   RooFit::Extended(true),
			   RooFit::Save(true));
    fitResult->Print();

    // Redirect output
    gSystem->RedirectOutput(0);

    // Save postfit snapshot with different names
    // ToDo: Use only one snapshot
    // snapshot name is used to decide on prefit and postfit initial parameters
    wSpace->saveSnapshot("postfit_snapshot", *(pdf->getParameters(data)));
    wSpace->saveSnapshot("prefit_snapshot", *(pdf->getParameters(data)));

    // Fill Pull histogram
    //
    // Pull = (theta_hat - theta_zero)/delta_theta
    //
    while ((par = (RooRealVar*)next_nuis->Next())) {
	TString name = par->GetName();

	if ( name.Contains("Lumi") ) {
	    // Normalize Lumi pull correctly
	    Double_t lumi_err = fMeasurement->GetLumiRelError();

	    h_pull->Fill(par->GetName(), (par->getVal() - 1.)/lumi_err); // theta_0 = 1
	    if ( par->hasAsymError() ) { // Run Minos for this
		// Normalize the error +-1
		h_pull_err_up->Fill(par->GetName(), par->getErrorHi()/lumi_err);
		h_pull_err_down->Fill(par->GetName(), par->getErrorLo()/lumi_err);
	    } else if ( par->hasError() ) {
		h_pull_err_up->Fill(par->GetName(), par->getError()/lumi_err);
		h_pull_err_down->Fill(par->GetName(), par->getError()/lumi_err);
	    }
	} else if ( name.Contains("beta") ) {

	    TString *label = GetSystematicName(par->GetName());
	    if ( label == 0 ) label = new TString(par->GetName());
	    
	    // normalize norm uncertainties correctly
	    Double_t norm_err = GetNormUncertainty(name.Data());

	    h_pull->Fill(label->Data(), (par->getVal() - 1.)/norm_err); // theta_0 = 1
	    if ( par->hasAsymError() ) { // Run Minos for this
	     	// Normalize the error +-1
	     	h_pull_err_up->Fill(label->Data(), par->getErrorHi()/norm_err);
	     	h_pull_err_down->Fill(label->Data(), par->getErrorLo()/norm_err);
	    } else if ( par->hasError() ) {
	     	h_pull_err_up->Fill(label->Data(), par->getError()/norm_err);
	     	h_pull_err_down->Fill(label->Data(), par->getError()/norm_err);
	    }
	} else if ( name.Contains("gamma") ) {
	    Double_t err = GetGammaUncertainty(par->GetName(), wSpace);
	    
	    TString label = par->GetName();
	    label.ReplaceAll("_"," ");
	    label.ReplaceAll("gamma stat", "#gamma_{stat.}");
	    
	    h_pull->Fill(label.Data(), (par->getVal() - 1.)/err); // theta_0 = 1
	    if ( par->hasAsymError() ) { // Run Minos for this
	     	// Normalize the error +-1
	     	h_pull_err_up->Fill(label.Data(), par->getErrorHi()/err);
	     	h_pull_err_down->Fill(label.Data(), par->getErrorLo()/err);
	    } else if ( par->hasError() ) {
	     	h_pull_err_up->Fill(label.Data(), par->getError()/err);
	     	h_pull_err_down->Fill(label.Data(), par->getError()/err);
	    }
	} else {
	    // if norm uncertainties are gaussian, they are named alpha
	    // and then they behave as all other NPs

	    TString *label = GetSystematicName(par->GetName());
	    if ( label == 0 ) label = new TString(par->GetName());

	    h_pull->Fill(label->Data(), par->getVal());
	    if ( par->hasAsymError() ) { // Run Minos for this
		h_pull_err_up->Fill(label->Data(), par->getErrorHi());
		h_pull_err_down->Fill(label->Data(), par->getErrorLo());
	    } else if ( par->hasError() ) {
		h_pull_err_up->Fill(label->Data(), par->getError());
		h_pull_err_down->Fill(label->Data(), par->getError());
	    }
	}
    }
    next_nuis->Reset();
    // Deflate labels on x-axis (removes empty bins)
    h_pull->LabelsDeflate("X");
    h_pull_err_up->LabelsDeflate("X");
    h_pull_err_down->LabelsDeflate("X");
    
    // Pre-fit and post-fit impact on signal parameter
    // ===============================================
    // Pre-fit impact:
    // Loop over all nuisance parameters (NP), each time fix the NP
    // at +1 and -1 and redo the fit.
    //
    // Post-fit impact:
    // Loop over all NP, each time fix the NP at +1 sigma and -1 sigma
    // from the post-fit value and redo the fit.
    //
    // The impact on the parameter of interest (POI) is the difference between
    // the fit result for with the NP fixed and the POI pre-fit or post-fit
    // value.
    // 

    // Remove old logfile
    gSystem->Exec(Form("rm -f %s/pull_%s_%s.log",
		       pulldir->Data(),
		       wSpace->GetName(),
		       fMeasurement->GetUseAsimovData() ? "asimovData" : "obsData"));

    TList *pois = fMeasurement->GetPOIs();
    TIter next_poi(pois);
    TObjString *obj_poi = 0;
    
    while ( (obj_poi = (TObjString*) next_poi()) ) {
	TString poi = obj_poi->GetString();

	TH1F *h_prefit_impact_up   = new TH1F(Form("%s_prefit_impact_up", poi.Data()),
					      Form("Prefit impact on '%s' (up)", poi.Data()),
					      1., 0., 1.);
	TH1F *h_prefit_impact_down = new TH1F(Form("%s_prefit_impact_down", poi.Data()),
					      Form("Prefit impact on '%s' (down)", poi.Data()),
					      1., 0., 1.);
	TH1F *h_postfit_impact_up   = new TH1F(Form("%s_postfit_impact_up", poi.Data()),
					      Form("Postfit impact on '%s' (up)", poi.Data()),
					      1., 0., 1.);
	TH1F *h_postfit_impact_down = new TH1F(Form("%s_postfit_impact_down", poi.Data()),
					      Form("Postfit impact on '%s' (down)", poi.Data()),
					      1., 0., 1.);
	
	while ((par = (RooRealVar*)next_nuis->Next())) {
	    
	    TString name = par->GetName();
	    
	    GetImpactOnPOI(wSpace, data_name, "prefit_snapshot",
			   par, poi.Data(), +1., h_prefit_impact_up,
			   pulldir->Data());
	    GetImpactOnPOI(wSpace, data_name, "prefit_snapshot",
			   par, poi.Data(), -1., h_prefit_impact_down,
			   pulldir->Data());
	    
	    GetImpactOnPOI(wSpace, data_name, "postfit_snapshot",
			   par, poi.Data(), +1., h_postfit_impact_up,
			   pulldir->Data());
	    GetImpactOnPOI(wSpace, data_name, "postfit_snapshot",
			   par, poi.Data(), -1., h_postfit_impact_down,
			   pulldir->Data());
	}
	next_nuis->Reset();
	
	// Adjust x-axis
	h_prefit_impact_up->LabelsDeflate("X");
	h_prefit_impact_down->LabelsDeflate("X");
	h_postfit_impact_up->LabelsDeflate("X");
	h_postfit_impact_down->LabelsDeflate("X");

	// Create pdf with all pulls and prefit / postfit impact on POI
	TString pullpdf = pullfile.Data();
	pullpdf.ReplaceAll(".root",
			   Form("_%s.pdf", poi.Data()));
	ExportPullPlots(pullpdf.Data(),
			h_pull, h_pull_err_up, h_pull_err_down,
			h_prefit_impact_up, h_prefit_impact_down,
			h_postfit_impact_up, h_postfit_impact_down);
    }
    fout->Write();
    
    // Close output file
    fout->Close();

    delete pulldir;
}

//____________________________________________________________________

void AtlHistFactoryTask::GetImpactOnPOI(RooWorkspace *wSpace,
					const char* data_name,
					const char* snapshot,
					RooRealVar *par,
					const char* poi_name,
					Double_t variation,
					TH1F *hresult,
					const char *logdir) {
    //
    // Get Impact on POI for given NP and store the result in the
    // given histogram.
    //

    // ToDo:
    // - Load snapshot beforehand and just provide pdf and parameter?
    //   maybe model?
    // - Asymmetric errors

    RooFitResult *fitResult  = 0;
    RooRealVar   *par_result = 0;

    TString name = par->GetName();

    // Load prefit snapshot
    TString Snapshot = snapshot;
    wSpace->loadSnapshot(snapshot);

    RooAbsData  *data  = wSpace->data(data_name);
    ModelConfig *model = (ModelConfig*) wSpace->obj("ModelConfig");
    RooAbsPdf   *pdf   = model->GetPdf();

    // Save fit result values for info statement below
    Double_t fit_val = 0.; // default values for gaussian NP (prefit)
    Double_t fit_err = 1.; // default values for gaussian NP (prefit)
    // Double_t fit_errHi = +1.;
    // Double_t fit_errLo = -1.;

    if ( Snapshot.Contains("prefit") ) {
	// Special treatment of lumi and normalization uncertainties
	// (if norms are lognormal)
	// Only needed for prefit values!
	// For postfit values, one can use the fit results directly
	
	if ( name.Contains("Lumi") ) {
	    // Option A:
	    // variation = 1. + variation*fMeasurement->GetLumiRelError();
	    // fit_val   = 1.;
	    // fit_err   = fMeasurement->GetLumiRelError();

	    // Option B:
	    variation = par->getVal() + variation*fMeasurement->GetLumiRelError();
	    fit_val   = par->getVal();
	    fit_err   = fMeasurement->GetLumiRelError();
	} else if ( name.Contains("beta_") ) {
	    // Norm parameters have log-normal constraints
	    // In that case they are called "beta_"
	    // Assume that no other NPs have log-normal constraints
	    //
	    // If the norm uncertainties have gaussian constraints
	    // they are called "alpha_" and can be treated in the same way
	    // as all other NPs

	    // Option A:
	    // Double_t norm_err = GetNormUncertainty(name.Data());
	    // variation = 1. + variation*norm_err;
	    
	    // fit_val   = 1.;
	    // fit_err   = norm_err;

	    // Option B:
	    Double_t norm_err = GetNormUncertainty(name.Data());
	    variation = par->getVal() + variation*norm_err;
	    
	    fit_val   = par->getVal();
	    fit_err   = norm_err;
	} else if ( name.Contains("gamma_") ) {
	    // Gamma parameters for statistical uncertainties for each bin

	    // Option A:
	    // Double_t err = GetGammaUncertainty(name.Data(), wSpace);
	    // variation = 1. + variation*err;
	    
	    // fit_val   = 1.;
	    // fit_err   = err;

	    // Option B:
	    Double_t err = GetGammaUncertainty(name.Data(), wSpace);
	    variation = par->getVal() + variation*err;
	    
	    fit_val   = par->getVal();
	    fit_err   = err;
	} else {
	    // Option A:
	    // variation = variation;
	    // fit_val = 0.;
	    // fit_err = 1.;

	    // Option B:
	    fit_err = variation;
	    
	    variation = par->getVal() + variation*1.;
	    fit_val = par->getVal();
	}	    
	
	par->setVal(variation);
	par->setConstant(true);
    } else {
	fit_val = par->getVal();
	fit_err = par->getError();

	par->setVal(par->getVal() + variation*par->getError());
	par->setConstant(true);
    }
    
    // Redirect output
    TString var = variation > 0 ? "up" : "down";
    gSystem->Exec(Form("rm -f %s/%s_%s_%s_%s.log",
		       logdir,
		       snapshot,
		       name.Data(),
		       var.Data(),
		       fMeasurement->GetUseAsimovData() ? "asimovData" : "obsData"));
    gSystem->RedirectOutput(Form("%s/%s_%s_%s_%s.log",
				 logdir,
				 snapshot,
				 name.Data(),
				 var.Data(),
				 fMeasurement->GetUseAsimovData() ? "asimovData" : "obsData"));
    
    // If you want the errors to reflect the information contained in the provided dataset, choose kTRUE. 
    // If you want the errors to reflect the precision you would be able to obtain with an unweighted dataset
    // with 'sum-of-weights' events, choose kFALSE.
    fitResult = pdf->fitTo(*data,
			   RooFit::SumW2Error(kFALSE),
			   RooFit::Offset(true),
			   RooFit::Extended(true),
			   RooFit::Save(true));

    fitResult->Print();
    
    par_result = (RooRealVar*) fitResult->floatParsFinal().find(poi_name); 

    // Store result with correct impact on mu
    RooRealVar *poi_init = (RooRealVar*) fitResult->floatParsInit().find(poi_name);

    Info("GetImpactOnPOI",
	 "NP: %s at %4.4f (%s)",
	 name.Data(), par->getVal(), snapshot);

    Info("GetImpactOnPOI", "mu_hat = %4.4f", poi_init->getVal());
    Info("GetImpactOnPOI", "Nuisance parameter %s, fit result: %4.4f +- %4.4f", name.Data(), fit_val, fit_err);
    Info("GetImpactOnPOI", "Result at %s = %3.3f -> mu = %4.4f +- %4.4f\n", name.Data(),
	 par->getVal(),
	 par_result->getVal(),
	 par_result->getError());

    gSystem->RedirectOutput(0);

    Info("GetImpactOnPOI",
	 "NP: %s at %4.4f (%s)",
	 name.Data(), par->getVal(), snapshot);

    Info("GetImpactOnPOI", "mu_hat = %4.4f", poi_init->getVal());
    Info("GetImpactOnPOI", "Nuisance parameter %s, fit result: %4.4f +- %4.4f", name.Data(), fit_val, fit_err);
    Info("GetImpactOnPOI", "Result at %s = %3.3f -> mu = %4.4f +- %4.4f\n", name.Data(),
	 par->getVal(),
	 par_result->getVal(),
	 par_result->getError());

    // Get x-axis label from list of systematic
    // ToDo: Is it needed? Is renaming bin labels for pull histogram enough?
    TString *label = GetSystematicName(par->GetName());
    if ( label == 0 ) label = new TString(par->GetName());
    Info("GetImpactOnPOI", "Label name: %s ", label->Data());
    hresult->Fill(par->GetName(), par_result->getVal() - poi_init->getVal());
    delete label;
}

//____________________________________________________________________

void AtlHistFactoryTask::GetTemplatesFileName(const char* channel,
					      TString &filename) {
    //
    // Get the name of the file holding all templates for this channel
    //
    
    filename = Form("%s/%s_templates.root",
		    fTemplateDir->Data(),
		    channel);
}

//____________________________________________________________________

void AtlHistFactoryTask::GetShapeTemplatesFileName(const char* channel,
						   TString &filename) {
    //
    // The name of the file holding all shape templates for this channel
    //
    
    filename = Form("%s/%s_shape_templates.root",
		    fTemplateDir->Data(),
		    channel);
}

//____________________________________________________________________

TList* AtlHistFactoryTask::MergeListOfSystematics(TList *ch_systs, TList *sample_systs) {
    //
    // Helper function to merge channel and sample systematics
    //
    // First create a new list from the ch_systs.
    // If two systematics with the same name exist in both lists:
    // - remove the systematic from the newly created list
    // - then append all systematics from the second list to the newly
    //   created list
    //
    // The user has to take care of deleting the new list.
    //
    
    // For each systematic:
    // Sample systematic config overwrites channel systematic config
    // -> Remove channel systematics with the same name
    // -> Then add all sample systematics

    TList *systematics = new TList;
    systematics->AddAll(ch_systs);
    
    TIter next_syst(sample_systs);
    AtlHistFactorySystematic *syst = 0;
    while ( (syst = (AtlHistFactorySystematic*) next_syst()) ) {
	TObject *obj = systematics->FindObject(syst->GetName());
	if ( obj != 0 )
	    systematics->Remove(obj);
    }
    systematics->AddAll(sample_systs);

    return systematics;
}

//____________________________________________________________________

void AtlHistFactoryTask::ExportRateUncertainties() {
    //
    // Export latex table with list of all rate uncertainties
    //

    TString *table_dir = GetDirectoryName("rate_tables");

    // Loop over all channels
    TIter next_channel(fMeasurement->GetListOfChannels());
    AtlHistFactoryChannel *ch = 0;
    while ( (ch = (AtlHistFactoryChannel*) next_channel()) ) {
	
	// Open template file (one per channel)
	TString filename;
	GetTemplatesFileName(ch->GetName(), filename);
	
	TFile *f_templates = TFile::Open(filename.Data());
	
	if ( f_templates == 0 ) {
	    Error("ExportRateUncertainties",
		  "Could not find template file. Abort!");
	}

	// Create Rate tab for this channel
	ofstream tab;
	tab.open(Form("%s/tab_rateuncert_%s.tex",
		      table_dir->Data(),
		      ch->GetName()));

	// Write tab body
	tab << "\\begin{tabular}{|r|";
	Int_t Nchans = ch->GetListOfSamples()->GetEntries();
	for ( Int_t i = 0; i < Nchans; i++ )
	    tab << "rr|";
	tab << "}" << endl
	      << "\\hline" << endl;

	// Write tab header
	// Header for processes
	tab << "Rate uncertainty [\\%] ";
	TIter next_proc(ch->GetListOfSamples());
	AtlHistFactorySample *proc = 0;
	while ( (proc = (AtlHistFactorySample*) next_proc()) ) {
	    // todo: replace this by proc->GetTitle()
	    tab << "& \\multicolumn{2}{c|}{" << proc->GetName() << "} ";
	}
	tab << "\\\\" << endl
	      << "\\hline" << endl;

	// Header for systematics
	tab << "Systematic ";
	for ( Int_t i = 0; i < Nchans; i++ )
	    tab << "& up & down ";
	tab << "\\\\" << endl
	      << "\\hline\\hline" << endl;

	
	// Loop over all systematics
	// ----------------------------------------------------------------
	// Add all systematics of all samples. Configuration
	// is not important, since only rates are computed,
	// we just need all systematics
	next_proc.Reset();
	TList *all_systs = new TList;
	all_systs->AddAll(ch->GetListOfSystematics());
	
	while ( (proc = (AtlHistFactorySample*) next_proc()) ) {
	    TList *old_systs = all_systs; // save pointer to list of systematics
	    all_systs = MergeListOfSystematics(all_systs,
					       proc->GetListOfSystematics());
	    delete old_systs;
	}	

	TList *ch_systs = ch->GetListOfSystematics();
	
	TIter next_syst(all_systs);
	AtlHistFactorySystematic *syst = 0;
	while ( (syst = (AtlHistFactorySystematic*) next_syst()) ) {

	    // skip nominal, no rate uncerainty...
	    if ( syst->IsNominal() ) continue;

	    // Set template file
	    syst->SetTemplateFile(f_templates);

	    // Is Sample Systematic?
	    // (-> it is not contained in the channel's list of systematics)
	    Bool_t IsSampleSyst = kFALSE;
	    TObject *obj = ch_systs->FindObject(syst->GetName());
	    if ( obj == 0 )
		IsSampleSyst = kTRUE;

	    // Write systematic title
	    tab << syst->GetTitle() << " ";
	    
	    // Loop over all processes (samples) in one channel
	    TIter next_sample(ch->GetListOfSamples());
	    AtlHistFactorySample *sample = 0;
	    while ( (sample = (AtlHistFactorySample*) next_sample()) ) {

		Double_t rate_up, rate_down;

		// If this is a sample systematic:
		// -> does it belong to this sample?
		if ( IsSampleSyst ) {
		    TList *sample_syst = sample->GetListOfSystematics();
		    obj = sample_syst->FindObject(syst->GetName());
		}

		// cout << "IsSampleSyst " << IsSampleSyst << endl;
		// cout << "Obj = " << obj << endl;
		// cout << "Syst: " << syst->GetName() << endl;
		
		if ( IsSampleSyst && obj == 0 ) {
		    // This systematic does not belong to this sample
		    // -> rate is zero
		    rate_up = 0;
		    rate_down = 0;
		} else {
		    // Load process histogram
		    syst->ChangeProcess(sample->GetName());
		    
		    // Compute rate uncertainty
		    syst->GetRateUnc(rate_up, rate_down);

		    // Clear systematic (close files, reset internal histograms, etc.)
		    syst->Clear();
		}
		
		// write rate uncertainty
		tab << "& " << Form("%3.1f", rate_up*100.) << " "
		      << "& " << Form("%3.1f", -rate_down*100.) << " ";
		
	    } // end of sample loop

	    // Add new line
	    tab << "\\\\" << endl;
	    
	} // end of sample loop

	f_templates->Close();

	// Write tab bottom
	tab << "\\hline" << endl
	      << "\\end{tabular}" << endl;
	tab.close();
    } // end of channel loop

    delete table_dir;
}

//____________________________________________________________________

Double_t AtlHistFactoryTask::GetNormUncertainty(const char* name) {
    //
    // Get the normalization uncertainty associated to this parameter
    //

    // Search for the normalization parameter in the first channel
    // of the measurement
    //
    // This does not work in special cases where the channels do have
    // different components. In that case, issue a error and abort
    // This needs to be implemented, e.g. looping over all channels

    TString par_name = name;

    // Get norm uncertainty from the first channel
    // Should be valid for all channels, no?
    TList *ch_list = fMeasurement->GetListOfChannels();
    AtlHistFactoryChannel *ch = (AtlHistFactoryChannel*) ch_list->At(0);
    
    TList *s_list = ch->GetListOfSamples();
    AtlHistFactorySample *sample = 0;
    TIter next_sample(s_list);
    while ( (sample = (AtlHistFactorySample*) next_sample()) ) {
	TString norm_name = sample->GetNormFactorName();
	// this name is part of the parameter name
	if ( par_name.Contains(norm_name.Data()) )
	    return sample->GetNormUncertainty();
    }

    Error("GetNormUncertainty",
	  "Could not find a sample with norm parameter name %s",
	  name);
    gSystem->Abort();

    return -1; // suppress compiler warnings
}

//____________________________________________________________________

TString* AtlHistFactoryTask::GetSystematicName(const char* par_name) {
    //
    // Get the systematic name for the given parameter name
    //
    
    TString name = par_name;
    // Remove 'alpha_', 'beta_', 'gamma_' from parameter name
    if ( name.Contains("alpha_") ) name.ReplaceAll("alpha_", "");
    if ( name.Contains("beta_") ) name.ReplaceAll("beta_", "");
    if ( name.Contains("gamma_") ) name.ReplaceAll("gamma_", "");

    TIter next_ch(fMeasurement->GetListOfChannels());
    AtlHistFactoryChannel *ch = 0;
    while ((ch = (AtlHistFactoryChannel*) next_ch())) {
	TList *syst = ch->GetListOfSystematics();
	TObject *obj = syst->FindObject(name.Data());
	if ( obj != 0 ) return (new TString(obj->GetTitle()));

	// If nothing was not found in the channel's list of systematics
	// Scan for sample systematics
	TIter next_sample(ch->GetListOfSamples());
	AtlHistFactorySample *sample = 0;
	while ((sample = (AtlHistFactorySample *) next_sample())) {
	    TList *s_syst = sample->GetListOfSystematics();
	    TObject *obj = s_syst->FindObject(name.Data());
	    if ( obj != 0 ) return (new TString(obj->GetTitle()));

	    TString s_name = sample->GetNormFactorName();
	    if ( s_name.Contains(name.Data()) )
		return (new TString(sample->GetTitle()));
	}
	next_sample.Reset();
    }
    return 0;
}

//____________________________________________________________________

void AtlHistFactoryTask::ExportPullPlots(const char* outfile,
					 TH1* h_pull,
					 TH1* h_pull_err_up,
					 TH1* h_pull_err_down,
					 TH1* h_prefit_impact_up,
					 TH1* h_prefit_impact_down,
					 TH1* h_postfit_impact_up,
					 TH1* h_postfit_impact_down) {
    //
    // Export pull plots to pdf
    //

    // Compute number of Pads needed for all pulls
    Int_t Nmax_pulls = h_pull->GetNbinsX();
    Int_t Npads = TMath::Ceil(Nmax_pulls/((Double_t)fNPullsPerPad));

    // Sort all pulls by post fit impact on mu
    // ---------------------------------------
    // Sort such that the pull with the highest postfit
    // impact (sum of postfit impact up + down) is at the
    // top of the graph
    
    TArrayI *index = new TArrayI(Nmax_pulls);
    Double_t Postfit_impact[300]; // max. number of supported pulls

    Double_t i_up;
    Double_t i_down;
    for ( Int_t k = 0; k < 300; k++ ) {
	// Array starts at 0, histograms at 1
	if ( k < Nmax_pulls ) {
	    i_up   = TMath::Abs(h_postfit_impact_up->GetBinContent(k+1));
	    i_down = TMath::Abs(h_postfit_impact_down->GetBinContent(k+1));
	    Postfit_impact[k] = i_up + i_down;
	} else {
	    Postfit_impact[k] = -1.; // minimum impact is 0.
	}
    }
    TMath::Sort(Nmax_pulls,
    		Postfit_impact,
    		index->GetArray(), kTRUE);
    // From now on, use the index array to access the pull info
    // Keep in mind that the number of the pull stored in the
    // index array is off by 1 (because the array starts at 0
    // and histogram bin numbers start at 1)
        
    for ( Int_t j = 0; j < Npads; j++ ) {

	// Compute the number of pulls for the current pad
	// as well as the first and last pull that should be drawn
	Int_t n_pulls    = fNPullsPerPad;
	Int_t pull_start = j*fNPullsPerPad;
	Int_t pull_end   = (j+1)*fNPullsPerPad;

	// In case less pulls than fNPullsPerPad are left
	// adjust the end point accordingly
	if ( pull_end > Nmax_pulls ) {
	    pull_end = Nmax_pulls;
	    n_pulls  = Nmax_pulls % fNPullsPerPad;
	}

	// Create canvas for pulls
	TCanvas *c = new TCanvas(Form("Pulls_%d_to_%d", pull_start, pull_end),
				 Form("Pulls_%d_to_%d", pull_start, pull_end),
				 500., 700.);
	c->SetLeftMargin(0.35);
	c->SetTopMargin(0.1);
	c->SetBottomMargin(0.15);
	
	// Collect all graphs in one multigraph
	TMultiGraph *mg = new TMultiGraph();

	TGraphAsymmErrors *g = new TGraphAsymmErrors(n_pulls); // pulls
	TGraphAsymmErrors *n = new TGraphAsymmErrors(n_pulls); // prefit impact
	TGraphAsymmErrors *u = new TGraphAsymmErrors(n_pulls); // postfit impact
	
	// Two graphs for background lines with different colors
	TGraphErrors *bkg1 = new TGraphErrors(n_pulls);
	TGraphErrors *bkg2 = new TGraphErrors(n_pulls);

	// Add some extra space for the legend
	TGraphErrors *bkg3 = new TGraphErrors(3);

	// Add all graphs and adjust drawing style
	mg->Add(bkg1, "E2");
	mg->Add(bkg2, "E20");
	mg->Add(bkg3, "E20");
	mg->Add(n, "E2");
	mg->Add(u, "E2");
	mg->Add(g, "PE");

	
	// Set Points and Errors
	// ---------------------

	// Counter for the y-axis of the pull graph
	// Historically, I increased this counter by +1 after adding a point to the
	// pull graph. After adding the sorting of the pulls, the easiest solution
	// was to have a graph with negative numbers from 0 to -fNPullsPerPad
	// such that the pull with the highest impact on poi is at the top
	Int_t i_pull = 0;

	// Scaling of the impact on poi errors
	// All graphs of the multigraph have to use the same x-axis
	// Since the impact on the poi will have a different x-axis range then the one
	// of the pulls, scale everything by a scale factor
	// The scale factor also defines then the new x-axis range which is drawn on top
	// of the plot	
	// N.B.: Another solution would be to have two multigraphs, but since the Multigraph
	//       does not support the drawing option X+, the scaling of ther errors was easier
	//       to implement
	
	for ( Int_t i = pull_start; i < pull_end; i++ ) {
	    // Remember:
	    // Histogram bin numbers start with 1
	    // Graph point numbers start with 0

	    // Pulls
	    g->SetPoint(i_pull, h_pull->GetBinContent(index->At(i)+1), -(i_pull+1));
	    
	    g->SetPointEYhigh(i_pull, 0.);
	    g->SetPointEYlow(i_pull, 0.);
	    
	    g->SetPointEXhigh(i_pull, h_pull_err_up->GetBinContent(index->At(i)+1));
	    g->SetPointEXlow(i_pull, h_pull_err_down->GetBinContent(index->At(i)+1));

	    // Prefit impact on mu
	    n->SetPoint(i_pull, 0., -(i_pull+1));
	    
	    n->SetPointEYhigh(i_pull, 0.4);
	    n->SetPointEYlow(i_pull, 0.4);
	    
	    i_up   = TMath::Abs(h_prefit_impact_up->GetBinContent(index->At(i)+1));
	    i_down = TMath::Abs(h_prefit_impact_down->GetBinContent(index->At(i)+1));
	    
	    n->SetPointEXhigh(i_pull, i_up*fPullScaleFactor);
	    n->SetPointEXlow(i_pull,  i_down*fPullScaleFactor);
	    
	    // Postfit impact on mu
	    u->SetPoint(i_pull, 0., -(i_pull+1));
	    
	    u->SetPointEYhigh(i_pull, 0.35);
	    u->SetPointEYlow(i_pull, 0.35);
	    
	    i_up   = TMath::Abs(h_postfit_impact_up->GetBinContent(index->At(i)+1));
	    i_down = TMath::Abs(h_postfit_impact_down->GetBinContent(index->At(i)+1));

	    u->SetPointEXhigh(i_pull, i_up*fPullScaleFactor);
	    u->SetPointEXlow(i_pull,  i_down*fPullScaleFactor);
	    
	    // Iterating colors for backgrounds
	    bkg1->SetPoint(i_pull, 0., -(i_pull+1));
	    bkg2->SetPoint(i_pull, 0., -(i_pull+1));
	    if ( i_pull % 2 == 0 ) {
		bkg1->SetPointError(i_pull, 0., 0.);
		bkg2->SetPointError(i_pull, 3., 0.5);
	    } else {
	    	bkg1->SetPointError(i_pull, 3., 0.5);
	    	bkg2->SetPointError(i_pull, 0., 0.);
	    }
	
	    // next pull
	    i_pull++;
	}

	// Add some space for legend at the top of the plot
	bkg3->SetPoint(1., 0., +1.);
	bkg3->SetPoint(2., 0., +2.);
	bkg3->SetPoint(3., 0., +3.);
	bkg3->SetPointError(1., 3., 0.5);
	bkg3->SetPointError(2., 3., 0.5);
	bkg3->SetPointError(3., 3., 0.5);
	bkg3->SetFillColor(0);
	
	g->SetLineWidth(2);
	
	n->SetFillStyle(1001);
	n->SetFillColor(kYellow);
	n->SetLineColor(kYellow);
	
	u->SetFillStyle(3354);
	u->SetFillColor(kBlue);
	u->SetLineColor(kBlue);

	bkg1->SetFillStyle(1001);
	bkg1->SetFillColor(kWhite);

	bkg2->SetFillStyle(3001);
	bkg2->SetFillColor(kGray);
		
	// Axis range
	mg->Draw("A");
	mg->GetXaxis()->SetLimits(-3., 3.);
	mg->GetXaxis()->SetTitle("(#hat{#theta} - #theta_{0})/#Delta#theta");
	mg->GetXaxis()->SetTitleOffset(1.);
	mg->GetYaxis()->SetTickLength(0.);
	mg->GetYaxis()->SetLabelSize(0.);

	Double_t xmin = mg->GetXaxis()->GetXmin();
	Double_t xmax = mg->GetXaxis()->GetXmax();
	Double_t ymax = mg->GetYaxis()->GetXmax();
	
	TGaxis *x2 = new TGaxis(xmin, ymax, // Position
				xmax, ymax, //
				xmin/fPullScaleFactor, xmax/fPullScaleFactor, // x-axis Range
				505, "-"); // ndivisions
	x2->ImportAxisAttributes(g->GetXaxis());
	x2->SetTitle("#Delta#mu");
	x2->SetTitleOffset(.8);
	x2->Draw();

	// Add lines for +1, 0., -1 (for the pulls)
	TLine *plus1  = new TLine(+1., 0., +1., -(n_pulls+1.));
	plus1->SetLineStyle(2);
	plus1->Draw();

	TLine *minus1 = new TLine(-1., 0., -1., -(n_pulls+1.));
	minus1->SetLineStyle(2);
	minus1->Draw();

	TLine *zero   = new TLine( 0., 0., 0., -(n_pulls+1.));
	zero->SetLineStyle(2);
	zero->Draw();

	TLegend *leg = new TLegend(0.35, 0.745, 0.8, 0.89);
	leg->AddEntry(g, "Pull", "PL");
	leg->AddEntry(n, "Prefit impact", "F");
	leg->AddEntry(u, "Postfit impact", "F");
	leg->SetFillColor(0);
	leg->SetFillStyle(0);
	leg->SetLineColor(0);
	leg->SetBorderSize(0);
	leg->Draw();
	
	// Atlas Label
	TLatex t1;
	t1.SetTextFont(72);
	t1.SetTextColor(kBlack);
	t1.SetTextAlign(31);
	t1.DrawLatexNDC(0.78, 0.85, "ATLAS");
	
	// Internal label
	TLatex t2; 
	t2.SetTextFont(42);
	t2.SetTextColor(kBlack);
	t2.SetTextAlign(11);
	t2.DrawLatexNDC(0.79, 0.85, "Internal");
	
	// Reset the counter for the pulls of this pad
	i_pull = 0;
	// 'i' points to the pulls used for this pad
	// (the pulls need to be accessed through the index array)
	for ( Int_t i = pull_start; i < pull_end; i++ ) {

	    // Add NP label for each pull
	    TLatex *l = new TLatex;
	    l->SetTextFont(42);
	    l->SetTextSize(0.03);
	    l->SetTextAlign(32);
	    
	    TAxis *hx = h_pull->GetXaxis();
	    l->DrawLatex(-3.1, -(i_pull + 1), hx->GetBinLabel(index->At(i)+1));

	    i_pull++;
	}

	// no ticks on the upper x-axis for the Multigraph (!)
	c->SetTicks(0, 0);
	// Redraw the axis to be on top of everything else that was added
	c->RedrawAxis();
	// Update the canvas
	c->Modified();
	c->Update();

	// Save all pulls in one pdf
	// (Check special case if there is only one pad)
	if ( j == 0 && Npads != 1 ) 	// First pad
	    c->SaveAs(Form("%s(", outfile));
	else if ( j+1 == Npads && Npads != 1 ) // last pad
	    c->SaveAs(Form("%s)", outfile));
	else
	    c->SaveAs(Form("%s", outfile));
    }
}

//____________________________________________________________________

void AtlHistFactoryTask::RunLimit() {
    //
    // Run Hypothesis Test:
    //  - Signal Hypothesis vs. Background only Hypothesis
    //
    // Modified version of $ROOTSYS/tutorials/roostats/StandardHypoTestDemo.C
    //

}

//____________________________________________________________________

Double_t AtlHistFactoryTask::GetGammaUncertainty(const char* name,
						 RooWorkspace *wSpace) {
    //
    // Get the uncertainty associated to this parameter
    //

    // Assuming gamma has a gaussian constraint
    
    // That's a nasty way of getting the sigma parameter
    // of the gamma parameters, is there any other way?
    
    TString pdfname = name;
    pdfname.Append("_constraint");
    RooAbsPdf *pdf = wSpace->pdf(pdfname.Data());
    
    TString sigma_name = name;
    sigma_name.Append("_sigma");
    RooConstVar *sigma = (RooConstVar*) pdf->findServer(sigma_name.Data());
    if ( sigma == 0 ) {
	Error("GetGammaUncertainty",
	      "Could not find parameter %s. Abort.",
	      name);
	gSystem->Abort();
    }
    
    return sigma->getVal();
}

//____________________________________________________________________

TString* AtlHistFactoryTask::GetDirectoryName(const char* name) {
    //
    // Return the name to a directory within the common output
    // directory.
    // If a directory with this name does not yet exist, it will
    // be created.
    //
    // The user is responsible for deleting the returned pointer.
    //
    
    TString *dir = new TString(gSystem->DirName(fOutputFileName->Data()));
    dir->Append(Form("/%s/", name));
    dir->ReplaceAll("//","/");
    
    // Create template directory (if it does not yet exist)
    Int_t val = gSystem->Exec(Form("test -d %s", dir->Data()));
    if ( val != 0 ) {
	val = gSystem->Exec(Form("mkdir -p %s", dir->Data()));
	if ( val == 0 ) {
	    Info("GetDirectoryName",
		 "mkdir -p %s", dir->Data());
	} else {
	    Error("GetDirectoryName",
		  "Creation of directory '%s' not possible. Abort!",
		  dir->Data());
	    gSystem->Abort();
	}
    }
    return dir;
}

//____________________________________________________________________

Bool_t AtlHistFactoryTask::IsNormParameter(const char* name) {
    //
    // Is norm parameter
    //

    TString par_name = name;
    // Loop over all samples

    // Loop over all channels
    TIter next_channel(fMeasurement->GetListOfChannels());
    AtlHistFactoryChannel *ch = 0;
    while ( (ch = (AtlHistFactoryChannel*) next_channel()) ) {
	// Loop over all processes (samples) in one channel
	TIter next_sample(ch->GetListOfSamples());
	AtlHistFactorySample *sample = 0;
	while ( (sample = (AtlHistFactorySample*) next_sample()) ) {
	    if ( par_name.Contains(sample->GetNormFactorName()) )
		return kTRUE;
	}
    }
    return kFALSE;
}
 AtlHistFactoryTask.cxx:1
 AtlHistFactoryTask.cxx:2
 AtlHistFactoryTask.cxx:3
 AtlHistFactoryTask.cxx:4
 AtlHistFactoryTask.cxx:5
 AtlHistFactoryTask.cxx:6
 AtlHistFactoryTask.cxx:7
 AtlHistFactoryTask.cxx:8
 AtlHistFactoryTask.cxx:9
 AtlHistFactoryTask.cxx:10
 AtlHistFactoryTask.cxx:11
 AtlHistFactoryTask.cxx:12
 AtlHistFactoryTask.cxx:13
 AtlHistFactoryTask.cxx:14
 AtlHistFactoryTask.cxx:15
 AtlHistFactoryTask.cxx:16
 AtlHistFactoryTask.cxx:17
 AtlHistFactoryTask.cxx:18
 AtlHistFactoryTask.cxx:19
 AtlHistFactoryTask.cxx:20
 AtlHistFactoryTask.cxx:21
 AtlHistFactoryTask.cxx:22
 AtlHistFactoryTask.cxx:23
 AtlHistFactoryTask.cxx:24
 AtlHistFactoryTask.cxx:25
 AtlHistFactoryTask.cxx:26
 AtlHistFactoryTask.cxx:27
 AtlHistFactoryTask.cxx:28
 AtlHistFactoryTask.cxx:29
 AtlHistFactoryTask.cxx:30
 AtlHistFactoryTask.cxx:31
 AtlHistFactoryTask.cxx:32
 AtlHistFactoryTask.cxx:33
 AtlHistFactoryTask.cxx:34
 AtlHistFactoryTask.cxx:35
 AtlHistFactoryTask.cxx:36
 AtlHistFactoryTask.cxx:37
 AtlHistFactoryTask.cxx:38
 AtlHistFactoryTask.cxx:39
 AtlHistFactoryTask.cxx:40
 AtlHistFactoryTask.cxx:41
 AtlHistFactoryTask.cxx:42
 AtlHistFactoryTask.cxx:43
 AtlHistFactoryTask.cxx:44
 AtlHistFactoryTask.cxx:45
 AtlHistFactoryTask.cxx:46
 AtlHistFactoryTask.cxx:47
 AtlHistFactoryTask.cxx:48
 AtlHistFactoryTask.cxx:49
 AtlHistFactoryTask.cxx:50
 AtlHistFactoryTask.cxx:51
 AtlHistFactoryTask.cxx:52
 AtlHistFactoryTask.cxx:53
 AtlHistFactoryTask.cxx:54
 AtlHistFactoryTask.cxx:55
 AtlHistFactoryTask.cxx:56
 AtlHistFactoryTask.cxx:57
 AtlHistFactoryTask.cxx:58
 AtlHistFactoryTask.cxx:59
 AtlHistFactoryTask.cxx:60
 AtlHistFactoryTask.cxx:61
 AtlHistFactoryTask.cxx:62
 AtlHistFactoryTask.cxx:63
 AtlHistFactoryTask.cxx:64
 AtlHistFactoryTask.cxx:65
 AtlHistFactoryTask.cxx:66
 AtlHistFactoryTask.cxx:67
 AtlHistFactoryTask.cxx:68
 AtlHistFactoryTask.cxx:69
 AtlHistFactoryTask.cxx:70
 AtlHistFactoryTask.cxx:71
 AtlHistFactoryTask.cxx:72
 AtlHistFactoryTask.cxx:73
 AtlHistFactoryTask.cxx:74
 AtlHistFactoryTask.cxx:75
 AtlHistFactoryTask.cxx:76
 AtlHistFactoryTask.cxx:77
 AtlHistFactoryTask.cxx:78
 AtlHistFactoryTask.cxx:79
 AtlHistFactoryTask.cxx:80
 AtlHistFactoryTask.cxx:81
 AtlHistFactoryTask.cxx:82
 AtlHistFactoryTask.cxx:83
 AtlHistFactoryTask.cxx:84
 AtlHistFactoryTask.cxx:85
 AtlHistFactoryTask.cxx:86
 AtlHistFactoryTask.cxx:87
 AtlHistFactoryTask.cxx:88
 AtlHistFactoryTask.cxx:89
 AtlHistFactoryTask.cxx:90
 AtlHistFactoryTask.cxx:91
 AtlHistFactoryTask.cxx:92
 AtlHistFactoryTask.cxx:93
 AtlHistFactoryTask.cxx:94
 AtlHistFactoryTask.cxx:95
 AtlHistFactoryTask.cxx:96
 AtlHistFactoryTask.cxx:97
 AtlHistFactoryTask.cxx:98
 AtlHistFactoryTask.cxx:99
 AtlHistFactoryTask.cxx:100
 AtlHistFactoryTask.cxx:101
 AtlHistFactoryTask.cxx:102
 AtlHistFactoryTask.cxx:103
 AtlHistFactoryTask.cxx:104
 AtlHistFactoryTask.cxx:105
 AtlHistFactoryTask.cxx:106
 AtlHistFactoryTask.cxx:107
 AtlHistFactoryTask.cxx:108
 AtlHistFactoryTask.cxx:109
 AtlHistFactoryTask.cxx:110
 AtlHistFactoryTask.cxx:111
 AtlHistFactoryTask.cxx:112
 AtlHistFactoryTask.cxx:113
 AtlHistFactoryTask.cxx:114
 AtlHistFactoryTask.cxx:115
 AtlHistFactoryTask.cxx:116
 AtlHistFactoryTask.cxx:117
 AtlHistFactoryTask.cxx:118
 AtlHistFactoryTask.cxx:119
 AtlHistFactoryTask.cxx:120
 AtlHistFactoryTask.cxx:121
 AtlHistFactoryTask.cxx:122
 AtlHistFactoryTask.cxx:123
 AtlHistFactoryTask.cxx:124
 AtlHistFactoryTask.cxx:125
 AtlHistFactoryTask.cxx:126
 AtlHistFactoryTask.cxx:127
 AtlHistFactoryTask.cxx:128
 AtlHistFactoryTask.cxx:129
 AtlHistFactoryTask.cxx:130
 AtlHistFactoryTask.cxx:131
 AtlHistFactoryTask.cxx:132
 AtlHistFactoryTask.cxx:133
 AtlHistFactoryTask.cxx:134
 AtlHistFactoryTask.cxx:135
 AtlHistFactoryTask.cxx:136
 AtlHistFactoryTask.cxx:137
 AtlHistFactoryTask.cxx:138
 AtlHistFactoryTask.cxx:139
 AtlHistFactoryTask.cxx:140
 AtlHistFactoryTask.cxx:141
 AtlHistFactoryTask.cxx:142
 AtlHistFactoryTask.cxx:143
 AtlHistFactoryTask.cxx:144
 AtlHistFactoryTask.cxx:145
 AtlHistFactoryTask.cxx:146
 AtlHistFactoryTask.cxx:147
 AtlHistFactoryTask.cxx:148
 AtlHistFactoryTask.cxx:149
 AtlHistFactoryTask.cxx:150
 AtlHistFactoryTask.cxx:151
 AtlHistFactoryTask.cxx:152
 AtlHistFactoryTask.cxx:153
 AtlHistFactoryTask.cxx:154
 AtlHistFactoryTask.cxx:155
 AtlHistFactoryTask.cxx:156
 AtlHistFactoryTask.cxx:157
 AtlHistFactoryTask.cxx:158
 AtlHistFactoryTask.cxx:159
 AtlHistFactoryTask.cxx:160
 AtlHistFactoryTask.cxx:161
 AtlHistFactoryTask.cxx:162
 AtlHistFactoryTask.cxx:163
 AtlHistFactoryTask.cxx:164
 AtlHistFactoryTask.cxx:165
 AtlHistFactoryTask.cxx:166
 AtlHistFactoryTask.cxx:167
 AtlHistFactoryTask.cxx:168
 AtlHistFactoryTask.cxx:169
 AtlHistFactoryTask.cxx:170
 AtlHistFactoryTask.cxx:171
 AtlHistFactoryTask.cxx:172
 AtlHistFactoryTask.cxx:173
 AtlHistFactoryTask.cxx:174
 AtlHistFactoryTask.cxx:175
 AtlHistFactoryTask.cxx:176
 AtlHistFactoryTask.cxx:177
 AtlHistFactoryTask.cxx:178
 AtlHistFactoryTask.cxx:179
 AtlHistFactoryTask.cxx:180
 AtlHistFactoryTask.cxx:181
 AtlHistFactoryTask.cxx:182
 AtlHistFactoryTask.cxx:183
 AtlHistFactoryTask.cxx:184
 AtlHistFactoryTask.cxx:185
 AtlHistFactoryTask.cxx:186
 AtlHistFactoryTask.cxx:187
 AtlHistFactoryTask.cxx:188
 AtlHistFactoryTask.cxx:189
 AtlHistFactoryTask.cxx:190
 AtlHistFactoryTask.cxx:191
 AtlHistFactoryTask.cxx:192
 AtlHistFactoryTask.cxx:193
 AtlHistFactoryTask.cxx:194
 AtlHistFactoryTask.cxx:195
 AtlHistFactoryTask.cxx:196
 AtlHistFactoryTask.cxx:197
 AtlHistFactoryTask.cxx:198
 AtlHistFactoryTask.cxx:199
 AtlHistFactoryTask.cxx:200
 AtlHistFactoryTask.cxx:201
 AtlHistFactoryTask.cxx:202
 AtlHistFactoryTask.cxx:203
 AtlHistFactoryTask.cxx:204
 AtlHistFactoryTask.cxx:205
 AtlHistFactoryTask.cxx:206
 AtlHistFactoryTask.cxx:207
 AtlHistFactoryTask.cxx:208
 AtlHistFactoryTask.cxx:209
 AtlHistFactoryTask.cxx:210
 AtlHistFactoryTask.cxx:211
 AtlHistFactoryTask.cxx:212
 AtlHistFactoryTask.cxx:213
 AtlHistFactoryTask.cxx:214
 AtlHistFactoryTask.cxx:215
 AtlHistFactoryTask.cxx:216
 AtlHistFactoryTask.cxx:217
 AtlHistFactoryTask.cxx:218
 AtlHistFactoryTask.cxx:219
 AtlHistFactoryTask.cxx:220
 AtlHistFactoryTask.cxx:221
 AtlHistFactoryTask.cxx:222
 AtlHistFactoryTask.cxx:223
 AtlHistFactoryTask.cxx:224
 AtlHistFactoryTask.cxx:225
 AtlHistFactoryTask.cxx:226
 AtlHistFactoryTask.cxx:227
 AtlHistFactoryTask.cxx:228
 AtlHistFactoryTask.cxx:229
 AtlHistFactoryTask.cxx:230
 AtlHistFactoryTask.cxx:231
 AtlHistFactoryTask.cxx:232
 AtlHistFactoryTask.cxx:233
 AtlHistFactoryTask.cxx:234
 AtlHistFactoryTask.cxx:235
 AtlHistFactoryTask.cxx:236
 AtlHistFactoryTask.cxx:237
 AtlHistFactoryTask.cxx:238
 AtlHistFactoryTask.cxx:239
 AtlHistFactoryTask.cxx:240
 AtlHistFactoryTask.cxx:241
 AtlHistFactoryTask.cxx:242
 AtlHistFactoryTask.cxx:243
 AtlHistFactoryTask.cxx:244
 AtlHistFactoryTask.cxx:245
 AtlHistFactoryTask.cxx:246
 AtlHistFactoryTask.cxx:247
 AtlHistFactoryTask.cxx:248
 AtlHistFactoryTask.cxx:249
 AtlHistFactoryTask.cxx:250
 AtlHistFactoryTask.cxx:251
 AtlHistFactoryTask.cxx:252
 AtlHistFactoryTask.cxx:253
 AtlHistFactoryTask.cxx:254
 AtlHistFactoryTask.cxx:255
 AtlHistFactoryTask.cxx:256
 AtlHistFactoryTask.cxx:257
 AtlHistFactoryTask.cxx:258
 AtlHistFactoryTask.cxx:259
 AtlHistFactoryTask.cxx:260
 AtlHistFactoryTask.cxx:261
 AtlHistFactoryTask.cxx:262
 AtlHistFactoryTask.cxx:263
 AtlHistFactoryTask.cxx:264
 AtlHistFactoryTask.cxx:265
 AtlHistFactoryTask.cxx:266
 AtlHistFactoryTask.cxx:267
 AtlHistFactoryTask.cxx:268
 AtlHistFactoryTask.cxx:269
 AtlHistFactoryTask.cxx:270
 AtlHistFactoryTask.cxx:271
 AtlHistFactoryTask.cxx:272
 AtlHistFactoryTask.cxx:273
 AtlHistFactoryTask.cxx:274
 AtlHistFactoryTask.cxx:275
 AtlHistFactoryTask.cxx:276
 AtlHistFactoryTask.cxx:277
 AtlHistFactoryTask.cxx:278
 AtlHistFactoryTask.cxx:279
 AtlHistFactoryTask.cxx:280
 AtlHistFactoryTask.cxx:281
 AtlHistFactoryTask.cxx:282
 AtlHistFactoryTask.cxx:283
 AtlHistFactoryTask.cxx:284
 AtlHistFactoryTask.cxx:285
 AtlHistFactoryTask.cxx:286
 AtlHistFactoryTask.cxx:287
 AtlHistFactoryTask.cxx:288
 AtlHistFactoryTask.cxx:289
 AtlHistFactoryTask.cxx:290
 AtlHistFactoryTask.cxx:291
 AtlHistFactoryTask.cxx:292
 AtlHistFactoryTask.cxx:293
 AtlHistFactoryTask.cxx:294
 AtlHistFactoryTask.cxx:295
 AtlHistFactoryTask.cxx:296
 AtlHistFactoryTask.cxx:297
 AtlHistFactoryTask.cxx:298
 AtlHistFactoryTask.cxx:299
 AtlHistFactoryTask.cxx:300
 AtlHistFactoryTask.cxx:301
 AtlHistFactoryTask.cxx:302
 AtlHistFactoryTask.cxx:303
 AtlHistFactoryTask.cxx:304
 AtlHistFactoryTask.cxx:305
 AtlHistFactoryTask.cxx:306
 AtlHistFactoryTask.cxx:307
 AtlHistFactoryTask.cxx:308
 AtlHistFactoryTask.cxx:309
 AtlHistFactoryTask.cxx:310
 AtlHistFactoryTask.cxx:311
 AtlHistFactoryTask.cxx:312
 AtlHistFactoryTask.cxx:313
 AtlHistFactoryTask.cxx:314
 AtlHistFactoryTask.cxx:315
 AtlHistFactoryTask.cxx:316
 AtlHistFactoryTask.cxx:317
 AtlHistFactoryTask.cxx:318
 AtlHistFactoryTask.cxx:319
 AtlHistFactoryTask.cxx:320
 AtlHistFactoryTask.cxx:321
 AtlHistFactoryTask.cxx:322
 AtlHistFactoryTask.cxx:323
 AtlHistFactoryTask.cxx:324
 AtlHistFactoryTask.cxx:325
 AtlHistFactoryTask.cxx:326
 AtlHistFactoryTask.cxx:327
 AtlHistFactoryTask.cxx:328
 AtlHistFactoryTask.cxx:329
 AtlHistFactoryTask.cxx:330
 AtlHistFactoryTask.cxx:331
 AtlHistFactoryTask.cxx:332
 AtlHistFactoryTask.cxx:333
 AtlHistFactoryTask.cxx:334
 AtlHistFactoryTask.cxx:335
 AtlHistFactoryTask.cxx:336
 AtlHistFactoryTask.cxx:337
 AtlHistFactoryTask.cxx:338
 AtlHistFactoryTask.cxx:339
 AtlHistFactoryTask.cxx:340
 AtlHistFactoryTask.cxx:341
 AtlHistFactoryTask.cxx:342
 AtlHistFactoryTask.cxx:343
 AtlHistFactoryTask.cxx:344
 AtlHistFactoryTask.cxx:345
 AtlHistFactoryTask.cxx:346
 AtlHistFactoryTask.cxx:347
 AtlHistFactoryTask.cxx:348
 AtlHistFactoryTask.cxx:349
 AtlHistFactoryTask.cxx:350
 AtlHistFactoryTask.cxx:351
 AtlHistFactoryTask.cxx:352
 AtlHistFactoryTask.cxx:353
 AtlHistFactoryTask.cxx:354
 AtlHistFactoryTask.cxx:355
 AtlHistFactoryTask.cxx:356
 AtlHistFactoryTask.cxx:357
 AtlHistFactoryTask.cxx:358
 AtlHistFactoryTask.cxx:359
 AtlHistFactoryTask.cxx:360
 AtlHistFactoryTask.cxx:361
 AtlHistFactoryTask.cxx:362
 AtlHistFactoryTask.cxx:363
 AtlHistFactoryTask.cxx:364
 AtlHistFactoryTask.cxx:365
 AtlHistFactoryTask.cxx:366
 AtlHistFactoryTask.cxx:367
 AtlHistFactoryTask.cxx:368
 AtlHistFactoryTask.cxx:369
 AtlHistFactoryTask.cxx:370
 AtlHistFactoryTask.cxx:371
 AtlHistFactoryTask.cxx:372
 AtlHistFactoryTask.cxx:373
 AtlHistFactoryTask.cxx:374
 AtlHistFactoryTask.cxx:375
 AtlHistFactoryTask.cxx:376
 AtlHistFactoryTask.cxx:377
 AtlHistFactoryTask.cxx:378
 AtlHistFactoryTask.cxx:379
 AtlHistFactoryTask.cxx:380
 AtlHistFactoryTask.cxx:381
 AtlHistFactoryTask.cxx:382
 AtlHistFactoryTask.cxx:383
 AtlHistFactoryTask.cxx:384
 AtlHistFactoryTask.cxx:385
 AtlHistFactoryTask.cxx:386
 AtlHistFactoryTask.cxx:387
 AtlHistFactoryTask.cxx:388
 AtlHistFactoryTask.cxx:389
 AtlHistFactoryTask.cxx:390
 AtlHistFactoryTask.cxx:391
 AtlHistFactoryTask.cxx:392
 AtlHistFactoryTask.cxx:393
 AtlHistFactoryTask.cxx:394
 AtlHistFactoryTask.cxx:395
 AtlHistFactoryTask.cxx:396
 AtlHistFactoryTask.cxx:397
 AtlHistFactoryTask.cxx:398
 AtlHistFactoryTask.cxx:399
 AtlHistFactoryTask.cxx:400
 AtlHistFactoryTask.cxx:401
 AtlHistFactoryTask.cxx:402
 AtlHistFactoryTask.cxx:403
 AtlHistFactoryTask.cxx:404
 AtlHistFactoryTask.cxx:405
 AtlHistFactoryTask.cxx:406
 AtlHistFactoryTask.cxx:407
 AtlHistFactoryTask.cxx:408
 AtlHistFactoryTask.cxx:409
 AtlHistFactoryTask.cxx:410
 AtlHistFactoryTask.cxx:411
 AtlHistFactoryTask.cxx:412
 AtlHistFactoryTask.cxx:413
 AtlHistFactoryTask.cxx:414
 AtlHistFactoryTask.cxx:415
 AtlHistFactoryTask.cxx:416
 AtlHistFactoryTask.cxx:417
 AtlHistFactoryTask.cxx:418
 AtlHistFactoryTask.cxx:419
 AtlHistFactoryTask.cxx:420
 AtlHistFactoryTask.cxx:421
 AtlHistFactoryTask.cxx:422
 AtlHistFactoryTask.cxx:423
 AtlHistFactoryTask.cxx:424
 AtlHistFactoryTask.cxx:425
 AtlHistFactoryTask.cxx:426
 AtlHistFactoryTask.cxx:427
 AtlHistFactoryTask.cxx:428
 AtlHistFactoryTask.cxx:429
 AtlHistFactoryTask.cxx:430
 AtlHistFactoryTask.cxx:431
 AtlHistFactoryTask.cxx:432
 AtlHistFactoryTask.cxx:433
 AtlHistFactoryTask.cxx:434
 AtlHistFactoryTask.cxx:435
 AtlHistFactoryTask.cxx:436
 AtlHistFactoryTask.cxx:437
 AtlHistFactoryTask.cxx:438
 AtlHistFactoryTask.cxx:439
 AtlHistFactoryTask.cxx:440
 AtlHistFactoryTask.cxx:441
 AtlHistFactoryTask.cxx:442
 AtlHistFactoryTask.cxx:443
 AtlHistFactoryTask.cxx:444
 AtlHistFactoryTask.cxx:445
 AtlHistFactoryTask.cxx:446
 AtlHistFactoryTask.cxx:447
 AtlHistFactoryTask.cxx:448
 AtlHistFactoryTask.cxx:449
 AtlHistFactoryTask.cxx:450
 AtlHistFactoryTask.cxx:451
 AtlHistFactoryTask.cxx:452
 AtlHistFactoryTask.cxx:453
 AtlHistFactoryTask.cxx:454
 AtlHistFactoryTask.cxx:455
 AtlHistFactoryTask.cxx:456
 AtlHistFactoryTask.cxx:457
 AtlHistFactoryTask.cxx:458
 AtlHistFactoryTask.cxx:459
 AtlHistFactoryTask.cxx:460
 AtlHistFactoryTask.cxx:461
 AtlHistFactoryTask.cxx:462
 AtlHistFactoryTask.cxx:463
 AtlHistFactoryTask.cxx:464
 AtlHistFactoryTask.cxx:465
 AtlHistFactoryTask.cxx:466
 AtlHistFactoryTask.cxx:467
 AtlHistFactoryTask.cxx:468
 AtlHistFactoryTask.cxx:469
 AtlHistFactoryTask.cxx:470
 AtlHistFactoryTask.cxx:471
 AtlHistFactoryTask.cxx:472
 AtlHistFactoryTask.cxx:473
 AtlHistFactoryTask.cxx:474
 AtlHistFactoryTask.cxx:475
 AtlHistFactoryTask.cxx:476
 AtlHistFactoryTask.cxx:477
 AtlHistFactoryTask.cxx:478
 AtlHistFactoryTask.cxx:479
 AtlHistFactoryTask.cxx:480
 AtlHistFactoryTask.cxx:481
 AtlHistFactoryTask.cxx:482
 AtlHistFactoryTask.cxx:483
 AtlHistFactoryTask.cxx:484
 AtlHistFactoryTask.cxx:485
 AtlHistFactoryTask.cxx:486
 AtlHistFactoryTask.cxx:487
 AtlHistFactoryTask.cxx:488
 AtlHistFactoryTask.cxx:489
 AtlHistFactoryTask.cxx:490
 AtlHistFactoryTask.cxx:491
 AtlHistFactoryTask.cxx:492
 AtlHistFactoryTask.cxx:493
 AtlHistFactoryTask.cxx:494
 AtlHistFactoryTask.cxx:495
 AtlHistFactoryTask.cxx:496
 AtlHistFactoryTask.cxx:497
 AtlHistFactoryTask.cxx:498
 AtlHistFactoryTask.cxx:499
 AtlHistFactoryTask.cxx:500
 AtlHistFactoryTask.cxx:501
 AtlHistFactoryTask.cxx:502
 AtlHistFactoryTask.cxx:503
 AtlHistFactoryTask.cxx:504
 AtlHistFactoryTask.cxx:505
 AtlHistFactoryTask.cxx:506
 AtlHistFactoryTask.cxx:507
 AtlHistFactoryTask.cxx:508
 AtlHistFactoryTask.cxx:509
 AtlHistFactoryTask.cxx:510
 AtlHistFactoryTask.cxx:511
 AtlHistFactoryTask.cxx:512
 AtlHistFactoryTask.cxx:513
 AtlHistFactoryTask.cxx:514
 AtlHistFactoryTask.cxx:515
 AtlHistFactoryTask.cxx:516
 AtlHistFactoryTask.cxx:517
 AtlHistFactoryTask.cxx:518
 AtlHistFactoryTask.cxx:519
 AtlHistFactoryTask.cxx:520
 AtlHistFactoryTask.cxx:521
 AtlHistFactoryTask.cxx:522
 AtlHistFactoryTask.cxx:523
 AtlHistFactoryTask.cxx:524
 AtlHistFactoryTask.cxx:525
 AtlHistFactoryTask.cxx:526
 AtlHistFactoryTask.cxx:527
 AtlHistFactoryTask.cxx:528
 AtlHistFactoryTask.cxx:529
 AtlHistFactoryTask.cxx:530
 AtlHistFactoryTask.cxx:531
 AtlHistFactoryTask.cxx:532
 AtlHistFactoryTask.cxx:533
 AtlHistFactoryTask.cxx:534
 AtlHistFactoryTask.cxx:535
 AtlHistFactoryTask.cxx:536
 AtlHistFactoryTask.cxx:537
 AtlHistFactoryTask.cxx:538
 AtlHistFactoryTask.cxx:539
 AtlHistFactoryTask.cxx:540
 AtlHistFactoryTask.cxx:541
 AtlHistFactoryTask.cxx:542
 AtlHistFactoryTask.cxx:543
 AtlHistFactoryTask.cxx:544
 AtlHistFactoryTask.cxx:545
 AtlHistFactoryTask.cxx:546
 AtlHistFactoryTask.cxx:547
 AtlHistFactoryTask.cxx:548
 AtlHistFactoryTask.cxx:549
 AtlHistFactoryTask.cxx:550
 AtlHistFactoryTask.cxx:551
 AtlHistFactoryTask.cxx:552
 AtlHistFactoryTask.cxx:553
 AtlHistFactoryTask.cxx:554
 AtlHistFactoryTask.cxx:555
 AtlHistFactoryTask.cxx:556
 AtlHistFactoryTask.cxx:557
 AtlHistFactoryTask.cxx:558
 AtlHistFactoryTask.cxx:559
 AtlHistFactoryTask.cxx:560
 AtlHistFactoryTask.cxx:561
 AtlHistFactoryTask.cxx:562
 AtlHistFactoryTask.cxx:563
 AtlHistFactoryTask.cxx:564
 AtlHistFactoryTask.cxx:565
 AtlHistFactoryTask.cxx:566
 AtlHistFactoryTask.cxx:567
 AtlHistFactoryTask.cxx:568
 AtlHistFactoryTask.cxx:569
 AtlHistFactoryTask.cxx:570
 AtlHistFactoryTask.cxx:571
 AtlHistFactoryTask.cxx:572
 AtlHistFactoryTask.cxx:573
 AtlHistFactoryTask.cxx:574
 AtlHistFactoryTask.cxx:575
 AtlHistFactoryTask.cxx:576
 AtlHistFactoryTask.cxx:577
 AtlHistFactoryTask.cxx:578
 AtlHistFactoryTask.cxx:579
 AtlHistFactoryTask.cxx:580
 AtlHistFactoryTask.cxx:581
 AtlHistFactoryTask.cxx:582
 AtlHistFactoryTask.cxx:583
 AtlHistFactoryTask.cxx:584
 AtlHistFactoryTask.cxx:585
 AtlHistFactoryTask.cxx:586
 AtlHistFactoryTask.cxx:587
 AtlHistFactoryTask.cxx:588
 AtlHistFactoryTask.cxx:589
 AtlHistFactoryTask.cxx:590
 AtlHistFactoryTask.cxx:591
 AtlHistFactoryTask.cxx:592
 AtlHistFactoryTask.cxx:593
 AtlHistFactoryTask.cxx:594
 AtlHistFactoryTask.cxx:595
 AtlHistFactoryTask.cxx:596
 AtlHistFactoryTask.cxx:597
 AtlHistFactoryTask.cxx:598
 AtlHistFactoryTask.cxx:599
 AtlHistFactoryTask.cxx:600
 AtlHistFactoryTask.cxx:601
 AtlHistFactoryTask.cxx:602
 AtlHistFactoryTask.cxx:603
 AtlHistFactoryTask.cxx:604
 AtlHistFactoryTask.cxx:605
 AtlHistFactoryTask.cxx:606
 AtlHistFactoryTask.cxx:607
 AtlHistFactoryTask.cxx:608
 AtlHistFactoryTask.cxx:609
 AtlHistFactoryTask.cxx:610
 AtlHistFactoryTask.cxx:611
 AtlHistFactoryTask.cxx:612
 AtlHistFactoryTask.cxx:613
 AtlHistFactoryTask.cxx:614
 AtlHistFactoryTask.cxx:615
 AtlHistFactoryTask.cxx:616
 AtlHistFactoryTask.cxx:617
 AtlHistFactoryTask.cxx:618
 AtlHistFactoryTask.cxx:619
 AtlHistFactoryTask.cxx:620
 AtlHistFactoryTask.cxx:621
 AtlHistFactoryTask.cxx:622
 AtlHistFactoryTask.cxx:623
 AtlHistFactoryTask.cxx:624
 AtlHistFactoryTask.cxx:625
 AtlHistFactoryTask.cxx:626
 AtlHistFactoryTask.cxx:627
 AtlHistFactoryTask.cxx:628
 AtlHistFactoryTask.cxx:629
 AtlHistFactoryTask.cxx:630
 AtlHistFactoryTask.cxx:631
 AtlHistFactoryTask.cxx:632
 AtlHistFactoryTask.cxx:633
 AtlHistFactoryTask.cxx:634
 AtlHistFactoryTask.cxx:635
 AtlHistFactoryTask.cxx:636
 AtlHistFactoryTask.cxx:637
 AtlHistFactoryTask.cxx:638
 AtlHistFactoryTask.cxx:639
 AtlHistFactoryTask.cxx:640
 AtlHistFactoryTask.cxx:641
 AtlHistFactoryTask.cxx:642
 AtlHistFactoryTask.cxx:643
 AtlHistFactoryTask.cxx:644
 AtlHistFactoryTask.cxx:645
 AtlHistFactoryTask.cxx:646
 AtlHistFactoryTask.cxx:647
 AtlHistFactoryTask.cxx:648
 AtlHistFactoryTask.cxx:649
 AtlHistFactoryTask.cxx:650
 AtlHistFactoryTask.cxx:651
 AtlHistFactoryTask.cxx:652
 AtlHistFactoryTask.cxx:653
 AtlHistFactoryTask.cxx:654
 AtlHistFactoryTask.cxx:655
 AtlHistFactoryTask.cxx:656
 AtlHistFactoryTask.cxx:657
 AtlHistFactoryTask.cxx:658
 AtlHistFactoryTask.cxx:659
 AtlHistFactoryTask.cxx:660
 AtlHistFactoryTask.cxx:661
 AtlHistFactoryTask.cxx:662
 AtlHistFactoryTask.cxx:663
 AtlHistFactoryTask.cxx:664
 AtlHistFactoryTask.cxx:665
 AtlHistFactoryTask.cxx:666
 AtlHistFactoryTask.cxx:667
 AtlHistFactoryTask.cxx:668
 AtlHistFactoryTask.cxx:669
 AtlHistFactoryTask.cxx:670
 AtlHistFactoryTask.cxx:671
 AtlHistFactoryTask.cxx:672
 AtlHistFactoryTask.cxx:673
 AtlHistFactoryTask.cxx:674
 AtlHistFactoryTask.cxx:675
 AtlHistFactoryTask.cxx:676
 AtlHistFactoryTask.cxx:677
 AtlHistFactoryTask.cxx:678
 AtlHistFactoryTask.cxx:679
 AtlHistFactoryTask.cxx:680
 AtlHistFactoryTask.cxx:681
 AtlHistFactoryTask.cxx:682
 AtlHistFactoryTask.cxx:683
 AtlHistFactoryTask.cxx:684
 AtlHistFactoryTask.cxx:685
 AtlHistFactoryTask.cxx:686
 AtlHistFactoryTask.cxx:687
 AtlHistFactoryTask.cxx:688
 AtlHistFactoryTask.cxx:689
 AtlHistFactoryTask.cxx:690
 AtlHistFactoryTask.cxx:691
 AtlHistFactoryTask.cxx:692
 AtlHistFactoryTask.cxx:693
 AtlHistFactoryTask.cxx:694
 AtlHistFactoryTask.cxx:695
 AtlHistFactoryTask.cxx:696
 AtlHistFactoryTask.cxx:697
 AtlHistFactoryTask.cxx:698
 AtlHistFactoryTask.cxx:699
 AtlHistFactoryTask.cxx:700
 AtlHistFactoryTask.cxx:701
 AtlHistFactoryTask.cxx:702
 AtlHistFactoryTask.cxx:703
 AtlHistFactoryTask.cxx:704
 AtlHistFactoryTask.cxx:705
 AtlHistFactoryTask.cxx:706
 AtlHistFactoryTask.cxx:707
 AtlHistFactoryTask.cxx:708
 AtlHistFactoryTask.cxx:709
 AtlHistFactoryTask.cxx:710
 AtlHistFactoryTask.cxx:711
 AtlHistFactoryTask.cxx:712
 AtlHistFactoryTask.cxx:713
 AtlHistFactoryTask.cxx:714
 AtlHistFactoryTask.cxx:715
 AtlHistFactoryTask.cxx:716
 AtlHistFactoryTask.cxx:717
 AtlHistFactoryTask.cxx:718
 AtlHistFactoryTask.cxx:719
 AtlHistFactoryTask.cxx:720
 AtlHistFactoryTask.cxx:721
 AtlHistFactoryTask.cxx:722
 AtlHistFactoryTask.cxx:723
 AtlHistFactoryTask.cxx:724
 AtlHistFactoryTask.cxx:725
 AtlHistFactoryTask.cxx:726
 AtlHistFactoryTask.cxx:727
 AtlHistFactoryTask.cxx:728
 AtlHistFactoryTask.cxx:729
 AtlHistFactoryTask.cxx:730
 AtlHistFactoryTask.cxx:731
 AtlHistFactoryTask.cxx:732
 AtlHistFactoryTask.cxx:733
 AtlHistFactoryTask.cxx:734
 AtlHistFactoryTask.cxx:735
 AtlHistFactoryTask.cxx:736
 AtlHistFactoryTask.cxx:737
 AtlHistFactoryTask.cxx:738
 AtlHistFactoryTask.cxx:739
 AtlHistFactoryTask.cxx:740
 AtlHistFactoryTask.cxx:741
 AtlHistFactoryTask.cxx:742
 AtlHistFactoryTask.cxx:743
 AtlHistFactoryTask.cxx:744
 AtlHistFactoryTask.cxx:745
 AtlHistFactoryTask.cxx:746
 AtlHistFactoryTask.cxx:747
 AtlHistFactoryTask.cxx:748
 AtlHistFactoryTask.cxx:749
 AtlHistFactoryTask.cxx:750
 AtlHistFactoryTask.cxx:751
 AtlHistFactoryTask.cxx:752
 AtlHistFactoryTask.cxx:753
 AtlHistFactoryTask.cxx:754
 AtlHistFactoryTask.cxx:755
 AtlHistFactoryTask.cxx:756
 AtlHistFactoryTask.cxx:757
 AtlHistFactoryTask.cxx:758
 AtlHistFactoryTask.cxx:759
 AtlHistFactoryTask.cxx:760
 AtlHistFactoryTask.cxx:761
 AtlHistFactoryTask.cxx:762
 AtlHistFactoryTask.cxx:763
 AtlHistFactoryTask.cxx:764
 AtlHistFactoryTask.cxx:765
 AtlHistFactoryTask.cxx:766
 AtlHistFactoryTask.cxx:767
 AtlHistFactoryTask.cxx:768
 AtlHistFactoryTask.cxx:769
 AtlHistFactoryTask.cxx:770
 AtlHistFactoryTask.cxx:771
 AtlHistFactoryTask.cxx:772
 AtlHistFactoryTask.cxx:773
 AtlHistFactoryTask.cxx:774
 AtlHistFactoryTask.cxx:775
 AtlHistFactoryTask.cxx:776
 AtlHistFactoryTask.cxx:777
 AtlHistFactoryTask.cxx:778
 AtlHistFactoryTask.cxx:779
 AtlHistFactoryTask.cxx:780
 AtlHistFactoryTask.cxx:781
 AtlHistFactoryTask.cxx:782
 AtlHistFactoryTask.cxx:783
 AtlHistFactoryTask.cxx:784
 AtlHistFactoryTask.cxx:785
 AtlHistFactoryTask.cxx:786
 AtlHistFactoryTask.cxx:787
 AtlHistFactoryTask.cxx:788
 AtlHistFactoryTask.cxx:789
 AtlHistFactoryTask.cxx:790
 AtlHistFactoryTask.cxx:791
 AtlHistFactoryTask.cxx:792
 AtlHistFactoryTask.cxx:793
 AtlHistFactoryTask.cxx:794
 AtlHistFactoryTask.cxx:795
 AtlHistFactoryTask.cxx:796
 AtlHistFactoryTask.cxx:797
 AtlHistFactoryTask.cxx:798
 AtlHistFactoryTask.cxx:799
 AtlHistFactoryTask.cxx:800
 AtlHistFactoryTask.cxx:801
 AtlHistFactoryTask.cxx:802
 AtlHistFactoryTask.cxx:803
 AtlHistFactoryTask.cxx:804
 AtlHistFactoryTask.cxx:805
 AtlHistFactoryTask.cxx:806
 AtlHistFactoryTask.cxx:807
 AtlHistFactoryTask.cxx:808
 AtlHistFactoryTask.cxx:809
 AtlHistFactoryTask.cxx:810
 AtlHistFactoryTask.cxx:811
 AtlHistFactoryTask.cxx:812
 AtlHistFactoryTask.cxx:813
 AtlHistFactoryTask.cxx:814
 AtlHistFactoryTask.cxx:815
 AtlHistFactoryTask.cxx:816
 AtlHistFactoryTask.cxx:817
 AtlHistFactoryTask.cxx:818
 AtlHistFactoryTask.cxx:819
 AtlHistFactoryTask.cxx:820
 AtlHistFactoryTask.cxx:821
 AtlHistFactoryTask.cxx:822
 AtlHistFactoryTask.cxx:823
 AtlHistFactoryTask.cxx:824
 AtlHistFactoryTask.cxx:825
 AtlHistFactoryTask.cxx:826
 AtlHistFactoryTask.cxx:827
 AtlHistFactoryTask.cxx:828
 AtlHistFactoryTask.cxx:829
 AtlHistFactoryTask.cxx:830
 AtlHistFactoryTask.cxx:831
 AtlHistFactoryTask.cxx:832
 AtlHistFactoryTask.cxx:833
 AtlHistFactoryTask.cxx:834
 AtlHistFactoryTask.cxx:835
 AtlHistFactoryTask.cxx:836
 AtlHistFactoryTask.cxx:837
 AtlHistFactoryTask.cxx:838
 AtlHistFactoryTask.cxx:839
 AtlHistFactoryTask.cxx:840
 AtlHistFactoryTask.cxx:841
 AtlHistFactoryTask.cxx:842
 AtlHistFactoryTask.cxx:843
 AtlHistFactoryTask.cxx:844
 AtlHistFactoryTask.cxx:845
 AtlHistFactoryTask.cxx:846
 AtlHistFactoryTask.cxx:847
 AtlHistFactoryTask.cxx:848
 AtlHistFactoryTask.cxx:849
 AtlHistFactoryTask.cxx:850
 AtlHistFactoryTask.cxx:851
 AtlHistFactoryTask.cxx:852
 AtlHistFactoryTask.cxx:853
 AtlHistFactoryTask.cxx:854
 AtlHistFactoryTask.cxx:855
 AtlHistFactoryTask.cxx:856
 AtlHistFactoryTask.cxx:857
 AtlHistFactoryTask.cxx:858
 AtlHistFactoryTask.cxx:859
 AtlHistFactoryTask.cxx:860
 AtlHistFactoryTask.cxx:861
 AtlHistFactoryTask.cxx:862
 AtlHistFactoryTask.cxx:863
 AtlHistFactoryTask.cxx:864
 AtlHistFactoryTask.cxx:865
 AtlHistFactoryTask.cxx:866
 AtlHistFactoryTask.cxx:867
 AtlHistFactoryTask.cxx:868
 AtlHistFactoryTask.cxx:869
 AtlHistFactoryTask.cxx:870
 AtlHistFactoryTask.cxx:871
 AtlHistFactoryTask.cxx:872
 AtlHistFactoryTask.cxx:873
 AtlHistFactoryTask.cxx:874
 AtlHistFactoryTask.cxx:875
 AtlHistFactoryTask.cxx:876
 AtlHistFactoryTask.cxx:877
 AtlHistFactoryTask.cxx:878
 AtlHistFactoryTask.cxx:879
 AtlHistFactoryTask.cxx:880
 AtlHistFactoryTask.cxx:881
 AtlHistFactoryTask.cxx:882
 AtlHistFactoryTask.cxx:883
 AtlHistFactoryTask.cxx:884
 AtlHistFactoryTask.cxx:885
 AtlHistFactoryTask.cxx:886
 AtlHistFactoryTask.cxx:887
 AtlHistFactoryTask.cxx:888
 AtlHistFactoryTask.cxx:889
 AtlHistFactoryTask.cxx:890
 AtlHistFactoryTask.cxx:891
 AtlHistFactoryTask.cxx:892
 AtlHistFactoryTask.cxx:893
 AtlHistFactoryTask.cxx:894
 AtlHistFactoryTask.cxx:895
 AtlHistFactoryTask.cxx:896
 AtlHistFactoryTask.cxx:897
 AtlHistFactoryTask.cxx:898
 AtlHistFactoryTask.cxx:899
 AtlHistFactoryTask.cxx:900
 AtlHistFactoryTask.cxx:901
 AtlHistFactoryTask.cxx:902
 AtlHistFactoryTask.cxx:903
 AtlHistFactoryTask.cxx:904
 AtlHistFactoryTask.cxx:905
 AtlHistFactoryTask.cxx:906
 AtlHistFactoryTask.cxx:907
 AtlHistFactoryTask.cxx:908
 AtlHistFactoryTask.cxx:909
 AtlHistFactoryTask.cxx:910
 AtlHistFactoryTask.cxx:911
 AtlHistFactoryTask.cxx:912
 AtlHistFactoryTask.cxx:913
 AtlHistFactoryTask.cxx:914
 AtlHistFactoryTask.cxx:915
 AtlHistFactoryTask.cxx:916
 AtlHistFactoryTask.cxx:917
 AtlHistFactoryTask.cxx:918
 AtlHistFactoryTask.cxx:919
 AtlHistFactoryTask.cxx:920
 AtlHistFactoryTask.cxx:921
 AtlHistFactoryTask.cxx:922
 AtlHistFactoryTask.cxx:923
 AtlHistFactoryTask.cxx:924
 AtlHistFactoryTask.cxx:925
 AtlHistFactoryTask.cxx:926
 AtlHistFactoryTask.cxx:927
 AtlHistFactoryTask.cxx:928
 AtlHistFactoryTask.cxx:929
 AtlHistFactoryTask.cxx:930
 AtlHistFactoryTask.cxx:931
 AtlHistFactoryTask.cxx:932
 AtlHistFactoryTask.cxx:933
 AtlHistFactoryTask.cxx:934
 AtlHistFactoryTask.cxx:935
 AtlHistFactoryTask.cxx:936
 AtlHistFactoryTask.cxx:937
 AtlHistFactoryTask.cxx:938
 AtlHistFactoryTask.cxx:939
 AtlHistFactoryTask.cxx:940
 AtlHistFactoryTask.cxx:941
 AtlHistFactoryTask.cxx:942
 AtlHistFactoryTask.cxx:943
 AtlHistFactoryTask.cxx:944
 AtlHistFactoryTask.cxx:945
 AtlHistFactoryTask.cxx:946
 AtlHistFactoryTask.cxx:947
 AtlHistFactoryTask.cxx:948
 AtlHistFactoryTask.cxx:949
 AtlHistFactoryTask.cxx:950
 AtlHistFactoryTask.cxx:951
 AtlHistFactoryTask.cxx:952
 AtlHistFactoryTask.cxx:953
 AtlHistFactoryTask.cxx:954
 AtlHistFactoryTask.cxx:955
 AtlHistFactoryTask.cxx:956
 AtlHistFactoryTask.cxx:957
 AtlHistFactoryTask.cxx:958
 AtlHistFactoryTask.cxx:959
 AtlHistFactoryTask.cxx:960
 AtlHistFactoryTask.cxx:961
 AtlHistFactoryTask.cxx:962
 AtlHistFactoryTask.cxx:963
 AtlHistFactoryTask.cxx:964
 AtlHistFactoryTask.cxx:965
 AtlHistFactoryTask.cxx:966
 AtlHistFactoryTask.cxx:967
 AtlHistFactoryTask.cxx:968
 AtlHistFactoryTask.cxx:969
 AtlHistFactoryTask.cxx:970
 AtlHistFactoryTask.cxx:971
 AtlHistFactoryTask.cxx:972
 AtlHistFactoryTask.cxx:973
 AtlHistFactoryTask.cxx:974
 AtlHistFactoryTask.cxx:975
 AtlHistFactoryTask.cxx:976
 AtlHistFactoryTask.cxx:977
 AtlHistFactoryTask.cxx:978
 AtlHistFactoryTask.cxx:979
 AtlHistFactoryTask.cxx:980
 AtlHistFactoryTask.cxx:981
 AtlHistFactoryTask.cxx:982
 AtlHistFactoryTask.cxx:983
 AtlHistFactoryTask.cxx:984
 AtlHistFactoryTask.cxx:985
 AtlHistFactoryTask.cxx:986
 AtlHistFactoryTask.cxx:987
 AtlHistFactoryTask.cxx:988
 AtlHistFactoryTask.cxx:989
 AtlHistFactoryTask.cxx:990
 AtlHistFactoryTask.cxx:991
 AtlHistFactoryTask.cxx:992
 AtlHistFactoryTask.cxx:993
 AtlHistFactoryTask.cxx:994
 AtlHistFactoryTask.cxx:995
 AtlHistFactoryTask.cxx:996
 AtlHistFactoryTask.cxx:997
 AtlHistFactoryTask.cxx:998
 AtlHistFactoryTask.cxx:999
 AtlHistFactoryTask.cxx:1000
 AtlHistFactoryTask.cxx:1001
 AtlHistFactoryTask.cxx:1002
 AtlHistFactoryTask.cxx:1003
 AtlHistFactoryTask.cxx:1004
 AtlHistFactoryTask.cxx:1005
 AtlHistFactoryTask.cxx:1006
 AtlHistFactoryTask.cxx:1007
 AtlHistFactoryTask.cxx:1008
 AtlHistFactoryTask.cxx:1009
 AtlHistFactoryTask.cxx:1010
 AtlHistFactoryTask.cxx:1011
 AtlHistFactoryTask.cxx:1012
 AtlHistFactoryTask.cxx:1013
 AtlHistFactoryTask.cxx:1014
 AtlHistFactoryTask.cxx:1015
 AtlHistFactoryTask.cxx:1016
 AtlHistFactoryTask.cxx:1017
 AtlHistFactoryTask.cxx:1018
 AtlHistFactoryTask.cxx:1019
 AtlHistFactoryTask.cxx:1020
 AtlHistFactoryTask.cxx:1021
 AtlHistFactoryTask.cxx:1022
 AtlHistFactoryTask.cxx:1023
 AtlHistFactoryTask.cxx:1024
 AtlHistFactoryTask.cxx:1025
 AtlHistFactoryTask.cxx:1026
 AtlHistFactoryTask.cxx:1027
 AtlHistFactoryTask.cxx:1028
 AtlHistFactoryTask.cxx:1029
 AtlHistFactoryTask.cxx:1030
 AtlHistFactoryTask.cxx:1031
 AtlHistFactoryTask.cxx:1032
 AtlHistFactoryTask.cxx:1033
 AtlHistFactoryTask.cxx:1034
 AtlHistFactoryTask.cxx:1035
 AtlHistFactoryTask.cxx:1036
 AtlHistFactoryTask.cxx:1037
 AtlHistFactoryTask.cxx:1038
 AtlHistFactoryTask.cxx:1039
 AtlHistFactoryTask.cxx:1040
 AtlHistFactoryTask.cxx:1041
 AtlHistFactoryTask.cxx:1042
 AtlHistFactoryTask.cxx:1043
 AtlHistFactoryTask.cxx:1044
 AtlHistFactoryTask.cxx:1045
 AtlHistFactoryTask.cxx:1046
 AtlHistFactoryTask.cxx:1047
 AtlHistFactoryTask.cxx:1048
 AtlHistFactoryTask.cxx:1049
 AtlHistFactoryTask.cxx:1050
 AtlHistFactoryTask.cxx:1051
 AtlHistFactoryTask.cxx:1052
 AtlHistFactoryTask.cxx:1053
 AtlHistFactoryTask.cxx:1054
 AtlHistFactoryTask.cxx:1055
 AtlHistFactoryTask.cxx:1056
 AtlHistFactoryTask.cxx:1057
 AtlHistFactoryTask.cxx:1058
 AtlHistFactoryTask.cxx:1059
 AtlHistFactoryTask.cxx:1060
 AtlHistFactoryTask.cxx:1061
 AtlHistFactoryTask.cxx:1062
 AtlHistFactoryTask.cxx:1063
 AtlHistFactoryTask.cxx:1064
 AtlHistFactoryTask.cxx:1065
 AtlHistFactoryTask.cxx:1066
 AtlHistFactoryTask.cxx:1067
 AtlHistFactoryTask.cxx:1068
 AtlHistFactoryTask.cxx:1069
 AtlHistFactoryTask.cxx:1070
 AtlHistFactoryTask.cxx:1071
 AtlHistFactoryTask.cxx:1072
 AtlHistFactoryTask.cxx:1073
 AtlHistFactoryTask.cxx:1074
 AtlHistFactoryTask.cxx:1075
 AtlHistFactoryTask.cxx:1076
 AtlHistFactoryTask.cxx:1077
 AtlHistFactoryTask.cxx:1078
 AtlHistFactoryTask.cxx:1079
 AtlHistFactoryTask.cxx:1080
 AtlHistFactoryTask.cxx:1081
 AtlHistFactoryTask.cxx:1082
 AtlHistFactoryTask.cxx:1083
 AtlHistFactoryTask.cxx:1084
 AtlHistFactoryTask.cxx:1085
 AtlHistFactoryTask.cxx:1086
 AtlHistFactoryTask.cxx:1087
 AtlHistFactoryTask.cxx:1088
 AtlHistFactoryTask.cxx:1089
 AtlHistFactoryTask.cxx:1090
 AtlHistFactoryTask.cxx:1091
 AtlHistFactoryTask.cxx:1092
 AtlHistFactoryTask.cxx:1093
 AtlHistFactoryTask.cxx:1094
 AtlHistFactoryTask.cxx:1095
 AtlHistFactoryTask.cxx:1096
 AtlHistFactoryTask.cxx:1097
 AtlHistFactoryTask.cxx:1098
 AtlHistFactoryTask.cxx:1099
 AtlHistFactoryTask.cxx:1100
 AtlHistFactoryTask.cxx:1101
 AtlHistFactoryTask.cxx:1102
 AtlHistFactoryTask.cxx:1103
 AtlHistFactoryTask.cxx:1104
 AtlHistFactoryTask.cxx:1105
 AtlHistFactoryTask.cxx:1106
 AtlHistFactoryTask.cxx:1107
 AtlHistFactoryTask.cxx:1108
 AtlHistFactoryTask.cxx:1109
 AtlHistFactoryTask.cxx:1110
 AtlHistFactoryTask.cxx:1111
 AtlHistFactoryTask.cxx:1112
 AtlHistFactoryTask.cxx:1113
 AtlHistFactoryTask.cxx:1114
 AtlHistFactoryTask.cxx:1115
 AtlHistFactoryTask.cxx:1116
 AtlHistFactoryTask.cxx:1117
 AtlHistFactoryTask.cxx:1118
 AtlHistFactoryTask.cxx:1119
 AtlHistFactoryTask.cxx:1120
 AtlHistFactoryTask.cxx:1121
 AtlHistFactoryTask.cxx:1122
 AtlHistFactoryTask.cxx:1123
 AtlHistFactoryTask.cxx:1124
 AtlHistFactoryTask.cxx:1125
 AtlHistFactoryTask.cxx:1126
 AtlHistFactoryTask.cxx:1127
 AtlHistFactoryTask.cxx:1128
 AtlHistFactoryTask.cxx:1129
 AtlHistFactoryTask.cxx:1130
 AtlHistFactoryTask.cxx:1131
 AtlHistFactoryTask.cxx:1132
 AtlHistFactoryTask.cxx:1133
 AtlHistFactoryTask.cxx:1134
 AtlHistFactoryTask.cxx:1135
 AtlHistFactoryTask.cxx:1136
 AtlHistFactoryTask.cxx:1137
 AtlHistFactoryTask.cxx:1138
 AtlHistFactoryTask.cxx:1139
 AtlHistFactoryTask.cxx:1140
 AtlHistFactoryTask.cxx:1141
 AtlHistFactoryTask.cxx:1142
 AtlHistFactoryTask.cxx:1143
 AtlHistFactoryTask.cxx:1144
 AtlHistFactoryTask.cxx:1145
 AtlHistFactoryTask.cxx:1146
 AtlHistFactoryTask.cxx:1147
 AtlHistFactoryTask.cxx:1148
 AtlHistFactoryTask.cxx:1149
 AtlHistFactoryTask.cxx:1150
 AtlHistFactoryTask.cxx:1151
 AtlHistFactoryTask.cxx:1152
 AtlHistFactoryTask.cxx:1153
 AtlHistFactoryTask.cxx:1154
 AtlHistFactoryTask.cxx:1155
 AtlHistFactoryTask.cxx:1156
 AtlHistFactoryTask.cxx:1157
 AtlHistFactoryTask.cxx:1158
 AtlHistFactoryTask.cxx:1159
 AtlHistFactoryTask.cxx:1160
 AtlHistFactoryTask.cxx:1161
 AtlHistFactoryTask.cxx:1162
 AtlHistFactoryTask.cxx:1163
 AtlHistFactoryTask.cxx:1164
 AtlHistFactoryTask.cxx:1165
 AtlHistFactoryTask.cxx:1166
 AtlHistFactoryTask.cxx:1167
 AtlHistFactoryTask.cxx:1168
 AtlHistFactoryTask.cxx:1169
 AtlHistFactoryTask.cxx:1170
 AtlHistFactoryTask.cxx:1171
 AtlHistFactoryTask.cxx:1172
 AtlHistFactoryTask.cxx:1173
 AtlHistFactoryTask.cxx:1174
 AtlHistFactoryTask.cxx:1175
 AtlHistFactoryTask.cxx:1176
 AtlHistFactoryTask.cxx:1177
 AtlHistFactoryTask.cxx:1178
 AtlHistFactoryTask.cxx:1179
 AtlHistFactoryTask.cxx:1180
 AtlHistFactoryTask.cxx:1181
 AtlHistFactoryTask.cxx:1182
 AtlHistFactoryTask.cxx:1183
 AtlHistFactoryTask.cxx:1184
 AtlHistFactoryTask.cxx:1185
 AtlHistFactoryTask.cxx:1186
 AtlHistFactoryTask.cxx:1187
 AtlHistFactoryTask.cxx:1188
 AtlHistFactoryTask.cxx:1189
 AtlHistFactoryTask.cxx:1190
 AtlHistFactoryTask.cxx:1191
 AtlHistFactoryTask.cxx:1192
 AtlHistFactoryTask.cxx:1193
 AtlHistFactoryTask.cxx:1194
 AtlHistFactoryTask.cxx:1195
 AtlHistFactoryTask.cxx:1196
 AtlHistFactoryTask.cxx:1197
 AtlHistFactoryTask.cxx:1198
 AtlHistFactoryTask.cxx:1199
 AtlHistFactoryTask.cxx:1200
 AtlHistFactoryTask.cxx:1201
 AtlHistFactoryTask.cxx:1202
 AtlHistFactoryTask.cxx:1203
 AtlHistFactoryTask.cxx:1204
 AtlHistFactoryTask.cxx:1205
 AtlHistFactoryTask.cxx:1206
 AtlHistFactoryTask.cxx:1207
 AtlHistFactoryTask.cxx:1208
 AtlHistFactoryTask.cxx:1209
 AtlHistFactoryTask.cxx:1210
 AtlHistFactoryTask.cxx:1211
 AtlHistFactoryTask.cxx:1212
 AtlHistFactoryTask.cxx:1213
 AtlHistFactoryTask.cxx:1214
 AtlHistFactoryTask.cxx:1215
 AtlHistFactoryTask.cxx:1216
 AtlHistFactoryTask.cxx:1217
 AtlHistFactoryTask.cxx:1218
 AtlHistFactoryTask.cxx:1219
 AtlHistFactoryTask.cxx:1220
 AtlHistFactoryTask.cxx:1221
 AtlHistFactoryTask.cxx:1222
 AtlHistFactoryTask.cxx:1223
 AtlHistFactoryTask.cxx:1224
 AtlHistFactoryTask.cxx:1225
 AtlHistFactoryTask.cxx:1226
 AtlHistFactoryTask.cxx:1227
 AtlHistFactoryTask.cxx:1228
 AtlHistFactoryTask.cxx:1229
 AtlHistFactoryTask.cxx:1230
 AtlHistFactoryTask.cxx:1231
 AtlHistFactoryTask.cxx:1232
 AtlHistFactoryTask.cxx:1233
 AtlHistFactoryTask.cxx:1234
 AtlHistFactoryTask.cxx:1235
 AtlHistFactoryTask.cxx:1236
 AtlHistFactoryTask.cxx:1237
 AtlHistFactoryTask.cxx:1238
 AtlHistFactoryTask.cxx:1239
 AtlHistFactoryTask.cxx:1240
 AtlHistFactoryTask.cxx:1241
 AtlHistFactoryTask.cxx:1242
 AtlHistFactoryTask.cxx:1243
 AtlHistFactoryTask.cxx:1244
 AtlHistFactoryTask.cxx:1245
 AtlHistFactoryTask.cxx:1246
 AtlHistFactoryTask.cxx:1247
 AtlHistFactoryTask.cxx:1248
 AtlHistFactoryTask.cxx:1249
 AtlHistFactoryTask.cxx:1250
 AtlHistFactoryTask.cxx:1251
 AtlHistFactoryTask.cxx:1252
 AtlHistFactoryTask.cxx:1253
 AtlHistFactoryTask.cxx:1254
 AtlHistFactoryTask.cxx:1255
 AtlHistFactoryTask.cxx:1256
 AtlHistFactoryTask.cxx:1257
 AtlHistFactoryTask.cxx:1258
 AtlHistFactoryTask.cxx:1259
 AtlHistFactoryTask.cxx:1260
 AtlHistFactoryTask.cxx:1261
 AtlHistFactoryTask.cxx:1262
 AtlHistFactoryTask.cxx:1263
 AtlHistFactoryTask.cxx:1264
 AtlHistFactoryTask.cxx:1265
 AtlHistFactoryTask.cxx:1266
 AtlHistFactoryTask.cxx:1267
 AtlHistFactoryTask.cxx:1268
 AtlHistFactoryTask.cxx:1269
 AtlHistFactoryTask.cxx:1270
 AtlHistFactoryTask.cxx:1271
 AtlHistFactoryTask.cxx:1272
 AtlHistFactoryTask.cxx:1273
 AtlHistFactoryTask.cxx:1274
 AtlHistFactoryTask.cxx:1275
 AtlHistFactoryTask.cxx:1276
 AtlHistFactoryTask.cxx:1277
 AtlHistFactoryTask.cxx:1278
 AtlHistFactoryTask.cxx:1279
 AtlHistFactoryTask.cxx:1280
 AtlHistFactoryTask.cxx:1281
 AtlHistFactoryTask.cxx:1282
 AtlHistFactoryTask.cxx:1283
 AtlHistFactoryTask.cxx:1284
 AtlHistFactoryTask.cxx:1285
 AtlHistFactoryTask.cxx:1286
 AtlHistFactoryTask.cxx:1287
 AtlHistFactoryTask.cxx:1288
 AtlHistFactoryTask.cxx:1289
 AtlHistFactoryTask.cxx:1290
 AtlHistFactoryTask.cxx:1291
 AtlHistFactoryTask.cxx:1292
 AtlHistFactoryTask.cxx:1293
 AtlHistFactoryTask.cxx:1294
 AtlHistFactoryTask.cxx:1295
 AtlHistFactoryTask.cxx:1296
 AtlHistFactoryTask.cxx:1297
 AtlHistFactoryTask.cxx:1298
 AtlHistFactoryTask.cxx:1299
 AtlHistFactoryTask.cxx:1300
 AtlHistFactoryTask.cxx:1301
 AtlHistFactoryTask.cxx:1302
 AtlHistFactoryTask.cxx:1303
 AtlHistFactoryTask.cxx:1304
 AtlHistFactoryTask.cxx:1305
 AtlHistFactoryTask.cxx:1306
 AtlHistFactoryTask.cxx:1307
 AtlHistFactoryTask.cxx:1308
 AtlHistFactoryTask.cxx:1309
 AtlHistFactoryTask.cxx:1310
 AtlHistFactoryTask.cxx:1311
 AtlHistFactoryTask.cxx:1312
 AtlHistFactoryTask.cxx:1313
 AtlHistFactoryTask.cxx:1314
 AtlHistFactoryTask.cxx:1315
 AtlHistFactoryTask.cxx:1316
 AtlHistFactoryTask.cxx:1317
 AtlHistFactoryTask.cxx:1318
 AtlHistFactoryTask.cxx:1319
 AtlHistFactoryTask.cxx:1320
 AtlHistFactoryTask.cxx:1321
 AtlHistFactoryTask.cxx:1322
 AtlHistFactoryTask.cxx:1323
 AtlHistFactoryTask.cxx:1324
 AtlHistFactoryTask.cxx:1325
 AtlHistFactoryTask.cxx:1326
 AtlHistFactoryTask.cxx:1327
 AtlHistFactoryTask.cxx:1328
 AtlHistFactoryTask.cxx:1329
 AtlHistFactoryTask.cxx:1330
 AtlHistFactoryTask.cxx:1331
 AtlHistFactoryTask.cxx:1332
 AtlHistFactoryTask.cxx:1333
 AtlHistFactoryTask.cxx:1334
 AtlHistFactoryTask.cxx:1335
 AtlHistFactoryTask.cxx:1336
 AtlHistFactoryTask.cxx:1337
 AtlHistFactoryTask.cxx:1338
 AtlHistFactoryTask.cxx:1339
 AtlHistFactoryTask.cxx:1340
 AtlHistFactoryTask.cxx:1341
 AtlHistFactoryTask.cxx:1342
 AtlHistFactoryTask.cxx:1343
 AtlHistFactoryTask.cxx:1344
 AtlHistFactoryTask.cxx:1345
 AtlHistFactoryTask.cxx:1346
 AtlHistFactoryTask.cxx:1347
 AtlHistFactoryTask.cxx:1348
 AtlHistFactoryTask.cxx:1349
 AtlHistFactoryTask.cxx:1350
 AtlHistFactoryTask.cxx:1351
 AtlHistFactoryTask.cxx:1352
 AtlHistFactoryTask.cxx:1353
 AtlHistFactoryTask.cxx:1354
 AtlHistFactoryTask.cxx:1355
 AtlHistFactoryTask.cxx:1356
 AtlHistFactoryTask.cxx:1357
 AtlHistFactoryTask.cxx:1358
 AtlHistFactoryTask.cxx:1359
 AtlHistFactoryTask.cxx:1360
 AtlHistFactoryTask.cxx:1361
 AtlHistFactoryTask.cxx:1362
 AtlHistFactoryTask.cxx:1363
 AtlHistFactoryTask.cxx:1364
 AtlHistFactoryTask.cxx:1365
 AtlHistFactoryTask.cxx:1366
 AtlHistFactoryTask.cxx:1367
 AtlHistFactoryTask.cxx:1368
 AtlHistFactoryTask.cxx:1369
 AtlHistFactoryTask.cxx:1370
 AtlHistFactoryTask.cxx:1371
 AtlHistFactoryTask.cxx:1372
 AtlHistFactoryTask.cxx:1373
 AtlHistFactoryTask.cxx:1374
 AtlHistFactoryTask.cxx:1375
 AtlHistFactoryTask.cxx:1376
 AtlHistFactoryTask.cxx:1377
 AtlHistFactoryTask.cxx:1378
 AtlHistFactoryTask.cxx:1379
 AtlHistFactoryTask.cxx:1380
 AtlHistFactoryTask.cxx:1381
 AtlHistFactoryTask.cxx:1382
 AtlHistFactoryTask.cxx:1383
 AtlHistFactoryTask.cxx:1384
 AtlHistFactoryTask.cxx:1385
 AtlHistFactoryTask.cxx:1386
 AtlHistFactoryTask.cxx:1387
 AtlHistFactoryTask.cxx:1388
 AtlHistFactoryTask.cxx:1389
 AtlHistFactoryTask.cxx:1390
 AtlHistFactoryTask.cxx:1391
 AtlHistFactoryTask.cxx:1392
 AtlHistFactoryTask.cxx:1393
 AtlHistFactoryTask.cxx:1394
 AtlHistFactoryTask.cxx:1395
 AtlHistFactoryTask.cxx:1396
 AtlHistFactoryTask.cxx:1397
 AtlHistFactoryTask.cxx:1398
 AtlHistFactoryTask.cxx:1399
 AtlHistFactoryTask.cxx:1400
 AtlHistFactoryTask.cxx:1401
 AtlHistFactoryTask.cxx:1402
 AtlHistFactoryTask.cxx:1403
 AtlHistFactoryTask.cxx:1404
 AtlHistFactoryTask.cxx:1405
 AtlHistFactoryTask.cxx:1406
 AtlHistFactoryTask.cxx:1407
 AtlHistFactoryTask.cxx:1408
 AtlHistFactoryTask.cxx:1409
 AtlHistFactoryTask.cxx:1410
 AtlHistFactoryTask.cxx:1411
 AtlHistFactoryTask.cxx:1412
 AtlHistFactoryTask.cxx:1413
 AtlHistFactoryTask.cxx:1414
 AtlHistFactoryTask.cxx:1415
 AtlHistFactoryTask.cxx:1416
 AtlHistFactoryTask.cxx:1417
 AtlHistFactoryTask.cxx:1418
 AtlHistFactoryTask.cxx:1419
 AtlHistFactoryTask.cxx:1420
 AtlHistFactoryTask.cxx:1421
 AtlHistFactoryTask.cxx:1422
 AtlHistFactoryTask.cxx:1423
 AtlHistFactoryTask.cxx:1424
 AtlHistFactoryTask.cxx:1425
 AtlHistFactoryTask.cxx:1426
 AtlHistFactoryTask.cxx:1427
 AtlHistFactoryTask.cxx:1428
 AtlHistFactoryTask.cxx:1429
 AtlHistFactoryTask.cxx:1430
 AtlHistFactoryTask.cxx:1431
 AtlHistFactoryTask.cxx:1432
 AtlHistFactoryTask.cxx:1433
 AtlHistFactoryTask.cxx:1434
 AtlHistFactoryTask.cxx:1435
 AtlHistFactoryTask.cxx:1436
 AtlHistFactoryTask.cxx:1437
 AtlHistFactoryTask.cxx:1438
 AtlHistFactoryTask.cxx:1439
 AtlHistFactoryTask.cxx:1440
 AtlHistFactoryTask.cxx:1441
 AtlHistFactoryTask.cxx:1442
 AtlHistFactoryTask.cxx:1443
 AtlHistFactoryTask.cxx:1444
 AtlHistFactoryTask.cxx:1445
 AtlHistFactoryTask.cxx:1446
 AtlHistFactoryTask.cxx:1447
 AtlHistFactoryTask.cxx:1448
 AtlHistFactoryTask.cxx:1449
 AtlHistFactoryTask.cxx:1450
 AtlHistFactoryTask.cxx:1451
 AtlHistFactoryTask.cxx:1452
 AtlHistFactoryTask.cxx:1453
 AtlHistFactoryTask.cxx:1454
 AtlHistFactoryTask.cxx:1455
 AtlHistFactoryTask.cxx:1456
 AtlHistFactoryTask.cxx:1457
 AtlHistFactoryTask.cxx:1458
 AtlHistFactoryTask.cxx:1459
 AtlHistFactoryTask.cxx:1460
 AtlHistFactoryTask.cxx:1461
 AtlHistFactoryTask.cxx:1462
 AtlHistFactoryTask.cxx:1463
 AtlHistFactoryTask.cxx:1464
 AtlHistFactoryTask.cxx:1465
 AtlHistFactoryTask.cxx:1466
 AtlHistFactoryTask.cxx:1467
 AtlHistFactoryTask.cxx:1468
 AtlHistFactoryTask.cxx:1469
 AtlHistFactoryTask.cxx:1470
 AtlHistFactoryTask.cxx:1471
 AtlHistFactoryTask.cxx:1472
 AtlHistFactoryTask.cxx:1473
 AtlHistFactoryTask.cxx:1474
 AtlHistFactoryTask.cxx:1475
 AtlHistFactoryTask.cxx:1476
 AtlHistFactoryTask.cxx:1477
 AtlHistFactoryTask.cxx:1478
 AtlHistFactoryTask.cxx:1479
 AtlHistFactoryTask.cxx:1480
 AtlHistFactoryTask.cxx:1481
 AtlHistFactoryTask.cxx:1482
 AtlHistFactoryTask.cxx:1483
 AtlHistFactoryTask.cxx:1484
 AtlHistFactoryTask.cxx:1485
 AtlHistFactoryTask.cxx:1486
 AtlHistFactoryTask.cxx:1487
 AtlHistFactoryTask.cxx:1488
 AtlHistFactoryTask.cxx:1489
 AtlHistFactoryTask.cxx:1490
 AtlHistFactoryTask.cxx:1491
 AtlHistFactoryTask.cxx:1492
 AtlHistFactoryTask.cxx:1493
 AtlHistFactoryTask.cxx:1494
 AtlHistFactoryTask.cxx:1495
 AtlHistFactoryTask.cxx:1496
 AtlHistFactoryTask.cxx:1497
 AtlHistFactoryTask.cxx:1498
 AtlHistFactoryTask.cxx:1499
 AtlHistFactoryTask.cxx:1500
 AtlHistFactoryTask.cxx:1501
 AtlHistFactoryTask.cxx:1502
 AtlHistFactoryTask.cxx:1503
 AtlHistFactoryTask.cxx:1504
 AtlHistFactoryTask.cxx:1505
 AtlHistFactoryTask.cxx:1506
 AtlHistFactoryTask.cxx:1507
 AtlHistFactoryTask.cxx:1508
 AtlHistFactoryTask.cxx:1509
 AtlHistFactoryTask.cxx:1510
 AtlHistFactoryTask.cxx:1511
 AtlHistFactoryTask.cxx:1512
 AtlHistFactoryTask.cxx:1513
 AtlHistFactoryTask.cxx:1514
 AtlHistFactoryTask.cxx:1515
 AtlHistFactoryTask.cxx:1516
 AtlHistFactoryTask.cxx:1517
 AtlHistFactoryTask.cxx:1518
 AtlHistFactoryTask.cxx:1519
 AtlHistFactoryTask.cxx:1520
 AtlHistFactoryTask.cxx:1521
 AtlHistFactoryTask.cxx:1522
 AtlHistFactoryTask.cxx:1523
 AtlHistFactoryTask.cxx:1524
 AtlHistFactoryTask.cxx:1525
 AtlHistFactoryTask.cxx:1526
 AtlHistFactoryTask.cxx:1527
 AtlHistFactoryTask.cxx:1528
 AtlHistFactoryTask.cxx:1529
 AtlHistFactoryTask.cxx:1530
 AtlHistFactoryTask.cxx:1531
 AtlHistFactoryTask.cxx:1532
 AtlHistFactoryTask.cxx:1533
 AtlHistFactoryTask.cxx:1534
 AtlHistFactoryTask.cxx:1535
 AtlHistFactoryTask.cxx:1536
 AtlHistFactoryTask.cxx:1537
 AtlHistFactoryTask.cxx:1538
 AtlHistFactoryTask.cxx:1539
 AtlHistFactoryTask.cxx:1540
 AtlHistFactoryTask.cxx:1541
 AtlHistFactoryTask.cxx:1542
 AtlHistFactoryTask.cxx:1543
 AtlHistFactoryTask.cxx:1544
 AtlHistFactoryTask.cxx:1545
 AtlHistFactoryTask.cxx:1546
 AtlHistFactoryTask.cxx:1547
 AtlHistFactoryTask.cxx:1548
 AtlHistFactoryTask.cxx:1549
 AtlHistFactoryTask.cxx:1550
 AtlHistFactoryTask.cxx:1551
 AtlHistFactoryTask.cxx:1552
 AtlHistFactoryTask.cxx:1553
 AtlHistFactoryTask.cxx:1554
 AtlHistFactoryTask.cxx:1555
 AtlHistFactoryTask.cxx:1556
 AtlHistFactoryTask.cxx:1557
 AtlHistFactoryTask.cxx:1558
 AtlHistFactoryTask.cxx:1559
 AtlHistFactoryTask.cxx:1560
 AtlHistFactoryTask.cxx:1561
 AtlHistFactoryTask.cxx:1562
 AtlHistFactoryTask.cxx:1563
 AtlHistFactoryTask.cxx:1564
 AtlHistFactoryTask.cxx:1565
 AtlHistFactoryTask.cxx:1566
 AtlHistFactoryTask.cxx:1567
 AtlHistFactoryTask.cxx:1568
 AtlHistFactoryTask.cxx:1569
 AtlHistFactoryTask.cxx:1570
 AtlHistFactoryTask.cxx:1571
 AtlHistFactoryTask.cxx:1572
 AtlHistFactoryTask.cxx:1573
 AtlHistFactoryTask.cxx:1574
 AtlHistFactoryTask.cxx:1575
 AtlHistFactoryTask.cxx:1576
 AtlHistFactoryTask.cxx:1577
 AtlHistFactoryTask.cxx:1578
 AtlHistFactoryTask.cxx:1579
 AtlHistFactoryTask.cxx:1580
 AtlHistFactoryTask.cxx:1581
 AtlHistFactoryTask.cxx:1582
 AtlHistFactoryTask.cxx:1583
 AtlHistFactoryTask.cxx:1584
 AtlHistFactoryTask.cxx:1585
 AtlHistFactoryTask.cxx:1586
 AtlHistFactoryTask.cxx:1587
 AtlHistFactoryTask.cxx:1588
 AtlHistFactoryTask.cxx:1589
 AtlHistFactoryTask.cxx:1590
 AtlHistFactoryTask.cxx:1591
 AtlHistFactoryTask.cxx:1592
 AtlHistFactoryTask.cxx:1593
 AtlHistFactoryTask.cxx:1594
 AtlHistFactoryTask.cxx:1595
 AtlHistFactoryTask.cxx:1596
 AtlHistFactoryTask.cxx:1597
 AtlHistFactoryTask.cxx:1598
 AtlHistFactoryTask.cxx:1599
 AtlHistFactoryTask.cxx:1600
 AtlHistFactoryTask.cxx:1601
 AtlHistFactoryTask.cxx:1602
 AtlHistFactoryTask.cxx:1603
 AtlHistFactoryTask.cxx:1604
 AtlHistFactoryTask.cxx:1605
 AtlHistFactoryTask.cxx:1606
 AtlHistFactoryTask.cxx:1607
 AtlHistFactoryTask.cxx:1608
 AtlHistFactoryTask.cxx:1609
 AtlHistFactoryTask.cxx:1610
 AtlHistFactoryTask.cxx:1611
 AtlHistFactoryTask.cxx:1612
 AtlHistFactoryTask.cxx:1613
 AtlHistFactoryTask.cxx:1614
 AtlHistFactoryTask.cxx:1615
 AtlHistFactoryTask.cxx:1616
 AtlHistFactoryTask.cxx:1617
 AtlHistFactoryTask.cxx:1618
 AtlHistFactoryTask.cxx:1619
 AtlHistFactoryTask.cxx:1620
 AtlHistFactoryTask.cxx:1621
 AtlHistFactoryTask.cxx:1622
 AtlHistFactoryTask.cxx:1623
 AtlHistFactoryTask.cxx:1624
 AtlHistFactoryTask.cxx:1625
 AtlHistFactoryTask.cxx:1626
 AtlHistFactoryTask.cxx:1627
 AtlHistFactoryTask.cxx:1628
 AtlHistFactoryTask.cxx:1629
 AtlHistFactoryTask.cxx:1630
 AtlHistFactoryTask.cxx:1631
 AtlHistFactoryTask.cxx:1632
 AtlHistFactoryTask.cxx:1633
 AtlHistFactoryTask.cxx:1634
 AtlHistFactoryTask.cxx:1635
 AtlHistFactoryTask.cxx:1636
 AtlHistFactoryTask.cxx:1637
 AtlHistFactoryTask.cxx:1638
 AtlHistFactoryTask.cxx:1639
 AtlHistFactoryTask.cxx:1640
 AtlHistFactoryTask.cxx:1641
 AtlHistFactoryTask.cxx:1642
 AtlHistFactoryTask.cxx:1643
 AtlHistFactoryTask.cxx:1644
 AtlHistFactoryTask.cxx:1645
 AtlHistFactoryTask.cxx:1646
 AtlHistFactoryTask.cxx:1647
 AtlHistFactoryTask.cxx:1648
 AtlHistFactoryTask.cxx:1649
 AtlHistFactoryTask.cxx:1650
 AtlHistFactoryTask.cxx:1651
 AtlHistFactoryTask.cxx:1652
 AtlHistFactoryTask.cxx:1653
 AtlHistFactoryTask.cxx:1654
 AtlHistFactoryTask.cxx:1655
 AtlHistFactoryTask.cxx:1656
 AtlHistFactoryTask.cxx:1657
 AtlHistFactoryTask.cxx:1658
 AtlHistFactoryTask.cxx:1659
 AtlHistFactoryTask.cxx:1660
 AtlHistFactoryTask.cxx:1661
 AtlHistFactoryTask.cxx:1662
 AtlHistFactoryTask.cxx:1663
 AtlHistFactoryTask.cxx:1664
 AtlHistFactoryTask.cxx:1665
 AtlHistFactoryTask.cxx:1666
 AtlHistFactoryTask.cxx:1667
 AtlHistFactoryTask.cxx:1668
 AtlHistFactoryTask.cxx:1669
 AtlHistFactoryTask.cxx:1670
 AtlHistFactoryTask.cxx:1671
 AtlHistFactoryTask.cxx:1672
 AtlHistFactoryTask.cxx:1673
 AtlHistFactoryTask.cxx:1674
 AtlHistFactoryTask.cxx:1675
 AtlHistFactoryTask.cxx:1676
 AtlHistFactoryTask.cxx:1677
 AtlHistFactoryTask.cxx:1678
 AtlHistFactoryTask.cxx:1679
 AtlHistFactoryTask.cxx:1680
 AtlHistFactoryTask.cxx:1681
 AtlHistFactoryTask.cxx:1682
 AtlHistFactoryTask.cxx:1683
 AtlHistFactoryTask.cxx:1684
 AtlHistFactoryTask.cxx:1685
 AtlHistFactoryTask.cxx:1686
 AtlHistFactoryTask.cxx:1687
 AtlHistFactoryTask.cxx:1688
 AtlHistFactoryTask.cxx:1689
 AtlHistFactoryTask.cxx:1690
 AtlHistFactoryTask.cxx:1691
 AtlHistFactoryTask.cxx:1692
 AtlHistFactoryTask.cxx:1693
 AtlHistFactoryTask.cxx:1694
 AtlHistFactoryTask.cxx:1695
 AtlHistFactoryTask.cxx:1696
 AtlHistFactoryTask.cxx:1697
 AtlHistFactoryTask.cxx:1698
 AtlHistFactoryTask.cxx:1699
 AtlHistFactoryTask.cxx:1700
 AtlHistFactoryTask.cxx:1701
 AtlHistFactoryTask.cxx:1702
 AtlHistFactoryTask.cxx:1703
 AtlHistFactoryTask.cxx:1704
 AtlHistFactoryTask.cxx:1705
 AtlHistFactoryTask.cxx:1706
 AtlHistFactoryTask.cxx:1707
 AtlHistFactoryTask.cxx:1708
 AtlHistFactoryTask.cxx:1709
 AtlHistFactoryTask.cxx:1710
 AtlHistFactoryTask.cxx:1711
 AtlHistFactoryTask.cxx:1712
 AtlHistFactoryTask.cxx:1713
 AtlHistFactoryTask.cxx:1714
 AtlHistFactoryTask.cxx:1715
 AtlHistFactoryTask.cxx:1716
 AtlHistFactoryTask.cxx:1717
 AtlHistFactoryTask.cxx:1718
 AtlHistFactoryTask.cxx:1719
 AtlHistFactoryTask.cxx:1720
 AtlHistFactoryTask.cxx:1721
 AtlHistFactoryTask.cxx:1722
 AtlHistFactoryTask.cxx:1723
 AtlHistFactoryTask.cxx:1724
 AtlHistFactoryTask.cxx:1725
 AtlHistFactoryTask.cxx:1726
 AtlHistFactoryTask.cxx:1727
 AtlHistFactoryTask.cxx:1728
 AtlHistFactoryTask.cxx:1729
 AtlHistFactoryTask.cxx:1730
 AtlHistFactoryTask.cxx:1731
 AtlHistFactoryTask.cxx:1732
 AtlHistFactoryTask.cxx:1733
 AtlHistFactoryTask.cxx:1734
 AtlHistFactoryTask.cxx:1735
 AtlHistFactoryTask.cxx:1736
 AtlHistFactoryTask.cxx:1737
 AtlHistFactoryTask.cxx:1738
 AtlHistFactoryTask.cxx:1739
 AtlHistFactoryTask.cxx:1740
 AtlHistFactoryTask.cxx:1741
 AtlHistFactoryTask.cxx:1742
 AtlHistFactoryTask.cxx:1743
 AtlHistFactoryTask.cxx:1744
 AtlHistFactoryTask.cxx:1745
 AtlHistFactoryTask.cxx:1746
 AtlHistFactoryTask.cxx:1747
 AtlHistFactoryTask.cxx:1748
 AtlHistFactoryTask.cxx:1749
 AtlHistFactoryTask.cxx:1750
 AtlHistFactoryTask.cxx:1751
 AtlHistFactoryTask.cxx:1752
 AtlHistFactoryTask.cxx:1753
 AtlHistFactoryTask.cxx:1754
 AtlHistFactoryTask.cxx:1755
 AtlHistFactoryTask.cxx:1756
 AtlHistFactoryTask.cxx:1757
 AtlHistFactoryTask.cxx:1758
 AtlHistFactoryTask.cxx:1759
 AtlHistFactoryTask.cxx:1760
 AtlHistFactoryTask.cxx:1761
 AtlHistFactoryTask.cxx:1762
 AtlHistFactoryTask.cxx:1763
 AtlHistFactoryTask.cxx:1764
 AtlHistFactoryTask.cxx:1765
 AtlHistFactoryTask.cxx:1766
 AtlHistFactoryTask.cxx:1767
 AtlHistFactoryTask.cxx:1768
 AtlHistFactoryTask.cxx:1769
 AtlHistFactoryTask.cxx:1770
 AtlHistFactoryTask.cxx:1771
 AtlHistFactoryTask.cxx:1772
 AtlHistFactoryTask.cxx:1773
 AtlHistFactoryTask.cxx:1774
 AtlHistFactoryTask.cxx:1775
 AtlHistFactoryTask.cxx:1776
 AtlHistFactoryTask.cxx:1777
 AtlHistFactoryTask.cxx:1778
 AtlHistFactoryTask.cxx:1779
 AtlHistFactoryTask.cxx:1780
 AtlHistFactoryTask.cxx:1781
 AtlHistFactoryTask.cxx:1782
 AtlHistFactoryTask.cxx:1783
 AtlHistFactoryTask.cxx:1784
 AtlHistFactoryTask.cxx:1785
 AtlHistFactoryTask.cxx:1786
 AtlHistFactoryTask.cxx:1787
 AtlHistFactoryTask.cxx:1788
 AtlHistFactoryTask.cxx:1789
 AtlHistFactoryTask.cxx:1790
 AtlHistFactoryTask.cxx:1791
 AtlHistFactoryTask.cxx:1792
 AtlHistFactoryTask.cxx:1793
 AtlHistFactoryTask.cxx:1794
 AtlHistFactoryTask.cxx:1795
 AtlHistFactoryTask.cxx:1796
 AtlHistFactoryTask.cxx:1797
 AtlHistFactoryTask.cxx:1798
 AtlHistFactoryTask.cxx:1799
 AtlHistFactoryTask.cxx:1800
 AtlHistFactoryTask.cxx:1801
 AtlHistFactoryTask.cxx:1802
 AtlHistFactoryTask.cxx:1803
 AtlHistFactoryTask.cxx:1804
 AtlHistFactoryTask.cxx:1805
 AtlHistFactoryTask.cxx:1806
 AtlHistFactoryTask.cxx:1807
 AtlHistFactoryTask.cxx:1808
 AtlHistFactoryTask.cxx:1809
 AtlHistFactoryTask.cxx:1810
 AtlHistFactoryTask.cxx:1811
 AtlHistFactoryTask.cxx:1812
 AtlHistFactoryTask.cxx:1813
 AtlHistFactoryTask.cxx:1814
 AtlHistFactoryTask.cxx:1815
 AtlHistFactoryTask.cxx:1816
 AtlHistFactoryTask.cxx:1817
 AtlHistFactoryTask.cxx:1818
 AtlHistFactoryTask.cxx:1819
 AtlHistFactoryTask.cxx:1820
 AtlHistFactoryTask.cxx:1821
 AtlHistFactoryTask.cxx:1822
 AtlHistFactoryTask.cxx:1823
 AtlHistFactoryTask.cxx:1824
 AtlHistFactoryTask.cxx:1825
 AtlHistFactoryTask.cxx:1826
 AtlHistFactoryTask.cxx:1827
 AtlHistFactoryTask.cxx:1828
 AtlHistFactoryTask.cxx:1829
 AtlHistFactoryTask.cxx:1830
 AtlHistFactoryTask.cxx:1831
 AtlHistFactoryTask.cxx:1832
 AtlHistFactoryTask.cxx:1833
 AtlHistFactoryTask.cxx:1834
 AtlHistFactoryTask.cxx:1835
 AtlHistFactoryTask.cxx:1836
 AtlHistFactoryTask.cxx:1837
 AtlHistFactoryTask.cxx:1838
 AtlHistFactoryTask.cxx:1839
 AtlHistFactoryTask.cxx:1840
 AtlHistFactoryTask.cxx:1841
 AtlHistFactoryTask.cxx:1842
 AtlHistFactoryTask.cxx:1843
 AtlHistFactoryTask.cxx:1844
 AtlHistFactoryTask.cxx:1845
 AtlHistFactoryTask.cxx:1846
 AtlHistFactoryTask.cxx:1847
 AtlHistFactoryTask.cxx:1848
 AtlHistFactoryTask.cxx:1849
 AtlHistFactoryTask.cxx:1850
 AtlHistFactoryTask.cxx:1851
 AtlHistFactoryTask.cxx:1852
 AtlHistFactoryTask.cxx:1853
 AtlHistFactoryTask.cxx:1854
 AtlHistFactoryTask.cxx:1855
 AtlHistFactoryTask.cxx:1856
 AtlHistFactoryTask.cxx:1857
 AtlHistFactoryTask.cxx:1858
 AtlHistFactoryTask.cxx:1859
 AtlHistFactoryTask.cxx:1860
 AtlHistFactoryTask.cxx:1861
 AtlHistFactoryTask.cxx:1862
 AtlHistFactoryTask.cxx:1863
 AtlHistFactoryTask.cxx:1864
 AtlHistFactoryTask.cxx:1865
 AtlHistFactoryTask.cxx:1866
 AtlHistFactoryTask.cxx:1867
 AtlHistFactoryTask.cxx:1868
 AtlHistFactoryTask.cxx:1869
 AtlHistFactoryTask.cxx:1870
 AtlHistFactoryTask.cxx:1871
 AtlHistFactoryTask.cxx:1872
 AtlHistFactoryTask.cxx:1873
 AtlHistFactoryTask.cxx:1874
 AtlHistFactoryTask.cxx:1875
 AtlHistFactoryTask.cxx:1876
 AtlHistFactoryTask.cxx:1877
 AtlHistFactoryTask.cxx:1878
 AtlHistFactoryTask.cxx:1879
 AtlHistFactoryTask.cxx:1880
 AtlHistFactoryTask.cxx:1881
 AtlHistFactoryTask.cxx:1882
 AtlHistFactoryTask.cxx:1883
 AtlHistFactoryTask.cxx:1884
 AtlHistFactoryTask.cxx:1885
 AtlHistFactoryTask.cxx:1886
 AtlHistFactoryTask.cxx:1887
 AtlHistFactoryTask.cxx:1888
 AtlHistFactoryTask.cxx:1889
 AtlHistFactoryTask.cxx:1890
 AtlHistFactoryTask.cxx:1891
 AtlHistFactoryTask.cxx:1892
 AtlHistFactoryTask.cxx:1893
 AtlHistFactoryTask.cxx:1894
 AtlHistFactoryTask.cxx:1895
 AtlHistFactoryTask.cxx:1896
 AtlHistFactoryTask.cxx:1897
 AtlHistFactoryTask.cxx:1898
 AtlHistFactoryTask.cxx:1899
 AtlHistFactoryTask.cxx:1900
 AtlHistFactoryTask.cxx:1901
 AtlHistFactoryTask.cxx:1902
 AtlHistFactoryTask.cxx:1903
 AtlHistFactoryTask.cxx:1904
 AtlHistFactoryTask.cxx:1905
 AtlHistFactoryTask.cxx:1906
 AtlHistFactoryTask.cxx:1907
 AtlHistFactoryTask.cxx:1908
 AtlHistFactoryTask.cxx:1909
 AtlHistFactoryTask.cxx:1910
 AtlHistFactoryTask.cxx:1911
 AtlHistFactoryTask.cxx:1912
 AtlHistFactoryTask.cxx:1913
 AtlHistFactoryTask.cxx:1914
 AtlHistFactoryTask.cxx:1915
 AtlHistFactoryTask.cxx:1916
 AtlHistFactoryTask.cxx:1917
 AtlHistFactoryTask.cxx:1918
 AtlHistFactoryTask.cxx:1919
 AtlHistFactoryTask.cxx:1920
 AtlHistFactoryTask.cxx:1921
 AtlHistFactoryTask.cxx:1922
 AtlHistFactoryTask.cxx:1923
 AtlHistFactoryTask.cxx:1924
 AtlHistFactoryTask.cxx:1925
 AtlHistFactoryTask.cxx:1926
 AtlHistFactoryTask.cxx:1927
 AtlHistFactoryTask.cxx:1928
 AtlHistFactoryTask.cxx:1929
 AtlHistFactoryTask.cxx:1930
 AtlHistFactoryTask.cxx:1931
 AtlHistFactoryTask.cxx:1932
 AtlHistFactoryTask.cxx:1933
 AtlHistFactoryTask.cxx:1934
 AtlHistFactoryTask.cxx:1935
 AtlHistFactoryTask.cxx:1936
 AtlHistFactoryTask.cxx:1937
 AtlHistFactoryTask.cxx:1938
 AtlHistFactoryTask.cxx:1939
 AtlHistFactoryTask.cxx:1940
 AtlHistFactoryTask.cxx:1941
 AtlHistFactoryTask.cxx:1942
 AtlHistFactoryTask.cxx:1943
 AtlHistFactoryTask.cxx:1944
 AtlHistFactoryTask.cxx:1945
 AtlHistFactoryTask.cxx:1946
 AtlHistFactoryTask.cxx:1947
 AtlHistFactoryTask.cxx:1948
 AtlHistFactoryTask.cxx:1949
 AtlHistFactoryTask.cxx:1950
 AtlHistFactoryTask.cxx:1951
 AtlHistFactoryTask.cxx:1952
 AtlHistFactoryTask.cxx:1953
 AtlHistFactoryTask.cxx:1954
 AtlHistFactoryTask.cxx:1955
 AtlHistFactoryTask.cxx:1956
 AtlHistFactoryTask.cxx:1957
 AtlHistFactoryTask.cxx:1958
 AtlHistFactoryTask.cxx:1959
 AtlHistFactoryTask.cxx:1960
 AtlHistFactoryTask.cxx:1961
 AtlHistFactoryTask.cxx:1962
 AtlHistFactoryTask.cxx:1963
 AtlHistFactoryTask.cxx:1964
 AtlHistFactoryTask.cxx:1965
 AtlHistFactoryTask.cxx:1966
 AtlHistFactoryTask.cxx:1967
 AtlHistFactoryTask.cxx:1968
 AtlHistFactoryTask.cxx:1969
 AtlHistFactoryTask.cxx:1970
 AtlHistFactoryTask.cxx:1971
 AtlHistFactoryTask.cxx:1972
 AtlHistFactoryTask.cxx:1973
 AtlHistFactoryTask.cxx:1974
 AtlHistFactoryTask.cxx:1975
 AtlHistFactoryTask.cxx:1976
 AtlHistFactoryTask.cxx:1977
 AtlHistFactoryTask.cxx:1978
 AtlHistFactoryTask.cxx:1979
 AtlHistFactoryTask.cxx:1980
 AtlHistFactoryTask.cxx:1981
 AtlHistFactoryTask.cxx:1982
 AtlHistFactoryTask.cxx:1983
 AtlHistFactoryTask.cxx:1984
 AtlHistFactoryTask.cxx:1985
 AtlHistFactoryTask.cxx:1986
 AtlHistFactoryTask.cxx:1987
 AtlHistFactoryTask.cxx:1988
 AtlHistFactoryTask.cxx:1989
 AtlHistFactoryTask.cxx:1990
 AtlHistFactoryTask.cxx:1991
 AtlHistFactoryTask.cxx:1992
 AtlHistFactoryTask.cxx:1993
 AtlHistFactoryTask.cxx:1994
 AtlHistFactoryTask.cxx:1995
 AtlHistFactoryTask.cxx:1996
 AtlHistFactoryTask.cxx:1997
 AtlHistFactoryTask.cxx:1998
 AtlHistFactoryTask.cxx:1999
 AtlHistFactoryTask.cxx:2000
 AtlHistFactoryTask.cxx:2001
 AtlHistFactoryTask.cxx:2002
 AtlHistFactoryTask.cxx:2003
 AtlHistFactoryTask.cxx:2004
 AtlHistFactoryTask.cxx:2005
 AtlHistFactoryTask.cxx:2006
 AtlHistFactoryTask.cxx:2007
 AtlHistFactoryTask.cxx:2008
 AtlHistFactoryTask.cxx:2009
 AtlHistFactoryTask.cxx:2010
 AtlHistFactoryTask.cxx:2011
 AtlHistFactoryTask.cxx:2012
 AtlHistFactoryTask.cxx:2013
 AtlHistFactoryTask.cxx:2014
 AtlHistFactoryTask.cxx:2015
 AtlHistFactoryTask.cxx:2016
 AtlHistFactoryTask.cxx:2017
 AtlHistFactoryTask.cxx:2018
 AtlHistFactoryTask.cxx:2019
 AtlHistFactoryTask.cxx:2020
 AtlHistFactoryTask.cxx:2021
 AtlHistFactoryTask.cxx:2022
 AtlHistFactoryTask.cxx:2023
 AtlHistFactoryTask.cxx:2024
 AtlHistFactoryTask.cxx:2025
 AtlHistFactoryTask.cxx:2026
 AtlHistFactoryTask.cxx:2027
 AtlHistFactoryTask.cxx:2028
 AtlHistFactoryTask.cxx:2029
 AtlHistFactoryTask.cxx:2030
 AtlHistFactoryTask.cxx:2031
 AtlHistFactoryTask.cxx:2032
 AtlHistFactoryTask.cxx:2033
 AtlHistFactoryTask.cxx:2034
 AtlHistFactoryTask.cxx:2035
 AtlHistFactoryTask.cxx:2036
 AtlHistFactoryTask.cxx:2037
 AtlHistFactoryTask.cxx:2038
 AtlHistFactoryTask.cxx:2039
 AtlHistFactoryTask.cxx:2040
 AtlHistFactoryTask.cxx:2041
 AtlHistFactoryTask.cxx:2042
 AtlHistFactoryTask.cxx:2043
 AtlHistFactoryTask.cxx:2044
 AtlHistFactoryTask.cxx:2045
 AtlHistFactoryTask.cxx:2046
 AtlHistFactoryTask.cxx:2047
 AtlHistFactoryTask.cxx:2048
 AtlHistFactoryTask.cxx:2049
 AtlHistFactoryTask.cxx:2050
 AtlHistFactoryTask.cxx:2051
 AtlHistFactoryTask.cxx:2052
 AtlHistFactoryTask.cxx:2053
 AtlHistFactoryTask.cxx:2054
 AtlHistFactoryTask.cxx:2055
 AtlHistFactoryTask.cxx:2056
 AtlHistFactoryTask.cxx:2057
 AtlHistFactoryTask.cxx:2058
 AtlHistFactoryTask.cxx:2059