FEDRA emulsion software from the OPERA Collaboration
EdbViewMatch.h
Go to the documentation of this file.
1 #ifndef ROOT_EdbViewMatch
2 #define ROOT_EdbViewMatch
3 
5 // //
6 // EdbViewMatch - nearby views matching by clusters&grains - the primary purpose is distortions correction //
7 // //
9 #include "TObject.h"
10 #include "TFile.h"
11 #include "TEnv.h"
12 #include "TNtuple.h"
13 #include "EdbCell2.h"
14 #include "EdbRun.h"
15 
16 
17 //______________________________________________________________________________
18 class EdbClMatch : public TObject {
19 public:
20  Float_t eX,eY,eZ; // cluster coords in view RS
21  Float_t eXv,eYv; // view coords
22  Int_t eView;
23  Int_t eFrame;
24  Short_t eIsCenter;
25 
27  EdbClMatch(float x,float y,float z, float xv,float yv, int view, int frame, short i, short j)
28  { eX=x; eY=y; eZ=z; eXv=xv; eYv=yv; eView=view; eFrame=frame;}
29  virtual ~EdbClMatch(){}
30 
31  ClassDef(EdbClMatch,1) // service structure for views correction
32 };
33 
34 //______________________________________________________________________________
35 class EdbViewMatch : public TObject {
36 private:
37  int eNClMin; // minimal number of clusters inside grain to be used for corrections
38  float eR2CenterMax; // the maximal distance to the matrix center for the reference cluster
39  int eNCenterMin; // the minimal number of cluster appearance in the central region
40  float eRmax; // acceptance for clusters matching
41 
42  TClonesArray eCl; // array of EdbClMatch objects
43  TClonesArray eGr; // array of EdbSegment objects (cluster "clouds" in this case)
44  EdbCell2 eGMap; // map of grains (EdbSegments)
45  EdbCell2 eCorrMap; // map of corrections
46  EdbCell2 eCorrMap0; // input map of corrections
47  int eIC[2]; // index of the central bin used as a position reference
48 
49  float eXpix, eYpix; // pixel size in microns
50  int eNXpix, eNYpix; // camera matrix size in pixels
51  int eDirX, eDirY; // microscope steps directions {-1, 0, 1}
52 
55 
56 public:
57  TFile *eOutputFile;
58  bool eDumpGr; // if(1) dump grains tree
59  float eAreaMin, eAreaMax; // clusters Area limits
60  float eVolumeMin, eVolumeMax; // clusters Volume limits
61 
62 public:
64  virtual ~EdbViewMatch(){}
65 
66  void InitGMap();
67  void InitCorrMap();
68 
69  void AddCluster( EdbClMatch *c );
70 
71  void CalculateGrRef();
72  void CalculateGrRefMean();
73  void CalculateCorr();
74  void DrawCorrMap();
75  void GenerateCorrectionMatrix(bool do_add);
76  void SetPar(TEnv &env);
77  void SetPixelSize(float xpix, float ypix) { eXpix=xpix; eYpix=ypix; }
78  void CutGrRef();
79  void ReadMatrix2Map(const char *file, EdbCell2 &map);
80 
81  TNtuple *DumpGr(const char *name);
82 
83  void MakeDistortionMap(const char *fname, TEnv &env, const char *usefile=0, const char *addfile=0);
84  int MakeViewDirectionList( EdbRun &run, int dirx, int diry, TArrayI &entries );
85 
86  void Print();
87 
88  ClassDef(EdbViewMatch,1) //
89 };
90 #endif /* ROOT_EdbViewMatch */
Definition: EdbCell2.h:151
Definition: EdbViewMatch.h:18
EdbClMatch(float x, float y, float z, float xv, float yv, int view, int frame, short i, short j)
Definition: EdbViewMatch.h:27
Int_t eFrame
Definition: EdbViewMatch.h:23
Int_t eView
Definition: EdbViewMatch.h:22
Float_t eX
Definition: EdbViewMatch.h:20
Float_t eXv
Definition: EdbViewMatch.h:21
Float_t eYv
Definition: EdbViewMatch.h:21
Float_t eZ
Definition: EdbViewMatch.h:20
Float_t eY
Definition: EdbViewMatch.h:20
virtual ~EdbClMatch()
Definition: EdbViewMatch.h:29
Short_t eIsCenter
Definition: EdbViewMatch.h:24
EdbClMatch()
Definition: EdbViewMatch.h:26
Definition: EdbRun.h:74
Definition: EdbViewMatch.h:35
float eYpix
Definition: EdbViewMatch.h:49
void CalculateCorr()
Definition: EdbViewMatch.cxx:267
int eIC[2]
Definition: EdbViewMatch.h:47
float eAreaMin
Definition: EdbViewMatch.h:59
int eNClMin
Definition: EdbViewMatch.h:37
int eNCenterMin
Definition: EdbViewMatch.h:39
float eCorrectionMatrixStepX
Definition: EdbViewMatch.h:53
void Print()
Definition: EdbViewMatch.cxx:432
void CalculateGrRef()
Definition: EdbViewMatch.cxx:160
TClonesArray eGr
Definition: EdbViewMatch.h:43
void GenerateCorrectionMatrix(bool do_add)
Definition: EdbViewMatch.cxx:363
bool eDumpGr
Definition: EdbViewMatch.h:58
TClonesArray eCl
Definition: EdbViewMatch.h:42
float eXpix
Definition: EdbViewMatch.h:49
float eAreaMax
Definition: EdbViewMatch.h:59
float eRmax
Definition: EdbViewMatch.h:40
void CalculateGrRefMean()
Definition: EdbViewMatch.cxx:187
void ReadMatrix2Map(const char *file, EdbCell2 &map)
Definition: EdbViewMatch.cxx:555
TNtuple * DumpGr(const char *name)
Definition: EdbViewMatch.cxx:242
void SetPar(TEnv &env)
Definition: EdbViewMatch.cxx:53
int eNXpix
Definition: EdbViewMatch.h:50
float eCorrectionMatrixStepY
Definition: EdbViewMatch.h:54
void AddCluster(EdbClMatch *c)
Definition: EdbViewMatch.cxx:133
TFile * eOutputFile
Definition: EdbViewMatch.h:57
void DrawCorrMap()
Definition: EdbViewMatch.cxx:299
float eVolumeMax
Definition: EdbViewMatch.h:60
int MakeViewDirectionList(EdbRun &run, int dirx, int diry, TArrayI &entries)
Definition: EdbViewMatch.cxx:453
float eR2CenterMax
Definition: EdbViewMatch.h:38
EdbCell2 eGMap
Definition: EdbViewMatch.h:44
void MakeDistortionMap(const char *fname, TEnv &env, const char *usefile=0, const char *addfile=0)
Definition: EdbViewMatch.cxx:492
int eDirY
Definition: EdbViewMatch.h:51
void InitCorrMap()
Definition: EdbViewMatch.cxx:87
float eVolumeMin
Definition: EdbViewMatch.h:60
virtual ~EdbViewMatch()
Definition: EdbViewMatch.h:64
int eDirX
Definition: EdbViewMatch.h:51
EdbCell2 eCorrMap
Definition: EdbViewMatch.h:45
void InitGMap()
Definition: EdbViewMatch.cxx:123
EdbCell2 eCorrMap0
Definition: EdbViewMatch.h:46
int eNYpix
Definition: EdbViewMatch.h:50
void CutGrRef()
Definition: EdbViewMatch.cxx:215
void SetPixelSize(float xpix, float ypix)
Definition: EdbViewMatch.h:77
EdbRun * run
Definition: check_raw.C:38
const char * fname
Definition: mc2raw.cxx:41
const char * name
Definition: merge_Energy_SytematicSources_Electron.C:24
TFile * file
Definition: write_pvr.C:3