00001
00002
00003
00004
00005 #ifndef MyElectronH
00006 #define MyElectronH
00007
00008
00009
00010
00011
00020
00021
00022
00023
00024
00025
00026 #include <iostream>
00027
00028
00029 #include "TLorentzVector.h"
00030
00031
00032 #include "MyParticle.h"
00033
00034 class MyElectron : public MyParticle {
00035
00036 public:
00037
00038 MyElectron(void) {
00039 init( TLorentzVector(0.0, 0.0, 0.0, 0.0),TLorentzVector(0.0, 0.0, 0.0, 0.0),
00040 0.0, false, false, 0.0, 0.0, 0.0, 0, 0, 0.0, 0, -1, 0);
00041 }
00043 MyElectron(const TLorentzVector & p,
00044 const TLorentzVector & p_track,
00045 const double & echarge,
00046 const bool & egamma_flag,
00047 const bool & softe_flag,
00048 const double & eoverp,
00049 const double & isem,
00050 const double & neuralnet,
00051 const int & index,
00052 const double et_cone[4],
00053 const double ethad1,
00054 const std::vector<double> * et_track_cone=0,
00055 int vertex_index=-1,
00056 const std::vector<double> * trackIsolationEnergy=0) {
00057
00058 init(p, p_track, echarge, egamma_flag, softe_flag, eoverp,
00059 isem, neuralnet, index, et_cone, ethad1,
00060 et_track_cone, vertex_index, trackIsolationEnergy);
00061 }
00078
00079
00080
00081 inline bool e_gamma_flag(void) const;
00085 inline int is_em(void) const;
00087 inline double NeuralNet(void) const;
00089 inline bool soft_e_flag(void) const;
00092 inline double e_over_p(void) const;
00094 inline double Et_in_cone(const int & delta_R_index) const;
00101 inline double ethad1(void) const;
00103
00104 inline double track_Et_in_cone(const int & delta_r_index) const;
00115
00116 inline double trackIsolationEnergy(const int & delta_r_index) const;
00123
00124 inline int id_flag(void) const;
00125
00126
00127 inline void set_e_gamma_flag(const bool & flag);
00131 inline void set_soft_e_flag(const bool & flag);
00135 inline void set_e_over_p(const double & eoverp);
00138 inline void set_Et_in_cone(const double et_in_cone[4]);
00145 inline void set_ethad1(const double & ethad1);
00147 inline void set_track_Et_in_cone(const double et_in_cone[4]);
00158 inline void set_trackIsolationEnergy(const double et_in_cone[4]);
00164
00165 inline void set_id_flag(const int & flag);
00166
00167 inline void PrintParticle(std::string option = "");
00169 inline TLorentzVector tlv_track(void) const;
00170
00171 private:
00172
00173 bool m_egamma_flag;
00174
00175
00176 bool m_softe_flag;
00177
00178 double m_E_over_p;
00179 int m_isEM;
00180 double m_NeuralNet;
00181 double m_Et_in_cone[4];
00182
00183
00184
00185
00186
00187 double m_ethad1;
00188
00189 double m_track_Et_in_cone[4];
00190
00191
00192
00193
00194
00195
00196
00197 double m_trackIsolationEnergy[4];
00198
00199
00200
00201
00202
00203
00204 int m_id_flag;
00205
00206 TLorentzVector m_tlv_track;
00207
00208
00209 inline void init(const TLorentzVector & p,
00210 const TLorentzVector & p_track,
00211 const double & echarge,
00212 const bool & egamma_flag,
00213 const bool & softe_flag,
00214 const double & eoverp,
00215 const double & isem,
00216 const double & neuralnet,
00217 const int & index,
00218 const double et_cone[4],
00219 const double & ethad1,
00220 const std::vector<double> * track_et_cone,
00221 int vertex_index,
00222 const std::vector<double> * trackIsolationEnergy);
00223
00224
00225
00226
00227
00228
00229
00230
00231
00232
00233
00234
00235
00236
00237
00238
00239
00240
00241
00242
00243
00244
00245
00246
00247
00248
00249
00250 };
00251
00252
00253
00254
00255
00256 #include "MyElectron.ixx"
00257
00258 #endif