FEDRA emulsion software from the OPERA Collaboration
EdbEDATrackSet.h
Go to the documentation of this file.
1#ifndef __EDA_TRACKSET_H__
2#define __EDA_TRACKSET_H__
3
4using namespace EdbEDAUtil;
5
6#include <EdbEDASets.h>
7#include<EdbRunTracking.h>
8
9class EdbEDATrackComment:public TObject{
10 private:
11 TString *eComment;
13
14 public:
16 eComment = new TString(cmt);
17 }
19 const char * GetComment(){ return eComment->Data();}
20 ClassDef(EdbEDATrackComment,0) // for comment
21};
22
23/*
24class EdbEDATrack: public EdbTrackP{
25 private:
26 TString *eComment;
27 public:
28 EdbEDATrack (EdbTrackP *t, char *cmt) : EdbTrackP(*t){
29 eComment = new TString(cmt);
30 }
31 const char * GetComment(){ return eComment->Data();}
32
33 ClassDef(EdbEDATrack, 0) // Track class for EDA, inherited from EdbTrackP.
34}
35*/
36
46 double eTolDX;
47 double eTolDTX;
48 double eTolDTY;
49 double eTX;
50 double eTY;
51
53 double ePHCut;
54 double ePHDTRMS;
57 TObjArray *eSelected;
58
59
60 public:
63
66
67 void Reset(){
68 eNsegCut = 3;
69 ePlateUp = 0;
70 ePlateDown = 0;
72 eImpactSearch = 0;
73 eAngularCut = 0;
74 eSideOut = 0;
75 eSideOutPlate = 3;
76 eTolDX = 200.;
77 eTolDTX = 2.0;
78 eTolDTY = 2.0;
79 eTX = 0.0;
80 eTY = 0.0;
82 ePHCut = 0.0;
83 ePHDTRMS = 0.05;
84 eNeighborDzUp = 5000.;
85 eNeighborDzDown = 5000.;
86 eVertex = NULL;
90 }
91 void SetNsegCut (int nseg) { eNsegCut = nseg;}
92 void SetUpstreamPlate (int ipl) { ePlateUp = ipl;}
93 //void SetDownstreamPlate(int ipl) { ePlateUp = ipl;}
94 void SetImpactSearch (bool b=kTRUE, EdbVertex *v = NULL) { eImpactSearch = b; eVertex = v;}
95 void SetNeighborSearch (bool b=kTRUE, TObjArray *selected = NULL, double dzup=-1, double dzdown=-1) {
96 eNeighborSearch = b; eSelected=selected;
97 if(dzup>=0) eNeighborDzUp = dzup;
98 if(dzdown>=0) eNeighborDzDown = dzdown;
99 }
100 void SetSideOut(bool b=kTRUE) { eSideOut = b;}
101 void SetSideOutPlate(int npl) { eSideOutPlate = npl;}
102 void SetAngularCut (bool b=kTRUE) { eAngularCut = b;}
103 void SetDX (double dx) { eTolDX=dx;}
104 void SetDT (double dtx, double dty=-1) { eTolDTX=dtx; eTolDTY=dty; if(eTolDTY<0) eTolDTY=eTolDTX;}
105 void SetAngle (double tx, double ty) { eTX=tx; eTY=ty;}
106 void SetClearPrevious (bool b=kTRUE) { eClearPrevious = b;}
107 void SetPHCut (double phcut =0.0) { ePHCut=phcut;}
108 void SetPHDTRMS (double slope) {ePHDTRMS=slope;}
110 int Neighborhood (EdbSegP *s, double *dmin=NULL);
112 int SideOut(EdbTrackP *t);
113 int GetUpstreamPlate() { return ePlateUp;}
114 int GetNsegCut() { return eNsegCut;}
115 double GetPHCut() { return ePHCut;}
116 double GetPHDTRMS() { return ePHDTRMS;}
118
119 void DoSelection (TObjArray *tracksbase, TObjArray *tracks);
120
123
127 eRunTracking.eDeltaR = 20.;
128
131
135
139
142
145 }
146
148 cond.SetSigma0( 1., 1., 0.010, 0.010 ); // sigma0 "x, y, tx, ty" at zero angle
149 cond.SetDegrad( 5. ); // sigma(tx) = sigma0*(1+degrad*tx)
150 cond.SetBins(0, 0, 0, 0); //??? // bins in [sigma] for checks
151 cond.SetPulsRamp0( 5., 5. ); // in range (Pmin:Pmax) Signal/All is nearly linear
152 cond.SetPulsRamp04( 5., 5. );
153 cond.SetChi2Max( 6.5 );
154 cond.SetChi2PMax( 6.5 );
155 cond.SetRadX0( 5810. );
156 cond.SetName("OPERA_microtrack");
157 }
158
160 cond.SetSigma0( 10., 10., 0.007, 0.007 ); // sigma0 "x, y, tx, ty" at zero angle
161 cond.SetDegrad( 2. ); // sigma(tx) = sigma0*(1+degrad*tx)
162 cond.SetBins(0, 0, 0, 0); // bins in [sigma] for checks
163 cond.SetPulsRamp0( 5., 5. ); // in range (Pmin:Pmax) Signal/All is nearly linear
164 cond.SetPulsRamp04( 5., 5. );
165 cond.SetChi2Max( 6.5 );
166 cond.SetChi2PMax( 6.5 );
167 cond.SetRadX0( 5810. );
168 cond.SetName("OPERA_basetrack");
169 }
170
171 ClassDef(EdbEDATrackSelection,0) // Selection of Tracks
172};
173
174
175
176
177
178class EdbEDATrackSet: public TNamed, public EdbEDATrackSelection{
179
180 private:
181
182// int eVer;
183// int eRun;
185
190
194
199
201
202 bool eDraw;
203 bool eDrawMT;
208
211
215
216 TObjArray *eTracks;
217 TObjArray *eTracksBase;
218 TObjArray *eTracksPrevious;
219
220 TObjArray *eComments;
221
223
224 public:
225
226 enum { kEnd, kTop, kMiddle};
227
228 EdbEDATrackSet(char *title, TObjArray *EdbTrackPArray=NULL)
229 : eID(0,0,1,0), ePVR(NULL), eDataSet(NULL), eScanSet(NULL){
230 SetName(title);
231 eTracks = new TObjArray;
232 eTracksBase = new TObjArray;
233 eTracksPrevious = new TObjArray;
234 eComments = new TObjArray;
235 eDraw = kTRUE;
237
238 eAreaSet = new EdbEDAAreaSet();
239
242 SetDrawMT(kTRUE);
243 SetDrawTrackID(kTRUE);
244 SetDrawTrackAngle(kTRUE);
245 SetDrawTrackIDG(kFALSE);
246 SetDrawTrackAngleG(kFALSE);
248 SetInterpolation(kTRUE);
249
251
252 if(EdbTrackPArray) {
253 SetTracks(EdbTrackPArray);
254 SetTracksBase(EdbTrackPArray);
255 }
256 }
257
258 void Print(){
259 printf("EdbEDATrackSet : %s\n", GetName());
260 printf("TracksBase : %5d tracks\n", NBase());
261 printf("Tracks to Draw : %5d tracks\n", N());
262
263 }
264
265 void SetTracksBase(TObjArray *tracksbase) {
267 *eTracksBase = *tracksbase;
268 }
269 void AddTracksBase(TObjArray *tracksbase) {
271 if(tracksbase==NULL) return;
272 for(int i=0;i<tracksbase->GetEntries();i++) eTracksBase->Add(tracksbase->At(i));
273 }
274
275 TObjArray * GetTracksBase() { return eTracksBase;}
276
279 if(eTracksBase->FindObject(t)==NULL) eTracksBase->Add(t);
280 if(eTracks->FindObject(t)==NULL) eTracks->Add(t);
281 }
282 void AddTracks(TObjArray *arr) {
285 if(NULL==arr) return; for(int i=0;i<arr->GetEntries();i++) AddTrack( (EdbTrackP *) arr->At(i));
286 }
287
292 if(eTracksBase->FindObject(t)&&eTracks->FindObject(t)==NULL) eTracks->Add(t);
293 }
294
295 void SetTrack(int itrack){
297 for(int i=0; i<N(); i++) {
298 EdbTrackP *t = GetTrack(i);
299 if(t->ID()==itrack) SetTrack(t);
300 }
301 }
302
303 void SetTracks(TObjArray *tracks) {
306 // if you want to simply draw the tracks, use AddTracks().
307 if(NULL==tracks) return; for(int i=0; i<tracks->GetEntries(); i++) SetTrack((EdbTrackP *)tracks->At(i));
308 }
309
310 TObjArray * GetTracks() { return eTracks;}
311
315 ePVR = pvr;
317 SetTracksAll();
319 }
320 EdbPVRec * GetPVRec() { return ePVR;}
321 void SetPVRec(EdbPVRec *pvr) { ePVR=pvr;}
322
323 void RemoveTrackBase(EdbTrackP *t){ if(eTracksBase->FindObject(t)) {eTracksBase->Remove(t); eTracksBase->Sort();} RemoveTrack(t);}
324 void RemoveTrack(EdbTrackP *t){ if(eTracks->FindObject(t)) {eTracks->Remove(t); eTracks->Sort();}}
325 void RemoveTracks(TObjArray *tracks) { for(int i=0; i<tracks->GetEntries(); i++) RemoveTrack((EdbTrackP *) tracks->At(i));}
326
327 void ClearTracks(void) {
329 eTracks->Clear();
330 }
331 void ClearTracksBase(void) {
333 eTracksBase->Clear();
334 }
335
336 void Clear() {
339 }
340
342 void SetTracksNseg(int nsegcut = 3) {
343 eTracks->Clear();
344 for(int i=0; i<NBase(); i++) {
346 if(t->N()<nsegcut) continue;
347 SetTrack(t);
348 }
349 }
350
351 void RestorePrevious(void) {
352 TObjArray arr = *eTracks;
354 *eTracksPrevious = arr;
355 }
357
358
360
361 int MicroTrackSearch(EdbTrackP *t, EdbSegP *pred, int ipl);
364
365 EdbTrackP * SearchTrack(int itrk) { for(int i=0;i<eTracksBase->GetEntries(); i++) {if(itrk==((EdbTrackP *) eTracksBase->At(i))->ID()) return (EdbTrackP *) eTracksBase->At(i);} return NULL;}
366
367 EdbTrackP * SearchSegment(int ipl, int iseg);
368
369 EdbTrackP * FindTrack(EdbSegP *s, double dx = 10, double dt = 0.02){
370 EdbSegP *ss = new EdbSegP;
371 for(int i=0;i<NBase();i++){
373 if(t==NULL) continue;
374 *ss = *(t->GetSegmentFirst());
375 ss->PropagateTo(s->Z());
376 if( fabs(s->X()-ss->X()) < dx){
377 if( fabs(s->Y()-ss->Y()) < dx){
378 if( fabs(s->TX()-ss->TX()) < dt) {
379 if( fabs(s->TY()-ss->TY()) < dt) {
380 return t;
381 }}}}
382
383 }
384 delete ss;
385 return NULL;
386 }
387
389 if(eTracks==NULL) return NULL;
390 if(eTracks->FindObject(t)) return t;
391 return NULL;
392 }
393
394 EdbTrackP * FindTrackLast(EdbSegP *s, double dx = 20, double dt = 0.03){
395
396 EdbSegP ss;
397 for(int i=0;i<eTracksBase->GetEntries();i++){
398 EdbTrackP *tt = (EdbTrackP *) eTracksBase->At(i);
399 for(int j=0;j<tt->N();j++){
400 ss.Copy(*tt->GetSegment(j));
401 ss.PropagateTo(s->Z());
402 if(fabs(s->TX()-ss.TX())<dt){
403 if(fabs(s->TX()-ss.TX())<dt){
404 if( fabs(s->X()-ss.X())<dx ){
405 if( fabs(s->Y()-ss.Y())<dx ){
406 return tt;
407 }}
408 }}
409 }
410 }
411 return NULL;
412 }
413
414 void AddSegments(TObjArray *segments){
415 if(segments==NULL) return;
416 if(segments->GetEntries()==0) return;
417
418 for(int i=0;i<segments->GetEntries();i++){
419 EdbSegP *s = (EdbSegP *)segments->At(i);
420 EdbTrackP *t = new EdbTrackP(s);
421 t->SetCounters();
422 t->SetPlate(s->Plate());
423 AddTrack(t);
424 }
425 return;
426 }
427
429 if(IsTrack(s)) return (EdbTrackP*) s;
430 if(IsSegment(s)){
431 for(int i=0;i<eTracksBase->GetEntries();i++){
432 EdbTrackP *t = (EdbTrackP *) eTracksBase->At(i);
433 for(int j=0;j<t->N();j++) if(s==t->GetSegment(j)) return t;
434 }
435 }
436 return NULL;
437 }
438
439 int N() { return eTracks->GetEntries();}
440 int NBase() { return eTracksBase->GetEntries();}
441 EdbTrackP * GetTrack(int i){ return (EdbTrackP *) eTracks->At(i);}
442 EdbTrackP * GetTrackBase(int i){ return (EdbTrackP *) eTracksBase->At(i);}
443 bool IsMember(EdbTrackP *t) {return (eTracksBase->FindObject(t) != NULL) ? kTRUE : kFALSE;}
444
446 if(NBase()==0) return 0;
447 int iplup = 1000;
448 for(int i=0;i<NBase(); i++) {
449 int ipl= GetTrackBase(i)->GetSegmentFirst()->Plate();
450 if(ipl<iplup) iplup=ipl;
451 }
452 return iplup;
453 }
455 int ipldw = -1000;
456 for(int i=0;i<NBase(); i++) {
457 int ipl= GetTrackBase(i)->GetSegmentLast()->Plate();
458 if(ipl>ipldw) ipldw=ipl;
459 }
460 return ipldw;
461 }
462
463 void SetID(EdbID id) { eID=id;}
464 EdbID& GetID() {return eID;}
465// void SetRun(int run) { eRun = run;}
466// void SetVer(int ver) { eVer = ver;}
467// int GetRun() { return eRun;}
468// int GetVer() { return eVer;}
469
474
475 void AddComment(EdbTrackP *t, char *cmt){ eComments->Add(new EdbEDATrackComment(t,cmt));}
476 void ClearComments() {eComments->Clear();}
477 const char * GetComment(EdbTrackP *t) {
478 for(int i=0;i<eComments->GetEntries();i++){
480 if(cmt->GetTrack()==t) {
481 return cmt->GetComment();
482 }
483 }
484 return "";
485 }
486
487 void ReadFile(char *filename = NULL, int datatype = 100, TCut rcut = "1");
488 void ReadTracksTree (char *scanset_filename, TCut cut="1");
489 void ReadTracksTree (EdbID ID, TCut cut = "1"); // for EdbScanProc style
490 EdbDataProc *ReadLinkedTracks (char *lnkdef="lnk.def", TCut cut = "1"); // for EdbDataProc style
491 EdbDataProc *ReadLinkedTracksFile (char *filename="linked_tracks.root", TCut cut = "1"); // for EdbDataProc style
492 EdbDataProc *ReadLinkedTracks (EdbDataProc *dproc); // for EdbDataProc style. expect EdbDataProc after InitVolume.
493
494 void ReadPredictionScan(int BRICK, int SBVERSION, int RUN_PRED, int UseMicrotrack=0); // for EdbDataProc style.
495 void ReadPredictionScan(EdbID id, bool force_update_setroot=0); // for EdbScanProc style
496 void ReadPredictionScan(EdbScanSet *ss); // for EdbScanProc style
497 void ReadTextTracks(char *filename = NULL);
498 void ReadMxxFile(char *filename);
499 void ReadListFile (char *filename = NULL, bool clear_previous=kTRUE);
500 char *WriteListFile (char *filename = NULL, bool append = kFALSE, bool open_editor = kFALSE);
501
502 void DoVertexing(EdbVertexRec *VR = NULL, int ntrkcut = 3);
504
505 void SetTracksVertex(EdbVertex *v, bool clear_previous = kTRUE){
507 if(clear_previous) ClearTracks();
508 for(int j=0 ; j < v->N() ; j++){
509 EdbTrackP *t = v->GetTrack(j);
510 if(t==NULL) continue;
511 SetTrack(t);
512 }
513 }
514
515 void SetTracksVertices(TObjArray *vertices, bool clear_previous = kTRUE){
517 printf("Set Tracks for %d Vertices\n", vertices->GetEntries());
518 if(clear_previous) ClearTracks();
519 for(int i=0;i<vertices->GetEntries();i++){
520 EdbVertex *v = (EdbVertex *) vertices->At(i);
521 if(v==NULL) continue;
522 SetTracksVertex(v, kFALSE);
523 }
524 }
525
526 void SetExtendMode(int mode=kExtendAuto) { eExtendMode=mode;}
527 int GetExtendMode() { return eExtendMode;}
528 void SetInterpolation(int interpolation=kTRUE) { eInterpolation = interpolation;} // kTRUE: fill hole with dashed line.
529
531 int track_color = -1,
532 int track_width = 1,
533 double track_length = -1,
534 int layer_color = kYellow,
535 int layer_width = 2,
536 double layer_length = 150,
537 int layer_color_MT = kCyan){
538 // set track attribute. -1 means automatic setting.
539 eTrackColor = track_color;
540 eTrackWidth = track_width;
541 eTrackLength = track_length;
542 eLayerColor = layer_color;
543 eLayerWidth = layer_width>track_width? layer_width: track_width+1;
544 eLayerLength = layer_length;
545 }
546
547 void GetTrackAttribute( int *track_color , int *track_width, double *track_length, int *layer_color, int *layer_width, double *layer_length, int *layer_color_MT){
548 *track_color = eTrackColor ;
549 *track_width = eTrackWidth ;
550 *track_length = eTrackLength;
551 *layer_color = eLayerColor ;
552 *layer_width = eLayerWidth ;
553 *layer_length = eLayerLength;
554 *layer_color_MT = eLayerColorMT;
555 }
556 void SetLayerLength(double length) { eLayerLength=length;}
557
559 void SetColorMode(int mode);
560
561 int GetTrackColor (EdbSegP *s);
563 double GetTrackLength(EdbSegP *s, int updown = 1); // up = -1, down = 1
564
565 int GetLayerColor (EdbSegP *s){ return s->Side()==0?eLayerColor:eLayerColorMT;}
566 int GetLayerWidth (EdbSegP *s){ return eLayerWidth;}//eLayerWidth>=0 ? eLayerWidth : (int)s->W()/10+1;}
568
569
570 void SetTextAttribute(int size=14, int color=kWhite, int fontfile=4){
571 eTextSize = size;
572 eTextColor = color;
573 eTextFont = fontfile;
574 }
575
576 int GetTextColor() { return eTextColor;}
577 int GetTextSize () { return eTextSize;}
578 int GetTextFont () { return eTextFont;}
579
580 void SetTextPosition (int pos) { eTextPosition = pos;}
582
583 void SetDraw(bool b=kTRUE) { eDraw = b;} // Setting Draw or not.
584 bool GetDraw() { return eDraw;}
585 void SetDrawMT (bool b=kTRUE) { eDrawMT = b;} // Setting Draw or not.
586 bool GetDrawMT() { return eDrawMT;}
587 void SetDrawTrackID (bool draw) { eDrawTrackID = draw;}
588 void SetDrawTrackAngle(bool draw) { eDrawTrackAngle = draw;}
589 void SetDrawTrackIDG (bool draw) { eDrawTrackIDG = draw;}
590 void SetDrawTrackAngleG(bool draw) { eDrawTrackAngleG = draw;}
591 bool GetDrawTrackID () { return eDrawTrackID;}
593
594
595 void Draw(int redraw=kFALSE);
597 void DrawSingleSegment(EdbSegP *s, char *elname, TEveCompound *cmp = NULL, int extendup = 1, int extenddown = 1);
599
600 // Area related
603 void SetDrawAreaSet(bool draw = kTRUE) { eAreaSet->SetDraw(draw);}
604
605 ClassDef(EdbEDATrackSet,0) // Track Set
606};
607
609 private:
611
613
614 TGNumberEntryField *fBrick;
615 TGNumberEntryField *fRun;
616 TGNumberEntryField *fVer;
617 TGTextButton *fPredScan;
618 TGTextButton *fReadText;
619 TGCheckButton *fColorAuto;
620 TGCheckButton *fReadMicro;
621 TGCheckButton *fTrackID;
622 TGCheckButton *fTrackAngle;
623 TGComboBox *fTrackSet;
624 TGColorSelect *fTrackColor;
625 TGLineWidthComboBox *fTrackWidth;
626 TGColorSelect *fLayerColor;
627 TGLineWidthComboBox *fLayerWidth;
628 TGNumberEntryField *fLayerLength;
629 TGComboBox *fExtendMode;
630 TGComboBox *fFontSize;
631 TGComboBox *fFontFile;
632 TGColorSelect *fFontColor;
633 TGMainFrame *fFontWindow;
634 TGTextButton *fScanID;
635
636 TGLabel *fDataText;
637
638 public:
639 EdbEDATrackSetTab(void);
640 void Select(int id) {fTrackSet->Select(id, kTRUE);}
641 void Selected(const char *txt);
643 void Enable(bool b=kTRUE) {eEnable = b;}
644 void Update();
645 void ToggleAuto(bool b) { fTrackColor->Enable(!b); Update();}
646 void ReadPredictionScan();
647 void ReadTextTracks();
648 void ReadFile();
649 void ClearTracks();
650 void MakeFontWindow();
651 void CloseFontWindow();
652 void SetFont();
653 void ChangeScanID();
654};
655
656
657#endif // __EDA_TRACKSET_H__
graph SetName("Graph")
EdbDataProc * dset
Definition: RecDispEX.C:9
const char filename[256]
Definition: RecDispNU.C:83
Expr< UnaryOp< Fabs< T >, Expr< A, T, D >, T >, T, D > fabs(const Expr< A, T, D > &rhs)
Definition: UnaryOperators.hh:96
emulsion data processing
Definition: EdbDataSet.h:181
OPERA emulsion data set.
Definition: EdbDataSet.h:144
Definition: EdbEDASets.h:55
void SetAreas(EdbPVRec *pvr)
void SetDraw(bool draw)
Definition: EdbEDASets.h:106
void Clear()
Definition: EdbEDASets.h:137
Definition: EdbEDATrackSet.h:9
const char * GetComment()
Definition: EdbEDATrackSet.h:19
TString * eComment
Definition: EdbEDATrackSet.h:11
EdbTrackP * eTrack
Definition: EdbEDATrackSet.h:12
EdbEDATrackComment(EdbTrackP *t, char *cmt)
Definition: EdbEDATrackSet.h:15
EdbTrackP * GetTrack()
Definition: EdbEDATrackSet.h:18
Definition: EdbEDATrackSet.h:37
double GetPHDTRMS()
Definition: EdbEDATrackSet.h:116
double eTY
Definition: EdbEDATrackSet.h:50
int SideOut(EdbTrackP *t)
Definition: EdbEDATrackSet.C:48
EdbRunTracking eRunTracking
Run Tracking for microtrack search.
Definition: EdbEDATrackSet.h:62
int eNeighborSearch
Definition: EdbEDATrackSet.h:41
void SetImpactSearch(bool b=kTRUE, EdbVertex *v=NULL)
Definition: EdbEDATrackSet.h:94
TObjArray * eSelected
Definition: EdbEDATrackSet.h:57
double ePHCut
Definition: EdbEDATrackSet.h:53
void SetSideOut(bool b=kTRUE)
Definition: EdbEDATrackSet.h:100
int ImpactSearch(EdbTrackP *t)
EdbEDATrackSelection()
Definition: EdbEDATrackSet.h:64
double eTolDX
Definition: EdbEDATrackSet.h:46
void Reset()
Definition: EdbEDATrackSet.h:67
void SetNeighborSearch(bool b=kTRUE, TObjArray *selected=NULL, double dzup=-1, double dzdown=-1)
Definition: EdbEDATrackSet.h:95
int eImpactSearch
Definition: EdbEDATrackSet.h:42
int GetNsegCut()
Definition: EdbEDATrackSet.h:114
int ePlateUp
Definition: EdbEDATrackSet.h:39
double eTolDTY
Definition: EdbEDATrackSet.h:48
int eAngularCut
Definition: EdbEDATrackSet.h:43
void SetAngle(double tx, double ty)
Definition: EdbEDATrackSet.h:105
void SetCondBTDefault(EdbScanCond &cond)
Definition: EdbEDATrackSet.h:159
void SetDT(double dtx, double dty=-1)
Definition: EdbEDATrackSet.h:104
int eClearPrevious
Definition: EdbEDATrackSet.h:52
double eNeighborDzDown
Definition: EdbEDATrackSet.h:56
void SetDX(double dx)
Definition: EdbEDATrackSet.h:103
int eNsegCut
Definition: EdbEDATrackSet.h:38
int eSideOut
Definition: EdbEDATrackSet.h:44
int GetSideOutPlate()
Definition: EdbEDATrackSet.h:117
void SetRunTracking(EdbRunTracking &rt)
Definition: EdbEDATrackSet.h:121
int GetUpstreamPlate()
Definition: EdbEDATrackSet.h:113
void SetCondMTDefault(EdbScanCond &cond)
Definition: EdbEDATrackSet.h:147
void DoSelection(TObjArray *tracksbase, TObjArray *tracks)
Definition: EdbEDATrackSet.C:126
EdbRunTracking & GetRunTracking()
Definition: EdbEDATrackSet.h:122
double ePHDTRMS
Definition: EdbEDATrackSet.h:54
double GetPHCut()
Definition: EdbEDATrackSet.h:115
int ePlateDown
Definition: EdbEDATrackSet.h:40
void SetClearPrevious(bool b=kTRUE)
Definition: EdbEDATrackSet.h:106
EdbVertex * eVertex
Definition: EdbEDATrackSet.h:61
double eTolDTX
Definition: EdbEDATrackSet.h:47
void SetSideOutPlate(int npl)
Definition: EdbEDATrackSet.h:101
void SetCondTrackingDefault()
Definition: EdbEDATrackSet.h:124
int eSideOutPlate
Definition: EdbEDATrackSet.h:45
void SetUpstreamPlate(int ipl)
Definition: EdbEDATrackSet.h:92
void SetNsegCut(int nseg)
Definition: EdbEDATrackSet.h:91
double eNeighborDzUp
Definition: EdbEDATrackSet.h:55
void SetPHCut(double phcut=0.0)
Definition: EdbEDATrackSet.h:107
int Neighborhood(EdbSegP *s, double *dmin=NULL)
Definition: EdbEDATrackSet.C:20
bool GetImpactSearch()
Definition: EdbEDATrackSet.h:109
void SetPHDTRMS(double slope)
Definition: EdbEDATrackSet.h:108
double eTX
Definition: EdbEDATrackSet.h:49
void SetAngularCut(bool b=kTRUE)
Definition: EdbEDATrackSet.h:102
virtual ~EdbEDATrackSelection()
Definition: EdbEDATrackSet.h:65
Definition: EdbEDATrackSet.h:608
TGColorSelect * fTrackColor
Definition: EdbEDATrackSet.h:624
void ReadPredictionScan()
Definition: EdbEDATrackSet.C:1897
TGLabel * fDataText
Definition: EdbEDATrackSet.h:636
TGNumberEntryField * fLayerLength
Definition: EdbEDATrackSet.h:628
void ToggleAuto(bool b)
Definition: EdbEDATrackSet.h:645
TGCheckButton * fTrackID
Definition: EdbEDATrackSet.h:621
TGMainFrame * fFontWindow
Definition: EdbEDATrackSet.h:633
TGComboBox * fExtendMode
Definition: EdbEDATrackSet.h:629
void Enable(bool b=kTRUE)
Definition: EdbEDATrackSet.h:643
void MakeFontWindow()
Definition: EdbEDATrackSet.C:1730
void Selected(const char *txt)
Definition: EdbEDATrackSet.C:1822
void ReadTextTracks()
Definition: EdbEDATrackSet.C:1923
TGComboBox * fFontFile
Definition: EdbEDATrackSet.h:631
bool eEnable
Definition: EdbEDATrackSet.h:610
void ClearTracks()
Definition: EdbEDATrackSet.C:1935
TGComboBox * fTrackSet
Definition: EdbEDATrackSet.h:623
void SetFont()
Definition: EdbEDATrackSet.C:1807
TGCheckButton * fReadMicro
Definition: EdbEDATrackSet.h:620
TGTextButton * fReadText
Definition: EdbEDATrackSet.h:618
TGLineWidthComboBox * fTrackWidth
Definition: EdbEDATrackSet.h:625
void SetAttributeGUIs(EdbEDATrackSet *set)
Definition: EdbEDATrackSet.C:1851
void Select(int id)
Definition: EdbEDATrackSet.h:640
void CloseFontWindow()
Definition: EdbEDATrackSet.C:1724
TGCheckButton * fTrackAngle
Definition: EdbEDATrackSet.h:622
TGCheckButton * fColorAuto
Definition: EdbEDATrackSet.h:619
TGComboBox * fFontSize
Definition: EdbEDATrackSet.h:630
TGTextButton * fScanID
Label to indicate scan id.
Definition: EdbEDATrackSet.h:634
TGLineWidthComboBox * fLayerWidth
Definition: EdbEDATrackSet.h:627
TGColorSelect * fLayerColor
Definition: EdbEDATrackSet.h:626
TGNumberEntryField * fBrick
Definition: EdbEDATrackSet.h:614
void Update()
Definition: EdbEDATrackSet.C:1830
void ChangeScanID()
Definition: EdbEDATrackSet.C:1539
TGNumberEntryField * fVer
Definition: EdbEDATrackSet.h:616
TGColorSelect * fFontColor
Definition: EdbEDATrackSet.h:632
TGTextButton * fPredScan
Definition: EdbEDATrackSet.h:617
TGNumberEntryField * fRun
Definition: EdbEDATrackSet.h:615
void ReadFile()
Definition: EdbEDATrackSet.C:1929
EdbEDATrackSet * eSet
Definition: EdbEDATrackSet.h:612
EdbEDATrackSetTab(void)
Definition: EdbEDATrackSet.C:1545
Definition: EdbEDATrackSet.h:178
EdbTrackP * SearchSegment(int ipl, int iseg)
Definition: EdbEDATrackSet.C:1198
bool eDrawTrackID
control of Track ID drawing
Definition: EdbEDATrackSet.h:204
int GetTextPosition()
Definition: EdbEDATrackSet.h:581
bool IsMember(EdbTrackP *t)
Definition: EdbEDATrackSet.h:443
bool GetDrawTrackAngle()
Definition: EdbEDATrackSet.h:592
void SetPVRec(EdbPVRec *pvr)
Definition: EdbEDATrackSet.h:321
void SetTrackAttribute(int track_color=-1, int track_width=1, double track_length=-1, int layer_color=kYellow, int layer_width=2, double layer_length=150, int layer_color_MT=kCyan)
Definition: EdbEDATrackSet.h:530
int N()
Definition: EdbEDATrackSet.h:439
EdbID & GetID()
Definition: EdbEDATrackSet.h:464
void DrawSingleSegment(EdbSegP *s, char *elname, TEveCompound *cmp=NULL, int extendup=1, int extenddown=1)
Definition: EdbEDATrackSet.C:290
int GetExtendMode()
Definition: EdbEDATrackSet.h:527
void DoVertexing(EdbVertexRec *VR=NULL, int ntrkcut=3)
Definition: EdbEDATrackSet.C:561
void RemoveTrack(EdbTrackP *t)
Definition: EdbEDATrackSet.h:324
int eTextColor
Definition: EdbEDATrackSet.h:195
TObjArray * GetTracks()
Definition: EdbEDATrackSet.h:310
int eTrackWidth
Definition: EdbEDATrackSet.h:188
EdbTrackP * FindTrack(EdbTrackP *t)
Definition: EdbEDATrackSet.h:388
EdbTrackP * SearchTrack(int itrk)
Definition: EdbEDATrackSet.h:365
void AddComment(EdbTrackP *t, char *cmt)
Definition: EdbEDATrackSet.h:475
void ClearTracks(void)
Definition: EdbEDATrackSet.h:327
double GetLayerLength(EdbSegP *s)
Definition: EdbEDATrackSet.h:567
bool eDrawTrackAngle
control of Track Angle drawing.
Definition: EdbEDATrackSet.h:206
void RemoveTracks(TObjArray *tracks)
Definition: EdbEDATrackSet.h:325
EdbPVRec * ePVR
pointer for original EdbPVRec. tracks are copied to eTracksBase through AddTracksPVR().
Definition: EdbEDATrackSet.h:212
void SetDataSet(EdbDataSet *dset)
Definition: EdbEDATrackSet.h:472
int MicroTrackSearch(EdbTrackP *t, EdbSegP *pred, int ipl)
Definition: EdbEDATrackSet.C:1355
EdbTrackP * FindTrack(EdbSegP *s, double dx=10, double dt=0.02)
Definition: EdbEDATrackSet.h:369
int eLayerColorMT
Definition: EdbEDATrackSet.h:200
int eTextFont
Definition: EdbEDATrackSet.h:197
EdbTrackP * GetTrackBase(int i)
Definition: EdbEDATrackSet.h:442
@ kTop
Definition: EdbEDATrackSet.h:226
@ kMiddle
Definition: EdbEDATrackSet.h:226
@ kEnd
Definition: EdbEDATrackSet.h:226
int GetLayerWidth(EdbSegP *s)
Definition: EdbEDATrackSet.h:566
void RemoveTrackBase(EdbTrackP *t)
Definition: EdbEDATrackSet.h:323
int eExtendMode
Definition: EdbEDATrackSet.h:209
bool eDrawTrackIDG
Global control of Track ID drawing by Main tab.
Definition: EdbEDATrackSet.h:205
void DrawSingleTrack(EdbTrackP *t)
Definition: EdbEDATrackSet.C:351
EdbTrackP * SearchCorrespondTrack(EdbTrackP *t)
Definition: EdbEDATrackSet.C:541
int eTextPosition
Definition: EdbEDATrackSet.h:198
bool eDrawMT
control of drawing microtrack
Definition: EdbEDATrackSet.h:203
int eInterpolation
Definition: EdbEDATrackSet.h:210
void Print()
Definition: EdbEDATrackSet.h:258
bool GetDrawMT()
Definition: EdbEDATrackSet.h:586
EdbDataProc * ReadLinkedTracks(char *lnkdef="lnk.def", TCut cut="1")
Definition: EdbEDATrackSet.C:717
double eTrackLength
Definition: EdbEDATrackSet.h:189
void ReadPredictionScan(int BRICK, int SBVERSION, int RUN_PRED, int UseMicrotrack=0)
Definition: EdbEDATrackSet.C:777
void SetDrawTrackIDG(bool draw)
Definition: EdbEDATrackSet.h:589
bool eDraw
control of drawing
Definition: EdbEDATrackSet.h:202
EdbDataSet * GetDataSet()
Definition: EdbEDATrackSet.h:473
void SetTracksVertex(EdbVertex *v, bool clear_previous=kTRUE)
Definition: EdbEDATrackSet.h:505
int GetTrackWidth(EdbSegP *s)
Definition: EdbEDATrackSet.h:562
int NBase()
Definition: EdbEDATrackSet.h:440
TObjArray * eTracks
array of tracks to be drawn
Definition: EdbEDATrackSet.h:216
int GetTrackColor(EdbSegP *s)
Definition: EdbEDATrackSet.C:247
EdbScanSet * GetScanSet()
Definition: EdbEDATrackSet.h:471
void AddSegments(TObjArray *segments)
Definition: EdbEDATrackSet.h:414
void RestorePrevious(void)
Definition: EdbEDATrackSet.h:351
void ClearComments()
Definition: EdbEDATrackSet.h:476
int GetLayerColor(EdbSegP *s)
Definition: EdbEDATrackSet.h:565
void ReadFile(char *filename=NULL, int datatype=100, TCut rcut="1")
Definition: EdbEDATrackSet.C:592
void SetTrack(EdbTrackP *t)
Definition: EdbEDATrackSet.h:288
void SetTextPosition(int pos)
Definition: EdbEDATrackSet.h:580
int eTrackColor
Definition: EdbEDATrackSet.h:187
EdbPVRec * GetPVRec()
Definition: EdbEDATrackSet.h:320
void AddTrack(EdbTrackP *t)
Definition: EdbEDATrackSet.h:277
EdbEDAAreaSet * GetAreaSet()
Definition: EdbEDATrackSet.h:602
void DoSelection()
Definition: EdbEDATrackSet.h:503
void SetDrawTrackAngle(bool draw)
Definition: EdbEDATrackSet.h:588
void ResetTrackAttribute(void)
Definition: EdbEDATrackSet.h:558
void StorePrevious()
Definition: EdbEDATrackSet.h:356
void SetTextAttribute(int size=14, int color=kWhite, int fontfile=4)
Definition: EdbEDATrackSet.h:570
int eLayerColor
Definition: EdbEDATrackSet.h:191
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
double eLayerLength
Definition: EdbEDATrackSet.h:193
int GetTextColor()
Definition: EdbEDATrackSet.h:576
int eTextSize
Definition: EdbEDATrackSet.h:196
void ClearTracksBase(void)
Definition: EdbEDATrackSet.h:331
TObjArray * eTracksBase
array of tracks, base of track search
Definition: EdbEDATrackSet.h:217
void ReadMxxFile(char *filename)
Definition: EdbEDATrackSet.C:1046
int FindDownstreamPlate()
Definition: EdbEDATrackSet.h:454
EdbScanSet * eScanSet
Definition: EdbEDATrackSet.h:214
void AddTracks(TObjArray *arr)
Definition: EdbEDATrackSet.h:282
void SetAreaSet(EdbEDAAreaSet *set)
Definition: EdbEDATrackSet.h:601
const char * GetComment(EdbTrackP *t)
Definition: EdbEDATrackSet.h:477
void SetLayerLength(double length)
Definition: EdbEDATrackSet.h:556
int FindUpstreamPlate()
Definition: EdbEDATrackSet.h:445
EdbTrackP * GetTrack(EdbSegP *s)
Definition: EdbEDATrackSet.h:428
EdbID eID
Definition: EdbEDATrackSet.h:184
void AddTracksBase(TObjArray *tracksbase)
Definition: EdbEDATrackSet.h:269
TObjArray * eComments
Definition: EdbEDATrackSet.h:220
EdbEDATrackSet(char *title, TObjArray *EdbTrackPArray=NULL)
Definition: EdbEDATrackSet.h:228
void ReadListFile(char *filename=NULL, bool clear_previous=kTRUE)
Definition: EdbEDATrackSet.C:1052
void SetTracksVertices(TObjArray *vertices, bool clear_previous=kTRUE)
Definition: EdbEDATrackSet.h:515
int eLayerWidth
Definition: EdbEDATrackSet.h:192
void AddTracksPVR(EdbPVRec *pvr)
Definition: EdbEDATrackSet.h:312
int GetTextSize()
Definition: EdbEDATrackSet.h:577
void ReadTracksTree(char *scanset_filename, TCut cut="1")
Definition: EdbEDATrackSet.C:666
bool eDrawTrackAngleG
Global control of Track angle drawing by Main tab.
Definition: EdbEDATrackSet.h:207
void SetID(EdbID id)
Definition: EdbEDATrackSet.h:463
void SetTracksBase(TObjArray *tracksbase)
Definition: EdbEDATrackSet.h:265
void SetTrack(int itrack)
Definition: EdbEDATrackSet.h:295
void GetTrackAttribute(int *track_color, int *track_width, double *track_length, int *layer_color, int *layer_width, double *layer_length, int *layer_color_MT)
Definition: EdbEDATrackSet.h:547
int PrepareScanSetForMT()
Definition: EdbEDATrackSet.C:1307
void Clear()
Definition: EdbEDATrackSet.h:336
int eColorMode
Definition: EdbEDATrackSet.h:186
void SetDraw(bool b=kTRUE)
Definition: EdbEDATrackSet.h:583
void SetTracksAll(void)
Definition: EdbEDATrackSet.h:341
void Draw(int redraw=kFALSE)
Definition: EdbEDATrackSet.C:519
int GetTextFont()
Definition: EdbEDATrackSet.h:578
void SetColorMode(int mode)
Definition: EdbEDATrackSet.C:276
void SetDrawAreaSet(bool draw=kTRUE)
Definition: EdbEDATrackSet.h:603
char * WriteListFile(char *filename=NULL, bool append=kFALSE, bool open_editor=kFALSE)
Definition: EdbEDATrackSet.C:1138
void SetExtendMode(int mode=kExtendAuto)
Definition: EdbEDATrackSet.h:526
void SetScanSet(EdbScanSet *ss)
Definition: EdbEDATrackSet.h:470
void ReadTextTracks(char *filename=NULL)
Definition: EdbEDATrackSet.C:918
EdbTrackP * GetTrack(int i)
Definition: EdbEDATrackSet.h:441
EdbDataSet * eDataSet
Definition: EdbEDATrackSet.h:213
TObjArray * GetTracksBase()
Definition: EdbEDATrackSet.h:275
void SetInterpolation(int interpolation=kTRUE)
Definition: EdbEDATrackSet.h:528
bool GetDrawTrackID()
Definition: EdbEDATrackSet.h:591
TObjArray * eTracksPrevious
previous array of tracks
Definition: EdbEDATrackSet.h:218
void SetDrawTrackID(bool draw)
Definition: EdbEDATrackSet.h:587
double GetTrackLength(EdbSegP *s, int updown=1)
Definition: EdbEDATrackSet.C:202
EdbEDAAreaSet * eAreaSet
Definition: EdbEDATrackSet.h:222
void SetDrawMT(bool b=kTRUE)
Definition: EdbEDATrackSet.h:585
void SetTracksNseg(int nsegcut=3)
Definition: EdbEDATrackSet.h:342
EdbDataProc * ReadLinkedTracksFile(char *filename="linked_tracks.root", TCut cut="1")
Definition: EdbEDATrackSet.C:689
void DrawSingleComment(EdbEDATrackComment *tcmt)
Definition: EdbEDATrackSet.C:481
bool GetDraw()
Definition: EdbEDATrackSet.h:584
Definition: EdbID.h:7
Definition: EdbPVRec.h:148
TObjArray * eTracks
Definition: EdbPVRec.h:161
helper class for access to the run data
Definition: EdbRunTracking.h:19
Float_t ePulsMinDegradBT
(0)
Definition: EdbRunTracking.h:45
Float_t ePulsMinBT
(18)
Definition: EdbRunTracking.h:38
Float_t eDeltaR
(20)
Definition: EdbRunTracking.h:34
EdbScanCond eCondMT
conditions for microtracks
Definition: EdbRunTracking.h:23
Float_t ePreliminaryPulsMinMT
(6) _ preliminary cuts to microtracks candidates for
Definition: EdbRunTracking.h:28
Float_t eChi2MaxMT
(1.6) maximum chi2 accepted between prediction and microtrack candidates
Definition: EdbRunTracking.h:46
Float_t eDeltaRview
(400)
Definition: EdbRunTracking.h:26
Float_t ePreliminaryChi2MaxMT
(1.6) / microtracks and basetracks selection
Definition: EdbRunTracking.h:29
Float_t ePulsMinMT
(10) mimimal number of grains accepted to select microtracks
Definition: EdbRunTracking.h:44
Float_t eDegradSlope
SigmaTX = SigmaTX(0) + degradSlope * bth.
Definition: EdbRunTracking.h:57
EdbScanCond eCondBT
conditions for basetracks
Definition: EdbRunTracking.h:24
Float_t eChi2MaxBT
(1.5) maximum chi2 accepted between prediction and basetrack candidates
Definition: EdbRunTracking.h:40
bool ePredictionScan
if true use GetPatternDataForPrediction( spred.ID(), side, pat ); in FindCandidates (default is false...
Definition: EdbRunTracking.h:62
Float_t eDegradPos
SigmaX = SigmaX(0) + degradPos * mth.
Definition: EdbRunTracking.h:56
Float_t ePulsMinDegradMT
(0)
Definition: EdbRunTracking.h:39
Float_t eDeltaTheta
(0.15) slope acceptance
Definition: EdbRunTracking.h:27
Definition: EdbScanCond.h:10
void SetPulsRamp0(float p1, float p2)
Definition: EdbScanCond.h:74
void SetChi2Max(float chi2)
Definition: EdbScanCond.h:83
void SetDegrad(float d)
Definition: EdbScanCond.h:71
void SetSigma0(float x, float y, float tx, float ty)
Definition: EdbScanCond.h:62
void SetBins(float bx, float by, float btx, float bty)
Definition: EdbScanCond.h:65
void SetPulsRamp04(float p1, float p2)
Definition: EdbScanCond.h:75
void SetRadX0(float x0)
Definition: EdbScanCond.h:57
void SetChi2PMax(float chi2)
Definition: EdbScanCond.h:84
Definition: EdbScanSet.h:11
Definition: EdbSegP.h:21
Int_t Plate() const
Definition: EdbSegP.h:159
Definition: EdbPattern.h:113
Int_t N() const
Definition: EdbPattern.h:177
EdbSegP * GetSegment(int i) const
Definition: EdbPattern.h:195
EdbSegP * GetSegmentLast() const
Definition: EdbPattern.h:190
EdbSegP * GetSegmentFirst() const
Definition: EdbPattern.h:189
Definition: EdbVertex.h:194
Definition: EdbVertex.h:69
Int_t N() const
Definition: EdbVertex.h:121
EdbTrackP * GetTrack(int i)
Definition: EdbVertex.h:141
EdbScanSet * set
Definition: emtraceback.cpp:14
TTree * t
Definition: check_shower.C:4
TCut cut
Definition: check_shower.C:6
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
Definition: EDACint.cxx:53
@ kCOLOR_BY_PH
Definition: EdbEDAUtil.h:82
int IsTrack(TObject *o)
Definition: EdbEDAUtil.C:17
int IsSegment(TObject *o)
Definition: EdbEDAUtil.C:29
@ kExtendAuto
Definition: EdbEDAUtil.h:90
UInt_t id
Definition: tlg2couples.C:117
#define NULL
Definition: nidaqmx.h:84
Definition: RecDispMC.C:95