12 #include "FairRootManager.h"
13 #include "FairDetector.h"
15 #include "FairRuntimeDb.h"
18 #include "TClonesArray.h"
19 #include "TGeoManager.h"
20 #include "TGeoVolume.h"
22 #include "TGeoMatrix.h"
33 FairTask(
"Ideal MDT Tracklet Producer") {
47 cout <<
"-I- PndMdtTrkProducerIdeal::Init: "
48 <<
"INITIALIZATION *********************" << endl;
54 FairRootManager* ioman = FairRootManager::Instance();
56 cout <<
"-E- PndMdtTrkProducerIdeal::Init: "
57 <<
"RootManager not instantiated!" << endl;
62 fMCArray = (TClonesArray*) ioman->GetObject(
"MCTrack");
64 cout <<
"-W- PndMdtTrkProducerIdeal::Init: "
65 <<
"No MCTrack array!" << endl;
69 fPointArray = (TClonesArray*) ioman->GetObject(
"MdtPoint");
71 cout <<
"-W- PndMdtTrkProducerIdeal::Init: "
72 <<
"No MdtPoint array!" << endl;
76 fHitArray = (TClonesArray*) ioman->GetObject(
"MdtHit");
78 cout <<
"-W- PndMdtTrkProducerIdeal::Init: "
79 <<
"No MdtHit array!" << endl;
84 fTrkArray =
new TClonesArray(
"PndMdtTrk");
86 ioman->Register(
"MdtTrk",
"Mdt",
fTrkArray,kTRUE);
88 cout <<
"-I- PndMdtTrkProducerIdeal: Intialization successfull" << endl;
101 if ( !
fTrkArray ) Fatal(
"Exec",
"No TrkArray");
106 if (nHits==0)
return;
113 Int_t nMCTrack =
fMCArray->GetEntriesFast();
115 for (Int_t iMc=0; iMc<nMCTrack; iMc++) {
121 for (Int_t iHit=0; iHit<
nHits; iHit++) {
124 if (mdtPoint->GetTrackID()!= iMc)
continue;
140 if (mdtCount>0)
AddTrk(mdtTrk);
152 Int_t size = trkRef.GetEntriesFast();
153 return new(trkRef[size])
PndMdtTrk(*track);
PndMdtTrk * AddTrk(PndMdtTrk *track)
Short_t GetLayerID() const
Int_t GetNPoints(DetectorId detId) const
void SetHitIndex(Int_t lay, Int_t trackId)
void SetModule(Int_t mod)
~PndMdtTrkProducerIdeal()
void SetHitCount(Int_t hit)
TClonesArray * fPointArray
virtual void Exec(Option_t *opt)
Short_t GetModule() const
virtual InitStatus Init()