1 |
lethuill |
1.1 |
#ifndef TRootVertex_h
|
2 |
|
|
#define TRootVertex_h
|
3 |
|
|
|
4 |
|
|
#include <string>
|
5 |
|
|
#include <iostream>
|
6 |
|
|
#include <iomanip>
|
7 |
|
|
|
8 |
|
|
#include "Rtypes.h"
|
9 |
|
|
#include "TVector3.h"
|
10 |
|
|
|
11 |
|
|
using namespace std;
|
12 |
|
|
|
13 |
|
|
class TRootVertex : public TVector3
|
14 |
|
|
{
|
15 |
lethuill |
1.5 |
|
16 |
|
|
public:
|
17 |
|
|
|
18 |
|
|
TRootVertex() :
|
19 |
|
|
TVector3(-999999.,-999999.,-999999.)
|
20 |
|
|
,error_(-1.,-1.,-1.)
|
21 |
|
|
,algo_(-1)
|
22 |
|
|
,chi2_(-1.)
|
23 |
|
|
,ndof_(-1.)
|
24 |
|
|
,ntracks_(-1)
|
25 |
|
|
,higherTrackPt_(-1.)
|
26 |
|
|
,scalarSumPt_(-1.)
|
27 |
|
|
,vectorSumPt_(-1.)
|
28 |
|
|
,recoIndex_(-1)
|
29 |
|
|
{;}
|
30 |
|
|
|
31 |
|
|
TRootVertex(const TRootVertex& vertex) :
|
32 |
|
|
TVector3(vertex)
|
33 |
|
|
,error_(vertex.error_)
|
34 |
|
|
,algo_(vertex.algo_)
|
35 |
|
|
,chi2_(vertex.chi2_)
|
36 |
|
|
,ndof_(vertex.ndof_)
|
37 |
|
|
,ntracks_(vertex.ntracks_)
|
38 |
|
|
,higherTrackPt_(vertex.higherTrackPt_)
|
39 |
|
|
,scalarSumPt_(vertex.scalarSumPt_)
|
40 |
|
|
,vectorSumPt_(vertex.vectorSumPt_)
|
41 |
|
|
,recoIndex_(vertex.recoIndex_)
|
42 |
|
|
{;}
|
43 |
|
|
|
44 |
|
|
TRootVertex(Double_t vx, Double_t vy, Double_t vz) :
|
45 |
|
|
TVector3(vx,vy,vz)
|
46 |
|
|
,error_(-1.,-1.,-1.)
|
47 |
|
|
,algo_(-1)
|
48 |
|
|
,chi2_(-1.)
|
49 |
|
|
,ndof_(-1.)
|
50 |
|
|
,ntracks_(-1)
|
51 |
|
|
,higherTrackPt_(-1.)
|
52 |
|
|
,scalarSumPt_(-1.)
|
53 |
|
|
,vectorSumPt_(-1.)
|
54 |
|
|
,recoIndex_(-1)
|
55 |
|
|
{;}
|
56 |
|
|
|
57 |
|
|
TRootVertex(Double_t vx, Double_t vy, Double_t vz, Double_t evx, Double_t evy, Double_t evz) :
|
58 |
|
|
TVector3(vx,vy,vz)
|
59 |
|
|
,error_(evx,evy,evz)
|
60 |
|
|
,algo_(-1)
|
61 |
|
|
,chi2_(-1.)
|
62 |
|
|
,ndof_(-1.)
|
63 |
|
|
,ntracks_(-1)
|
64 |
|
|
,higherTrackPt_(-1.)
|
65 |
|
|
,scalarSumPt_(-1.)
|
66 |
|
|
,vectorSumPt_(-1.)
|
67 |
|
|
,recoIndex_(-1)
|
68 |
|
|
{;}
|
69 |
|
|
|
70 |
|
|
|
71 |
|
|
TRootVertex(const TVector3 &vertex) :
|
72 |
|
|
TVector3(vertex)
|
73 |
|
|
,error_(-1.,-1.,-1.)
|
74 |
|
|
,algo_(-1)
|
75 |
|
|
,chi2_(-1.)
|
76 |
|
|
,ndof_(-1.)
|
77 |
|
|
,ntracks_(-1)
|
78 |
|
|
,higherTrackPt_(-1.)
|
79 |
|
|
,scalarSumPt_(-1.)
|
80 |
|
|
,vectorSumPt_(-1.)
|
81 |
|
|
,recoIndex_(-1)
|
82 |
|
|
{;}
|
83 |
|
|
|
84 |
|
|
TRootVertex( const TVector3 &vertex, const TVector3 &vertex_error) :
|
85 |
|
|
TVector3(vertex)
|
86 |
|
|
,error_(vertex_error)
|
87 |
|
|
,algo_(-1)
|
88 |
|
|
,chi2_(-1.)
|
89 |
|
|
,ndof_(-1.)
|
90 |
|
|
,ntracks_(-1)
|
91 |
|
|
,higherTrackPt_(-1.)
|
92 |
|
|
,scalarSumPt_(-1.)
|
93 |
|
|
,vectorSumPt_(-1.)
|
94 |
|
|
,recoIndex_(-1)
|
95 |
|
|
{;}
|
96 |
|
|
|
97 |
|
|
~TRootVertex() {;}
|
98 |
|
|
|
99 |
|
|
|
100 |
|
|
TVector3 error() const { return error_;}
|
101 |
|
|
Double_t xerr() const { return error_.x(); }
|
102 |
|
|
Double_t yerr() const { return error_.y(); }
|
103 |
|
|
Double_t zerr() const { return error_.z(); }
|
104 |
|
|
Int_t algo() const { return algo_;}
|
105 |
|
|
TString algoName() const
|
106 |
|
|
{
|
107 |
|
|
if (algo_==0) return "RECO";
|
108 |
|
|
else if (algo_==1) return "AllTracks";
|
109 |
|
|
else if (algo_==2) return "NoEE";
|
110 |
|
|
else if (algo_==3) return "OnlyEE";
|
111 |
|
|
else return "Unknown method of vertex reconstruction";
|
112 |
|
|
}
|
113 |
|
|
Float_t chi2() const { return chi2_;}
|
114 |
|
|
Float_t ndof() const { return ndof_;}
|
115 |
|
|
Float_t ntracks() const { return ntracks_;}
|
116 |
|
|
Float_t higherTrackPt() const { return higherTrackPt_;}
|
117 |
|
|
Float_t scalarSumPt() const { return scalarSumPt_;}
|
118 |
|
|
Float_t vectorSumPt() const { return vectorSumPt_;}
|
119 |
|
|
Int_t recoIndex() const { return recoIndex_;}
|
120 |
|
|
|
121 |
|
|
TString typeName() const { return "TRootVertex"; }
|
122 |
|
|
|
123 |
|
|
void setError(TVector3 error) { error_ = error; }
|
124 |
|
|
void setXerr(Double_t xerr) { error_.SetX(xerr); }
|
125 |
|
|
void setYerr(Double_t yerr) { error_.SetY(yerr); }
|
126 |
|
|
void setZerr(Double_t zerr) { error_.SetZ(zerr); }
|
127 |
|
|
void setAlgo(Int_t algo) { algo_ = algo; }
|
128 |
|
|
void setAlgoName(TString algoName)
|
129 |
|
|
{
|
130 |
|
|
if (algoName=="RECO") algo_=0;
|
131 |
|
|
else if (algoName=="AllTracks") algo_=1;
|
132 |
|
|
else if (algoName=="NoEE") algo_=2;
|
133 |
|
|
else if (algoName=="OnlyEE") algo_=3;
|
134 |
|
|
else std::cout << "***** TRootVertex::setAlgo(TString) => Unknown method of vertex reconstruction *****" << std::endl;
|
135 |
|
|
}
|
136 |
|
|
void setChi2(Float_t chi2) { chi2_ = chi2; }
|
137 |
|
|
void setNdof(Float_t ndof) { ndof_ = ndof; }
|
138 |
|
|
void setNtracks(Float_t ntracks) { ntracks_ = ntracks; }
|
139 |
|
|
void setHigherTrackPt(Float_t higherTrackPt) { higherTrackPt_ = higherTrackPt; }
|
140 |
|
|
void setScalarSumPt(Float_t scalarSumPt) { scalarSumPt_ = scalarSumPt; }
|
141 |
|
|
void setVectorSumPt(Float_t vectorSumPt) { vectorSumPt_ = vectorSumPt; }
|
142 |
|
|
void setRecoIndex(Int_t recoIndex) { recoIndex_ = recoIndex; }
|
143 |
|
|
|
144 |
|
|
|
145 |
|
|
friend std::ostream& operator<< (std::ostream& stream, const TRootVertex& vertex) {
|
146 |
|
|
stream << "TRootVertex - algo=" << setw(10) << vertex.algoName() <<" (x,y,z)=("<< setw(9) << vertex.x() <<","<< setw(9) << vertex.y() <<","<< setw(9) << vertex.z() << ")"
|
147 |
|
|
<< " error(dx,dy,dz)=("<< setw(11) << vertex.xerr() <<","<< setw(11) << vertex.yerr() <<","<< setw(11) << vertex.zerr() << ")"
|
148 |
|
|
<< " chi2="<< setw(8) << vertex.chi2() <<" ndof="<< setw(6) << vertex.ndof() <<" nTracks="<< setw(4) << vertex.ntracks()
|
149 |
|
|
<< " higherTrackPt="<< setw(7) << vertex.higherTrackPt() <<" scalarSumPt="<< setw(7) << vertex.scalarSumPt() <<" vectorSumPt="<< setw(7) << vertex.vectorSumPt();
|
150 |
|
|
return stream;
|
151 |
|
|
};
|
152 |
|
|
|
153 |
|
|
private:
|
154 |
|
|
|
155 |
|
|
TVector3 error_;
|
156 |
|
|
Int_t algo_;
|
157 |
|
|
Float_t chi2_;
|
158 |
|
|
Float_t ndof_;
|
159 |
|
|
Float_t ntracks_;
|
160 |
|
|
Float_t higherTrackPt_;
|
161 |
|
|
Float_t scalarSumPt_;
|
162 |
|
|
Float_t vectorSumPt_;
|
163 |
|
|
Int_t recoIndex_; // corresponding index in std::vector< reco::Vertex > collection
|
164 |
|
|
|
165 |
|
|
ClassDef (TRootVertex,3);
|
166 |
|
|
|
167 |
lethuill |
1.1 |
};
|
168 |
lethuill |
1.6 |
|
169 |
lethuill |
1.1 |
#endif
|