FEDRA emulsion software from the OPERA Collaboration
EdbAttachPath.h
Go to the documentation of this file.
1 #ifndef ROOT_EdbAttachPath
2 #define ROOT_EdbAttachPath
4 // //
5 // EdbAttachPath //
6 // //
8 #include <TObject.h>
9 #include <TArrayF.h>
10 #include <TArrayI.h>
11 //______________________________________________________________________________
12 class EdbAttachPath : public TObject {
13  private:
14  Int_t eN0;
15  TArrayF eX; // input points [eN0]
16  TArrayF eY; //
17  TArrayI eID; // external id's of input elements [eN0]
18  TArrayI eOK; // alignment success levels 0,1,2 etc [eN0]
19 
20  Float_t eX0,eY0; // starting point
21  Float_t eR; // visinity range for neighbours search
22 
23  TArrayF eDist; // distances from headers to (X0,Y0) (eN elements useful)
24  TArrayI eInd; // ordered index (eN elements useful)
25  Int_t eN; // number of selected elements
26 
27 
28  public:
29  EdbAttachPath( int n ): eX(n),eY(n),eID(n),eOK(n),eDist(n),eInd(n) {eN0=n; eN=0;}
30  virtual ~EdbAttachPath(){}
31 
32  void SetStartingPosition(const int i) {eX0=eX[i]; eY0=eY[i];}
33  void SetStartingPosition(const float x, const float y);
34  void SetStartingAtCenter();
35  void SetRange(const float r) {eR=r;}
36  void SetPoint(const int i, const float x, const float y, const int id);
37  void OrderPointsRadial(); // here define eN, fill eInd and eDist
38  void RiseOK( const int i) { eOK[i]++; }
39 
40  int I(const int i) const { return eInd[i]; }
41  int N0() const { return eN0; }
42  int N() const { return eN; }
43  int OK(const int i) const { return eOK[i]; }
44  int ID(const int i) const { return eID[i]; }
45  Float_t Dist(const int i) const { return eDist[i]; }
46  int GetAlignedNeighbours(const int i0, TArrayI &list) const;
47  float GetMin(TArrayF &a);
48  float GetMax(TArrayF &a);
49  float Xmin(){return GetMin( eX ); }
50  float Xmax(){return GetMax( eX ); }
51  float Ymin(){return GetMin( eY ); }
52  float Ymax(){return GetMax( eY ); }
53 
54  ClassDef(EdbAttachPath,1) //Mosaic path manager
55 };
56 
57 #endif /* ROOT_EdbAttachPath */
void a()
Definition: check_aligned.C:59
Definition: EdbAttachPath.h:12
int GetAlignedNeighbours(const int i0, TArrayI &list) const
Definition: EdbAttachPath.cxx:81
void SetStartingPosition(const int i)
Definition: EdbAttachPath.h:32
TArrayI eOK
Definition: EdbAttachPath.h:18
void SetRange(const float r)
Definition: EdbAttachPath.h:35
int OK(const int i) const
Definition: EdbAttachPath.h:43
float Xmax()
Definition: EdbAttachPath.h:50
Float_t eR
Definition: EdbAttachPath.h:21
Float_t Dist(const int i) const
Definition: EdbAttachPath.h:45
int ID(const int i) const
Definition: EdbAttachPath.h:44
void SetPoint(const int i, const float x, const float y, const int id)
Definition: EdbAttachPath.cxx:17
virtual ~EdbAttachPath()
Definition: EdbAttachPath.h:30
int N0() const
Definition: EdbAttachPath.h:41
Int_t eN0
Definition: EdbAttachPath.h:14
Float_t eX0
Definition: EdbAttachPath.h:20
int N() const
Definition: EdbAttachPath.h:42
int I(const int i) const
Definition: EdbAttachPath.h:40
void RiseOK(const int i)
Definition: EdbAttachPath.h:38
void OrderPointsRadial()
Definition: EdbAttachPath.cxx:68
float Ymin()
Definition: EdbAttachPath.h:51
TArrayI eInd
Definition: EdbAttachPath.h:24
EdbAttachPath(int n)
Definition: EdbAttachPath.h:29
TArrayI eID
Definition: EdbAttachPath.h:17
float Ymax()
Definition: EdbAttachPath.h:52
TArrayF eDist
Definition: EdbAttachPath.h:23
void SetStartingAtCenter()
Definition: EdbAttachPath.cxx:60
Int_t eN
Definition: EdbAttachPath.h:25
TArrayF eX
Definition: EdbAttachPath.h:15
Float_t eY0
Definition: EdbAttachPath.h:20
TArrayF eY
Definition: EdbAttachPath.h:16
float Xmin()
Definition: EdbAttachPath.h:49
float GetMax(TArrayF &a)
Definition: EdbAttachPath.cxx:51
float GetMin(TArrayF &a)
Definition: EdbAttachPath.cxx:42
void r(int rid=2)
Definition: test.C:201