FEDRA emulsion software from the OPERA Collaboration
EdbEDASets.h
Go to the documentation of this file.
1#ifndef __EDA_SETS_H__
2#define __EDA_SETS_H__
3
4#include"EdbEDAUtil.h"
5using namespace EdbEDAUtil;
6
7class EdbEDAArea : public TObject {
8 private :
9 int ePlate;
10 double eXmin;
11 double eXmax;
12 double eYmin;
13 double eYmax;
14 double eZ;
15 bool eDraw;
16
17 public:
18
19 EdbEDAArea():eXmin(1e10), eXmax(-1e10), eYmin(1e10), eYmax(-1e10), eDraw(0){}
20 EdbEDAArea(int ipl, double xmin, double xmax, double ymin, double ymax, double z){
21 ePlate = ipl; eXmin = xmin; eXmax = xmax; eYmin = ymin; eYmax = ymax; eZ = z; eDraw=1;}
22
23 void SetAreaMinMax (int ipl, double xmin, double xmax, double ymin, double ymax, double z){
24 ePlate = ipl; eXmin = xmin; eXmax = xmax; eYmin = ymin; eYmax = ymax; eZ = z; eDraw=1;}
25 void SetAreaXYRadius (int ipl, double x, double y, double dx, double dy, double z){
26 ePlate = ipl; eXmin = x-dx; eXmax = x+dx; eYmin = y-dy; eYmax = y+dy; eZ = z; eDraw=1;}
27
28 int Plate() {return ePlate;}
29 double Xmin () {return eXmin ;}
30 double Xmax () {return eXmax ;}
31 double Ymin () {return eYmin ;}
32 double Ymax () {return eYmax ;}
33 double X() { return (Xmin()+Xmax())/2.0;}
34 double Y() { return (Ymin()+Ymax())/2.0;}
35 double Z () {return eZ ;}
36 double RX() { return fabs( Xmin()-X() ); }
37 double RY() { return fabs( Ymin()-Y() ); }
38
39 void SetPlate(int ipl) { ePlate=ipl;}
40 void SetXmin (double v) { eXmin = v; eDraw=1;}
41 void SetXmax (double v) { eXmax = v; eDraw=1;}
42 void SetYmin (double v) { eYmin = v; eDraw=1;}
43 void SetYmax (double v) { eYmax = v; eDraw=1;}
44 void SetZ (double v) { eZ = v; }
45 void SetDraw (bool b) { eDraw = b;}
46 bool GetDraw () { return eDraw;}
47
48 void Print() {
49 printf("ePlate = %3d, eXmin = %8.1lf, eXmax = %8.1lf, eYmin = %8.1lf, eYmax = %8.1lf, eZ = %8.1lf\n",
51 }
52 ClassDef(EdbEDAArea,0) // class for scanning area data.
53};
54
55class EdbEDAAreaSet : public TObject{
56
57 TObjArray *eAreas;
62 TEveCompound * eCompound;
63 bool eDraw;
64 bool eDrawG;
65
66 //TArray eIndex; // to do. IPL->Area conversion index.
67
68 public :
69
72 Init();
73 SetAreas(pvr);
74 }
75 EdbEDAAreaSet(EdbDataSet *dset, double x, double y, double dx, double dy){
76 Init();
77 SetAreas(dset,x,y,dx,dy);
78 }
79
80 void SetAreas(EdbPVRec *pvr);
81 void SetAreas(EdbScanSet *ss);
82
83 void SetAreas(EdbDataSet *dset, double x, double y, double dx, double dy){
84 if(dset==NULL) return;
85 for(int i=0;i<dset->N(); i++){
86 EdbDataPiece *piece = dset->GetPiece(i);
87 if(NULL==piece) continue;
88 EdbLayer* l = piece->GetLayer(0);
89 EdbEDAArea *area = new EdbEDAArea( piece->Plate(), x-dx, x+dx, y-dy, y+dy, l->Z());
90 eAreas->Add(area);
91 }
92 }
93
94 void SetAreas(TObjArray *tracks);
95
96 void Init (){
97 eAreas = new TObjArray();
98 eLineColor = kGray+2;
99 eLineWidth = 1;
100 eTextSize = 13;
101 eTextColor = kGray;
102 eCompound = NULL;
103 eDraw = kFALSE;
104 eDrawG = kTRUE;
105 }
106 void SetDraw(bool draw) { eDraw = draw;}
107 void SetDrawG(bool draw) { eDrawG = draw;}
108
109
110 void AddArea(int ipl, double xmin, double xmax, double ymin, double ymax, double z){
111 EdbEDAArea *area = new EdbEDAArea(ipl, xmin, xmax, ymin, ymax, z);
112 eAreas->Add(area);
113 }
114 void AddArea(EdbEDAArea *area) { eAreas->Add(area);}
115
116 void Print(){
117 printf("EdbEDAAreaSet eLineColor = %d, eLineWidth = %d, eTextSize = %d, eTextColor = %d nAreas = %d\n",
119 for(int i=0;i<eAreas->GetEntries();i++) ((EdbEDAArea*)eAreas->At(i))->Print();
120 }
121
122 TObjArray *GetAreas () {return eAreas;}
123
124 void Draw(int redraw=0);
125 void UnDraw(int redraw = 0){
126 TEveEventManager *ev = gEve->GetCurrentEvent();
127 TEveElement *el = ev->FindChild("Scanning Areas");
128 if(el) el->Destroy();
130 if(redraw) gEve->Redraw3D();
131 }
132
133 int N() { return eAreas->GetEntries();}
134 EdbEDAArea * GetArea(int i) { if(0<=i&&i<N()) return (EdbEDAArea *) eAreas->At(i); else return NULL;}
135 EdbEDAArea * GetAreaIPL(int ipl) { for(int i=0; i<N(); i++) if(GetArea(i)->Plate()==ipl) return GetArea(i); return NULL;}
136
137 void Clear() { eAreas->Clear();}
138
139
140 ClassDef(EdbEDAAreaSet,0) // class for scanning area draw.
141};
142
143class EdbEDAVertexSet:public TObject{
144
145 private:
146
147 public:
148
152
153 TObjArray *eVertices;
154 TObjArray *eVerticesBase;
155 TObjArray *eVerticesPrevious;
156
157
159
160 void Init(){
161 eVertices = new TObjArray;
162 eVerticesBase = new TObjArray;
163 eVerticesPrevious = new TObjArray;
165 }
167 int vertex_color = kOrange,
168 int vertex_color_selected = kRed,
169 int vertex_marker_style = 4){
170 // set vertex attribute.
171 eVertexColor = vertex_color;
172 eVertexColorSelected = vertex_color_selected;
173 eVertexMarkerStyle = vertex_marker_style;
174 }
175 void SetColorMode(int mode) { SetVertexAttribute(); eVertexColor = mode==kBLACKWHITE ? kBlack: kOrange;}
176
178
179 int GetVertexColor (void) {return eVertexColor;}
182
184// if(eVerticesBase->FindObject(v)==NULL) eVerticesBase->Add(v);
185// if(eVertices->FindObject(v)==NULL) eVertices->Add(v);
186 eVerticesBase->Add(v);
187 eVertices->Add(v);
188 }
189 void AddVertices(TObjArray *vertices){ if(NULL==vertices) return; for(int i=0;i<vertices->GetEntries();i++) AddVertex((EdbVertex *)vertices->At(i));}
190
191 void SetVertex(EdbVertex *v) { if(eVertices->FindObject(v)==NULL) eVertices->Add(v);}
192 void SetVertices(TObjArray *vertices){
193 for(int i=0;i<vertices->GetEntries();i++) SetVertex((EdbVertex *)vertices->At(i));}
194 void SetVerticesBase(TObjArray *vertices){ *eVerticesBase = *vertices;}
196 void SetVerticesNtrk(int ntrkcut=3){
198 for(int i=0; i<NBase(); i++){
199 EdbVertex *v = GetVertexBase(i);
200 if(v->N()<ntrkcut) continue;
201 SetVertex(v);
202 }
203 }
206
207
208 void RemoveVertex(EdbVertex *v){ eVertices->Remove(v); eVertices->Sort();}
209 void RemoveVertices(TObjArray *vertices) { for(int i=0;i<vertices->GetEntries();i++) RemoveVertex((EdbVertex *) vertices->At(i));}
210
211
212
213 void ClearVertices() { eVertices->Clear();}
214 void Clear() { eVertices->Clear(); eVerticesBase->Clear();}
215 int N() { return eVertices->GetEntries();}
216 EdbVertex * GetVertex(int i) { return (EdbVertex *) eVertices->At(i);}
217 TObjArray * GetVertices() { return eVertices;}
218
219 int NBase() { return eVerticesBase->GetEntries();}
220 EdbVertex * GetVertexBase(int i) { return (EdbVertex *) eVerticesBase->At(i);}
221 TObjArray * GetVerticesBase() { return eVerticesBase;}
222
224 void Draw(int redraw = 0);
225 void UnDraw();
226
227 ClassDef(EdbEDAVertexSet,0) // Data set for vertices
228};
229
230class EdbEDAExtentionSet: public TObject{
231
234 double eZ;
235 TEveCompound * eCompound;
236 public :
237
239 void Draw(int redraw=0, int fix = 0);
240 void UnDraw(int redraw=0);
241 void DrawResolution(int redraw =0);
242
243 void Enable() { eEnable=1;}
244 void Disable() { eEnable=0;}
245 void SetZ(double z) { eZ=z;}
246 double GetZ() { return eZ;}
247
248 ClassDef(EdbEDAExtentionSet,0) // class for draw extention
249};
250
251
252#endif //__EDA_SETS_H__
EdbDataProc * dset
Definition: RecDispEX.C:9
Expr< UnaryOp< Fabs< T >, Expr< A, T, D >, T >, T, D > fabs(const Expr< A, T, D > &rhs)
Definition: UnaryOperators.hh:96
Edb raw data unit (scanned plate) associated with run file.
Definition: EdbDataSet.h:26
EdbLayer * GetLayer(int id)
Definition: EdbDataSet.h:87
int Plate() const
Definition: EdbDataSet.h:66
OPERA emulsion data set.
Definition: EdbDataSet.h:144
Definition: EdbEDASets.h:55
void Print()
Definition: EdbEDASets.h:116
int eLineColor
Definition: EdbEDASets.h:58
int eLineWidth
Definition: EdbEDASets.h:59
void Init()
Definition: EdbEDASets.h:96
int eTextSize
Definition: EdbEDASets.h:60
bool eDraw
Draw control.
Definition: EdbEDASets.h:63
int N()
Definition: EdbEDASets.h:133
int eTextColor
Definition: EdbEDASets.h:61
void Draw(int redraw=0)
Definition: EdbEDASets.C:107
EdbEDAAreaSet()
Definition: EdbEDASets.h:70
void SetDrawG(bool draw)
Definition: EdbEDASets.h:107
void AddArea(int ipl, double xmin, double xmax, double ymin, double ymax, double z)
Definition: EdbEDASets.h:110
void UnDraw(int redraw=0)
Definition: EdbEDASets.h:125
void AddArea(EdbEDAArea *area)
Definition: EdbEDASets.h:114
EdbEDAAreaSet(EdbPVRec *pvr)
Definition: EdbEDASets.h:71
void SetAreas(EdbPVRec *pvr)
TEveCompound * eCompound
Definition: EdbEDASets.h:62
EdbEDAArea * GetArea(int i)
Definition: EdbEDASets.h:134
bool eDrawG
Global Draw control by Main tab.
Definition: EdbEDASets.h:64
TObjArray * GetAreas()
Definition: EdbEDASets.h:122
void SetDraw(bool draw)
Definition: EdbEDASets.h:106
void Clear()
Definition: EdbEDASets.h:137
void SetAreas(EdbDataSet *dset, double x, double y, double dx, double dy)
Definition: EdbEDASets.h:83
EdbEDAArea * GetAreaIPL(int ipl)
Definition: EdbEDASets.h:135
TObjArray * eAreas
Definition: EdbEDASets.h:57
EdbEDAAreaSet(EdbDataSet *dset, double x, double y, double dx, double dy)
Definition: EdbEDASets.h:75
Definition: EdbEDASets.h:7
void SetYmin(double v)
Definition: EdbEDASets.h:42
bool GetDraw()
Definition: EdbEDASets.h:46
int ePlate
Definition: EdbEDASets.h:9
double RX()
Definition: EdbEDASets.h:36
EdbEDAArea()
Definition: EdbEDASets.h:19
double Z()
Definition: EdbEDASets.h:35
double Ymax()
Definition: EdbEDASets.h:32
double Y()
Definition: EdbEDASets.h:34
void SetXmin(double v)
Definition: EdbEDASets.h:40
bool eDraw
Definition: EdbEDASets.h:15
void SetAreaMinMax(int ipl, double xmin, double xmax, double ymin, double ymax, double z)
Definition: EdbEDASets.h:23
int Plate()
Definition: EdbEDASets.h:28
void SetAreaXYRadius(int ipl, double x, double y, double dx, double dy, double z)
Definition: EdbEDASets.h:25
double X()
Definition: EdbEDASets.h:33
void SetDraw(bool b)
Definition: EdbEDASets.h:45
void SetYmax(double v)
Definition: EdbEDASets.h:43
double Xmax()
Definition: EdbEDASets.h:30
void SetXmax(double v)
Definition: EdbEDASets.h:41
double eZ
Definition: EdbEDASets.h:14
void SetZ(double v)
Definition: EdbEDASets.h:44
double RY()
Definition: EdbEDASets.h:37
double eYmin
Definition: EdbEDASets.h:12
void Print()
Definition: EdbEDASets.h:48
double eXmax
Definition: EdbEDASets.h:11
EdbEDAArea(int ipl, double xmin, double xmax, double ymin, double ymax, double z)
Definition: EdbEDASets.h:20
double eXmin
Definition: EdbEDASets.h:10
void SetPlate(int ipl)
Definition: EdbEDASets.h:39
double Xmin()
Definition: EdbEDASets.h:29
double eYmax
Definition: EdbEDASets.h:13
double Ymin()
Definition: EdbEDASets.h:31
Definition: EdbEDASets.h:230
int eColor
Definition: EdbEDASets.h:233
void Enable()
Definition: EdbEDASets.h:243
void DrawResolution(int redraw=0)
Definition: EdbEDASets.C:265
void Draw(int redraw=0, int fix=0)
Definition: EdbEDASets.C:225
EdbEDAExtentionSet()
Definition: EdbEDASets.h:238
TEveCompound * eCompound
Definition: EdbEDASets.h:235
int eEnable
Definition: EdbEDASets.h:232
void UnDraw(int redraw=0)
Definition: EdbEDASets.C:255
void Disable()
Definition: EdbEDASets.h:244
void SetZ(double z)
Definition: EdbEDASets.h:245
double eZ
Definition: EdbEDASets.h:234
double GetZ()
Definition: EdbEDASets.h:246
Definition: EdbEDASets.h:143
void RestorePrevious(void)
Definition: EdbEDASets.h:204
TObjArray * eVerticesPrevious
previous array of vertexs
Definition: EdbEDASets.h:155
void SetColorMode(int mode)
Definition: EdbEDASets.h:175
void AddVertices(TObjArray *vertices)
Definition: EdbEDASets.h:189
void SetVerticesNtrk(int ntrkcut=3)
Definition: EdbEDASets.h:196
void SetVerticesAll(void)
Definition: EdbEDASets.h:195
void AddVertex(EdbVertex *v)
Definition: EdbEDASets.h:183
void SetVertexAttribute(int vertex_color=kOrange, int vertex_color_selected=kRed, int vertex_marker_style=4)
Definition: EdbEDASets.h:166
int GetVertexMarkerStyle(void)
Definition: EdbEDASets.h:181
void UnDraw()
Definition: EdbEDASets.C:208
TObjArray * GetVerticesBase()
Definition: EdbEDASets.h:221
int N()
Definition: EdbEDASets.h:215
void SetVertices(TObjArray *vertices)
Definition: EdbEDASets.h:192
TObjArray * GetVertices()
Definition: EdbEDASets.h:217
void RemoveVertex(EdbVertex *v)
Definition: EdbEDASets.h:208
void RemoveVertices(TObjArray *vertices)
Definition: EdbEDASets.h:209
void Clear()
Definition: EdbEDASets.h:214
void SetVerticesBase(TObjArray *vertices)
Definition: EdbEDASets.h:194
int NBase()
Definition: EdbEDASets.h:219
void DrawSingleVertex(EdbVertex *v)
Definition: EdbEDASets.C:170
void StorePrevious(void)
Definition: EdbEDASets.h:205
void Draw(int redraw=0)
Definition: EdbEDASets.C:195
void Init()
Definition: EdbEDASets.h:160
void ResetVertexAttribute(void)
Definition: EdbEDASets.h:177
int eVertexColorSelected
Definition: EdbEDASets.h:150
int eVertexColor
Definition: EdbEDASets.h:149
int eVertexMarkerStyle
Definition: EdbEDASets.h:151
TObjArray * eVertices
array of vertexs to be drawn
Definition: EdbEDASets.h:153
TObjArray * eVerticesBase
array of vertexs, base of vertex search
Definition: EdbEDASets.h:154
int GetVertexColor(void)
Definition: EdbEDASets.h:179
int GetVertexColorSelected(void)
Definition: EdbEDASets.h:180
EdbVertex * GetVertexBase(int i)
Definition: EdbEDASets.h:220
void ClearVertices()
Definition: EdbEDASets.h:213
EdbVertex * GetVertex(int i)
Definition: EdbEDASets.h:216
void SetVertex(EdbVertex *v)
Definition: EdbEDASets.h:191
EdbEDAVertexSet()
Definition: EdbEDASets.h:158
Definition: EdbLayer.h:39
float Z() const
Definition: EdbLayer.h:77
Definition: EdbPVRec.h:148
Definition: EdbScanSet.h:11
Definition: EdbVertex.h:69
Int_t N() const
Definition: EdbVertex.h:121
TTree * tracks
Definition: check_tr.C:19
ss
Definition: energy.C:62
Definition: EDACint.cxx:53
@ kBLACKWHITE
Definition: EdbEDAUtil.h:86
#define NULL
Definition: nidaqmx.h:84