8 #include "TClonesArray.h"
9 #include "TGeoManager.h"
10 #include "FairRootManager.h"
17 #include "FairRunAna.h"
18 #include "FairRuntimeDb.h"
19 #include "FairGeoVector.h"
52 FairRootManager* ioman = FairRootManager::Instance();
56 std::cout <<
"-E- PndFtofHitProducerIdeal::Init: "
57 <<
"RootManager not instantiated!" << std::endl;
66 std::cout <<
"-W- PndFtofHitProducerIdeal::Init: "
67 <<
"No FtofPoint array!" << std::endl;
74 fHitArray =
new TClonesArray(
"PndFtofHit");
77 std::cout <<
"-I- PndFtofHitProducerIdeal: Intialisation successfull" << std::endl;
96 Fatal(
"Exec",
"No HitArray");
120 for (Int_t iPoint = 0; iPoint < nPoints; iPoint++)
123 if (
fVerbose>0) std::cout <<
" Ideal Hit Producer -Point-: " << point << std::endl;
131 trackID = point->GetTrackID();
216 TVector3 position(0,0,0), dpos(0,0,0), fPosHit(0,0,0), fDPosHit(0,0,0);
217 TGeoNode *ftofNode = (TGeoNode*)
gGeoManager->FindNode(point->GetX(), point->GetY(), point->GetZ());
220 fDPosHit[0] = ((TGeoBBox*)ftofNode->GetVolume()->GetShape())->GetDX();
221 fDPosHit[1] = ((TGeoBBox*)ftofNode->GetVolume()->GetShape())->GetDY();
222 fDPosHit[2] = ((TGeoBBox*)ftofNode->GetVolume()->GetShape())->GetDZ();
225 TGeoMatrix *ftofMat = (TGeoMatrix*)
gGeoManager->GetCurrentMatrix();
226 const Double_t *ftofPos = ftofMat->GetTranslation();
227 fPosHit.SetXYZ(ftofPos[0], ftofPos[1], ftofPos[2]);
230 position.SetXYZ(ftofPos[0], gRandom->Gaus(point->GetY(), 10.), ftofPos[2]);
231 dpos.
SetXYZ(fDPosHit[0], 10., fDPosHit[2]);
232 time = gRandom->Gaus(point->GetTime(), 0.07);
236 double timeBasedTime = time + FairRootManager::Instance()->GetEventTime();
237 new ((*fHitArray)[iPoint])
PndFtofHit(trackID, detID,
239 position,dpos,iPoint,
240 point->GetEnergyLoss());
258 if (
fVerbose>0) std::cout <<
"-I- PndFtofHitProducerIdeal: " << nPoints <<
" FtofPoints, "
259 << nPoints <<
" Hits created." << std::endl;
virtual void Exec(Option_t *opt)
virtual InitStatus Init()
Int_t GetVolumeID() const
void SetPersistency(Bool_t val=kTRUE)
TGeoManager * gGeoManager
virtual void SetParContainers()
~PndFtofHitProducerIdeal()
TClonesArray * fPointArray
TString GetDetName() const
boxGen SetXYZ(0., 0., 0.)
PndFtofHitProducerIdeal()