ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitEdm/DataFormats/interface/DecayPart.h
Revision: 1.7
Committed: Fri Sep 19 11:59:51 2008 UTC (16 years, 7 months ago) by bendavid
Content type: text/plain
Branch: MAIN
Changes since 1.6: +8 -3 lines
Log Message:
Added daughter momenta from fit

File Contents

# User Rev Content
1 loizides 1.1 //--------------------------------------------------------------------------------------------------
2 bendavid 1.7 // $Id: DecayPart.h,v 1.6 2008/09/14 15:00:29 loizides Exp $
3 loizides 1.1 //
4     // DecayPart
5     //
6     // Implementation of a decay particle class for use in vertexing based analyses. The contents of a
7     // decay particle is basically its link to the particles it decays to. This will be hopefully at
8     // some point a useful and good implementation. See the double dispatcher doAction(MyAction).
9     //
10 loizides 1.5 // Authors: C.Paus
11 loizides 1.1 //--------------------------------------------------------------------------------------------------
12    
13     #ifndef MITEDM_DECAYPART_H
14     #define MITEDM_DECAYPART_H
15    
16     #include <iostream>
17     #include <vector>
18 loizides 1.6 //#include "CLHEP/Vector/LorentzVector.h"
19     //#include "CLHEP/Geometry/Point3D.h"
20     //#include "CLHEP/Matrix/SymMatrix.h"
21 loizides 1.1 #include "MitEdm/DataFormats/interface/Types.h"
22     #include "MitEdm/DataFormats/interface/BasePart.h"
23 bendavid 1.2 #include "MitEdm/DataFormats/interface/BasePartFwd.h"
24 loizides 1.1
25     namespace mitedm
26     {
27     class BasePartAction;
28     class DecayPart : public BasePart
29     {
30    
31     public:
32     // Decay type
33     enum DecayType {Fast, Slow};
34    
35     DecayPart() {}
36     DecayPart(int pid) {}
37 bendavid 1.3 DecayPart(int pid, DecayType dType);
38 loizides 1.1
39     // Accessors
40     DecayType decayType () const { return decayType_; }
41    
42     // Override recursion helper method
43     virtual void doAction (BasePartAction *action) const;
44     virtual double charge () const { return 0.; }
45    
46     // Extend the particle contents
47 bendavid 1.2 void addChild (BasePartBaseRef partRef) { children_.push_back(partRef); }
48 bendavid 1.7 void addChildMom (FourVector p4) { childrenMom_.push_back(p4); }
49 loizides 1.1
50 bendavid 1.7 const BasePart* getChild (int i) const { return children_.at(i).get(); }
51 bendavid 1.2 const BasePartBaseRef getChildRef (int i) const { return children_.at(i); }
52 bendavid 1.7 const FourVector &getChildMom (int i) const { return childrenMom_.at(i);}
53     int nChildMom () const { return childrenMom_.size(); }
54     int nChild () const { return children_.size(); }
55 loizides 1.1
56     virtual void print (std::ostream& os = std::cout) const;
57    
58     //----------------------------------------------------------------------------------------------
59     // Accessors/Setter: Base Vertex fit info from this level
60     //----------------------------------------------------------------------------------------------
61     // Fit quality (does not belong here)
62     double prob() const { return prob_; }
63     double chi2() const { return chi2_; }
64     int ndof() const { return ndof_; }
65     void setProb(double prob) { prob_ = prob;}
66     void setChi2(double chi2) { chi2_ = chi2;}
67     void setNdof(int ndof) { ndof_ = ndof;}
68    
69     // Fitted Mass
70     double fittedMass() const { return fittedMass_; }
71     void setFittedMass(double fittedMass) { fittedMass_ = fittedMass;}
72     // Fitted Mass Error
73     double fittedMassError() const { return fittedMassError_; }
74     void setFittedMassError(double fittedMassError) { fittedMassError_ = fittedMassError;}
75     // Lxy
76     double lxy() const { return lxy_; }
77     void setLxy(double lxy) { lxy_ = lxy;}
78     // Lxy Error
79     double lxyError() const { return lxyError_; }
80     void setLxyError(double lxyError) { lxyError_ = lxyError;}
81     // LxyToPv (length to primary vertex)
82     double lxyToPv() const { return lxyToPv_; }
83     void setLxyToPv(double lxyToPv) { lxyToPv_ = lxyToPv;}
84     // LxyToPv Error
85     double lxyToPvError() const { return lxyToPvError_; }
86     void setLxyToPvError(double lxyToPvError) { lxyToPvError_ = lxyToPvError;}
87     // Dxy (two dimensional impact parameter)
88     double dxy() const { return dxy_; }
89     void setDxy(double dxy) { dxy_ = dxy;}
90     // Dxy Error
91     double dxyError() const { return dxyError_; }
92     void setDxyError(double dxyError) { dxyError_ = dxyError;}
93     // DxyToPv (two dimensional impact parameter with respect to primary vertex)
94     double dxyToPv() const { return dxyToPv_; }
95     void setDxyToPv(double dxyToPv) { dxyToPv_ = dxyToPv;}
96     // DlxyToPv Error
97     double dxyToPvError() const { return dxyToPvError_; }
98     void setDxyToPvError(double dxyToPvError) { dxyToPvError_ = dxyToPvError;}
99     // Lz
100     double lz() const { return lz_; }
101     void setLz(double lz) { lz_ = lz;}
102     // Lz Error
103     double lzError() const { return lzError_; }
104     void setLzError(double lzError) { lzError_ = lzError;}
105     // LzToPv (length to primary vertex)
106     double lzToPv() const { return lzToPv_; }
107     void setLzToPv(double lzToPv) { lzToPv_ = lzToPv;}
108     // LzToPv Error
109     double lzToPvError() const { return lzToPvError_; }
110     void setLzToPvError(double lzToPvError) { lzToPvError_ = lzToPvError;}
111     // CTau
112     double cTau() const { return cTau_; }
113     void setCTau(double cTau) { cTau_ = cTau;}
114     // CTau Error
115     double cTauError() const { return cTauError_; }
116     void setCTauError(double cTauError) { cTauError_ = cTauError;}
117     // Pt
118     double pt() const { return pt_; }
119     void setPt(double pt) { pt_ = pt;}
120     // Pt Error
121     double ptError() const { return ptError_; }
122     void setPtError(double ptError) { ptError_ = ptError;}
123     // Four momentum
124     const FourVector &fourMomentum() const { return fourMomentum_; }
125     void setFourMomentum(const FourVector &fourMomentum)
126     { fourMomentum_ = fourMomentum;}
127     //----------------------------------------------------------------------------------------------
128     // Accessors/Setter: Extended Vertex fit info from this level
129     //----------------------------------------------------------------------------------------------
130     // Position
131     const ThreeVector &position() const { return position_; }
132     void setPosition(const ThreeVector &position) { position_ = position; }
133     // Error
134 bendavid 1.2 const ThreeSymMatrix &error() const { return error_; }
135     void setError(const ThreeSymMatrix &error) { error_ = error; }
136 loizides 1.1 // Big 7x7 Error Matrix
137 bendavid 1.2 const SevenSymMatrix &bigError() const { return bigError_; }
138     void setBigError(const SevenSymMatrix &bigError) { bigError_ = bigError; }
139 loizides 1.1
140     private:
141     // Decay type (either fast of slow)
142 paus 1.4 DecayType decayType_;
143 loizides 1.1 // Fit quality
144 paus 1.4 double prob_;
145     double chi2_;
146     int ndof_;
147 loizides 1.1 // Base vertex fit info
148 paus 1.4 double fittedMass_;
149     double fittedMassError_;
150     double normalizedMass_;
151     double lxy_;
152     double lxyError_;
153     double lxyToPv_;
154     double lxyToPvError_;
155     double dxy_;
156     double dxyError_;
157     double dxyToPv_;
158     double dxyToPvError_;
159     double lz_;
160     double lzError_;
161     double lzToPv_;
162     double lzToPvError_;
163     double cTau_;
164     double cTauError_;
165     double pt_;
166     double ptError_;
167 loizides 1.6 FourVector fourMomentum_;
168 loizides 1.1 // Extended vertex fit info
169 loizides 1.6 ThreeVector position_;
170     ThreeSymMatrix error_;
171     SevenSymMatrix bigError_;
172 loizides 1.1
173     // Contents of the decay
174 bendavid 1.2 BasePartBaseRefVector children_;
175 bendavid 1.7 //fitted momentum of children
176     std::vector<FourVector> childrenMom_;
177 loizides 1.1 };
178     }
179     #endif