FairRoot/PandaRoot
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
PndTrackDraw Class Reference

#include <PndTrackDraw.h>

Inheritance diagram for PndTrackDraw:

Public Member Functions

 PndTrackDraw (Bool_t propagation=kFALSE)
 
 PndTrackDraw (const char *name, Bool_t propagation=kFALSE, Int_t iVerbose=1)
 
virtual ~PndTrackDraw ()
 
void SetVerbose (Int_t iVerbose)
 
virtual void Exec (Option_t *option)
 
virtual InitStatus Init ()
 
virtual void SetParContainers ()
 
virtual void Finish ()
 
void Reset ()
 
TEveTrackList * GetTrGroup (Int_t pid)
 
virtual Double_t GetTimeWindowPlus ()
 
virtual Double_t GetTimeWindowMinus ()
 
virtual void SetTimeWindowMinus (Double_t val)
 
virtual void SetTimeWindowPlus (Double_t val)
 

Public Attributes

Double_t fTimeWindowPlus
 
Double_t fTimeWindowMinus
 
Double_t fStartTime
 
Bool_t fUseEventTime
 

Protected Member Functions

void PropagateTrack (FairTrackParP &trackPar, Int_t pidHypo, Int_t color=-1, TEveElement *group=0)
 
void PropagateTrackHelix (FairTrackParP &trackPar, Int_t pidHypo, Int_t color=-1, TEveElement *group=0)
 
 ClassDef (PndTrackDraw, 1)
 

Protected Attributes

TClonesArray * fPndTrackList
 
TEveTrackPropagator * fTrPr
 
FairEventManager * fEventManager
 
TObjArray * fEveTrList
 
TString fEvent
 
TEveTrackList * fTrList
 
FairGeanePro * fPro
 
PndTrackCandDrawfTrackCandDraw
 
std::vector< TEveArrow * > fArrows
 
Bool_t fDoPropagation
 
TEveElementList * fListOfTracks
 
Double_t MinEnergyLimit
 
Double_t MaxEnergyLimit
 
Double_t PEnergy
 
BinaryFunctor * fStartFunctor
 
BinaryFunctor * fStopFunctor
 

Detailed Description

Definition at line 33 of file PndTrackDraw.h.

Constructor & Destructor Documentation

PndTrackDraw::PndTrackDraw ( Bool_t  propagation = kFALSE)

Default constructor

Definition at line 27 of file PndTrackDraw.cxx.

References fPndTrackList.

28  :fTimeWindowPlus(0.),
29  fTimeWindowMinus(0.),
30  fUseEventTime(kTRUE),
32  fListOfTracks(0)
33 {
34  fPndTrackList = 0;
35 }
TEveElementList * fListOfTracks
Definition: PndTrackDraw.h:89
void propagate(TLorentzVector &l, TVector3 &p, float charge, TH2F *hpro=0)
Double_t fTimeWindowMinus
Definition: PndTrackDraw.h:68
Bool_t fDoPropagation
Definition: PndTrackDraw.h:87
Double_t fTimeWindowPlus
Definition: PndTrackDraw.h:67
TClonesArray * fPndTrackList
Definition: PndTrackDraw.h:76
Bool_t fUseEventTime
Definition: PndTrackDraw.h:70
PndTrackDraw::PndTrackDraw ( const char *  name,
Bool_t  propagation = kFALSE,
Int_t  iVerbose = 1 
)

Standard constructor

Parameters
nameName of task
iVerboseVerbosity level

Definition at line 40 of file PndTrackDraw.cxx.

References fPndTrackList, fTrackCandDraw, iVerbose, and TString.

41  : FairTask(name, iVerbose),
42  fTimeWindowPlus(0.),
43  fTimeWindowMinus(0.),
44  fUseEventTime(kTRUE), fEveTrList( new TObjArray(16)),
46 {
47  // fPro = new FairGeanePro();
48  fPndTrackList = 0;
49  TString trackCandName(name);
50 // trackCandName.Append("_TrackCand");
51  fTrackCandDraw = new PndTrackCandDraw(trackCandName.Data(), iVerbose);
52 }
TEveElementList * fListOfTracks
Definition: PndTrackDraw.h:89
void propagate(TLorentzVector &l, TVector3 &p, float charge, TH2F *hpro=0)
TObjArray * fEveTrList
Definition: PndTrackDraw.h:79
Double_t fTimeWindowMinus
Definition: PndTrackDraw.h:68
Bool_t fDoPropagation
Definition: PndTrackDraw.h:87
Double_t fTimeWindowPlus
Definition: PndTrackDraw.h:67
TClonesArray * fPndTrackList
Definition: PndTrackDraw.h:76
TString name
Int_t iVerbose
Bool_t fUseEventTime
Definition: PndTrackDraw.h:70
PndTrackCandDraw * fTrackCandDraw
Definition: PndTrackDraw.h:85
PndTrackDraw::~PndTrackDraw ( )
virtual

Destructor

Definition at line 90 of file PndTrackDraw.cxx.

References fTrackCandDraw.

91 {
92  delete fTrackCandDraw;
93 }
PndTrackCandDraw * fTrackCandDraw
Definition: PndTrackDraw.h:85

Member Function Documentation

PndTrackDraw::ClassDef ( PndTrackDraw  ,
 
)
protected
void PndTrackDraw::Exec ( Option_t *  option)
virtual

Executed task

Definition at line 96 of file PndTrackDraw.cxx.

References PndTrackCandDraw::AddBoxesPndTrackCand(), Double_t, fArrows, fDoPropagation, fEventManager, fListOfTracks, fPndTrackList, fStartFunctor, fStartTime, fStopFunctor, fTimeWindowMinus, fTimeWindowPlus, fTrackCandDraw, fUseEventTime, fVerbose, PndTrack::GetParamFirst(), PndTrack::GetParamLast(), PndTrack::GetPidHypo(), PndTrack::GetTrackCand(), i, PndTrack::Print(), PropagateTrackHelix(), Reset(), tr, and TString.

97 {
98 
99  if (IsActive()){
100 
101  if(fVerbose>1) cout << " PndTrackDraw::Exec "<< endl;
102  PndTrack *tr;
103  //const Double_t *point; //[R.K. 01/2017] unused variable
104 
105  Reset();
106  fTrackCandDraw->Reset();
107 
108  FairBoxSet* myBoxSet = fTrackCandDraw->CreateBoxSet();
109 
110  //fListOfTracks->DestroyElements();
111 
112  TString trackName(GetName());
113  trackName.Append("_Track");
114  fListOfTracks = new TEveElementList(trackName.Data(),"List of PndTracks");
115 
116  gEve->AddElement(fListOfTracks,fEventManager);
117 
118  if (FairRunAna::Instance()->IsTimeStamp()) {
119  std::cout << "Inside TimeStamp" << std::endl;
120  fPndTrackList->Clear();
121  Double_t eventTime = FairRootManager::Instance()->GetEventTime();
122  if (fUseEventTime) {
123  fStartTime = eventTime - fTimeWindowMinus;
124  }
125  cout << "EventTime: " << eventTime << " TimeWindow: " << fStartTime
126  << " - " << eventTime + fTimeWindowPlus << std::endl;
127 
128  fPndTrackList = FairRootManager::Instance()->GetData(GetName(),
130  eventTime + fTimeWindowPlus); //FairRootManager::Instance()->GetEventTime() +
131  std::cout << fStartTime << " " << eventTime + fTimeWindowPlus << " FoundTracks: " << fPndTrackList->GetEntriesFast() << std::endl;
132  }
133 
134  for (Int_t i=0; i<fPndTrackList->GetEntriesFast(); i++) {
135  if(fVerbose>2) cout << "PndTrackDraw::Exec "<< i << endl;
136  tr=(PndTrack *)fPndTrackList->At(i);
137  Int_t pidHypo = tr->GetPidHypo();
138 
139  // Int_t q= tr->GetParamFirst().GetQ();
140  // Int_t pidHypo = 0;
141  // if (q > 0)
142  // pidHypo = 211;
143  // else
144  // pidHypo = -211;
145  FairTrackParP parFirst = tr->GetParamFirst();
146  FairTrackParP parLast = tr->GetParamLast();
147  PndTrackCand trackCand = tr->GetTrackCand();
148 
149  if (fVerbose> 1){
150  cout << "PndTrack " << i << ":" << std::endl;
151  tr->Print();
152  }
153 
154  fTrackCandDraw->AddBoxesPndTrackCand(myBoxSet,&trackCand, i);
155 
156  TVector3 posFirst = parFirst.GetPosition();
157  TVector3 momFirst;
158  if (parFirst.GetMomentum().Mag() < 0.1) {
159  momFirst = parFirst.GetMomentum() * 100;
160  } else {
161  momFirst = parFirst.GetMomentum() * 10;
162  }
163  //TVector3 resFirst = posFirst + momFirst;
164  TString groupName("Track_");
165  groupName += i;
166  TEveElementList* arrowList = new TEveElementList(groupName.Data(), "PndMCTrack");
167 
168 
169  TEveArrow* myArrowFirst = new TEveArrow(momFirst.X(), momFirst.Y(), momFirst.Z(),
170  posFirst.X(), posFirst.Y(), posFirst.Z());
171  myArrowFirst->SetMainColor(kRed);
172  myArrowFirst->SetTubeR(0.01);
173  fArrows.push_back(myArrowFirst);
174  //gEve->AddElement(myArrowFirst, fEventManager);
175  arrowList->AddElement(myArrowFirst);
176 
177  std::cout << "ParamFirst: " << posFirst.X() << " " << posFirst.Y() << " " << posFirst.Z() << std::endl;
178  std::cout << "ParamFirst Momentum: " << momFirst.X() << " " << momFirst.Y() << " " << momFirst.Z() << std::endl;
179  std::cout << "Charge: " << parFirst.GetQ() << std::endl;
180 
181  if (fDoPropagation)
182  PropagateTrackHelix(parFirst, pidHypo, kRed, arrowList);
183 
184  TVector3 posLast = parLast.GetPosition();
185  TVector3 momLast;
186  if (parLast.GetMomentum().Mag() < 0.1) {
187  momLast = parLast.GetMomentum() * 100;
188  } else {
189  momLast = parLast.GetMomentum() * 10;
190  }
191  //TVector3 resLast = posLast + momLast;
192 
193  TEveArrow* myArrowLast = new TEveArrow(momLast.X(), momLast.Y(), momLast.Z(),
194  posLast.X(), posLast.Y(), posLast.Z());
195  myArrowLast->SetMainColor(kBlue);
196  myArrowLast->SetTubeR(0.01);
197  fArrows.push_back(myArrowLast);
198  //gEve->AddElement(myArrowLast, fEventManager);
199  arrowList->AddElement(myArrowLast);
200 
201  std::cout << "ParamLast: " << posLast.X() << " " << posLast.Y() << " " << posLast.Z() << std::endl;
202  std::cout << "ParamLast Momentum: " << momLast.X() << " " << momLast.Y() << " " << momLast.Z() << std::endl;
203  std::cout << "Charge: " << parLast.GetQ() << std::endl;
204 
205  if (fDoPropagation)
206  PropagateTrackHelix(parLast, pidHypo, kBlue, arrowList);
207 
208 // PropagateTrack(parLast, pidHypo, kBlue, arrowList);
209  fListOfTracks->AddElement(arrowList);
210 
211  }
212  gEve->AddElement((TEveBoxSet*)myBoxSet, fEventManager);
213 
214  //for (Int_t i=0; i<fEveTrList->GetEntriesFast(); i++){ //[R.K. 01/2017] unused variable
215  //TEveTrackList *TrListIn=( TEveTrackList *) fEveTrList->At(i); //[R.K. 01/2017] unused variable
216  //TrListIn->FindMomentumLimits(TrListIn, kFALSE);
217  //} //[R.K. 01/2017] unused variable
218  // fEventManager->SetEvtMaxEnergy(MaxEnergyLimit);
219  // fEventManager->SetEvtMinEnergy(MinEnergyLimit);
220  gEve->Redraw3D(kFALSE);
221  }
222 }
TEveElementList * fListOfTracks
Definition: PndTrackDraw.h:89
int fVerbose
Definition: poormantracks.C:24
Int_t i
Definition: run_full.C:25
FairEventManager * fEventManager
Definition: PndTrackDraw.h:78
Double_t fTimeWindowMinus
Definition: PndTrackDraw.h:68
void PropagateTrackHelix(FairTrackParP &trackPar, Int_t pidHypo, Int_t color=-1, TEveElement *group=0)
Bool_t fDoPropagation
Definition: PndTrackDraw.h:87
std::vector< TEveArrow * > fArrows
Definition: PndTrackDraw.h:86
Double_t fTimeWindowPlus
Definition: PndTrackDraw.h:67
PndTrackCand GetTrackCand()
Definition: PndTrack.h:47
Double_t
Double_t fStartTime
Definition: PndTrackDraw.h:69
TClonesArray * fPndTrackList
Definition: PndTrackDraw.h:76
BinaryFunctor * fStopFunctor
Definition: PndTrackDraw.h:96
FairTrackParP GetParamLast()
Definition: PndTrack.h:50
BinaryFunctor * fStartFunctor
Definition: PndTrackDraw.h:95
virtual void AddBoxesPndTrackCand(FairBoxSet *set, TObject *obj, Int_t i=0)
Int_t GetPidHypo() const
Definition: PndTrack.h:32
Bool_t fUseEventTime
Definition: PndTrackDraw.h:70
void Print()
Definition: PndTrack.cxx:39
FairTrackParP GetParamFirst()
Definition: PndTrack.h:49
PndTrackCandDraw * fTrackCandDraw
Definition: PndTrackDraw.h:85
void PndTrackDraw::Finish ( )
virtual

Action after each event

Definition at line 387 of file PndTrackDraw.cxx.

388 {
389 
390 }
virtual Double_t PndTrackDraw::GetTimeWindowMinus ( )
inlinevirtual

Definition at line 62 of file PndTrackDraw.h.

References fTimeWindowMinus.

62 {return fTimeWindowMinus;}
Double_t fTimeWindowMinus
Definition: PndTrackDraw.h:68
virtual Double_t PndTrackDraw::GetTimeWindowPlus ( )
inlinevirtual

Definition at line 61 of file PndTrackDraw.h.

References fTimeWindowPlus.

61 {return fTimeWindowPlus;}
Double_t fTimeWindowPlus
Definition: PndTrackDraw.h:67
TEveTrackList * PndTrackDraw::GetTrGroup ( Int_t  pid)

Definition at line 410 of file PndTrackDraw.cxx.

References fEventManager, fEveTrList, fTrList, fTrPr, i, name, and pid().

Referenced by PropagateTrack(), and PropagateTrackHelix().

411 {
412  std::ostringstream myStream;
413  myStream << pid;
414  std::string pidString(myStream.str());
415  fTrList=0;
416  for (Int_t i=0; i<fEveTrList->GetEntriesFast(); i++){
417  TEveTrackList *TrListIn=( TEveTrackList *) fEveTrList->At(i);
418  std::string name(TrListIn->GetName());
419  if ( name == pidString ) {
420  fTrList= TrListIn;
421  break;
422  }
423  }
424  if(fTrList ==0){
425  fTrPr=new TEveTrackPropagator();
426  fTrList= new TEveTrackList(pidString.c_str(),fTrPr );
427  fTrList->SetMainColor(fEventManager->Color(pid));
428  fEveTrList->Add(fTrList);
429  // gEve->AddElement( fTrList ,fEventManager );
430  fTrList->SetRnrLine(kTRUE);
431  }
432  return fTrList;
433 }
TObjArray * fEveTrList
Definition: PndTrackDraw.h:79
Int_t i
Definition: run_full.C:25
FairEventManager * fEventManager
Definition: PndTrackDraw.h:78
TEveTrackPropagator * fTrPr
Definition: PndTrackDraw.h:77
int pid()
TString name
TEveTrackList * fTrList
Definition: PndTrackDraw.h:81
InitStatus PndTrackDraw::Init ( )
virtual

Definition at line 54 of file PndTrackDraw.cxx.

References fEvent, fEventManager, fPndTrackList, fStartFunctor, fStopFunctor, fTrackCandDraw, fVerbose, PndTrackCandDraw::Init(), MaxEnergyLimit, MinEnergyLimit, and PEnergy.

55 {
56  //fPro = new FairGeanePro();
57  if (fVerbose > 1)
58  cout << "PndTrackDraw::Init()" << endl;
59  if (fPndTrackList == 0){
60  FairRootManager* fManager = FairRootManager::Instance();
61  fPndTrackList = (TClonesArray *) fManager->GetObject(GetName());
62  if (fPndTrackList == 0) {
63  cout << "PndTrackDraw::Init() branch " << GetName()
64  << " Not found! Task will be deactivated " << endl;
65  SetActive(kFALSE);
66  }
67  if (fVerbose > 2)
68  cout << "PndTrackDraw::Init() get track list" << fPndTrackList << endl;
69  //if(fVerbose>2) cout<< "PndTrackDraw::Init() create propagator" << endl;
70  fEventManager = FairEventManager::Instance();
71  if (fVerbose > 2)
72  cout << "PndTrackDraw::Init() get instance of FairEventManager "
73  << endl;
74  fEvent = "Current Event";
75  MinEnergyLimit = fEventManager->GetEvtMinEnergy();
76  MaxEnergyLimit = fEventManager->GetEvtMaxEnergy();
77  PEnergy = 0;
78 
80  }
81  fStartFunctor = new StopTime();
82  fStopFunctor = new StopTime();
83 
84  if (IsActive())
85  return kSUCCESS;
86  else
87  return kERROR;
88 }
int fVerbose
Definition: poormantracks.C:24
Double_t MinEnergyLimit
Definition: PndTrackDraw.h:91
FairEventManager * fEventManager
Definition: PndTrackDraw.h:78
Double_t MaxEnergyLimit
Definition: PndTrackDraw.h:92
TString fEvent
Definition: PndTrackDraw.h:80
TClonesArray * fPndTrackList
Definition: PndTrackDraw.h:76
BinaryFunctor * fStopFunctor
Definition: PndTrackDraw.h:96
BinaryFunctor * fStartFunctor
Definition: PndTrackDraw.h:95
virtual InitStatus Init()
PndTrackCandDraw * fTrackCandDraw
Definition: PndTrackDraw.h:85
Double_t PEnergy
Definition: PndTrackDraw.h:93
void PndTrackDraw::PropagateTrack ( FairTrackParP &  trackPar,
Int_t  pidHypo,
Int_t  color = -1,
TEveElement *  group = 0 
)
protected

Definition at line 287 of file PndTrackDraw.cxx.

References Double_t, fEventManager, fPro, fTrList, fTrPr, fVerbose, GetTrGroup(), mom, n, P, pos, and track.

288 {
289  // FIXME Defuncted the function. Not ready, yet??
290  return;
291  TVector3 posTrack = trackPar.GetPosition();
292  TVector3 momTrack = trackPar.GetMomentum();
293  Double_t charge = trackPar.GetQ();
294 
295  if (pidHypo == 0){
296  pidHypo = 211;
297  if (charge < 0)
298  pidHypo *= -1;
299  }
300 
301  if (color < 0) color = fEventManager->Color(pidHypo);
302 
303  Int_t Np = 100;
304 
305  TVector3 startU(1., 0., 0.);
306  TVector3 startV(0., 1., 0.);
307  fPro->PropagateFromPlane(startU, startV);
308 
309  TVector3 stopTrack(0., 0., posTrack.z() - Np);
310  fPro->PropagateToPlane(stopTrack, startU, startV);
311  FairTrackParP parResult;
312  fPro->setBackProp();
313  fPro->Propagate(&trackPar, &parResult, pidHypo);
314 
315  TVector3 posStart = parResult.GetPosition();
316  TVector3 momStart = parResult.GetMomentum();
317 
318  if (fVerbose > 1)
319  std::cout << "PosStart: " << posStart.X() << " " << posStart.Y() << " "
320  << posStart.Z() << std::endl;
321 
322  TParticle *P = new TParticle(pidHypo, 0, -1, -1, -1, -1, TLorentzVector(
323  momStart, 10), TLorentzVector(posStart, 0));
324 
325  fTrList = GetTrGroup(pidHypo);
326  TEveTrack *track = new TEveTrack(P, pidHypo, fTrPr);
327  track->SetLineColor(color);
328 
329  fPro->PropagateFromPlane(startU, startV);
330 
331 
332  Int_t index = 0;
333  for (Int_t n = -Np; n < Np; n++) {
334  if (n == 0)
335  continue;
336  TVector3 stopO(0., 0., posTrack.z() + (0.1) * n);
337  fPro->PropagateToPlane(stopO, startU, startV);
338  //FairTrackParP parResult;
339  if (n * momTrack.Z() < 0)
340  fPro->setBackProp();
341  fPro->Propagate(&trackPar, &parResult, pidHypo);
342 
343  if (fVerbose > 2)
344  std::cout << "ParResult " << n << ": " << parResult.GetX() << " "
345  << parResult.GetY() << " " << parResult.GetZ() << std::endl;
346 
347  track->SetPoint(index++, parResult.GetX(), parResult.GetY(),
348  parResult.GetZ());
349  TEveVector pos = TEveVector(parResult.GetX(), parResult.GetY(),
350  parResult.GetZ());
351  TEvePathMark *path = new TEvePathMark();
352  path->fV = pos;
353  path->fTime = n;
354  if (n == 0) {
355  TEveVector mom = TEveVector(parResult.GetPx(), parResult.GetPy(),
356  parResult.GetPz());
357  path->fP = mom;
358  track->SetPoint(index++, posTrack.X(), posTrack.Y(), posTrack.Z());
359  }
360  if (fVerbose > 3)
361  cout << "Path marker added " << path << endl;
362 #if ROOT_VERSION_CODE <= ROOT_VERSION(5,18,0)
363  track->AddPathMark(path);
364 #else
365  track->AddPathMark(*path);
366 #endif
367  if (fVerbose > 3)
368  cout << "Path marker added " << path << endl;
369  }
370  if (group != 0)
371  group->AddElement(track);
372  else
373  fTrList->AddElement(track);
374  if (fVerbose > 3)
375  cout << "track added " << track->GetName() << endl;
376 }
TVector3 pos
FairGeanePro * fPro
Definition: PndTrackDraw.h:83
int fVerbose
Definition: poormantracks.C:24
FairEventManager * fEventManager
Definition: PndTrackDraw.h:78
int n
TEveTrackPropagator * fTrPr
Definition: PndTrackDraw.h:77
Double_t mom
Definition: plot_dirc.C:14
Double_t
PndMCTrack * track
Definition: anaLmdCluster.C:89
TEveTrackList * GetTrGroup(Int_t pid)
TEveTrackList * fTrList
Definition: PndTrackDraw.h:81
GeV c P
void PndTrackDraw::PropagateTrackHelix ( FairTrackParP &  trackPar,
Int_t  pidHypo,
Int_t  color = -1,
TEveElement *  group = 0 
)
protected

Definition at line 224 of file PndTrackDraw.cxx.

References Double_t, fTrList, fTrPr, fVerbose, GetTrGroup(), mom, n, P, pos, PndHelixPropagator::PropagateByAngle(), PndHelixPropagator::PropagateToXYPos(), and track.

Referenced by Exec().

225 {
226  Int_t Np = 100;
227 
228  TVector3 posTrack = trackPar.GetPosition();
229  TVector3 momTrack = trackPar.GetMomentum();
230  Double_t charge = trackPar.GetQ();
231 
232  FairField* Field = FairRunAna::Instance()->GetField();
233  Double_t po[3], BB[3];
234  po[0]=0.;
235  po[1]=0.;
236  po[2]=0.;
237  Field->GetFieldValue(po,BB);
238  cout<<"Field Strength: "<<BB[2]/10.<<endl;
239 
240  PndHelixPropagator prop(BB[2]/10., posTrack, momTrack, charge); //Field is given in Gauss from GetField()
241  prop.PropagateToXYPos(TVector2(0,0));
242 
243  if (pidHypo == 0){
244  pidHypo = 211;
245  if (charge < 0)
246  pidHypo *= -1;
247  }
248 
249  TParticle *P = new TParticle(pidHypo, 0, -1, -1, -1, -1, TLorentzVector(momTrack, 10), TLorentzVector(posTrack, 0));
250 
251  fTrList = GetTrGroup(pidHypo);
252  TEveTrack *track = new TEveTrack(P, pidHypo, fTrPr);
253  track->SetLineColor(color);
254 
255  Int_t index = 0;
256  for (Int_t n = -Np; n < Np; n++){
257  FairTrackPar result = prop.PropagateByAngle(n);
258 
259  track->SetPoint(index++, result.GetX(), result.GetY(), result.GetZ());
260  TEveVector pos = TEveVector(result.GetX(), result.GetY(), result.GetZ());
261  TEvePathMark *path = new TEvePathMark();
262  path->fV = pos;
263  path->fTime = n;
264  if (n == 0) {
265  TEveVector mom = TEveVector(result.GetPx(), result.GetPy(),result.GetPz());
266  path->fP = mom;
267  track->SetPoint(index++, posTrack.X(), posTrack.Y(), posTrack.Z());
268  }
269  if (fVerbose > 3)
270  cout << "Path marker added " << path << endl;
271  #if ROOT_VERSION_CODE <= ROOT_VERSION(5,18,0)
272  track->AddPathMark(path);
273  #else
274  track->AddPathMark(*path);
275  #endif
276  if (fVerbose > 3)
277  cout << "Path marker added " << path << endl;
278  }
279  if (group != 0)
280  group->AddElement(track);
281  else
282  fTrList->AddElement(track);
283  if (fVerbose > 3)
284  cout << "track added " << track->GetName() << endl;
285 }
TVector3 pos
int fVerbose
Definition: poormantracks.C:24
int n
TEveTrackPropagator * fTrPr
Definition: PndTrackDraw.h:77
Double_t mom
Definition: plot_dirc.C:14
Double_t
PndMCTrack * track
Definition: anaLmdCluster.C:89
TEveTrackList * GetTrGroup(Int_t pid)
TEveTrackList * fTrList
Definition: PndTrackDraw.h:81
GeV c P
void PndTrackDraw::Reset ( )

Definition at line 392 of file PndTrackDraw.cxx.

References fArrows, fEventManager, fEveTrList, fListOfTracks, and i.

Referenced by Exec().

393 {
394  for (Int_t i=0; i<fEveTrList->GetEntriesFast(); i++){
395  TEveTrackList *ele=( TEveTrackList *) fEveTrList->At(i);
396  gEve->RemoveElement(ele,fEventManager);
397  }
398  fEveTrList->Clear();
399  for (size_t j = 0; j < fArrows.size(); j++){
400  gEve->RemoveElement(fArrows[j], fEventManager);
401  //delete(fArrows[j]);
402  }
403  if (fListOfTracks != 0){
404  gEve->RemoveElement(fListOfTracks, fEventManager);
405  //delete(fListOfTracks);
406  }
407  fArrows.clear();
408 }
TEveElementList * fListOfTracks
Definition: PndTrackDraw.h:89
TObjArray * fEveTrList
Definition: PndTrackDraw.h:79
Int_t i
Definition: run_full.C:25
FairEventManager * fEventManager
Definition: PndTrackDraw.h:78
std::vector< TEveArrow * > fArrows
Definition: PndTrackDraw.h:86
void PndTrackDraw::SetParContainers ( )
virtual

Definition at line 381 of file PndTrackDraw.cxx.

382 {
383 
384 }
void PndTrackDraw::SetTimeWindowMinus ( Double_t  val)
virtual

Definition at line 435 of file PndTrackDraw.cxx.

References fTimeWindowMinus, and val.

Referenced by eventDisplay_timebased().

436 {
438 }
Double_t val[nBoxes][nFEBox]
Definition: createCalib.C:11
Double_t fTimeWindowMinus
Definition: PndTrackDraw.h:68
void PndTrackDraw::SetTimeWindowPlus ( Double_t  val)
virtual

Definition at line 440 of file PndTrackDraw.cxx.

References fTimeWindowPlus, and val.

Referenced by eventDisplay_timebased().

441 {
443 }
Double_t val[nBoxes][nFEBox]
Definition: createCalib.C:11
Double_t fTimeWindowPlus
Definition: PndTrackDraw.h:67
void PndTrackDraw::SetVerbose ( Int_t  iVerbose)
inline

Set verbosity level. For this task and all of the subtasks.

Definition at line 51 of file PndTrackDraw.h.

References fVerbose, and iVerbose.

51 {fVerbose = iVerbose;};
int fVerbose
Definition: poormantracks.C:24
Int_t iVerbose

Member Data Documentation

std::vector<TEveArrow*> PndTrackDraw::fArrows
protected

Definition at line 86 of file PndTrackDraw.h.

Referenced by Exec(), and Reset().

Bool_t PndTrackDraw::fDoPropagation
protected

Definition at line 87 of file PndTrackDraw.h.

Referenced by Exec().

TString PndTrackDraw::fEvent
protected

Definition at line 80 of file PndTrackDraw.h.

Referenced by Init().

FairEventManager* PndTrackDraw::fEventManager
protected

Definition at line 78 of file PndTrackDraw.h.

Referenced by Exec(), GetTrGroup(), Init(), PropagateTrack(), and Reset().

TObjArray* PndTrackDraw::fEveTrList
protected

Definition at line 79 of file PndTrackDraw.h.

Referenced by GetTrGroup(), and Reset().

TEveElementList* PndTrackDraw::fListOfTracks
protected

Definition at line 89 of file PndTrackDraw.h.

Referenced by Exec(), and Reset().

TClonesArray* PndTrackDraw::fPndTrackList
protected

Definition at line 76 of file PndTrackDraw.h.

Referenced by Exec(), Init(), and PndTrackDraw().

FairGeanePro* PndTrackDraw::fPro
protected

Definition at line 83 of file PndTrackDraw.h.

Referenced by PropagateTrack().

BinaryFunctor* PndTrackDraw::fStartFunctor
protected

Definition at line 95 of file PndTrackDraw.h.

Referenced by Exec(), and Init().

Double_t PndTrackDraw::fStartTime

Definition at line 69 of file PndTrackDraw.h.

Referenced by Exec().

BinaryFunctor* PndTrackDraw::fStopFunctor
protected

Definition at line 96 of file PndTrackDraw.h.

Referenced by Exec(), and Init().

Double_t PndTrackDraw::fTimeWindowMinus

Definition at line 68 of file PndTrackDraw.h.

Referenced by Exec(), GetTimeWindowMinus(), and SetTimeWindowMinus().

Double_t PndTrackDraw::fTimeWindowPlus

Definition at line 67 of file PndTrackDraw.h.

Referenced by Exec(), GetTimeWindowPlus(), and SetTimeWindowPlus().

PndTrackCandDraw* PndTrackDraw::fTrackCandDraw
protected

Definition at line 85 of file PndTrackDraw.h.

Referenced by Exec(), Init(), PndTrackDraw(), and ~PndTrackDraw().

TEveTrackList* PndTrackDraw::fTrList
protected

Definition at line 81 of file PndTrackDraw.h.

Referenced by GetTrGroup(), PropagateTrack(), and PropagateTrackHelix().

TEveTrackPropagator* PndTrackDraw::fTrPr
protected

Definition at line 77 of file PndTrackDraw.h.

Referenced by GetTrGroup(), PropagateTrack(), and PropagateTrackHelix().

Bool_t PndTrackDraw::fUseEventTime

Definition at line 70 of file PndTrackDraw.h.

Referenced by Exec().

Double_t PndTrackDraw::MaxEnergyLimit
protected

Definition at line 92 of file PndTrackDraw.h.

Referenced by Init().

Double_t PndTrackDraw::MinEnergyLimit
protected

Definition at line 91 of file PndTrackDraw.h.

Referenced by Init().

Double_t PndTrackDraw::PEnergy
protected

Definition at line 93 of file PndTrackDraw.h.

Referenced by Init().


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