FEDRA emulsion software from the OPERA Collaboration
EdbMosaicPath.h
Go to the documentation of this file.
1 #ifndef ROOT_EdbMosaicPath
2 #define ROOT_EdbMosaicPath
3 
5 // //
6 // EdbMosaicPath //
7 // //
8 // //
10 #include <TFile.h>
11 #include <TEnv.h>
12 #include "EdbID.h"
13 #include "EdbMosaicIO.h"
14 #include "EdbPattern.h"
15 #include "EdbLayer.h"
16 #include "EdbViewMap.h"
17 #include "EdbRunAccess.h"
18 
19 //______________________________________________________________________________
20 class EdbMosaicPath : public TObject {
21  private:
22  Int_t eN0;
23  TObjArray eHarr; // full array of a view headers (length eN0)
24  TArrayI eOK; // alignment success 0,1 (length eN0)
25  TArrayF eDist; // distances from headers to (X0,Y0) (eN elements useful)
26  TArrayI eInd; // order (eN elements useful)
27  Int_t eN; // number of selected elements
28  public:
29  Float_t eX0,eY0; // fragment center
30  Float_t eR0; // visinity range
31 
32  public:
33  EdbMosaicPath( int n ): eHarr(n),eOK(n),eDist(n),eInd(n) {eN0=n;}
34  virtual ~EdbMosaicPath(){}
35 
36  EdbViewHeader *GetHeader(int i) const { return (EdbViewHeader *)(eHarr.At(i)); }
37  EdbViewHeader *FindNearest( const TObjArray &harr, const float x0, const float y0 );
38  void InitArea(const TObjArray &harr, const float x0, const float y0, int nsegmin);
39  float InitLineX(const TObjArray &harr, const float y0, const float dy);
40  float InitLineY(const TObjArray &harr, const float x0, const float dx);
41  void SetOK( const int i) { eOK[i]++; }
42  int GetAlignedNeighbours(const int i0, TArrayI &list) const;
43  int I(const int i) const { return eInd[i]; }
44  int N0() const { return eN0; }
45  int N() const { return eN; }
46  int OK(const int i) const { return eOK[i]; }
47  Float_t Dist(const int i) const { return eDist[i]; }
48 
49  ClassDef(EdbMosaicPath,1) //Mosaic path manager
50 };
51 
52 #endif /* ROOT_EdbMosaicPath */
Definition: EdbMosaicPath.h:20
virtual ~EdbMosaicPath()
Definition: EdbMosaicPath.h:34
Float_t eX0
Definition: EdbMosaicPath.h:29
TArrayI eInd
Definition: EdbMosaicPath.h:26
Float_t eY0
Definition: EdbMosaicPath.h:29
int I(const int i) const
Definition: EdbMosaicPath.h:43
void SetOK(const int i)
Definition: EdbMosaicPath.h:41
TArrayF eDist
Definition: EdbMosaicPath.h:25
int OK(const int i) const
Definition: EdbMosaicPath.h:46
int N() const
Definition: EdbMosaicPath.h:45
float InitLineX(const TObjArray &harr, const float y0, const float dy)
Definition: EdbMosaicPath.cxx:40
int GetAlignedNeighbours(const int i0, TArrayI &list) const
Definition: EdbMosaicPath.cxx:21
TArrayI eOK
Definition: EdbMosaicPath.h:24
EdbViewHeader * FindNearest(const TObjArray &harr, const float x0, const float y0)
Definition: EdbMosaicPath.cxx:82
Int_t eN0
Definition: EdbMosaicPath.h:22
TObjArray eHarr
Definition: EdbMosaicPath.h:23
Int_t eN
Definition: EdbMosaicPath.h:27
Float_t Dist(const int i) const
Definition: EdbMosaicPath.h:47
int N0() const
Definition: EdbMosaicPath.h:44
Float_t eR0
Definition: EdbMosaicPath.h:30
EdbMosaicPath(int n)
Definition: EdbMosaicPath.h:33
void InitArea(const TObjArray &harr, const float x0, const float y0, int nsegmin)
Definition: EdbMosaicPath.cxx:103
EdbViewHeader * GetHeader(int i) const
Definition: EdbMosaicPath.h:36
float InitLineY(const TObjArray &harr, const float x0, const float dx)
Definition: EdbMosaicPath.cxx:61
Definition: EdbView.h:26
int nsegmin
Definition: check_vertex.C:23