ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/Morgan/interface/TRootParticle.h
Revision: 1.8
Committed: Tue Apr 7 17:09:06 2009 UTC (16 years ago) by lethuill
Content type: text/plain
Branch: MAIN
CVS Tags: JeSuisBeaucoupPlusGrosQunReco_2_2_7_01, RecoPhoton_2_2_7_02, pat_2_2_7_01, RecoPhoton_2_2_7_01, pat_2_2_5_03, pat_2_2_5_02
Changes since 1.7: +3 -2 lines
Log Message:
Cleaning dependencies / Add genMETs and genJets and references to them in reco objects

File Contents

# Content
1 #ifndef TRootParticle_h
2 #define TRootParticle_h
3
4 #include <string>
5 #include <iostream>
6 #include <iomanip>
7
8 #include "Rtypes.h"
9 #include "TLorentzVector.h"
10 #include "TVector3.h"
11 #include "TRef.h"
12
13 using namespace std;
14
15 class TRootParticle : public TLorentzVector
16 {
17
18 public:
19
20 TRootParticle() :
21 TLorentzVector()
22 ,vertex_()
23 ,type_(0)
24 ,charge_(0.)
25 ,genParticleIndex_(-1)
26 ,genParticle_(0)
27 {;}
28
29 TRootParticle(const TRootParticle& particle) :
30 TLorentzVector(particle)
31 ,vertex_(particle.vertex_)
32 ,type_(particle.type_)
33 ,charge_(particle.charge_)
34 ,genParticleIndex_(particle.genParticleIndex_)
35 ,genParticle_(particle.genParticle_)
36 {;}
37
38 TRootParticle(Double_t px, Double_t py, Double_t pz, Double_t e) :
39 TLorentzVector(px,py,pz,e)
40 ,vertex_()
41 ,type_(0)
42 ,charge_(0.)
43 ,genParticleIndex_(-1)
44 ,genParticle_(0)
45 {;}
46
47 TRootParticle(Double_t px, Double_t py, Double_t pz, Double_t e, Double_t vtx_x, Double_t vtx_y, Double_t vtx_z) :
48 TLorentzVector(px,py,pz,e)
49 ,vertex_(vtx_x,vtx_y,vtx_z)
50 ,type_(0)
51 ,charge_(0.)
52 ,genParticleIndex_(-1)
53 ,genParticle_(0)
54 {;}
55
56 TRootParticle(Double_t px, Double_t py, Double_t pz, Double_t e, Double_t vtx_x, Double_t vtx_y, Double_t vtx_z,Int_t type, Float_t charge) :
57 TLorentzVector(px,py,pz,e)
58 ,vertex_(vtx_x,vtx_y,vtx_z)
59 ,type_(type)
60 ,charge_(charge)
61 ,genParticleIndex_(-1)
62 ,genParticle_(0)
63 {;}
64
65
66 TRootParticle(const TLorentzVector &momentum) :
67 TLorentzVector(momentum)
68 ,vertex_()
69 ,type_(0)
70 ,charge_(0.)
71 ,genParticleIndex_(-1)
72 ,genParticle_(0)
73 {;}
74
75 TRootParticle(const TLorentzVector &momentum, const TVector3 &vertex) :
76 TLorentzVector(momentum)
77 ,vertex_(vertex)
78 ,type_(0)
79 ,charge_(0.)
80 ,genParticleIndex_(-1)
81 ,genParticle_(0)
82 {;}
83
84 TRootParticle(const TLorentzVector &momentum, const TVector3 &vertex, Int_t type, Float_t charge) :
85 TLorentzVector(momentum)
86 ,vertex_(vertex)
87 ,type_(type)
88 ,charge_(charge)
89 ,genParticleIndex_(-1)
90 ,genParticle_(0)
91 {;}
92
93 ~TRootParticle() {;}
94
95
96 Double_t vx() const { return vertex_.x(); }
97 Double_t vy() const { return vertex_.y(); }
98 Double_t vz() const { return vertex_.z(); }
99 Int_t type() const { return type_; }
100 Float_t charge() const { return charge_; }
101 Int_t genParticleIndex() const { return genParticleIndex_; }
102 TRootParticle* genParticle() const { return (TRootParticle*) genParticle_.GetObject() ;}
103 virtual TString typeName() const { return "TRootParticle"; }
104
105
106 // FIXME setVx, setVy and setVz must modify the TLorentzVector ?
107 void setVx(Double_t vx) { vertex_.SetX(vx); }
108 void setVy(Double_t vy) { vertex_.SetY(vy); }
109 void setVz(Double_t vz) { vertex_.SetZ(vz); }
110 void setType(Int_t type) { type_ = type; }
111 void setCharge(Int_t charge) { charge_ = charge; }
112 void setGenParticleIndex(Int_t genParticleIndex) { genParticleIndex_ = genParticleIndex; }
113 void setGenParticle(TObject* genParticle) { genParticle_ = genParticle; }
114
115 friend std::ostream& operator<< (std::ostream& stream, const TRootParticle& part)
116 {
117 stream << "Type=" << part.type_ << " Charge=" << part.charge_ << " (Et,eta,phi)=("<< setw(10) << part.Et() <<","<< setw(10) << part.Eta() <<","<< setw(10) << part.Phi() << ")"
118 << " vertex(x,y,z)=("<< part.vx() <<","<< part.vy() <<","<< part.vz() << ")";
119 return stream;
120 };
121
122
123
124 protected:
125
126 TVector3 vertex_;
127 Int_t type_;
128 Float_t charge_;
129 Int_t genParticleIndex_;
130 TRef genParticle_;
131
132 ClassDef (TRootParticle,2);
133 };
134
135 #endif
136
137