CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Muon.h
Go to the documentation of this file.
1 #ifndef MuScleFitMuon_h
2 #define MuScleFitMuon_h
3 
4 #include "TObject.h"
6 #include "TLorentzVector.h"
7 
8 #include <iostream>
9 
10 //Adding a stupid comment
11 // Another one
13 
14  class MuScleFitMuon : public TObject
15  {
16  public:
18  fP4(lorentzVector(0.,0.,0.,0.)),
19  fCharge(0),//+1 or -1
20  fPtError(0.),
21  fHitsMuon(0),
22  fHitsTk(0)
23  {}
24 
25  MuScleFitMuon(const lorentzVector & initP4, const int initCharge=-1, const double initPtError=0, const unsigned int initHitsTk=0,
26  const unsigned int initHitsMuon=0) :
27  fP4(initP4),
28  fCharge(initCharge),
29  fPtError(initPtError),
30  fHitsMuon(initHitsMuon),
31  fHitsTk(initHitsTk)
32  {}
33 
35  void copy(const MuScleFitMuon & copyMuon)
36  {
37  fP4 = copyMuon.p4();
38  fPtError = copyMuon.ptError();
39  fCharge = copyMuon.charge();
40  fHitsMuon = copyMuon.hitsMuon();
41  fHitsTk = copyMuon.hitsTk();
42  }
43 
44  // Getters
45  lorentzVector p4() const {return fP4;}
46  Int_t charge() const {return fCharge;}
47  Double_t ptError() const {return fPtError;}
48  UInt_t hitsMuon() const {return fHitsMuon;}
49  UInt_t hitsTk() const {return fHitsTk;}
50 
51  // Dummy functions to create compatibility with calls to lorentzVector
52  Float_t x() const { return fP4.x(); }
53  Float_t y() const { return fP4.y(); }
54  Float_t z() const { return fP4.z(); }
55  Float_t t() const { return fP4.t(); }
56  Float_t e() const { return fP4.e(); }
57 
58  Float_t E() const {return fP4.E(); }
59  Float_t energy() const {return fP4.energy(); }
60  Float_t Pt() const {return fP4.Pt(); }
61  Float_t Eta() const {return fP4.Eta(); }
62  Float_t Phi() const {return fP4.Phi(); }
63 
64  Float_t pt() const {return fP4.pt(); }
65  Float_t eta() const {return fP4.eta(); }
66  Float_t phi() const {return fP4.phi(); }
67 
68 
69  friend std::ostream& operator<< (std::ostream& stream, const MuScleFitMuon& mu) {
70  stream << "p4 = " << mu.p4() << ", q = " << mu.charge() << ", ptError = " << mu.ptError() << ", hitsTk = " <<mu. hitsTk() << ", hitsMuon = " << mu.hitsMuon();
71  return stream;
72  }
73 
75  Int_t fCharge;
76  Double_t fPtError;
79 
80  ClassDef(MuScleFitMuon, 2)
81  };
82 ClassImp(MuScleFitMuon)
83 
84 
85 #endif
86 
Float_t x() const
Definition: Muon.h:52
UInt_t fHitsTk
Definition: Muon.h:78
Float_t E() const
Definition: Muon.h:58
Float_t energy() const
Definition: Muon.h:59
friend std::ostream & operator<<(std::ostream &stream, const MuScleFitMuon &mu)
Definition: Muon.h:69
Float_t e() const
Definition: Muon.h:56
Float_t Pt() const
Definition: Muon.h:60
Float_t Eta() const
Definition: Muon.h:61
void copy(const MuScleFitMuon &copyMuon)
Used to copy the content of another MuScleFitMuon.
Definition: Muon.h:35
Int_t fCharge
Definition: Muon.h:75
Float_t pt() const
Definition: Muon.h:64
Float_t z() const
Definition: Muon.h:54
UInt_t hitsMuon() const
Definition: Muon.h:48
reco::Particle::LorentzVector lorentzVector
Definition: GenMuonPair.h:9
UInt_t fHitsMuon
Definition: Muon.h:77
MuScleFitMuon()
Definition: Muon.h:17
Double_t ptError() const
Definition: Muon.h:47
Double_t fPtError
Definition: Muon.h:76
UInt_t hitsTk() const
Definition: Muon.h:49
const int mu
Definition: Constants.h:23
Float_t y() const
Definition: Muon.h:53
Float_t eta() const
Definition: Muon.h:65
unsigned int UInt_t
Definition: FUTypes.h:12
Float_t Phi() const
Definition: Muon.h:62
lorentzVector fP4
Definition: Muon.h:74
MuScleFitMuon(const lorentzVector &initP4, const int initCharge=-1, const double initPtError=0, const unsigned int initHitsTk=0, const unsigned int initHitsMuon=0)
Definition: Muon.h:25
Int_t charge() const
Definition: Muon.h:46
lorentzVector p4() const
Definition: Muon.h:45
Float_t phi() const
Definition: Muon.h:66
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Particle.h:25
Float_t t() const
Definition: Muon.h:55