FEDRA emulsion software from the OPERA Collaboration
EdbEDA.h
Go to the documentation of this file.
1
2#ifndef __EDA_H__
3#define __EDA_H__
6
19
21#include "EdbEDAUtil.h"
22#include "EdbEDATrackSet.h"
23#include "EdbEDASets.h"
24#include "EdbEDAMainTab.h"
25#include "EdbEDATabs.h"
26#include "EdbEDAPlotTab.h"
27#include "EdbEDADecaySearch.h"
28#include "EdbEDAShowerTab.h"
29
30//-------------------------------------------------------------------
31
32using namespace EdbEDAUtil;
33
34class EdbEDAObject : public TObject {
35 private:
36 int eDraw;
37 void *eRef;
38 public:
41 virtual void Draw(Option_t *option=""){ printf("override this");}
42 virtual void SetColorMode(int mode){ printf("override this.\n");}
43 void SetReference(void *ref) { eRef=ref;}
44 void *GetReference(){ return eRef;}
45 bool GetDraw(){ return eDraw;}
46 void SetDraw(bool b=kTRUE){ eDraw=b;}
47 ClassDef(EdbEDAObject,0) // test
48};
49
50class EdbEDAText : public EdbEDAObject{
51 private:
52 float eX, eY, eZ;
56 TString eText;
57 void *eRef;
58
59 public:
60 EdbEDAText(float x, float y, float z, TString str, int color=kWhite) :
61 eX(x), eY(y), eZ(z), eText(str){SetAttribute(14,color);}
63
64 void SetAttribute(int size=14, int color=kWhite, int fontfile=4){
65 eTextSize = size;
66 eTextColor = color;
67 eTextFont = fontfile;
68 }
69 void SetColorMode(int mode){
70 if(mode==kBLACKWHITE) SetAttribute(eTextSize, kBlack, eTextFont);
71 else SetAttribute(eTextSize, kWhite, eTextFont);
72 }
73 int GetTextColor() { return eTextColor;}
74 int GetTextSize () { return eTextSize;}
75 int GetTextFont () { return eTextFont;}
76 void SetXYZ(float x, float y, float z){ eX=x; eY=y; eZ=z;}
77 void SetText(TString str){ eText=str;}
78 void AddText(TString str){ eText+=str;}
79 int N(){return eText.Length();}
80 void Draw(Option_t *option="");
81
82 ClassDef(EdbEDAText, 0) // a comment class
83
84};
85
86class EdbEDALine : public EdbEDAObject{
87 private:
88 float X1,Y1,Z1, X2,Y2,Z2;
89 int col, wid;
90 TString text;
91
92 public:
93 EdbEDALine( float x1, float y1, float z1, float x2, float y2, float z2, int color, int width, char *comment = "") : X1(x1), Y1(y1), Z1(z1), X2(x2), Y2(y2), Z2(z2), col(color), wid(width), text(comment){}
94 EdbEDALine( int color, int width, char *comment = "") : col(color), wid(width), text(comment){}
96
97 void SetPoint1(float x1, float y1, float z1){ X1=x1; Y1=y1; Z1=z1;}
98 void SetPoint2(float x2, float y2, float z2){ X2=x2; Y2=y2; Z2=z2;}
99
100 void Draw(Option_t *option="");
101 ClassDef(EdbEDALine, 0) // Line as EdbEDAObject
102};
103
104//-------------------------------------------------------------------
105#include<TGLOverlay.h>
106class EdbEDAOverlay : public TGLOverlayElement{
107
108 private:
109 bool eDraw;
111 int eXb,eYb;
113 public:
116 void Render(TGLRnrCtx& ctx);
117 void RenderBar(TGLRnrCtx& ctx);
118 void RenderAxes(TGLRnrCtx& ctx);
119 void SetDraw(bool b) {eDraw=b;}
120 void SetXY(int pixel_x=50, int pixel_y=30);
121 void SetLength(int pixel_length=120);
122 ClassDef(EdbEDAOverlay, 0) // a class for draw overlays, i.e. scale bars.
123};
124
125
127
128 private:
129 TTimer * eTimer;
130
132 float eTheta;
135
136 public:
137 TGLViewer * eViewer;
138
139 enum {X,Y,Z,B};
140
142// ~EdbEDACamera(){if(NULL==eTimer) {eTimer->Stop(); delete eTimer;}}
143 virtual ~EdbEDACamera(){}
144 //TGLViewer * GetGLViewer(){ return eViewer;}
145 void SetCamera(int projection = Y);
146 void Animation();
147 void SetAnimationMode();
148 void StartAnimation();
149 void StopAnimation();
150 void SaveAnimation(char *filename = NULL, int n=100, int interval=10);
151 void SavePictures();
152 void Snapshot(char *filename=NULL);
153 TGLViewer * GetGLViewer();
156
157
158 ClassDef(EdbEDACamera,0) // part of EdbEDA. Manage camera control and pictures.
159};
160
161
163 public:
168 };
169
170 TCut eCutCP;
171
172 EdbEDAIO():eOutputFileMode(kBern), eCutCP("eN1==1&&eN2==1&&eCHI2P<s.eW*0.12-1"){}
173 virtual ~EdbEDAIO(){}
174 EdbPattern * ReadCouples(int ipl, EdbPattern *pat=NULL);
177 void WriteFeedbackFile(char *filename = NULL);
179 void ReadFeedbackFile(char *filename = NULL);
181 int IdMuon(char *filename = "../cs_info.txt");
182 void OpenTextEditor(char *filename);
183 void WriteFilteredText(char *filename = NULL);
185
186 //void PrintTrackFeedback(EdbTrackP *t=NULL, EdbVertex *v1=NULL, EdbVertex *v2=NULL, EdbSegP *s1=NULL, FILE *io=stdout, bool print_segs=kTRUE);
187
188
189 ClassDef(EdbEDAIO,0) // part of EdbEDA. Manage I/O.
190};
191
194
195 private:
197 public:
198
202
207
209
210 int eFirstPlate; // first plate of brick, 1
211 int eLastPlate; // last plate of brick, 57
212
214 }
216 void SetIDSF(EdbID id) { eIDSF=id;}
217 void SetIDSB(EdbID id) { eIDSB=id;}
218 void SetID(EdbID id) { eID=id;}
219 EdbID GetID() { return eID;}
220
223
224 void SetPVR(EdbPVRec *pvr){ ePVR=pvr;}
225 EdbPVRec *GetPVR(){if(ePVR==NULL) printf("EdbEDA::GetPVR() is only to obtain global Z coordinate.\n"); return ePVR;}
226
227 void SetBrick(int ibrick){
228 eID.eBrick = ibrick;
229 eIDSF.eBrick = ibrick;
230 eIDSF.eBrick = ibrick;
231 }
232 int GetBrick() { return eID.eBrick;}
233
234 int GetDataType(){ return eDataType;}
235 void SetDataType(int datatype){ eDataType=datatype;}
236
237 int GetPlateUp() {return GetIPL(0);} // upstream of data volume
238 int GetPlateDown(){return GetIPL(eDataSet->N()-1);} // downstream of data volume
239
240 int GetFirstPlate(){ return eFirstPlate;} // first plate of brick
241 int GetLastPlate(){ return eLastPlate;} // last plate of brick
242
243
245
246 int GetNPL(){
247 if (eScanSet) return eScanSet->eB.Npl();
248 else if (eDataSet) return eDataSet->N();
249 else return 0;
250 }
251
252 int GetIPL(int PID){
253 if(eScanSet) { // using ScanSet for calibration.
255 return pl->ID();
256 }
257 else if( eDataSet ){
258 if(PID>=eDataSet->N()) return PID;
260 if(NULL==piece) return PID;
261 return piece->Plate();
262 }
263
264 return PID;
265 }
266
267 int GetIPLZ(float z){
269 for(int ipl=GetFirstPlate(); ipl<=GetLastPlate(); ipl++){
270 float zz= GetZ(ipl)+0.1; // 0.1 is for the case that given z is exactly at the plate.
271 if(zz>=z) return ipl;
272 }
273 return GetLastPlate();
274 }
275
276 int GetPID(int ipl){
277 if(eScanSet) { // return the ordinal number in eB.
278 EdbBrickP *b = &eScanSet->eB;
279 for(int i=0;i<b->Npl();i++){
280 EdbPlateP *pl = b->GetPlate(i);
281 if(pl->ID()==ipl) return i;
282 }
283 return ipl; // if not correspondence found.
284 }
285 else if( eDataSet ){
288 for(int i=0;i<eDataSet->N();i++){
289 EdbDataPiece *piece = eDataSet->GetPiece(i);
290 if(NULL==piece) continue;
291 if(ipl==piece->Plate()){
292 return i;
293 }
294 }
295 // printf("error at GetPID(%d)\n", ipl);
296 }
297 return ipl;
298 }
299
300 double GetZ(int ipl){
302 if(eScanSet) {
303 EdbPlateP *pl = eScanSet->GetPlate(ipl);
304 if(pl!=NULL) return pl->Z();
305 return (ipl-57)*1300.0;
306 }
307 else if ( eDataSet ){
308 for(int i=0;i<eDataSet->N();i++){
309 if( GetIPL(i) == ipl ) return GetZPID(i);
310 }
311 }
312 else if( ePVR ){
313 for(int i=0;i<ePVR->Npatterns();i++){
314 EdbPattern *pat = ePVR->GetPattern(i);
315 if(pat->Plate()==ipl) return pat->Z();
316 }
317 }
318 return (ipl-57)*1300.0;
319 }
320
321 double GetZPID(int pid){
324
325 if(eScanSet) {
326 EdbBrickP& b = eScanSet->Brick();
327 EdbPlateP *pl = b.GetPlate(pid);
328 return pl->Z();
329 }
330 else if (eDataSet){
331
332 if(pid<0) pid=0;
333 if(pid>eDataSet->N()-1) pid=eDataSet->N()-1;
335 EdbLayer* l = piece->GetLayer(0);
336 return l->Z();
337 }
338
339 return GetZ(pid);
340 }
341
342 void SetBeamAngle(double tx, double ty) { eBeamTX=tx; eBeamTY=ty;}
343 double GetBeamTX() { return eBeamTX;}
344 double GetBeamTY() { return eBeamTY;}
345
346 EdbAffine2D * GetAffine(int ipl);
347
348 ClassDef(EdbEDABrickData, 0) // part of EdbEDA. Brick Data Management for EDA
349};
350
351
353 private:
354 TEveSelection *eSel;
357 TObjArray *eSelectedVertices;
358 TObjArray *eSelectedTracks;
359 TObjArray *eSelectedSegments;
360 TObjArray *eSelected;
361
362
363 public:
364
366 eSelectedVertices = new TObjArray;
367 eSelectedTracks = new TObjArray;
368 eSelectedSegments = new TObjArray;
369 eSelected = new TObjArray;
371 eSel = NULL;
372 eDisable = 0;
373 }
374
376 if(eSel!=NULL){
377 eSel->Disconnect("SelectionAdded(TEveElement*)", this, "Added(TEveElement*)");
378 eSel->Disconnect("SelectionRemoved(TEveElement*)", this, "Removed(TEveElement*)");
379 eSel->Disconnect("SelectionCleared()", this, "Cleared()");
380 }
381 }
382
383 // init Selection, connect to the TEveManager::eSelection = gSel
384 void InitSelection(TEveSelection* sel){
385 if(eSel!=NULL){
386 eSel->Disconnect("SelectionAdded(TEveElement*)", this, "Added(TEveElement*)");
387 eSel->Disconnect("SelectionRemoved(TEveElement*)", this, "Removed(TEveElement*)");
388 eSel->Disconnect("SelectionCleared()", this, "Cleared()");
389 }
390
391 eSel = sel; // supposed to be sel = gEDA->GetSelection()
392 eSel->Connect("SelectionAdded(TEveElement*)", "EdbEDASelection", this, "Added(TEveElement*)");
393 eSel->Connect("SelectionRemoved(TEveElement*)", "EdbEDASelection", this, "Removed(TEveElement*)");
394 eSel->Connect("SelectionCleared()", "EdbEDASelection", this, "Cleared()");
395 }
396
398 eSelected->Clear();
399 eSelectedTracks->Clear();
400 }
401
402 EdbTrackP * GetTrack( TEveElement *e);
403
404 TObjArray * SetSelected(TObjArray *selected = NULL);
405 TObjArray * GetSelected(void) {return eSelected;}
406 EdbSegP * GetSelected(int i) {return (EdbSegP *)eSelected->At(i);}
407
408 void SetSelectedTracks(TObjArray *arr) {
409 if(arr) {
410 *eSelectedTracks = *arr;
411 *eSelected = *arr;
412 }
413 }
414
415
416 TEveElement * GetSelectedElement () { TEveElement::List_i it= gEve->GetSelection()->EndChildren(); return *(--it);}
417 TObjArray * GetSelectedTracks(void) { return eSelectedTracks; }
418
419 int NSelectedTracks() { return eSelectedTracks->GetEntries();}
420 int NSelected() { return eSelected-> GetEntries();}
422 if(NSelectedTracks()==0) return NULL;
423 if(i==-1) i=NSelectedTracks()-1;
424 return (EdbTrackP *) eSelectedTracks->At(i);
425 }
427 for( int i=0; i<NSelectedTracks(); i++){
429 for(int j=0; j<t->N(); j++) if(s==t->GetSegment(j)) return t;
430 }
431 return NULL;
432 }
433
434 EdbSegP * GetSelectedSegment(int i=-1){if(i==-1) i=NSelected()-1; return (EdbSegP *) eSelected->At(i);}
435
436 void SelectAll();
437 void SetSelection ( TObjArray * selected = NULL);
438
442
443 void Added(TEveElement* el);
444 void Removed(TEveElement* el);
445 void Cleared();
446
447 int Disable(int force = kFALSE) { return force ? eDisable = 1 : eDisable++;}
448 int Enable (int force = kFALSE) { return force ? eDisable = 0 : eDisable--;}
449
450 ClassDef(EdbEDASelection,0) // part of EdbEDA. Manage Selection.
451};
452
453/* // Set PID as PlateNumber.
454 EdbDataSet *dset = dproc.GetDataSet();
455
456 printf("hoge %d %d\n", __LINE__, dset);
457 for(int j=0;j<ali.Ntracks();j++){
458 EdbTrackP *t = ali.GetTrack(j);
459
460 for(int k=0;k<t->N();k++){
461 EdbSegP *s = t->GetSegment(k);
462 int pid = s->PID();
463
464 EdbDataPiece *piece = dset->GetPiece(pid);
465 int ipl = piece->Plate();
466 s->SetPID(ipl);
467 }
468 t->SetPID(t->GetSegmentFirst()->PID());
469 }
470 printf("hoge %d\n", __LINE__);
471*/
472
473//-------------------------------------------------------------------
474class EdbEDA :
475 public EdbEDACamera,
476 public EdbEDAIO,
477 public EdbEDABrickData,
478 public EdbEDASelection,
479 public TNamed {
480
481 private:
482
483 TObjArray *eDrawObjects;
484 TObjArray *eTrackSets;
485
489 TEveEventManager *eEvent;
490
498
499 double eScaleZ;
501
502 public:
503
504 EdbEDA(char *filename = NULL, int datatype = 100, TCut rcut = "1", bool auto_run=kTRUE) :
505 TNamed("EDA","Event Display and Analyser"){
512 OpenFile(filename, datatype, rcut);
513 if(auto_run) Run();
514 }
515
516 EdbEDA(EdbID IDCalib, char *ProcDirClient=NULL) {
517 Init();
518 if(ProcDirClient!=NULL) eScanProc->eProcDirClient=ProcDirClient;
519 eID=IDCalib;
521 }
522
523 EdbEDA(EdbScanSet *ss, char *ProcDirClient=NULL) : TNamed("EDA","Event Display and Analyser"){
524 Init();
525 if(ProcDirClient!=NULL) eScanProc->eProcDirClient=ProcDirClient;
526 eScanSet = ss;
527 eID = *((EdbID *)ss->eIDS.At(0));
528 eID.ePlate = 0;
529 }
530
531 EdbEDA(EdbDataProc *dproc) : TNamed("EDA","Event Display and Analyser") {
532 Init();
535 GetTrackSet("TS")->SetNsegCut(3);
536 GetTrackSet("TS")->DoSelection();
537 }
538
539 void OpenFile(char *filename = NULL, int datatype = 100, TCut rcut = "1");
540
541 EdbEDA(EdbPVRec *pvr, bool autorun=1){
542 Init();
543 ePVR = pvr;
544
545 if(pvr->Ntracks()==0){
546 printf("*******************************************\n");
547 printf(" Worning: No tracks in EdbPVRec object! \n");
548 printf("*******************************************\n");
549 printf("EDA is made to show \"Tracks\". if you want to show segments in PVR, make tracks from the segments. or you may try EdbEDAUtil::FillTracksFromPatterns(EdbPVRec *)\n");
550 }
551
552 // if plate number is not set. set plate number as PID.
553 int flag_plset=0;
554 if(ePVR->eTracks==NULL) ePVR->eTracks = new TObjArray;
555 for(int i=0;i<ePVR->Ntracks();i++){
556 EdbTrackP *t = ePVR->GetTrack(i);
557 EdbSegP *s = t->GetSegmentLast();
558 if(s->Plate()!=0) flag_plset++; // if plate number is set.
559 }
560
561 if(flag_plset==0){ // in case plate number is not set, set PID as plate number
562 for(int i=0;i<ePVR->Npatterns();i++){
564 if(p==NULL) continue;
565 p->SetSegmentsPlate(p->ID());
566 }
567 }
568
569 GetTrackSet("TS")->AddTracksPVR(pvr);
571 if(autorun) Run();
572 }
573
575
576 void Init(void);
577 void Run();
579
581
583 void RemoveDrawObject(TObject *o){ eDrawObjects->Remove(o); eDrawObjects->Sort();}
585 int NDrawObjects(){ return eDrawObjects->GetEntries();}
587
588 TObjArray * GetCurrentTracks(void){
589 TEveEventManager *ev = gEve->GetCurrentEvent();
590 TObjArray *tracks = new TObjArray;
591 for(TEveElement::List_i it = ev->BeginChildren(); it!=ev->EndChildren(); it++){
592 TEveElement *e = *it;
593 if(IsTrack(e)) tracks->Add((EdbTrackP *)e->GetUserData());
594 }
595 return tracks;
596 }
597
599 for(int i=0;i<NTrackSets();i++){
601 if(t) return t;
602 }
603 return NULL;
604 }
605
606 TEveElement * GetEveElement(TObject *t){
608 TEveEventManager *ev = gEve->GetCurrentEvent();
609 for(TEveElement::List_i it = ev->BeginChildren(); it!=ev->EndChildren(); it++){
610 TEveElement *e = *it;
611 if( t == e->GetUserData() ) return e;
612 }
613 return NULL;
614 }
615
616 int NTrackSets() { return eTrackSets->GetEntries();}
618 EdbEDATrackSet * GetTrackSet(char *name){ return (EdbEDATrackSet *) eTrackSets->FindObject(name);}
620 for(int i=0;i<NTrackSets();i++)
621 if ( GetTrackSet(i)->IsMember(t) )
622 return (EdbEDATrackSet *) eTrackSets->At(i);
623 return NULL;
624 }
626 for(int i=0;i<NTrackSets();i++) {
627 EdbID& ID2 = GetTrackSet(i)->GetID();
628 if(ID.eMajor==ID2.eMajor&&ID.eMinor==ID2.eMinor) return GetTrackSet(i);
629 }
630 return NULL;
631 }
632
635 eTrackSets->Add(set);
636 return set;
637 }
638 TObjArray * GetTrackSets(){ return eTrackSets;}
639
641 void RemoveTrack (EdbTrackP *t) {for(int i=0;i<NTrackSets();i++) GetTrackSet(i)->RemoveTrack(t);}
642
646 int nselected = NSelected();
647 for(int i=0;i<NTrackSets();i++) GetTrackSet(i)->RemoveTracks(GetSelectedTracks());
648 if(nselected==0) eVertexSet->RemoveVertex(GetSelectedVertex());
649 }
650
652 for(int i=0;i<NTrackSets();i++) {
655 }
658 }
659
662 TObjArray *GetVertices() {return eVertexSet->GetVertices();}
664 void DrawVertices(int redraw = 0) { eVertexSet->Draw(redraw);}
665
666 void SetBrick(int ibrick) {
669 for(int i=0;i<NTrackSets();i++) GetTrackSet(i)->GetID().eBrick=ibrick;
670 if(gEve) gEve->GetMainWindow()->SetWindowName(
671 Form("OPERA Event Display and Analyser. Brick %d", EdbEDABrickData::GetBrick()));
672 }
673
674 void SetDrawTrackID(bool draw) { for(int i=0;i<NTrackSets();i++) GetTrackSet(i)->SetDrawTrackIDG(draw);}
675 void SetDrawTrackAngle(bool draw) { for(int i=0;i<NTrackSets();i++) GetTrackSet(i)->SetDrawTrackAngleG(draw);}
676 void SetDrawAreaSet(bool draw) { for(int i=0;i<NTrackSets();i++) GetTrackSet(i)->GetAreaSet()->SetDrawG(draw);}
677
678 void Draw(int redraw = kFALSE);
679
680 void Redraw() { if(gEve)Draw(kTRUE);}
681 void UpdateScene() { if(gEve) gEve->GetDefaultGLViewer()->UpdateScene();}
682
683 void Reset(){
684 for(int i=0;i<NTrackSets();i++) GetTrackSet(i)->Clear();
687 }
688
690 for(int i=0;i<NTrackSets();i++) GetTrackSet(i)->StorePrevious();
692 }
693
695 for(int i=0;i<NTrackSets();i++) GetTrackSet(i)->RestorePrevious();
697 }
698
700
701 void SetColorMode(int mode){
703 // enum EdbEDAUtil::EDACOLOR{
704 // kCOLOR_BY_PLATE,
705 // kCOLOR_BY_PH,
706 // kCOLOR_BY_ID,
707 // kCOLOR_BY_PARTICLE, // to be done
708 // kBLACKWHITE
709 // };
710
711 printf("color mode %d\n", mode);
712 if(mode==kBLACKWHITE) eViewer->SetClearColor(kWhite);
713 else eViewer->SetClearColor(kBlack);
714 for(int i=0;i<NTrackSets();i++) GetTrackSet(i) ->SetColorMode(mode);
715 GetVertexSet()->SetColorMode(mode);
716 for(int i=0;i<NDrawObjects();i++) GetDrawObject(i)->SetColorMode(mode);
717 Redraw();
718 }
719 void SetLayerLength(double layer_length) {
721 for(int i=0;i<NTrackSets();i++){ GetTrackSet(i)->SetLayerLength(layer_length);}
722 }
723
730 EdbTrackP * CheckScanback(EdbTrackP *t) {return GetTrackSet("SB")->FindTrackLast(t->GetSegmentLast());}
731
732 double GetScaleZ() { return eScaleZ;}
733 void SetScaleZ(double scale) { eScaleZ=scale;}
734 bool Japanese(){return eJapanese;}
735 void SetJapanese(bool b=kTRUE) {eJapanese = b;}
736
737 ClassDef(EdbEDA,0); // Base of Display
738};
739
740R__EXTERN EdbEDA* gEDA;
741
742
743#endif // __EDA_H__
R__EXTERN EdbEDA * gEDA
Definition: EdbEDA.h:740
const char filename[256]
Definition: RecDispNU.C:83
cout<< tr-> GetEntries()<< endl
Definition: EdbAffine.h:17
Definition: EdbBrick.h:38
EdbPlateP * GetPlate(int i)
Definition: EdbBrick.h:53
int Npl() const
Definition: EdbBrick.h:51
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
emulsion data processing
Definition: EdbDataSet.h:181
EdbDataSet * GetDataSet()
Definition: EdbDataSet.h:197
EdbPVRec * PVR() const
Definition: EdbDataSet.h:198
OPERA emulsion data set.
Definition: EdbDataSet.h:144
EdbDataPiece * GetPiece(int id)
Definition: EdbDataSet.h:163
int N() const
Definition: EdbDataSet.h:162
void SetDrawG(bool draw)
Definition: EdbEDASets.h:107
Definition: EdbEDA.h:192
void SetIDSB(EdbID id)
Definition: EdbEDA.h:217
int eFirstPlate
Definition: EdbEDA.h:210
double eBeamTX
Data management.
Definition: EdbEDA.h:196
int GetFirstPlate()
Definition: EdbEDA.h:240
int GetPlateDown()
Definition: EdbEDA.h:238
virtual ~EdbEDABrickData()
Definition: EdbEDA.h:215
void SetID(EdbID id)
Definition: EdbEDA.h:218
EdbID eIDSB
Definition: EdbEDA.h:200
EdbScanSet * GetScanSet()
Definition: EdbEDA.h:222
EdbScanSet * eScanSet
Definition: EdbEDA.h:205
int GetPlateUp()
Definition: EdbEDA.h:237
EdbID eIDSF
Definition: EdbEDA.h:199
EdbID eID
Definition: EdbEDA.h:201
double GetBeamTX()
Definition: EdbEDA.h:343
double eBeamTY
Definition: EdbEDA.h:196
double GetZ(int ipl)
Definition: EdbEDA.h:300
int GetIPL(int PID)
Definition: EdbEDA.h:252
int eDataType
Definition: EdbEDA.h:208
int GetBrick()
Definition: EdbEDA.h:232
double GetZPID(int pid)
Definition: EdbEDA.h:321
void SetIDSF(EdbID id)
Definition: EdbEDA.h:216
int GetDataType()
Definition: EdbEDA.h:234
void SetDataType(int datatype)
Definition: EdbEDA.h:235
double GetBeamTY()
Definition: EdbEDA.h:344
int eLastPlate
Definition: EdbEDA.h:211
void SetScanSet(EdbScanSet *ss)
Definition: EdbEDA.h:221
void SetBeamAngle(double tx, double ty)
Definition: EdbEDA.h:342
EdbDataSet * eDataSet
Definition: EdbEDA.h:203
EdbEDABrickData()
Definition: EdbEDA.h:213
void SetPVR(EdbPVRec *pvr)
Definition: EdbEDA.h:224
EdbPVRec * ePVR
Definition: EdbEDA.h:206
int GetNPL()
Definition: EdbEDA.h:246
void SetBrick(int ibrick)
Definition: EdbEDA.h:227
EdbScanProc * eScanProc
Definition: EdbEDA.h:204
int GetPID(int ipl)
Definition: EdbEDA.h:276
EdbDataSet * GetDataSet()
Definition: EdbEDA.h:244
int GetIPLZ(float z)
Definition: EdbEDA.h:267
EdbAffine2D * GetAffine(int ipl)
Definition: EdbEDA.C:197
EdbID GetID()
Definition: EdbEDA.h:219
int GetLastPlate()
Definition: EdbEDA.h:241
EdbPVRec * GetPVR()
Definition: EdbEDA.h:225
Definition: EdbEDA.h:126
void SetAnimationMode()
Definition: EdbEDA.C:97
void Snapshot(char *filename=NULL)
Definition: EdbEDA.C:180
float eAnimationAmplitude
Definition: EdbEDA.h:133
void StopAnimation()
Definition: EdbEDA.C:122
@ Z
Definition: EdbEDA.h:139
@ B
Definition: EdbEDA.h:139
@ Y
Definition: EdbEDA.h:139
@ X
Definition: EdbEDA.h:139
float eTheta
Definition: EdbEDA.h:132
TTimer * eTimer
Definition: EdbEDA.h:129
EdbEDACamera()
Definition: EdbEDA.h:141
EdbEDAOverlay * GetOverlay()
Definition: EdbEDA.h:155
virtual ~EdbEDACamera()
Definition: EdbEDA.h:143
void SavePictures()
Definition: EdbEDA.C:157
void Animation()
Definition: EdbEDA.C:103
void SetCamera(int projection=Y)
Definition: EdbEDA.C:50
TGLViewer * GetGLViewer()
EdbEDAOverlay * SetOverlay()
Definition: EdbEDA.h:154
int eAnimationMode
Definition: EdbEDA.h:131
void SaveAnimation(char *filename=NULL, int n=100, int interval=10)
Definition: EdbEDA.C:125
void StartAnimation()
Definition: EdbEDA.C:114
EdbEDAOverlay * eOverlay
Definition: EdbEDA.h:134
TGLViewer * eViewer
Definition: EdbEDA.h:137
Definition: EdbEDADecaySearch.h:426
Definition: EdbEDASets.h:230
Definition: EdbEDA.h:162
EdbPVRec * ReadFilteredText(char *filename=NULL)
Definition: EdbEDA.C:1108
void WriteFeedbackFile2008(EdbVertex *v=NULL, char *filename=NULL)
Definition: EdbEDA.C:690
EdbPattern * ReadCouplesPID(int pid, EdbPattern *pat=NULL)
Definition: EdbEDA.C:225
virtual ~EdbEDAIO()
Definition: EdbEDA.h:173
void WriteFeedbackFile(char *filename=NULL)
Definition: EdbEDA.C:308
int eOutputFileMode
Definition: EdbEDA.h:164
int IdMuon(char *filename="../cs_info.txt")
Definition: EdbEDA.C:1045
EdbPattern * ReadCouples(int ipl, EdbPattern *pat=NULL)
Definition: EdbEDA.C:218
EdbEDAIO()
Definition: EdbEDA.h:172
void WriteFilteredText(char *filename=NULL)
Definition: EdbEDA.C:1375
EdbPattern * GetPatternIPL(int pid)
Definition: EdbEDA.C:262
void ReadFeedbackFile(char *filename=NULL)
Definition: EdbEDA.C:757
void OpenTextEditor(char *filename)
Definition: EdbEDA.C:1094
OutputFileMode
Definition: EdbEDA.h:165
@ kOtherLabs
Definition: EdbEDA.h:167
@ kBern
Definition: EdbEDA.h:166
EdbVertex * ReadFeedbackFile2008(char *filename=NULL)
Definition: EdbEDA.C:954
TCut eCutCP
Definition: EdbEDA.h:170
Definition: EdbEDA.h:86
~EdbEDALine()
Definition: EdbEDA.h:95
float X1
Definition: EdbEDA.h:88
int col
Definition: EdbEDA.h:89
TString text
Definition: EdbEDA.h:90
float X2
Definition: EdbEDA.h:88
float Y2
Definition: EdbEDA.h:88
EdbEDALine(float x1, float y1, float z1, float x2, float y2, float z2, int color, int width, char *comment="")
Definition: EdbEDA.h:93
EdbEDALine(int color, int width, char *comment="")
Definition: EdbEDA.h:94
float Y1
Definition: EdbEDA.h:88
void SetPoint1(float x1, float y1, float z1)
Definition: EdbEDA.h:97
float Z2
Definition: EdbEDA.h:88
float Z1
Definition: EdbEDA.h:88
void SetPoint2(float x2, float y2, float z2)
Definition: EdbEDA.h:98
int wid
Definition: EdbEDA.h:89
void Draw(Option_t *option="")
Definition: EdbEDA.C:2184
Definition: EdbEDAMainTab.h:9
Definition: EdbEDA.h:34
virtual void SetColorMode(int mode)
Definition: EdbEDA.h:42
virtual void Draw(Option_t *option="")
Definition: EdbEDA.h:41
void SetDraw(bool b=kTRUE)
Definition: EdbEDA.h:46
void SetReference(void *ref)
Definition: EdbEDA.h:43
void * GetReference()
Definition: EdbEDA.h:44
~EdbEDAObject()
Definition: EdbEDA.h:40
void * eRef
Definition: EdbEDA.h:37
bool GetDraw()
Definition: EdbEDA.h:45
EdbEDAObject()
Definition: EdbEDA.h:39
int eDraw
Definition: EdbEDA.h:36
Definition: EdbEDATabs.h:159
Definition: EdbEDA.h:106
int eLength
Definition: EdbEDA.h:110
void SetDraw(bool b)
Definition: EdbEDA.h:119
void RenderBar(TGLRnrCtx &ctx)
Definition: EdbEDA.C:1853
void Render(TGLRnrCtx &ctx)
Definition: EdbEDA.C:1767
int eBarDirection
Definition: EdbEDA.h:112
bool eDraw
Definition: EdbEDA.h:109
int eXb
Definition: EdbEDA.h:111
~EdbEDAOverlay()
Definition: EdbEDA.h:115
void SetXY(int pixel_x=50, int pixel_y=30)
Definition: EdbEDA.C:1764
int eYb
Definition: EdbEDA.h:111
EdbEDAOverlay()
Definition: EdbEDA.C:1763
int eXa
Definition: EdbEDA.h:110
void SetLength(int pixel_length=120)
Definition: EdbEDA.C:1765
void RenderAxes(TGLRnrCtx &ctx)
Definition: EdbEDA.C:1773
int eYa
Definition: EdbEDA.h:110
Definition: EdbEDAPlotTab.h:14
Definition: EdbEDA.h:352
TObjArray * GetSelectedTracks(void)
Definition: EdbEDA.h:417
TObjArray * eSelectedVertices
selected vertices
Definition: EdbEDA.h:357
int Enable(int force=kFALSE)
Definition: EdbEDA.h:448
void ClearSelected()
Definition: EdbEDA.h:397
void Cleared()
Definition: EdbEDA.C:1692
TEveSelection * eSel
Definition: EdbEDA.h:354
EdbTrackP * GetTrack(TEveElement *e)
Definition: EdbEDA.C:1531
TEveElement * GetSelectedElement()
Definition: EdbEDA.h:416
int Disable(int force=kFALSE)
Definition: EdbEDA.h:447
void Added(TEveElement *el)
Definition: EdbEDA.C:1635
void SetSelection(TObjArray *selected=NULL)
Definition: EdbEDA.C:1587
TObjArray * GetSelected(void)
Definition: EdbEDA.h:405
EdbVertex * eSelectedVertex
current(last) selected vertex
Definition: EdbEDA.h:356
virtual ~EdbEDASelection()
Definition: EdbEDA.h:375
void SetSelectedVertex(EdbVertex *v)
Definition: EdbEDA.h:440
TObjArray * SetSelected(TObjArray *selected=NULL)
Definition: EdbEDA.C:1541
int NSelected()
Definition: EdbEDA.h:420
TObjArray * eSelectedSegments
selected segments
Definition: EdbEDA.h:359
void InitSelection(TEveSelection *sel)
Definition: EdbEDA.h:384
EdbTrackP * GetSelectedTrack(int i=-1)
Definition: EdbEDA.h:421
void SetSelectedTracks(TObjArray *arr)
Definition: EdbEDA.h:408
EdbSegP * GetSelected(int i)
Definition: EdbEDA.h:406
TObjArray * eSelectedTracks
selected tracks
Definition: EdbEDA.h:358
EdbSegP * GetSelectedSegment(int i=-1)
Definition: EdbEDA.h:434
void ClearSelectedVertex()
Definition: EdbEDA.h:441
EdbEDASelection()
Definition: EdbEDA.h:365
EdbVertex * GetSelectedVertex(void)
Definition: EdbEDA.h:439
EdbTrackP * GetSelectedTrack(EdbSegP *s)
Definition: EdbEDA.h:426
void SelectAll()
Definition: EdbEDA.C:1570
TObjArray * eSelected
Definition: EdbEDA.h:360
int eDisable
Definition: EdbEDA.h:355
int NSelectedTracks()
Definition: EdbEDA.h:419
void Removed(TEveElement *el)
Definition: EdbEDA.C:1687
Definition: EdbEDA.h:50
void Draw(Option_t *option="")
Definition: EdbEDA.C:2170
int eTextSize
Definition: EdbEDA.h:54
int GetTextColor()
Definition: EdbEDA.h:73
void SetXYZ(float x, float y, float z)
Definition: EdbEDA.h:76
EdbEDAText(float x, float y, float z, TString str, int color=kWhite)
Definition: EdbEDA.h:60
int eTextColor
Definition: EdbEDA.h:53
float eZ
Definition: EdbEDA.h:52
float eX
Definition: EdbEDA.h:52
void SetAttribute(int size=14, int color=kWhite, int fontfile=4)
Definition: EdbEDA.h:64
float eY
Definition: EdbEDA.h:52
void SetColorMode(int mode)
Definition: EdbEDA.h:69
int N()
Definition: EdbEDA.h:79
int eTextFont
Definition: EdbEDA.h:55
void AddText(TString str)
Definition: EdbEDA.h:78
~EdbEDAText()
Definition: EdbEDA.h:62
TString eText
Definition: EdbEDA.h:56
int GetTextSize()
Definition: EdbEDA.h:74
int GetTextFont()
Definition: EdbEDA.h:75
void * eRef
Definition: EdbEDA.h:57
void SetText(TString str)
Definition: EdbEDA.h:77
void SetNsegCut(int nseg)
Definition: EdbEDATrackSet.h:91
Definition: EdbEDATrackSet.h:608
Definition: EdbEDATrackSet.h:178
bool IsMember(EdbTrackP *t)
Definition: EdbEDATrackSet.h:443
EdbID & GetID()
Definition: EdbEDATrackSet.h:464
void RemoveTrack(EdbTrackP *t)
Definition: EdbEDATrackSet.h:324
void ClearTracks(void)
Definition: EdbEDATrackSet.h:327
void RemoveTracks(TObjArray *tracks)
Definition: EdbEDATrackSet.h:325
void RemoveTrackBase(EdbTrackP *t)
Definition: EdbEDATrackSet.h:323
void SetDrawTrackIDG(bool draw)
Definition: EdbEDATrackSet.h:589
void RestorePrevious(void)
Definition: EdbEDATrackSet.h:351
EdbEDAAreaSet * GetAreaSet()
Definition: EdbEDATrackSet.h:602
void DoSelection()
Definition: EdbEDATrackSet.h:503
void StorePrevious()
Definition: EdbEDATrackSet.h:356
EdbTrackP * FindTrackLast(EdbSegP *s, double dx=20, double dt=0.03)
Definition: EdbEDATrackSet.h:394
void SetDrawTrackAngleG(bool draw)
Definition: EdbEDATrackSet.h:590
void SetTracks(TObjArray *tracks)
Definition: EdbEDATrackSet.h:303
void SetLayerLength(double length)
Definition: EdbEDATrackSet.h:556
EdbTrackP * GetTrack(EdbSegP *s)
Definition: EdbEDATrackSet.h:428
void AddTracksPVR(EdbPVRec *pvr)
Definition: EdbEDATrackSet.h:312
void Clear()
Definition: EdbEDATrackSet.h:336
void SetColorMode(int mode)
Definition: EdbEDATrackSet.C:276
Definition: EdbEDASets.h:143
void RestorePrevious(void)
Definition: EdbEDASets.h:204
void SetColorMode(int mode)
Definition: EdbEDASets.h:175
void AddVertices(TObjArray *vertices)
Definition: EdbEDASets.h:189
void AddVertex(EdbVertex *v)
Definition: EdbEDASets.h:183
TObjArray * GetVertices()
Definition: EdbEDASets.h:217
void RemoveVertex(EdbVertex *v)
Definition: EdbEDASets.h:208
void StorePrevious(void)
Definition: EdbEDASets.h:205
void Draw(int redraw=0)
Definition: EdbEDASets.C:195
void ClearVertices()
Definition: EdbEDASets.h:213
void SetVertex(EdbVertex *v)
Definition: EdbEDASets.h:191
Definition: EdbEDATabs.h:32
Definition: EdbEDA.h:479
double eScaleZ
Definition: EdbEDA.h:499
EdbEDA(EdbPVRec *pvr, bool autorun=1)
Definition: EdbEDA.h:541
TObjArray * GetTrackSets()
Definition: EdbEDA.h:638
EdbEDAOperationTab * GetOperationTab()
Definition: EdbEDA.h:728
EdbEDAExtentionSet * eExt
Definition: EdbEDA.h:488
void RemoveSelected()
Definition: EdbEDA.h:643
void DrawVertices(int redraw=0)
Definition: EdbEDA.h:664
EdbEDAVertexSet * GetVertexSet()
Definition: EdbEDA.h:660
EdbEDAObject * GetDrawObject(int i)
Definition: EdbEDA.h:586
void AddVertex(EdbVertex *v)
Definition: EdbEDA.h:661
EdbEDATrackSet * GetTrackSet(EdbTrackP *t)
Definition: EdbEDA.h:619
TObjArray * GetVertices()
Definition: EdbEDA.h:662
EdbEDASelection * eSel
Definition: EdbEDA.h:496
EdbEDAExtentionSet * GetExtentionSet()
Definition: EdbEDA.h:699
void RestorePrevious()
Definition: EdbEDA.h:694
TEveElement * GetEveElement(TObject *t)
Definition: EdbEDA.h:606
double GetScaleZ()
Definition: EdbEDA.h:732
EdbEDATrackSet * AddTrackSet(char *name)
Definition: EdbEDA.h:580
EdbEDA(EdbScanSet *ss, char *ProcDirClient=NULL)
Definition: EdbEDA.h:523
void ClearVertices()
Definition: EdbEDA.h:663
void SetScaleZ(double scale)
Definition: EdbEDA.h:733
void UpdateScene()
Definition: EdbEDA.h:681
EdbEDAMainTab * GetMainTab()
Definition: EdbEDA.h:724
ClassDef(EdbEDA, 0)
EdbEDATrackSet * GetTrackSet(int i)
Definition: EdbEDA.h:617
void Run()
Definition: EdbEDA.C:1989
TObjArray * eTrackSets
Definition: EdbEDA.h:484
int NTrackSets()
Definition: EdbEDA.h:616
void SetLayerLength(double layer_length)
Definition: EdbEDA.h:719
EdbEDAVertexSet * eVertexSet
Definition: EdbEDA.h:487
EdbEDATrackSet * CreateTrackSet(char *name)
Definition: EdbEDA.h:633
void SetColorMode(int mode)
Definition: EdbEDA.h:701
EdbEDA(char *filename=NULL, int datatype=100, TCut rcut="1", bool auto_run=kTRUE)
Definition: EdbEDA.h:504
void Redraw()
Definition: EdbEDA.h:680
void Init(void)
Definition: EdbEDA.C:1944
void SetDrawTrackID(bool draw)
Definition: EdbEDA.h:674
EdbEDATrackSet * GetTrackSet(char *name)
Definition: EdbEDA.h:618
EdbEDAPlotTab * GetPlotTab()
Definition: EdbEDA.h:726
void AddDrawObject(EdbEDAObject *o)
Definition: EdbEDA.h:582
EdbEDATrackSet * eSetTracks
Definition: EdbEDA.h:486
EdbEDATrackSetTab * GetTrackSetTab()
Definition: EdbEDA.h:725
void SetDrawTrackAngle(bool draw)
Definition: EdbEDA.h:675
int NDrawObjects()
Definition: EdbEDA.h:585
EdbEDATrackSetTab * eTrackSetTab
Definition: EdbEDA.h:492
void SetOnlySelected()
Definition: EdbEDA.h:651
EdbEDAMainTab * eMainTab
Definition: EdbEDA.h:491
EdbEDADecaySearchTab * eDSTab
Definition: EdbEDA.h:497
TObjArray * eDrawObjects
Definition: EdbEDA.h:483
EdbDataProc * PVRec2DataProc(EdbPVRec *pvr)
Definition: EdbEDA.C:1717
void SetDrawAreaSet(bool draw)
Definition: EdbEDA.h:676
EdbEDATrackSet * GetTrackSet(EdbID &ID)
Definition: EdbEDA.h:625
void RemoveTrack(EdbTrackP *t)
Definition: EdbEDA.h:641
bool eJapanese
Definition: EdbEDA.h:500
void Draw(int redraw=kFALSE)
Definition: EdbEDA.C:2045
void OpenFile(char *filename=NULL, int datatype=100, TCut rcut="1")
Definition: EdbEDA.C:2065
void ClearDrawObjects()
Definition: EdbEDA.h:584
EdbEDAOperationTab * eOperationTab
Definition: EdbEDA.h:495
void SetBrick(int ibrick)
Definition: EdbEDA.h:666
EdbScanProc * ScanProc()
Definition: EdbEDA.h:578
void StorePrevious()
Definition: EdbEDA.h:689
EdbTrackP * GetTrack(EdbSegP *s)
Definition: EdbEDA.h:598
TObjArray * GetCurrentTracks(void)
Definition: EdbEDA.h:588
EdbTrackP * CheckScanback(EdbTrackP *t)
Definition: EdbEDA.h:730
EdbEDA(EdbID IDCalib, char *ProcDirClient=NULL)
Definition: EdbEDA.h:516
EdbEDAVertexTab * eVertexTab
Definition: EdbEDA.h:494
void RemoveTrackBase(EdbTrackP *t)
Definition: EdbEDA.h:640
void Reset()
Definition: EdbEDA.h:683
bool Japanese()
Definition: EdbEDA.h:734
void RemoveDrawObject(TObject *o)
Definition: EdbEDA.h:583
EdbEDAPlotTab * ePlotTab
Definition: EdbEDA.h:493
EdbEDA(EdbDataProc *dproc)
Definition: EdbEDA.h:531
void SetJapanese(bool b=kTRUE)
Definition: EdbEDA.h:735
EdbEDAVertexTab * GetVertexTab()
Definition: EdbEDA.h:727
TEveEventManager * eEvent
Definition: EdbEDA.h:489
EdbEDADecaySearchTab * GetDSTab()
Definition: EdbEDA.h:729
Definition: EdbID.h:7
Int_t eBrick
Definition: EdbID.h:10
Int_t eMinor
Definition: EdbID.h:13
Int_t ePlate
Definition: EdbID.h:11
Int_t eMajor
Definition: EdbID.h:12
Definition: EdbLayer.h:39
int ID() const
Definition: EdbLayer.h:73
float Z() const
Definition: EdbLayer.h:77
Definition: EdbPVRec.h:148
TObjArray * eVTX
array of vertex
Definition: EdbPVRec.h:162
Int_t Ntracks() const
Definition: EdbPVRec.h:203
TObjArray * eTracks
Definition: EdbPVRec.h:161
EdbTrackP * GetTrack(int i) const
Definition: EdbPVRec.h:241
Definition: EdbPattern.h:273
Int_t Plate() const
Definition: EdbPattern.h:327
Int_t Npatterns() const
Definition: EdbPattern.h:366
EdbPattern * GetPattern(int id) const
Definition: EdbPattern.cxx:1721
Definition: EdbBrick.h:14
scanned data processing
Definition: EdbScanProc.h:12
TString eProcDirClient
directory path for root data
Definition: EdbScanProc.h:14
EdbScanSet * ReadScanSet(EdbID id)
Definition: EdbScanProc.cxx:1482
Definition: EdbScanSet.h:11
const EdbBrickP & Brick() const
Definition: EdbScanSet.h:49
EdbPlateP * GetPlate(Int_t p)
Definition: EdbScanSet.h:56
EdbBrickP eB
all layers of the brick defined here
Definition: EdbScanSet.h:13
Definition: EdbSegP.h:21
Float_t Z() const
Definition: EdbPattern.h:84
Definition: EdbPattern.h:113
Definition: EdbVertex.h:69
EdbScanSet * set
Definition: emtraceback.cpp:14
AcqOdyssey * o
Definition: hwinit.C:2
int pid[1000]
Definition: m2track.cpp:13
TTree * t
Definition: check_shower.C:4
s
Definition: check_shower.C:55
TTree * tracks
Definition: check_tr.C:19
EdbDataProc * dproc
Definition: check_vertex.C:13
ss
Definition: energy.C:62
const char * name
Definition: merge_Energy_SytematicSources_Electron.C:24
Definition: EDACint.cxx:53
@ kBLACKWHITE
Definition: EdbEDAUtil.h:86
int IsTrack(TObject *o)
Definition: EdbEDAUtil.C:17
UInt_t id
Definition: tlg2couples.C:117
#define NULL
Definition: nidaqmx.h:84
Definition: Flexmotn.h:102
p
Definition: testBGReduction_AllMethods.C:8