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 class JetRecalibrator;
00011 class CBNT_Atlfast : public Algorithm {
00012 public:
00013 CBNT_Atlfast(const std::string &name, ISvcLocator *pSvcLocator);
00014 ~CBNT_Atlfast();
00015 StatusCode initialize();
00016 StatusCode execute();
00017 StatusCode finalize();
00018
00019 private:
00020 StatusCode accessNtuple();
00021
00022 std::string m_NtupleLocID;
00023 NTuple::Tuple* p_nt;
00024
00025 std::pair<int, int> getParentCodes(MCparticleCollection::const_iterator&);
00026 TesIO* m_tesIO;
00027
00029 std::string m_atlfastEventLocation;
00030 std::string m_jetLocation;
00031 std::string m_jetBLocation;
00032 std::string m_electronLocation;
00033 std::string m_isolatedMuonLocation;
00034 std::string m_nonIsolatedMuonLocation;
00035 std::string m_photonLocation;
00036 std::string m_trackLocation;
00037 std::string m_mcTruthLocation;
00038 std::string m_bPhysicsLocation;
00039 std::string m_triggerLocation;
00040 std::string m_eventHeaderLocation;
00041
00042 JetRecalibrator* m_jetCal;
00043
00044
00046 NTuple::Item<long> m_isub;
00047 NTuple::Item<long> m_njetb, m_njetc, m_njettau;
00048 NTuple::Item<float> m_pxmiss, m_pymiss, m_pxnue, m_pynue;
00050 NTuple::Item<long> m_njet;
00051 NTuple::Array<long> m_codejet;
00052 NTuple::Array<float> m_pxjet, m_pyjet, m_pzjet, m_eejet;
00053 NTuple::Array<float> m_ptcalo, m_ptbjet, m_ptujet;
00055 NTuple::Item<long> m_njetB;
00056 NTuple::Array<long> m_codejetB;
00057 NTuple::Array<float> m_pxjetB, m_pyjetB, m_pzjetB, m_eejetB;
00059 NTuple::Item<long> m_nele;
00060 NTuple::Array<long> m_codeele;
00061 NTuple::Array<float> m_pxele, m_pyele, m_pzele, m_eeele;
00063 NTuple::Item<long> m_nmuo;
00064 NTuple::Array<long> m_codemuo;
00065 NTuple::Array<float> m_pxmuo, m_pymuo, m_pzmuo, m_eemuo;
00066 NTuple::Item<long> m_nmux;
00067 NTuple::Array<long> m_codemux;
00068 NTuple::Array<float> m_pxmux, m_pymux, m_pzmux, m_eemux;
00070 NTuple::Item<long> m_npho;
00071 NTuple::Array<long> m_codepho;
00072 NTuple::Array<float> m_pxpho, m_pypho, m_pzpho, m_eepho;
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00091 NTuple::Item<long> m_npart;
00092 NTuple::Array<long> m_kppart, m_kspart, m_kfpart;
00093 NTuple::Array<long> m_kpmoth, m_kfmoth;
00094 NTuple::Array<float> m_pxpart, m_pypart, m_pzpart, m_eepart ;
00096 NTuple::Item<long> m_nbphys;
00097 NTuple::Array<long> m_kbphys, m_kfbphys;
00098 NTuple::Array<long> m_pxphys, m_pybphys, m_pzbphys, m_eebphys ;
00099 NTuple::Array<long> m_vxphys, m_vybphys, m_vzbphys ;
00100
00101 };
00102 }
00103 #endif // CBNT_ATHENA_H
00104
00105