ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/Morgan/interface/TRootParticle.h
(Generate patch)

Comparing UserCode/Morgan/interface/TRootParticle.h (file contents):
Revision 1.3 by lethuill, Tue Nov 18 13:57:10 2008 UTC vs.
Revision 1.9 by lethuill, Wed Jun 10 11:17:06 2009 UTC

# Line 3 | Line 3
3  
4   #include <string>
5   #include <iostream>
6 + #include <iomanip>
7  
8   #include "Rtypes.h"
9   #include "TLorentzVector.h"
# Line 14 | Line 15 | using namespace std;
15   class TRootParticle : public TLorentzVector
16   {
17  
18 < public:
19 <        
20 <        TRootParticle() : TLorentzVector(), vertex_(), type_(0), charge_(0.) {;}
21 <        TRootParticle(const TRootParticle& particle) : TLorentzVector(particle), vertex_(particle.vertex_), type_(particle.type_), charge_(particle.charge_) {;}
22 <        TRootParticle(Double_t px, Double_t py, Double_t pz, Double_t e) : TLorentzVector(px,py,pz,e), vertex_(), type_(0), charge_(0.) {;}
23 <        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) : TLorentzVector(px,py,pz,e), vertex_(vtx_x,vtx_y,vtx_z), type_(0), charge_(0.) {;}
24 <        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) : TLorentzVector(px,py,pz,e), vertex_(vtx_x,vtx_y,vtx_z), type_(type), charge_(charge) {;}
25 <        TRootParticle(const TLorentzVector &momentum) : TLorentzVector(momentum), vertex_(), type_(0), charge_(0.) {;}
26 <        TRootParticle(const TLorentzVector &momentum, const TVector3 &vertex, Int_t type, Float_t charge) : TLorentzVector(momentum), vertex_(vertex), type_(type), charge_(charge) {;}
27 <        ~TRootParticle() {;}
28 <
29 <        Double_t vx() const  { return vertex_.x(); }
30 <        Double_t vy() const  { return vertex_.y(); }
31 <        Double_t vz() const  { return vertex_.z(); }
32 <        Int_t type() const  { return type_; }
33 <        Float_t charge() const  { return charge_; }
34 <
35 <        // FIXME setVx, setVy and setVz must modify the TLorentzVector
36 <        void setVx(Double_t vx) { vertex_.SetX(vx); }
37 <        void setVy(Double_t vy) { vertex_.SetY(vy); }
38 <        void setVz(Double_t vz) { vertex_.SetZ(vz); }
39 <        void setType(Int_t type) { type_ = type; }
40 <        void setCharge(Int_t charge) { charge_ = charge; }
41 <
42 <        friend std::ostream& operator<< (std::ostream& stream, const TRootParticle& part) {
43 <                stream << "Type=" << part.type_ << "  Charge=" << part.charge_ << " (Et,eta,phi)=("<< part.Et() <<","<< part.Eta() <<","<< part.Phi() << ")"
44 <                                << " vertex(x,y,z)=("<< part.vx() <<","<< part.vy() <<","<< part.vz() << ")";
45 <                                return stream;
46 <        };
47 <        
48 <                
49 < protected:
50 <        
51 <        TVector3 vertex_;
52 <        Int_t type_;
53 <        Float_t charge_;
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 >   protected:
124 >
125 >      TVector3 vertex_;
126 >      Int_t type_;
127 >      Float_t charge_;
128 >      Int_t genParticleIndex_;
129 >      TRef genParticle_;
130 >
131 >      ClassDef (TRootParticle,2);
132  
54        ClassDef (TRootParticle,1);
133   };
134  
135   #endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines