Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

StandardNtupleMaker.h

Go to the documentation of this file.
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 #include <string>
00018 
00020 #include "GaudiKernel/Algorithm.h"
00021 #include "GaudiKernel/NTuple.h"
00022 #include "AtlfastUtils/TesIO.h"
00023 namespace Atlfast {
00024   using std::string;
00025   class JetRecalibrator;
00026   class StandardNtupleMaker: public Algorithm {
00027   protected:
00030     NTuple::Item<long>              m_isub;
00031     NTuple::Item<long>              m_njetb, m_njetc, m_njettau;
00032     NTuple::Item<float>             m_pxmiss, m_pymiss, m_pxnue, m_pynue;
00034     NTuple::Item<long>              m_njet;
00035     NTuple::Array<long>             m_codejet;
00036     NTuple::Array<float>            m_pxjet, m_pyjet, m_pzjet, m_eejet;
00037     NTuple::Array<float>            m_ptcalo, m_ptbjet, m_ptujet;
00039     NTuple::Item<long>              m_njetB;
00040     NTuple::Array<long>             m_codejetB;
00041     NTuple::Array<float>            m_pxjetB, m_pyjetB, m_pzjetB, m_eejetB;
00043     NTuple::Item<long>              m_nele;
00044     NTuple::Array<long>             m_codeele;
00045     NTuple::Array<float>            m_pxele, m_pyele, m_pzele, m_eeele;
00047     NTuple::Item<long>              m_nmuo;
00048     NTuple::Array<long>             m_codemuo;
00049     NTuple::Array<float>            m_pxmuo, m_pymuo, m_pzmuo, m_eemuo;
00050     NTuple::Item<long>              m_nmux;
00051     NTuple::Array<long>             m_codemux;
00052     NTuple::Array<float>            m_pxmux, m_pymux, m_pzmux, m_eemux;
00054     NTuple::Item<long>              m_npho;
00055     NTuple::Array<long>             m_codepho;
00056     NTuple::Array<float>            m_pxpho, m_pypho, m_pzpho, m_eepho;
00058     NTuple::Item<long>              m_ntra;
00059     NTuple::Array<long>             m_kpTruth,   m_kfTruth;
00060     NTuple::Array<long>             m_kpm1tra, m_kfm1tra;
00061     NTuple::Array<long>             m_kpm2tra, m_kfm2tra;
00062     NTuple::Array<long>             m_kpm3tra, m_kfm3tra;
00063     NTuple::Array<long>             m_kpm4tra, m_kfm4tra;
00064     NTuple::Array<long>             m_kpm5tra, m_kfm5tra;
00065     NTuple::Array<long>             m_kpm6tra, m_kfm6tra;
00066     NTuple::Array<float>            m_d0Track, m_z0Track, m_phiTrack, m_cotTrack, m_ptInvTrack;
00067     NTuple::Array<float>            m_d0Truth, m_z0Truth, m_phiTruth, m_cotTruth, m_ptInvTruth;
00068     NTuple::Array<float>            m_corr11tra, m_corr12tra, m_corr13tra, m_corr14tra, m_corr15tra;
00069     NTuple::Array<float>            m_corr22tra, m_corr23tra, m_corr24tra, m_corr25tra;
00070     NTuple::Array<float>            m_corr33tra, m_corr34tra, m_corr35tra;
00071     NTuple::Array<float>            m_corr44tra, m_corr45tra, m_corr55tra;
00073     NTuple::Item<long>              m_npart;
00074     NTuple::Array<long>             m_kppart, m_kspart, m_kfpart;
00075     NTuple::Array<long>             m_kpmoth, m_kfmoth;
00076     NTuple::Array<float>            m_pxpart, m_pypart, m_pzpart, m_eepart ;
00078     NTuple::Item<long>              m_nbphys;
00079     NTuple::Array<long>             m_kbphys, m_kfbphys;
00080     NTuple::Array<long>             m_pxphys, m_pybphys, m_pzbphys, m_eebphys ;
00081     NTuple::Array<long>             m_vxphys, m_vybphys, m_vzbphys ;
00082     
00083     
00084     // Pointer to an ntuple
00085     NTuple::Tuple* p_nt1;
00086     
00087   public:
00089     StandardNtupleMaker(const std::string& name, ISvcLocator* pSvcLocator); 
00090     ~StandardNtupleMaker();
00091     StatusCode initialize();
00092     StatusCode execute();
00093     StatusCode finalize();
00094     
00095   private:
00098     std::pair<int, int> getParentCodes(MCparticleCollection::const_iterator&);
00100     long   m_nEvents;                    // Number events processed
00101     TesIO* m_tesIO;
00102     
00104     std::string m_atlfastEventLocation;
00105     std::string m_jetLocation;
00106     std::string m_jetBLocation;
00107     std::string m_electronLocation;
00108     std::string m_isolatedMuonLocation;
00109     std::string m_nonIsolatedMuonLocation;
00110     std::string m_photonLocation;
00111     std::string m_trackLocation;
00112     std::string m_mcTruthLocation;
00113     std::string m_bPhysicsLocation;
00114     std::string m_triggerLocation;  
00115     std::string m_eventHeaderLocation;  
00116     
00117     //  IJetCalibrator& m_uJetCal;
00118     //  IJetCalibrator& m_bJetCal;
00119     JetRecalibrator*  m_jetCal;
00120     
00121     typedef std::vector<HepMC::GenParticle*>            t_MC_particleCollection; 
00122     typedef std::vector<HepMC::GenParticle*>::iterator  t_MC_particleIterator;
00123   };
00124   
00125 } // end of namespace bracket  
00126 
00127 #endif 

Generated on Tue Mar 18 11:18:25 2003 for AtlfastAlgs by doxygen1.3-rc1