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 #include <string>
00018 
00019 // Framework include files
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:
00028     // Items for the column wise n-tuple
00029     // Miscs
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;
00033     // Jets
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;
00038     // AtlfastB (=corrected) Jets
00039     NTuple::Item<long>              m_njetB;
00040     NTuple::Array<long>             m_codejetB;
00041     NTuple::Array<float>            m_pxjetB, m_pyjetB, m_pzjetB, m_eejetB;
00042     // Electrons
00043     NTuple::Item<long>              m_nele;
00044     NTuple::Array<long>             m_codeele;
00045     NTuple::Array<float>            m_pxele, m_pyele, m_pzele, m_eeele;
00046     // Muons
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;
00053     // Photons
00054     NTuple::Item<long>              m_npho;
00055     NTuple::Array<long>             m_codepho;
00056     NTuple::Array<float>            m_pxpho, m_pypho, m_pzpho, m_eepho;
00057     // Tracks
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;
00072     // Particle
00073     NTuple::Item<long>              m_npart;
00074     NTuple::Array<long>             m_kfpart;
00075     NTuple::Array<float>            m_pxpart, m_pypart, m_pzpart, m_eepart ;
00076     // Bphys
00077     NTuple::Item<long>              m_nbphys;
00078     NTuple::Array<long>             m_kbphys, m_kfbphys;
00079     NTuple::Array<long>             m_pxphys, m_pybphys, m_pzbphys, m_eebphys ;
00080     NTuple::Array<long>             m_vxphys, m_vybphys, m_vzbphys ;
00081     
00082     
00083     // Pointer to an ntuple
00084     NTuple::Tuple* p_nt1;
00085     
00086   public:
00088     StandardNtupleMaker(const std::string& name, ISvcLocator* pSvcLocator); 
00089     StatusCode initialize();
00090     StatusCode execute();
00091     StatusCode finalize();
00092     
00093   private:
00094     // Counters for event processing
00095     long   m_nEvents;                    // Number events processed
00096     TesIO* m_tesIO;
00097     
00098     // member variables pointing to locations in the TES
00099     std::string m_atlfastEventLocation;
00100     std::string m_jetLocation;
00101     std::string m_jetBLocation;
00102     std::string m_electronLocation;
00103     std::string m_isolatedMuonLocation;
00104     std::string m_nonIsolatedMuonLocation;
00105     std::string m_photonLocation;
00106     std::string m_trackLocation;
00107     std::string m_mcTruthLocation;
00108     std::string m_bPhysicsLocation;
00109     std::string m_triggerLocation;  
00110     std::string m_eventHeaderLocation;  
00111     
00112     //  IJetCalibrator& m_uJetCal;
00113     //  IJetCalibrator& m_bJetCal;
00114     JetRecalibrator*  m_jetCal;
00115     
00116     typedef std::vector<HepMC::GenParticle*>            t_MC_particleCollection; 
00117     typedef std::vector<HepMC::GenParticle*>::iterator  t_MC_particleIterator;
00118   };
00119   
00120 } // end of namespace bracket  
00121 
00122 #endif 

Generated on Wed May 1 14:11:32 2002 for AtlfastAlgs by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001