14 #include "FairRootManager.h"
16 #include "FairRunAna.h"
17 #include "FairRuntimeDb.h"
18 #include "FairTrackParH.h"
22 #include "TClonesArray.h"
23 #include "TGeoManager.h"
24 #include "TGeoVolume.h"
26 #include "TGeoMatrix.h"
34 FairTask(
" MDT Tracklet Finder") {
46 cout <<
"-I- PndMdtTrkFinder::Init: "
47 <<
"INITIALIZATION *********************" << endl;
53 FairRootManager* ioman = FairRootManager::Instance();
55 cout <<
"-E- PndMdtTrkFinder::Init: "
56 <<
"RootManager not instantiated!" << endl;
60 fHitArray = (TClonesArray*) ioman->GetObject(
"MdtHit");
62 cout <<
"-W- PndMdtTrkFinder::Init: "
63 <<
"No MdtHit array!" << endl;
68 fTrkArray =
new TClonesArray(
"PndMdtTrk");
70 ioman->Register(
"MdtTrk",
"Mdt",
fTrkArray,kTRUE);
72 cout <<
"-I- PndMdtTrkFinder: Intialization successfull" << endl;
83 FairRun*
run = FairRun::Instance();
84 if ( ! run ) Fatal(
"PndMdtTrkFinder:: SetParContainers",
"No analysis run");
86 FairRuntimeDb* db = run->GetRuntimeDb();
87 if ( ! db ) Fatal(
"PndMdtTrkFinder:: SetParContainers",
"No runtime database");
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;
109 for(Int_t ihit=0; ihit <
nHits; ++ ihit)
114 for( ; tit != tnd; ++tit){
121 unsigned long fPointer = (
unsigned long) aTrk;
122 fTrkHitMap[fPointer].push_back(aHit);
123 fTrklets.push_back(aTrk);
146 Int_t size = trkRef.GetEntriesFast();
147 return new(trkRef[size])
PndMdtTrk(*track);
virtual void Exec(Option_t *opt)
PndMdtTrk * AddTrk(PndMdtTrk *track)
virtual void SetParContainers()
virtual InitStatus Init()