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"
5 using namespace EdbEDAUtil;
6 
7 class 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",
50  ePlate, eXmin, eXmax, eYmin, eYmax, eZ);
51  }
52  ClassDef(EdbEDAArea,0) // class for scanning area data.
53 };
54 
55 class EdbEDAAreaSet : public TObject{
56 
57  TObjArray *eAreas;
60  int eTextSize;
62  TEveCompound * eCompound;
63  bool eDraw; // Draw control
64  bool eDrawG; // Global Draw control by Main tab.
65 
66  //TArray eIndex; // to do. IPL->Area conversion index.
67 
68  public :
69 
70  EdbEDAAreaSet(){Init();};
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",
118  eLineColor, eLineWidth, eTextSize, eTextColor, eAreas->GetEntriesFast());
119  for(int i=0;i<eAreas->GetEntriesFast();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();
129  eCompound=NULL;
130  if(redraw) gEve->Redraw3D();
131  }
132 
133  int N() { return eAreas->GetEntriesFast();}
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 
143 class EdbEDAVertexSet:public TObject{
144 
145  private:
146 
147  public:
148 
152 
153  TObjArray *eVertices; // array of vertexs to be drawn
154  TObjArray *eVerticesBase; // array of vertexs, base of vertex search
155  TObjArray *eVerticesPrevious; // previous array of vertexs
156 
157 
158  EdbEDAVertexSet(){ Init();}
159 
160  void Init(){
161  eVertices = new TObjArray;
162  eVerticesBase = new TObjArray;
163  eVerticesPrevious = new TObjArray;
164  SetVertexAttribute();
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 
177  void ResetVertexAttribute(void) { SetVertexAttribute(); }
178 
179  int GetVertexColor (void) {return eVertexColor;}
180  int GetVertexColorSelected (void) {return eVertexColorSelected;}
181  int GetVertexMarkerStyle (void) {return eVertexMarkerStyle;}
182 
183  void AddVertex(EdbVertex *v) {
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->GetEntriesFast();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->GetEntriesFast();i++) SetVertex((EdbVertex *)vertices->At(i));}
194  void SetVerticesBase(TObjArray *vertices){ *eVerticesBase = *vertices;}
195  void SetVerticesAll(void) { *eVertices = *eVerticesBase;}
196  void SetVerticesNtrk(int ntrkcut=3){
197  ClearVertices();
198  for(int i=0; i<NBase(); i++){
199  EdbVertex *v = GetVertexBase(i);
200  if(v->N()<ntrkcut) continue;
201  SetVertex(v);
202  }
203  }
204  void RestorePrevious(void) { *eVertices = *eVerticesPrevious;}
205  void StorePrevious(void) { *eVerticesPrevious = *eVertices;}
206 
207 
208  void RemoveVertex(EdbVertex *v){ eVertices->Remove(v); eVertices->Sort();}
209  void RemoveVertices(TObjArray *vertices) { for(int i=0;i<vertices->GetEntriesFast();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->GetEntriesFast();}
216  EdbVertex * GetVertex(int i) { return (EdbVertex *) eVertices->At(i);}
217  TObjArray * GetVertices() { return eVertices;}
218 
219  int NBase() { return eVerticesBase->GetEntriesFast();}
220  EdbVertex * GetVertexBase(int i) { return (EdbVertex *) eVerticesBase->At(i);}
221  TObjArray * GetVerticesBase() { return eVerticesBase;}
222 
223  void DrawSingleVertex(EdbVertex *v);
224  void Draw(int redraw = 0);
225  void UnDraw();
226 
227  ClassDef(EdbEDAVertexSet,0) // Data set for vertices
228 };
229 
230 class EdbEDAExtentionSet: public TObject{
231 
232  int eEnable;
233  int eColor;
234  double eZ;
235  TEveCompound * eCompound;
236  public :
237 
238  EdbEDAExtentionSet():eEnable(0),eColor(kGray),eZ(0.0),eCompound(NULL){};
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
t Draw("sizeb>>NbBT", cut2)
Definition: EdbDataSet.h:25
EdbLayer * GetLayer(int id)
Definition: EdbDataSet.h:86
int Plate() const
Definition: EdbDataSet.h:65
Definition: EdbDataSet.h:143
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
EdbEDAArea * GetArea(int i)
Definition: EdbEDASets.h:134
bool eDraw
Definition: EdbEDASets.h:63
int N()
Definition: EdbEDASets.h:133
int eTextColor
Definition: EdbEDASets.h:61
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
bool eDrawG
Definition: EdbEDASets.h:64
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
TObjArray * GetAreas()
Definition: EdbEDASets.h:122
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
EdbEDAExtentionSet()
Definition: EdbEDASets.h:238
TEveCompound * eCompound
Definition: EdbEDASets.h:235
int eEnable
Definition: EdbEDASets.h:232
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
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
int N()
Definition: EdbEDASets.h:215
void SetVertices(TObjArray *vertices)
Definition: EdbEDASets.h:192
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
TObjArray * GetVerticesBase()
Definition: EdbEDASets.h:221
int NBase()
Definition: EdbEDASets.h:219
void StorePrevious(void)
Definition: EdbEDASets.h:205
void Init()
Definition: EdbEDASets.h:160
void ResetVertexAttribute(void)
Definition: EdbEDASets.h:177
EdbVertex * GetVertexBase(int i)
Definition: EdbEDASets.h:220
int eVertexColorSelected
Definition: EdbEDASets.h:150
EdbVertex * GetVertex(int i)
Definition: EdbEDASets.h:216
int eVertexColor
Definition: EdbEDASets.h:149
int eVertexMarkerStyle
Definition: EdbEDASets.h:151
TObjArray * eVertices
Definition: EdbEDASets.h:153
TObjArray * eVerticesBase
Definition: EdbEDASets.h:154
int GetVertexColor(void)
Definition: EdbEDASets.h:179
int GetVertexColorSelected(void)
Definition: EdbEDASets.h:180
TObjArray * GetVertices()
Definition: EdbEDASets.h:217
void ClearVertices()
Definition: EdbEDASets.h:213
void SetVertex(EdbVertex *v)
Definition: EdbEDASets.h:191
EdbEDAVertexSet()
Definition: EdbEDASets.h:158
Definition: EdbLayer.h:40
float Z() const
Definition: EdbLayer.h:78
Definition: EdbPVRec.h:148
Definition: EdbScanSet.h:11
Definition: EdbVertex.h:68
Int_t N() const
Definition: EdbVertex.h:121
float xmin
Definition: emthickness.cpp:61
float ymin
Definition: emthickness.cpp:63
float xmax
Definition: emthickness.cpp:61
float ymax
Definition: emthickness.cpp:63
ss
Definition: energy.C:62
TTree * tracks
Definition: check_tr.C:19
Definition: EdbEDAUtil.h:78
@ kBLACKWHITE
Definition: EdbEDAUtil.h:86
Double_t X
Definition: tlg2pattern.C:77
Double_t Y
Definition: tlg2pattern.C:77
#define NULL
Definition: nidaqmx.h:84