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

#include <PndSciTHitProducerIdeal.h>

Inheritance diagram for PndSciTHitProducerIdeal:
PndPersistencyTask

Public Member Functions

 PndSciTHitProducerIdeal ()
 
 PndSciTHitProducerIdeal (Double_t dt)
 
 ~PndSciTHitProducerIdeal ()
 
virtual void SetParContainers ()
 
virtual InitStatus Init ()
 
virtual void Exec (Option_t *opt)
 
void smear (Double_t &time, Double_t &dt)
 
void SetPersistence (Bool_t persistence)
 
void SetPersistency (Bool_t val=kTRUE)
 
Bool_t GetPersistency ()
 

Private Member Functions

void Register ()
 
void Reset ()
 
void ProduceHits ()
 
 ClassDef (PndSciTHitProducerIdeal, 2)
 

Private Attributes

TString fInBranchName
 
TClonesArray * fPointArray
 
TClonesArray * fHitArray
 
PndGeoSciTParfGeoPar
 
PndGeoHandlingfGeoH
 
Double_t fdt
 
Double_t fdt2
 

Detailed Description

Definition at line 38 of file PndSciTHitProducerIdeal.h.

Constructor & Destructor Documentation

PndSciTHitProducerIdeal::PndSciTHitProducerIdeal ( )

Default constructor

Definition at line 26 of file PndSciTHitProducerIdeal.cxx.

References fGeoH, fInBranchName, and PndPersistencyTask::SetPersistency().

26  :
27  PndPersistencyTask("Ideal PndSciT Hit Producer"), fInBranchName(""), fdt(0.1) //auto time resolution 0.1 ns
28 {
29  fInBranchName = "SciTPoint";
30  fGeoH = NULL;
31  SetPersistency(kTRUE);
32 
33 }
void SetPersistency(Bool_t val=kTRUE)
PndSciTHitProducerIdeal::PndSciTHitProducerIdeal ( Double_t  dt)

Definition at line 37 of file PndSciTHitProducerIdeal.cxx.

References fGeoH, fInBranchName, and PndPersistencyTask::SetPersistency().

37  :
38  PndPersistencyTask("Ideal PndSciT Hit Producer"), fInBranchName(""), fdt(dt)
39 {
40  fInBranchName = "SciTPoint";
41  fGeoH = NULL;
42  SetPersistency(kTRUE);
43 }
void SetPersistency(Bool_t val=kTRUE)
PndSciTHitProducerIdeal::~PndSciTHitProducerIdeal ( )

Destructor

Definition at line 47 of file PndSciTHitProducerIdeal.cxx.

48 {
49 }

Member Function Documentation

PndSciTHitProducerIdeal::ClassDef ( PndSciTHitProducerIdeal  ,
 
)
private
void PndSciTHitProducerIdeal::Exec ( Option_t *  opt)
virtual

Virtual method Exec

Definition at line 102 of file PndSciTHitProducerIdeal.cxx.

References Double_t, fdt, fGeoH, fHitArray, fPointArray, fVerbose, PndSciTPoint::GetDetName(), PndGeoHandling::GetSensorDimensionsShortId(), PndGeoHandling::LocalToMasterShortId(), point, smear(), sqrt(), and TString.

103 {
104  // Reset output array
105  if ( ! fHitArray )
106  Fatal("Exec", "No HitArray");
107 
108  fHitArray->Delete();
109 
110 
111  // Declare some variables
112 
113  PndSciTPoint *point = NULL;
114 
115  Int_t detectorID; // Detector ID /shortID
116  TString detectorName;
117  Double_t time;
118  TVector3 zeroVector(0,0,0);
119 
120  TVector3 detectorPosition;
121  TVector3 hitPosition;
122  TVector3 sensorDim; // Sensor dimension always in half the lenghts in root!
123  TVector3 dHitPosition;
124 
125  // Loop over SciTPoints
126  Int_t
127  nPoints = fPointArray->GetEntriesFast();
128 
129  for (Int_t iPoint = 0; iPoint < nPoints; iPoint++)
130  {
131  point = (PndSciTPoint*) fPointArray->At(iPoint);
132  if (fVerbose>0) std::cout << " Ideal Hit Producer -Point-: " << point << std::endl;
133  if ( ! point)
134  continue;
135 
136  // Detector ID
137  detectorID = point->GetDetectorID();
138  detectorName = point->GetDetName();
139 
140  // HitPosition in the middle of the sensor = Detector Position
141 
142  detectorPosition = fGeoH->LocalToMasterShortId(zeroVector, detectorID);
143  hitPosition = detectorPosition;
144 
145  // Get the range for the Hit position
146 
147  // sensor Dimensions equivalent to the potential error of the hitPosition in the center of the Tile. Attention,in real its no Gaussian shaped distribution but an rectangual!!
148 
149  sensorDim = fGeoH->GetSensorDimensionsShortId(detectorID);
150  dHitPosition = sensorDim*2*(1/sqrt(12));
151 
152 
153  // produce realistic timestamp
154 
155  time = point->GetTime();//Get MCTime
156  smear(time,fdt);// smear with fdt to creat realistic Time
157 
158  // Create new hit
159  new ((*fHitArray)[iPoint]) PndSciTHit(detectorID, detectorName,
160  time+FairRootManager::Instance()->GetEventTime(), fdt,
161  0,0,0,0,
162  hitPosition,dHitPosition,
163  iPoint,
164  point->GetEnergyLoss());
165  } // Loop over MCPoints
166 
167  fHitArray->Sort();
168  // Event summary
169  if (fVerbose>1) std::cout << "-I- PndSciTHitProducerIdeal: " << nPoints << " SciTPoints, "
170  << nPoints << " Hits created." << std::endl;
171 }
int fVerbose
Definition: poormantracks.C:24
friend F32vec4 sqrt(const F32vec4 &a)
Definition: P4_F32vec4.h:29
TVector3 GetSensorDimensionsShortId(Int_t shortId)
Double_t
TClonesArray * point
Definition: anaLmdDigi.C:29
TVector3 LocalToMasterShortId(const TVector3 &local, const Int_t &shortId)
TString GetDetName() const
Definition: PndSciTPoint.h:53
void smear(Double_t &time, Double_t &dt)
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(), PndDiscTaskReconstruction::Init(), PndRichHitProducer::Init(), PndSttHitProducerRealFast::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(), PndDrcHitProducerIdeal::Init(), PndSdsHitProducerIdeal::Init(), Init(), PndRecoMultiKalmanTask2::Init(), PndEmcHitProducer::Init(), PndDrcHitProducerReal::Init(), PndDskFLGHitProducerIdeal::Init(), PndEmcTmpWaveformToDigi::Init(), PndDrcDigiTask::Init(), PndEmcWaveformToDigi::Init(), PndSttMatchTracks::Init(), PndEmcWaveformToCalibratedDigi::Init(), PndTrkTracking2::Init(), PndSttFindTracks::Init(), PndEmcMultiWaveformToCalibratedDigi::Init(), PndRecoKalmanTask2::Init(), PndDrcTimeDigiTask::Init(), PndEmcExpClusterSplitter::Init(), PndFtsHoughTrackerTask::Init(), PndSdsNoiseProducer::Init(), PndEmcPhiBumpSplitter::Init(), PndSdsIdealRecoTask::Init(), PndSdsHybridHitProducer::Init(), PndRecoMultiKalmanTask::Init(), PndSdsIdealClusterTask::Init(), PndRecoKalmanTask::Init(), PndSdsStripHitProducerDif::Init(), PndGemDigitize::Init(), PndSdsStripHitProducer::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 PndSciTHitProducerIdeal::Init ( )
virtual

Definition at line 52 of file PndSciTHitProducerIdeal.cxx.

References fHitArray, fInBranchName, fPointArray, and PndPersistencyTask::GetPersistency().

Referenced by digi_scit().

53 {
54  // Get RootManager
55  FairRootManager* ioman = FairRootManager::Instance();
56 
57  if ( ! ioman )
58  {
59  std::cout << "-E- PndSciTHitProducerIdeal::Init: "
60  << "RootManager not instantiated!" << std::endl;
61  return kFATAL;
62  }
63 
64  // Get input array
65  fPointArray = (TClonesArray*) ioman->GetObject(fInBranchName);
66 
67  if ( ! fPointArray )
68  {
69  std::cout << "-W- PndSciTHitProducerIdeal::Init: "
70  << "No SciTPoint array!" << std::endl;
71  return kERROR;
72  }
73 
74  // Create and register output array
75  fHitArray = ioman->Register("SciTHit", "PndSciTHit", "SciT", GetPersistency());
76 
77  std::cout << "-I- PndSciTHitProducerIdeal: Intialisation successfull" << std::endl;
78  return kSUCCESS;
79 }
void PndSciTHitProducerIdeal::ProduceHits ( )
private
void PndSciTHitProducerIdeal::Register ( )
private
void PndSciTHitProducerIdeal::Reset ( )
private
void PndSciTHitProducerIdeal::SetParContainers ( )
virtual

Virtual method Init

Definition at line 81 of file PndSciTHitProducerIdeal.cxx.

References fGeoH, PndGeoHandling::Instance(), and PndGeoHandling::SetParContainers().

82 {
83  // Get Base Container
84  // FairRun* ana = FairRun::Instance();
85  //FairRuntimeDb* rtdb=ana->GetRuntimeDb();
86 
87  if ( fGeoH == NULL ){
88  std::cout << "ScitTil fGeoH is loading" << std::endl;
90  }
91  else std::cout << "ScitTil fGeoH is already defind but shouldn't" << std::endl;
92  if ( fGeoH == NULL ){
93  std::cout << "ScitTil fGeoH was loaded but is still NULL" << std::endl;
94  }
96 
97  return;
98 }
virtual void SetParContainers()
static PndGeoHandling * Instance()
void PndSciTHitProducerIdeal::SetPersistence ( Bool_t  persistence)
inline

Definition at line 58 of file PndSciTHitProducerIdeal.h.

References PndPersistencyTask::SetPersistency().

58 { SetPersistency(persistence); }
void SetPersistency(Bool_t val=kTRUE)
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(), 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(), 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
void PndSciTHitProducerIdeal::smear ( Double_t time,
Double_t dt 
)

smear a 3d vector

Definition at line 175 of file PndSciTHitProducerIdeal.cxx.

References Double_t, and t.

Referenced by Exec().

176 {
178 
179  Double_t t = time;
180  //std::cout<<" time "<<time<<std::endl;
181  Double_t sigt;
182 
183  sigt=gRandom->Gaus(0,dt);
184  t += sigt;
185  time = t;
186  return;
187 }
Double_t
TTree * t
Definition: bump_analys.C:13

Member Data Documentation

Double_t PndSciTHitProducerIdeal::fdt
private

Definition at line 75 of file PndSciTHitProducerIdeal.h.

Referenced by Exec().

Double_t PndSciTHitProducerIdeal::fdt2
private

Definition at line 75 of file PndSciTHitProducerIdeal.h.

PndGeoHandling* PndSciTHitProducerIdeal::fGeoH
private

Definition at line 73 of file PndSciTHitProducerIdeal.h.

Referenced by Exec(), PndSciTHitProducerIdeal(), and SetParContainers().

PndGeoSciTPar* PndSciTHitProducerIdeal::fGeoPar
private

Definition at line 71 of file PndSciTHitProducerIdeal.h.

TClonesArray* PndSciTHitProducerIdeal::fHitArray
private

Output array of PndSciTHits

Definition at line 68 of file PndSciTHitProducerIdeal.h.

Referenced by Exec(), and Init().

TString PndSciTHitProducerIdeal::fInBranchName
private

Definition at line 62 of file PndSciTHitProducerIdeal.h.

Referenced by Init(), and PndSciTHitProducerIdeal().

TClonesArray* PndSciTHitProducerIdeal::fPointArray
private

Input array of PndSciTPoints

Definition at line 65 of file PndSciTHitProducerIdeal.h.

Referenced by Exec(), and Init().


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