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