NtupleReader/NtupleReader/MyMuon.h

00001 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00002 // 23.10.2006, AUTHOR: OLIVER KORTNER
00003 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00004 
00005 #ifndef MyMuonH
00006 #define MyMuonH
00007 
00008 //::::::::::::::::::
00009 //:: CLASS MyMuon ::
00010 //::::::::::::::::::
00011 
00020 
00021 //::::::::::::::::::
00022 //:: HEADER FILES ::
00023 //::::::::::::::::::
00024 
00025 // standard C++ //
00026 #include <iostream>
00027 
00028 // ROOT //
00029 #include "TLorentzVector.h"
00030 
00031 // MyParticle base class //
00032 #include "MyParticle.h"
00033 
00034 class MyMuon : public MyParticle {
00035 
00036 public:
00037 // Constructors //
00038         MyMuon(void) {
00039             init(TLorentzVector(0.0, 0.0, 0.0, 0.0), 
00040                  0.0, 0, 0, 0, 0, 0, 0.0, 0, 0.0, 0.0, 
00041                  0, 0.0, 0, 0, -1, 0);
00042                 }
00044         
00045         MyMuon( const TLorentzVector & p,
00046                 const double & mu_charge,
00047                 const int & alg_flag,
00048                 const int & rec_flag,
00049                 const int & index,
00050                 const double Et_cone[8], 
00051                 const int nb_tracks_cone[8],
00052                 const double & fitChi2,
00053                 const int & fitNumberDoF,
00054                 const double & fitChi2OverDoF,
00055                 const double & matchChi2,
00056                 const int & matchNumberDoF,
00057                 const double & matchChi2OverDoF,
00058                 const int & hasCombMuonTrackParticle,
00059                 const std::vector<double> * track_Et_cone=0,
00060                 int vertex_index=-1,
00061                 const std::vector<double> * trackIsolationEnergy=0) {
00062          
00063             init(p, mu_charge, alg_flag, rec_flag, index, Et_cone, nb_tracks_cone, 
00064                  fitChi2, fitNumberDoF, fitChi2OverDoF, 
00065                  matchChi2, matchNumberDoF, matchChi2OverDoF, 
00066                  hasCombMuonTrackParticle, track_Et_cone, vertex_index, trackIsolationEnergy);
00067         }
00120 
00121 // Methods //
00122 // get methods //
00123         inline int reconstruction_flag(void) const;
00131 
00132         inline int algorithm_flag(void) const;
00138 
00139         inline bool hasCombinedMuonTrackParticle(void) const;
00141         inline double Et_in_cone(const int & delta_R_index) const;
00152         inline double track_Et_in_cone(const int & delta_R_index) const;
00167         inline double trackIsolationEnergy(const int & delta_R_index) const;
00181         inline int nb_tracks_in_cone(const int & delta_R_index) const;
00192         inline double fitChi2(void) const;
00193         inline int fitNumberDoF(void) const;
00194         inline double fitChi2OverDoF(void) const;
00195         inline double matchChi2(void) const;
00196         inline int matchNumberDoF(void) const;
00197         inline double matchChi2OverDoF(void) const;
00198         
00199         
00200 
00201 // set methods //
00202         inline void set_reconstruction_flag(const int & flag);
00210         inline void set_Et_in_cone(const double Et_cone[8]);
00214         inline void set_track_Et_in_cone(const double Et_cone[8]);
00218         inline void set_trackIsolationEnergy(const double Et_cone[8]);
00222         inline void set_nb_tracks_in_cone(const int nb_tracks_cone[8]);
00226 
00227         inline void PrintParticle(std::string option = "");
00229 
00230 private:
00231 // muon data //
00232     int m_alg_flag; 
00233 
00234         int m_flag; // reconstruction flag:
00235                     // = -1: combined muon (not best match),
00236                     // = 1: combined muon (best match),
00237                     // = 2: stand-alon muon,
00238                     // = 3: low momentum muon,
00239                     // = 0: none of the upper
00240         bool m_hasCombinedMuonTrackParticle;
00241         double m_Et_cone[8]; // m_Et_cone[0] = isolation Et in a cone of 0.1,
00242                              // m_Et_cone[1] = isolation Et in a cone of 0.2,
00243                              // m_Et_cone[2] = isolation Et in a cone of 0.3,
00244                              // m_Et_cone[3] = isolation Et in a cone of 0.4,
00245                              // m_Et_cone[4] = isolation Et in a cone of 0.45,
00246                              // m_Et_cone[5] = isolation Et in a cone of 0.5,
00247                              // m_Et_cone[6] = isolation Et in a cone of 0.6,
00248                              // m_Et_cone[7] = isolation Et in a cone of 0.7
00249         double m_track_Et_cone[8];
00250                         // m_track_Et_cone[0] = track Et in a cone of 0.1,
00251                         // m_track_Et_cone[1] = track Et in a cone of 0.2,
00252                         // m_track_Et_cone[2] = track Et in a cone of 0.3,
00253                         // m_track_Et_cone[3] = track Et in a cone of 0.4,
00254                         // m_track_Et_cone[4] = track Et in a cone of 0.45,
00255                         // m_track_Et_cone[5] = track Et in a cone of 0.5,
00256                         // m_track_Et_cone[6] = track Et in a cone of 0.6,
00257                         // m_track_Et_cone[7] = track Et in a cone of 0.7
00258         double m_trackIsolationEnergy[8];
00259                         // m_trackIsolationEnergy[0] = track Et in a cone of 0.1,
00260                         // m_trackIsolationEnergy[1] = track Et in a cone of 0.2,
00261                         // m_trackIsolationEnergy[2] = track Et in a cone of 0.3,
00262                         // m_trackIsolationEnergy[3] = track Et in a cone of 0.4,
00263                         // m_trackIsolationEnergy[4] = track Et in a cone of 0.45,
00264                         // m_trackIsolationEnergy[5] = track Et in a cone of 0.5,
00265                         // m_trackIsolationEnergy[6] = track Et in a cone of 0.6,
00266                         // m_trackIsolationEnergy[7] = track Et in a cone of 0.7
00267         int m_nb_tracks_cone[8]; // m_nb_tracks_cone[0] = number of tracks in a
00268                                  //                     cone of 0.1,
00269                                  // m_nb_tracks_cone[1] = number of tracks in a
00270                                  //                     cone of 0.2,
00271                                  // m_nb_tracks_cone[2] = number of tracks in a
00272                                  //                     cone of 0.3,
00273                                  // m_nb_tracks_cone[3] = number of tracks in a
00274                                  //                     cone of 0.4,
00275                                  // m_nb_tracks_cone[4] = number of tracks in a
00276                                  //                     cone of 0.45,
00277                                  // m_nb_tracks_cone[5] = number of tracks in a
00278                                  //                     cone of 0.5,
00279                                  // m_nb_tracks_cone[6] = number of tracks in a
00280                                  //                     cone of 0.6,
00281                                  // m_nb_tracks_cone[7] = number of tracks in a
00282                                  //                     cone of 0.7
00283         double m_fitChi2;               // track fit chi2
00284         int m_fitNumberDoF;             // number of DoF of the track fit
00285         double m_fitChi2OverDoF;        // chi2 over number of DoF of the track fit
00286         double m_matchChi2;             // chi2 of the track match
00287         int m_matchNumberDoF;           // number of DoF of the track match
00288         double m_matchChi2OverDoF;      // chi2 over number of DoF of the track match
00289 
00290 // private methods //
00291         inline void init( const TLorentzVector & p,
00292                           const double & mu_charge,
00293                           const int & alg_flag,
00294                           const int & rec_flag,
00295                           const int & index,
00296                           const double Et_cone[8],
00297                           const int nb_tracks_cone[8],
00298                           const double & fitChi2,
00299                           const int & fitNumberDoF,
00300                           const double & fitChi2OverDoF,
00301                           const double & matchChi2,
00302                           const int & matchNumberDoF,
00303                           const double & matchChi2OverDoF,
00304                           const int & hasCombMuonTrackParticle,
00305                           const std::vector<double> * track_Et_cone,
00306                           int vertex_index,
00307                           const std::vector<double> * trackIsolationEnergy);
00308                                         // initialization method;
00309                                         // set the fourmomentum of the muon to 
00310                                         // pm;
00311                                         // mu_charge = charge of the muon;
00312                                         // alg_flag = reconstruction algorithm:
00313                                         // = 1: AtlfastMuonCollection
00314                                         // = 2: MuidMuonCollection
00315                                         // = 3: StacoMuonCollection
00316                                         // = 0: none of the upper;
00317                                         // reconstruction flag:
00318                                         // = -1: combined muon (not best match),
00319                                         // = 1: combined muon (best match),
00320                                         // = 2: stand-alon muon,
00321                                         // = 3: low momentum muon,
00322                                         // = 0: none of the upper;
00323                                         // index = index in original vector
00324                                         // Et_cone[0] = isolation Et in a cone 
00325                                         //              of 0.1,
00326                                         // Et_cone[1] = isolation Et in a cone 
00327                                         //              of 0.2,
00328                                         // Et_cone[2] = isolation Et in a cone 
00329                                         //              of 0.3,
00330                                         // Et_cone[3] = isolation Et in a cone 
00331                                         //              of 0.4,
00332                                         // Et_cone[4] = isolation Et in a cone 
00333                                         //              of 0.45,
00334                                         // Et_cone[5] = isolation Et in a cone 
00335                                         //              of 0.5,
00336                                         // Et_cone[6] = isolation Et in a cone 
00337                                         //              of 0.6,
00338                                         // Et_cone[6] = isolation Et in a cone 
00339                                         //              of 0.7;
00340                                         // nb_tracks_cone[0] = number of tracks in a
00341                                         //                     cone of 0.1,
00342                                         // nb_tracks_cone[1] = number of tracks in a
00343                                         //                     cone of 0.2,
00344                                         // nb_tracks_cone[2] = number of tracks in a
00345                                         //                     cone of 0.3,
00346                                         // nb_tracks_cone[3] = number of tracks in a
00347                                         //                     cone of 0.4,
00348                                         // nb_tracks_cone[4] = number of tracks in a
00349                                         //                     cone of 0.45,
00350                                         // nb_tracks_cone[5] = number of tracks in a
00351                                         //                     cone of 0.5,
00352                                         // nb_tracks_cone[6] = number of tracks in a
00353                                         //                     cone of 0.6,
00354                                         // nb_tracks_cone[7] = number of tracks in a
00355                                         //                     cone of 0.7
00356                                         // hasCombMuonTrackParticle
00357                                         // track_Et_cone as defined in the
00358                                         // constructor;
00359                                         // vertex_index = index of the
00360                                         //                associated primary
00361                                         //                vertex
00362                                         // trackIsolationEnergy as defined in the
00363                                         // constructor;
00364 };
00365 
00366 //::::::::::::::::::::::::::::::::::::::
00367 //:: IMPLEMENTATION OF INLINE METHODS ::
00368 //::::::::::::::::::::::::::::::::::::::
00369 
00370 #include "MyMuon.ixx"
00371 
00372 #endif

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