FEDRA emulsion software from the OPERA Collaboration
EdbEDAFeedbackEntryT Class Reference

#include <EdbDecaySearch.h>

Inheritance diagram for EdbEDAFeedbackEntryT:
Collaboration diagram for EdbEDAFeedbackEntryT:

Public Member Functions

 EdbEDAFeedbackEntryT (EdbTrackP *t, TGTab *parent)
 
 EdbEDAFeedbackEntryT (EdbTrackP *t, TGTab *parent)
 
void HilightElement ()
 
void HilightElement ()
 
void ReplaceEntry ()
 
void ReplaceEntry ()
 
void UpdateGUI ()
 
void UpdateGUI ()
 
 ~EdbEDAFeedbackEntryT ()
 
 ~EdbEDAFeedbackEntryT ()
 

Private Attributes

TGCompositeFrame * eCompositeFrame
 
EdbSegPeSeg
 
TGTabElement * eTabElement
 
TGTextEntry * eTextEntry
 
TGTextEntry * eTextEntryFS
 
TGTextEntry * eTextEntryMom
 
EdbTrackPeTrack
 
EdbTrackPeTrackMom
 
EdbTrackPeTrackSeg
 

Constructor & Destructor Documentation

◆ EdbEDAFeedbackEntryT() [1/2]

EdbEDAFeedbackEntryT::EdbEDAFeedbackEntryT ( EdbTrackP t,
TGTab *  parent 
)
1530  {
1531 
1532  if(t==NULL||parent==NULL) return;
1534  eTextEntry=NULL;
1535  eTabElement=NULL;
1536  // container of "Tab1"
1537  TString name = Form("%d", t->ID());
1538 
1539  // Check if same track is already selected or not.
1540  TGCompositeFrame *cf = parent->GetTabContainer(name);
1541  if( cf!=NULL ) {// if it is already selected. stop.
1542  printf("Track %s is already selected\n",name.Data());
1543  delete this;
1544  return;
1545  }
1546 
1547  SetName ( name); // name is important to manage entries.
1548  eTrack = eTrackMom = eTrackSeg = t;
1549  eSeg = t->GetSegmentFirst();
1550 
1551  eCompositeFrame = parent->AddTab( name);
1552  eCompositeFrame->SetLayoutManager(new TGVerticalLayout(eCompositeFrame));
1553  eTabElement = parent->GetTabTab(name);
1554  eTabElement->SetName(name);
1555  eTabElement->ShowClose();
1556 
1557  // Main Track
1558  TGLabel *fLabel = new TGLabel(eCompositeFrame,"Main Track for ID");
1559  eCompositeFrame->AddFrame(fLabel, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,10,2));
1560  fLabel->MoveResize(20,20,80,20);
1561 
1562  TGTextButton *fb = new TGTextButton(eCompositeFrame,"Replace Track", 10);
1563  eCompositeFrame->AddFrame(fb, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
1564  fb->MoveResize(20,20,80,20);
1565  fb->Connect("Clicked()", "EdbEDAFeedbackEntryT", this, "ReplaceEntry()");
1566 
1567  eTextEntry = new TGTextEntry(eCompositeFrame, new TGTextBuffer(300));
1568  eTextEntry->SetAlignment(kTextLeft);
1569  eTextEntry->Resize(500,eTextEntry->GetDefaultHeight());
1570  eCompositeFrame->AddFrame(eTextEntry, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
1571 
1572  // First Segment
1573  fLabel = new TGLabel(eCompositeFrame,"Segment for IP calculation");
1574  eCompositeFrame->AddFrame(fLabel, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,10,2));
1575  fLabel->MoveResize(20,20,80,20);
1576 
1577  fb = new TGTextButton(eCompositeFrame,"Replace Track", 11);
1578  eCompositeFrame->AddFrame(fb, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
1579  fb->Connect("Clicked()", "EdbEDAFeedbackEntryT", this, "ReplaceEntry()");
1580  fb->MoveResize(20,20,80,20);
1581 
1582  eTextEntryFS = new TGTextEntry(eCompositeFrame, new TGTextBuffer(300));
1583  eTextEntryFS->SetAlignment(kTextLeft);
1584  eTextEntryFS->Resize(500,eTextEntryFS->GetDefaultHeight());
1585  eCompositeFrame->AddFrame(eTextEntryFS, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
1586 
1587  // RMS Mom
1588  fLabel = new TGLabel(eCompositeFrame,"Main Track for ID");
1589  eCompositeFrame->AddFrame(fLabel, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,10,2));
1590  fLabel->MoveResize(20,20,80,20);
1591 
1592  fb = new TGTextButton(eCompositeFrame,"Replace Track", 12);
1593  eCompositeFrame->AddFrame(fb, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
1594  fb->Connect("Clicked()", "EdbEDAFeedbackEntryT", this, "ReplaceEntry()");
1595  fb->MoveResize(20,20,80,20);
1596 
1597  eTextEntryMom = new TGTextEntry(eCompositeFrame, new TGTextBuffer(300));
1598  eTextEntryMom->SetAlignment(kTextLeft);
1599  eTextEntryMom->Resize(500,eTextEntryMom->GetDefaultHeight());
1600  eCompositeFrame->AddFrame(eTextEntryMom, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
1601 
1602  UpdateGUI();
1603 
1604  eCompositeFrame->Layout();
1605  eCompositeFrame->MapSubwindows();
1606  eCompositeFrame->Resize(eCompositeFrame->GetDefaultSize());
1607  eCompositeFrame->MapWindow();
1608 }
graph SetName("Graph")
TTree * t
Definition: check_shower.C:4
EdbTrackP * eTrackSeg
Definition: EdbDecaySearch.h:488
TGTextEntry * eTextEntryMom
Definition: EdbDecaySearch.h:495
TGTabElement * eTabElement
Definition: EdbDecaySearch.h:491
TGCompositeFrame * eCompositeFrame
Definition: EdbDecaySearch.h:492
TGTextEntry * eTextEntry
Definition: EdbDecaySearch.h:493
EdbTrackP * eTrackMom
Definition: EdbDecaySearch.h:487
EdbSegP * eSeg
Definition: EdbDecaySearch.h:489
void UpdateGUI()
Definition: EdbEDADecaySearch.C:1502
TGTextEntry * eTextEntryFS
Definition: EdbDecaySearch.h:494
EdbTrackP * eTrack
Definition: EdbDecaySearch.h:486
const char * name
Definition: merge_Energy_SytematicSources_Electron.C:24
#define NULL
Definition: nidaqmx.h:84

◆ ~EdbEDAFeedbackEntryT() [1/2]

EdbEDAFeedbackEntryT::~EdbEDAFeedbackEntryT ( )
inline
499  {
500  if(eCompositeFrame) delete eCompositeFrame;
501  if(eTextEntry) delete eTextEntry;
502  }

◆ EdbEDAFeedbackEntryT() [2/2]

EdbEDAFeedbackEntryT::EdbEDAFeedbackEntryT ( EdbTrackP t,
TGTab *  parent 
)

◆ ~EdbEDAFeedbackEntryT() [2/2]

EdbEDAFeedbackEntryT::~EdbEDAFeedbackEntryT ( )
inline
503  {
504  if(eCompositeFrame) delete eCompositeFrame;
505  if(eTextEntry) delete eTextEntry;
506  }

Member Function Documentation

◆ HilightElement() [1/2]

void EdbEDAFeedbackEntryT::HilightElement ( )
1495  {
1496  gEve->GetHighlight()->RemoveElements();
1497  TEveElement *el = gEDA->GetEveElement(eTrack);
1498  gEve->GetHighlight()->AddElement(el);
1499  gEve->Redraw3D();
1500 }
EdbEDA * gEDA
Definition: EdbEDA.C:3
TEveElement * GetEveElement(TObject *t)
Definition: EdbEDA.h:606

◆ HilightElement() [2/2]

void EdbEDAFeedbackEntryT::HilightElement ( )

◆ ReplaceEntry() [1/2]

void EdbEDAFeedbackEntryT::ReplaceEntry ( )
1462  {
1463 
1464  if(gEDA->NSelectedTracks()!=1) {
1465  ErrorMessage("Please select a track.");
1466  return;
1467  }
1468 
1470  EdbSegP *s = gEDA->GetSelected(0);
1471 
1472  TGButton *btn = (TGButton *) gTQSender;
1473  Int_t id = btn->WidgetId();
1474 
1475  switch(id){
1476 
1477  case 10:
1478  eTrack=t;
1479  break;
1480  case 11:
1481  eTrackSeg = t;
1482  eSeg = s;
1483  break;
1484  case 12:
1485  eTrackMom = t;
1486  break;
1487 
1488  default :
1489  break;
1490  }
1491 
1492  UpdateGUI();
1493 }
EdbTrackP * GetSelectedTrack(int i=-1)
Definition: EdbEDA.h:421
TObjArray * GetSelected(void)
Definition: EdbEDA.h:405
int NSelectedTracks()
Definition: EdbEDA.h:419
Definition: EdbSegP.h:18
Definition: EdbPattern.h:118
void ErrorMessage(const char *title, const char *message)
Definition: EdbEDAUtil.C:479
EdbSegP * s
Definition: tlg2pattern.C:32

◆ ReplaceEntry() [2/2]

void EdbEDAFeedbackEntryT::ReplaceEntry ( )

◆ UpdateGUI() [1/2]

void EdbEDAFeedbackEntryT::UpdateGUI ( )
1502  {
1503 
1504  // Main Track
1505  TEveElement *el = gEDA->GetEveElement(eTrack);
1506  eTextEntry->SetText(el->GetElementName());
1507 
1508  // First Segment
1509  EdbSegP *s = eSeg;
1510  EdbTrackP *t = eTrackSeg;
1512  char buf[256];
1513 
1514  sprintf(buf,"%s itrk %d pl %2d %d %s ph %2d %8.1f %8.1f %7.4f %7.4f chi2 %4.2f",
1515  set->GetName(), t->ID(), s->Plate(), (int)s->ID(), s->Side()? s->Side()==1? "MT1" : "MT2" : "BT",
1516  (int)s->W(), s->X(), s->Y(), s->TX(), s->TY(), s->Chi2());
1517 // if(s->MCEvt()>=0) sprintf( buf,"%s MCEvt %d P %7.4f PdgID %6d",buf,s->MCEvt(),s->P(), s->Flag());
1518  eTextEntryFS->SetText(buf);
1519 
1520  // Mom
1521  t=eTrackMom;
1523  eTextEntryMom->SetText(Form("%s trk %d pl %d -> %d %8.1f %8.1f %8.1f %7.4f %7.4f %d",
1524  set->GetName(), t->ID(), t->GetSegmentFirst()->Plate(), t->GetSegmentLast()->Plate(),
1525  t->X(),t->Y(),t->Z(),t->TX(),t->TY(), t->Flag()));
1526 
1527 }
Definition: EdbEDATrackSet.h:178
EdbEDATrackSet * GetTrackSet(int i)
Definition: EdbEDA.h:617
Float_t TX() const
Definition: EdbSegP.h:172
Int_t ID() const
Definition: EdbSegP.h:144
Float_t X() const
Definition: EdbSegP.h:170
Float_t Chi2() const
Definition: EdbSegP.h:154
Int_t Plate() const
Definition: EdbSegP.h:156
Int_t Side() const
Definition: EdbSegP.h:167
Float_t Y() const
Definition: EdbSegP.h:171
Float_t W() const
Definition: EdbSegP.h:148
Float_t TY() const
Definition: EdbSegP.h:173
EdbScanSet * set
Definition: emtraceback.cpp:14

◆ UpdateGUI() [2/2]

void EdbEDAFeedbackEntryT::UpdateGUI ( )

Member Data Documentation

◆ eCompositeFrame

TGCompositeFrame * EdbEDAFeedbackEntryT::eCompositeFrame
private

◆ eSeg

EdbSegP * EdbEDAFeedbackEntryT::eSeg
private

◆ eTabElement

TGTabElement * EdbEDAFeedbackEntryT::eTabElement
private

◆ eTextEntry

TGTextEntry * EdbEDAFeedbackEntryT::eTextEntry
private

◆ eTextEntryFS

TGTextEntry * EdbEDAFeedbackEntryT::eTextEntryFS
private

◆ eTextEntryMom

TGTextEntry * EdbEDAFeedbackEntryT::eTextEntryMom
private

◆ eTrack

EdbTrackP * EdbEDAFeedbackEntryT::eTrack
private

◆ eTrackMom

EdbTrackP * EdbEDAFeedbackEntryT::eTrackMom
private

◆ eTrackSeg

EdbTrackP * EdbEDAFeedbackEntryT::eTrackSeg
private

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