00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef ATLFAST_STANDARDNTUPLEMAKER_H
00015 #define ATLFAST_STANDARDNTUPLEMAKER_H
00016
00017
00018
00019 #define DEFAULT_atlfastEventLocation "/Event/Atlfast"
00020 #define DEFAULT_jetLocation "/Event/AtlfastJets"
00021 #define DEFAULT_electronLocation "/Event/AtlfastIsolatedElectrons"
00022 #define DEFAULT_photonLocation "/Event/AtlfastIsolatedPhotons"
00023 #define DEFAULT_isolatedMuonLocation "/Event/AtlfastIsolatedMuons"
00024 #define DEFAULT_nonIsolatedMuonLocation "/Event/AtlfastNonIsolatedMuons"
00025 #define DEFAULT_trackLocation "/Event/AtlfastTracks"
00026 #define DEFAULT_mcTruthLocation "/Event/McEventCollection"
00027 #define DEFAULT_bPhysicsLocation "/Event/AtlfastBPhysics"
00028 #define DEFAULT_triggerLocation "/Event/AtlfastTrigger"
00029 #define DEFAULT_eventHeaderLocation "/Event/AtlfastEventHeader"
00030
00031 #include <string>
00032
00033
00034 #include "GaudiKernel/Algorithm.h"
00035 #include "GaudiKernel/NTuple.h"
00036 #include "AtlfastCode/JetRecalibrator.h"
00037 #include "AtlfastCode/TesIO.h"
00038 namespace Atlfast {
00039
00040 class StandardNtupleMaker: public Algorithm {
00041 protected:
00042
00043
00044 NTuple::Item<long> m_isub;
00045 NTuple::Item<long> m_njetb, m_njetc, m_njettau;
00046 NTuple::Item<float> m_pxmiss, m_pymiss, m_pxnue, m_pynue;
00047
00048 NTuple::Item<long> m_njet;
00049 NTuple::Array<long> m_codejet;
00050 NTuple::Array<float> m_pxjet, m_pyjet, m_pzjet, m_eejet;
00051 NTuple::Array<float> m_ptcalo, m_ptbjet, m_ptujet;
00052
00053 NTuple::Item<long> m_nele;
00054 NTuple::Array<long> m_codeele;
00055 NTuple::Array<float> m_pxele, m_pyele, m_pzele, m_eeele;
00056
00057 NTuple::Item<long> m_nmuo;
00058 NTuple::Array<long> m_codemuo;
00059 NTuple::Array<float> m_pxmuo, m_pymuo, m_pzmuo, m_eemuo;
00060 NTuple::Item<long> m_nmux;
00061 NTuple::Array<long> m_codemux;
00062 NTuple::Array<float> m_pxmux, m_pymux, m_pzmux, m_eemux;
00063
00064 NTuple::Item<long> m_npho;
00065 NTuple::Array<long> m_codepho;
00066 NTuple::Array<float> m_pxpho, m_pypho, m_pzpho, m_eepho;
00067
00068 NTuple::Item<long> m_ntra;
00069 NTuple::Array<long> m_kpTruth, m_kfTruth;
00070 NTuple::Array<long> m_kpm1tra, m_kfm1tra;
00071 NTuple::Array<long> m_kpm2tra, m_kfm2tra;
00072 NTuple::Array<long> m_kpm3tra, m_kfm3tra;
00073 NTuple::Array<long> m_kpm4tra, m_kfm4tra;
00074 NTuple::Array<long> m_kpm5tra, m_kfm5tra;
00075 NTuple::Array<long> m_kpm6tra, m_kfm6tra;
00076 NTuple::Array<float> m_d0Track, m_z0Track, m_phiTrack, m_cotTrack, m_ptInvTrack;
00077 NTuple::Array<float> m_d0Truth, m_z0Truth, m_phiTruth, m_cotTruth, m_ptInvTruth;
00078 NTuple::Array<float> m_corr11tra, m_corr12tra, m_corr13tra, m_corr14tra, m_corr15tra;
00079 NTuple::Array<float> m_corr22tra, m_corr23tra, m_corr24tra, m_corr25tra;
00080 NTuple::Array<float> m_corr33tra, m_corr34tra, m_corr35tra;
00081 NTuple::Array<float> m_corr44tra, m_corr45tra, m_corr55tra;
00082
00083 NTuple::Item<long> m_npart;
00084 NTuple::Array<long> m_kfpart;
00085 NTuple::Array<float> m_pxpart, m_pypart, m_pzpart, m_eepart ;
00086
00087 NTuple::Item<long> m_nbphys;
00088 NTuple::Array<long> m_kbphys, m_kfbphys;
00089 NTuple::Array<long> m_pxphys, m_pybphys, m_pzbphys, m_eebphys ;
00090 NTuple::Array<long> m_vxphys, m_vybphys, m_vzbphys ;
00091
00092
00093
00094 NTuple::Tuple* p_nt1;
00095
00096 public:
00098 StandardNtupleMaker(const std::string& name, ISvcLocator* pSvcLocator);
00099 StatusCode initialize();
00100 StatusCode execute();
00101 StatusCode finalize();
00102
00103 private:
00104
00105 long m_nEvents;
00106 TesIO* m_tesIO;
00107
00108
00109 std::string m_atlfastEventLocation;
00110 std::string m_jetLocation;
00111 std::string m_electronLocation;
00112 std::string m_isolatedMuonLocation;
00113 std::string m_nonIsolatedMuonLocation;
00114 std::string m_photonLocation;
00115 std::string m_trackLocation;
00116 std::string m_mcTruthLocation;
00117 std::string m_bPhysicsLocation;
00118 std::string m_triggerLocation;
00119 std::string m_eventHeaderLocation;
00120
00121
00122
00123 JetRecalibrator* m_jetCal;
00124
00125 typedef std::vector<HepMC::GenParticle*> t_MC_particleCollection;
00126 typedef std::vector<HepMC::GenParticle*>::iterator t_MC_particleIterator;
00127 };
00128
00129 }
00130
00131 #endif
00132
00133
00134
00135
00136
00137
00138