FEDRA emulsion software from the OPERA Collaboration
EdbPVRec.h
Go to the documentation of this file.
1 #ifndef ROOT_EdbPVRec
2 #define ROOT_EdbPVRec
3 
5 // //
6 // EdbPVRec //
7 // //
8 // pattern volume reconstruction //
9 // //
11 
12 #include "THashList.h"
13 #include "EdbPattern.h"
14 #include "TIndexCell.h"
15 #include "EdbLayer.h"
16 #include "EdbScanCond.h"
17 #include "EdbSegCouple.h"
18 
19 class EdbAffine2D;
20 class TIndexCell;
21 class EdbVertex;
22 class EdbVTA;
23 class TIndex2;
24 class EdbScanSet;
25 
26 //______________________________________________________________________________
27 class EdbPatCouple : public TObject {
28 
29  private:
30 
31  Int_t eID[2]; // id-s of patterns in volume
32 
33  int eCoupleType; // 1 - up/down link; 0 - plate-to-plate
34 
37 
38  Float_t eOffset[4]; // maximal allowed offset before alignment
39  // "x:y:tx:ty"
40  Float_t eSigma[4]; // expected pat<->pat sigma after alignment
41 
42  EdbAffine2D *eAff; // affine transformation as: pat2 = pat1->Transform(aff)
43 
44  TObjArray *eSegCouples; //
45  // TClonesArray *eSegCouples; //
46 
48 
49  float eZlink; // at this z patterns should be linked (aligned)
50 
51  float eXoffsetMax;
52  float eYoffsetMax;
53 
54  float eChi2Max;
55 
56  int eCHI2mode; // algorithm used for chi2 calculation
57 
58  public:
60  ~EdbPatCouple();
61 
62  void SetID(int id1, int id2) { eID[0]=id1; eID[1]=id2; }
63  void SetOffsetsMax(float ox, float oy)
64  { eXoffsetMax=ox; eYoffsetMax=oy; }
65  void SetOffset( float o1,float o2, float o3, float o4 )
66  { eOffset[0]=o1; eOffset[1]=o2; eOffset[2]=o3; eOffset[3]=o4; }
67  void SetSigma( float s1,float s2, float s3, float s4 )
68  { eSigma[0]=s1; eSigma[1]=s2; eSigma[2]=s3; eSigma[3]=s4; }
69  void SetZlink(float z) {eZlink=z;}
70 
71  void SetPat1(EdbPattern *pat1) { ePat1=pat1; }
72  void SetPat2(EdbPattern *pat2) { ePat2=pat2; }
73 
74  void SetCond(EdbScanCond *cond) { eCond=cond; }
75 
76  EdbAffine2D *GetAff() {return eAff;}
77  EdbScanCond *Cond() {return eCond;}
78 
79  float Zlink() const {return eZlink;}
80  int Ncouples() const { if(eSegCouples) return eSegCouples->GetEntriesFast();
81  else return 0; }
82  void ClearSegCouples() { if(eSegCouples) eSegCouples->Clear(); }
83 
84  EdbSegCouple *AddSegCouple(int id1, int id2);
85  EdbSegCouple *GetSegCouple(int i) const
86  { return (EdbSegCouple *)(eSegCouples->At(i)); }
87  void RemoveSegCouple(EdbSegCouple *sc) { SafeDelete(sc); }
88 
89  EdbPattern *Pat1() { return ePat1; }
90  EdbPattern *Pat2() { return ePat2; }
91 
92 
93 
94  int LinkSlow( float chi2max );
95  int LinkFast();
97  int DiffPat( EdbPattern *pat1, EdbPattern *pat2,
98  Long_t vdiff[4]);
99 
100  int DiffPatCell( TIndexCell *cel1, TIndexCell *cel2,
101  Long_t vdiff[4]);
102 
103  void SetCHI2mode(int m) { eCHI2mode=m; }
104  int CHI2mode() const { return eCHI2mode; }
105  float Chi2Pz0(EdbSegCouple *scp);
106  float Chi2A(EdbSegCouple *scp, int iprob=1);
107  float Chi2A(EdbSegP *s1, EdbSegP *s2, int iprob=1);
108  float Chi2KF(EdbSegCouple *scp);
109 
110  int FillCHI2();
111  int FillCHI2P();
112 
113  int SelectIsolated();
114  int CutCHI2P(float chimax);
115  int SortByCHI2P();
116  void PrintCouples();
117 
118  int Align(int alignFlag);
119  //int AlignAff(EdbPattern *pat1, EdbPattern *pat2, Long_t vdiff[4]);
120  int FindOffset0(float xmax, float ymax);
121  int FindOffset01(float xmax, float ymax);
122  int FindOffset1(float xmax, float ymax);
123  int FindOffset( EdbPattern *pat1, EdbPattern *pat2, Long_t vdiff[4]);
124  void CalculateAffXY(int alignFlag);
125  void CalculateAffXYZ(float z, int alignFlag);
126 
127  void FillCell_XYaXaY( EdbScanCond *cond, float zlink, int id=0 );
128  void FillCell_XYaXaY( EdbPattern *pat, EdbScanCond *cond, float dz,
129  float stepx, float stepy );
130 
131  int ID1() const { return eID[0]; }
132  int ID2() const { return eID[1]; }
133 
134  float OffsetX() const { return eOffset[0]; }
135  float OffsetY() const { return eOffset[1]; }
136  float OffsetTX() const { return eOffset[2]; }
137  float OffsetTY() const { return eOffset[3]; }
138 
139  float SigmaX() const { return eSigma[0]; }
140  float SigmaY() const { return eSigma[1]; }
141  float SigmaTX() const { return eSigma[2]; }
142  float SigmaTY() const { return eSigma[3]; }
143 
144  ClassDef(EdbPatCouple,1) // couple of patterns to be aligned
145 };
146 
147 //______________________________________________________________________________
148 class EdbPVRec : public EdbPatternsVolume {
149 
150  private:
151 
152  TObjArray *ePatCouples; // patterns couples
153 
154  float eChi2Max;
155  Long_t eVdiff[4]; // how many ajenced bins should be taken into account
156  EdbScanCond *eScanCond; // scanning conditions (sigma, puls, etc)
157 
159 
160  public:
161  TObjArray *eTracks;
162  TObjArray *eVTX; // array of vertex
163 
164  public:
165  EdbPVRec();
166  ~EdbPVRec();
167 
168  void DummyCycle();
169 
170  void FillCell( float stepx, float stepy, float steptx,float stepty);
172  EdbScanCond const *GetScanCond() { return eScanCond; }
173 
174  void SetBinsCheck(int nx, int ny, int ntx, int nty)
175  { eVdiff[0]=nx; eVdiff[1]=ny; eVdiff[2]=ntx; eVdiff[3]=nty; }
176  EdbPatCouple *AddCouple(int id1, int id2);
177  void AddCouple(EdbPatCouple *c) { ePatCouples->Add(c); }
178  void SetCouples();
179  void ResetCouples();
180  void DeleteCouples() { if(ePatCouples) ePatCouples->Delete(); }
181  void SetCouplesAll();
182  void SetCouplesPeriodic(int istart, int iperiod);
183  void SetCouplesExclude(TArrayI &exclude);
184 
185  float Chi2Max( ) const { return eChi2Max; }
186  void SetChi2Max(float chi) { eChi2Max=chi; }
187 
188  Int_t Ncouples() const {return ePatCouples?ePatCouples->GetEntriesFast():0;}
189 
190  EdbPatCouple *GetCouple(int i) const { if(ePatCouples)
191  return (EdbPatCouple *)(ePatCouples->At(i));
192  else return 0; }
193 
194  TIndexCell *GetTracksCell() const { return eTracksCell; }
195 
196  void ResetTracks();
197  float Chi2Fast(EdbSegP &s1, EdbSegP &s2);
198  int MergeTracks(int maxgap=2);
199  int MergeTracks1(int maxgap);
200  int MakeTracks(int nsegments=2, int flag=0);
201  void FitTracks(float p=10., float mass=0.139, TObjArray *gener = 0,
202  int design=0);
203  Int_t Ntracks() const {return eTracks ? eTracks->GetEntriesFast() : 0;}
204 
205  int LinkSlow();
206  int Link();
207  int Align(int alignFlag);
208  int AlignOld(int alignFlag);
209  int AlignPlates( EdbScanSet &sci, EdbScanSet &sca, const char *reportdir=0);
210 
211  // int AlignA();
212  // int LinkTracks();
213  void FillTracksCellFast();
214  void AddCouplesToTracks(EdbPatCouple *pc, TIndex2 &itracks );
215  void AddCouplesToTracksM(EdbPatCouple *pc, TIndex2 &itracks );
216  void FillTracksCell2();
217  void FillTracksCell1();
218  void FillTracksCell();
219  int MakeHoles(int ort);
220  int InsertHole( const EdbSegP *s1, const EdbSegP *s2, int pid );
222  int CollectSegment1(TIndexCell *ct, THashList *cross);
223  int SelectLongTracks(int nsegments);
224 
225  int MakeSummaryTracks();
226  int FineCorrXY(int ipat, EdbAffine2D &aff, int flag);
227  int FineCorrTXTY(int ipat, EdbAffine2D &aff);
228  int FineCorrZ(int ipat, float &dz);
229  int FineCorrZnew();
230  int FineCorrShr(int ipat, float &shr);
231 
232  int FineCorrF(int ipat, EdbAffine2D &aff, EdbAffine2D &afft );
233 
234  void SetSegmentsTracks();
235 
236  void SetOffsetsMax(float ox, float oy);
237  void SetSegmentsErrors();
238  void SetSegmentErrors( EdbSegP &seg );
239  void SetSegmentProbability( EdbSegP &seg );
240 
241  EdbTrackP* GetTrack(int i) const {return eTracks ? (EdbTrackP*)(eTracks->At(i)) : 0;}
242  EdbTrackP* FindTrack(int id) const;
243 
244  EdbSegP* FindSegment(int PlateID, int SegmentID) const;
245 
247  if (!eTracks) eTracks = new TObjArray();
248  eTracks->Add(track);
249  }
250 
251  void AddVertex(EdbVertex *vtx) {
252  if(!eVTX) eVTX = new TObjArray();
253  eVTX->Add((TObject*)vtx);
254  }
255  Int_t Nvtx() const {return eVTX ? eVTX->GetEntriesFast() : 0;}
256  EdbVertex *GetVertex(Int_t &i) {return eVTX ? (EdbVertex*)eVTX->At(i) : 0;}
257 
258  inline TObjArray* GetTracks() {return eTracks;}
259  inline TObjArray* GetVertices() {return eVTX;}
260 
261  Int_t NSeg();
262 
263 
264  int ExtractDataVolumeSeg( EdbTrackP &tr, TObjArray &arr,
265  float binx, float bint );
266  int ExtractDataVolumeSegAll( TObjArray &arr );
267 
268  int CombTracks( int nplmin, int ngapMax, float probMin=0.01 );
269 
270  int PropagateTracks(int nplmax, int nplmin, float probMin = 0.05,
271  int ngapMax = 3, int design = 0 );
272  int PropagateTrack( EdbTrackP &tr, bool followZ, float probMin = 0.05,
273  int ngapMax = 3, int design = 0 );
274 
275  static double ProbeSeg( const EdbTrackP *s1, EdbTrackP *s2,
276  const float X0=5810. );
277  static double ProbeSeg( const EdbTrackP *s1, EdbSegP *s2,
278  const float X0=5810. );
279  static double ProbeSeg( const EdbSegP *s1, EdbSegP *s2,
280  const float X0=5810., const float mass=0.1396 );
281 
282  static bool AttachSeg( EdbTrackP& tr, EdbSegP *s,
283  const float X0, const float ProbMin, float &prob );
284 
286  int AddSegments(EdbPVRec &ali);
289  void SetScanIDPatSeg(EdbID id);
290  void SetScanIDTrackSeg(EdbID id);
291 
292  float Xmin();
293  float Xmax();
294  float Ymin();
295  float Ymax();
296  //float Zmin();
297  //float Zmax();
298 
299  void InsertTrack( const EdbTrackP &t );
300  void PrintSummary();
301 
302  ClassDef(EdbPVRec,1) // Patterns Volume reconstructor
303 };
304 #endif /* ROOT_EdbPVRec */
SVector< T, 3 > cross(const SVector< T, 3 > &lhs, const SVector< T, 3 > &rhs)
Definition: Functions.hh:283
brick dz
Definition: RecDispMC.C:107
int design
Definition: RecDispMC.C:90
EdbScanCond * scan
Definition: RecDispNU.C:117
TTree * tr
Definition: Shower_E_FromShowerRoot.C:5
EdbPVRec * ali
Definition: align.C:1
TTree * t
Definition: check_shower.C:4
Definition: EdbAffine.h:17
Definition: EdbID.h:7
Definition: EdbPVRec.h:148
int AlignOld(int alignFlag)
Definition: EdbPVRec.cxx:1276
int InsertHole(const EdbSegP *s1, const EdbSegP *s2, int pid)
Definition: EdbPVRec.cxx:1726
Long_t eVdiff[4]
Definition: EdbPVRec.h:155
int FineCorrXY(int ipat, EdbAffine2D &aff, int flag)
Definition: EdbPVRec.cxx:2090
void SetSegmentsErrors()
Definition: EdbPVRec.cxx:1125
void DummyCycle()
Definition: EdbPVRec.cxx:1167
int FineCorrTXTY(int ipat, EdbAffine2D &aff)
Definition: EdbPVRec.cxx:2121
int CollectSegment1(TIndexCell *ct, THashList *cross)
Definition: EdbPVRec.cxx:1658
int ExtractDataVolumeSegAll(TObjArray &arr)
Definition: EdbPVRec.cxx:2877
void SetCouples()
Definition: EdbPVRec.cxx:933
void SetScanIDTrackSeg(EdbID id)
Definition: EdbPVRec.cxx:2987
int LinkSlow()
Definition: EdbPVRec.cxx:1148
static double ProbeSeg(const EdbTrackP *s1, EdbTrackP *s2, const float X0=5810.)
Definition: EdbPVRec.cxx:2654
float eChi2Max
Definition: EdbPVRec.h:154
EdbVertex * GetVertex(Int_t &i)
Definition: EdbPVRec.h:256
int FineCorrZ(int ipat, float &dz)
Definition: EdbPVRec.cxx:2152
int ExtractDataVolumeSeg(EdbTrackP &tr, TObjArray &arr, float binx, float bint)
Definition: EdbPVRec.cxx:2852
int MakeTracks(int nsegments=2, int flag=0)
Definition: EdbPVRec.cxx:1985
TIndexCell * eTracksCell
Definition: EdbPVRec.h:158
int Align(int alignFlag)
Definition: EdbPVRec.cxx:1206
void AddCouplesToTracks(EdbPatCouple *pc, TIndex2 &itracks)
Definition: EdbPVRec.cxx:1399
void SetBinsCheck(int nx, int ny, int ntx, int nty)
Definition: EdbPVRec.h:174
int FineCorrZnew()
Definition: EdbPVRec.cxx:2185
void AddCouplesToTracksM(EdbPatCouple *pc, TIndex2 &itracks)
Definition: EdbPVRec.cxx:1435
void SetSegmentErrors(EdbSegP &seg)
Definition: EdbPVRec.cxx:1095
void SetSegmentProbability(EdbSegP &seg)
Definition: EdbPVRec.cxx:1112
EdbSegP * FindSegment(int PlateID, int SegmentID) const
Definition: EdbPVRec.cxx:900
void SetCouplesPeriodic(int istart, int iperiod)
Definition: EdbPVRec.cxx:981
EdbScanCond const * GetScanCond()
Definition: EdbPVRec.h:172
int SelectLongTracks(int nsegments)
Definition: EdbPVRec.cxx:2290
EdbPVRec()
=============================================================================
Definition: EdbPVRec.cxx:856
float Chi2Max() const
Definition: EdbPVRec.h:185
EdbTrackP * GetTrack(int i) const
Definition: EdbPVRec.h:241
float Xmin()
Definition: EdbPVRec.cxx:1040
TIndexCell * GetTracksCell() const
Definition: EdbPVRec.h:194
int MergeTracks(int maxgap=2)
Definition: EdbPVRec.cxx:1741
~EdbPVRec()
Definition: EdbPVRec.cxx:869
void FillTracksCellFast()
Definition: EdbPVRec.cxx:1357
void FillTracksCell2()
Definition: EdbPVRec.cxx:1574
int MakeHoles(int ort)
Definition: EdbPVRec.cxx:1679
int CombTracks(int nplmin, int ngapMax, float probMin=0.01)
Definition: EdbPVRec.cxx:2341
int FineCorrF(int ipat, EdbAffine2D &aff, EdbAffine2D &afft)
Definition: EdbPVRec.cxx:2035
void SetSegmentsTracks()
Definition: EdbPVRec.cxx:2470
void SetCouplesExclude(TArrayI &exclude)
Definition: EdbPVRec.cxx:1009
void SetChi2Max(float chi)
Definition: EdbPVRec.h:186
Int_t NSeg()
Definition: EdbPVRec.cxx:2909
int MakeSummaryTracks()
Definition: EdbPVRec.cxx:2276
EdbPatCouple * GetCouple(int i) const
Definition: EdbPVRec.h:190
TObjArray * eVTX
Definition: EdbPVRec.h:162
void FillTracksCell()
Definition: EdbPVRec.cxx:1315
Int_t Ntracks() const
Definition: EdbPVRec.h:203
TObjArray * ePatCouples
Definition: EdbPVRec.h:152
void ResetCouples()
Definition: EdbPVRec.cxx:949
TObjArray * eTracks
Definition: EdbPVRec.h:161
EdbPatCouple * AddCouple(int id1, int id2)
Definition: EdbPVRec.cxx:915
void AddVertex(EdbVertex *vtx)
Definition: EdbPVRec.h:251
void SetCouplesAll()
Definition: EdbPVRec.cxx:974
void PrintSummary()
Definition: EdbPVRec.cxx:3034
float Chi2Fast(EdbSegP &s1, EdbSegP &s2)
Definition: EdbPVRec.cxx:1841
int FineCorrShr(int ipat, float &shr)
Definition: EdbPVRec.cxx:2247
void FillCell(float stepx, float stepy, float steptx, float stepty)
Definition: EdbPVRec.cxx:1088
int Link()
Definition: EdbPVRec.cxx:1183
float Xmax()
Definition: EdbPVRec.cxx:1052
void InsertTrack(const EdbTrackP &t)
Definition: EdbPVRec.cxx:3003
void AddCouple(EdbPatCouple *c)
Definition: EdbPVRec.h:177
void SetScanIDPatSeg(EdbID id)
Definition: EdbPVRec.cxx:2972
Int_t Nvtx() const
Definition: EdbPVRec.h:255
float Ymax()
Definition: EdbPVRec.cxx:1076
Int_t Ncouples() const
Definition: EdbPVRec.h:188
int AlignPlates(EdbScanSet &sci, EdbScanSet &sca, const char *reportdir=0)
Definition: EdbPVRec.cxx:1225
int MergeTracks1(int maxgap)
Definition: EdbPVRec.cxx:1758
float Ymin()
Definition: EdbPVRec.cxx:1064
void DeleteCouples()
Definition: EdbPVRec.h:180
EdbSegP * AddSegment(EdbSegP &s)
Definition: EdbPVRec.cxx:2921
static bool AttachSeg(EdbTrackP &tr, EdbSegP *s, const float X0, const float ProbMin, float &prob)
Definition: EdbPVRec.cxx:2750
int PropagateTrack(EdbTrackP &tr, bool followZ, float probMin=0.05, int ngapMax=3, int design=0)
Definition: EdbPVRec.cxx:2565
EdbTrackP * FindTrack(int id) const
Definition: EdbPVRec.cxx:892
int PropagateTracks(int nplmax, int nplmin, float probMin=0.05, int ngapMax=3, int design=0)
Definition: EdbPVRec.cxx:2483
EdbPattern * GetPatternByPID(int pid)
Definition: EdbPVRec.cxx:2898
void SetScanCond(EdbScanCond *scan)
Definition: EdbPVRec.h:171
void FillTracksCell1()
Definition: EdbPVRec.cxx:1512
int CollectSegment(TIndexCell *ct, TIndexCell *cross)
Definition: EdbPVRec.cxx:1637
void FitTracks(float p=10., float mass=0.139, TObjArray *gener=0, int design=0)
Definition: EdbPVRec.cxx:1889
int AddSegments(EdbPVRec &ali)
Definition: EdbPVRec.cxx:2943
TObjArray * GetVertices()
Definition: EdbPVRec.h:259
EdbScanCond * eScanCond
Definition: EdbPVRec.h:156
void SetOffsetsMax(float ox, float oy)
Definition: EdbPVRec.cxx:924
void AddTrack(EdbTrackP *track)
Definition: EdbPVRec.h:246
TObjArray * GetTracks()
Definition: EdbPVRec.h:258
void ResetTracks()
Definition: EdbPVRec.cxx:962
Definition: EdbPVRec.h:27
Float_t eOffset[4]
Definition: EdbPVRec.h:38
float SigmaTY() const
Definition: EdbPVRec.h:142
float OffsetTY() const
Definition: EdbPVRec.h:137
float eXoffsetMax
Definition: EdbPVRec.h:51
float OffsetX() const
Definition: EdbPVRec.h:134
void SetOffset(float o1, float o2, float o3, float o4)
Definition: EdbPVRec.h:65
EdbPattern * ePat1
Definition: EdbPVRec.h:35
void SetPat2(EdbPattern *pat2)
Definition: EdbPVRec.h:72
EdbPattern * Pat2()
Definition: EdbPVRec.h:90
void RemoveSegCouple(EdbSegCouple *sc)
Definition: EdbPVRec.h:87
int FindOffset0(float xmax, float ymax)
Definition: EdbPVRec.cxx:182
int eCHI2mode
Definition: EdbPVRec.h:56
EdbSegCouple * AddSegCouple(int id1, int id2)
Definition: EdbPVRec.cxx:118
float Chi2Pz0(EdbSegCouple *scp)
Definition: EdbPVRec.cxx:403
EdbPattern * Pat1()
Definition: EdbPVRec.h:89
EdbPattern * ePat2
Definition: EdbPVRec.h:36
float Chi2KF(EdbSegCouple *scp)
Definition: EdbPVRec.cxx:303
int Align(int alignFlag)
Definition: EdbPVRec.cxx:533
int eCoupleType
Definition: EdbPVRec.h:33
int CheckSegmentsDuplication(EdbPattern *pat)
Definition: EdbPVRec.cxx:619
Float_t eSigma[4]
Definition: EdbPVRec.h:40
void SetCond(EdbScanCond *cond)
Definition: EdbPVRec.h:74
int DiffPatCell(TIndexCell *cel1, TIndexCell *cel2, Long_t vdiff[4])
Definition: EdbPVRec.cxx:712
void PrintCouples()
Definition: EdbPVRec.cxx:127
float SigmaTX() const
Definition: EdbPVRec.h:141
float eChi2Max
Definition: EdbPVRec.h:54
EdbAffine2D * eAff
Definition: EdbPVRec.h:42
~EdbPatCouple()
Definition: EdbPVRec.cxx:109
int FillCHI2P()
Definition: EdbPVRec.cxx:265
int ID2() const
Definition: EdbPVRec.h:132
void ClearSegCouples()
Definition: EdbPVRec.h:82
void SetOffsetsMax(float ox, float oy)
Definition: EdbPVRec.h:63
TObjArray * eSegCouples
Definition: EdbPVRec.h:44
float eZlink
Definition: EdbPVRec.h:49
int FindOffset(EdbPattern *pat1, EdbPattern *pat2, Long_t vdiff[4])
Definition: EdbPVRec.cxx:206
int SelectIsolated()
Definition: EdbPVRec.cxx:471
void SetSigma(float s1, float s2, float s3, float s4)
Definition: EdbPVRec.h:67
int ID1() const
Definition: EdbPVRec.h:131
void SetCHI2mode(int m)
Definition: EdbPVRec.h:103
int FindOffset01(float xmax, float ymax)
Definition: EdbPVRec.cxx:190
int FindOffset1(float xmax, float ymax)
Definition: EdbPVRec.cxx:198
EdbSegCouple * GetSegCouple(int i) const
Definition: EdbPVRec.h:85
int DiffPat(EdbPattern *pat1, EdbPattern *pat2, Long_t vdiff[4])
Definition: EdbPVRec.cxx:697
void CalculateAffXY(int alignFlag)
Definition: EdbPVRec.cxx:172
float Chi2A(EdbSegCouple *scp, int iprob=1)
Definition: EdbPVRec.cxx:330
void SetZlink(float z)
Definition: EdbPVRec.h:69
int CHI2mode() const
Definition: EdbPVRec.h:104
int LinkFast()
Definition: EdbPVRec.cxx:665
float Zlink() const
Definition: EdbPVRec.h:79
float SigmaX() const
Definition: EdbPVRec.h:139
void FillCell_XYaXaY(EdbScanCond *cond, float zlink, int id=0)
Definition: EdbPVRec.cxx:806
int FillCHI2()
Definition: EdbPVRec.cxx:287
float OffsetY() const
Definition: EdbPVRec.h:135
int SortByCHI2P()
Definition: EdbPVRec.cxx:490
void SetID(int id1, int id2)
Definition: EdbPVRec.h:62
EdbAffine2D * GetAff()
Definition: EdbPVRec.h:76
EdbScanCond * eCond
Definition: EdbPVRec.h:47
float SigmaY() const
Definition: EdbPVRec.h:140
float OffsetTX() const
Definition: EdbPVRec.h:136
int CutCHI2P(float chimax)
Definition: EdbPVRec.cxx:451
void CalculateAffXYZ(float z, int alignFlag)
Definition: EdbPVRec.cxx:138
float eYoffsetMax
Definition: EdbPVRec.h:52
EdbScanCond * Cond()
Definition: EdbPVRec.h:77
int LinkSlow(float chi2max)
Definition: EdbPVRec.cxx:586
void SetPat1(EdbPattern *pat1)
Definition: EdbPVRec.h:71
int Ncouples() const
Definition: EdbPVRec.h:80
Int_t eID[2]
Definition: EdbPVRec.h:31
Definition: EdbPattern.h:280
Definition: EdbPattern.h:348
Definition: EdbScanCond.h:10
Definition: EdbScanSet.h:11
Definition: EdbSegCouple.h:14
Definition: EdbSegP.h:18
Definition: EdbPattern.h:118
Definition: EdbVertex.h:25
Definition: EdbVertex.h:68
Definition: EdbMath.h:49
Definition: TIndexCell.h:19
Definition: bitview.h:14
int nx
Definition: emthickness.cpp:60
float X0
Definition: emthickness.cpp:69
float xmax
Definition: emthickness.cpp:61
int ny
Definition: emthickness.cpp:62
float ymax
Definition: emthickness.cpp:63
EdbPVGen * gener
Definition: gen.C:2
int pid[1000]
Definition: m2track.cpp:13
float mass
Definition: check_vertex.C:21
p
Definition: testBGReduction_AllMethods.C:8
EdbSegP * s1
Definition: tlg2pattern.C:30
EdbSegP * s2
Definition: tlg2pattern.C:31
EdbSegP * s
Definition: tlg2pattern.C:32