12 #include "TClonesArray.h"
13 #include "TParticlePDG.h"
20 #include "FairRootManager.h"
23 #include "FairRuntimeDb.h"
24 #include "../pnddata/PndMCTrack.h"
38 fBranchName(
"MVDPoint"),
42 fTrackOutputArray(NULL)
50 FairRootManager* ioman = FairRootManager::Instance();
52 std::cout <<
"-E- PndMvdPidIdealTask::Init: "<<
"RootManager not instantiated!" << std::endl;
58 std::cout <<
"-W- PndMvdPidIdealTask::Init: "<<
"No "<<
fBranchName<<
" array!" << std::endl;
62 fMcArray=(TClonesArray*) ioman->GetObject(
"MCTrack");
64 std::cout <<
"-W- PndMvdPidIdealTask::Init: "<<
"No McTruth array!" << std::endl;
69 ioman->Register(
"PndMvdPidCand",
"PndMvd ideal tracklets",
fTrackOutputArray, kTRUE);
72 std::cout <<
"-W- PndMvdPidIdealTask::Init: "<<
"No pid algorithm named '"<<
fAlgoName <<
"'! Names are 'ideal', 'simple', 'advanced'" << std::endl;
95 std::map<int, PndMvdPidCand*> pidcand;
99 int track = mvdpoint->GetTrackID();
103 double dE = mvdpoint->GetEnergyLoss();
105 mvdpoint->Momentum(momentum);
107 pidcand[
track]->AddMvdHit(dE, dx, momentum.Mag());
111 for(std::map<int, PndMvdPidCand*>::iterator it=pidcand.begin();it!=pidcand.end();it++) {
112 int track = it->first;
121 new ((*fTrackOutputArray)[size])
PndMvdPidCand(*(pidcand[track]));
static void CalcLikelihood(PndMvdPidCand *cand)
PndMvdPidIdealTask(const TString algoName="ideal")
TVector3 GetPositionOut() const
static void CalcLikelihood(PndMvdPidCand *cand)
static void CalcLikelihood(PndMvdPidCand *cand)
TClonesArray * fTrackOutputArray
TClonesArray * fPointArray
TVector3 GetPosition() const
virtual void SetParContainers()
virtual void Exec(Option_t *opt)
virtual InitStatus Init()