FEDRA emulsion software from the OPERA Collaboration
EdbVertexComb.h
Go to the documentation of this file.
1#ifndef ROOT_EdbVertexComb
2#define ROOT_EdbVertexComb
3#include "EdbVertex.h"
4#include "EdbScanCond.h"
5
6//_________________________________________________________________________
7class EdbTopology: public TObject {
8
9 private:
10 TObjArray eVertices;
11 TObjArray eTracks;
12
13 public:
15 virtual ~EdbTopology(){}
16
17 Int_t Nvtx() const {return eVertices.GetEntries();}
18 Int_t Ntr() const {return eTracks.GetEntries();}
19 Float_t Probability();
20 Float_t DZ();
21 EdbVertex *AddVertex( EdbVertex *v ) { eVertices.Add(v); return v; }
22 EdbVertex *GetVertex( int i ) const { return (EdbVertex *)eVertices.At(i); }
23 EdbTrackP *GetTrack( int i ) const { return (EdbTrackP *)eTracks.At(i); }
24 void AddSingleTracks( TObjArray &tracks ) { eTracks.AddAll(&tracks); }
25 void Print();
26 void PrintTracks();
27 char *TracksStr();
28 char *VertexStr(EdbVertex &v);
29 void OrderVtxByZ();
30 bool IsEqual(EdbTopology &t);
31 Int_t MaxV(){return 0;}
32
33 ClassDef(EdbTopology,1) //class to keep the reconstructed topology
34};
35
36//_________________________________________________________________________
37class EdbVertexComb: public TObject {
38
39 public:
40 TObjArray eTracks;
41
43 Int_t eRecursion;
46 Float_t eZ0;
47
48 Float_t eProbMinV;
50
51 Float_t eProbDetached;
52
53 TObjArray eVertices;
54 TObjArray eOther;
55
56 TObjArray eTopologies;
57
58 public:
60 EdbVertexComb( TObjArray &tracks );
61 virtual ~EdbVertexComb();
62
63 void Set0();
64 void CopyPar( EdbVertexComb &comb );
65 void AddTrack( EdbTrackP *t ) { eTracks.Add(t); }
68 void SetTracksErrors(TObjArray &tracks, EdbScanCond &cond);
69// void SelectSortVertices();
70
71 void FormVertices();
72 int FindTopologies();
73 void PrintTopologies();
74
75 EdbTopology *GetTopology(int i) const {return ((EdbTopology*)(eTopologies.At(i)));}
76
77 int Ntr() const {return eTracks.GetEntries();}
78 int Nvtx() const {return eVertices.GetEntries();}
79 EdbVertex *GetVertex( int i ) const { return (EdbVertex *)eVertices.At(i); }
80 EdbVertexComb *GetVertexComb( int i ) const { return (EdbVertexComb *)eOther.At(i); }
81
82 bool IsAcceptable(EdbVertex &v);
83 EdbVertex *CheckVTX(TObjArray &tracks);
84 void PrintTracks();
85 void SelectTopologies(TObjArray &topoarr);
86 void SortTopologies(TObjArray &topoarr);
87 void ClearDoublets(TObjArray &topoarr);
88 void PrintTeoricalCombinations(Int_t n);
89
90 ClassDef(EdbVertexComb,1) //combinatorial selection of the best vertex combinations
91};
92#endif /* ROOT_EdbVertexComb */
Definition: EdbScanCond.h:10
Definition: EdbVertexComb.h:7
EdbVertex * GetVertex(int i) const
Definition: EdbVertexComb.h:22
Int_t MaxV()
Definition: EdbVertexComb.h:31
char * TracksStr()
Definition: EdbVertexComb.cxx:88
TObjArray eVertices
Definition: EdbVertexComb.h:10
void OrderVtxByZ()
Definition: EdbVertexComb.cxx:61
virtual ~EdbTopology()
Definition: EdbVertexComb.h:15
void Print()
Definition: EdbVertexComb.cxx:113
bool IsEqual(EdbTopology &t)
Definition: EdbVertexComb.cxx:52
EdbTopology()
Definition: EdbVertexComb.h:14
EdbVertex * AddVertex(EdbVertex *v)
Definition: EdbVertexComb.h:21
Float_t DZ()
Definition: EdbVertexComb.cxx:36
void AddSingleTracks(TObjArray &tracks)
Definition: EdbVertexComb.h:24
char * VertexStr(EdbVertex &v)
Definition: EdbVertexComb.cxx:99
TObjArray eTracks
detached tracks - part of the topology but not participated in any vtx
Definition: EdbVertexComb.h:11
Int_t Ntr() const
Definition: EdbVertexComb.h:18
Float_t Probability()
Definition: EdbVertexComb.cxx:23
EdbTrackP * GetTrack(int i) const
Definition: EdbVertexComb.h:23
Int_t Nvtx() const
Definition: EdbVertexComb.h:17
void PrintTracks()
Definition: EdbVertexComb.cxx:73
Definition: EdbPattern.h:113
Definition: EdbVertexComb.h:37
EdbVertex * GetVertex(int i) const
Definition: EdbVertexComb.h:79
EdbVertexComb * GetVertexComb(int i) const
Definition: EdbVertexComb.h:80
void Set0()
Definition: EdbVertexComb.cxx:139
Float_t eZ0
input parameter: the first approximation for the vertex z-position
Definition: EdbVertexComb.h:46
Int_t eRecursionMax
number of vertex/event to be searched
Definition: EdbVertexComb.h:42
void FormVertices()
Definition: EdbVertexComb.cxx:211
void PrintTracks()
Definition: EdbVertexComb.cxx:248
EdbVertex * CheckVTX(TObjArray &tracks)
Definition: EdbVertexComb.cxx:332
Int_t eRecursion
recursion level (0 - no recursion)
Definition: EdbVertexComb.h:43
void SetTracksErrors(EdbScanCond &cond)
Definition: EdbVertexComb.h:66
void AddTrack(EdbTrackP *t)
Definition: EdbVertexComb.h:65
TObjArray eTopologies
found EdbTopologies sorted by rating
Definition: EdbVertexComb.h:56
EdbVertexPar eVPar
Definition: EdbVertexComb.h:45
virtual ~EdbVertexComb()
Definition: EdbVertexComb.cxx:134
void PrintTeoricalCombinations(Int_t n)
Definition: EdbVertexComb.cxx:161
Int_t eNProngMinV
min prongs to accept the vertex for topology calculation
Definition: EdbVertexComb.h:49
void ClearDoublets(TObjArray &topoarr)
Definition: EdbVertexComb.cxx:263
Float_t eProbMinV
min probability to accept the vertex for topology calculation
Definition: EdbVertexComb.h:48
int FindTopologies()
Definition: EdbVertexComb.cxx:190
EdbVertexComb()
Definition: EdbVertexComb.h:59
TObjArray eTracks
input EdbTracks
Definition: EdbVertexComb.h:40
int Ntr() const
Definition: EdbVertexComb.h:77
Float_t eProbDetached
default probability for the detached track (1-prong vertex)
Definition: EdbVertexComb.h:51
EdbTopology * GetTopology(int i) const
Definition: EdbVertexComb.h:75
TObjArray eOther
recursive array of EdbVertexComb objects in multyvertex case
Definition: EdbVertexComb.h:54
void SetTracksErrors()
Definition: EdbVertexComb.h:67
void PrintTopologies()
Definition: EdbVertexComb.cxx:203
void SelectTopologies(TObjArray &topoarr)
Definition: EdbVertexComb.cxx:293
EdbScanCond eCond
Definition: EdbVertexComb.h:44
bool IsAcceptable(EdbVertex &v)
Definition: EdbVertexComb.cxx:325
void SortTopologies(TObjArray &topoarr)
Definition: EdbVertexComb.cxx:279
TObjArray eVertices
output vertices
Definition: EdbVertexComb.h:53
void CopyPar(EdbVertexComb &comb)
Definition: EdbVertexComb.cxx:149
int Nvtx() const
Definition: EdbVertexComb.h:78
Definition: EdbVertex.h:172
Definition: EdbVertex.h:69
TTree * t
Definition: check_shower.C:4
TTree * tracks
Definition: check_tr.C:19