11 #include "FairRootManager.h"
12 #include "FairRunAna.h"
13 #include "FairRuntimeDb.h"
14 #include "FairBaseParSet.h"
17 #include "TClonesArray.h"
62 FairRootManager* ioman = FairRootManager::Instance();
64 std::cout <<
"-E- PndGemIdealPatternRecoTask::Init: "
65 <<
"RootManager not instantised!" << std::endl;
69 fMCTrackArr = (TClonesArray*) ioman->GetObject(
"MCTrack");
71 std::cout <<
"-W- PndGemIdealPatternRecoTask::Init: No MCTrack array!" << std::endl;
75 fGemPointArr = (TClonesArray*) ioman->GetObject(
"GEMPoint");
77 std::cout <<
"-W- PndGemIdealPatternRecoTask::Init: No PndGemPoint array!" << std::endl;
80 fGemHitArr = (TClonesArray*) ioman->GetObject(
"GEMHit");
82 std::cout <<
"-W- PndGemIdealPatternRecoTask::Init: No PndGemHit array!" << std::endl;
90 std::cout <<
"PndGemIdealPatternRecoTask::Init() finished" << std::endl;
100 FairRunAna* ana = FairRunAna::Instance();
101 FairRuntimeDb*
rtdb = ana->GetRuntimeDb();
102 rtdb->getContainer(
"FairBaseParSet");
103 rtdb->getContainer(
"PndGeoPassivePar");
113 std::map<int,PndTrackCand*> cands;
117 for(
int ihit=0;ihit<
nhits;++ihit){
119 FairHit *
hit = gemHit;
120 int index = hit->GetRefIndex();
121 assert(index<npoints);
123 FairMCPoint *
point = gemPoint;
124 int trackId = point->GetTrackID();
125 if(cands[trackId]==NULL) {
139 cands[trackId]->
AddHit(FairRootManager::Instance()->GetBranchId(
"GEMHit"),ihit,gemHit->
GetPosition().Mag());
142 for(std::map<int,PndTrackCand*>::iterator iter=cands.begin();
143 iter!=cands.end();++iter){
TClonesArray * fGemPointArr
TClonesArray * fMCTrackArr
virtual void Exec(Option_t *opt)
PndGemIdealPatternRecoTask()
void AddHit(UInt_t detId, UInt_t hitId, Double_t rho)
virtual InitStatus Init()
virtual ~PndGemIdealPatternRecoTask()
TClonesArray * fGemHitArr
Task class for track finding.
TClonesArray * fPndTrackCandArr
virtual void SetParContainers()
TVector3 GetPosition() const