FEDRA emulsion software from the OPERA Collaboration
EdbVertex.h
Go to the documentation of this file.
1#ifndef ROOT_EdbVertex
2#define ROOT_EdbVertex
5
11
12#include <TObject.h>
13#include <TTree.h>
14#include <TVector3.h>
15#include <TGraphErrors.h>
16#include <TGraphAsymmErrors.h>
17#include "EdbPattern.h"
18#include "vt++/VtTrack.hh"
19#include "vt++/VtVertex.hh"
20#include "vt++/VtRelation.hh"
21#include "vt++/VtKalman.hh"
22
23class EdbPVRec;
24
25//_________________________________________________________________________
26class EdbVTA: public TObject {
27
28 private:
29
32
33 Int_t eZpos;
34 Int_t eFlag;
38 Float_t eImp;
39 Float_t eDist;
40
41 public:
42 EdbVTA();
43 EdbVTA(EdbVTA &vta);
45 virtual ~EdbVTA();
46
47 Int_t Zpos() const {return eZpos;}
48 Int_t Flag() const {return eFlag;}
49 Float_t Imp() const {return eImp;}
50 Float_t Dist() const {return eDist;}
51 EdbTrackP *GetTrack() const {return eTrack;}
52 EdbVertex *GetVertex() const {return eVertex;}
53
54 void Set0();
55 void SetZpos(int zpos) {eZpos = zpos;}
56 void SetFlag(int flag) {eFlag = flag;}
57 void SetImp(float imp) {eImp = imp;}
58 void SetDist(float dist) {eDist = dist;}
60 void SetVertex(EdbVertex *v) {eVertex = v;}
61 void Print();
62
63 void AddVandT();
64
65 ClassDef(EdbVTA,1) // vertex-track association
66};
67
68//_________________________________________________________________________
69class EdbVertex: public TObject {
70
71 private:
72
73 TList eVTn;
74 TList eVTa;
75
76 Float_t eX;
77 Float_t eY;
78 Float_t eZ;
80
81 Int_t eFlag;
87 Int_t eMCEvt;
88 Int_t eID;
89 Float_t eQuality;
90
92
93 public:
94 EdbVertex();
95 //EdbVertex(EdbVertex &v);
96 virtual ~EdbVertex();
97
98 // int MakeV( bool usemom = true, bool usesegpar=false );
99
100 void Clear();
101 void ClearV();
102 void ClearNeighborhood();
103 void AddVTA(EdbVTA *vta);
104 void RemoveVTA(EdbVTA *vta);
105 void ResetTracks();
106 void Print();
107 Int_t Compare(const TObject *o) const;
108 Bool_t EstimateVertexMath( float& xv, float& yv, float& zv, float& d );
109 void Edb2Vt(const EdbTrackP& tr, VERTEX::Track& t, float X0 = 0., float m = 0.139 );
110 void Edb2Vt(const EdbSegP& s, VERTEX::Track& t,float X0 = 0., float m = 0.139 );
111 Float_t Chi2Track(EdbTrackP *tr, int zpos, float X0 = 0.);
112
113 Float_t MinDist();
114 Float_t Volume() { if(V()) return V()->vxerr()*V()->vyerr()*V()->vzerr(); else return 0; }
115 Float_t MaxAperture();
116 Float_t MaxImpact() { EdbVTA *vta=GetMaxImpVTA(); return vta? vta->Imp(): 0; }
119 Bool_t IsEqual(const TObject *o) const;
120
121 Int_t N() const {return eVTa.GetSize();}
122 Int_t Nn() const {return eVTn.GetSize();}
123 Int_t Nv();
124 Int_t Flag() const {return eFlag;}
125 Int_t MCEvt() const {return eMCEvt;}
126 Int_t ID() const {return eID;}
127 Int_t Zpos(int i) {return GetVTa(i)->Zpos();}
128 ULong_t Hash() const {return eID;}
129 Bool_t IsSortable() const {return kTRUE;}
130 Float_t X() const {return eX;}
131 Float_t Y() const {return eY;}
132 Float_t Z() const {return eZ;}
133 Float_t VX() const {return eV ? (eV->vx() + eX) : 1000000.;}
134 Float_t VY() const {return eV ? (eV->vy() + eY) : 1000000.;}
135 Float_t VZ() const {return eV ? (eV->vz() + eZ) : 1000000.;}
136 Float_t Quality() {return eQuality;}
137 TList *VTa() {return &eVTa;}
138 TList *VTn() {return &eVTn;}
139 EdbVTA *GetVTa(int i) {return (EdbVTA*)(eVTa.At(i));}
140 EdbVTA *GetVTn(int i) {return (EdbVTA*)(eVTn.At(i));}
141 EdbTrackP *GetTrack(int i) {return GetVTa(i)->GetTrack();}
142 EdbTrackP *GetTrackN(int i) {return GetVTn(i)->GetTrack();}
143 EdbSegP *GetTrackV(int i, bool usesegpar=false);
145
146 float CheckImpGeom(const EdbTrackP *tr);
147 float CheckImp(const EdbTrackP *tr);
148 EdbVTA *CheckImp(const EdbTrackP *tr, float ImpMax, int zpos, float dist);
149 Float_t Impact(int i) { return GetVTa(i)? GetVTa(i)->Imp(): 1000000.; }
150 Float_t DistSeg(EdbSegP *seg, float X0 = 0.);
151 Float_t DistTrack(EdbTrackP *tr, int zpos, float X0 = 0.);
152 Float_t ImpTrack(int i) { return DistSeg( GetTrackV(i) ); }
153
154 VERTEX::Vertex *V() const {return eV;}
155
156 void SetID(int ID = 0) {eID = ID;}
157 void SetXYZ(float x, float y, float z) {eX=x; eY=y; eZ=z;}
158 void SetFlag(int flag = 0 ) {eFlag = flag;}
159 void SetMC(int mEvt=0) {eMCEvt=mEvt;}
160 void SetV(VERTEX::Vertex *v) {eV=v;}
161 void SetQuality( float q = 0 ) {eQuality = q;}
162
163 Bool_t TrackInVertex( EdbTrackP *t );
164 Int_t CheckDiscardedTracks();
165 Int_t EstimateVertexFlag();
167
168 ClassDef(EdbVertex,3) // vertex class for OPERA emulsion data
169};
170
171//_________________________________________________________________________
172class EdbVertexPar: public TObject {
173
174 public:
175 Float_t eZbin;
176 Float_t eAbin;
177 Float_t eDZmax;
178 Float_t eProbMin;
179 Float_t eImpMax;
180 Float_t eImpMaxV;
181 Bool_t eUseMom;
182 Bool_t eUseSegPar;
184 Bool_t eUseKalman;
185 Bool_t eUseLimits;
186 TVector3 eVmin,eVmax;
187
188 EdbVertexPar();
189 virtual ~EdbVertexPar(){}
190 ClassDef(EdbVertexPar,1) // vertex reconstruction parameters
191};
192
193//_________________________________________________________________________
195
196 private:
197
200
201 public:
202
203 TList eVTA;
204 TObjArray *eEdbTracks;
205 TObjArray *eVTX;
207
208 public:
211 virtual ~EdbVertexRec();
212
213 void Set0();
214 void Reset();
215 const TVector3 *Vmin() const {return &eVmin;}
216 const TVector3 *Vmax() const {return &eVmax;}
217 int RefitAll();
218 void AcceptPolish();
219 void RejectPolish();
220 void StatVertexN();
223 void FillTracksStartEnd(TIndexCell &starts, TIndexCell &ends);
224
225 Int_t MakeV(EdbVertex &edbv, bool isRefit=false);
226 Int_t FindVertex();
227
228 EdbVertex *Make1Vertex(TObjArray &tracks, float zexpected);
229 EdbVertex *StripBadTracks( EdbVertex &v, float impMax, int ntrMin );
230
231 EdbVertex *ProbVertex2(EdbTrackP *tr1, EdbTrackP *tr2, int zpos1, int zpos2 );
232 Int_t ProbVertexN();
233 Int_t ProbVertexN_old();
234 Int_t ProbVertexNpos(int zpos);
235 void CheckVTX();
236 EdbVertex *TestVTAGroup(TObjArray &arrvta);
237 int EstimateVertexFlag(int zpos1, int zpos2);
238
239 Bool_t CheckDZ2(float z1, float z2, int zpos1, int zpos2, float z );
240 Bool_t IsInsideLimits(EdbSegP &s);
241 Int_t FindSimilarTracks(EdbTrackP &t, TObjArray &found, int nsegmin=2, float dMax=100., float dTheta=0.01, float dZmax=50000.);
242 Int_t FindSimilarTracksE(EdbSegP &spred, TObjArray &found, bool startend,
243 float impact, float dthetaMax, float dxy, float zminT, float zmaxT, float zminV, float zmaxV);
244 bool CompatibleSegments(EdbSegP &spred, EdbSegP &stest,
245 float impact, float dthetaMax, float dxy, float zminT, float zmaxT, float zminV, float zmaxV);
246 Int_t FindSimilarSegments(EdbSegP &spred, TObjArray &found, EdbPattern &pat,
247 float impact, float dthetaMax, float dxy, float zminT, float zmaxT, float zminV, float zmaxV);
248
249 Int_t LinkedVertexes();
250 Int_t LoopVertex(TIndexCell &list1, TIndexCell &list2, int zpos1,
251 int zpos2);
252 Int_t AddSegmentToVertex(EdbSegP *s, float ImpMax = 25.,
253 float ProbMin = 0.01, float Mom = 0.3);
254 Int_t VertexPolish(EdbVertex *v, int refill = 0, float RadMax = 1000.,
255 int Dpat = 2, float ImpMax = 25.,
256 float ProbMin = 0.01, float Mom = 0.3);
257 Int_t VertexTuning(int seltype = 0);
258 Int_t VertexNeighbor(float RadMax = 1000., int Dpat = 1,
259 float ImpMax = 1000000.);
260 Int_t VertexNeighbor(EdbVertex *v, float RadMax = 1000., int Dpat = 1,
261 float ImpMax = 1000000.);
262 Int_t SelVertNeighbor(EdbVertex *v, int seltype, float RadMax,
263 int Dpat, TObjArray *ao);
264 Int_t SelSegNeighbor(EdbSegP *s, int seltype, float RadMax, int Dpat, TObjArray *ao);
265 Int_t SegmentNeighbor(EdbSegP *s, float RadMax = 1000., int Dpat = 1, float ImpMax = 1000000., float SegWmin=9,
266 TObjArray *aseg = 0, TObjArray *atr = 0, TObjArray *arv = 0);
267 Float_t CheckImpact( EdbSegP *s1, EdbSegP *s2, int zpos1, int zpos2, float pv[3] );
268 Float_t CheckImpactN( EdbSegP *s1, EdbSegP *s2, float pv[3], bool &parallel, float dzMax=6000. );
271 Double_t Tdistance(const VERTEX::Track& t1, const VERTEX::Track& t2);
272 Double_t Tdistance(const EdbSegP& s1, const EdbSegP& s2);
273 Double_t TdistanceChi2(const EdbTrackP& tr1, const EdbTrackP& tr2);
274 Double_t TdistanceChi2(const EdbSegP& s1, const EdbSegP& s2, float m);
275 Double_t MoveTrackToOtherVertex(EdbVertex *v2, int it2max, EdbVertex *v1,
276 int seltype, EdbVertex **v2n,
277 EdbVertex **v1n);
281
282 EdbTrackP *GetEdbTrack(const int index);
283 EdbVTA *AddTrack(EdbVertex &edbv, EdbTrackP *track, int zpos);
284
285 void SetPVRec(EdbPVRec *pvr) {ePVR = pvr;}
286 void AddVTA(EdbVTA *vta) {eVTA.Add((TObject*)vta);}
287 Int_t Nvtx() const {return eVTX ? eVTX->GetEntries() : 0;}
288 EdbVertex *GetVertex(Int_t &i) {return eVTX ? (EdbVertex*)eVTX->At(i):0;}
289
290 void AddVertex(EdbVertex *vtx) {
291 if (!eVTX) eVTX = new TObjArray();
292 eVTX->Add((TObject*)vtx);
293 }
294
295 int CheckTrack(EdbTrackP &track, int zpos);
296
297
298 ClassDef(EdbVertexRec,3) //reconstruct vertexes in OPERA emulsion data
299};
300
301#endif /* ROOT_EdbVertex */
void d()
Definition: RecDispEX.C:381
brick X0
Definition: RecDispMC.C:112
TTree * tr
Definition: Shower_E_FromShowerRoot.C:5
Definition: EdbPVRec.h:148
Definition: EdbPattern.h:273
Definition: EdbSegP.h:21
Definition: EdbPattern.h:113
Definition: EdbVertex.h:26
EdbVertex * eVertex
pointer to vertex
Definition: EdbVertex.h:31
EdbTrackP * eTrack
pointer to track (or segment)
Definition: EdbVertex.h:30
void SetImp(float imp)
Definition: EdbVertex.h:57
Float_t eDist
distance from vertex to the nearest track point
Definition: EdbVertex.h:39
Float_t Imp() const
Definition: EdbVertex.h:49
Float_t Dist() const
Definition: EdbVertex.h:50
EdbVTA()
Definition: EdbVertex.cxx:40
Int_t eFlag
Definition: EdbVertex.h:34
void SetDist(float dist)
Definition: EdbVertex.h:58
EdbTrackP * GetTrack() const
Definition: EdbVertex.h:51
Int_t Flag() const
Definition: EdbVertex.h:48
Int_t Zpos() const
Definition: EdbVertex.h:47
virtual ~EdbVTA()
Definition: EdbVertex.cxx:75
void SetZpos(int zpos)
Definition: EdbVertex.h:55
Int_t eZpos
1-track start, 0-track end connect to the vertex
Definition: EdbVertex.h:33
void SetTrack(EdbTrackP *tr)
Definition: EdbVertex.h:59
Float_t eImp
impact parameter
Definition: EdbVertex.h:38
void SetFlag(int flag)
Definition: EdbVertex.h:56
void Set0()
Definition: EdbVertex.cxx:65
void AddVandT()
Definition: EdbVertex.cxx:90
void Print()
Definition: EdbVertex.cxx:83
void SetVertex(EdbVertex *v)
Definition: EdbVertex.h:60
EdbVertex * GetVertex() const
Definition: EdbVertex.h:52
Definition: EdbVertex.h:172
Bool_t eUseMom
use or not track momentum for vertex calculations
Definition: EdbVertex.h:181
Int_t eQualityMode
vertex quality estimation method (0:=Prob/(sigVX^2+sigVY^2); 1:= inverse average track-vertex distanc...
Definition: EdbVertex.h:183
virtual ~EdbVertexPar()
Definition: EdbVertex.h:189
EdbVertexPar()
Definition: EdbVertex.cxx:686
Float_t eAbin
safety margin for angular aperture of vertex products
Definition: EdbVertex.h:176
Bool_t eUseSegPar
use only the nearest measured segments for vertex fit (as Neuchatel)
Definition: EdbVertex.h:182
Float_t eImpMax
maximal acceptable impact parameter (preliminary check)
Definition: EdbVertex.h:179
TVector3 eVmax
limits for the vertex search
Definition: EdbVertex.h:186
Float_t eZbin
z- granularity (default is 100 microns)
Definition: EdbVertex.h:175
TVector3 eVmin
Definition: EdbVertex.h:186
Bool_t eUseLimits
if true - look for the vertex only inside limits defined by eVmin:eVmax, default is false
Definition: EdbVertex.h:185
Float_t eImpMaxV
if the impact is <= eImpMaxV the 2-vertex is accepted disregard to it's probability
Definition: EdbVertex.h:180
Float_t eDZmax
maximum z-gap in the track-vertex group
Definition: EdbVertex.h:177
Float_t eProbMin
minimum acceptable probability for chi2-distance between tracks
Definition: EdbVertex.h:178
Bool_t eUseKalman
use or not Kalman for the vertex fit. Default is true
Definition: EdbVertex.h:184
Definition: EdbVertex.h:194
int EstimateVertexFlag(int zpos1, int zpos2)
Definition: EdbVertex.cxx:1376
Int_t ProbVertexN()
Definition: EdbVertex.cxx:1426
TObjArray * eVTX
array of vertex
Definition: EdbVertex.h:205
virtual ~EdbVertexRec()
Definition: EdbVertex.cxx:712
Int_t ProbVertexNpos(int zpos)
Definition: EdbVertex.cxx:1440
Float_t CheckImpact(EdbSegP *s1, EdbSegP *s2, int zpos1, int zpos2, float pv[3])
Definition: EdbVertex.cxx:1221
EdbVertex * RemoveTrackFromVertex(EdbVertex *eVertex, int itr)
Definition: EdbVertex.cxx:2619
void StatVertexN()
Definition: EdbVertex.cxx:1784
Double_t MoveTrackToOtherVertex(EdbVertex *v2, int it2max, EdbVertex *v1, int seltype, EdbVertex **v2n, EdbVertex **v1n)
Definition: EdbVertex.cxx:2446
Int_t LinkedVertexes()
Definition: EdbVertex.cxx:1809
EdbVertex * RemoveVTAFromVertex(EdbVertex &vtx, EdbVTA &vta)
Definition: EdbVertex.cxx:2602
Int_t ProbVertexN_old()
Definition: EdbVertex.cxx:1579
Int_t Nvtx() const
Definition: EdbVertex.h:287
Bool_t IsInsideLimits(EdbSegP &s)
Definition: EdbVertex.cxx:1386
Bool_t EstimateVertexQuality(EdbVertex &v)
Definition: EdbVertex.cxx:729
Float_t CheckImpactN(EdbSegP *s1, EdbSegP *s2, float pv[3], bool &parallel, float dzMax=6000.)
Definition: EdbVertex.cxx:1260
Int_t AddSegmentToVertex(EdbSegP *s, float ImpMax=25., float ProbMin=0.01, float Mom=0.3)
Definition: EdbVertex.cxx:1978
Int_t FindSimilarSegments(EdbSegP &spred, TObjArray &found, EdbPattern &pat, float impact, float dthetaMax, float dxy, float zminT, float zmaxT, float zminV, float zmaxV)
Definition: EdbVertex.cxx:1012
Int_t FindSimilarTracksE(EdbSegP &spred, TObjArray &found, bool startend, float impact, float dthetaMax, float dxy, float zminT, float zmaxT, float zminV, float zmaxV)
Definition: EdbVertex.cxx:1032
Double_t Tdistance(const VERTEX::Track &t1, const VERTEX::Track &t2)
Definition: EdbVertex.cxx:3181
Int_t SelSegNeighbor(EdbSegP *s, int seltype, float RadMax, int Dpat, TObjArray *ao)
Definition: EdbVertex.cxx:1905
EdbVertexRec()
Definition: EdbVertex.h:209
EdbVertex * TestVTAGroup(TObjArray &arrvta)
Definition: EdbVertex.cxx:1540
Int_t VertexNeighbor(float RadMax=1000., int Dpat=1, float ImpMax=1000000.)
Definition: EdbVertex.cxx:2732
EdbVertex * eWorking
Definition: EdbVertex.h:199
Int_t LoopVertex(TIndexCell &list1, TIndexCell &list2, int zpos1, int zpos2)
Definition: EdbVertex.cxx:1142
void AddVertex(EdbVertex *vtx)
Definition: EdbVertex.h:290
void AcceptPolish()
Definition: EdbVertex.cxx:2183
int RefitAll()
Definition: EdbVertex.cxx:2503
Int_t MakeV(EdbVertex &edbv, bool isRefit=false)
Definition: EdbVertex.cxx:791
Int_t FindVertex()
Definition: EdbVertex.cxx:1065
Bool_t EstimateVertexPosition(EdbVertex &v)
Definition: EdbVertex.cxx:753
Int_t FindSimilarTracks(EdbTrackP &t, TObjArray &found, int nsegmin=2, float dMax=100., float dTheta=0.01, float dZmax=50000.)
Definition: EdbVertex.cxx:913
Int_t VertexPolish(EdbVertex *v, int refill=0, float RadMax=1000., int Dpat=2, float ImpMax=25., float ProbMin=0.01, float Mom=0.3)
Definition: EdbVertex.cxx:2109
EdbVertex * Make1Vertex(TObjArray &tracks, float zexpected)
Definition: EdbVertex.cxx:857
int CheckTrack(EdbTrackP &track, int zpos)
Definition: EdbVertex.cxx:3242
void AddVTA(EdbVTA *vta)
Definition: EdbVertex.h:286
void CheckVTX()
Definition: EdbVertex.cxx:1498
void FillTracksStartEnd(TIndexCell &starts, TIndexCell &ends)
Definition: EdbVertex.cxx:1113
EdbPVRec * ePVR
patterns volume (optional)
Definition: EdbVertex.h:206
EdbVertex * eVertex
Definition: EdbVertex.h:198
TObjArray * eEdbTracks
Definition: EdbVertex.h:204
const TVector3 * Vmin() const
Definition: EdbVertex.h:215
EdbVertexRec(EdbVertexPar &vpar)
Definition: EdbVertex.h:210
const TVector3 * Vmax() const
Definition: EdbVertex.h:216
Double_t TdistanceChi2(const EdbTrackP &tr1, const EdbTrackP &tr2)
Definition: EdbVertex.cxx:3213
EdbVTA * AddTrack(EdbVertex &edbv, EdbTrackP *track, int zpos)
Definition: EdbVertex.cxx:878
EdbVertex * AddTrackToVertex(EdbVertex *eVertex, EdbTrackP *eTr, int zpos)
Definition: EdbVertex.cxx:2521
EdbTrackP * GetEdbTrack(const int index)
Definition: EdbVertex.cxx:3235
void CancelModifiedVTX(EdbVertex *eVertex, EdbVertex *eWorking)
Definition: EdbVertex.cxx:2726
EdbVertex * ProbVertex2(EdbTrackP *tr1, EdbTrackP *tr2, int zpos1, int zpos2)
Definition: EdbVertex.cxx:1302
void RejectPolish()
Definition: EdbVertex.cxx:2188
EdbVertex * GetVertex(Int_t &i)
Definition: EdbVertex.h:288
void SetPVRec(EdbPVRec *pvr)
Definition: EdbVertex.h:285
Bool_t CheckDZ2(float z1, float z2, int zpos1, int zpos2, float z)
Definition: EdbVertex.cxx:1399
Int_t VertexTuning(int seltype=0)
Definition: EdbVertex.cxx:2193
bool CompatibleSegments(EdbSegP &spred, EdbSegP &stest, float impact, float dthetaMax, float dxy, float zminT, float zmaxT, float zminV, float zmaxV)
Definition: EdbVertex.cxx:976
void Reset()
Definition: EdbVertex.cxx:722
void Set0()
Definition: EdbVertex.cxx:701
EdbVertex * StripBadTracks(EdbVertex &v, float impMax, int ntrMin)
Definition: EdbVertex.cxx:838
Int_t SelVertNeighbor(EdbVertex *v, int seltype, float RadMax, int Dpat, TObjArray *ao)
Definition: EdbVertex.cxx:1829
TList eVTA
vertex-track associations
Definition: EdbVertex.h:203
Int_t SegmentNeighbor(EdbSegP *s, float RadMax=1000., int Dpat=1, float ImpMax=1000000., float SegWmin=9, TObjArray *aseg=0, TObjArray *atr=0, TObjArray *arv=0)
Definition: EdbVertex.cxx:3005
void AcceptModifiedVTX(EdbVertex *eVertex, EdbVertex *eWorking)
Definition: EdbVertex.cxx:2684
Definition: EdbVertex.h:69
void Print()
Definition: EdbVertex.cxx:328
Float_t DistSeg(EdbSegP *seg, float X0=0.)
Definition: EdbVertex.cxx:672
Int_t ID() const
Definition: EdbVertex.h:126
void SetQuality(float q=0)
Definition: EdbVertex.h:161
Float_t Chi2Track(EdbTrackP *tr, int zpos, float X0=0.)
Definition: EdbVertex.cxx:635
void SetMC(int mEvt=0)
Definition: EdbVertex.h:159
Float_t Volume()
Definition: EdbVertex.h:114
EdbTrackP * MeanTrack()
Definition: EdbVertex.cxx:299
Float_t MinDist()
Definition: EdbVertex.cxx:239
Float_t Impact(int i)
Definition: EdbVertex.h:149
Bool_t IsEqual(const TObject *o) const
Definition: EdbVertex.cxx:290
Float_t VX() const
Definition: EdbVertex.h:133
Float_t eY
for reconstructed ones - average of track connection
Definition: EdbVertex.h:77
float CheckImp(const EdbTrackP *tr)
Definition: EdbVertex.cxx:441
ULong_t Hash() const
Definition: EdbVertex.h:128
Bool_t TrackInVertex(EdbTrackP *t)
Definition: EdbVertex.cxx:221
void AddVTA(EdbVTA *vta)
Definition: EdbVertex.cxx:355
EdbVertex * GetConnectedVertexForTrack(int it)
Definition: EdbVertex.cxx:384
TList eVTa
attached tracks
Definition: EdbVertex.h:74
Float_t X() const
Definition: EdbVertex.h:130
Int_t eID
Definition: EdbVertex.h:88
void SetID(int ID=0)
Definition: EdbVertex.h:156
void Clear()
Definition: EdbVertex.cxx:125
EdbVTA * GetVTa(int i)
Definition: EdbVertex.h:139
TList * VTa()
Definition: EdbVertex.h:137
VERTEX::Vertex * V() const
Definition: EdbVertex.h:154
Float_t eX
for generated vertexes - the real vertex position
Definition: EdbVertex.h:76
EdbVTA * GetMaxImpVTA()
Definition: EdbVertex.cxx:140
void SetV(VERTEX::Vertex *v)
Definition: EdbVertex.h:160
Int_t N() const
Definition: EdbVertex.h:121
EdbVTA * GetVTn(int i)
Definition: EdbVertex.h:140
Int_t MCEvt() const
Definition: EdbVertex.h:125
VERTEX::Vertex * eV
pointer to VtVertex object
Definition: EdbVertex.h:91
Int_t Nn() const
Definition: EdbVertex.h:122
Float_t eQuality
Probability/(vsigmax**2+vsigmay**2)
Definition: EdbVertex.h:89
Float_t VY() const
Definition: EdbVertex.h:134
EdbTrackP * GetTrack(int i)
Definition: EdbVertex.h:141
Int_t EstimateVertexFlag()
Definition: EdbVertex.cxx:184
Float_t ImpTrack(int i)
Definition: EdbVertex.h:152
void SetFlag(int flag=0)
Definition: EdbVertex.h:158
EdbVertex * GetConnectedVertex(int nv)
Definition: EdbVertex.cxx:405
Float_t Quality()
Definition: EdbVertex.h:136
float CheckImpGeom(const EdbTrackP *tr)
Definition: EdbVertex.cxx:430
Bool_t IsSortable() const
Definition: EdbVertex.h:129
EdbVertex()
Definition: EdbVertex.cxx:96
void ClearV()
Definition: EdbVertex.cxx:115
Float_t MaxImpact()
Definition: EdbVertex.h:116
void SetXYZ(float x, float y, float z)
Definition: EdbVertex.h:157
void ClearNeighborhood()
Definition: EdbVertex.cxx:275
Float_t VZ() const
Definition: EdbVertex.h:135
Float_t Z() const
Definition: EdbVertex.h:132
Int_t Compare(const TObject *o) const
Definition: EdbVertex.cxx:282
TList eVTn
vertex neighborhood tracks and segments
Definition: EdbVertex.h:73
Bool_t EstimateVertexMath(float &xv, float &yv, float &zv, float &d)
Definition: EdbVertex.cxx:471
void Edb2Vt(const EdbTrackP &tr, VERTEX::Track &t, float X0=0., float m=0.139)
Definition: EdbVertex.cxx:568
void ResetTracks()
Definition: EdbVertex.cxx:209
Int_t Flag() const
Definition: EdbVertex.h:124
Float_t eZ
to avoid accuracy problem
Definition: EdbVertex.h:78
TList * VTn()
Definition: EdbVertex.h:138
Float_t MaxAperture()
Definition: EdbVertex.cxx:252
void RemoveVTA(EdbVTA *vta)
Definition: EdbVertex.cxx:361
Int_t CheckDiscardedTracks()
Definition: EdbVertex.cxx:168
Int_t Zpos(int i)
Definition: EdbVertex.h:127
EdbTrackP * GetTrackN(int i)
Definition: EdbVertex.h:142
EdbSegP * GetTrackV(int i, bool usesegpar=false)
Definition: EdbVertex.cxx:159
Int_t Nv()
Definition: EdbVertex.cxx:367
Int_t eFlag
Definition: EdbVertex.h:81
Float_t Y() const
Definition: EdbVertex.h:131
Float_t DistTrack(EdbTrackP *tr, int zpos, float X0=0.)
Definition: EdbVertex.cxx:662
Int_t eMCEvt
Definition: EdbVertex.h:87
virtual ~EdbVertex()
Definition: EdbVertex.cxx:109
sort collection with attributes
Definition: TIndexCell.h:19
Definition: VtTrack.hh:64
Definition: VtVertex.hh:88
double vyerr() const
$\sqrt{\sigma_{vy}^2}$ vertex $y$-error
double vzerr() const
$\sqrt{\sigma_{vz}^2}$ vertex $z$-error
float vz() const
$z$ of vertex
Definition: VtVertex.C:235
float vy() const
$y$ of vertex
Definition: VtVertex.C:234
float vx() const
$x$ of vertex
Definition: VtVertex.C:233
double vxerr() const
$\sqrt{\sigma_{vx}^2}$ vertex $x$-error
Definition: bitview.h:14
AcqOdyssey * o
Definition: hwinit.C:2
TTree * t
Definition: check_shower.C:4
s
Definition: check_shower.C:55
TTree * tracks
Definition: check_tr.C:19
EdbSegP * s1
Definition: tlg2couples.C:29
EdbSegP * s2
Definition: tlg2couples.C:30
int nsegmin
Definition: check_vertex.C:23
float ImpMax
Definition: check_vertex.C:30
q
Definition: testBGReduction_AllMethods.C:55