00001
00002
00003
00004
00005 #ifndef MyEventH
00006 #define MyEventH
00007
00008
00009
00010
00011
00020
00021
00022
00023
00024
00025
00026 #include <string>
00027 #include <vector>
00028
00029
00030 #include "TArray.h"
00031
00032
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
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
00112
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
00148
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
00174 int m_run_nb;
00175 int m_event_nb;
00176
00177
00178
00179 double m_event_weight;
00180
00181
00182 std::vector<MyParticle*> m_rec_electron;
00183
00184
00185 std::vector<MyParticle*> m_rec_photon;
00186
00187
00188 std::vector<MyParticle*> m_rec_muon;
00189
00190 std::vector<MyParticle*> m_rec_jet;
00191
00192 std::vector<MyParticle*> m_rec_taujet;
00193
00194
00195
00196 std::vector<MyParticle*> m_truth_particle;
00197
00198
00199
00200 std::vector<MyParticle*> m_truth_jet;
00201
00202
00203
00204 const std::vector<MyVertex*> *m_vertices;
00205
00206 const std::vector<MyVertex*> *m_truth_vertices;
00207
00208 std::vector<MyParticle*> *m_track_jet;
00209
00210 std::vector<MyParticle*> *m_tracks;
00211 std::vector<MyParticle*> *m_truth_track_jet;
00212
00213
00214 const std::vector<MyParticle*> *m_trigger_muon;
00215
00216
00217
00218 MyMissingEtManager m_met_manager;
00219
00220 MyTrigger m_trigger;
00221
00222 MyDatasetInfo *m_dataset_info;
00223
00224
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
00245
00246 };
00247
00248
00249
00250
00251
00252 #include "MyEvent.ixx"
00253
00254 #endif