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

#include <PndSttFitTracks.h>

Inheritance diagram for PndSttFitTracks:

Public Member Functions

 PndSttFitTracks ()
 
 PndSttFitTracks (const char *name, const char *title="FairTask", PndSttTrackFitter *fitter=NULL)
 
virtual ~PndSttFitTracks ()
 
virtual InitStatus Init ()
 
virtual void Exec (Option_t *opt)
 
virtual void Finish ()
 
PndSttTrackFitterGetFitter ()
 
Int_t GetNofTracks ()
 
void UseFitter (PndSttTrackFitter *fitter)
 
void AddHitCollectionName (char *hitCollectionName)
 

Private Member Functions

void AddAllCollections ()
 
void AddHitCollection (char const *collectionName)
 
void SetParContainers ()
 
 ClassDef (PndSttFitTracks, 1)
 

Private Attributes

PndSttTrackFitterfFitter
 
TClonesArray * fTrackCandArray
 
TClonesArray * fTrackArray
 
TClonesArray * fHitArray
 
Int_t fNofTracks
 
std::vector< std::string > fHitCollectionNames
 
Bool_t fCollectionsComplete
 
TClonesArray * fTubeArray
 
PndGeoSttParfSttParameters
 

Detailed Description

Definition at line 31 of file PndSttFitTracks.h.

Constructor & Destructor Documentation

PndSttFitTracks::PndSttFitTracks ( )

Default constructor

Definition at line 29 of file PndSttFitTracks.cxx.

References fFitter, and fNofTracks.

30 {
31  fFitter = NULL;
32  fNofTracks = 0;
33 }
PndSttTrackFitter * fFitter
PndSttFitTracks::PndSttFitTracks ( const char *  name,
const char *  title = "FairTask",
PndSttTrackFitter fitter = NULL 
)

Standard constructor

Parameters
nameName of class
titleTask title
fitterPointer to STT track fitter concrete class

Definition at line 39 of file PndSttFitTracks.cxx.

References fCollectionsComplete, fFitter, fNofTracks, and SetTitle().

42  : FairTask(name)
43 {
44  fFitter = fitter;
45  fNofTracks = 0;
46  fCollectionsComplete = kFALSE;
47  SetTitle(title);
48 }
h_MC_angle SetTitle("MC truth: opening angle of #pi^{0}")
TString name
PndSttTrackFitter * fFitter
Bool_t fCollectionsComplete
PndSttFitTracks::~PndSttFitTracks ( )
virtual

Destructor

Definition at line 54 of file PndSttFitTracks.cxx.

References fHitCollectionNames.

55 {
56  fHitCollectionNames.clear();
57 }
std::vector< std::string > fHitCollectionNames

Member Function Documentation

void PndSttFitTracks::AddAllCollections ( )
private

Definition at line 194 of file PndSttFitTracks.cxx.

References AddHitCollection(), counter, fCollectionsComplete, and fHitCollectionNames.

Referenced by Exec().

195 {
197  {
198  for (size_t counter = 0; counter < fHitCollectionNames.size(); counter++)
199  {
201  }
202  fCollectionsComplete = kTRUE;
203  }
204 }
void AddHitCollection(char const *collectionName)
std::vector< std::string > fHitCollectionNames
int counter
Definition: ZeeAnalysis.C:59
Bool_t fCollectionsComplete
void PndSttFitTracks::AddHitCollection ( char const *  collectionName)
private

Definition at line 170 of file PndSttFitTracks.cxx.

References PndSttTrackFitter::AddHitCollection(), fFitter, and fHitArray.

Referenced by AddAllCollections().

171 {
172  // Get and check FairRootManager
173  FairRootManager
174  *ioman = FairRootManager::Instance();
175 
176  if (!ioman)
177  {
178  cout << "-E- PndSttFindTracks::AddHitCollection: "
179  << "RootManager not instantised!" << endl;
180  }
181 
182  // Get hit Array
183  fHitArray = (TClonesArray*) ioman->GetObject(hitCollectionName);
184 
185  if (!fHitArray)
186  {
187  cout << "-W- PndSttFindTracks::AddHitCollection: No " << hitCollectionName << " STT hit array!"
188  << endl;
189  }
190 
192 }
TClonesArray * fHitArray
PndSttTrackFitter * fFitter
virtual void AddHitCollection(TClonesArray *)
void PndSttFitTracks::AddHitCollectionName ( char *  hitCollectionName)

Definition at line 162 of file PndSttFitTracks.cxx.

References fHitCollectionNames.

Referenced by idealcomplete(), and RecoComplete().

163 {
164  string
165  newHitName(hitCollectionName);
166 
167  fHitCollectionNames.push_back(newHitName);
168 }
std::vector< std::string > fHitCollectionNames
PndSttFitTracks::ClassDef ( PndSttFitTracks  ,
 
)
private
void PndSttFitTracks::Exec ( Option_t *  opt)
virtual

Task execution

Definition at line 115 of file PndSttFitTracks.cxx.

References AddAllCollections(), PndSttTrackFitter::DoFit(), fFitter, fHitArray, fTrackArray, fTrackCandArray, fTubeArray, PndSttTube::GetPosition(), PndSttHit::GetTubeID(), i, and PndSttTrack::SetTrackCandIndex().

116 {
118 
119  if ( !fTrackCandArray )
120  return; // =>SG
121  fTrackArray->Clear();
122 
123  Int_t nTracks = fTrackCandArray->GetEntriesFast();
124 
125  for (Int_t iTrack=0; iTrack<nTracks; iTrack++)
126  {
127  PndTrackCand* pTrackCand = (PndTrackCand*) fTrackCandArray->At(iTrack);
128  if(!pTrackCand) continue;
129 
130  Int_t size = fTrackArray->GetEntriesFast();
131  new((*fTrackArray)[size]) PndSttTrack();
132  PndSttTrack* pTrack = (PndSttTrack*) fTrackArray->At(size);
133  pTrack->SetTrackCandIndex(iTrack);
134  pTrack->SetLink(FairLink("SttTrackCand", iTrack));
135 
136  fFitter->DoFit(pTrackCand, pTrack);
137 
138  }
139 
140  // reset hit coordinates
141  for(int i = 0; i < fHitArray->GetEntriesFast(); i++) {
142  PndSttHit *currenthit = (PndSttHit*) fHitArray->At(i);
143  if(!currenthit) continue;
144  // tubeID CHECK added
145  Int_t tubeID = currenthit->GetTubeID();
146  PndSttTube *tube = (PndSttTube*) fTubeArray->At(tubeID);
147  currenthit->SetX(tube->GetPosition().X());
148  currenthit->SetY(tube->GetPosition().Y());
149  currenthit->SetZ(tube->GetPosition().Z());
150  }
151 }
TClonesArray * fTrackCandArray
Int_t i
Definition: run_full.C:25
TClonesArray * fHitArray
virtual Int_t DoFit(PndTrackCand *pTrackCand, PndSttTrack *pTrack, Int_t pidHypo=211)=0
void SetTrackCandIndex(Int_t trackCandID)
Definition: PndSttTrack.h:78
TVector3 GetPosition()
Definition: PndSttTube.cxx:87
TClonesArray * fTubeArray
Int_t GetTubeID() const
Definition: PndSttHit.h:75
PndSttTrackFitter * fFitter
TClonesArray * fTrackArray
void PndSttFitTracks::Finish ( )
virtual

Finish at the end of each event

Definition at line 157 of file PndSttFitTracks.cxx.

158 {
159 }
PndSttTrackFitter* PndSttFitTracks::GetFitter ( )
inline

Accessors

Definition at line 67 of file PndSttFitTracks.h.

References fFitter.

67 { return fFitter; };
PndSttTrackFitter * fFitter
Int_t PndSttFitTracks::GetNofTracks ( )
inline

Definition at line 68 of file PndSttFitTracks.h.

References fNofTracks.

68 { return fNofTracks; };
InitStatus PndSttFitTracks::Init ( )
virtual

Initialisation at beginning of each event

Definition at line 63 of file PndSttFitTracks.cxx.

References fFitter, PndSttMapCreator::FillTubeArray(), fSttParameters, fTrackArray, fTrackCandArray, fTubeArray, PndSttTrackFitter::Init(), and PndSttTrackFitter::SetTubeArray().

64 {
65  // Check for Track fitter
66  if (! fFitter)
67  {
68  cout << "-E- PndSttFitTracks: No track fitter selected!" << endl;
69  return kERROR;
70  }
71 
72  // Get and check FairRootManager
73  FairRootManager
74  *ioman = FairRootManager::Instance();
75 
76  if (! ioman)
77  {
78  cout << "-E- PndSttFitTracks::Init: "
79  << "RootManager not instantised!" << endl;
80  return kFATAL;
81  }
82 
83  // Get SttTrack array CHECK add
84  fTrackCandArray = (TClonesArray*) ioman->GetObject("STTTrackCand"); //=>SG
85  if ( ! fTrackCandArray)
86  {
87  cout << "-E- PndSttFitTracks::Init: No SttTrackCand array!"
88  << endl;
89  return kERROR;
90  }
91 
92  // Create and register SttTrack array
93  fTrackArray = new TClonesArray("PndSttTrack",100);
94  ioman->Register("STTTrack", "STT", fTrackArray, kTRUE); // fPersistence); // CHECK
95 
96  // CHECK added
98  fTubeArray = mapper.FillTubeArray();
99 
100  // Call the Init method of the track fitter
101  fFitter->Init();
103 
104  return kSUCCESS;
105 }
TClonesArray * fTrackCandArray
virtual void Init()
PndGeoSttPar * fSttParameters
TClonesArray * fTubeArray
PndSttTrackFitter * fFitter
TClonesArray * fTrackArray
virtual void SetTubeArray(TClonesArray *tubeArray)=0
void PndSttFitTracks::SetParContainers ( )
private

Definition at line 109 of file PndSttFitTracks.cxx.

References fSttParameters, and rtdb.

109  {
110  FairRuntimeDb* rtdb = FairRunAna::Instance()->GetRuntimeDb();
111  fSttParameters = (PndGeoSttPar*) rtdb->getContainer("PndGeoSttPar");
112 }
PndGeoSttPar * fSttParameters
FairRuntimeDb * rtdb
Definition: hit_dirc.C:66
void PndSttFitTracks::UseFitter ( PndSttTrackFitter fitter)
inline

Set concrete track finder

Definition at line 72 of file PndSttFitTracks.h.

References fFitter.

72 { fFitter = fitter; };
PndSttTrackFitter * fFitter

Member Data Documentation

Bool_t PndSttFitTracks::fCollectionsComplete
private

Definition at line 89 of file PndSttFitTracks.h.

Referenced by AddAllCollections(), and PndSttFitTracks().

PndSttTrackFitter* PndSttFitTracks::fFitter
private

Definition at line 83 of file PndSttFitTracks.h.

Referenced by AddHitCollection(), Exec(), GetFitter(), Init(), PndSttFitTracks(), and UseFitter().

TClonesArray* PndSttFitTracks::fHitArray
private

Definition at line 86 of file PndSttFitTracks.h.

Referenced by AddHitCollection(), and Exec().

std::vector<std::string> PndSttFitTracks::fHitCollectionNames
private

Definition at line 88 of file PndSttFitTracks.h.

Referenced by AddAllCollections(), AddHitCollectionName(), and ~PndSttFitTracks().

Int_t PndSttFitTracks::fNofTracks
private

Definition at line 87 of file PndSttFitTracks.h.

Referenced by GetNofTracks(), and PndSttFitTracks().

PndGeoSttPar* PndSttFitTracks::fSttParameters
private

Definition at line 94 of file PndSttFitTracks.h.

Referenced by Init(), and SetParContainers().

TClonesArray* PndSttFitTracks::fTrackArray
private

Definition at line 85 of file PndSttFitTracks.h.

Referenced by Exec(), and Init().

TClonesArray* PndSttFitTracks::fTrackCandArray
private

Definition at line 84 of file PndSttFitTracks.h.

Referenced by Exec(), and Init().

TClonesArray* PndSttFitTracks::fTubeArray
private

from parameters array of PndSttTube

Definition at line 92 of file PndSttFitTracks.h.

Referenced by Exec(), and Init().


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