ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitEdm/DataFormats/interface/DecayPart.h
Revision: 1.10
Committed: Sat Sep 27 05:48:24 2008 UTC (16 years, 7 months ago) by loizides
Content type: text/plain
Branch: MAIN
Changes since 1.9: +140 -151 lines
Log Message:
Cleanup

File Contents

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