FEDRA emulsion software from the OPERA Collaboration
EdbEDA Class Reference

#include <EdbEDA.h>

Inheritance diagram for EdbEDA:
Collaboration diagram for EdbEDA:

Public Member Functions

void AddDrawObject (EdbEDAObject *o)
 
EdbEDATrackSetAddTrackSet (const char *name)
 
void AddVertex (EdbVertex *v)
 
EdbTrackPCheckScanback (EdbTrackP *t)
 
 ClassDef (EdbEDA, 0)
 
void ClearDrawObjects ()
 
void ClearVertices ()
 
EdbEDATrackSetCreateTrackSet (const char *name)
 
void Draw (int redraw=kFALSE)
 
void DrawVertices (int redraw=0)
 
 EdbEDA (const char *filename=NULL, int datatype=100, TCut rcut="1", bool auto_run=kTRUE)
 
 EdbEDA (EdbDataProc *dproc)
 
 EdbEDA (EdbID IDCalib, const char *ProcDirClient=NULL)
 
 EdbEDA (EdbPVRec *pvr, bool autorun=1)
 
 EdbEDA (EdbScanSet *ss, const char *ProcDirClient=NULL)
 
TObjArray * GetCurrentTracks (void)
 
EdbEDAObjectGetDrawObject (int i)
 
EdbEDADecaySearchTabGetDSTab ()
 
TEveElement * GetEveElement (TObject *t)
 
EdbEDAExtentionSetGetExtentionSet ()
 
EdbEDAMainTabGetMainTab ()
 
EdbEDAOperationTabGetOperationTab ()
 
EdbEDAPlotTabGetPlotTab ()
 
double GetScaleZ ()
 
EdbTrackPGetTrack (EdbSegP *s)
 
EdbEDATrackSetGetTrackSet (const char *name)
 
EdbEDATrackSetGetTrackSet (EdbID &ID)
 
EdbEDATrackSetGetTrackSet (EdbTrackP *t)
 
EdbEDATrackSetGetTrackSet (int i)
 
TObjArray * GetTrackSets ()
 
EdbEDATrackSetTabGetTrackSetTab ()
 
EdbEDAVertexSetGetVertexSet ()
 
EdbEDAVertexTabGetVertexTab ()
 
TObjArray * GetVertices ()
 
void Init (void)
 
bool Japanese ()
 
int NDrawObjects ()
 
int NTrackSets ()
 
void OpenFile (const char *filename=NULL, int datatype=100, TCut rcut="1")
 
EdbDataProcPVRec2DataProc (EdbPVRec *pvr)
 
void Redraw ()
 
void RemoveDrawObject (TObject *o)
 
void RemoveSelected ()
 
void RemoveTrack (EdbTrackP *t)
 
void RemoveTrackBase (EdbTrackP *t)
 
void Reset ()
 
void RestorePrevious ()
 
void Run ()
 
EdbScanProcScanProc ()
 
void SetBrick (int ibrick)
 
void SetColorMode (int mode)
 
void SetDrawAreaSet (bool draw)
 
void SetDrawTrackAngle (bool draw)
 
void SetDrawTrackID (bool draw)
 
void SetJapanese (bool b=kTRUE)
 
void SetLayerLength (double layer_length)
 
void SetOnlySelected ()
 
void SetScaleZ (double scale)
 
void StorePrevious ()
 
void UpdateScene ()
 
- Public Member Functions inherited from EdbEDACamera
void Animation ()
 
 EdbEDACamera ()
 
TGLViewer * GetGLViewer ()
 
EdbEDAOverlayGetOverlay ()
 
void SaveAnimation (const char *filename=NULL, int n=100, int interval=10)
 
void SavePictures ()
 
void SetAnimationMode ()
 
void SetCamera (int projection=Y)
 
EdbEDAOverlaySetOverlay ()
 
void Snapshot (const char *filename=NULL)
 
void StartAnimation ()
 
void StopAnimation ()
 
virtual ~EdbEDACamera ()
 
- Public Member Functions inherited from EdbEDAIO
 EdbEDAIO ()
 
EdbPatternGetPatternIPL (int pid)
 
int IdMuon (const char *filename="../cs_info.txt")
 
void OpenTextEditor (const char *filename)
 
EdbPatternReadCouples (int ipl, EdbPattern *pat=NULL)
 
EdbPatternReadCouplesPID (int pid, EdbPattern *pat=NULL)
 
void ReadFeedbackFile (const char *filename=NULL)
 
EdbVertexReadFeedbackFile2008 (const char *filename=NULL)
 
EdbPVRecReadFilteredText (const char *filename=NULL)
 
void WriteFeedbackFile (const char *filename=NULL)
 
void WriteFeedbackFile2008 (EdbVertex *v=NULL, const char *filename=NULL)
 
void WriteFilteredText (const char *filename=NULL)
 
virtual ~EdbEDAIO ()
 
- Public Member Functions inherited from EdbEDABrickData
 EdbEDABrickData ()
 
EdbAffine2DGetAffine (int ipl)
 
double GetBeamTX ()
 
double GetBeamTY ()
 
int GetBrick ()
 
EdbDataSetGetDataSet ()
 
int GetDataType ()
 
int GetFirstPlate ()
 
EdbID GetID ()
 
int GetIPL (int PID)
 
int GetIPLZ (float z)
 
int GetLastPlate ()
 
int GetNPL ()
 
int GetPID (int ipl)
 
int GetPlateDown ()
 
int GetPlateUp ()
 
EdbPVRecGetPVR ()
 
EdbScanSetGetScanSet ()
 
double GetZ (int ipl)
 
double GetZPID (int pid)
 
void SetBeamAngle (double tx, double ty)
 
void SetBrick (int ibrick)
 
void SetDataType (int datatype)
 
void SetID (EdbID id)
 
void SetIDSB (EdbID id)
 
void SetIDSF (EdbID id)
 
void SetPVR (EdbPVRec *pvr)
 
void SetScanSet (EdbScanSet *ss)
 
virtual ~EdbEDABrickData ()
 
- Public Member Functions inherited from EdbEDASelection
void Added (TEveElement *el)
 
void Cleared ()
 
void ClearSelected ()
 
void ClearSelectedVertex ()
 
int Disable (int force=kFALSE)
 
 EdbEDASelection ()
 
int Enable (int force=kFALSE)
 
EdbSegPGetSelected (int i)
 
TObjArray * GetSelected (void)
 
TEveElement * GetSelectedElement ()
 
EdbSegPGetSelectedSegment (int i=-1)
 
EdbTrackPGetSelectedTrack (EdbSegP *s)
 
EdbTrackPGetSelectedTrack (int i=-1)
 
TObjArray * GetSelectedTracks (void)
 
EdbVertexGetSelectedVertex (void)
 
EdbTrackPGetTrack (TEveElement *e)
 
void InitSelection (TEveSelection *sel)
 
int NSelected ()
 
int NSelectedTracks ()
 
void Removed (TEveElement *el)
 
void SelectAll ()
 
TObjArray * SetSelected (TObjArray *selected=NULL)
 
void SetSelectedTracks (TObjArray *arr)
 
void SetSelectedVertex (EdbVertex *v)
 
void SetSelection (TObjArray *selected=NULL)
 
virtual ~EdbEDASelection ()
 

Private Attributes

TObjArray * eDrawObjects
 
EdbEDADecaySearchTabeDSTab
 
TEveEventManager * eEvent
 
EdbEDAExtentionSeteExt
 
bool eJapanese
 
EdbEDAMainTabeMainTab
 
EdbEDAOperationTabeOperationTab
 
EdbEDAPlotTabePlotTab
 
double eScaleZ
 
EdbEDASelectioneSel
 
EdbEDATrackSeteSetTracks
 
TObjArray * eTrackSets
 
EdbEDATrackSetTabeTrackSetTab
 
EdbEDAVertexSeteVertexSet
 
EdbEDAVertexTabeVertexTab
 

Additional Inherited Members

- Public Types inherited from EdbEDACamera
enum  { X , Y , Z , B }
 
- Public Types inherited from EdbEDAIO
enum  OutputFileMode { kBern , kOtherLabs }
 
- Public Attributes inherited from EdbEDACamera
TGLViewer * eViewer
 
- Public Attributes inherited from EdbEDAIO
TCut eCutCP
 
int eOutputFileMode
 
- Public Attributes inherited from EdbEDABrickData
EdbDataSeteDataSet
 
int eDataType
 
int eFirstPlate
 
EdbID eID
 
EdbID eIDSB
 
EdbID eIDSF
 
int eLastPlate
 
EdbPVRecePVR
 
EdbScanProceScanProc
 
EdbScanSeteScanSet
 

Constructor & Destructor Documentation

◆ EdbEDA() [1/5]

EdbEDA::EdbEDA ( const char *  filename = NULL,
int  datatype = 100,
TCut  rcut = "1",
bool  auto_run = kTRUE 
)
inline
504  :
505  TNamed("EDA","Event Display and Analyser"){
506  // Constructor for EDA
507  // filename : filename for "LinkDef" or "*.set.root(ScanSet)" or "*.root(linked_track.root format)"
508  // datatype : only for "LinkDef". Data type for EdbDataProc::InitVolume(). put -1 for no InitVolume
509  // if datatype= 100 or 1000. linked tracks will be registred to "TS".
510  // rcut : Track selection when read.
511  // auto_run : Run automatically.
512  OpenFile(filename, datatype, rcut);
513  if(auto_run) Run();
514  }
void Run()
Definition: EdbEDA.C:1988
void OpenFile(const char *filename=NULL, int datatype=100, TCut rcut="1")
Definition: EdbEDA.C:2064
string filename
Definition: emthickness.cpp:34

◆ EdbEDA() [2/5]

EdbEDA::EdbEDA ( EdbID  IDCalib,
const char *  ProcDirClient = NULL 
)
inline
516  {
517  Init();
518  if(ProcDirClient!=NULL) eScanProc->eProcDirClient=ProcDirClient;
519  eID=IDCalib;
521  }
EdbScanSet * eScanSet
Definition: EdbEDA.h:205
EdbID eID
Definition: EdbEDA.h:201
EdbScanProc * eScanProc
Definition: EdbEDA.h:204
void Init(void)
Definition: EdbEDA.C:1943
TString eProcDirClient
Definition: EdbScanProc.h:14
EdbScanSet * ReadScanSet(EdbID id)
Definition: EdbScanProc.cxx:1521
#define NULL
Definition: nidaqmx.h:84

◆ EdbEDA() [3/5]

EdbEDA::EdbEDA ( EdbScanSet ss,
const char *  ProcDirClient = NULL 
)
inline
523  : 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  }
Definition: EdbID.h:7
Int_t ePlate
Definition: EdbID.h:11
ss
Definition: energy.C:62

◆ EdbEDA() [4/5]

EdbEDA::EdbEDA ( EdbDataProc dproc)
inline
531  : TNamed("EDA","Event Display and Analyser") {
532  Init();
534  GetTrackSet("TS")->AddTracksPVR(dproc->PVR());
535  GetTrackSet("TS")->SetNsegCut(3);
536  GetTrackSet("TS")->DoSelection();
537  }
EdbDataProc * dproc
Definition: check_vertex.C:13
EdbDataSet * GetDataSet()
Definition: EdbDataSet.h:196
EdbPVRec * PVR() const
Definition: EdbDataSet.h:197
EdbDataSet * eDataSet
Definition: EdbEDA.h:203
void SetNsegCut(int nseg)
Definition: EdbEDATrackSet.h:91
void DoSelection()
Definition: EdbEDATrackSet.h:503
void AddTracksPVR(EdbPVRec *pvr)
Definition: EdbEDATrackSet.h:312
EdbEDATrackSet * GetTrackSet(int i)
Definition: EdbEDA.h:617

◆ EdbEDA() [5/5]

EdbEDA::EdbEDA ( EdbPVRec pvr,
bool  autorun = 1 
)
inline
541  {
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++){
563  EdbPattern *p = ePVR->GetPattern(i);
564  if(p==NULL) continue;
565  p->SetSegmentsPlate(p->ID());
566  }
567  }
568 
569  GetTrackSet("TS")->AddTracksPVR(pvr);
570  GetVertexSet()->AddVertices(pvr->eVTX);
571  if(autorun) Run();
572  }
TTree * t
Definition: check_shower.C:4
EdbPVRec * ePVR
Definition: EdbEDA.h:206
void AddVertices(TObjArray *vertices)
Definition: EdbEDASets.h:189
EdbEDAVertexSet * GetVertexSet()
Definition: EdbEDA.h:660
EdbTrackP * GetTrack(int i) const
Definition: EdbPVRec.h:241
TObjArray * eVTX
Definition: EdbPVRec.h:162
Int_t Ntracks() const
Definition: EdbPVRec.h:203
TObjArray * eTracks
Definition: EdbPVRec.h:161
Definition: EdbPattern.h:280
Int_t Npatterns() const
Definition: EdbPattern.h:380
EdbPattern * GetPattern(int id) const
Definition: EdbPattern.cxx:1887
Definition: EdbSegP.h:18
Int_t Plate() const
Definition: EdbSegP.h:156
Definition: EdbPattern.h:118
p
Definition: testBGReduction_AllMethods.C:8
EdbSegP * s
Definition: tlg2pattern.C:32

Member Function Documentation

◆ AddDrawObject()

void EdbEDA::AddDrawObject ( EdbEDAObject o)
inline
582 { eDrawObjects->Add(o);}
TObjArray * eDrawObjects
Definition: EdbEDA.h:483
AcqOdyssey * o
Definition: hwinit.C:2

◆ AddTrackSet()

EdbEDATrackSet* EdbEDA::AddTrackSet ( const char *  name)
inline
580 { EdbEDATrackSet *set = new EdbEDATrackSet(name); eTrackSets->Add(set); return set;}
Definition: EdbEDATrackSet.h:178
TObjArray * eTrackSets
Definition: EdbEDA.h:484
EdbScanSet * set
Definition: emtraceback.cpp:14
const char * name
Definition: merge_Energy_SytematicSources_Electron.C:24

◆ AddVertex()

void EdbEDA::AddVertex ( EdbVertex v)
inline
661 { eVertexSet->AddVertex(v);}
void AddVertex(EdbVertex *v)
Definition: EdbEDASets.h:183
EdbEDAVertexSet * eVertexSet
Definition: EdbEDA.h:487

◆ CheckScanback()

EdbTrackP* EdbEDA::CheckScanback ( EdbTrackP t)
inline
730 {return GetTrackSet("SB")->FindTrackLast(t->GetSegmentLast());}
EdbTrackP * FindTrackLast(EdbSegP *s, double dx=20, double dt=0.03)
Definition: EdbEDATrackSet.h:394

◆ ClassDef()

EdbEDA::ClassDef ( EdbEDA  ,
 
)

◆ ClearDrawObjects()

void EdbEDA::ClearDrawObjects ( )
inline
584 { eDrawObjects->Clear();}

◆ ClearVertices()

void EdbEDA::ClearVertices ( )
inline
void ClearVertices()
Definition: EdbEDASets.h:213

◆ CreateTrackSet()

EdbEDATrackSet* EdbEDA::CreateTrackSet ( const char *  name)
inline
633  {
635  eTrackSets->Add(set);
636  return set;
637  }

◆ Draw()

void EdbEDA::Draw ( int  redraw = kFALSE)
2044  {
2045 
2046  if(gEve->GetCurrentEvent()!=0) gEve->GetCurrentEvent()->RemoveElements();
2047 
2048  for(int i=0;i<NTrackSets();i++) GetTrackSet(i)->Draw(kFALSE);
2049 
2050  eVertexSet->Draw();
2051 
2052  for(int i=0;i<NDrawObjects();i++) if(GetDrawObject(i)) GetDrawObject(i)->Draw();
2053 
2054  SetSelection();
2055 
2056  SetSelected();
2057  eExt->Draw();
2058 
2059  if(redraw) gEve->Redraw3D();
2060 
2062 }
void Draw(int redraw=0, int fix=0)
Definition: EdbEDASets.C:225
void SetDrawCheckBox()
Definition: EdbEDAMainTab.C:1084
virtual void Draw(Option_t *option="")
Definition: EdbEDA.h:41
void SetSelection(TObjArray *selected=NULL)
Definition: EdbEDA.C:1586
TObjArray * SetSelected(TObjArray *selected=NULL)
Definition: EdbEDA.C:1540
void Draw(int redraw=kFALSE)
Definition: EdbEDATrackSet.C:519
void Draw(int redraw=0)
Definition: EdbEDASets.C:195
EdbEDAExtentionSet * eExt
Definition: EdbEDA.h:488
int NTrackSets()
Definition: EdbEDA.h:616
EdbEDAObject * GetDrawObject(int i)
Definition: EdbEDA.h:586
int NDrawObjects()
Definition: EdbEDA.h:585
EdbEDAMainTab * eMainTab
Definition: EdbEDA.h:491

◆ DrawVertices()

void EdbEDA::DrawVertices ( int  redraw = 0)
inline
664 { eVertexSet->Draw(redraw);}

◆ GetCurrentTracks()

TObjArray* EdbEDA::GetCurrentTracks ( void  )
inline
588  {
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  }
TTree * tracks
Definition: check_tr.C:19
int IsTrack(TObject *o)
Definition: EdbEDAUtil.C:17

◆ GetDrawObject()

EdbEDAObject* EdbEDA::GetDrawObject ( int  i)
inline
586 { return (EdbEDAObject*) eDrawObjects->At(i);}
Definition: EdbEDA.h:34

◆ GetDSTab()

EdbEDADecaySearchTab* EdbEDA::GetDSTab ( )
inline
729 {return eDSTab;}
EdbEDADecaySearchTab * eDSTab
Definition: EdbEDA.h:497

◆ GetEveElement()

TEveElement* EdbEDA::GetEveElement ( TObject *  t)
inline
606  {
607  // return TEveElement of the track, vertex. if element is not in the Event, return NULL.
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  }

◆ GetExtentionSet()

EdbEDAExtentionSet* EdbEDA::GetExtentionSet ( )
inline
699 { return eExt;}

◆ GetMainTab()

EdbEDAMainTab* EdbEDA::GetMainTab ( )
inline
724 {return eMainTab;}

◆ GetOperationTab()

EdbEDAOperationTab* EdbEDA::GetOperationTab ( )
inline
728 {return eOperationTab;}
EdbEDAOperationTab * eOperationTab
Definition: EdbEDA.h:495

◆ GetPlotTab()

EdbEDAPlotTab* EdbEDA::GetPlotTab ( )
inline
726 {return ePlotTab;}
EdbEDAPlotTab * ePlotTab
Definition: EdbEDA.h:493

◆ GetScaleZ()

double EdbEDA::GetScaleZ ( )
inline
732 { return eScaleZ;}
double eScaleZ
Definition: EdbEDA.h:499

◆ GetTrack()

EdbTrackP* EdbEDA::GetTrack ( EdbSegP s)
inline
598  {
599  for(int i=0;i<NTrackSets();i++){
600  EdbTrackP *t = GetTrackSet(i)->GetTrack(s);
601  if(t) return t;
602  }
603  return NULL;
604  }
EdbTrackP * GetTrack(EdbSegP *s)
Definition: EdbEDATrackSet.h:428

◆ GetTrackSet() [1/4]

EdbEDATrackSet* EdbEDA::GetTrackSet ( const char *  name)
inline
618 { return (EdbEDATrackSet *) eTrackSets->FindObject(name);}

◆ GetTrackSet() [2/4]

EdbEDATrackSet* EdbEDA::GetTrackSet ( EdbID ID)
inline
625  {
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  }
EdbID & GetID()
Definition: EdbEDATrackSet.h:464
Int_t eMinor
Definition: EdbID.h:13
Int_t eMajor
Definition: EdbID.h:12

◆ GetTrackSet() [3/4]

EdbEDATrackSet* EdbEDA::GetTrackSet ( EdbTrackP t)
inline
619  {
620  for(int i=0;i<NTrackSets();i++)
621  if ( GetTrackSet(i)->IsMember(t) )
622  return (EdbEDATrackSet *) eTrackSets->At(i);
623  return NULL;
624  }
bool IsMember(EdbTrackP *t)
Definition: EdbEDATrackSet.h:443

◆ GetTrackSet() [4/4]

EdbEDATrackSet* EdbEDA::GetTrackSet ( int  i)
inline
617 { return (EdbEDATrackSet *) eTrackSets->At(i);}

◆ GetTrackSets()

TObjArray* EdbEDA::GetTrackSets ( )
inline
638 { return eTrackSets;}

◆ GetTrackSetTab()

EdbEDATrackSetTab* EdbEDA::GetTrackSetTab ( )
inline
725 {return eTrackSetTab;}
EdbEDATrackSetTab * eTrackSetTab
Definition: EdbEDA.h:492

◆ GetVertexSet()

EdbEDAVertexSet* EdbEDA::GetVertexSet ( )
inline
660 { return eVertexSet;}

◆ GetVertexTab()

EdbEDAVertexTab* EdbEDA::GetVertexTab ( )
inline
727 {return eVertexTab;}
EdbEDAVertexTab * eVertexTab
Definition: EdbEDA.h:494

◆ GetVertices()

TObjArray* EdbEDA::GetVertices ( )
inline
662 {return eVertexSet->GetVertices();}
TObjArray * GetVertices()
Definition: EdbEDASets.h:217

◆ Init()

void EdbEDA::Init ( void  )
1943  {
1944  // Initialization of TrackSets and VertexSet.
1945  gEDA = this;
1946  eScaleZ=1.0;
1947  eJapanese=kFALSE;
1948 
1949  // Setting of Path, Brick number.
1950  eScanProc = new EdbScanProc;
1952  printf("%s\n", eScanProc->eProcDirClient.Data());
1953  int ibrick = FindBrickIDFromPath();
1954  EdbEDABrickData::SetBrick ( ibrick);
1955 
1956  //eScanSet = new EdbScanSet();
1957 
1958  eDrawObjects = new TObjArray;
1959  eTrackSets = new TObjArray;
1960 
1962  eTrackSets->Add(set = new EdbEDATrackSet("TS"));
1963  set->SetDrawAreaSet(kTRUE);
1964 
1965  eTrackSets->Add(set = new EdbEDATrackSet("SB"));
1966  set->SetTrackAttribute(kWhite);
1967  set->SetID(EdbID(ibrick,0,1,100));
1968 
1969  eTrackSets->Add(set = new EdbEDATrackSet("SF"));
1970  set->SetTrackAttribute(kGreen);
1971  set->SetID(EdbID(ibrick,0,1,200));
1972 
1973  eTrackSets->Add(set = new EdbEDATrackSet("BT"));
1974  set->SetInterpolation(kFALSE); // disable to fill dashed line on holes.
1975  set->SetExtendMode(kExtendDown); // force extention down.
1976 
1977  eTrackSets->Add(set = new EdbEDATrackSet("MN"));
1978  set->SetTrackAttribute(kViolet);
1979  eVertexSet = new EdbEDAVertexSet();
1980  eExt = new EdbEDAExtentionSet();
1981 
1982 
1983  //AddDrawObject(new EdbEDAObject);
1984 
1985 }
EdbEDA * gEDA
Definition: EdbEDA.C:3
void SetBrick(int ibrick)
Definition: EdbEDA.h:227
Definition: EdbEDASets.h:230
Definition: EdbEDASets.h:143
bool eJapanese
Definition: EdbEDA.h:500
Definition: EdbScanProc.h:12
void SetID(EdbID id)
Definition: EdbScanSet.h:48
int FindBrickIDFromPath()
Definition: EdbEDAUtil.C:900
char * FindProcDirClient()
Definition: EdbEDAUtil.C:882
@ kExtendDown
Definition: EdbEDAUtil.h:92

◆ Japanese()

bool EdbEDA::Japanese ( )
inline
734 {return eJapanese;}

◆ NDrawObjects()

int EdbEDA::NDrawObjects ( )
inline
585 { return eDrawObjects->GetEntriesFast();}

◆ NTrackSets()

int EdbEDA::NTrackSets ( )
inline
616 { return eTrackSets->GetEntriesFast();}

◆ OpenFile()

void EdbEDA::OpenFile ( const char *  filename = NULL,
int  datatype = 100,
TCut  rcut = "1" 
)
2064  {
2065  // filename : filename for "LinkDef" or "*.set.root(ScanSet)" or "*.root(linked_track.root format)"
2066  // datatype : only for "LinkDef". Data type for EdbDataProc::InitVolume(). put -1 for no InitVolume
2067  // if datatype= 100 or 1000. linked tracks will be registred to "TS".
2068  // rcut : Track selection when read.
2069 
2070  // if filename is not given. open file browser.
2071  if(filename==NULL) {
2072  TGFileInfo *fi=new TGFileInfo;
2073  fi->fIniDir = StrDup(".");
2074  const char *filetypes[] = { "LinkDef", "*.def",
2075  "Linkeda Tracks", "*.root",
2076  "ScanSet", "*.set.root",
2077  "Feedback file","*.feedback*",
2078  "Mxx file","*.all",
2079  "All files","*",0,0};
2080  fi->fFileTypes=filetypes;
2081  new TGFileDialog(gClient->GetRoot(), 0, kFDOpen, fi);
2082  filename = fi->fFilename;
2083  }
2084 
2085  if(filename==NULL) return;
2086  // check the existence of the file.
2087  if(gSystem->AccessPathName(filename, kReadPermission)!=0) {
2088  printf("Error : %s is not found\n", filename);
2089  return;
2090  }
2091 
2092 
2093  // select an action for the file.
2094  TString s(filename);
2095  s.ToLower();
2096  if(s.EndsWith(".set.root")){
2097  // Scan set file
2098  printf("EDA Start with Scan Set : %s\n", s.Data());
2099 
2100  Init();
2101  TFile *f = TFile::Open(filename);
2102  eScanSet = (EdbScanSet *)f->Get("set");
2103  eID = *((EdbID *)eScanSet->eIDS.At(0));
2104  eID.ePlate = 0;
2105 
2106  TString s2;
2107 
2108  eScanProc->MakeFileName(s2, eID, "trk.root", kFALSE);
2109  int IsExist = gSystem->AccessPathName(s2.Data(), kReadPermission);
2110  if( IsExist==kFALSE) {
2112  GetTrackSet("TS")->ReadTracksTree(eID,rcut);
2113  GetTrackSet("TS")->SetNsegCut(3);
2114  GetTrackSet("TS")->DoSelection();
2115  }
2116  else{
2118  }
2119  }
2120  else if(s.EndsWith(".def")){
2121  // Link def file
2122  printf("EDA Start with LinkDef : %s\n", s.Data());
2123  Init();
2125  eDataSet = dproc->GetDataSet();
2126 
2127  if(datatype>=0) {
2128  dproc->InitVolume(datatype,rcut);
2129  SetDataType(datatype);
2131  GetTrackSet("TS")->SetNsegCut(3);
2133  GetTrackSet("TS")->DoSelection();
2134  }
2135  }
2136  else if(s.EndsWith(".root")){
2137  // Linked tracks file
2138  Init();
2139  printf("EDA Start with Linked_track : %s\n", s.Data());
2141  ePVR=GetTrackSet("TS")->GetPVRec();
2142  GetTrackSet("TS")->SetNsegCut(3);
2143  GetTrackSet("TS")->DoSelection();
2144  }
2145  else if(s.EndsWith(".feedback")){
2146  // Feedback
2147  Init();
2148  printf("EDA Start with Feedback : %s\n", s.Data());
2149  printf("Only for viewer!\n");
2151  }
2152  else if(s.EndsWith(".all")){
2153  // Mxx file (Nagoya style ascii)
2154  Init();
2155  SetJapanese();
2156  printf("EDA Start with Mxx file : %s\n", filename);
2158 
2159  ePVR = pvr;
2160  GetTrackSet("TS")->AddTracksPVR(pvr);
2161  GetVertexSet()->AddVertices(pvr->eVTX);
2162  }
2163 
2164 
2165 // Run();
2166 }
FILE * f
Definition: RecDispMC.C:150
Definition: EdbDataSet.h:180
int InitVolume(int datatype=0, const char *rcut="1")
Definition: EdbDataSet.cxx:2071
int GetPlateUp()
Definition: EdbEDA.h:237
void SetDataType(int datatype)
Definition: EdbEDA.h:235
void ReadFeedbackFile(const char *filename=NULL)
Definition: EdbEDA.C:757
void SetUpstreamPlate(int ipl)
Definition: EdbEDATrackSet.h:92
EdbPVRec * GetPVRec()
Definition: EdbEDATrackSet.h:320
EdbDataProc * ReadLinkedTracks(const char *lnkdef="lnk.def", TCut cut="1")
Definition: EdbEDATrackSet.C:717
void ReadTracksTree(const char *scanset_filename, TCut cut="1")
Definition: EdbEDATrackSet.C:666
void ReadPredictionScan(int BRICK, int SBVERSION, int RUN_PRED, int UseMicrotrack=0)
Definition: EdbEDATrackSet.C:777
EdbDataProc * ReadLinkedTracksFile(const char *filename="linked_tracks.root", TCut cut="1")
Definition: EdbEDATrackSet.C:689
void SetScanSet(EdbScanSet *ss)
Definition: EdbEDATrackSet.h:470
void SetJapanese(bool b=kTRUE)
Definition: EdbEDA.h:735
Definition: EdbPVRec.h:148
void MakeFileName(TString &s, int id[4], const char *suffix, bool inplate=true)
Definition: EdbScanProc.cxx:1885
Definition: EdbScanSet.h:11
TList eIDS
Definition: EdbScanSet.h:17
EdbPVRec * ReadMxxPVR(const char *filename=NULL)
Definition: EdbEDAUtil.C:1051
EdbSegP * s2
Definition: tlg2pattern.C:31

◆ PVRec2DataProc()

EdbDataProc * EdbEDA::PVRec2DataProc ( EdbPVRec pvr)
1716  {
1717  FILE *fp;
1718  printf("write lnkdummy.def\n");
1719  fp=fopen("lnkdummy.def","wt");
1720  fprintf(fp, "INPUT_RUNS_LIST lnkdummy.lst\n"
1721  "OUTPUT_DATA_DIR ./data/\n"
1722  "PARAMETERS_DIR ./pardummy/\n");
1723  fclose(fp);
1724 
1725  fp = fopen("lnkdummy.lst","wt");
1726  for(int i=0;i<pvr->Npatterns();i++){
1727  EdbPattern *pat = pvr->GetPattern(i);
1728  if(pat==NULL) continue;
1729  fprintf(fp, "%3d 1 ./data/* 1\n", pat->PID());
1730  }
1731  fclose(fp);
1732 
1733  printf("make pardummy directry\n");
1734  system("mkdir pardummy");
1735  printf("write parameters files\n");
1736  for(int i=0;i<pvr->Npatterns();i++){
1737  EdbPattern *pat = pvr->GetPattern(i);
1738  if(pat==NULL) continue;
1739 
1740  fp = fopen(Form("pardummy/%02d_001.par", pat->PID()),"wt");
1741  fprintf(fp,"ZLAYER 0 %.1lf 0. 0.\n", pat->Z());
1742  fprintf(fp,"AFFXY 0 1 0 0 1 0 0\n");
1743  fclose(fp);
1744  }
1745 
1746  EdbDataProc *proc = new EdbDataProc("lnkdummy.def");
1747  proc->SetPVR(pvr);
1748 
1749  system("rm lnkdummy.def");
1750  system("rm lnkdummy.lst");
1751  system("rm pardummy/*.*");
1752  system("rmdir pardummy");
1753 
1754 
1755  return proc;
1756 }
void SetPVR(EdbPVRec *pvr)
Definition: EdbDataSet.h:199
int PID() const
Definition: EdbPattern.h:329
Float_t Z() const
Definition: EdbPattern.h:87
fclose(pFile)
EdbDataProc * proc
Definition: read_pvr.C:3

◆ Redraw()

void EdbEDA::Redraw ( )
inline
680 { if(gEve)Draw(kTRUE);}
void Draw(int redraw=kFALSE)
Definition: EdbEDA.C:2044

◆ RemoveDrawObject()

void EdbEDA::RemoveDrawObject ( TObject *  o)
inline
583 { eDrawObjects->Remove(o); eDrawObjects->Sort();}

◆ RemoveSelected()

void EdbEDA::RemoveSelected ( )
inline
643  {
644  // remove selected tracks or vertices.
645  // to remove vertex, select vertex but not select tracks.
646  int nselected = NSelected();
647  for(int i=0;i<NTrackSets();i++) GetTrackSet(i)->RemoveTracks(GetSelectedTracks());
648  if(nselected==0) eVertexSet->RemoveVertex(GetSelectedVertex());
649  }
TObjArray * GetSelectedTracks(void)
Definition: EdbEDA.h:417
EdbVertex * GetSelectedVertex(void)
Definition: EdbEDA.h:439
int NSelected()
Definition: EdbEDA.h:420
void RemoveTracks(TObjArray *tracks)
Definition: EdbEDATrackSet.h:325
void RemoveVertex(EdbVertex *v)
Definition: EdbEDASets.h:208

◆ RemoveTrack()

void EdbEDA::RemoveTrack ( EdbTrackP t)
inline
641 {for(int i=0;i<NTrackSets();i++) GetTrackSet(i)->RemoveTrack(t);}
void RemoveTrack(EdbTrackP *t)
Definition: EdbEDATrackSet.h:324

◆ RemoveTrackBase()

void EdbEDA::RemoveTrackBase ( EdbTrackP t)
inline
640 {for(int i=0;i<NTrackSets();i++) GetTrackSet(i)->RemoveTrackBase(t);}
void RemoveTrackBase(EdbTrackP *t)
Definition: EdbEDATrackSet.h:323

◆ Reset()

void EdbEDA::Reset ( )
inline
683  {
684  for(int i=0;i<NTrackSets();i++) GetTrackSet(i)->Clear();
686  ClearVertices();
687  }
void Clear()
Definition: EdbEDATrackSet.h:336
void ClearVertices()
Definition: EdbEDA.h:663
void ClearDrawObjects()
Definition: EdbEDA.h:584

◆ RestorePrevious()

void EdbEDA::RestorePrevious ( )
inline
694  {
695  for(int i=0;i<NTrackSets();i++) GetTrackSet(i)->RestorePrevious();
697  }
void RestorePrevious(void)
Definition: EdbEDATrackSet.h:351
void RestorePrevious(void)
Definition: EdbEDASets.h:204

◆ Run()

void EdbEDA::Run ( )
1988  {
1989  // Start Display.
1990 
1991  if(gEve==NULL){
1992  // TEve setting
1993 #if ROOT_VERSION_CODE<ROOT_VERSION(5,22,00)
1994  TEveManager::Create();
1995  eViewer = gEve->GetGLViewer();
1996 
1997 #else
1998  TEveManager::Create(kTRUE,"V");
1999  eViewer = gEve->GetDefaultGLViewer();
2000  gEve->GetWindowManager()->HideAllEveDecorations();
2001 
2002  gEve->GetDefaultViewer()->SetName("Viewer1");
2003  TGTab *tab=gEve->GetBrowser()->GetTabRight();
2004  tab->GetCurrentTab()->SetName("Viewer1");
2005  tab->Connect("Selected(Int_t)", "EdbEDA", this, "GetGLViewer()");
2006 
2007 #endif
2008 
2009  gEve->GetMainWindow()->Resize(1024,730); // resize for note book size 1280x800
2010 
2011  eViewer->SetCurrentCamera(TGLViewer::kCameraOrthoZOY); // Orthogonal Camera
2012  TGLOrthoCamera& cam = (TGLOrthoCamera &) eViewer->CurrentCamera();
2013  cam.SetEnableRotate(kTRUE);
2014 
2015  eViewer->SetClearColor(kBlack);
2016  SetOverlay();
2017  gEve->GetMainWindow()->SetWindowName(Form("OPERA Event Display and Analyser. Brick %d", EdbEDABrickData::GetBrick()));
2018  //gEve->GetMainWindow()->SetWindowName("OPERA Event Display and Analyser.");
2019 
2020  InitSelection(gEve->GetSelection());
2021 
2022  new EdbEDAListTab;
2023  eMainTab = new EdbEDAMainTab;
2024 
2026  ePlotTab = new EdbEDAPlotTab;
2030  new EdbEDAPredTab;
2031  new EdbEDAShowerTab;
2032  new EdbEDAMCTab;
2033  // new EdbEDAShowerTab;
2034  // gEve->GetBrowser()->GetTabBottom()->RemoveTab(0); // remove command tab
2035  gEve->GetBrowser()->GetTabBottom()->SetTab(0); // set TrackSetTab in front.
2036  }
2037 
2038  printf("GUI setting finished.\n");
2039  //if(eAreaSet->N()==0&&GetTrackSet("TS")->NBase()!=0) eAreaSet->SetAreas( GetTrackSet("TS")->GetTracksBase());
2040  Draw(kFALSE);
2041  if(gEve->GetCurrentEvent()!=NULL) gEve->Redraw3D(kTRUE);
2042 }
int GetBrick()
Definition: EdbEDA.h:232
EdbEDAOverlay * SetOverlay()
Definition: EdbEDA.h:154
TGLViewer * eViewer
Definition: EdbEDA.h:137
Definition: EdbEDADecaySearch.h:426
Definition: EdbEDATabs.h:11
Definition: EdbEDATabs.h:86
Definition: EdbEDAMainTab.h:9
Definition: EdbEDATabs.h:159
Definition: EdbEDAPlotTab.h:14
Definition: EdbEDATabs.h:109
void InitSelection(TEveSelection *sel)
Definition: EdbEDA.h:384
Definition: EdbEDAShowerTab.h:10
Definition: EdbEDATrackSet.h:608
Definition: EdbEDATabs.h:32

◆ ScanProc()

EdbScanProc* EdbEDA::ScanProc ( )
inline
578 { return eScanProc;}

◆ SetBrick()

void EdbEDA::SetBrick ( int  ibrick)
inline
666  {
667  // Set brick ID. it sets also for all TrackSets.
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  }
Int_t eBrick
Definition: EdbID.h:10

◆ SetColorMode()

void EdbEDA::SetColorMode ( int  mode)
inline
701  {
702  // Set color 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  }
virtual void SetColorMode(int mode)
Definition: EdbEDA.h:42
void SetColorMode(int mode)
Definition: EdbEDATrackSet.C:276
void SetColorMode(int mode)
Definition: EdbEDASets.h:175
void Redraw()
Definition: EdbEDA.h:680
@ kBLACKWHITE
Definition: EdbEDAUtil.h:86

◆ SetDrawAreaSet()

void EdbEDA::SetDrawAreaSet ( bool  draw)
inline
676 { for(int i=0;i<NTrackSets();i++) GetTrackSet(i)->GetAreaSet()->SetDrawG(draw);}
void SetDrawG(bool draw)
Definition: EdbEDASets.h:107
EdbEDAAreaSet * GetAreaSet()
Definition: EdbEDATrackSet.h:602

◆ SetDrawTrackAngle()

void EdbEDA::SetDrawTrackAngle ( bool  draw)
inline
675 { for(int i=0;i<NTrackSets();i++) GetTrackSet(i)->SetDrawTrackAngleG(draw);}
void SetDrawTrackAngleG(bool draw)
Definition: EdbEDATrackSet.h:590

◆ SetDrawTrackID()

void EdbEDA::SetDrawTrackID ( bool  draw)
inline
674 { for(int i=0;i<NTrackSets();i++) GetTrackSet(i)->SetDrawTrackIDG(draw);}
void SetDrawTrackIDG(bool draw)
Definition: EdbEDATrackSet.h:589

◆ SetJapanese()

void EdbEDA::SetJapanese ( bool  b = kTRUE)
inline
735 {eJapanese = b;}

◆ SetLayerLength()

void EdbEDA::SetLayerLength ( double  layer_length)
inline
719  {
720  // Set LayerLength for all TrackSet.
721  for(int i=0;i<NTrackSets();i++){ GetTrackSet(i)->SetLayerLength(layer_length);}
722  }
void SetLayerLength(double length)
Definition: EdbEDATrackSet.h:556

◆ SetOnlySelected()

void EdbEDA::SetOnlySelected ( )
inline
651  {
652  for(int i=0;i<NTrackSets();i++) {
653  GetTrackSet(i)->ClearTracks();
655  }
658  }
void ClearTracks(void)
Definition: EdbEDATrackSet.h:327
void SetTracks(TObjArray *tracks)
Definition: EdbEDATrackSet.h:303
void SetVertex(EdbVertex *v)
Definition: EdbEDASets.h:191

◆ SetScaleZ()

void EdbEDA::SetScaleZ ( double  scale)
inline
733 { eScaleZ=scale;}

◆ StorePrevious()

void EdbEDA::StorePrevious ( )
inline
689  {
690  for(int i=0;i<NTrackSets();i++) GetTrackSet(i)->StorePrevious();
692  }
void StorePrevious()
Definition: EdbEDATrackSet.h:356
void StorePrevious(void)
Definition: EdbEDASets.h:205

◆ UpdateScene()

void EdbEDA::UpdateScene ( )
inline
681 { if(gEve) gEve->GetDefaultGLViewer()->UpdateScene();}

Member Data Documentation

◆ eDrawObjects

TObjArray* EdbEDA::eDrawObjects
private

◆ eDSTab

EdbEDADecaySearchTab* EdbEDA::eDSTab
private

◆ eEvent

TEveEventManager* EdbEDA::eEvent
private

◆ eExt

EdbEDAExtentionSet* EdbEDA::eExt
private

◆ eJapanese

bool EdbEDA::eJapanese
private

◆ eMainTab

EdbEDAMainTab* EdbEDA::eMainTab
private

◆ eOperationTab

EdbEDAOperationTab* EdbEDA::eOperationTab
private

◆ ePlotTab

EdbEDAPlotTab* EdbEDA::ePlotTab
private

◆ eScaleZ

double EdbEDA::eScaleZ
private

◆ eSel

EdbEDASelection* EdbEDA::eSel
private

◆ eSetTracks

EdbEDATrackSet* EdbEDA::eSetTracks
private

◆ eTrackSets

TObjArray* EdbEDA::eTrackSets
private

◆ eTrackSetTab

EdbEDATrackSetTab* EdbEDA::eTrackSetTab
private

◆ eVertexSet

EdbEDAVertexSet* EdbEDA::eVertexSet
private

◆ eVertexTab

EdbEDAVertexTab* EdbEDA::eVertexTab
private

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