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

#include <PndMdtTrkFinder.h>

Inheritance diagram for PndMdtTrkFinder:

Public Member Functions

 PndMdtTrkFinder ()
 
 ~PndMdtTrkFinder ()
 
virtual InitStatus Init ()
 
virtual void Exec (Option_t *opt)
 
virtual void SetParContainers ()
 

Private Member Functions

PndMdtTrkAddTrk (PndMdtTrk *track)
 
 ClassDef (PndMdtTrkFinder, 1)
 

Private Attributes

TClonesArray * fHitArray
 
TClonesArray * fTrkArray
 

Detailed Description

Definition at line 19 of file PndMdtTrkFinder.h.

Constructor & Destructor Documentation

PndMdtTrkFinder::PndMdtTrkFinder ( )

Default constructor

Definition at line 33 of file PndMdtTrkFinder.cxx.

33  :
34  FairTask(" MDT Tracklet Finder") {
35 }
PndMdtTrkFinder::~PndMdtTrkFinder ( )

Destructor

Definition at line 39 of file PndMdtTrkFinder.cxx.

39 { }

Member Function Documentation

PndMdtTrk * PndMdtTrkFinder::AddTrk ( PndMdtTrk track)
private

Definition at line 131 of file PndMdtTrkFinder.cxx.

References fTrkArray.

131  {
132  // Creates a new hit in the TClonesArray.
133 
134  // Float_t chi2=0;
135  // for (Int_t ll=1; ll<10; ll++)
136  // {
137  // if (track->GetHitBit(ll)==0) continue;
138  // if (ll==1)
139  // chi2 = chi2 + (track->GetHit(ll)/1.5)*(track->GetHitAngle(ll)/1.5); // manual correction for the first layer
140  // else
141  // chi2 = chi2 + track->GetHitAngle(ll)*track->GetHitAngle(ll);
142  // }
143  // track->SetChi2(chi2);
144 
145  TClonesArray& trkRef = *fTrkArray;
146  Int_t size = trkRef.GetEntriesFast();
147  return new(trkRef[size]) PndMdtTrk(*track);
148 }
TClonesArray * fTrkArray
PndMdtTrkFinder::ClassDef ( PndMdtTrkFinder  ,
 
)
private
void PndMdtTrkFinder::Exec ( Option_t *  opt)
virtual

Virtual method Exec

Definition at line 97 of file PndMdtTrkFinder.cxx.

References Bool_t, fHitArray, fTrkArray, and nHits.

98 {
99  // Reset output array
100  fTrkArray->Delete();
101 
102  std::vector<PndMdtTrk*> fTrklets;
103  std::vector<PndMdtTrk*>::iterator tit = fTrklets.begin();
104  std::vector<PndMdtTrk*>::iterator tnd = fTrklets.end();
105  std::map<unsigned long, std::vector<PndMdtHit*> > fTrkHitMap;
106  //
107  Int_t nHits = fHitArray->GetEntriesFast();
108 
109  for(Int_t ihit=0; ihit < nHits; ++ ihit)
110  {
111  PndMdtHit* aHit = (PndMdtHit*)fHitArray->At(ihit);
112 
113  Bool_t NotUsed = kTRUE;
114  for( ; tit != tnd; ++tit){
115  //PndMdtTrk* aTrk = *tit; //[R.K. 01/2017] unused variable?
116 
117  }
118 
119  if(NotUsed){
120  PndMdtTrk* aTrk = new PndMdtTrk();
121  unsigned long fPointer = (unsigned long) aTrk;
122  fTrkHitMap[fPointer].push_back(aHit);//a track and its hits
123  fTrklets.push_back(aTrk);
124  }
125  }
126 }
TClonesArray * fHitArray
int nHits
Definition: RiemannTest.C:16
TClonesArray * fTrkArray
InitStatus PndMdtTrkFinder::Init ( )
virtual

Virtual method Init

Definition at line 45 of file PndMdtTrkFinder.cxx.

References fHitArray, and fTrkArray.

45  {
46  cout << "-I- PndMdtTrkFinder::Init: "
47  << "INITIALIZATION *********************" << endl;
48 
49  //FairRun* sim = FairRun::Instance(); //[R.K. 01/2017] unused variable?
50  //FairRuntimeDb* rtdb=sim->GetRuntimeDb(); //[R.K. 01/2017] unused variable?
51 
52  // Get RootManager
53  FairRootManager* ioman = FairRootManager::Instance();
54  if ( ! ioman ) {
55  cout << "-E- PndMdtTrkFinder::Init: "
56  << "RootManager not instantiated!" << endl;
57  return kFATAL;
58  }
59 
60  fHitArray = (TClonesArray*) ioman->GetObject("MdtHit");
61  if ( ! fHitArray ) {
62  cout << "-W- PndMdtTrkFinder::Init: "
63  << "No MdtHit array!" << endl;
64  return kERROR;
65  }
66 
67  // Create and register output array
68  fTrkArray = new TClonesArray("PndMdtTrk");
69 
70  ioman->Register("MdtTrk","Mdt",fTrkArray,kTRUE);
71 
72  cout << "-I- PndMdtTrkFinder: Intialization successfull" << endl;
73 
74  return kSUCCESS;
75 
76 }
TClonesArray * fHitArray
TClonesArray * fTrkArray
void PndMdtTrkFinder::SetParContainers ( )
virtual

Definition at line 80 of file PndMdtTrkFinder.cxx.

References run.

80  {
81 
82  // Get run and runtime database
83  FairRun* run = FairRun::Instance();
84  if ( ! run ) Fatal("PndMdtTrkFinder:: SetParContainers", "No analysis run");
85 
86  FairRuntimeDb* db = run->GetRuntimeDb();
87  if ( ! db ) Fatal("PndMdtTrkFinder:: SetParContainers", "No runtime database");
88 
89  // Get Mdt Reconstruction parameter container
90  //fRecoPar = (PndMdtRecoPar*) db->getContainer("PndMdtRecoPar");
91 
92 }
Int_t run
Definition: autocutx.C:47

Member Data Documentation

TClonesArray* PndMdtTrkFinder::fHitArray
private

Input array of PndMdtHit

Definition at line 47 of file PndMdtTrkFinder.h.

Referenced by Exec(), and Init().

TClonesArray* PndMdtTrkFinder::fTrkArray
private

Output array of PndMdtTrk

Definition at line 50 of file PndMdtTrkFinder.h.

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


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