00001
00002 #include <XANADOO/domain/interface/XANAEsdEvent.h>
00003 #include <XANADOO/XANAMcInfo/interface/XANAGeneratorEvent.h>
00004 #include <XANADOO/XANAMcInfo/interface/XANAGeantEvent.h>
00005 #include <XANADOO/XANAMcInfo/interface/XANAGeneratorParticle.h>
00006 #include <XANADOO/XANAElectronCandidate/interface/XANAElectronCandidate.h>
00007 #include <XANADOO/XANAElectronCandidate/interface/XANAElectronTrack.h>
00008 #include <XANADOO/XANAElectronCandidate/interface/XANAElectronGSFTrack.h>
00009 #include <XANADOO/XANAVertex/interface/XANAVertex.h>
00010 #include <XANADOO/XANATracks/interface/XANATrack.h>
00011 #include <XANADOO/XANAnalysisTools/interface/XANAmbiguityResolve.h>
00012
00013 #include <XANADOO/XANAnalysisZZ/interface/XANASelectHZZ.h>
00014 #include <XANADOO/XANAnalysisZZ/interface/XANASelectMcHZZ.h>
00015 #include <XANADOO/XANAnalysisTools/interface/XANAEvtIsolation.h>
00016 #include <XANADOO/XANAnalysisTools/interface/XANAEvtRegionIsolation.h>
00017 #include <XANADOO/XANAnalysisTools/interface/XANAIsolation.h>
00018 #include <XANADOO/XANAnalysisTools/interface/XANAnalysisTrigger.h>
00019 #include <XANADOO/XANATriggerInfo/interface/XANATriggerInfo.h>
00020 #include <XANADOO/XANAnalysisTools/interface/XANAElectronRecGen.h>
00021 #include <XANADOO/XANAnalysisTools/interface/XANAEventSelect.h>
00022 #include <XANADOO/XANAnalysisTools/interface/XANAElectronClassification.h>
00023 #include <XANADOO/XANAnalysisTools/interface/XANAElectronSelect.h>
00024 #include <XANADOO/XANAnalysisTools/interface/XANAElectronCorrection.h>
00025 #include <XANADOO/XANAnalysisTools/interface/XANAElectronMomentum.h>
00026
00027 #include "CLHEP/Geometry/Point3D.h"
00028
00029 #include "TChain.h"
00030 #include "TH1F.h"
00031 #include "TH2F.h"
00032 #include "TFile.h"
00033 #include "TNtuple.h"
00034 #include "TObjArray.h"
00035 #include "TStopwatch.h"
00036
00037 #include <string>
00038 #include <set>
00039
00040
00041 using namespace std;
00042
00043 int main(int argc, char** argv)
00044 {
00045
00046 TStopwatch stopWatch;
00047 stopWatch.Start();
00048
00049
00050 bool momentumCorrection = true;
00051 bool federicoEscaleCorrection = true;
00052 bool egammaEscaleCorrection = true;
00053
00054
00055 Char_t fileName[512];
00056 Short_t numberOfFiles = 200;
00057
00058 TChain *T = new TChain("ESD");
00059 for (Int_t m_fi = 0; m_fi < numberOfFiles ; m_fi++) {
00060
00061 sprintf(fileName,"/sps/cms/ferri/XanadooTrees/ele_p05100_XANA_152pre3/ele_p05100.root.%04d",m_fi);
00062 TFile *F = new TFile(fileName);
00063
00064 if (!(F->GetNkeys())) {
00065 printf("File %s has no key --> skipping\n",argv[m_fi]);
00066 F->Close();
00067 delete F;
00068 continue;
00069 }
00070 F->Close();
00071 delete F;
00072
00073 T->Add(Form("/sps/cms/ferri/XanadooTrees/ele_p05100_XANA_152pre3/ele_p05100.root.%04d",m_fi));
00074
00075 }
00076
00078
00080 string histoFileName = "histos.root";
00081 TFile *hFile = new TFile(histoFileName.c_str(),"RECREATE");
00082
00083
00084 TNtuple *ntu = new TNtuple("ntu","ntu","iev:ne:ie:ETrue:Euncorr:E:p:comb:etaTrue");
00085
00086
00087 TH1F *hElectronEuncorrOverEtrue = new TH1F("hElectronEuncorrOverEtrue","Electron Candidates Euncorr/Etrue", 450, 0.,1.5);
00088 TH1F *hElectronEuncorrOverEtrueClass0 = new TH1F("hElectronEuncorrOverEtrueClass0","Electron Candidates Euncorr/Etrue Class: 0, Barrel-Golden", 450, 0.,1.5);
00089 TH1F *hElectronEuncorrOverEtrueClass1 = new TH1F("hElectronEuncorrOverEtrueClass1","Electron Candidates Euncorr/Etrue Class: 1, Barrel-Big Brem", 450, 0.,1.5);
00090 TH1F *hElectronEuncorrOverEtrueClass2 = new TH1F("hElectronEuncorrOverEtrueClass2","Electron Candidates Euncorr/Etrue Class: 2, Barrel-Narrow", 450, 0.,1.5);
00091 TH1F *hElectronEuncorrOverEtrueClass3 = new TH1F("hElectronEuncorrOverEtrueClass3","Electron Candidates Euncorr/Etrue Class: 3, Barrel-Showering", 450, 0.,1.5);
00092 TH1F *hElectronEuncorrOverEtrueClass4 = new TH1F("hElectronEuncorrOverEtrueClass4","Electron Candidates Euncorr/Etrue Class: 4, Barrel-Cracks", 450, 0.,1.5);
00093 TH1F *hElectronEuncorrOverEtrueClass10 = new TH1F("hElectronEuncorrOverEtrueClass10","Electron Candidates Euncorr/Etrue Class: 0, Endcap-Golden", 450, 0.,1.5);
00094 TH1F *hElectronEuncorrOverEtrueClass11 = new TH1F("hElectronEuncorrOverEtrueClass11","Electron Candidates Euncorr/Etrue Class: 1, Endcap-Big Brem", 450, 0.,1.5);
00095 TH1F *hElectronEuncorrOverEtrueClass12 = new TH1F("hElectronEuncorrOverEtrueClass12","Electron Candidates Euncorr/Etrue Class: 2, Endcap-Narrow", 450, 0.,1.5);
00096 TH1F *hElectronEuncorrOverEtrueClass13 = new TH1F("hElectronEuncorrOverEtrueClass13","Electron Candidates Euncorr/Etrue Class: 3, Endcap-Showering", 450, 0.,1.5);
00097
00098 TH1F *hElectronEOverEtrue = new TH1F("hElectronEOverEtrue","Electron Candidates E/Etrue", 450, 0.,1.5);
00099 TH1F *hElectronEOverEtrueClass0 = new TH1F("hElectronEOverEtrueClass0","Electron Candidates E/Etrue Class: 0, Barrel-Golden", 450, 0.,1.5);
00100 TH1F *hElectronEOverEtrueClass1 = new TH1F("hElectronEOverEtrueClass1","Electron Candidates E/Etrue Class: 1, Barrel-Big Brem", 450, 0.,1.5);
00101 TH1F *hElectronEOverEtrueClass2 = new TH1F("hElectronEOverEtrueClass2","Electron Candidates E/Etrue Class: 2, Barrel-Narrow", 450, 0.,1.5);
00102 TH1F *hElectronEOverEtrueClass3 = new TH1F("hElectronEOverEtrueClass3","Electron Candidates E/Etrue Class: 3, Barrel-Showering", 450, 0.,1.5);
00103 TH1F *hElectronEOverEtrueClass4 = new TH1F("hElectronEOverEtrueClass4","Electron Candidates E/Etrue Class: 4, Barrel-Cracks", 450, 0.,1.5);
00104 TH1F *hElectronEOverEtrueClass10 = new TH1F("hElectronEOverEtrueClass10","Electron Candidates E/Etrue Class: 0, Endcap-Golden", 450, 0.,1.5);
00105 TH1F *hElectronEOverEtrueClass11 = new TH1F("hElectronEOverEtrueClass11","Electron Candidates E/Etrue Class: 1, Endcap-Big Brem", 450, 0.,1.5);
00106 TH1F *hElectronEOverEtrueClass12 = new TH1F("hElectronEOverEtrueClass12","Electron Candidates E/Etrue Class: 2, Endcap-Narrow", 450, 0.,1.5);
00107 TH1F *hElectronEOverEtrueClass13 = new TH1F("hElectronEOverEtrueClass13","Electron Candidates E/Etrue Class: 3, Endcap-Showering", 450, 0.,1.5);
00108
00109 TH1F *hElectronPOverEtrue = new TH1F("hElectronPOverEtrue","Electron Candidates p/Etrue", 450, 0.,1.5);
00110 TH1F *hElectronPOverEtrueClass0 = new TH1F("hElectronPOverEtrueClass0","Electron Candidates p/Etrue Class: 0, Barrel-Golden", 450, 0.,1.5);
00111 TH1F *hElectronPOverEtrueClass1 = new TH1F("hElectronPOverEtrueClass1","Electron Candidates p/Etrue Class: 1, Barrel-Big Brem", 450, 0.,1.5);
00112 TH1F *hElectronPOverEtrueClass2 = new TH1F("hElectronPOverEtrueClass2","Electron Candidates p/Etrue Class: 2, Barrel-Narrow", 450, 0.,1.5);
00113 TH1F *hElectronPOverEtrueClass3 = new TH1F("hElectronPOverEtrueClass3","Electron Candidates p/Etrue Class: 3, Barrel-Showering", 450, 0.,1.5);
00114 TH1F *hElectronPOverEtrueClass4 = new TH1F("hElectronPOverEtrueClass4","Electron Candidates p/Etrue Class: 4, Barrel-Cracks", 450, 0.,1.5);
00115 TH1F *hElectronPOverEtrueClass10 = new TH1F("hElectronPOverEtrueClass10","Electron Candidates p/Etrue Class: 0, Endcap-Golden", 450, 0.,1.5);
00116 TH1F *hElectronPOverEtrueClass11 = new TH1F("hElectronPOverEtrueClass11","Electron Candidates p/Etrue Class: 1, Endcap-Big Brem", 450, 0.,1.5);
00117 TH1F *hElectronPOverEtrueClass12 = new TH1F("hElectronPOverEtrueClass12","Electron Candidates p/Etrue Class: 2, Endcap-Narrow", 450, 0.,1.5);
00118 TH1F *hElectronPOverEtrueClass13 = new TH1F("hElectronPOverEtrueClass13","Electron Candidates p/Etrue Class: 3, Endcap-Showering", 450, 0.,1.5);
00119
00120 TH1F *hElectronCombOverEtrue = new TH1F("hElectronCombOverEtrue","Electron Candidates comb/Etrue", 450, 0.,1.5);
00121 TH1F *hElectronCombOverEtrueClass0 = new TH1F("hElectronCombOverEtrueClass0","Electron Candidates comb/Etrue Class: 0, Barrel-Golden", 450, 0.,1.5);
00122 TH1F *hElectronCombOverEtrueClass1 = new TH1F("hElectronCombOverEtrueClass1","Electron Candidates comb/Etrue Class: 1, Barrel-Big Brem", 450, 0.,1.5);
00123 TH1F *hElectronCombOverEtrueClass2 = new TH1F("hElectronCombOverEtrueClass2","Electron Candidates comb/Etrue Class: 2, Barrel-Narrow", 450, 0.,1.5);
00124 TH1F *hElectronCombOverEtrueClass3 = new TH1F("hElectronCombOverEtrueClass3","Electron Candidates comb/Etrue Class: 3, Barrel-Showering", 450, 0.,1.5);
00125 TH1F *hElectronCombOverEtrueClass4 = new TH1F("hElectronCombOverEtrueClass4","Electron Candidates comb/Etrue Class: 4, Barrel-Cracks", 450, 0.,1.5);
00126 TH1F *hElectronCombOverEtrueClass10 = new TH1F("hElectronCombOverEtrueClass10","Electron Candidates comb/Etrue Class: 0, Endcap-Golden", 450, 0.,1.5);
00127 TH1F *hElectronCombOverEtrueClass11 = new TH1F("hElectronCombOverEtrueClass11","Electron Candidates comb/Etrue Class: 1, Endcap-Big Brem", 450, 0.,1.5);
00128 TH1F *hElectronCombOverEtrueClass12 = new TH1F("hElectronCombOverEtrueClass12","Electron Candidates comb/Etrue Class: 2, Endcap-Narrow", 450, 0.,1.5);
00129 TH1F *hElectronCombOverEtrueClass13 = new TH1F("hElectronCombOverEtrueClass13","Electron Candidates comb/Etrue Class: 3, Endcap-Showering", 450, 0.,1.5);
00130
00131 TH2F *h2ElectronEuncorrOverEtrueClass0 = new TH2F("h2ElectronEuncorrOverEtrueClass0","Electron Candidates Euncorr/Etrue Class TH2: 0, Barrel-Golden",100, 0., 2.7,100, 0., 1.5);
00132 TH2F *h2ElectronEuncorrOverEtrueClass1 = new TH2F("h2ElectronEuncorrOverEtrueClass1","Electron Candidates Euncorr/Etrue Class TH2: 1, Barrel-Big Brem",100, 0., 2.7,100, 0., 1.5);
00133 TH2F *h2ElectronEuncorrOverEtrueClass2 = new TH2F("h2ElectronEuncorrOverEtrueClass2","Electron Candidates Euncorr/Etrue Class TH2: 2, Barrel-Narrow",100, 0., 2.7,100, 0., 1.5);
00134 TH2F *h2ElectronEuncorrOverEtrueClass3 = new TH2F("h2ElectronEuncorrOverEtrueClass3","Electron Candidates Euncorr/Etrue Class TH2: 3, Barrel-Showering",100, 0., 2.7,100, 0., 1.5);
00135 TH2F *h2ElectronEuncorrOverEtrueClass4 = new TH2F("h2ElectronEuncorrOverEtrueClass4","Electron Candidates Euncorr/Etrue Class TH2: 4, Barrel-Cracks",100, 0., 2.7,100, 0., 1.5);
00136 TH2F *h2ElectronEuncorrOverEtrueClass10 = new TH2F("h2ElectronEuncorrOverEtrueClass10","Electron Candidates Euncorr/Etrue Class TH2: 0, Endcap-Golden",100, 0., 2.7,100, 0., 1.5);
00137 TH2F *h2ElectronEuncorrOverEtrueClass11 = new TH2F("h2ElectronEuncorrOverEtrueClass11","Electron Candidates Euncorr/Etrue Class TH2: 1, Endcap-Big Brem",100, 0., 2.7,100, 0., 1.5);
00138 TH2F *h2ElectronEuncorrOverEtrueClass12 = new TH2F("h2ElectronEuncorrOverEtrueClass12","Electron Candidates Euncorr/Etrue Class TH2: 2, Endcap-Narrow",100, 0., 2.7,100, 0., 1.5);
00139 TH2F *h2ElectronEuncorrOverEtrueClass13 = new TH2F("h2ElectronEuncorrOverEtrueClass13","Electron Candidates Euncorr/Etrue Class TH2: 3, Endcap-Showering",100, 0., 2.7,100, 0., 1.5);
00140
00141 TH2F *h2ElectronEOverEtrueClass0 = new TH2F("h2ElectronEOverEtrueClass0","Electron Candidates E/Etrue Class TH2: 0, Barrel-Golden",100, 0., 2.7,100, 0., 1.5);
00142 TH2F *h2ElectronEOverEtrueClass1 = new TH2F("h2ElectronEOverEtrueClass1","Electron Candidates E/Etrue Class TH2: 1, Barrel-Big Brem",100, 0., 2.7,100, 0., 1.5);
00143 TH2F *h2ElectronEOverEtrueClass2 = new TH2F("h2ElectronEOverEtrueClass2","Electron Candidates E/Etrue Class TH2: 2, Barrel-Narrow",100, 0., 2.7,100, 0., 1.5);
00144 TH2F *h2ElectronEOverEtrueClass3 = new TH2F("h2ElectronEOverEtrueClass3","Electron Candidates E/Etrue Class TH2: 3, Barrel-Showering",100, 0., 2.7,100, 0., 1.5);
00145 TH2F *h2ElectronEOverEtrueClass4 = new TH2F("h2ElectronEOverEtrueClass4","Electron Candidates E/Etrue Class TH2: 4, Barrel-Cracks",100, 0., 2.7,100, 0., 1.5);
00146 TH2F *h2ElectronEOverEtrueClass10 = new TH2F("h2ElectronEOverEtrueClass10","Electron Candidates E/Etrue Class TH2: 0, Endcap-Golden",100, 0., 2.7,100, 0., 1.5);
00147 TH2F *h2ElectronEOverEtrueClass11 = new TH2F("h2ElectronEOverEtrueClass11","Electron Candidates E/Etrue Class TH2: 1, Endcap-Big Brem",100, 0., 2.7,100, 0., 1.5);
00148 TH2F *h2ElectronEOverEtrueClass12 = new TH2F("h2ElectronEOverEtrueClass12","Electron Candidates E/Etrue Class TH2: 2, Endcap-Narrow",100, 0., 2.7,100, 0., 1.5);
00149 TH2F *h2ElectronEOverEtrueClass13 = new TH2F("h2ElectronEOverEtrueClass13","Electron Candidates E/Etrue Class TH2: 3, Endcap-Showering",100, 0., 2.7,100, 0., 1.5);
00150
00151 TH2F *h2ElectronPOverEtrueClass0 = new TH2F("h2ElectronPOverEtrueClass0","Electron Candidates P/Etrue Class TH2: 0, Barrel-Golden",100, 0., 2.7,100, 0., 1.5);
00152 TH2F *h2ElectronPOverEtrueClass1 = new TH2F("h2ElectronPOverEtrueClass1","Electron Candidates P/Etrue Class TH2: 1, Barrel-Big Brem",100, 0., 2.7,100, 0., 1.5);
00153 TH2F *h2ElectronPOverEtrueClass2 = new TH2F("h2ElectronPOverEtrueClass2","Electron Candidates P/Etrue Class TH2: 2, Barrel-Narrow",100, 0., 2.7,100, 0., 1.5);
00154 TH2F *h2ElectronPOverEtrueClass3 = new TH2F("h2ElectronPOverEtrueClass3","Electron Candidates P/Etrue Class TH2: 3, Barrel-Showering",100, 0., 2.7,100, 0., 1.5);
00155 TH2F *h2ElectronPOverEtrueClass4 = new TH2F("h2ElectronPOverEtrueClass4","Electron Candidates P/Etrue Class TH2: 4, Barrel-Cracks",100, 0., 2.7,100, 0., 1.5);
00156 TH2F *h2ElectronPOverEtrueClass10 = new TH2F("h2ElectronPOverEtrueClass10","Electron Candidates P/Etrue Class TH2: 0, Endcap-Golden",100, 0., 2.7,100, 0., 1.5);
00157 TH2F *h2ElectronPOverEtrueClass11 = new TH2F("h2ElectronPOverEtrueClass11","Electron Candidates P/Etrue Class TH2: 1, Endcap-Big Brem",100, 0., 2.7,100, 0., 1.5);
00158 TH2F *h2ElectronPOverEtrueClass12 = new TH2F("h2ElectronPOverEtrueClass12","Electron Candidates P/Etrue Class TH2: 2, Endcap-Narrow",100, 0., 2.7,100, 0., 1.5);
00159 TH2F *h2ElectronPOverEtrueClass13 = new TH2F("h2ElectronPOverEtrueClass13","Electron Candidates P/Etrue Class TH2: 3, Endcap-Showering",100, 0., 2.7,100, 0., 1.5);
00160
00161 TH2F *h2ElectronCombOverEtrueClass0 = new TH2F("h2ElectronCombOverEtrueClass0","Electron Candidates comb/Etrue Class TH2: 0, Barrel-Golden",100, 0., 2.7,100, 0., 1.5);
00162 TH2F *h2ElectronCombOverEtrueClass1 = new TH2F("h2ElectronCombOverEtrueClass1","Electron Candidates comb/Etrue Class TH2: 1, Barrel-Big Brem",100, 0., 2.7,100, 0., 1.5);
00163 TH2F *h2ElectronCombOverEtrueClass2 = new TH2F("h2ElectronCombOverEtrueClass2","Electron Candidates comb/Etrue Class TH2: 2, Barrel-Narrow",100, 0., 2.7,100, 0., 1.5);
00164 TH2F *h2ElectronCombOverEtrueClass3 = new TH2F("h2ElectronCombOverEtrueClass3","Electron Candidates comb/Etrue Class TH2: 3, Barrel-Showering",100, 0., 2.7,100, 0., 1.5);
00165 TH2F *h2ElectronCombOverEtrueClass4 = new TH2F("h2ElectronCombOverEtrueClass4","Electron Candidates comb/Etrue Class TH2: 4, Barrel-Cracks",100, 0., 2.7,100, 0., 1.5);
00166 TH2F *h2ElectronCombOverEtrueClass10 = new TH2F("h2ElectronCombOverEtrueClass10","Electron Candidates comb/Etrue Class TH2: 0, Endcap-Golden",100, 0., 2.7,100, 0., 1.5);
00167 TH2F *h2ElectronCombOverEtrueClass11 = new TH2F("h2ElectronCombOverEtrueClass11","Electron Candidates comb/Etrue Class TH2: 1, Endcap-Big Brem",100, 0., 2.7,100, 0., 1.5);
00168 TH2F *h2ElectronCombOverEtrueClass12 = new TH2F("h2ElectronCombOverEtrueClass12","Electron Candidates comb/Etrue Class TH2: 2, Endcap-Narrow",100, 0., 2.7,100, 0., 1.5);
00169 TH2F *h2ElectronCombOverEtrueClass13 = new TH2F("h2ElectronCombOverEtrueClass13","Electron Candidates comb/Etrue Class TH2: 3, Endcap-Showering",100, 0., 2.7,100, 0., 1.5);
00170
00171
00172 TH2F *h2ElectronEOverEtrueEP = new TH2F("h2ElectronEOverEtrueEP","Electron Candidates E/Etrue vs E/P",500, 0.,2.5,500, 0.,2.3);
00173 TH2F *h2ElectronEOverEtrueEPClass0 = new TH2F("h2ElectronEOverEtrueEPClass0","Electron Candidates E/Etrue vs E/P Class: 0, Barrel-Golden",500, 0.,2.5,500, 0.,2.3);
00174 TH2F *h2ElectronEOverEtrueEPClass1 = new TH2F("h2ElectronEOverEtrueEPClass1","Electron Candidates E/Etrue vs E/P Class: 1, Barrel-Big Brem",500, 0.,2.5,500, 0.,2.3);
00175 TH2F *h2ElectronEOverEtrueEPClass2 = new TH2F("h2ElectronEOverEtrueEPClass2","Electron Candidates E/Etrue vs E/P Class: 2, Barrel-Narrow",500, 0.,2.5,500, 0.,2.3);
00176 TH2F *h2ElectronEOverEtrueEPClass3 = new TH2F("h2ElectronEOverEtrueEPClass3","Electron Candidates E/Etrue vs E/P Class: 3, Barrel-Showering",500, 0.,2.5,500, 0.,2.3);
00177 TH2F *h2ElectronEOverEtrueEPClass4 = new TH2F("h2ElectronEOverEtrueEPClass4","Electron Candidates E/Etrue vs E/P Class: 4, Barrel-Cracks",500, 0.,2.5,500, 0.,2.3);
00178 TH2F *h2ElectronEOverEtrueEPClass10 = new TH2F("h2ElectronEOverEtrueEPClass10","Electron Candidates E/Etrue vs E/P Class: 10, Endcap-Golden",500, 0.,2.5,500, 0.,2.3);
00179 TH2F *h2ElectronEOverEtrueEPClass11 = new TH2F("h2ElectronEOverEtrueEPClass11","Electron Candidates E/Etrue vs E/P Class: 11, Endcap-Big Brem",500, 0.,2.5,500, 0.,2.3);
00180 TH2F *h2ElectronEOverEtrueEPClass12 = new TH2F("h2ElectronEOverEtrueEPClass12","Electron Candidates E/Etrue vs E/P Class: 12, Endcap-Narrow",500, 0.,2.5,500, 0.,2.3);
00181 TH2F *h2ElectronEOverEtrueEPClass13 = new TH2F("h2ElectronEOverEtrueEPClass13","Electron Candidates E/Etrue vs E/P Class: 13, Endcap-Showering",500, 0.,2.5,500, 0.,2.3);
00182
00183 TH2F *h2ElectronPOverEtrueEP = new TH2F("h2ElectronPOverEtrueEP","Electron Candidates p/Etrue vs E/P",500, 0.,2.5,500, 0.,2.3);
00184 TH2F *h2ElectronPOverEtrueEPClass0 = new TH2F("h2ElectronPOverEtrueEPClass0","Electron Candidates p/Etrue vs E/P Class: 0, Barrel-Golden",500, 0.,2.5,500, 0.,2.3);
00185 TH2F *h2ElectronPOverEtrueEPClass1 = new TH2F("h2ElectronPOverEtrueEPClass1","Electron Candidates p/Etrue vs E/P Class: 1, Barrel-Big Brem",500, 0.,2.5,500, 0.,2.3);
00186 TH2F *h2ElectronPOverEtrueEPClass2 = new TH2F("h2ElectronPOverEtrueEPClass2","Electron Candidates p/Etrue vs E/P Class: 2, Barrel-Narrow",500, 0.,2.5,500, 0.,2.3);
00187 TH2F *h2ElectronPOverEtrueEPClass3 = new TH2F("h2ElectronPOverEtrueEPClass3","Electron Candidates p/Etrue vs E/P Class: 3, Barrel-Showering",500, 0.,2.5,500, 0.,2.3);
00188 TH2F *h2ElectronPOverEtrueEPClass4 = new TH2F("h2ElectronPOverEtrueEPClass4","Electron Candidates p/Etrue vs E/P Class: 4, Barrel-Cracks",500, 0.,2.5,500, 0.,2.3);
00189 TH2F *h2ElectronPOverEtrueEPClass10 = new TH2F("h2ElectronPOverEtrueEPClass10","Electron Candidates p/Etrue vs E/P Class: 10, Endcap-Golden",500, 0.,2.5,500, 0.,2.3);
00190 TH2F *h2ElectronPOverEtrueEPClass11 = new TH2F("h2ElectronPOverEtrueEPClass11","Electron Candidates p/Etrue vs E/P Class: 11, Endcap-Big Brem",500, 0.,2.5,500, 0.,2.3);
00191 TH2F *h2ElectronPOverEtrueEPClass12 = new TH2F("h2ElectronPOverEtrueEPClass12","Electron Candidates p/Etrue vs E/P Class: 12, Endcap-Narrow",500, 0.,2.5,500, 0.,2.3);
00192 TH2F *h2ElectronPOverEtrueEPClass13 = new TH2F("h2ElectronPOverEtrueEPClass13","Electron Candidates p/Etrue vs E/P Class: 13, Endcap-Showering",500, 0.,2.5,500, 0.,2.3);
00193
00194 TH2F *h2ElectronCombOverEtrueEP = new TH2F("h2ElectronCombOverEtrueEP","Electron Candidates comb/Etrue vs E/P",500, 0.,2.5,500, 0.,2.3);
00195 TH2F *h2ElectronCombOverEtrueEPClass0 = new TH2F("h2ElectronCombOverEtrueEPClass0","Electron Candidates comb/Etrue vs E/P Class: 0, Barrel-Golden",500, 0.,2.5,500, 0.,2.3);
00196 TH2F *h2ElectronCombOverEtrueEPClass1 = new TH2F("h2ElectronCombOverEtrueEPClass1","Electron Candidates comb/Etrue vs E/P Class: 1, Barrel-Big Brem",500, 0.,2.5,500, 0.,2.3);
00197 TH2F *h2ElectronCombOverEtrueEPClass2 = new TH2F("h2ElectronCombOverEtrueEPClass2","Electron Candidates comb/Etrue vs E/P Class: 2, Barrel-Narrow",500, 0.,2.5,500, 0.,2.3);
00198 TH2F *h2ElectronCombOverEtrueEPClass3 = new TH2F("h2ElectronCombOverEtrueEPClass3","Electron Candidates comb/Etrue vs E/P Class: 3, Barrel-Showering",500, 0.,2.5,500, 0.,2.3);
00199 TH2F *h2ElectronCombOverEtrueEPClass4 = new TH2F("h2ElectronCombOverEtrueEPClass4","Electron Candidates comb/Etrue vs E/P Class: 4, Barrel-Cracks",500, 0.,2.5,500, 0.,2.3);
00200 TH2F *h2ElectronCombOverEtrueEPClass10 = new TH2F("h2ElectronCombOverEtrueEPClass10","Electron Candidates comb/Etrue vs E/P Class: 10, Endcap-Golden",500, 0.,2.5,500, 0.,2.3);
00201 TH2F *h2ElectronCombOverEtrueEPClass11 = new TH2F("h2ElectronCombOverEtrueEPClass11","Electron Candidates comb/Etrue vs E/P Class: 11, Endcap-Big Brem",500, 0.,2.5,500, 0.,2.3);
00202 TH2F *h2ElectronCombOverEtrueEPClass12 = new TH2F("h2ElectronCombOverEtrueEPClass12","Electron Candidates comb/Etrue vs E/P Class: 12, Endcap-Narrow",500, 0.,2.5,500, 0.,2.3);
00203 TH2F *h2ElectronCombOverEtrueEPClass13 = new TH2F("h2ElectronCombOverEtrueEPClass13","Electron Candidates comb/Etrue vs E/P Class: 13, Endcap-Showering",500, 0.,2.5,500, 0.,2.3);
00204
00205
00206 TH1F *hElectronGenEta = new TH1F("hElectronGenEta","Generated Electron Eta",100, 0., 2.7);
00207
00208
00209 TH1F *hElectronPt = new TH1F("hElectronPt","Electron Candidates Pt",100, 0., 100.);
00210 TH1F *hElectronPtClass0 = new TH1F("hElectronPtClass0","Electron Candidates Pt Class: 0, Barrel-Golden",100, 0., 100.);
00211 TH1F *hElectronPtClass1 = new TH1F("hElectronPtClass1","Electron Candidates Pt Class: 1, Barrel-Big Brem",100, 0., 100.);
00212 TH1F *hElectronPtClass2 = new TH1F("hElectronPtClass2","Electron Candidates Pt Class: 2, Barrel-Narrow",100, 0., 100.);
00213 TH1F *hElectronPtClass3 = new TH1F("hElectronPtClass3","Electron Candidates Pt Class: 3, Barrel-Showering",100, 0., 100.);
00214 TH1F *hElectronPtClass4 = new TH1F("hElectronPtClass4","Electron Candidates Pt Class: 4, Barrel-Cracks",100, 0., 100.);
00215 TH1F *hElectronPtClass10 = new TH1F("hElectronPtClass10","Electron Candidates Pt Class: 0, Endcap-Golden",100, 0., 100.);
00216 TH1F *hElectronPtClass11 = new TH1F("hElectronPtClass11","Electron Candidates Pt Class: 1, Endcap-Big Brem",100, 0., 100.);
00217 TH1F *hElectronPtClass12 = new TH1F("hElectronPtClass12","Electron Candidates Pt Class: 2, Endcap-Narrow",100, 0., 100.);
00218 TH1F *hElectronPtClass13 = new TH1F("hElectronPtClass13","Electron Candidates Pt Class: 3, Endcap-Showering",100, 0., 100.);
00219
00220 TH1F *hElectronL1Pt = new TH1F("hElectronL1Pt","Electron Candidates passing L1 Pt",100, 0., 100.);
00221 TH1F *hElectronL1PtClass0 = new TH1F("hElectronL1PtClass0","Electron Candidates passing L1 Pt Class: 0, Barrel-Golden",100, 0., 100.);
00222 TH1F *hElectronL1PtClass1 = new TH1F("hElectronL1PtClass1","Electron Candidates passing L1 Pt Class: 1, Barrel-Big Brem",100, 0., 100.);
00223 TH1F *hElectronL1PtClass2 = new TH1F("hElectronL1PtClass2","Electron Candidates passing L1 Pt Class: 2, Barrel-Narrow",100, 0., 100.);
00224 TH1F *hElectronL1PtClass3 = new TH1F("hElectronL1PtClass3","Electron Candidates passing L1 Pt Class: 3, Barrel-Showering",100, 0., 100.);
00225 TH1F *hElectronL1PtClass4 = new TH1F("hElectronL1PtClass4","Electron Candidates passing L1 Pt Class: 4, Barrel-Cracks",100, 0., 100.);
00226 TH1F *hElectronL1PtClass10 = new TH1F("hElectronL1PtClass10","Electron Candidates passing L1 Pt Class: 0, Barrel-Golden",100, 0., 100.);
00227 TH1F *hElectronL1PtClass11 = new TH1F("hElectronL1PtClass11","Electron Candidates passing L1 Pt Class: 1, Barrel-Big Brem",100, 0., 100.);
00228 TH1F *hElectronL1PtClass12 = new TH1F("hElectronL1PtClass12","Electron Candidates passing L1 Pt Class: 2, Barrel-Narrow",100, 0., 100.);
00229 TH1F *hElectronL1PtClass13 = new TH1F("hElectronL1PtClass13","Electron Candidates passing L1 Pt Class: 3, Barrel-Showering",100, 0., 100.);
00230
00231 TH1F *hElectronHLTPt = new TH1F("hElectronHLTPt","Electron Candidates passing HLT Pt",100, 0., 100.);
00232 TH1F *hElectronHLTPtClass0 = new TH1F("hElectronHLTPtClass0","Electron Candidates passing HTL Pt Class: 0, Barrel-Golden",100, 0., 100.);
00233 TH1F *hElectronHLTPtClass1 = new TH1F("hElectronHLTPtClass1","Electron Candidates passing HLT Pt Class: 1, Barrel-Big Brem",100, 0., 100.);
00234 TH1F *hElectronHLTPtClass2 = new TH1F("hElectronHLTPtClass2","Electron Candidates passing HLT Pt Class: 2, Barrel-Narrow",100, 0., 100.);
00235 TH1F *hElectronHLTPtClass3 = new TH1F("hElectronHLTPtClass3","Electron Candidates passing HLT Pt Class: 3, Barrel-Showering",100, 0., 100.);
00236 TH1F *hElectronHLTPtClass4 = new TH1F("hElectronHLTPtClass4","Electron Candidates passing HLT Pt Class: 4, Barrel-Cracks",100, 0., 100.);
00237 TH1F *hElectronHLTPtClass10 = new TH1F("hElectronHLTPtClass10","Electron Candidates passing HLT Pt Class: 0, Barrel-Golden",100, 0., 100.);
00238 TH1F *hElectronHLTPtClass11 = new TH1F("hElectronHLTPtClass11","Electron Candidates passing HLT Pt Class: 1, Barrel-Big Brem",100, 0., 100.);
00239 TH1F *hElectronHLTPtClass12 = new TH1F("hElectronHLTPtClass12","Electron Candidates passing HLT Pt Class: 2, Barrel-Narrow",100, 0., 100.);
00240 TH1F *hElectronHLTPtClass13 = new TH1F("hElectronHLTPtClass13","Electron Candidates passing HLT Pt Class: 3, Barrel-Showering",100, 0., 100.);
00241
00242
00243 TH1F *hElectronEta = new TH1F("hElectronEta","Electron Candidates Eta",100, 0., 2.7);
00244 TH1F *hElectronEtaClass0 = new TH1F("hElectronEtaClass0","Electron Candidates Eta Class: 0, Barrel-Golden",100, 0., 2.7);
00245 TH1F *hElectronEtaClass1 = new TH1F("hElectronEtaClass1","Electron Candidates Eta Class: 1, Barrel-Big Brem",100, 0., 2.7);
00246 TH1F *hElectronEtaClass2 = new TH1F("hElectronEtaClass2","Electron Candidates Eta Class: 2, Barrel-Narrow",100, 0., 2.7);
00247 TH1F *hElectronEtaClass3 = new TH1F("hElectronEtaClass3","Electron Candidates Eta Class: 3, Barrel-Showering",100, 0., 2.7);
00248 TH1F *hElectronEtaClass4 = new TH1F("hElectronEtaClass4","Electron Candidates Eta Class: 4, Barrel-Cracks",100, 0., 2.7);
00249 TH1F *hElectronEtaClass10 = new TH1F("hElectronEtaClass10","Electron Candidates Eta Class: 0, Endcap-Golden",100, 0., 2.7);
00250 TH1F *hElectronEtaClass11 = new TH1F("hElectronEtaClass11","Electron Candidates Eta Class: 1, Endcap-Big Brem",100, 0., 2.7);
00251 TH1F *hElectronEtaClass12 = new TH1F("hElectronEtaClass12","Electron Candidates Eta Class: 2, Endcap-Narrow",100, 0., 2.7);
00252 TH1F *hElectronEtaClass13 = new TH1F("hElectronEtaClass13","Electron Candidates Eta Class: 3, Endcap-Showering",100, 0., 2.7);
00253
00254 TH1F *hElectronL1Eta = new TH1F("hElectronL1Eta","Electron Candidates passing L1 Eta",100, 0., 2.7);
00255 TH1F *hElectronL1EtaClass0 = new TH1F("hElectronL1EtaClass0","Electron Candidates passing L1 Eta Class: 0, Barrel-Golden",100, 0., 2.7);
00256 TH1F *hElectronL1EtaClass1 = new TH1F("hElectronL1EtaClass1","Electron Candidates passing L1 Eta Class: 1, Barrel-Big Brem",100, 0., 2.7);
00257 TH1F *hElectronL1EtaClass2 = new TH1F("hElectronL1EtaClass2","Electron Candidates passing L1 Eta Class: 2, Barrel-Narrow",100, 0., 2.7);
00258 TH1F *hElectronL1EtaClass3 = new TH1F("hElectronL1EtaClass3","Electron Candidates passing L1 Eta Class: 3, Barrel-Showering",100, 0., 2.7);
00259 TH1F *hElectronL1EtaClass4 = new TH1F("hElectronL1EtaClass4","Electron Candidates passing L1 Eta Class: 4, Barrel-Cracks",100, 0., 2.7);
00260 TH1F *hElectronL1EtaClass10 = new TH1F("hElectronL1EtaClass10","Electron Candidates passing L1 Eta Class: 0, Barrel-Golden",100, 0., 2.7);
00261 TH1F *hElectronL1EtaClass11 = new TH1F("hElectronL1EtaClass11","Electron Candidates passing L1 Eta Class: 1, Barrel-Big Brem",100, 0., 2.7);
00262 TH1F *hElectronL1EtaClass12 = new TH1F("hElectronL1EtaClass12","Electron Candidates passing L1 Eta Class: 2, Barrel-Narrow",100, 0., 2.7);
00263 TH1F *hElectronL1EtaClass13 = new TH1F("hElectronL1EtaClass13","Electron Candidates passing L1 Eta Class: 3, Barrel-Showering",100, 0., 2.7);
00264
00265 TH1F *hElectronHLTEta = new TH1F("hElectronHLTEta","Electron Candidates passing HLT Eta",100, 0., 2.7);
00266 TH1F *hElectronHLTEtaClass0 = new TH1F("hElectronHLTEtaClass0","Electron Candidates passing HTL Eta Class: 0, Barrel-Golden",100, 0., 2.7);
00267 TH1F *hElectronHLTEtaClass1 = new TH1F("hElectronHLTEtaClass1","Electron Candidates passing HLT Eta Class: 1, Barrel-Big Brem",100, 0., 2.7);
00268 TH1F *hElectronHLTEtaClass2 = new TH1F("hElectronHLTEtaClass2","Electron Candidates passing HLT Eta Class: 2, Barrel-Narrow",100, 0., 2.7);
00269 TH1F *hElectronHLTEtaClass3 = new TH1F("hElectronHLTEtaClass3","Electron Candidates passing HLT Eta Class: 3, Barrel-Showering",100, 0., 2.7);
00270 TH1F *hElectronHLTEtaClass4 = new TH1F("hElectronHLTEtaClass4","Electron Candidates passing HLT Eta Class: 4, Barrel-Cracks",100, 0., 2.7);
00271 TH1F *hElectronHLTEtaClass10 = new TH1F("hElectronHLTEtaClass10","Electron Candidates passing HLT Eta Class: 0, Barrel-Golden",100, 0., 2.7);
00272 TH1F *hElectronHLTEtaClass11 = new TH1F("hElectronHLTEtaClass11","Electron Candidates passing HLT Eta Class: 1, Barrel-Big Brem",100, 0., 2.7);
00273 TH1F *hElectronHLTEtaClass12 = new TH1F("hElectronHLTEtaClass12","Electron Candidates passing HLT Eta Class: 2, Barrel-Narrow",100, 0., 2.7);
00274 TH1F *hElectronHLTEtaClass13 = new TH1F("hElectronHLTEtaClass13","Electron Candidates passing HLT Eta Class: 3, Barrel-Showering",100, 0., 2.7);
00275
00276 TH2F *h2ElectronERes = new TH2F("h2ElectronERes","Electron Candidates E resolution",110,0.,110.,100,-.5,.5);
00277 TH2F *h2ElectronEResClass0 = new TH2F("h2ElectronEResClass0","Electron Candidates E resolution Class: 0, Barrel-Golden",110, 0.,110.,100,-.5,.5);
00278 TH2F *h2ElectronEResClass1 = new TH2F("h2ElectronEResClass1","Electron Candidates E resolution Class: 1, Barrel-Golden",110, 0.,110.,100,-.5,.5);
00279 TH2F *h2ElectronEResClass2 = new TH2F("h2ElectronEResClass2","Electron Candidates E resolution Class: 2, Barrel-Golden",110, 0.,110.,100,-.5,.5);
00280 TH2F *h2ElectronEResClass3 = new TH2F("h2ElectronEResClass3","Electron Candidates E resolution Class: 3, Barrel-Golden",110, 0.,110.,100,-.5,.5);
00281 TH2F *h2ElectronEResClass4 = new TH2F("h2ElectronEResClass4","Electron Candidates E resolution Class: 4, Barrel-Golden",110, 0.,110.,100,-.5,.5);
00282 TH2F *h2ElectronEResClass10 = new TH2F("h2ElectronEResClass10","Electron Candidates E resolution Class: 10, Barrel-Golden",110, 0.,110.,100,-.5,.5);
00283 TH2F *h2ElectronEResClass11 = new TH2F("h2ElectronEResClass11","Electron Candidates E resolution Class: 11, Barrel-Golden",110, 0.,110.,100,-.5,.5);
00284 TH2F *h2ElectronEResClass12 = new TH2F("h2ElectronEResClass12","Electron Candidates E resolution Class: 12, Barrel-Golden",110, 0.,110.,100,-.5,.5);
00285 TH2F *h2ElectronEResClass13 = new TH2F("h2ElectronEResClass13","Electron Candidates E resolution Class: 13, Barrel-Golden",110, 0.,110.,100,-.5,.5);
00286
00287 TH2F *h2ElectronPRes = new TH2F("h2ElectronPRes","Electron Candidates E resolution",110, 0., 110.,100,-.5,.5);
00288 TH2F *h2ElectronPResClass0 = new TH2F("h2ElectronPResClass0","Electron Candidates E resolution Class: 0, Barrel-Golden",110, 0.,110.,100,-.5,.5);
00289 TH2F *h2ElectronPResClass1 = new TH2F("h2ElectronPResClass1","Electron Candidates E resolution Class: 1, Barrel-Golden",110, 0.,110.,100,-.5,.5);
00290 TH2F *h2ElectronPResClass2 = new TH2F("h2ElectronPResClass2","Electron Candidates E resolution Class: 2, Barrel-Golden",110, 0.,110.,100,-.5,.5);
00291 TH2F *h2ElectronPResClass3 = new TH2F("h2ElectronPResClass3","Electron Candidates E resolution Class: 3, Barrel-Golden",110, 0.,110.,100,-.5,.5);
00292 TH2F *h2ElectronPResClass4 = new TH2F("h2ElectronPResClass4","Electron Candidates E resolution Class: 4, Barrel-Golden",110, 0.,110.,100,-.5,.5);
00293 TH2F *h2ElectronPResClass10 = new TH2F("h2ElectronPResClass10","Electron Candidates E resolution Class: 10, Barrel-Golden",110, 0.,110.,100,-.5,.5);
00294 TH2F *h2ElectronPResClass11 = new TH2F("h2ElectronPResClass11","Electron Candidates E resolution Class: 11, Barrel-Golden",110, 0.,110.,100,-.5,.5);
00295 TH2F *h2ElectronPResClass12 = new TH2F("h2ElectronPResClass12","Electron Candidates E resolution Class: 12, Barrel-Golden",110, 0.,110.,100,-.5,.5);
00296 TH2F *h2ElectronPResClass13 = new TH2F("h2ElectronPResClass13","Electron Candidates E resolution Class: 13, Barrel-Golden",110, 0.,110.,100,-.5,.5);
00297
00298 TH2F *h2ElectronCombRes = new TH2F("h2ElectronCombRes","Electron Candidates E resolution",110, 0., 110.,100,-.5,.5);
00299 TH2F *h2ElectronCombResClass0 = new TH2F("h2ElectronCombResClass0","Electron Candidates E resolution Class: 0, Barrel-Golden",110, 0.,110.,100,-.5,.5);
00300 TH2F *h2ElectronCombResClass1 = new TH2F("h2ElectronCombResClass1","Electron Candidates E resolution Class: 1, Barrel-Golden",110, 0.,110.,100,-.5,.5);
00301 TH2F *h2ElectronCombResClass2 = new TH2F("h2ElectronCombResClass2","Electron Candidates E resolution Class: 2, Barrel-Golden",110, 0.,110.,100,-.5,.5);
00302 TH2F *h2ElectronCombResClass3 = new TH2F("h2ElectronCombResClass3","Electron Candidates E resolution Class: 3, Barrel-Golden",110, 0.,110.,100,-.5,.5);
00303 TH2F *h2ElectronCombResClass4 = new TH2F("h2ElectronCombResClass4","Electron Candidates E resolution Class: 4, Barrel-Golden",110, 0.,110.,100,-.5,.5);
00304 TH2F *h2ElectronCombResClass10 = new TH2F("h2ElectronCombResClass10","Electron Candidates E resolution Class: 10, Barrel-Golden",110, 0.,110.,100,-.5,.5);
00305 TH2F *h2ElectronCombResClass11 = new TH2F("h2ElectronCombResClass11","Electron Candidates E resolution Class: 11, Barrel-Golden",110, 0.,110.,100,-.5,.5);
00306 TH2F *h2ElectronCombResClass12 = new TH2F("h2ElectronCombResClass12","Electron Candidates E resolution Class: 12, Barrel-Golden",110, 0.,110.,100,-.5,.5);
00307 TH2F *h2ElectronCombResClass13 = new TH2F("h2ElectronCombResClass13","Electron Candidates E resolution Class: 13, Barrel-Golden",110, 0.,110.,100,-.5,.5);
00308
00309
00310
00311
00312
00313 T->SetBranchStatus("GeantEvent.*",0);
00314
00315
00316 T->SetBranchStatus("Event.allTrackHits_",0);
00317
00318
00319 T->SetBranchStatus("Event.preshClusters_",0);
00320 T->SetBranchStatus("Event.hadClusters_",0);
00321 T->SetBranchStatus("Event.vertices_",0);
00322 T->SetBranchStatus("Event.muonCandidates_",0);
00323 T->SetBranchStatus("Event.muonTracks_",0);
00324 T->SetBranchStatus("Event.jets_",0);
00325 T->SetBranchStatus("Event.met_",0);
00326
00328
00329
00330
00331
00332
00333
00334
00335
00336 XANAEsdEvent *event = 0;
00337 T->SetBranchAddress("Event.",&event);
00338
00339
00340 XANAGeneratorEvent *generatorEvent = 0;
00341 T->SetBranchAddress("GeneratorEvent.",&generatorEvent);
00342
00343
00344 XANAGeantEvent *geantEvent = 0;
00345 T->SetBranchAddress("GeantEvent.",&geantEvent);
00346
00347
00348 int ne = 0, nTrigAccL1=0, nTrigAccHLT=0;
00349 TObjArray *electrons = 0, *superClusters = 0;
00350 HepLorentzVector tmpElRec, tmpElGen, tmpElGenOrig;
00351 XANAElectronCandidate *tmpElectronCandidate;
00352
00353
00354 Int_t nb = 0;
00355 Int_t nevent = (Int_t)T->GetEntries();
00356 cout << "================== Total number of events: " << nevent << " ================" << endl;
00357
00358 cout << "================== Events to be analyzed : " << nevent << " ================" << endl;
00359
00360 Int_t ievent = 0;
00361 for (Int_t i=0; i<T->GetEntries() && ievent<nevent; i++) {
00362 nb += T->GetEntry(i);
00363
00364 if (i%100 == 0) cout << "================ Event: " << i << " ================" << endl;
00365
00366 ne = event->getNumberOfElectronCandidates(); electrons = event->getElectronCandidates();
00367 superClusters = event->getSuperClusters();
00368
00369
00370 for (int i3 = 0; i3 < ne; i3++) {
00371 tmpElectronCandidate = (XANAElectronCandidate *) electrons->At(i3);
00372
00373
00374 for (int isc = 0 ; isc < superClusters->GetLast() + 1; isc ++) {
00375 XANASuperCluster * sc = (XANASuperCluster *) superClusters->At(isc);
00376 if (tmpElectronCandidate->getSuperCluster()==0 &&
00377 tmpElectronCandidate->getSuperClusterPosition() == sc->getPosition()) {
00378 cout<<" !!! entering the super cluster bug correction "<<endl;
00379 cout<<" !!! should not be the case if data >= XANA1_5_3 are used"<<endl;
00380
00381
00382
00383 float oldEnergy = tmpElectronCandidate->getSuperClusterEnergy();
00384 tmpElectronCandidate->setSuperClusterEnergy(sc->getEnergy());
00385
00386 tmpElectronCandidate->setSuperCluster(sc);
00387
00388 Hep3Vector ptrack;
00389 if (tmpElectronCandidate->getElectronTrack()->getAlgoName() == "GSF") {
00390 XANAElectronGSFTrack *gsfetr = (XANAElectronGSFTrack *)(tmpElectronCandidate->getElectronTrack());
00391 ptrack = gsfetr->getGSFMomentumAtVertexMode();
00392 } else {
00393 ptrack = tmpElectronCandidate->getElectronTrack()->getMomentumAtVertex();
00394 }
00395 HepLorentzVector momentum(ptrack.x(), ptrack.y(), ptrack.z(), 0.);
00396 momentum *= sc->getEnergy() / ptrack.mag();
00397 momentum.setE(sc->getEnergy());
00398
00399 tmpElectronCandidate->setMomentumAtVertex(momentum);
00400
00401
00402 tmpElectronCandidate->setMomentumAtVertex(momentum);
00403 tmpElectronCandidate->setESuperClusterOverP(sc->getEnergy()/ptrack.mag());
00404
00405
00406 tmpElectronCandidate->setHadronicOverEm(sc->getHadronicOverEm()*oldEnergy/sc->getEnergy());
00407 }
00408 }
00409 }
00410
00411
00412
00413
00414
00415
00416 if (!egammaEscaleCorrection) {
00417
00418 for (int i3 = 0; i3 < ne; i3++) {
00419 tmpElectronCandidate = (XANAElectronCandidate *) electrons->At(i3);
00420
00421 float newEnergy = tmpElectronCandidate->getSuperCluster()->getEnergy()/
00422 tmpElectronCandidate->getSuperCluster()->getEnergyScaleFactor();
00423 HepLorentzVector oldMomentum = tmpElectronCandidate->getMomentumAtVertex();
00424 HepLorentzVector newMomentum(oldMomentum.x()*newEnergy/oldMomentum.t(),
00425 oldMomentum.y()*newEnergy/oldMomentum.t(),
00426 oldMomentum.z()*newEnergy/oldMomentum.t(),
00427 newEnergy);
00428 tmpElectronCandidate->setMomentumAtVertex(newMomentum);
00429 }
00430 }
00431
00433
00435 XANATriggerInfo triggerInfo = event->getTriggerInfo();
00436 XANAnalysisTrigger trigger(&triggerInfo);
00437
00438
00439
00440 Bool_t decL1 = trigger.getL1Decision();
00441 Bool_t decHLT = trigger.getHLTDecision();
00442 if (decL1 == true) nTrigAccL1++;
00443 if (decHLT == true) nTrigAccHLT++;
00444
00446
00448
00449
00450
00451
00452
00453
00454
00455
00456
00457
00458
00459
00460
00461
00462
00463
00464
00465
00466
00467 XANAEvtIsolation isolation(event);
00468 std::vector<XANAIsolation> isolationVector = isolation.getIsolationVector();
00469
00470
00472
00473
00474
00475
00476
00477
00478
00479
00480
00481
00482
00483
00484
00485
00486
00487 XANAElectronRecGen anaMcEvent(event,generatorEvent);
00488 map<XANAElectronCandidate *, XANAGeneratorParticle *> electronsRecGen = anaMcEvent.getElectronsRecGen();
00489
00490
00492
00494 XANAElectronSelect electronSelector(electrons);
00495 electronSelector.ElSelect_dphi(0.1);
00496 TObjArray *selectedElectrons = electronSelector.getSelectedElectrons();
00497
00499
00501
00502
00503
00504
00505
00506
00507
00508 XANAmbiguityResolve ambResolve1(selectedElectrons,selectedElectrons->GetLast() + 1);
00509 ambResolve1.ResolveByEoverP();
00510
00511 XANAmbiguityResolve ambResolve(ambResolve1.getResolvedElcands(),ambResolve1.getResolvedElcands()->GetLast() + 1);
00512 ambResolve.ResolveByEoverP();
00513
00514 XANAElectronClassification electronClasses(ambResolve.getResolvedElcands());
00515 map<XANAElectronCandidate *, int> elClassMap = electronClasses.getElectronClass();
00516 map<XANAElectronCandidate *, int>::const_iterator elClassMapIter;
00517
00518 std::vector<float> el_Etrue;
00519 std::vector<float> el_Euncorr;
00520 std::vector<float> el_E;
00521 std::vector<float> el_p;
00522 std::vector<float> el_comb;
00523 std::vector<float> el_etaTrue;
00524 std::vector<float> el_EOverP;
00525 std::vector<float> el_class;
00526
00527 float uncorrEnergy = 0;
00528 float energy = 0;
00530
00532 for (elClassMapIter = elClassMap.begin(); elClassMapIter != elClassMap.end(); elClassMapIter++) {
00533 tmpElectronCandidate = elClassMapIter->first;
00534 uncorrEnergy = tmpElectronCandidate->getSuperClusterEnergy();
00535 if (elClassMapIter->second >= 0 && elClassMapIter->second < 5 && tmpElectronCandidate->getSuperCluster())
00536 uncorrEnergy /= tmpElectronCandidate->getSuperCluster()->getEnergyScaleFactor();
00537
00538 tmpElGen = ((electronsRecGen.find(tmpElectronCandidate))->second)->getMomentum();
00539
00540 Axis_t ratioE = uncorrEnergy/tmpElGen.e();
00541
00542 Axis_t myEta = tmpElGen.eta();
00543
00544 el_Etrue.push_back(tmpElGen.e());
00545 el_Euncorr.push_back(uncorrEnergy);
00546 el_etaTrue.push_back(tmpElGen.eta());
00547 el_class.push_back(elClassMapIter->second);
00548
00549 hElectronEuncorrOverEtrue->Fill(ratioE);
00550 if (elClassMapIter->second == 0) {
00551 hElectronEuncorrOverEtrueClass0->Fill(ratioE); if (ratioE > 0.8 && ratioE < 2.) h2ElectronEuncorrOverEtrueClass0->Fill(myEta, ratioE);
00552 }
00553 else if (elClassMapIter->second == 1) {
00554 hElectronEuncorrOverEtrueClass1->Fill(ratioE); if (ratioE > 0.8 && ratioE < 2.) h2ElectronEuncorrOverEtrueClass1->Fill(myEta, ratioE);
00555 }
00556 else if (elClassMapIter->second == 2) {
00557 hElectronEuncorrOverEtrueClass2->Fill(ratioE); if (ratioE > 0.8 && ratioE < 2.) h2ElectronEuncorrOverEtrueClass2->Fill(myEta, ratioE);
00558 }
00559 else if (elClassMapIter->second == 3) {
00560 hElectronEuncorrOverEtrueClass3->Fill(ratioE); if (ratioE > 0.8 && ratioE < 2.) h2ElectronEuncorrOverEtrueClass3->Fill(myEta, ratioE);
00561 }
00562 else if (elClassMapIter->second == 4) {
00563 hElectronEuncorrOverEtrueClass4->Fill(ratioE); if (ratioE > 0.8 && ratioE < 2.) h2ElectronEuncorrOverEtrueClass4->Fill(myEta, ratioE);
00564 }
00565 else if (elClassMapIter->second == 10) {
00566 hElectronEuncorrOverEtrueClass10->Fill(ratioE); if (ratioE > 0.8 && ratioE < 2.) h2ElectronEuncorrOverEtrueClass10->Fill(myEta, ratioE);
00567 }
00568 else if (elClassMapIter->second == 11) {
00569 hElectronEuncorrOverEtrueClass11->Fill(ratioE); if (ratioE > 0.8 && ratioE < 2.) h2ElectronEuncorrOverEtrueClass11->Fill(myEta, ratioE);
00570 }
00571 else if (elClassMapIter->second == 12) {
00572 hElectronEuncorrOverEtrueClass12->Fill(ratioE); if (ratioE > 0.8 && ratioE < 2.) h2ElectronEuncorrOverEtrueClass12->Fill(myEta, ratioE);
00573 }
00574 else if (elClassMapIter->second == 13) {
00575 hElectronEuncorrOverEtrueClass13->Fill(ratioE); if (ratioE > 0.8 && ratioE < 2.) h2ElectronEuncorrOverEtrueClass13->Fill(myEta, ratioE);
00576 }
00577 }
00578
00580
00582
00583 float corrEnergy;
00584
00585 if (federicoEscaleCorrection) {
00586
00587 XANAElectronCorrection electronCorrection(elClassMap);
00588 corrEnergy = 0.;
00589
00590 for (elClassMapIter = elClassMap.begin(); elClassMapIter != elClassMap.end(); elClassMapIter++) {
00591 tmpElectronCandidate = elClassMapIter->first;
00592 energy = tmpElectronCandidate->getSuperClusterEnergy();
00593
00594 tmpElGen = ((electronsRecGen.find(tmpElectronCandidate))->second)->getMomentum();
00595
00596 Float_t momentum = ((XANAElectronGSFTrack*)tmpElectronCandidate->getElectronTrack())->getGSFMomentumAtVertexMode().mag();
00597 Axis_t ratioE = energy/tmpElGen.e();
00598 Axis_t ratioP = momentum/tmpElGen.e();
00599
00600 Axis_t myEta = tmpElGen.eta();
00601 Axis_t ERes = ( energy - tmpElGen.e() )/tmpElGen.e();
00602 Axis_t PRes = ( momentum - tmpElGen.e() )/tmpElGen.e();
00603
00604 el_E.push_back(energy);
00605 el_p.push_back(momentum);
00606 el_EOverP.push_back(energy/momentum);
00607
00608 hElectronEOverEtrue->Fill(ratioE);
00609 hElectronPOverEtrue->Fill(ratioP);
00610 h2ElectronERes->Fill(energy,ERes);
00611 h2ElectronPRes->Fill(momentum,PRes);
00612 if (elClassMapIter->second == 0) {
00613 hElectronEOverEtrueClass0->Fill(ratioE); if (ratioE > 0.8 && ratioE < 2.) h2ElectronEOverEtrueClass0->Fill(myEta, ratioE);
00614 hElectronPOverEtrueClass0->Fill(ratioP); if (ratioP > 0.8 && ratioP < 2.) h2ElectronPOverEtrueClass0->Fill(myEta, ratioE);
00615 h2ElectronEResClass0->Fill(energy,ERes);
00616 h2ElectronPResClass0->Fill(momentum,PRes);
00617 }
00618 else if (elClassMapIter->second == 1) {
00619 hElectronEOverEtrueClass1->Fill(ratioE); if (ratioE > 0.8 && ratioE < 2.) h2ElectronEOverEtrueClass1->Fill(myEta, ratioE);
00620 hElectronPOverEtrueClass1->Fill(ratioP); if (ratioP > 0.8 && ratioP < 2.) h2ElectronPOverEtrueClass1->Fill(myEta, ratioE);
00621 h2ElectronEResClass1->Fill(energy,ERes);
00622 h2ElectronPResClass1->Fill(momentum,PRes);
00623 }
00624 else if (elClassMapIter->second == 2) {
00625 hElectronEOverEtrueClass2->Fill(ratioE); if (ratioE > 0.8 && ratioE < 2.) h2ElectronEOverEtrueClass2->Fill(myEta, ratioE);
00626 hElectronPOverEtrueClass2->Fill(ratioP); if (ratioP > 0.8 && ratioP < 2.) h2ElectronPOverEtrueClass2->Fill(myEta, ratioE);
00627 h2ElectronEResClass2->Fill(energy,ERes);
00628 h2ElectronPResClass2->Fill(momentum,PRes);
00629 }
00630 else if (elClassMapIter->second == 3) {
00631 hElectronEOverEtrueClass3->Fill(ratioE); if (ratioE > 0.8 && ratioE < 2.) h2ElectronEOverEtrueClass3->Fill(myEta, ratioE);
00632 hElectronPOverEtrueClass3->Fill(ratioP); if (ratioP > 0.8 && ratioP < 2.) h2ElectronPOverEtrueClass3->Fill(myEta, ratioE);
00633 h2ElectronEResClass3->Fill(energy,ERes);
00634 h2ElectronPResClass3->Fill(momentum,PRes);
00635 }
00636 else if (elClassMapIter->second == 4) {
00637 hElectronEOverEtrueClass4->Fill(ratioE); if (ratioE > 0.8 && ratioE < 2.) h2ElectronEOverEtrueClass4->Fill(myEta, ratioE);
00638 hElectronPOverEtrueClass4->Fill(ratioP); if (ratioP > 0.8 && ratioP < 2.) h2ElectronPOverEtrueClass4->Fill(myEta, ratioE);
00639 h2ElectronEResClass4->Fill(energy,ERes);
00640 h2ElectronPResClass4->Fill(momentum,PRes);
00641 }
00642 else if (elClassMapIter->second == 10) {
00643 hElectronEOverEtrueClass10->Fill(ratioE); if (ratioE > 0.8 && ratioE < 2.) h2ElectronEOverEtrueClass10->Fill(myEta, ratioE);
00644 hElectronPOverEtrueClass10->Fill(ratioP); if (ratioP > 0.8 && ratioP < 2.) h2ElectronPOverEtrueClass10->Fill(myEta, ratioE);
00645 h2ElectronEResClass10->Fill(energy,ERes);
00646 h2ElectronPResClass10->Fill(momentum,PRes);
00647 }
00648 else if (elClassMapIter->second == 11) {
00649 hElectronEOverEtrueClass11->Fill(ratioE); if (ratioE > 0.8 && ratioE < 2.) h2ElectronEOverEtrueClass11->Fill(myEta, ratioE);
00650 hElectronPOverEtrueClass11->Fill(ratioP); if (ratioP > 0.8 && ratioP < 2.) h2ElectronPOverEtrueClass11->Fill(myEta, ratioE);
00651 h2ElectronEResClass11->Fill(energy,ERes);
00652 h2ElectronPResClass11->Fill(momentum,PRes);
00653 }
00654 else if (elClassMapIter->second == 12) {
00655 hElectronEOverEtrueClass12->Fill(ratioE); if (ratioE > 0.8 && ratioE < 2.) h2ElectronEOverEtrueClass12->Fill(myEta, ratioE);
00656 hElectronPOverEtrueClass12->Fill(ratioP); if (ratioP > 0.8 && ratioP < 2.) h2ElectronPOverEtrueClass12->Fill(myEta, ratioE);
00657 h2ElectronEResClass12->Fill(energy,ERes);
00658 h2ElectronPResClass12->Fill(momentum,PRes);
00659 }
00660 else if (elClassMapIter->second == 13) {
00661 hElectronEOverEtrueClass13->Fill(ratioE); if (ratioE > 0.8 && ratioE < 2.) h2ElectronEOverEtrueClass13->Fill(myEta, ratioE);
00662 hElectronPOverEtrueClass13->Fill(ratioP); if (ratioP > 0.8 && ratioP < 2.) h2ElectronPOverEtrueClass13->Fill(myEta, ratioE);
00663 h2ElectronEResClass13->Fill(energy,ERes);
00664 h2ElectronPResClass13->Fill(momentum,PRes);
00665 }
00666 }
00667
00668 }
00669
00671
00673 if (momentumCorrection) {
00674
00675 XANAElectronMomentum electronMomentum(elClassMap);
00676
00677 for (elClassMapIter = elClassMap.begin(); elClassMapIter != elClassMap.end(); elClassMapIter++) {
00678 tmpElectronCandidate = elClassMapIter->first;
00679
00680 tmpElGen = ((electronsRecGen.find(tmpElectronCandidate))->second)->getMomentum();
00681
00682 Float_t combination = tmpElectronCandidate->getMomentumAtVertex().t();
00683 Axis_t ratioComb = combination/tmpElGen.e();
00684
00685 Axis_t myEta = tmpElGen.eta();
00686 Axis_t myPt = tmpElGen.vect().perp();
00687 Axis_t CombRes = ( energy - tmpElGen.e() )/tmpElGen.e();
00688
00689 hElectronCombOverEtrue->Fill(ratioComb);
00690 hElectronEta->Fill(myEta);
00691 hElectronPt->Fill(myPt);
00692
00693 h2ElectronCombRes->Fill(combination,CombRes);
00694
00695 el_comb.push_back(combination);
00696
00697 if (decL1 ) hElectronL1Eta->Fill(myEta);
00698 if (decHLT) hElectronHLTEta->Fill(myEta);
00699 if (decL1 ) hElectronL1Pt->Fill(myPt);
00700 if (decHLT) hElectronHLTPt->Fill(myPt);
00701 if (elClassMapIter->second == 0) {
00702 hElectronCombOverEtrueClass0->Fill(ratioComb); if (ratioComb > 0.8 && ratioComb < 2.) h2ElectronCombOverEtrueClass0->Fill(myEta, ratioComb);
00703 hElectronEtaClass0->Fill(myEta);
00704 hElectronPtClass0->Fill(myPt);
00705 if (decL1 ) hElectronL1EtaClass0->Fill(myEta);
00706 if (decHLT) hElectronHLTEtaClass0->Fill(myEta);
00707 if (decL1 ) hElectronL1PtClass0->Fill(myPt);
00708 if (decHLT) hElectronHLTPtClass0->Fill(myPt);
00709 h2ElectronCombResClass0->Fill(combination,CombRes);
00710 }
00711 else if (elClassMapIter->second == 1) {
00712 hElectronCombOverEtrueClass1->Fill(ratioComb); if (ratioComb > 0.8 && ratioComb < 2.) h2ElectronCombOverEtrueClass1->Fill(myEta, ratioComb);
00713 hElectronEtaClass1->Fill(myEta);
00714 hElectronPtClass1->Fill(myPt);
00715 if (decL1 ) hElectronL1EtaClass1->Fill(myEta);
00716 if (decHLT) hElectronHLTEtaClass1->Fill(myEta);
00717 if (decL1 ) hElectronL1PtClass1->Fill(myPt);
00718 if (decHLT) hElectronHLTPtClass1->Fill(myPt);
00719 h2ElectronCombResClass1->Fill(combination,CombRes);
00720 }
00721 else if (elClassMapIter->second == 2) {
00722 hElectronCombOverEtrueClass2->Fill(ratioComb); if (ratioComb > 0.8 && ratioComb < 2.) h2ElectronCombOverEtrueClass2->Fill(myEta, ratioComb);
00723 hElectronEtaClass2->Fill(myEta);
00724 hElectronPtClass2->Fill(myPt);
00725 if (decL1 ) hElectronL1EtaClass2->Fill(myEta);
00726 if (decHLT) hElectronHLTEtaClass2->Fill(myEta);
00727 if (decL1 ) hElectronL1PtClass2->Fill(myPt);
00728 if (decHLT) hElectronHLTPtClass2->Fill(myPt);
00729 h2ElectronCombResClass2->Fill(combination,CombRes);
00730 }
00731 else if (elClassMapIter->second == 3) {
00732 hElectronCombOverEtrueClass3->Fill(ratioComb); if (ratioComb > 0.8 && ratioComb < 2.) h2ElectronCombOverEtrueClass3->Fill(myEta, ratioComb);
00733 hElectronEtaClass3->Fill(myEta);
00734 hElectronPtClass3->Fill(myPt);
00735 if (decL1 ) hElectronL1EtaClass3->Fill(myEta);
00736 if (decHLT) hElectronHLTEtaClass3->Fill(myEta);
00737 if (decL1 ) hElectronL1PtClass3->Fill(myPt);
00738 if (decHLT) hElectronHLTPtClass3->Fill(myPt);
00739 h2ElectronCombResClass3->Fill(combination,CombRes);
00740 }
00741 else if (elClassMapIter->second == 4) {
00742 hElectronCombOverEtrueClass4->Fill(ratioComb); if (ratioComb > 0.8 && ratioComb < 2.) h2ElectronCombOverEtrueClass4->Fill(myEta, ratioComb);
00743 hElectronEtaClass4->Fill(myEta);
00744 hElectronPtClass4->Fill(myPt);
00745 if (decL1 ) hElectronL1EtaClass4->Fill(myEta);
00746 if (decHLT) hElectronHLTEtaClass4->Fill(myEta);
00747 if (decL1 ) hElectronL1PtClass4->Fill(myPt);
00748 if (decHLT) hElectronHLTPtClass4->Fill(myPt);
00749 h2ElectronCombResClass4->Fill(combination,CombRes);
00750 }
00751 else if (elClassMapIter->second == 10) {
00752 hElectronCombOverEtrueClass10->Fill(ratioComb); if (ratioComb > 0.8 && ratioComb < 2.) h2ElectronCombOverEtrueClass10->Fill(myEta, ratioComb);
00753 hElectronEtaClass10->Fill(myEta);
00754 hElectronPtClass10->Fill(myPt);
00755 if (decL1 ) hElectronL1EtaClass10->Fill(myEta);
00756 if (decHLT) hElectronHLTEtaClass10->Fill(myEta);
00757 if (decL1 ) hElectronL1PtClass10->Fill(myPt);
00758 if (decHLT) hElectronHLTPtClass10->Fill(myPt);
00759 h2ElectronCombResClass10->Fill(combination,CombRes);
00760 }
00761 else if (elClassMapIter->second == 11) {
00762 hElectronCombOverEtrueClass11->Fill(ratioComb); if (ratioComb > 0.8 && ratioComb < 2.) h2ElectronCombOverEtrueClass11->Fill(myEta, ratioComb);
00763 hElectronEtaClass11->Fill(myEta);
00764 hElectronPtClass11->Fill(myPt);
00765 if (decL1 ) hElectronL1EtaClass11->Fill(myEta);
00766 if (decHLT) hElectronHLTEtaClass11->Fill(myEta);
00767 if (decL1 ) hElectronL1PtClass11->Fill(myPt);
00768 if (decHLT) hElectronHLTPtClass11->Fill(myPt);
00769 h2ElectronCombResClass11->Fill(combination,CombRes);
00770 }
00771 else if (elClassMapIter->second == 12) {
00772 hElectronCombOverEtrueClass12->Fill(ratioComb); if (ratioComb > 0.8 && ratioComb < 2.) h2ElectronCombOverEtrueClass12->Fill(myEta, ratioComb);
00773 hElectronEtaClass12->Fill(myEta);
00774 hElectronPtClass12->Fill(myPt);
00775 if (decL1 ) hElectronL1EtaClass12->Fill(myEta);
00776 if (decHLT) hElectronHLTEtaClass12->Fill(myEta);
00777 if (decL1 ) hElectronL1PtClass12->Fill(myPt);
00778 if (decHLT) hElectronHLTPtClass12->Fill(myPt);
00779 h2ElectronCombResClass12->Fill(combination,CombRes);
00780 }
00781 else if (elClassMapIter->second == 13) {
00782 hElectronCombOverEtrueClass13->Fill(ratioComb); if (ratioComb > 0.8 && ratioComb < 2.) h2ElectronCombOverEtrueClass13->Fill(myEta, ratioComb);
00783 hElectronEtaClass13->Fill(myEta);
00784 hElectronPtClass13->Fill(myPt);
00785 if (decL1 ) hElectronL1EtaClass13->Fill(myEta);
00786 if (decHLT) hElectronHLTEtaClass13->Fill(myEta);
00787 if (decL1 ) hElectronL1PtClass13->Fill(myPt);
00788 if (decHLT) hElectronHLTPtClass13->Fill(myPt);
00789 h2ElectronCombResClass13->Fill(combination,CombRes);
00790 }
00791 }
00792
00793 }
00794
00796
00798 for (UInt_t idx=0; idx<elClassMap.size(); idx++) {
00799
00800 Axis_t EEtrue = el_E[idx]/el_Etrue[idx];
00801 Axis_t PEtrue = el_p[idx]/el_Etrue[idx];
00802 Axis_t combEtrue = el_comb[idx]/el_Etrue[idx];
00803
00804 h2ElectronEOverEtrueEP->Fill(el_EOverP[idx],EEtrue);
00805 h2ElectronPOverEtrueEP->Fill(el_EOverP[idx],PEtrue);
00806 h2ElectronCombOverEtrueEP->Fill(el_EOverP[idx],combEtrue);
00807 if (el_class[idx] == 0) {
00808 h2ElectronEOverEtrueEPClass0->Fill(el_EOverP[idx],EEtrue);
00809 h2ElectronPOverEtrueEPClass0->Fill(el_EOverP[idx],PEtrue);
00810 h2ElectronCombOverEtrueEPClass0->Fill(el_EOverP[idx],combEtrue);
00811 }
00812 else if (el_class[idx] == 1) {
00813 h2ElectronEOverEtrueEPClass1->Fill(el_EOverP[idx],EEtrue);
00814 h2ElectronPOverEtrueEPClass1->Fill(el_EOverP[idx],PEtrue);
00815 h2ElectronCombOverEtrueEPClass1->Fill(el_EOverP[idx],combEtrue);
00816 }
00817 else if (el_class[idx] == 2) {
00818 h2ElectronEOverEtrueEPClass2->Fill(el_EOverP[idx],EEtrue);
00819 h2ElectronPOverEtrueEPClass2->Fill(el_EOverP[idx],PEtrue);
00820 h2ElectronCombOverEtrueEPClass2->Fill(el_EOverP[idx],combEtrue);
00821 }
00822 else if (el_class[idx] == 3) {
00823 h2ElectronEOverEtrueEPClass3->Fill(el_EOverP[idx],EEtrue);
00824 h2ElectronPOverEtrueEPClass3->Fill(el_EOverP[idx],PEtrue);
00825 h2ElectronCombOverEtrueEPClass3->Fill(el_EOverP[idx],combEtrue);
00826 }
00827 else if (el_class[idx] == 4) {
00828 h2ElectronEOverEtrueEPClass4->Fill(el_EOverP[idx],EEtrue);
00829 h2ElectronPOverEtrueEPClass4->Fill(el_EOverP[idx],PEtrue);
00830 h2ElectronCombOverEtrueEPClass4->Fill(el_EOverP[idx],combEtrue);
00831 }
00832 else if (el_class[idx] == 10) {
00833 h2ElectronEOverEtrueEPClass10->Fill(el_EOverP[idx],EEtrue);
00834 h2ElectronPOverEtrueEPClass10->Fill(el_EOverP[idx],PEtrue);
00835 h2ElectronCombOverEtrueEPClass10->Fill(el_EOverP[idx],combEtrue);
00836 }
00837 else if (el_class[idx] == 11) {
00838 h2ElectronEOverEtrueEPClass11->Fill(el_EOverP[idx],EEtrue);
00839 h2ElectronPOverEtrueEPClass11->Fill(el_EOverP[idx],PEtrue);
00840 h2ElectronCombOverEtrueEPClass11->Fill(el_EOverP[idx],combEtrue);
00841 }
00842 else if (el_class[idx] == 12) {
00843 h2ElectronEOverEtrueEPClass12->Fill(el_EOverP[idx],EEtrue);
00844 h2ElectronPOverEtrueEPClass12->Fill(el_EOverP[idx],PEtrue);
00845 h2ElectronCombOverEtrueEPClass12->Fill(el_EOverP[idx],combEtrue);
00846 }
00847 else if (el_class[idx] == 13) {
00848 h2ElectronEOverEtrueEPClass13->Fill(el_EOverP[idx],EEtrue);
00849 h2ElectronPOverEtrueEPClass13->Fill(el_EOverP[idx],PEtrue);
00850 h2ElectronCombOverEtrueEPClass13->Fill(el_EOverP[idx],combEtrue);
00851 }
00852 }
00853
00854
00855 for (unsigned int i=0; i<el_Etrue.size(); i++) {
00856 ntu->Fill(ievent,el_Etrue.size(),i,el_Etrue[i],el_Euncorr[i],el_E[i],el_p[i],el_comb[i],el_etaTrue[i]);
00857 }
00858 ievent++;
00859 event->clear();
00860 generatorEvent->clear();
00861 geantEvent->clear();
00862 }
00863 hFile->Write();
00864
00865
00866 cout << " -------------------------------------------------------------------------------" << endl;
00867 cout << " ACCEPTANCES " << endl;
00868 cout << " TOTAL NUMBER OF EVENTS = " << nevent << endl;
00869 cout << " -------------------------------------------------------------------------------" << endl;
00870 cout << " #EVENTS RELATIVE ACC. (%) APSOLUTE ACC. (%) " << endl;
00871 cout << " -------------------------------------------------------------------------------" << endl;
00872 cout << " 1. TRIGGER (L1) = \t" << nTrigAccL1 << "\t\t" << 100.*nTrigAccL1/nevent
00873 << "\t\t\t" << 100.*nTrigAccL1/nevent << endl;
00874 cout << " 2. TRIGGER (HLT) = \t" << nTrigAccHLT << "\t\t" << 100.*nTrigAccHLT/nevent
00875 << "\t\t\t" << 100.*nTrigAccHLT/nevent << endl;
00876 cout << " -------------------------------------------------------------------------------" << endl;
00877
00878 cout << nevent << " events and " << nb << " bytes read " << endl;
00879 cout << endl;
00880
00881 stopWatch.Stop();
00882 cout << "Time elapsed - CPU: " << stopWatch.CpuTime() <<
00883 " real: " << stopWatch.RealTime() << endl;
00884
00885 }