#include <XANADOO/domain/interface/XANAEsdEvent.h>
#include <XANADOO/XANAMcInfo/interface/XANAGeneratorEvent.h>
#include <XANADOO/XANAMcInfo/interface/XANAGeantEvent.h>
#include <XANADOO/XANAMcInfo/interface/XANAGeneratorParticle.h>
#include <XANADOO/XANAElectronCandidate/interface/XANAElectronCandidate.h>
#include <XANADOO/XANAElectronCandidate/interface/XANAElectronTrack.h>
#include <XANADOO/XANAElectronCandidate/interface/XANAElectronGSFTrack.h>
#include <XANADOO/XANAVertex/interface/XANAVertex.h>
#include <XANADOO/XANATracks/interface/XANATrack.h>
#include <XANADOO/XANAnalysisTools/interface/XANAmbiguityResolve.h>
#include <XANADOO/XANAnalysisZZ/interface/XANASelectHZZ.h>
#include <XANADOO/XANAnalysisZZ/interface/XANASelectMcHZZ.h>
#include <XANADOO/XANAnalysisTools/interface/XANAEvtIsolation.h>
#include <XANADOO/XANAnalysisTools/interface/XANAEvtRegionIsolation.h>
#include <XANADOO/XANAnalysisTools/interface/XANAIsolation.h>
#include <XANADOO/XANAnalysisTools/interface/XANAnalysisTrigger.h>
#include <XANADOO/XANATriggerInfo/interface/XANATriggerInfo.h>
#include <XANADOO/XANAnalysisTools/interface/XANAElectronRecGen.h>
#include <XANADOO/XANAnalysisTools/interface/XANAEventSelect.h>
#include <XANADOO/XANAnalysisTools/interface/XANAElectronClassification.h>
#include <XANADOO/XANAnalysisTools/interface/XANAElectronSelect.h>
#include <XANADOO/XANAnalysisTools/interface/XANAElectronCorrection.h>
#include <XANADOO/XANAnalysisTools/interface/XANAElectronMomentum.h>
#include "CLHEP/Geometry/Point3D.h"
#include "TChain.h"
#include "TH1F.h"
#include "TH2F.h"
#include "TFile.h"
#include "TNtuple.h"
#include "TObjArray.h"
#include "TStopwatch.h"
#include <string>
#include <set>
Include dependency graph for singlee_analysis.cpp:
Go to the source code of this file.
Functions | |
int | main (int argc, char **argv) |
|
* Definition at line 43 of file singlee_analysis.cpp. References XANAGeantEvent::clear(), XANAGeneratorEvent::clear(), XANAEsdEvent::clear(), electrons, XANAElectronSelect::ElSelect_dphi(), XANATrack::getAlgoName(), XANAEsdEvent::getElectronCandidates(), XANAElectronClassification::getElectronClass(), XANAElectronRecGen::getElectronsRecGen(), XANAElectronCandidate::getElectronTrack(), XANASuperCluster::getEnergy(), XANASuperCluster::getEnergyScaleFactor(), XANAElectronGSFTrack::getGSFMomentumAtVertexMode(), XANASuperCluster::getHadronicOverEm(), XANAnalysisTrigger::getHLTDecision(), XANAEvtIsolation::getIsolationVector(), XANAnalysisTrigger::getL1Decision(), XANAElectronCandidate::getMomentumAtVertex(), XANATrack::getMomentumAtVertex(), XANAEsdEvent::getNumberOfElectronCandidates(), XANASuperCluster::getPosition(), XANAmbiguityResolve::getResolvedElcands(), XANAElectronSelect::getSelectedElectrons(), XANAElectronCandidate::getSuperCluster(), XANAElectronCandidate::getSuperClusterEnergy(), XANAElectronCandidate::getSuperClusterPosition(), XANAEsdEvent::getSuperClusters(), XANAEsdEvent::getTriggerInfo(), isolationVector, XANAmbiguityResolve::ResolveByEoverP(), XANAElectronCandidate::setESuperClusterOverP(), XANAElectronCandidate::setHadronicOverEm(), XANAElectronCandidate::setMomentumAtVertex(), XANAElectronCandidate::setSuperCluster(), XANAElectronCandidate::setSuperClusterEnergy(), and superClusters.
00044 { 00045 00046 TStopwatch stopWatch; 00047 stopWatch.Start(); 00048 00049 // Steering flags 00050 bool momentumCorrection = true; 00051 bool federicoEscaleCorrection = true; 00052 bool egammaEscaleCorrection = true; 00053 00054 // version TChain 00055 Char_t fileName[512]; 00056 Short_t numberOfFiles = 200; 00057 //Short_t numberOfFiles = 20; 00058 TChain *T = new TChain("ESD"); 00059 for (Int_t m_fi = 0; m_fi < numberOfFiles ; m_fi++) { 00060 //T->Add(Form("/sps/cms/baffioni/XanadooTrees_050905/hg03_hzz_4e_150_XANA_152pre3/hg03_hzz_4e_150.root.%04d",m_fi)); 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 //T->Add(Form("/sps/cms/ferri/XanadooTrees/eg03_tt_4e_XANA_152pre3/eg03_tt_4e.root.%04d",m_fi)); 00075 } 00076 00078 // Histos // 00080 string histoFileName = "histos.root"; 00081 TFile *hFile = new TFile(histoFileName.c_str(),"RECREATE"); 00082 00083 // number of electron candidates, current electron candidate, etc... 00084 TNtuple *ntu = new TNtuple("ntu","ntu","iev:ne:ie:ETrue:Euncorr:E:p:comb:etaTrue"); 00085 00086 // classification 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 // To improve the speed set status for all branches to 0 and then include those needed 00311 // T->SetBranchStatus("Event.*",0); 00312 // T->SetBranchStatus("GeneratorEvent.*",0); 00313 T->SetBranchStatus("GeantEvent.*",0); 00314 00315 //T->SetBranchStatus("Event.caloRecHits_",0); 00316 T->SetBranchStatus("Event.allTrackHits_",0); 00317 00318 // T->SetBranchStatus("Event.emClusters_",0); 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 // T->SetBranchStatus("Event.electronCandidates_",1); 00329 // T->SetBranchStatus("Event.numberOfElectronCandidates_",1); 00330 // T->SetBranchStatus("Event.tracks_",1); 00331 // T->SetBranchStatus("Event.triggerInfo_",1); 00332 // */ 00333 00334 // Set the branch addresses: first reconstructed event and then MC information (generator and GEANT event) 00335 //XANAEsdEvent *event = new XANAEsdEvent(); 00336 XANAEsdEvent *event = 0; 00337 T->SetBranchAddress("Event.",&event); 00338 00339 //XANAGeneratorEvent *generatorEvent = new XANAGeneratorEvent(); 00340 XANAGeneratorEvent *generatorEvent = 0; 00341 T->SetBranchAddress("GeneratorEvent.",&generatorEvent); 00342 00343 //XANAGeantEvent *geantEvent = new XANAGeantEvent(); 00344 XANAGeantEvent *geantEvent = 0; 00345 T->SetBranchAddress("GeantEvent.",&geantEvent); 00346 00347 // Initialisation of some variables (mainly counters and temporary) 00348 int ne = 0, nTrigAccL1=0, nTrigAccHLT=0; 00349 TObjArray *electrons = 0, *superClusters = 0; 00350 HepLorentzVector tmpElRec, tmpElGen, tmpElGenOrig; 00351 XANAElectronCandidate *tmpElectronCandidate; 00352 00353 // Start main loop on all events 00354 Int_t nb = 0; 00355 Int_t nevent = (Int_t)T->GetEntries(); 00356 cout << "================== Total number of events: " << nevent << " ================" << endl; 00357 //nevent = 100; 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 // FIXME: problem with Super Clusters in endcap 00370 for (int i3 = 0; i3 < ne; i3++) { 00371 tmpElectronCandidate = (XANAElectronCandidate *) electrons->At(i3); 00372 00373 // cout << "Super Cluster Pointer = " << tmpElectronCandidate->getSuperCluster() << endl; 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 // cout << " SC: Cand en, SC en, SS pos, brems: " << tmpElectronCandidate->getSuperClusterEnergy() << ", " << 00381 // sc->getEnergy() << ", " << sc->getPosition().eta() << " " 00382 // << sc->getNumberOfBrems() << endl; 00383 float oldEnergy = tmpElectronCandidate->getSuperClusterEnergy(); 00384 tmpElectronCandidate->setSuperClusterEnergy(sc->getEnergy()); 00385 //cout << "new supercluster endcap: old energy " << oldEnergy << " new energy " << sc->getEnergy() << endl; 00386 tmpElectronCandidate->setSuperCluster(sc); 00387 //CC also update MomentumAtVertex 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 //cout << "new electron endcap: old momentum " << tmpElectronCandidate->getMomentumAtVertex() << " new momentum " << momentum << endl; 00399 tmpElectronCandidate->setMomentumAtVertex(momentum); 00400 //CC also update Eoverp 00401 //cout << "new electron endcap: old E/p " << tmpElectronCandidate->getESuperClusterOverP() << " new E/p " << sc->getEnergy() / ptrack.mag() << endl; 00402 tmpElectronCandidate->setMomentumAtVertex(momentum); 00403 tmpElectronCandidate->setESuperClusterOverP(sc->getEnergy()/ptrack.mag()); 00404 //CC also update had/E 00405 //cout << "new electron endcap: old h/e " << tmpElectronCandidate->getHadronicOverEm() << " new h/e " << sc->getHadronicOverEm()*oldEnergy/sc->getEnergy() << endl; 00406 tmpElectronCandidate->setHadronicOverEm(sc->getHadronicOverEm()*oldEnergy/sc->getEnergy()); 00407 } 00408 } 00409 } 00410 00411 00412 //**************************************************************************************** 00413 // part of code to unescale electron candidates 00414 // CC in case we do want to remove all corrections 00415 00416 if (!egammaEscaleCorrection) { 00417 //cout<< "unEscale electron candidates"<<endl; 00418 for (int i3 = 0; i3 < ne; i3++) { 00419 tmpElectronCandidate = (XANAElectronCandidate *) electrons->At(i3); 00420 // from federico 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 // Trigger // 00435 XANATriggerInfo triggerInfo = event->getTriggerInfo(); 00436 XANAnalysisTrigger trigger(&triggerInfo); 00437 00438 //if (ne) std::cout << "Electron candidate = " << ne << " " << ((XANAElectronCandidate*)electrons->At(ne-1))->getSuperClusterEnergy() << " - L1 = " << trigger.getL1Decision() << " - HLT = " << trigger.getHLTDecision() << std::endl; 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 // Preselection // 00448 00449 // 1. Simple Cuts 00450 // -------------- 00451 00452 // Ask for 2 electrons and 2 positrons all with pT > 3 GeV with no isolation requirement 00453 //XANAEventSelect eventSelect(event); 00454 //vector<float> ptCut; 00455 //ptCut.push_back(3.); 00456 //ptCut.push_back(3.); 00457 //if ((eventSelect.NumberOfElCandSelect( 2, -1, 0, ptCut)) && 00458 // (eventSelect.NumberOfElCandSelect( 2, 1, 0, ptCut))) { 00459 // nPresAcc++; 00460 //} else continue; 00461 00462 00463 // 2. Loose isolation 00464 // ------------------ 00465 00466 // Calculation isolation on all Electron candidate in the event 00467 XANAEvtIsolation isolation(event); 00468 std::vector<XANAIsolation> isolationVector = isolation.getIsolationVector(); 00469 //std::vector<XANAIsolation>::const_iterator isoIter; 00470 00472 //for (isoIter = isolationVector.begin(); isoIter != isolationVector.end(); isoIter++){ 00473 // hIsoNumberTracks->Fill((Axis_t) isoIter->getNumberTracks()); 00474 // hIsoPtTracks->Fill((Axis_t) isoIter->getPtTracks()); 00475 // hIsoNumberECinsideCone->Fill((Axis_t) isoIter->getNumberECinsideCone()); 00476 // hIsoPtMax->Fill((Axis_t) isoIter->getPtMax()); 00477 //} 00478 00479 // Very loose isolation (CASE 1): Ask for three isolated electrons with pTsum < 10 GeV inside a cone 00480 //if (isolation.getIsolationPtSum(10.,4)) nIsoAcc++; 00481 //else continue; 00482 00483 // Very loose isolation (CASE 2): Ask for three isolated electrons with pTmax < 5 GeV inside a cone 00484 //if (isolation.getIsolationPtMax(5.,4)) nIsoAcc++; 00485 00486 // Associate reconstructed and generated electrons and make some analysis 00487 XANAElectronRecGen anaMcEvent(event,generatorEvent); 00488 map<XANAElectronCandidate *, XANAGeneratorParticle *> electronsRecGen = anaMcEvent.getElectronsRecGen(); 00489 //map<XANAElectronCandidate *, XANAGeneratorParticle *>::const_iterator iterEleRecGen; 00490 00492 // Electron preselection // 00494 XANAElectronSelect electronSelector(electrons); 00495 electronSelector.ElSelect_dphi(0.1); 00496 TObjArray *selectedElectrons = electronSelector.getSelectedElectrons(); 00497 00499 // Ambiguity resolving // 00501 00502 // single resolving 00503 // XANAmbiguityResolve ambResolve(selectedElectrons,selectedElectrons->GetLast() + 1); 00504 // ambResolve.ResolveByEoverP(); 00505 00506 // double resolving 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; // not in ntuple for the moment 00525 std::vector<float> el_class; // not in ntuple for the moment 00526 00527 float uncorrEnergy = 0; 00528 float energy = 0; 00530 // Plots // 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 //Axis_t myEta = tmpElectronCandidate->getSuperClusterPosition().eta(); 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 // Electron corrections // 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 //Axis_t myEta = tmpElectronCandidate->getSuperClusterPosition().eta(); 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 // Electron momentum calculation // 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 //Axis_t myEta = tmpElectronCandidate->getSuperClusterPosition().eta(); 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 // New plot strategy // 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 // Ntuple filling 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 } |