FEDRA emulsion software from the OPERA Collaboration
EdbPlateAlignment.h
Go to the documentation of this file.
1 #ifndef ROOT_EdbPlateAlignment
2 #define ROOT_EdbPlateAlignment
3 
4 #include "EdbAlignmentV.h"
5 
6 //-------------------------------------------------------------------------------------------------
8 {
9  public:
10 
11  Float_t eSigma[2]; // sigma of the bt useful for the fine alignment ie:(10,0.01)
12  Float_t eOffsetMax; // the maximal offset to be looked for
13 
14  Float_t eDZ; // the range +- dz will be scanned by coarce align
15  Float_t eDPHI; // the range +- dphi will be scanned by coarce align
16  Float_t eDoublets[4]; // dx,dy,dtx,dty for the dublets cutout
17 
18  Bool_t eNoScaleRot; //if 1 - disable both scaling and rotation
19  Bool_t eNoScale; //if 1 - disable scaling for calculation of affine transformations
22  Bool_t eDoFine, eFineOK;
23  Bool_t eRankCouples; // rank couples
24  Bool_t eSaveCouples; // save couples tree with the report file
25  Bool_t eStatus; // overall alignment result (true - OK)
26  Int_t eNcoins; // final number of coinsidence used for affine calc
27 
28  Int_t eFineMin; // minimum coinsidences to accept alignment
29  Int_t eCoarseMin; // minimum coinsidences to accept alignment
30 
31  EdbPeak2 eH_zphi_coarse; // the results of the coarse alignment
33  EdbPeak2 eH_xy_final; // the final alignment peak
34 
35  TObjArray eSegCouples; // segment couples objects to fill couples format tree
36  Bool_t eDoCorrectBeforeSaving; // apply corrections before saving the couples tree in al.root
37  Bool_t eDoCorrectAngle; // calculate and apply to the layer angular transformation
38  Int_t eNiter; // alignment iterations
39 
40  public:
42  virtual ~EdbPlateAlignment();
43 
44  void Align(EdbPattern &p1, EdbPattern &p2, float dz, int flag=0 );
45  void TestAl(EdbPattern &p1, EdbPattern &p2);
46  void CoarseAl(EdbPattern &p1, EdbPattern &p2);
47  void FineAl(EdbPattern &p1, EdbPattern &p2);
48  void FineAlAff(EdbPattern &p1, EdbPattern &p2, EdbLayer &la1);
50 
51  void SetParTestAl( float zcorr, float dz=500, float dphi=0.03 );
52  void SetParCoarseAl( float zcorr, float dpos=300, float dang=0.015, float dz=122, float dphi=0.01 );
53  void SetParFineAl();
54  void ProduceReport();
55  void SaveCouplesTree();
56  void SetSigma(float spos, float sang) { eSigma[0]=spos; eSigma[1]=sang; }
57  void SetDoublets(float dx, float dy, float dtx, float dty)
58  { eDoublets[0]=dx; eDoublets[1]=dy; eDoublets[2]=dtx; eDoublets[3]=dty; }
59 
60  void SlowAlignXY(EdbPattern &p1, EdbPattern &p2, EdbH2 &hxy, EdbH1 &hphi, const char *name="slowal" );
61  void RankCouples( TObjArray &arr1,TObjArray &arr2 );
62 
63  ClassDef(EdbPlateAlignment,1) // plate-to-plate alignment
64 };
65 #endif /* ROOT_EdbAlignmentV */
brick dz
Definition: RecDispMC.C:107
Definition: EdbAlignmentV.h:13
Definition: EdbCell1.h:17
Definition: EdbCell2.h:19
Definition: EdbLayer.h:40
Definition: EdbPattern.h:280
Definition: EdbCell2.h:104
Definition: EdbPlateAlignment.h:8
Float_t eOffsetMax
Definition: EdbPlateAlignment.h:12
EdbPeak2 eH_zphi_coarse
Definition: EdbPlateAlignment.h:31
TObjArray eSegCouples
Definition: EdbPlateAlignment.h:35
void FineAlAff(EdbPattern &p1, EdbPattern &p2, EdbLayer &la1)
Definition: EdbPlateAlignment.cxx:340
Float_t eSigma[2]
Definition: EdbPlateAlignment.h:11
virtual ~EdbPlateAlignment()
Definition: EdbPlateAlignment.cxx:56
void TestAl(EdbPattern &p1, EdbPattern &p2)
Definition: EdbPlateAlignment.cxx:481
Bool_t eCoarseOK
Definition: EdbPlateAlignment.h:21
Int_t eNiter
Definition: EdbPlateAlignment.h:38
Bool_t eSaveCouples
Definition: EdbPlateAlignment.h:24
Bool_t eFineOK
Definition: EdbPlateAlignment.h:22
void SetSigma(float spos, float sang)
Definition: EdbPlateAlignment.h:56
void SetDoublets(float dx, float dy, float dtx, float dty)
Definition: EdbPlateAlignment.h:57
void SetParFineAl()
Definition: EdbPlateAlignment.cxx:534
EdbPlateAlignment()
Definition: EdbPlateAlignment.cxx:30
Bool_t eDoFine
Definition: EdbPlateAlignment.h:22
Int_t eFineMin
Definition: EdbPlateAlignment.h:28
Float_t eDZ
Definition: EdbPlateAlignment.h:14
void SlowAlignXY(EdbPattern &p1, EdbPattern &p2, EdbH2 &hxy, EdbH1 &hphi, const char *name="slowal")
Definition: EdbPlateAlignment.cxx:582
Int_t eCoarseMin
Definition: EdbPlateAlignment.h:29
Bool_t eDoCorrectAngle
Definition: EdbPlateAlignment.h:37
Bool_t eStatus
Definition: EdbPlateAlignment.h:25
Bool_t eNoScaleRot
Definition: EdbPlateAlignment.h:18
Float_t eDoublets[4]
Definition: EdbPlateAlignment.h:16
void FineAl(EdbPattern &p1, EdbPattern &p2)
Definition: EdbPlateAlignment.cxx:382
void SetParCoarseAl(float zcorr, float dpos=300, float dang=0.015, float dz=122, float dphi=0.01)
Definition: EdbPlateAlignment.cxx:543
Float_t eDPHI
Definition: EdbPlateAlignment.h:15
Int_t eNcoins
Definition: EdbPlateAlignment.h:26
EdbPeak2 eH_xy_coarse
Definition: EdbPlateAlignment.h:32
void ProduceReport()
Definition: EdbPlateAlignment.cxx:136
void SetParTestAl(float zcorr, float dz=500, float dphi=0.03)
Definition: EdbPlateAlignment.cxx:569
void DoubletsFilterOut(EdbPattern &p1, EdbPattern &p2)
Definition: EdbPlateAlignment.cxx:325
Bool_t eDoTestAl
Definition: EdbPlateAlignment.h:20
Bool_t eTestAlOK
Definition: EdbPlateAlignment.h:20
Bool_t eDoCoarse
Definition: EdbPlateAlignment.h:21
void CoarseAl(EdbPattern &p1, EdbPattern &p2)
Definition: EdbPlateAlignment.cxx:431
void Align(EdbPattern &p1, EdbPattern &p2, float dz, int flag=0)
Definition: EdbPlateAlignment.cxx:62
void SaveCouplesTree()
Definition: EdbPlateAlignment.cxx:118
EdbPeak2 eH_xy_final
Definition: EdbPlateAlignment.h:33
Bool_t eRankCouples
Definition: EdbPlateAlignment.h:23
Bool_t eDoCorrectBeforeSaving
Definition: EdbPlateAlignment.h:36
Bool_t eNoScale
Definition: EdbPlateAlignment.h:19
void RankCouples(TObjArray &arr1, TObjArray &arr2)
Definition: EdbPlateAlignment.cxx:635
const char * name
Definition: merge_Energy_SytematicSources_Electron.C:24