FEDRA emulsion software from the OPERA Collaboration
EdbRun.h
Go to the documentation of this file.
1 #ifndef ROOT_EdbRun
2 #define ROOT_EdbRun
3 
5 // //
6 // EdbRun //
7 // //
8 // main run class contained all objects //
9 // //
11 #include "TFile.h"
12 #include "TTree.h"
13 #include "TObjString.h"
14 
15 #ifndef ROOT_EdbView
16 #include "EdbView.h"
17 #endif
18 
19 #ifndef ROOT_EdbRunHeader
20 #include "EdbRunHeader.h"
21 #endif
22 
23 #ifndef ROOT_EdbPrediction
24 #include "EdbPrediction.h"
25 #endif
26 
27 #ifndef ROOT_EdbFiducial
28 #include "EdbFiducial.h"
29 #endif
30 
32 {
33  Int_t view1; // 1-st view
34  Int_t view2; // 2-d view
35  Int_t area1;
36  Int_t area2;
37  Int_t side1;
38  Int_t side2;
39  Float_t dx; // found offset
40  Float_t dy; // found offset
41  Float_t dz; // found offset
42  Int_t n1tot; // total number of grains in the view
43  Int_t n2tot;
44  Int_t n1; // number of grains in intersection area
45  Int_t n2;
46  Int_t nsg; // peak height
47  Int_t nbg; // bg level (random coinsidences)
48  Int_t flag; // enum Flags {f_Applied = 0x01,f_Pin = 0x02,f_Found = 0x04}; f_Pin: view2 is a pinned view
49 };
50 
52 {
53  Int_t frame1; // 1-st frame id
54  Int_t frame2; // 2-d frame id
55  Int_t view; // view id
56  Int_t area;
57  Int_t side;
58  Float_t dxglobal; // global offset applied for all frames of this view (XfrStage=Xframecorrected-dxglobal-flag*dx)
59  Float_t dyglobal; // global offset applied for all frames of this view
60  Float_t dx; // found offset
61  Float_t dy; // found offset
62  Float_t z1; // z of the first frame
63  Float_t z2; // z of the second frame
64  Int_t n1tot; // total number of clusters in the frame
65  Int_t n2tot;
66  Int_t n1; // number of grains in intersection area
67  Int_t n2;
68  Int_t nsg; // peak height
69  Int_t nbg; // bg level (random coinsidences)
70  Int_t flag; // in first 3 bits: {f_Applied = 0x01,f_Found = 0x02,f_Recovered = 0x04};
71 };
72 
73 //______________________________________________________________________________
74 class EdbRun : public TObject {
75 
76 private:
77 
78  EdbRunHeader *eHeader; // run header
79 
80  EdbView *eView; // view using for import and export data
81 
82  TTree *eTree; // tree with View objects
83  TFile *eFile; // file associated with the Run
84  TString ePath; // runs directory path
85 
86  EdbPredictionsBox *ePredictions; // predictions to scan ($c)
87 
88  TTree *eViewMerge; // view merging alignment
89  TTree *eViewAlign; // view neighbours alignment
90  TTree *eFrameAlign; // frames alignment
91  TTree *ePinViews; // pinned views
95  EdbViewHeader *ePVH; // to add pinned view header
96  EdbViewHeader *eVH1; // alignment headers
97  EdbViewHeader *eVH2; // alignment headers
98 
99 public:
100  EdbMarksSet *eMarks; // fiducial marks
101 
102 public:
104  EdbRun( int id, const char *status="READ" , const char *path="." );
105  EdbRun( const char *fname, const char *status="READ" );
106  EdbRun( EdbRun &run, const char *fname );
107  virtual ~EdbRun();
108 
109  EdbView *GetView() const { return eView; }
110  void SetView(EdbView *view);
111  void SetView();
112  TTree *GetTree() const {return eTree; }
113  TTree *GetPinViews() const {return ePinViews;}
114 
116  int Npredictions() const { return ePredictions->N(); }
117 
119  EdbMarksSet *GetMarks() const { return eMarks; }
120  void SetMarks(EdbMarksSet* marks) { eMarks = marks; }
121  void TransformDC(); // transform predictions according to fid marks
122  void GeneratePredictions( int n );
123 
124  void SelectOpenMode( const char *fname, const char *status="READ" );
125 
126  int GetRunID() const { return eHeader->GetRunID(); }
127  TDatime *GetStartTime() const { return eHeader->GetStartTime(); }
128  TDatime *GetFinishTime() const { return eHeader->GetFinishTime(); }
129 
130  void SetRunID( int id ) { eHeader->SetRunID(id); }
131  void SetComment( const char *com ) { eHeader->SetComment(com); }
132  void SetTitle( const char *tit ) { eHeader->SetTitle(tit); }
133 
134 
135  int GetEntries() const { return (Int_t)eTree->GetEntries(); }
136 
137  EdbRunHeader *GetHeader() const { return eHeader; }
138  // EdbStage *GetStage() const { return eHeader->GetStage(); }
139  // EdbPlate *GetPlate() const { return eHeader->GetPlate(); }
140 
141  void AddView();
142  void AddView( EdbView *view );
143  void Create( const char *fname );
144  void Open( const char *fname );
145  void OpenUpdate( const char *fname );
146 
147  void Close();
148  TFile *GetFile(){ return eFile; }
149 
150  int GetEntryNumberWithIndex( int event, int view ) const
151  { return eTree->GetEntryNumberWithIndex( event,view ); }
152 
153  EdbView *GetEntry( int entry, int ih=1, int icl=0, int iseg=1, int itr=0, int ifr=0 );
154  EdbViewHeader *GetEntryHeader( int entry ) const;
155  TClonesArray *GetEntryClusters( int entry ) const;
156  TClonesArray *GetEntrySegments( int entry ) const;
157  TClonesArray *GetEntryTracks( int entry ) const;
158  TObjArray *GetEntryFrames( int entry ) const;
159 
160  void Print() const;
161  void PrintLog( const char *fname ) const;
162 
163  void PrintBranchesStatus() const;
164  void Init();
165 
166  void Save();
167  void SaveViews() { eTree->AutoSave(); }
168 
169  int AddAsciiFile(const char *fname, const char *objname);
170  int ExtractAsciiFile(const char *fname, const char *objname);
171 
172  void AddViewMerge( Int_t view1, Int_t view2, Int_t area1, Int_t area2, Int_t side1, Int_t side2,
173  Float_t dx, Float_t dy, Float_t dz,
174  Int_t n1tot, Int_t n2tot, Int_t n1, Int_t n2, Int_t nsg, Int_t nbg, Int_t flag);
175 
176  void AddViewAlign( Int_t view1, Int_t view2, Int_t area1, Int_t area2, Int_t side1, Int_t side2,
177  Float_t dx, Float_t dy, Float_t dz,
178  Int_t n1tot, Int_t n2tot, Int_t n1, Int_t n2, Int_t nsg, Int_t nbg, Int_t flag,
179  EdbViewHeader &vh1, EdbViewHeader &vh2 );
180 
181  void AddFrameAlign( Int_t frame1, Int_t frame2, Int_t view, Int_t area, Int_t side,
182  Float_t dxglobal, Float_t dyglobal, Float_t dx, Float_t dy, Float_t z1, Float_t z2,
183  Int_t n1tot, Int_t n2tot, Int_t n1, Int_t n2, Int_t nsg, Int_t nbg, Int_t flag);
185 
186  ClassDef(EdbRun,4) // main run class contained all objects
187 };
188 #endif /* ROOT_EdbRun */
189 
TLegendEntry * entry
Definition: Canv_SYSTEMATICS_ALLCOMBINED__RMSEnergy__vs__Energy__ELECTRON.C:130
brick dz
Definition: RecDispMC.C:107
Definition: EdbFiducial.h:88
Definition: EdbPrediction.h:21
Definition: EdbPrediction.h:71
EdbPredictionDC * GetPrediction(int i) const
Definition: EdbPrediction.cxx:281
Int_t N() const
Definition: EdbPrediction.h:92
Definition: EdbRunHeader.h:94
void SetComment(const char *com)
Definition: EdbRunHeader.h:134
TDatime * GetStartTime()
Definition: EdbRunHeader.h:143
Int_t GetRunID() const
Definition: EdbRunHeader.h:141
void SetRunID(int id)
Definition: EdbRunHeader.h:129
TDatime * GetFinishTime()
Definition: EdbRunHeader.h:144
Definition: EdbRun.h:74
void AddViewAlign(Int_t view1, Int_t view2, Int_t area1, Int_t area2, Int_t side1, Int_t side2, Float_t dx, Float_t dy, Float_t dz, Int_t n1tot, Int_t n2tot, Int_t n1, Int_t n2, Int_t nsg, Int_t nbg, Int_t flag, EdbViewHeader &vh1, EdbViewHeader &vh2)
Definition: EdbRun.cxx:385
TClonesArray * GetEntryTracks(int entry) const
Definition: EdbRun.cxx:506
TFile * GetFile()
Definition: EdbRun.h:148
TDatime * GetStartTime() const
Definition: EdbRun.h:127
TTree * GetPinViews() const
Definition: EdbRun.h:113
EdbMarksSet * eMarks
Definition: EdbRun.h:100
void Close()
Definition: EdbRun.cxx:466
void SelectOpenMode(const char *fname, const char *status="READ")
Definition: EdbRun.cxx:164
TString ePath
Definition: EdbRun.h:84
void Init()
Definition: EdbRun.cxx:145
void AddPinViewHeader(EdbViewHeader &h)
Definition: EdbRun.cxx:438
EdbViewHeader * eVH1
Definition: EdbRun.h:96
int GetEntries() const
Definition: EdbRun.h:135
AlignmentParView eVA
Definition: EdbRun.h:93
EdbPredictionsBox * GetPredictions() const
Definition: EdbRun.h:118
EdbViewHeader * ePVH
Definition: EdbRun.h:95
TClonesArray * GetEntryClusters(int entry) const
Definition: EdbRun.cxx:534
void Save()
Definition: EdbRun.cxx:451
EdbMarksSet * GetMarks() const
Definition: EdbRun.h:119
TTree * GetTree() const
Definition: EdbRun.h:112
void AddFrameAlign(Int_t frame1, Int_t frame2, Int_t view, Int_t area, Int_t side, Float_t dxglobal, Float_t dyglobal, Float_t dx, Float_t dy, Float_t z1, Float_t z2, Int_t n1tot, Int_t n2tot, Int_t n1, Int_t n2, Int_t nsg, Int_t nbg, Int_t flag)
Definition: EdbRun.cxx:412
void Open(const char *fname)
Definition: EdbRun.cxx:178
AlignmentParFrame eFA
Definition: EdbRun.h:94
void AddViewMerge(Int_t view1, Int_t view2, Int_t area1, Int_t area2, Int_t side1, Int_t side2, Float_t dx, Float_t dy, Float_t dz, Int_t n1tot, Int_t n2tot, Int_t n1, Int_t n2, Int_t nsg, Int_t nbg, Int_t flag)
Definition: EdbRun.cxx:363
TTree * eViewMerge
Definition: EdbRun.h:88
EdbRunHeader * GetHeader() const
Definition: EdbRun.h:137
void SetView()
Definition: EdbRun.cxx:312
void SetTitle(const char *tit)
Definition: EdbRun.h:132
int GetRunID() const
Definition: EdbRun.h:126
TFile * eFile
Definition: EdbRun.h:83
void SetComment(const char *com)
Definition: EdbRun.h:131
TObjArray * GetEntryFrames(int entry) const
Definition: EdbRun.cxx:561
EdbPredictionsBox * ePredictions
Definition: EdbRun.h:86
TTree * ePinViews
Definition: EdbRun.h:91
int AddAsciiFile(const char *fname, const char *objname)
Definition: EdbRun.cxx:619
TDatime * GetFinishTime() const
Definition: EdbRun.h:128
AlignmentParView eVM
Definition: EdbRun.h:92
void OpenUpdate(const char *fname)
Definition: EdbRun.cxx:211
EdbViewHeader * GetEntryHeader(int entry) const
Definition: EdbRun.cxx:548
void SaveViews()
Definition: EdbRun.h:167
void TransformDC()
Definition: EdbRun.cxx:652
void SetRunID(int id)
Definition: EdbRun.h:130
TTree * eTree
Definition: EdbRun.h:82
EdbView * eView
Definition: EdbRun.h:80
EdbView * GetEntry(int entry, int ih=1, int icl=0, int iseg=1, int itr=0, int ifr=0)
Definition: EdbRun.cxx:489
void AddView()
Definition: EdbRun.cxx:332
void Print() const
Definition: EdbRun.cxx:607
int ExtractAsciiFile(const char *fname, const char *objname)
Definition: EdbRun.cxx:637
int GetEntryNumberWithIndex(int event, int view) const
Definition: EdbRun.h:150
EdbViewHeader * eVH2
Definition: EdbRun.h:97
EdbView * GetView() const
Definition: EdbRun.h:109
EdbRunHeader * eHeader
Definition: EdbRun.h:78
TClonesArray * GetEntrySegments(int entry) const
Definition: EdbRun.cxx:520
void SetMarks(EdbMarksSet *marks)
Definition: EdbRun.h:120
void GeneratePredictions(int n)
Definition: EdbRun.cxx:666
EdbPredictionDC * GetPrediction(int ip)
Definition: EdbRun.h:115
TTree * eFrameAlign
Definition: EdbRun.h:90
void PrintLog(const char *fname) const
Definition: EdbRun.cxx:586
virtual ~EdbRun()
Definition: EdbRun.cxx:96
TTree * eViewAlign
Definition: EdbRun.h:89
void Create(const char *fname)
Definition: EdbRun.cxx:249
void PrintBranchesStatus() const
Definition: EdbRun.cxx:573
int Npredictions() const
Definition: EdbRun.h:116
Definition: EdbView.h:26
Definition: EdbView.h:134
EdbRun * run
Definition: check_raw.C:38
const char * fname
Definition: mc2raw.cxx:41
int event
Definition: shower_tr.C:25
Definition: EdbRun.h:52
Int_t frame1
Definition: EdbRun.h:53
Float_t dyglobal
Definition: EdbRun.h:59
Int_t view
Definition: EdbRun.h:55
Float_t dx
Definition: EdbRun.h:60
Int_t n2tot
Definition: EdbRun.h:65
Int_t nsg
Definition: EdbRun.h:68
Float_t z2
Definition: EdbRun.h:63
Int_t n1
Definition: EdbRun.h:66
Float_t dy
Definition: EdbRun.h:61
Float_t dxglobal
Definition: EdbRun.h:58
Int_t flag
Definition: EdbRun.h:70
Int_t nbg
Definition: EdbRun.h:69
Int_t side
Definition: EdbRun.h:57
Int_t frame2
Definition: EdbRun.h:54
Float_t z1
Definition: EdbRun.h:62
Int_t n2
Definition: EdbRun.h:67
Int_t n1tot
Definition: EdbRun.h:64
Int_t area
Definition: EdbRun.h:56
Definition: EdbRun.h:32
Float_t dy
Definition: EdbRun.h:40
Int_t n1
Definition: EdbRun.h:44
Int_t n2tot
Definition: EdbRun.h:43
Int_t side1
Definition: EdbRun.h:37
Float_t dz
Definition: EdbRun.h:41
Float_t dx
Definition: EdbRun.h:39
Int_t n1tot
Definition: EdbRun.h:42
Int_t nsg
Definition: EdbRun.h:46
Int_t view2
Definition: EdbRun.h:34
Int_t n2
Definition: EdbRun.h:45
Int_t flag
Definition: EdbRun.h:48
Int_t area2
Definition: EdbRun.h:36
Int_t side2
Definition: EdbRun.h:38
Int_t view1
Definition: EdbRun.h:33
Int_t area1
Definition: EdbRun.h:35
Int_t nbg
Definition: EdbRun.h:47