FairRoot/PandaRoot
Public Member Functions | Private Member Functions | Private Attributes | List of all members
PndGemFindTracks Class Reference

Task class for track finding in the Gem. More...

#include <PndGemFindTracks.h>

Inheritance diagram for PndGemFindTracks:

Public Member Functions

 PndGemFindTracks ()
 
 PndGemFindTracks (const char *name, const char *title="PndTask", PndGemTrackFinder *finder=NULL)
 
virtual ~PndGemFindTracks ()
 
virtual InitStatus Init ()
 
virtual void Exec (Option_t *opt)
 
virtual void Finish ()
 
virtual void SetParContainers ()
 
PndGemTrackFinderGetFinder ()
 
Int_t GetNofTracks () const
 
TString GetUseHitOrDigi () const
 
void UseFinder (PndGemTrackFinder *finder)
 
void SetUseHitOrDigi (TString useHitOrDigi="hit")
 

Private Member Functions

 ClassDef (PndGemFindTracks, 1)
 

Private Attributes

PndGemDigiParfDigiPar
 
PndGemTrackFinderfFinder
 Pointer to TrackFinder concrete class. More...
 
TClonesArray * fGemHitOrDigiArray
 
TClonesArray * fTrackArray
 Output array of PndTracks. More...
 
TClonesArray * fTrackCandArray
 Output array of PndTrackCands. More...
 
Int_t fNofTracks
 Number of created tracks. More...
 
TString fUseHitOrDigi
 Choose use hits or digis, default: hits. More...
 
TStopwatch fTimer
 
Int_t fTNofEvents
 
Int_t fTNofTracks
 
Double_t fTTime
 

Detailed Description

Task class for track finding in the Gem.

Author
R. Karabowicz r.kar.nosp@m.abow.nosp@m.icz@g.nosp@m.si.d.nosp@m.e
Date
19.03.2009 Uses as track finding algorithm classes derived from PndGemTrackFinder. Input: TClonesArray of PndGemHit or
Returns
TClonesArray of PndGemTrack

Definition at line 29 of file PndGemFindTracks.h.

Constructor & Destructor Documentation

PndGemFindTracks::PndGemFindTracks ( )

Default constructor

Definition at line 44 of file PndGemFindTracks.cxx.

References fDigiPar, fFinder, fGemHitOrDigiArray, fNofTracks, fTNofEvents, fTNofTracks, fTrackArray, fTrackCandArray, fTTime, and fUseHitOrDigi.

44  {
45  fDigiPar = NULL;
46  fFinder = NULL;
47  fGemHitOrDigiArray = NULL;
48  fTrackArray = NULL;
49  fTrackCandArray = NULL;
50  fNofTracks = 0;
51  fUseHitOrDigi = "hit";
52 
53  fTTime = 0.;
54  fTNofTracks = 0;
55  fTNofEvents = 0;
56 }
TClonesArray * fTrackCandArray
Output array of PndTrackCands.
TClonesArray * fTrackArray
Output array of PndTracks.
Int_t fNofTracks
Number of created tracks.
TClonesArray * fGemHitOrDigiArray
PndGemDigiPar * fDigiPar
TString fUseHitOrDigi
Choose use hits or digis, default: hits.
PndGemTrackFinder * fFinder
Pointer to TrackFinder concrete class.
PndGemFindTracks::PndGemFindTracks ( const char *  name,
const char *  title = "PndTask",
PndGemTrackFinder finder = NULL 
)

Standard constructor

Parameters
nameName of class
titleTask title
finderFinder algorithm

Definition at line 61 of file PndGemFindTracks.cxx.

References fDigiPar, fFinder, fGemHitOrDigiArray, finder, fNofTracks, fTNofEvents, fTNofTracks, fTrackArray, fTrackCandArray, fTTime, fUseHitOrDigi, and SetTitle().

64  : FairTask(name) {
65  fDigiPar = NULL;
66  fFinder = finder;
67  fGemHitOrDigiArray = NULL;
68  fTrackArray = NULL;
69  fTrackCandArray = NULL;
70  fNofTracks = 0;
71  fUseHitOrDigi = "hit";
72 
73  fTTime = 0.;
74  fTNofTracks = 0;
75  fTNofEvents = 0;
76  SetTitle(title);
77 }
TClonesArray * fTrackCandArray
Output array of PndTrackCands.
TClonesArray * fTrackArray
Output array of PndTracks.
Int_t fNofTracks
Number of created tracks.
PndStraightLineTrackFinderTask * finder
TClonesArray * fGemHitOrDigiArray
h_MC_angle SetTitle("MC truth: opening angle of #pi^{0}")
PndGemDigiPar * fDigiPar
TString name
TString fUseHitOrDigi
Choose use hits or digis, default: hits.
PndGemTrackFinder * fFinder
Pointer to TrackFinder concrete class.
PndGemFindTracks::~PndGemFindTracks ( )
virtual

Destructor

Definition at line 83 of file PndGemFindTracks.cxx.

References fTrackArray, and fTrackCandArray.

83  {
84  fTrackArray ->Delete();
85  fTrackCandArray->Delete();
86 }
TClonesArray * fTrackCandArray
Output array of PndTrackCands.
TClonesArray * fTrackArray
Output array of PndTracks.

Member Function Documentation

PndGemFindTracks::ClassDef ( PndGemFindTracks  ,
 
)
private
void PndGemFindTracks::Exec ( Option_t *  opt)
virtual

Task execution

Definition at line 164 of file PndGemFindTracks.cxx.

References PndGemTrackFinder::DoFind(), fFinder, fGemHitOrDigiArray, fNofTracks, fTimer, fTNofEvents, fTNofTracks, fTrackArray, fTrackCandArray, and fTTime.

164  {
165 
166  fTimer.Start();
167 
168  fTrackArray->Delete();
169  fTrackCandArray->Delete();
170 
172 
173 
174  fTimer.Stop();
175  fTTime += fTimer.RealTime();
177  fTNofEvents += 1;
178 }
virtual Int_t DoFind(TClonesArray *hitOrDigiArray, TClonesArray *trackArray, TClonesArray *trackCandArray)=0
TClonesArray * fTrackCandArray
Output array of PndTrackCands.
TClonesArray * fTrackArray
Output array of PndTracks.
Int_t fNofTracks
Number of created tracks.
TClonesArray * fGemHitOrDigiArray
PndGemTrackFinder * fFinder
Pointer to TrackFinder concrete class.
void PndGemFindTracks::Finish ( )
virtual

Finish at the end of each event

Definition at line 184 of file PndGemFindTracks.cxx.

References Double_t, fFinder, PndGemTrackFinder::Finish(), fTNofEvents, fTNofTracks, fTrackArray, fTrackCandArray, and fTTime.

184  {
185  fTrackArray->Delete();
186  fTrackCandArray->Delete();
187 
188  cout << "-------------------- " << fName.Data() << " : Summary ---------------------" << endl;
189  cout << " Events: " << setw(10) << fTNofEvents << endl;
190  cout << " Tracks: " << setw(10) << fTNofTracks << " ( " << (Double_t)fTNofTracks/((Double_t)fTNofEvents) << " per event )" << endl;
191  cout << " Time: " << setw(10) << fTTime << " ( " << fTTime/((Double_t)fTNofEvents) << " per event )" << endl;
192  cout << " ( " << fTTime/((Double_t)fTNofTracks) << " per track )" << endl;
193  cout << "---------------------------------------------------------------------" << endl;
194 
195  fFinder->Finish();
196 }
TClonesArray * fTrackCandArray
Output array of PndTrackCands.
PndRiemannTrack track
Definition: RiemannTest.C:33
TClonesArray * fTrackArray
Output array of PndTracks.
virtual void Finish()
Double_t
PndGemTrackFinder * fFinder
Pointer to TrackFinder concrete class.
PndGemTrackFinder* PndGemFindTracks::GetFinder ( )
inline

Accessors

Definition at line 67 of file PndGemFindTracks.h.

References fFinder.

67 { return fFinder; };
PndGemTrackFinder * fFinder
Pointer to TrackFinder concrete class.
Int_t PndGemFindTracks::GetNofTracks ( ) const
inline

Definition at line 68 of file PndGemFindTracks.h.

References fNofTracks.

68 { return fNofTracks; };
Int_t fNofTracks
Number of created tracks.
TString PndGemFindTracks::GetUseHitOrDigi ( ) const
inline

Definition at line 69 of file PndGemFindTracks.h.

References fUseHitOrDigi.

69 { return fUseHitOrDigi; };
TString fUseHitOrDigi
Choose use hits or digis, default: hits.
InitStatus PndGemFindTracks::Init ( )
virtual

Initialisation at beginning of each event

Definition at line 92 of file PndGemFindTracks.cxx.

References fDigiPar, fFinder, fGemHitOrDigiArray, fTrackArray, fTrackCandArray, fUseHitOrDigi, PndGemDigiPar::GetNStations(), and PndGemTrackFinder::Init().

92  {
93 
94  // Check for Track finder
95  if( !fFinder ) {
96  cout << "-W- PndGemFindTracks::Init: No track finder selected!" << endl;
97  return kERROR;
98  }
99 
100  // Get and check FairRootManager
101  FairRootManager* ioman = FairRootManager::Instance();
102  if( !ioman ) {
103  cout << "-E- PndGemFindTracks::Init: "
104  << "RootManager not instantised!" << endl;
105  return kFATAL;
106  }
107 
108  if("hit" == fUseHitOrDigi) {
109  cout << "-I- PndGemFindTracks::Init: Works on hits!" << endl;
110 
111  // Get Gem hit Array
112  fGemHitOrDigiArray = (TClonesArray*) ioman->GetObject("GEMHit");
113  if ( !fGemHitOrDigiArray ) {
114  cout << "-W- PndGemFindTracks::Init: No PndGemHit array!" << endl;
115  return kERROR;
116  }
117  }
118 
119  if("digi" == fUseHitOrDigi) {
120  cout << "-I- PndGemFindTracks::Init: Works on digis!" << endl;
121 
122  // Get Gem digi Array
123  fGemHitOrDigiArray = (TClonesArray*) ioman->GetObject("GEMDigi");
124  if ( !fGemHitOrDigiArray ) {
125  cout << "-W- PndGemFindTracks::Init: No PndGemDigi array!" << endl;
126  return kERROR;
127  }
128  }
129 
130  // Create and register PndTrack array
131  fTrackArray = new TClonesArray("PndTrack",100);
132  ioman->Register("GEMTrack", "Gem Tracks", fTrackArray, kTRUE);
133 
134  // Create and register PndTrackCand array
135  fTrackCandArray = new TClonesArray("PndTrackCand",100);
136  ioman->Register("GEMTrackCand", "Gem Track Cands", fTrackCandArray, kTRUE);
137 
138  // Call the Init method of the track finder
139  fFinder->Init();
140 
141  cout << "-I- " << fName.Data() << "::Init(). There are " << fDigiPar->GetNStations() << " GEM stations." << endl;
142  cout << "-I- " << fName.Data() << "::Init(). Initialization succesfull." << endl;
143 
144  return kSUCCESS;
145 }
TClonesArray * fTrackCandArray
Output array of PndTrackCands.
TClonesArray * fTrackArray
Output array of PndTracks.
TClonesArray * fGemHitOrDigiArray
PndGemDigiPar * fDigiPar
virtual void Init()
Int_t GetNStations()
Definition: PndGemDigiPar.h:45
TString fUseHitOrDigi
Choose use hits or digis, default: hits.
PndGemTrackFinder * fFinder
Pointer to TrackFinder concrete class.
void PndGemFindTracks::SetParContainers ( )
virtual

SetParContainers

Definition at line 151 of file PndGemFindTracks.cxx.

References fDigiPar, and rtdb.

151  {
152  FairRunAna* ana = FairRunAna::Instance();
153  FairRuntimeDb* rtdb = ana->GetRuntimeDb();
154  rtdb->getContainer("FairBaseParSet");
155  rtdb->getContainer("PndGeoPassivePar");
156 
157  fDigiPar = (PndGemDigiPar*) rtdb->getContainer("PndGemDetectors");
158 }
Digitization Parameter Class for GEM part.
Definition: PndGemDigiPar.h:31
FairRuntimeDb * rtdb
Definition: hit_dirc.C:66
PndGemDigiPar * fDigiPar
void PndGemFindTracks::SetUseHitOrDigi ( TString  useHitOrDigi = "hit")
inline

Set use digi or hits Option: "hit/chit/digi", Default: "hit"

Definition at line 78 of file PndGemFindTracks.h.

References fUseHitOrDigi.

Referenced by gem_boxTracksN(), gem_findTracks(), gem_idealTracks(), locT_all(), locT_theta(), QAmacro_gem_2(), RecoComplete(), and TB_gem_CluHiTra().

78 { fUseHitOrDigi = useHitOrDigi; };
TString fUseHitOrDigi
Choose use hits or digis, default: hits.
void PndGemFindTracks::UseFinder ( PndGemTrackFinder finder)
inline

Set concrete track finder

Definition at line 73 of file PndGemFindTracks.h.

References fFinder, and finder.

Referenced by gem_boxTracksN(), gem_findTracks(), gem_idealTracks(), locT_all(), locT_theta(), QAmacro_gem_2(), RecoComplete(), and TB_gem_CluHiTra().

73 { fFinder = finder; };
PndStraightLineTrackFinderTask * finder
PndGemTrackFinder * fFinder
Pointer to TrackFinder concrete class.

Member Data Documentation

PndGemDigiPar* PndGemFindTracks::fDigiPar
private

Definition at line 78 of file PndGemFindTracks.h.

Referenced by Init(), PndGemFindTracks(), and SetParContainers().

PndGemTrackFinder* PndGemFindTracks::fFinder
private

Pointer to TrackFinder concrete class.

Digitisation parameters

Definition at line 85 of file PndGemFindTracks.h.

Referenced by Exec(), Finish(), GetFinder(), Init(), PndGemFindTracks(), and UseFinder().

TClonesArray* PndGemFindTracks::fGemHitOrDigiArray
private

Definition at line 86 of file PndGemFindTracks.h.

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

Int_t PndGemFindTracks::fNofTracks
private

Number of created tracks.

Definition at line 89 of file PndGemFindTracks.h.

Referenced by Exec(), GetNofTracks(), and PndGemFindTracks().

TStopwatch PndGemFindTracks::fTimer
private

Definition at line 92 of file PndGemFindTracks.h.

Referenced by Exec().

Int_t PndGemFindTracks::fTNofEvents
private

Definition at line 93 of file PndGemFindTracks.h.

Referenced by Exec(), Finish(), and PndGemFindTracks().

Int_t PndGemFindTracks::fTNofTracks
private

Definition at line 94 of file PndGemFindTracks.h.

Referenced by Exec(), Finish(), and PndGemFindTracks().

TClonesArray* PndGemFindTracks::fTrackArray
private

Output array of PndTracks.

Definition at line 87 of file PndGemFindTracks.h.

Referenced by Exec(), Finish(), Init(), PndGemFindTracks(), and ~PndGemFindTracks().

TClonesArray* PndGemFindTracks::fTrackCandArray
private

Output array of PndTrackCands.

Definition at line 88 of file PndGemFindTracks.h.

Referenced by Exec(), Finish(), Init(), PndGemFindTracks(), and ~PndGemFindTracks().

Double_t PndGemFindTracks::fTTime
private

Definition at line 95 of file PndGemFindTracks.h.

Referenced by Exec(), Finish(), and PndGemFindTracks().

TString PndGemFindTracks::fUseHitOrDigi
private

Choose use hits or digis, default: hits.

Definition at line 90 of file PndGemFindTracks.h.

Referenced by GetUseHitOrDigi(), Init(), PndGemFindTracks(), and SetUseHitOrDigi().


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