NtupleReader/NtupleReader/MyEvent.h

00001 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00002 // 23.10.2006, AUTHOR: OLIVER KORTNER
00003 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00004 
00005 #ifndef MyEventH
00006 #define MyEventH
00007 
00008 //:::::::::::::::::::
00009 //:: CLASS MyEvent ::
00010 //:::::::::::::::::::
00011 
00020 
00021 //::::::::::::::::::
00022 //:: HEADER FILES ::
00023 //::::::::::::::::::
00024 
00025 // STL //
00026 #include <string>
00027 #include <vector>
00028 
00029 // ROOT //
00030 #include "TArray.h"
00031 
00032 // my analysis //
00033 #include "MyTrigger.h"
00034 #include "MyTriggerMuon.h"
00035 #include "MyElectron.h"
00036 #include "MyPhoton.h"
00037 #include "MyMuon.h"
00038 #include "MyParticleJet.h"
00039 #include "MyTauJet.h"
00040 #include "MyTruthParticle.h"
00041 #include "MyTools.h"
00042 #include "MyMissingEtManager.h"
00043 #include "MyDatasetInfo.h"
00044 #include "MyVertex.h"
00045 #include "MyTrackJet.h"
00046 #include "MyTrack.h"
00047 
00048 class MyEvent {
00049 
00050 public:
00051     // Constructor //
00052     MyEvent( const int & run_nb,
00053              const int & event_nb,
00054              const double & ev_weight,
00055              const std::vector<MyParticle*> & rec_electron,
00056              const std::vector<MyParticle*> & rec_photon,
00057              const std::vector<MyParticle*> & rec_muon,
00058              const std::vector<MyParticle*> & rec_jet,
00059              const std::vector<MyParticle*> & rec_taujet,
00060              const std::vector<MyParticle*> & truth_particle,
00061              const std::vector<MyParticle*> & truth_jet,
00062              const MyMissingEtManager & met_manager,
00063              const MyTrigger & trigger,
00064               std::vector<MyParticle*> * track_jet=0,
00065               std::vector<MyParticle*> * tracks=0,
00066               std::vector<MyParticle*> * truth_track_jet=0,
00067              const std::vector<MyVertex*> * vertices=0,
00068              const std::vector<MyVertex*> * truth_vertices=0,
00069              const std::vector<MyParticle*> * trigger_muon=0
00070              ) {
00071                     
00072         init(run_nb, event_nb, ev_weight,
00073              rec_electron, rec_photon, rec_muon, rec_jet, rec_taujet,
00074              truth_particle, truth_jet, met_manager, trigger,
00075              track_jet, tracks, truth_track_jet, vertices, truth_vertices, trigger_muon);
00076     }
00106 
00107 
00108     virtual ~MyEvent() {};
00110 
00111     // Methods //
00112     // get methods //
00113     inline int run_number(void) const;
00115     inline int event_number(void) const;
00117     inline double event_weight(void) const;
00119     inline std::vector<MyParticle*> reco_electrons(void) const;
00122     inline std::vector<MyParticle*> reco_photons(void) const;
00125     inline std::vector<MyParticle*> reco_muons(int alg_flag) const;
00132     inline std::vector<MyParticle*> reco_muons(std::string alg_string = "default") const;
00135     inline std::vector<MyParticle*> reco_jets(void) const;
00138     inline std::vector<MyParticle*> reco_taujets(void) const;
00141     inline std::vector<MyParticle*> truth_particles(void) const;
00144     inline std::vector<MyParticle*> truth_jets(void) const;
00147     //inline MyMissingEt missinget(void) const; 
00148     // get the MyMissingEt Object
00149     inline MyMissingEtManager met_manager(void) const;  
00151     inline MyTrigger trigger(void) const;       
00153 
00154     inline const std::vector<MyVertex*> * primary_vertices(void) const;
00156     inline const std::vector<MyVertex*> * truth_vertices(void) const;
00158     inline std::vector<MyParticle*> * track_jets(void) const;
00160     inline std::vector<MyParticle*> * tracks(void) const;
00162     inline std::vector<MyParticle*> * truth_track_jets(void) const;
00164     inline const std::vector<MyParticle*> * trigger_muon(void) const;
00166     
00167 
00168     inline void Print(std::string option = "") const;
00170 
00171     private:
00172 
00173     // run and event number //
00174     int m_run_nb; // run number
00175     int m_event_nb; // event number
00176 
00177     // event data //
00178     // weight //
00179     double m_event_weight; // event weight
00180 
00181     // data from reconstruction //
00182     std::vector<MyParticle*> m_rec_electron; // vector containing all
00183     // reconstructed electrons in
00184     // the event
00185     std::vector<MyParticle*> m_rec_photon; // vector containing all
00186     // reconstructed photons in
00187     // the event
00188     std::vector<MyParticle*> m_rec_muon; // vector containing all reconstructed
00189     // muons in the event
00190     std::vector<MyParticle*> m_rec_jet; // vector containing all
00191     // reconstructed jets in the event
00192     std::vector<MyParticle*> m_rec_taujet; // vector containing all
00193     // reconstructed taujets in the event
00194            
00195     // Monte-Carlo truth //
00196     std::vector<MyParticle*> m_truth_particle; // vector containing all
00197     // truth particles found in the 
00198     // Monte-Carlo truth
00199 
00200     std::vector<MyParticle*> m_truth_jet; // vector containing all jets
00201     // found in the Monte-Carlo
00202     // truth
00203 
00204     const std::vector<MyVertex*> *m_vertices;       // primary vertices 
00205     
00206     const std::vector<MyVertex*> *m_truth_vertices; // truth vertices
00207     
00208     std::vector<MyParticle*> *m_track_jet; // pointer to the
00209                                            // track jets
00210     std::vector<MyParticle*> *m_tracks; // pointer to the tracks
00211     std::vector<MyParticle*> *m_truth_track_jet;
00212                                                 // pointer to the truth track
00213                                                 // jets
00214     const std::vector<MyParticle*> *m_trigger_muon; // pointer to the
00215                                               // trigger muon array
00216     //Missing Et Data
00217     //MyMissingEt m_missinget;
00218     MyMissingEtManager m_met_manager;
00219     // Trigger Data
00220     MyTrigger m_trigger;
00221     // MyDatasetInfo
00222     MyDatasetInfo *m_dataset_info;
00223 
00224     // private methods //
00225     inline void init(const int & run_nb,
00226                      const int & event_nb,
00227                      const double & ev_weight,
00228                      const std::vector<MyParticle*> & rec_electron,
00229                      const std::vector<MyParticle*> & rec_photon,
00230                      const std::vector<MyParticle*> & rec_muon,
00231                      const std::vector<MyParticle*> & rec_jet,
00232                      const std::vector<MyParticle*> & rec_taujet,
00233                      const std::vector<MyParticle*> & truth_particle,
00234                      const std::vector<MyParticle*> & truth_jet,
00235                      const MyMissingEtManager & met_manager,
00236                      const MyTrigger & trigger,
00237                       std::vector<MyParticle*> * track_jet,
00238                       std::vector<MyParticle*> * tracks,
00239                       std::vector<MyParticle*> * truth_track_jet,
00240                      const std::vector<MyVertex*> * vertices,
00241                      const std::vector<MyVertex*> * truth_vertices,
00242                      const std::vector<MyParticle*> * trigger_muon
00243                      );
00244     // initialization method
00245 
00246 };
00247 
00248 //::::::::::::::::::::::::::::
00249 //:: INCLUDE INLINE METHODS ::
00250 //::::::::::::::::::::::::::::
00251 
00252 #include "MyEvent.ixx"
00253 
00254 #endif

Generated on Tue Oct 21 11:50:45 2008 for NtupleAnalysis by  doxygen 1.5.1