ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitEdm/DataFormats/interface/DecayPart.h
Revision: 1.4
Committed: Thu Aug 28 22:09:16 2008 UTC (16 years, 8 months ago) by paus
Content type: text/plain
Branch: MAIN
Changes since 1.3: +28 -28 lines
Log Message:
Adding HelixIntersector interface.

File Contents

# User Rev Content
1 loizides 1.1 //--------------------------------------------------------------------------------------------------
2 paus 1.4 // $Id: DecayPart.h,v 1.3 2008/07/31 13:29:35 bendavid 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     // Author List: Ch.Paus
11     //--------------------------------------------------------------------------------------------------
12    
13     #ifndef MITEDM_DECAYPART_H
14     #define MITEDM_DECAYPART_H
15    
16     #include <iostream>
17     #include <vector>
18     #include "CLHEP/Vector/LorentzVector.h"
19     #include "CLHEP/Geometry/Point3D.h"
20     #include "CLHEP/Matrix/SymMatrix.h"
21     #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 loizides 1.1
49 bendavid 1.2 const BasePart* getChild (int i) const { return children_.at(i).get(); }
50     const BasePartBaseRef getChildRef (int i) const { return children_.at(i); }
51 loizides 1.1 int nChild () const { return children_.size(); }
52    
53     virtual void print (std::ostream& os = std::cout) const;
54    
55     //----------------------------------------------------------------------------------------------
56     // Accessors/Setter: Base Vertex fit info from this level
57     //----------------------------------------------------------------------------------------------
58     // Fit quality (does not belong here)
59     double prob() const { return prob_; }
60     double chi2() const { return chi2_; }
61     int ndof() const { return ndof_; }
62     void setProb(double prob) { prob_ = prob;}
63     void setChi2(double chi2) { chi2_ = chi2;}
64     void setNdof(int ndof) { ndof_ = ndof;}
65    
66     // Fitted Mass
67     double fittedMass() const { return fittedMass_; }
68     void setFittedMass(double fittedMass) { fittedMass_ = fittedMass;}
69     // Fitted Mass Error
70     double fittedMassError() const { return fittedMassError_; }
71     void setFittedMassError(double fittedMassError) { fittedMassError_ = fittedMassError;}
72     // Lxy
73     double lxy() const { return lxy_; }
74     void setLxy(double lxy) { lxy_ = lxy;}
75     // Lxy Error
76     double lxyError() const { return lxyError_; }
77     void setLxyError(double lxyError) { lxyError_ = lxyError;}
78     // LxyToPv (length to primary vertex)
79     double lxyToPv() const { return lxyToPv_; }
80     void setLxyToPv(double lxyToPv) { lxyToPv_ = lxyToPv;}
81     // LxyToPv Error
82     double lxyToPvError() const { return lxyToPvError_; }
83     void setLxyToPvError(double lxyToPvError) { lxyToPvError_ = lxyToPvError;}
84     // Dxy (two dimensional impact parameter)
85     double dxy() const { return dxy_; }
86     void setDxy(double dxy) { dxy_ = dxy;}
87     // Dxy Error
88     double dxyError() const { return dxyError_; }
89     void setDxyError(double dxyError) { dxyError_ = dxyError;}
90     // DxyToPv (two dimensional impact parameter with respect to primary vertex)
91     double dxyToPv() const { return dxyToPv_; }
92     void setDxyToPv(double dxyToPv) { dxyToPv_ = dxyToPv;}
93     // DlxyToPv Error
94     double dxyToPvError() const { return dxyToPvError_; }
95     void setDxyToPvError(double dxyToPvError) { dxyToPvError_ = dxyToPvError;}
96     // Lz
97     double lz() const { return lz_; }
98     void setLz(double lz) { lz_ = lz;}
99     // Lz Error
100     double lzError() const { return lzError_; }
101     void setLzError(double lzError) { lzError_ = lzError;}
102     // LzToPv (length to primary vertex)
103     double lzToPv() const { return lzToPv_; }
104     void setLzToPv(double lzToPv) { lzToPv_ = lzToPv;}
105     // LzToPv Error
106     double lzToPvError() const { return lzToPvError_; }
107     void setLzToPvError(double lzToPvError) { lzToPvError_ = lzToPvError;}
108     // CTau
109     double cTau() const { return cTau_; }
110     void setCTau(double cTau) { cTau_ = cTau;}
111     // CTau Error
112     double cTauError() const { return cTauError_; }
113     void setCTauError(double cTauError) { cTauError_ = cTauError;}
114     // Pt
115     double pt() const { return pt_; }
116     void setPt(double pt) { pt_ = pt;}
117     // Pt Error
118     double ptError() const { return ptError_; }
119     void setPtError(double ptError) { ptError_ = ptError;}
120     // Four momentum
121     const FourVector &fourMomentum() const { return fourMomentum_; }
122     void setFourMomentum(const FourVector &fourMomentum)
123     { fourMomentum_ = fourMomentum;}
124     //----------------------------------------------------------------------------------------------
125     // Accessors/Setter: Extended Vertex fit info from this level
126     //----------------------------------------------------------------------------------------------
127     // Position
128     const ThreeVector &position() const { return position_; }
129     void setPosition(const ThreeVector &position) { position_ = position; }
130     // Error
131 bendavid 1.2 const ThreeSymMatrix &error() const { return error_; }
132     void setError(const ThreeSymMatrix &error) { error_ = error; }
133 loizides 1.1 // Big 7x7 Error Matrix
134 bendavid 1.2 const SevenSymMatrix &bigError() const { return bigError_; }
135     void setBigError(const SevenSymMatrix &bigError) { bigError_ = bigError; }
136 loizides 1.1
137     private:
138     // Decay type (either fast of slow)
139 paus 1.4 DecayType decayType_;
140 loizides 1.1 // Fit quality
141 paus 1.4 double prob_;
142     double chi2_;
143     int ndof_;
144 loizides 1.1 // Base vertex fit info
145 paus 1.4 double fittedMass_;
146     double fittedMassError_;
147     double normalizedMass_;
148     double lxy_;
149     double lxyError_;
150     double lxyToPv_;
151     double lxyToPvError_;
152     double dxy_;
153     double dxyError_;
154     double dxyToPv_;
155     double dxyToPvError_;
156     double lz_;
157     double lzError_;
158     double lzToPv_;
159     double lzToPvError_;
160     double cTau_;
161     double cTauError_;
162     double pt_;
163     double ptError_;
164     FourVector fourMomentum_;
165 loizides 1.1 // Extended vertex fit info
166 paus 1.4 ThreeVector position_;
167     ThreeSymMatrix error_;
168     SevenSymMatrix bigError_;
169 loizides 1.1
170     // Contents of the decay
171 bendavid 1.2 BasePartBaseRefVector children_;
172 loizides 1.1
173     };
174     }
175     #endif