FEDRA emulsion software from the OPERA Collaboration
EdbEDAAreaSet Class Reference

#include <EdbEDASets.h>

Inheritance diagram for EdbEDAAreaSet:
Collaboration diagram for EdbEDAAreaSet:

Public Member Functions

void AddArea (EdbEDAArea *area)
 
void AddArea (int ipl, double xmin, double xmax, double ymin, double ymax, double z)
 
void Clear ()
 
void Draw (int redraw=0)
 
 EdbEDAAreaSet ()
 
 EdbEDAAreaSet (EdbDataSet *dset, double x, double y, double dx, double dy)
 
 EdbEDAAreaSet (EdbPVRec *pvr)
 
EdbEDAAreaGetArea (int i)
 
EdbEDAAreaGetAreaIPL (int ipl)
 
TObjArray * GetAreas ()
 
void Init ()
 
int N ()
 
void Print ()
 
void SetAreas (EdbDataSet *dset, double x, double y, double dx, double dy)
 
void SetAreas (EdbPVRec *pvr)
 
void SetAreas (EdbScanSet *ss)
 
void SetAreas (TObjArray *tracks)
 
void SetDraw (bool draw)
 
void SetDrawG (bool draw)
 
void UnDraw (int redraw=0)
 

Private Attributes

TObjArray * eAreas
 
TEveCompound * eCompound
 
bool eDraw
 Draw control. More...
 
bool eDrawG
 Global Draw control by Main tab. More...
 
int eLineColor
 
int eLineWidth
 
int eTextColor
 
int eTextSize
 

Constructor & Destructor Documentation

◆ EdbEDAAreaSet() [1/3]

EdbEDAAreaSet::EdbEDAAreaSet ( )
inline
70{Init();};
void Init()
Definition: EdbEDASets.h:96

◆ EdbEDAAreaSet() [2/3]

EdbEDAAreaSet::EdbEDAAreaSet ( EdbPVRec pvr)
inline
71 {
72 Init();
73 SetAreas(pvr);
74 }
void SetAreas(EdbPVRec *pvr)

◆ EdbEDAAreaSet() [3/3]

EdbEDAAreaSet::EdbEDAAreaSet ( EdbDataSet dset,
double  x,
double  y,
double  dx,
double  dy 
)
inline
75 {
76 Init();
77 SetAreas(dset,x,y,dx,dy);
78 }
EdbDataProc * dset
Definition: RecDispEX.C:9

Member Function Documentation

◆ AddArea() [1/2]

void EdbEDAAreaSet::AddArea ( EdbEDAArea area)
inline
114{ eAreas->Add(area);}
TObjArray * eAreas
Definition: EdbEDASets.h:57

◆ AddArea() [2/2]

void EdbEDAAreaSet::AddArea ( int  ipl,
double  xmin,
double  xmax,
double  ymin,
double  ymax,
double  z 
)
inline
110 {
111 EdbEDAArea *area = new EdbEDAArea(ipl, xmin, xmax, ymin, ymax, z);
112 eAreas->Add(area);
113 }
Definition: EdbEDASets.h:7

◆ Clear()

void EdbEDAAreaSet::Clear ( )
inline
137{ eAreas->Clear();}

◆ Draw()

void EdbEDAAreaSet::Draw ( int  redraw = 0)
107 {
108 if(eCompound) UnDraw();
109 if(eDraw==kFALSE||eDrawG==kFALSE) return;
110 if(eAreas->GetEntries()==0) return;
111 eCompound = new TEveCompound;
112 eCompound->SetElementName("Scanning Areas");
113 gEve->AddElement(eCompound);
114
115 for(int i=0;i<eAreas->GetEntries();i++){
116 EdbEDAArea *area = (EdbEDAArea *) eAreas->At(i);
117 if(area->GetDraw()==kFALSE) continue;
118 TEveLine *l = new TEveLine;
119 l->SetLineColor(eLineColor);
120 l->SetLineWidth(eLineWidth);
121 if(gEDA->Japanese()) l->SetName(
122 Form("PL %2d (%2d), X: %8.1lf -> %8.1lf, Y: %8.1lf -> %8.1lf, Z: %8.1lf, Area : %6d x %6d = %.1lfcm2",
123 area->Plate(), 58-area->Plate(), area->Xmin(),area->Xmax(),area->Ymin(),area->Ymax(),area->Z(),
124 (int)(area->Xmax()-area->Xmin()), (int)(area->Ymax()-area->Ymin()),
125 (area->Xmax()-area->Xmin())*(area->Ymax()-area->Ymin())/1e8));
126 else l->SetName(
127 Form("PL %2d, X: %8.1lf -> %8.1lf, Y: %8.1lf -> %8.1lf, Z: %8.1lf, Area : %6d x %6d = %.1lfcm2",
128 area->Plate(),area->Xmin(),area->Xmax(),area->Ymin(),area->Ymax(),area->Z(),
129 (int)(area->Xmax()-area->Xmin()), (int)(area->Ymax()-area->Ymin()),
130 (area->Xmax()-area->Xmin())*(area->Ymax()-area->Ymin())/1e8));
131 l->SetNextPoint(area->Xmin(), area->Ymin(), area->Z()*gEDA->GetScaleZ());
132 l->SetNextPoint(area->Xmin(), area->Ymax(), area->Z()*gEDA->GetScaleZ());
133 l->SetNextPoint(area->Xmax(), area->Ymax(), area->Z()*gEDA->GetScaleZ());
134 l->SetNextPoint(area->Xmax(), area->Ymin(), area->Z()*gEDA->GetScaleZ());
135 l->SetNextPoint(area->Xmin(), area->Ymin(), area->Z()*gEDA->GetScaleZ());
136 eCompound->AddElement(l);
137
138 TEveText* t = new TEveText;
139 t->SetText(Form("%d",area->Plate()));
140 t->PtrMainTrans()->SetPos( area->Xmax(), area->Ymax(), area->Z()*gEDA->GetScaleZ());
141 t->SetFontSize(eTextSize);
142 t->SetMainColor(eTextColor);
143 t->SetFontMode(TGLFont::kBitmap);
144 l->AddElement(t);
145
146 /*
147 // Trial using transparent geometories.
148 // Make Shape
149 TEveGeoShape *s = new TEveGeoShape(Form("PL %2d, X: %8.1lf -> %8.1lf, Y: %8.1lf -> %8.1lf, Z: %6.1lf",
150 area->Plate(),area->Xmin(),area->Xmax(),area->Ymin(),area->Ymax(),area->Z()));
151 // register Box
152 s->SetShape(new TGeoBBox("BOX", area->RX(), area->RY(), 300));
153
154 // Set position
155 s->PtrMainTrans()->SetPos(area->X(), area->Y(), area->Z()*gEDA->GetScaleZ());
156
157 // Set Color
158 s->SetMainColor(kCyan);
159
160 // Set Transparency.
161 s->SetMainTransparency( 90 );
162
163 eCompound->AddElement(s);
164 */
165 }
166 if(redraw) gEve->Redraw3D();
167}
EdbEDA * gEDA
Definition: EdbEDA.C:3
int eLineColor
Definition: EdbEDASets.h:58
int eLineWidth
Definition: EdbEDASets.h:59
int eTextSize
Definition: EdbEDASets.h:60
bool eDraw
Draw control.
Definition: EdbEDASets.h:63
int eTextColor
Definition: EdbEDASets.h:61
void UnDraw(int redraw=0)
Definition: EdbEDASets.h:125
TEveCompound * eCompound
Definition: EdbEDASets.h:62
bool eDrawG
Global Draw control by Main tab.
Definition: EdbEDASets.h:64
bool GetDraw()
Definition: EdbEDASets.h:46
double Z()
Definition: EdbEDASets.h:35
double Ymax()
Definition: EdbEDASets.h:32
int Plate()
Definition: EdbEDASets.h:28
double Xmax()
Definition: EdbEDASets.h:30
double Xmin()
Definition: EdbEDASets.h:29
double Ymin()
Definition: EdbEDASets.h:31
double GetScaleZ()
Definition: EdbEDA.h:732
bool Japanese()
Definition: EdbEDA.h:734
TTree * t
Definition: check_shower.C:4

◆ GetArea()

EdbEDAArea * EdbEDAAreaSet::GetArea ( int  i)
inline
134{ if(0<=i&&i<N()) return (EdbEDAArea *) eAreas->At(i); else return NULL;}
int N()
Definition: EdbEDASets.h:133
#define NULL
Definition: nidaqmx.h:84

◆ GetAreaIPL()

EdbEDAArea * EdbEDAAreaSet::GetAreaIPL ( int  ipl)
inline
135{ for(int i=0; i<N(); i++) if(GetArea(i)->Plate()==ipl) return GetArea(i); return NULL;}
EdbEDAArea * GetArea(int i)
Definition: EdbEDASets.h:134

◆ GetAreas()

TObjArray * EdbEDAAreaSet::GetAreas ( )
inline
122{return eAreas;}

◆ Init()

void EdbEDAAreaSet::Init ( void  )
inline
96 {
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 }

◆ N()

int EdbEDAAreaSet::N ( )
inline
133{ return eAreas->GetEntries();}

◆ Print()

void EdbEDAAreaSet::Print ( )
inline
116 {
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 }

◆ SetAreas() [1/4]

void EdbEDAAreaSet::SetAreas ( EdbDataSet dset,
double  x,
double  y,
double  dx,
double  dy 
)
inline
83 {
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 }
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
Definition: EdbLayer.h:39
float Z() const
Definition: EdbLayer.h:77

◆ SetAreas() [2/4]

void EdbEDAAreaSet::SetAreas ( EdbPVRec pvr)

◆ SetAreas() [3/4]

void EdbEDAAreaSet::SetAreas ( EdbScanSet ss)
28 {
29 if(ss){
30 EdbBrickP *b = &ss->eB;
31 for(int i=0;i<b->Npl();i++){
32 EdbPlateP *pl = b->GetPlate(i);
33 EdbLayer *l = pl->GetLayer(0);
34 EdbEDAArea *a = new EdbEDAArea(pl->ID(), l->Xmin(), l->Xmax(), l->Ymin(), l->Ymax(), l->Z());
35 eAreas->Add(a);
36 }
37 return;
38 }
39}
void a()
Definition: check_aligned.C:59
Definition: EdbBrick.h:38
EdbPlateP * GetPlate(int i)
Definition: EdbBrick.h:53
int Npl() const
Definition: EdbBrick.h:51
float Ymin() const
Definition: EdbLayer.h:87
int ID() const
Definition: EdbLayer.h:73
float Ymax() const
Definition: EdbLayer.h:88
float Xmax() const
Definition: EdbLayer.h:86
float Xmin() const
Definition: EdbLayer.h:85
Definition: EdbBrick.h:14
EdbLayer * GetLayer(int i)
Definition: EdbBrick.h:29
ss
Definition: energy.C:62

◆ SetAreas() [4/4]

void EdbEDAAreaSet::SetAreas ( TObjArray *  tracks)
41 {
42 printf("Set scanning areas from TS tracks %d\n", tracks->GetEntries());
43
44 TObjArray *areas = new TObjArray;
46 if(ss){
47 EdbBrickP *b = &ss->eB;
48 for(int i=0;i<b->Npl();i++){
49 EdbPlateP *pl = b->GetPlate(i);
50 //EdbLayer *l = pl->GetLayer(0);
51 //EdbEDAArea *a = new EdbEDAArea(pl->ID(), l->Xmin(), l->Xmax(), l->Ymin(), l->Ymax(), l->Z());
52 EdbEDAArea *a = new EdbEDAArea;
53 a->SetPlate(pl->ID());
54 a->SetZ(pl->Z());
55 areas->Add(a);
56 }
57 for(int i=0;i<tracks->GetEntries();i++){
58 EdbTrackP *t = (EdbTrackP *)tracks->At(i);
59 if(t==NULL) continue;
60 for(int j=0;j<t->N();j++){
61 EdbSegP *s = t->GetSegment(j);
63 for(int k=0;k<areas->GetEntries();k++){
64 a = (EdbEDAArea *) areas->At(k);
65 if(a->Plate()==s->Plate()) break;
66 }
67
68 if(s->X()<a->Xmin()) a->SetXmin(s->X());
69 if(s->X()>a->Xmax()) a->SetXmax(s->X());
70 if(s->Y()<a->Ymin()) a->SetYmin(s->Y());
71 if(s->Y()>a->Ymax()) a->SetYmax(s->Y());
72 }
73 }
74
75 for(int i=0;i<areas->GetEntries();i++){ AddArea( (EdbEDAArea *)areas->At(i));}
76 return;
77 }
78
79
81 for(int i=0;i<dset->N();i++){
82 EdbEDAArea *a = new EdbEDAArea;
83 a->SetZ(gEDA->GetZPID(i));
84 a->SetPlate(gEDA->GetIPL(i));
85 areas->Add(a);
86 }
87
88 for(int i=0;i<tracks->GetEntries();i++){
89 EdbTrackP *t = (EdbTrackP *)tracks->At(i);
90 if(t==NULL) continue;
91 for(int j=0;j<t->N();j++){
92 EdbSegP *s = t->GetSegment(j);
93 EdbEDAArea *a = GetAreaIPL(s->Plate());
94 if(s->X()<a->Xmin()) {a->SetXmin(s->X()); if(s->PID()==0)printf("xmin %lf\n", s->X());}
95 if(s->X()>a->Xmax()) {a->SetXmax(s->X()); if(s->PID()==0)printf("xman %lf\n", s->X());}
96 if(s->Y()<a->Ymin()) a->SetYmin(s->Y());
97 if(s->Y()>a->Ymax()) a->SetYmax(s->Y());
98 }
99 }
100
101 for(int i=0;i<areas->GetEntries();i++){ AddArea( (EdbEDAArea *)areas->At(i));}
102// areas->Delete();
103}
OPERA emulsion data set.
Definition: EdbDataSet.h:144
void AddArea(int ipl, double xmin, double xmax, double ymin, double ymax, double z)
Definition: EdbEDASets.h:110
EdbEDAArea * GetAreaIPL(int ipl)
Definition: EdbEDASets.h:135
EdbScanSet * GetScanSet()
Definition: EdbEDA.h:222
int GetIPL(int PID)
Definition: EdbEDA.h:252
double GetZPID(int pid)
Definition: EdbEDA.h:321
EdbDataSet * GetDataSet()
Definition: EdbEDA.h:244
Definition: EdbScanSet.h:11
Definition: EdbSegP.h:21
Definition: EdbPattern.h:113
s
Definition: check_shower.C:55
TTree * tracks
Definition: check_tr.C:19

◆ SetDraw()

void EdbEDAAreaSet::SetDraw ( bool  draw)
inline
106{ eDraw = draw;}

◆ SetDrawG()

void EdbEDAAreaSet::SetDrawG ( bool  draw)
inline
107{ eDrawG = draw;}

◆ UnDraw()

void EdbEDAAreaSet::UnDraw ( int  redraw = 0)
inline
125 {
126 TEveEventManager *ev = gEve->GetCurrentEvent();
127 TEveElement *el = ev->FindChild("Scanning Areas");
128 if(el) el->Destroy();
130 if(redraw) gEve->Redraw3D();
131 }

Member Data Documentation

◆ eAreas

TObjArray* EdbEDAAreaSet::eAreas
private

◆ eCompound

TEveCompound* EdbEDAAreaSet::eCompound
private

◆ eDraw

bool EdbEDAAreaSet::eDraw
private

Draw control.

◆ eDrawG

bool EdbEDAAreaSet::eDrawG
private

Global Draw control by Main tab.

◆ eLineColor

int EdbEDAAreaSet::eLineColor
private

◆ eLineWidth

int EdbEDAAreaSet::eLineWidth
private

◆ eTextColor

int EdbEDAAreaSet::eTextColor
private

◆ eTextSize

int EdbEDAAreaSet::eTextSize
private

The documentation for this class was generated from the following files: