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 //  StandardNtupleMaker.h
00003 //  --------------------------------------------------------------------
00004 //
00005 //  This is the header file for the StandardNtupleMaker class
00006 //  which creates the combined Ntuple based on a list of locations
00007 //  in the TES
00008 //
00009 //  It is based upon AtlfastSTLNtupAlg.h by E.Richter-Was
00010 //
00011 //  Author    : H.T.Phillips, P. Clarke, R. Steward, P. Sherwood, E. Richter-Was
00012 //
00013 //  ====================================================================
00014 #ifndef ATLFAST_STANDARDNTUPLEMAKER_H
00015 #define ATLFAST_STANDARDNTUPLEMAKER_H
00016 
00017 
00018 // places to look in the TES for input
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 // Framework include files
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   // Items for the column wise n-tuple
00043   // Miscs
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   // Jets
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   // Electrons
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   // Muons
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   // Photons
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   // Tracks
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   // Particle
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   // Bphys
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   // Pointer to an ntuple
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   // Counters for event processing
00105   long   m_nEvents;                    // Number events processed
00106   TesIO* m_tesIO;
00107 
00108   // member variables pointing to locations in the TES
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   //  IJetCalibrator& m_uJetCal;
00122   //  IJetCalibrator& m_bJetCal;
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 } // end of namespace bracket  
00130 
00131 #endif 
00132 
00133 
00134 
00135 
00136 
00137 
00138 

Generated on Thu Feb 21 14:30:47 2002 for Atlfast by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001