00001 #ifndef ATLFAST_CBNT_ATLFAST_H
00002 #define ATLFAST_CBNT_ATLFAST_H
00003
00004 #include "GaudiKernel/Algorithm.h"
00005 #include "GaudiKernel/NTuple.h"
00006
00007 #include "AtlfastUtils/TesIO.h"
00008
00009 namespace Atlfast{
00010
00017 class CBNT_Atlfast : public Algorithm {
00018 public:
00020 CBNT_Atlfast(const std::string &name, ISvcLocator *pSvcLocator);
00021
00023 ~CBNT_Atlfast();
00024
00026 StatusCode initialize();
00028 StatusCode execute();
00030 StatusCode finalize();
00031
00032 private:
00033 StatusCode accessNtuple();
00034
00035 std::string m_NtupleLocID;
00036 NTuple::Tuple* m_ntPtr;
00037
00038 std::pair<int, int> getParentCodes(MCparticleCollection::const_iterator&);
00039 TesIO* m_tesIO;
00040
00042 std::string m_atlfastEventLocation;
00043 std::string m_jetLocation;
00044 std::string m_electronLocation;
00045 std::string m_isolatedMuonLocation;
00046 std::string m_nonIsolatedMuonLocation;
00047 std::string m_photonLocation;
00048 std::string m_trackLocation;
00049 std::string m_mcTruthLocation;
00050 std::string m_bPhysicsLocation;
00051 std::string m_triggerLocation;
00052 std::string m_eventHeaderLocation;
00053
00054 bool m_fillIsolatedElectrons;
00055 bool m_fillIsolatedPhotons;
00056 bool m_fillIsolatedMuons;
00057 bool m_fillNonIsolatedMuons;
00058 bool m_fillJets;
00059 bool m_fillHistory;
00060 bool m_fillEventData;
00061
00062
00063 std::string m_mcLocation;
00064
00066 NTuple::Item<long> m_isub;
00067 NTuple::Item<long> m_njetb, m_njetc, m_njettau;
00068 NTuple::Item<float> m_pxmiss, m_pymiss, m_pxnue, m_pynue, m_sumET;
00069 NTuple::Item<float> m_mcWeight0, m_mcWeight1, m_mcWeight2;
00070
00071 NTuple::Item<long> m_njet;
00072 NTuple::Array<long> m_jetlabel;
00073 NTuple::Array<float> m_bjetdR, m_cjetdR, m_taujetdR;
00074 NTuple::Array<float> m_pxjet, m_pyjet, m_pzjet, m_eejet;
00075 NTuple::Array<float> m_ptcalo, m_ucorr;
00076 NTuple::Array<float> m_btag, m_bcorr;
00077 NTuple::Array<float> m_tautag, m_taucorr;
00078 NTuple::Array<float> m_tau1ptag, m_tau3ptag, m_tau1p3pcorr;
00079
00080 NTuple::Item<long> m_nele;
00081 NTuple::Array<long> m_codeele;
00082 NTuple::Array<float> m_pxele, m_pyele, m_pzele, m_eeele;
00083
00084 NTuple::Item<long> m_nmuo;
00085 NTuple::Array<long> m_codemuo;
00086 NTuple::Array<float> m_pxmuo, m_pymuo, m_pzmuo, m_eemuo;
00087 NTuple::Item<long> m_nmux;
00088 NTuple::Array<long> m_codemux;
00089 NTuple::Array<float> m_pxmux, m_pymux, m_pzmux, m_eemux;
00090
00091 NTuple::Item<long> m_npho;
00092 NTuple::Array<long> m_codepho;
00093 NTuple::Array<float> m_pxpho, m_pypho, m_pzpho, m_eepho;
00094
00095 NTuple::Item<long> m_npart;
00096 NTuple::Array<long> m_kppart, m_kspart, m_kfpart;
00097 NTuple::Array<long> m_kpmoth, m_kfmoth;
00098 NTuple::Array<float> m_pxpart, m_pypart, m_pzpart, m_eepart ;
00099
00100 NTuple::Item<long> m_nbphys;
00101 NTuple::Array<long> m_kbphys, m_kfbphys;
00102 NTuple::Array<long> m_pxphys, m_pybphys, m_pzbphys, m_eebphys ;
00103 NTuple::Array<long> m_vxphys, m_vybphys, m_vzbphys ;
00104
00105 };
00106 }
00107 #endif // CBNT_ATHENA_H
00108
00109