FairRoot/PandaRoot
Public Member Functions | Private Member Functions | Private Attributes | List of all members
PndDrcHitProducerIdeal Class Reference

#include <PndDrcHitProducerIdeal.h>

Inheritance diagram for PndDrcHitProducerIdeal:
PndPersistencyTask

Public Member Functions

 PndDrcHitProducerIdeal ()
 
 PndDrcHitProducerIdeal (Int_t verbose)
 
virtual ~PndDrcHitProducerIdeal ()
 
virtual InitStatus Init ()
 
virtual void Exec (Option_t *option)
 
virtual void Finish ()
 
PndDrcHitAddHit (Int_t detID, Int_t sensorID, TVector3 posHit, TVector3 dPosHit, Double_t thetaC, Double_t errThetaC, Int_t index)
 
void SetPersistency (Bool_t val=kTRUE)
 
Bool_t GetPersistency ()
 

Private Member Functions

void SetDefaultParameters ()
 

Private Attributes

Int_t fDetectorID
 
TVector3 fPosHit
 
TVector3 fDPosHit
 
Double_t fThetaC
 
Double_t fErrThetaC
 
Int_t fRefIndex
 
TClonesArray * fBarPointArray
 
TClonesArray * fHitArray
 
PndGeoDrcParfPar
 
PndGeoDrcfGeo
 
Int_t nevents
 

Detailed Description

PndDrcHitProducer.h

Class for producing DRC hits directly from MCPoints

Definition at line 35 of file PndDrcHitProducerIdeal.h.

Constructor & Destructor Documentation

PndDrcHitProducerIdeal::PndDrcHitProducerIdeal ( )

Default constructor

Definition at line 42 of file PndDrcHitProducerIdeal.cxx.

References fVerbose.

43  :PndPersistencyTask("PndDrcHitProducerIdeal"),fGeo(new PndGeoDrc())
44 {
45  fVerbose=0;
46 }
int fVerbose
Definition: poormantracks.C:24
PndDrcHitProducerIdeal::PndDrcHitProducerIdeal ( Int_t  verbose)

Constructor with verbosity

Definition at line 51 of file PndDrcHitProducerIdeal.cxx.

References fVerbose, and verbose.

52  :PndPersistencyTask("PndDrcHitProducerIdeal"),fGeo(new PndGeoDrc())
53 {
55 }
int fVerbose
Definition: poormantracks.C:24
#define verbose
PndDrcHitProducerIdeal::~PndDrcHitProducerIdeal ( )
virtual

Destructor

Definition at line 60 of file PndDrcHitProducerIdeal.cxx.

References fGeo.

61 {
62  if (fGeo) delete fGeo;
63 }

Member Function Documentation

PndDrcHit * PndDrcHitProducerIdeal::AddHit ( Int_t  detID,
Int_t  sensorID,
TVector3  posHit,
TVector3  dPosHit,
Double_t  thetaC,
Double_t  errThetaC,
Int_t  index 
)

method AddHit

Adds a DrcHit to the HitCollection

Definition at line 175 of file PndDrcHitProducerIdeal.cxx.

References fHitArray.

Referenced by Exec().

181  {
182  TClonesArray& clref = *fHitArray;
183  Int_t size = clref.GetEntriesFast();
184  return new(clref[size]) PndDrcHit(detID,
185  detID,
186  posHit,
187  dPosHit,
188  thetaC,
189  errThetaC,
190  index);
191 }
Double_t thetaC
Definition: plot_dirc.C:16
void PndDrcHitProducerIdeal::Exec ( Option_t *  option)
virtual

Executed task

Definition at line 102 of file PndDrcHitProducerIdeal.cxx.

References AddHit(), Double_t, energy, fBarPointArray, fDetectorID, fDPosHit, fErrThetaC, fHitArray, fPosHit, fRefIndex, fThetaC, fVerbose, PndDrcBarPoint::GetBarId(), PndDrcBarPoint::GetBoxId(), PndDrcBarPoint::GetMass(), PndDrcBarPoint::GetThetaC(), gGeoManager, nevents, P, printf(), pt(), sqrt(), and CAMath::Sqrt().

103 {
104  if ( ! fHitArray ) Fatal("Exec", "No HitArray");
105  fHitArray->Clear();
106 
107 
108  PndDrcBarPoint* pt=NULL;
109  nevents++;
110 
111  if (fVerbose > 0) {
112  cout << " ----------------- DRC Hit Producer --------------------" << endl;
113  cout <<" Number of input MC points in the bar: "<<fBarPointArray->GetEntries()<<endl;
114  }
115 
116  // fNHits = 0;
117 
118  // Loop over PndDrcPoints
119  for(Int_t j=0; j<fBarPointArray->GetEntriesFast(); j++) {
120  if (fVerbose > 1) printf("\n\n=====> Event No. %d\n", nevents);
121 
122  pt = (PndDrcBarPoint*)fBarPointArray->At(j);
123 
124  Double_t Px= pt->GetPx();
125  Double_t Py= pt->GetPy();
126  Double_t Pz= pt->GetPz();
127  Double_t P = sqrt(Px*Px + Py*Py +Pz*Pz);
128  Double_t mass = pt->GetMass();
129  Double_t energy = TMath::Sqrt(P*P + mass*mass);
130 
131  Double_t beta;
132  if(energy != 0) {
133  beta = P/energy;
134  }
135  else {
136  beta = -1.;
137  if (fVerbose >0) cout << "Beta not calculated " << endl;
138  }
139 
140  if (pt->GetThetaC() != -1. && beta > 1/1.47){
141  fDetectorID = pt->GetBoxId()*10 + pt->GetBarId();
142 
143  //TGeoNode *dircNode = (TGeoNode*)
144  gGeoManager->FindNode(pt->GetX(), pt->GetY(), pt->GetZ());
145  TGeoMatrix *dircMat = (TGeoMatrix*)gGeoManager->GetCurrentMatrix();
146  const Double_t *dircPos = dircMat->GetTranslation();
147  fPosHit.SetXYZ(dircPos[0], dircPos[1], dircPos[2]);
148 
149  Double_t fDPosXHit = 0.5; //mm
150  Double_t fDPosYHit = 0.5;
151  Double_t fDPosZHit = 0.;
152  fDPosHit.SetXYZ(fDPosXHit,fDPosYHit,fDPosZHit);
153 
154  fThetaC = gRandom->Gaus(pt->GetThetaC(),0.003);
155  fErrThetaC = 0.; //rad
156 
157  fRefIndex = j;
158 
159  // PndMCTrack* tr = NULL;
160 
162  fPosHit,
163  fDPosHit,
164  fThetaC,
165  fErrThetaC,
166  fRefIndex);
167  }
168  }
169 }
Double_t GetMass() const
int fVerbose
Definition: poormantracks.C:24
printf("RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime)
Int_t GetBarId() const
friend F32vec4 sqrt(const F32vec4 &a)
Definition: P4_F32vec4.h:29
static T Sqrt(const T &x)
Definition: PndCAMath.h:37
TGeoManager * gGeoManager
Double_t GetThetaC() const
TString pt(TString pts, TString exts="px py pz")
Definition: invexp.C:133
PndDrcHit * AddHit(Int_t detID, Int_t sensorID, TVector3 posHit, TVector3 dPosHit, Double_t thetaC, Double_t errThetaC, Int_t index)
Int_t GetBoxId() const
Double_t
GeV c P
Double_t energy
Definition: plot_dirc.C:15
void PndDrcHitProducerIdeal::Finish ( )
virtual

Finish task

Definition at line 197 of file PndDrcHitProducerIdeal.cxx.

198 {
199 
200  cout << "-I- PndDrcHitProducerIdeal: Finish" << endl;
201  }
Bool_t PndPersistencyTask::GetPersistency ( )
inlineinherited

Definition at line 32 of file PndPersistencyTask.h.

References PndPersistencyTask::fPersistency.

Referenced by PndLmdPixelHitProducerFast::GetPersistance(), PndMdtDigitization::Init(), PndMdtHitProducerIdeal::Init(), PndMdtClusterTask::Init(), PndFtsHitProducerRealFast::Init(), PndRichHitProducer::Init(), PndSttHitProducerRealFast::Init(), PndDiscTaskReconstruction::Init(), PndSttHelixHitProducer::Init(), PndDiscTaskPID::Init(), PndIdealTrackFinder::Init(), PndSttMvdGemTracking::Init(), PndMdtTrkProducer::Init(), PndFtsHitProducerRealFull::Init(), PndLmdPixelClusterTask::Init(), PndSttHitProducerRealFull::Init(), PndLmdStripClusterTask::Init(), PndEmcApdHitProducer::Init(), PndMissingPzCleanerTask::Init(), PndEmcMakeRecoHit::Init(), PndEmcMakeClusterOnline::Init(), PndTrackSmearTask::Init(), PndEmcFWEndcapTimebasedWaveforms::Init(), PndSttHitProducerIdeal::Init(), PndEmcFWEndcapDigi::Init(), PndFtsHitProducerIdeal::Init(), PndEmcMakeCluster::Init(), PndMdtPointsToWaveform::Init(), PndDiscTaskDigitization::Init(), PndEmcMakeDigi::Init(), PndSdsTimeWalkCorrTask::Init(), PndLmdPixelHitProducerFast::Init(), PndDrcHitFinder::Init(), PndRichHitFinder::Init(), PndEmcMakeCorr::Init(), PndFtofHitProducerIdeal::Init(), PndEmcHitsToWaveform::Init(), PndSciTDigiTask::Init(), Init(), PndSdsHitProducerIdeal::Init(), PndSciTHitProducerIdeal::Init(), PndEmcHitProducer::Init(), PndRecoMultiKalmanTask2::Init(), PndDrcHitProducerReal::Init(), PndDskFLGHitProducerIdeal::Init(), PndEmcTmpWaveformToDigi::Init(), PndDrcDigiTask::Init(), PndEmcWaveformToDigi::Init(), PndSttMatchTracks::Init(), PndEmcWaveformToCalibratedDigi::Init(), PndTrkTracking2::Init(), PndSttFindTracks::Init(), PndEmcMultiWaveformToCalibratedDigi::Init(), PndDrcTimeDigiTask::Init(), PndRecoKalmanTask2::Init(), PndEmcExpClusterSplitter::Init(), PndSdsNoiseProducer::Init(), PndFtsHoughTrackerTask::Init(), PndEmcPhiBumpSplitter::Init(), PndSdsHybridHitProducer::Init(), PndSdsIdealRecoTask::Init(), PndRecoMultiKalmanTask::Init(), PndSdsIdealClusterTask::Init(), PndRecoKalmanTask::Init(), PndSdsStripHitProducerDif::Init(), PndSdsStripHitProducer::Init(), PndGemDigitize::Init(), PndGemFindHits::Init(), PndSdsPixelClusterTask::Init(), PndSdsStripClusterTask::Init(), PndMvdGemTrackFinderOnHits::Init(), PndBarrelTrackFinder::Init(), PndEmcFullDigiTask::PndEmcFullDigiTask(), PndEmcMakeBump::PndEmcMakeBump(), PndUnassignedHitsTask::RegisterBranches(), PndMvdClusterTask::SetPersistance(), PndMvdDigiTask::SetPersistance(), PndEmcMakeBump::SetStorageOfData(), and PndEmcFullDigiTask::StoreDigi().

32 { return fPersistency; }
InitStatus PndDrcHitProducerIdeal::Init ( )
virtual

Initialization of the task

Definition at line 69 of file PndDrcHitProducerIdeal.cxx.

References fBarPointArray, fHitArray, PndPersistencyTask::GetPersistency(), and nevents.

70 {
71  cout << " ---------- INITIALIZATION ------------" << endl;
72  nevents = 0;
73  // Get RootManager
74  FairRootManager* ioman = FairRootManager::Instance();
75  if ( ! ioman ) {
76  cout << "-E- PndDrcHitProducerIdeal::Init: "
77  << "RootManager not instantiated!" << endl;
78  return kFATAL;
79  }
80 
81  // Get input array
82  fBarPointArray = (TClonesArray*) ioman->GetObject("DrcBarPoint");
83  if ( ! fBarPointArray ) {
84  cout << "-W- PndDrcHitProducerIdeal::Init: "
85  << "No DrcBarPoint array!" << endl;
86  return kERROR;
87  }
88 
89  // Create and register output array
90  fHitArray = new TClonesArray("PndDrcHit");
91  ioman->Register("DrcHit","Drc",fHitArray, GetPersistency());
92 
93  cout << "-I- PndDrcHitProducerIdeal: Intialization successfull" << endl;
94 
95  return kSUCCESS;
96 
97 }
void PndDrcHitProducerIdeal::SetDefaultParameters ( )
private
void PndPersistencyTask::SetPersistency ( Bool_t  val = kTRUE)
inlineinherited

Definition at line 31 of file PndPersistencyTask.h.

References PndPersistencyTask::fPersistency, and val.

Referenced by barrelTrackFinder(), digi_complete(), digi_complete_newSTT(), digiOnly_complete(), PndBarrelTrackFinder::PndBarrelTrackFinder(), PndCATracking::PndCATracking(), PndDrcHitFinder::PndDrcHitFinder(), PndEmc2DLocMaxFinder::PndEmc2DLocMaxFinder(), PndEmcExpClusterSplitter::PndEmcExpClusterSplitter(), PndEmcFullDigiTask::PndEmcFullDigiTask(), PndEmcFWEndcapDigi::PndEmcFWEndcapDigi(), PndEmcFWEndcapTimebasedWaveforms::PndEmcFWEndcapTimebasedWaveforms(), PndEmcHitProducer::PndEmcHitProducer(), PndEmcHitsToWaveform::PndEmcHitsToWaveform(), PndEmcMakeBump::PndEmcMakeBump(), PndEmcMakeCluster::PndEmcMakeCluster(), PndEmcMakeClusterOnline::PndEmcMakeClusterOnline(), PndEmcMakeDigi::PndEmcMakeDigi(), PndEmcMakeRecoHit::PndEmcMakeRecoHit(), PndEmcMultiWaveformToCalibratedDigi::PndEmcMultiWaveformToCalibratedDigi(), PndEmcPhiBumpSplitter::PndEmcPhiBumpSplitter(), PndEmcTmpWaveformToDigi::PndEmcTmpWaveformToDigi(), PndEmcWaveformToCalibratedDigi::PndEmcWaveformToCalibratedDigi(), PndEmcWaveformToDigi::PndEmcWaveformToDigi(), PndFtofHitProducerIdeal::PndFtofHitProducerIdeal(), PndFtsCATracking::PndFtsCATracking(), PndFtsHitProducerIdeal::PndFtsHitProducerIdeal(), PndFtsHitProducerRealFast::PndFtsHitProducerRealFast(), PndFtsHitProducerRealFull::PndFtsHitProducerRealFull(), PndFtsHoughTrackerTask::PndFtsHoughTrackerTask(), PndGemDigitize::PndGemDigitize(), PndGemFindHits::PndGemFindHits(), PndIdealTrackFinder::PndIdealTrackFinder(), PndLmdPixelClusterTask::PndLmdPixelClusterTask(), PndLmdPixelHitProducerFast::PndLmdPixelHitProducerFast(), PndMdtClusterTask::PndMdtClusterTask(), PndMdtDigitization::PndMdtDigitization(), PndMdtHitProducerIdeal::PndMdtHitProducerIdeal(), PndMdtPointsToWaveform::PndMdtPointsToWaveform(), PndMdtTrkProducer::PndMdtTrkProducer(), PndMissingPzCleanerTask::PndMissingPzCleanerTask(), PndMvdGemTrackFinderOnHits::PndMvdGemTrackFinderOnHits(), PndMvdHitProducerIdeal::PndMvdHitProducerIdeal(), PndMvdPixelClusterTask::PndMvdPixelClusterTask(), PndMvdTimeWalkCorrTask::PndMvdTimeWalkCorrTask(), PndMvdToPix4ClusterTask::PndMvdToPix4ClusterTask(), PndRecoKalmanTask::PndRecoKalmanTask(), PndRecoKalmanTask2::PndRecoKalmanTask2(), PndRecoMultiKalmanTask::PndRecoMultiKalmanTask(), PndRecoMultiKalmanTask2::PndRecoMultiKalmanTask2(), PndRichHitFinder::PndRichHitFinder(), PndRichHitProducer::PndRichHitProducer(), PndSciTDigiTask::PndSciTDigiTask(), PndSciTHitProducerIdeal::PndSciTHitProducerIdeal(), PndSdsHitProducerIdeal::PndSdsHitProducerIdeal(), PndSdsHybridHitProducer::PndSdsHybridHitProducer(), PndSdsIdealClusterTask::PndSdsIdealClusterTask(), PndSdsIdealRecoTask::PndSdsIdealRecoTask(), PndSdsNoiseProducer::PndSdsNoiseProducer(), PndSdsPixelClusterTask::PndSdsPixelClusterTask(), PndSdsStripClusterTask::PndSdsStripClusterTask(), PndSdsStripHitProducer::PndSdsStripHitProducer(), PndSdsTimeWalkCorrTask::PndSdsTimeWalkCorrTask(), PndSttFindTracks::PndSttFindTracks(), PndSttHelixHitProducer::PndSttHelixHitProducer(), PndSttHitProducerIdeal::PndSttHitProducerIdeal(), PndSttHitProducerRealFast::PndSttHitProducerRealFast(), PndSttHitProducerRealFull::PndSttHitProducerRealFull(), PndSttMatchTracks::PndSttMatchTracks(), PndSttMvdGemTracking::PndSttMvdGemTracking(), PndTrackSmearTask::PndTrackSmearTask(), PndTrkTracking2::PndTrkTracking2(), reco(), reco_complete(), reco_complete_gf2(), reco_complete_newSTT(), reco_complete_sec(), recoideal_complete(), PndMvdClusterTask::SetPersistance(), PndMvdDigiTask::SetPersistance(), PndLmdPixelHitProducerFast::SetPersistance(), PndSdsHitProducerIdeal::SetPersistance(), PndSttMvdGemTracking::SetPersistenc(), PndMdtClusterTask::SetPersistence(), PndSttHelixHitProducer::SetPersistence(), PndMissingPzCleanerTask::SetPersistence(), PndFtsHitProducerRealFast::SetPersistence(), PndFtsHitProducerRealFull::SetPersistence(), PndSttHitProducerIdeal::SetPersistence(), PndSttHitProducerRealFull::SetPersistence(), PndSttHitProducerRealFast::SetPersistence(), PndFtsHitProducerIdeal::SetPersistence(), PndTrackSmearTask::SetPersistence(), PndSciTHitProducerIdeal::SetPersistence(), PndIdealTrackFinder::SetPersistence(), PndSttMatchTracks::SetPersistence(), PndSttFindTracks::SetPersistence(), PndFtsHoughTrackerTask::SetPersistence(), PndTrkTracking2::SetPersistence(), PndEmcMakeRecoHit::SetStorageOfData(), PndEmcMakeClusterOnline::SetStorageOfData(), PndEmcFWEndcapDigi::SetStorageOfData(), PndEmcFWEndcapTimebasedWaveforms::SetStorageOfData(), PndEmcMakeDigi::SetStorageOfData(), PndMdtPointsToWaveform::SetStorageOfData(), PndEmc2DLocMaxFinder::SetStorageOfData(), PndEmcMakeCluster::SetStorageOfData(), PndEmcHitsToWaveform::SetStorageOfData(), PndEmcMakeBump::SetStorageOfData(), PndEmcTmpWaveformToDigi::SetStorageOfData(), PndEmcWaveformToDigi::SetStorageOfData(), PndEmcWaveformToCalibratedDigi::SetStorageOfData(), PndEmcMultiWaveformToCalibratedDigi::SetStorageOfData(), PndEmcExpClusterSplitter::SetStorageOfData(), PndEmcPhiBumpSplitter::SetStorageOfData(), standard_tracking(), and PndEmcFullDigiTask::StoreDigi().

31 { fPersistency = val; }
Double_t val[nBoxes][nFEBox]
Definition: createCalib.C:11

Member Data Documentation

TClonesArray* PndDrcHitProducerIdeal::fBarPointArray
private

Definition at line 78 of file PndDrcHitProducerIdeal.h.

Referenced by Exec(), and Init().

Int_t PndDrcHitProducerIdeal::fDetectorID
private

Definition at line 72 of file PndDrcHitProducerIdeal.h.

Referenced by Exec().

TVector3 PndDrcHitProducerIdeal::fDPosHit
private

Definition at line 74 of file PndDrcHitProducerIdeal.h.

Referenced by Exec().

Double_t PndDrcHitProducerIdeal::fErrThetaC
private

Definition at line 75 of file PndDrcHitProducerIdeal.h.

Referenced by Exec().

PndGeoDrc* PndDrcHitProducerIdeal::fGeo
private

Definition at line 82 of file PndDrcHitProducerIdeal.h.

Referenced by ~PndDrcHitProducerIdeal().

TClonesArray* PndDrcHitProducerIdeal::fHitArray
private

Definition at line 79 of file PndDrcHitProducerIdeal.h.

Referenced by AddHit(), Exec(), and Init().

PndGeoDrcPar* PndDrcHitProducerIdeal::fPar
private

Definition at line 81 of file PndDrcHitProducerIdeal.h.

TVector3 PndDrcHitProducerIdeal::fPosHit
private

Definition at line 73 of file PndDrcHitProducerIdeal.h.

Referenced by Exec().

Int_t PndDrcHitProducerIdeal::fRefIndex
private

Definition at line 76 of file PndDrcHitProducerIdeal.h.

Referenced by Exec().

Double_t PndDrcHitProducerIdeal::fThetaC
private

Definition at line 75 of file PndDrcHitProducerIdeal.h.

Referenced by Exec().

Int_t PndDrcHitProducerIdeal::nevents
private

Definition at line 86 of file PndDrcHitProducerIdeal.h.

Referenced by Exec(), and Init().


The documentation for this class was generated from the following files: