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

#include <PndRichHitProducer.h>

Inheritance diagram for PndRichHitProducer:
PndPersistencyTask

Public Member Functions

 PndRichHitProducer ()
 
 ~PndRichHitProducer ()
 
virtual InitStatus Init ()
 
virtual void Exec (Option_t *opt)
 
void AddXPDHit (Int_t detID, Int_t sensorId, TVector3 &pos, TVector3 &dpos, Int_t index, Double_t time)
 
PndRichDigiAddDigi (Int_t detID, Int_t sensorId, TVector3 &pos, TVector3 &dpos, Int_t index, Double_t time)
 
PndRichPDHitAddPDHit (Int_t detID, Int_t sensorId, TVector3 &pos, TVector3 &dpos, Int_t index, Double_t time)
 
PndRichHitAddHit (Int_t detID, Int_t sensorId, TVector3 &pos, TVector3 &dpos, Double_t thetaC, Double_t errThetaC, Int_t index)
 
void SetPositionSmearing (Float_t res)
 
void SetGeoVersion (UInt_t version)
 
void SetPhDetNoiseON (UInt_t phDetNoise)
 
void FinishEvent ()
 
void FinishTask ()
 
void RunTimeBased ()
 
void SetPersistency (Bool_t val=kTRUE)
 
Bool_t GetPersistency ()
 

Private Member Functions

std::vector< Double_tPhDetNoise ()
 
 ClassDef (PndRichHitProducer, 1)
 

Private Attributes

PndRichGeofGeo
 
UInt_t fGeoVersion
 
Bool_t fPhDetNoise
 
UInt_t fNumRand
 
Bool_t fTimeOrderedDigi
 
Double_t fDeadTime
 
Double_t fEventTime
 
Double_t fPreviousEventTime
 
Float_t fPosResolution
 
PndRichResolutionfRichResolution
 
TClonesArray * fPDPointArray
 
TClonesArray * fBarPointArray
 
TClonesArray * fPDHitArray
 
TClonesArray * fHitArray
 
PndRichHitWriteoutBufferfDataBuffer
 

Detailed Description

Definition at line 17 of file PndRichHitProducer.h.

Constructor & Destructor Documentation

PndRichHitProducer::PndRichHitProducer ( )

Default constructor

Definition at line 38 of file PndRichHitProducer.cxx.

References fGeoVersion, fNumRand, fPhDetNoise, fPosResolution, fPreviousEventTime, fTimeOrderedDigi, and PndPersistencyTask::SetPersistency().

38  :
39  PndPersistencyTask("Rich Hit Producer") {
40  fPosResolution = -1.;
41  fGeoVersion = 313;
42  fPhDetNoise = kFALSE;
43  fNumRand = 0;
44  SetPersistency(kTRUE);
45  fTimeOrderedDigi = kFALSE;
46  fPreviousEventTime = -1;
47 }
void SetPersistency(Bool_t val=kTRUE)
PndRichHitProducer::~PndRichHitProducer ( )

Destructor

Definition at line 51 of file PndRichHitProducer.cxx.

51 { }

Member Function Documentation

PndRichDigi * PndRichHitProducer::AddDigi ( Int_t  detID,
Int_t  sensorId,
TVector3 &  pos,
TVector3 &  dpos,
Int_t  index,
Double_t  time 
)

Definition at line 291 of file PndRichHitProducer.cxx.

References Double_t, fDataBuffer, fDeadTime, fPDPointArray, fTimeOrderedDigi, and point.

Referenced by AddXPDHit(), and Exec().

293  {
294  Double_t EventTime = FairRootManager::Instance()->GetEventTime();
295  fDeadTime = 100; // ns;
296 
297  Double_t timeThreshold=-999; //[R.K.Jan/2017] Variable was not initialized!
298  PndRichDigi *hitnew = new PndRichDigi(index,detID, sensorId, pos, dpos, time+EventTime, timeThreshold, EventTime+time);
299  if (fTimeOrderedDigi){
300  hitnew->ResetLinks();
301  FairEventHeader* evtHeader = (FairEventHeader*)FairRootManager::Instance()->GetObject("EventHeader.");
302  hitnew->AddLink(FairLink(evtHeader->GetInputFileId(), evtHeader->GetMCEntryNumber(), "RichPDPoint", index));
303  hitnew->AddLink(FairLink(-1, FairRootManager::Instance()->GetEntryNr(), "EventHeader.", -1));
305  if (point) hitnew->AddLinks(*(point->GetPointerToLinks()));
306  }
307  fDataBuffer->FillNewData(hitnew, EventTime+time, EventTime+time+fDeadTime);
308  return hitnew;
309 }
TVector3 pos
Double_t
PndRichHitWriteoutBuffer * fDataBuffer
TClonesArray * fPDPointArray
PndSdsMCPoint * point
Definition: anaLmdCluster.C:72
PndRichHit * PndRichHitProducer::AddHit ( Int_t  detID,
Int_t  sensorId,
TVector3 &  pos,
TVector3 &  dpos,
Double_t  thetaC,
Double_t  errThetaC,
Int_t  index 
)

Definition at line 326 of file PndRichHitProducer.cxx.

References fHitArray.

Referenced by Exec().

329  {
330 
331  TClonesArray& clref = *fHitArray;
332  Int_t size = clref.GetEntriesFast();
333  return new(clref[size]) PndRichHit(detID, sensorId, pos, dpos, thetaC, errThetaC, index);
334 }
TVector3 pos
TClonesArray * fHitArray
Double_t thetaC
Definition: plot_dirc.C:16
PndRichPDHit * PndRichHitProducer::AddPDHit ( Int_t  detID,
Int_t  sensorId,
TVector3 &  pos,
TVector3 &  dpos,
Int_t  index,
Double_t  time 
)

Definition at line 312 of file PndRichHitProducer.cxx.

References Double_t, and fPDHitArray.

Referenced by AddXPDHit().

314  {
315  // It fills the PndRichPDHit category
316 
317  Double_t timeThreshold=-999; //[R.K.Jan/2017] Variable was not initialized!
318  TClonesArray& clref = *fPDHitArray;
319  Int_t size = clref.GetEntriesFast();
320  return new(clref[size]) PndRichPDHit(index, detID, sensorId, pos, dpos, time, timeThreshold);
321 }
TVector3 pos
Double_t
TClonesArray * fPDHitArray
void PndRichHitProducer::AddXPDHit ( Int_t  detID,
Int_t  sensorId,
TVector3 &  pos,
TVector3 &  dpos,
Int_t  index,
Double_t  time 
)

Definition at line 283 of file PndRichHitProducer.cxx.

References AddDigi(), AddPDHit(), and fTimeOrderedDigi.

285  {
286  if (fTimeOrderedDigi) AddDigi(detID,sensorId,pos,dpos,index,time);
287  else AddPDHit(detID,sensorId,pos,dpos,index,time);
288  //AddDigi(detID,sensorId,pos,dpos,index,time);
289 }
TVector3 pos
PndRichDigi * AddDigi(Int_t detID, Int_t sensorId, TVector3 &pos, TVector3 &dpos, Int_t index, Double_t time)
PndRichPDHit * AddPDHit(Int_t detID, Int_t sensorId, TVector3 &pos, TVector3 &dpos, Int_t index, Double_t time)
PndRichHitProducer::ClassDef ( PndRichHitProducer  ,
 
)
private
void PndRichHitProducer::Exec ( Option_t *  opt)
virtual

Virtual method Exec

Definition at line 151 of file PndRichHitProducer.cxx.

References AddDigi(), AddHit(), dbpoint::beta, Double_t, PndRichResolution::Efficiency(), fBarPointArray, fEventTime, fGeo, fHitArray, fPDPointArray, fPhDetNoise, fPosResolution, fPreviousEventTime, fRichResolution, fTimeOrderedDigi, PndRichBarPoint::GetMass(), PndRichBarPoint::GetThetaC(), hit, i, dbpoint::mass, mom, PndRichGeo::phDetNPixelMaxX(), PndRichGeo::phDetNPixelMaxY(), dbpoint::phi, PndRichGeo::PixelPosition(), pnt, point, pos, PndRichGeo::PositionDiscretization(), PndRichGeo::sensorIndex(), PndRichGeo::sensorsPerDevice(), PndRichResolution::Sigma(), sqrt(), t, dbpoint::theta, thetaC, dbpoint::x, and dbpoint::y.

151  {
152 
153  fEventTime = FairRootManager::Instance()->GetEventTime();
154  std::cout << "FairRootManager::Instance()->GetEventTime() = " << fEventTime << " " << fPreviousEventTime << " " << fGeo->sensorsPerDevice() << std::endl;
155 
156  // Reset output array
157  //if ( ! fPDHitArray ) Fatal("Exec", "No HitArray");
158 
159  //if (!fTimeOrderedDigi) fPDHitArray->Clear();
160 
161  //pixels of PhDet
162  UInt_t iXmax = fGeo->phDetNPixelMaxX();
163  UInt_t iYmax = fGeo->phDetNPixelMaxY();
164 /* UInt_t map[iXmax][iYmax];
165  for (UInt_t ix=0; ix<iXmax; ix++)
166  for (UInt_t iy=0; iy<iYmax; iy++)
167  map[ix][iy] = 0;
168  */
169  // Loop over RichPDpoints
170  Int_t nPoints = fPDPointArray->GetEntriesFast();
171  PndRichPDPoint *point = 0;
172  TVector3 pos, mom;
174 // Double_t k = 2*3.1415927*197.3269602e-9;
175 
176  for (Int_t iPoint=0; iPoint<nPoints; iPoint++) {
177  point = (PndRichPDPoint*) fPDPointArray->At(iPoint);
178  point->Momentum(mom);
179 // if ( gRandom->Uniform() < fGeo->phDetQEff(k/mom.Mag()) ) {
180  point->Position(pos);
181  TVector3 posd = fGeo->PositionDiscretization(pos);
182  if (posd.Z())
183  {
184  Double_t t = gRandom->Gaus(point->GetTime(),0.5); //ns
185 /* if (fPhDetNoise) { // add noise
186  std::vector<Double_t> tn = PhDetNoise();
187  for (UInt_t i=0; i<tn.size(); i++)
188  if (t-tn.at(i)<720&&t>tn.at(i)) t = tn.at(i);
189  }*/
190  AddDigi(point->GetDetectorID(), fGeo->sensorIndex(), posd, sig, iPoint, t );
191 // UInt_t ix = fGeo->IndexX(posd);
192 // UInt_t iy = fGeo->IndexY(posd);
193 // if ( ix<iXmax && iy<iYmax )
194 // map[ix][iy] = 1;
195  }
196 // }
197  } // Loop over MCPoints
198  if (fPhDetNoise) {
199 /* for (UInt_t ix=0; ix<iXmax; ix++)
200  for (UInt_t iy=0; iy<iYmax; iy++)
201  if (!map[ix][iy]) {
202  std::vector<Double_t> tn = PhDetNoise();
203  if (tn.size()&&tn.back()>-50) {
204  pos = fGeo->PixelPosition(ix,iy);
205  AddDigi(0, fGeo->sensorIndex(), pos, sig, 0, tn.back() );
206  }
207  }*/
208  Int_t kcell = 8/fGeo->sensorsPerDevice(); // in one direction
209  Double_t fnoise = 1e3*1e-9*kcell*kcell; //GHz(=1/ns) per pixel
211  Int_t nn = gRandom->Poisson(iXmax*iYmax*fnoise*dt); //number of fired pixels
212  std::cout << "nn = " << nn << " " << iXmax << " " << iYmax << " " << kcell << std::endl;
213  for (Int_t i=0; i<nn; i++)
214  {
215  Int_t gind = gRandom->Integer(iXmax*iYmax);
216  Int_t ix = gind%iXmax;
217  Int_t iy = gind/iXmax;
218  pos = fGeo->PixelPosition(ix,iy);
219  Double_t t = (fTimeOrderedDigi?0:25)-dt*gRandom->Uniform();
220  AddDigi(0, fGeo->sensorIndex(), pos, sig, 0, t );
221  }
222  }
223 
224 // if (!fTimeOrderedDigi)
225  {
226  fHitArray->Clear();
227 
228  // Loop over RichBarPoints
229  Int_t nBarPoints = fBarPointArray->GetEntriesFast();
230  PndRichBarPoint *hit = 0;
231 
232  Int_t detID=-999; //[R.K.Jan/2017] Variable was not initialized!
233  Int_t sensorId=-999; //[R.K.Jan/2017] Variable was not initialized!
234  //, index; //[R.K. 01/2017] unused variable?
235  TVector3 dpos(0., 0., 0.);
236  // thetaC containe value of beta
237  Double_t thetaC, errThetaC;
238  dbpoint pnt;
239  for (Int_t iBarPoint=0; iBarPoint<nBarPoints; iBarPoint++) {
240  hit = (PndRichBarPoint*) fBarPointArray->At(iBarPoint);
241  hit->Position(pos);
242  hit->Momentum(mom);
243 
244  pnt.mass = hit->GetMass();
245  pnt.beta = mom.Mag()/sqrt(mom.Mag()*mom.Mag()+pnt.mass*pnt.mass);
246  pnt.x = pos.X();
247  pnt.y = pos.Y();
248  pnt.theta = mom.Theta();
249  pnt.phi = mom.Phi();
250 
251  if ( gRandom->Uniform() < fRichResolution->Efficiency(pnt) ) { // efficiency of reconstruction
252  errThetaC = fRichResolution->Sigma(pnt); // sigma of beta
253  thetaC = gRandom->Gaus( hit->GetThetaC(), errThetaC );
254  AddHit(detID, sensorId, pos, dpos, thetaC, errThetaC, iBarPoint);
255  }
256  } // Loop over MCPoints
257  }
258  fPreviousEventTime = FairRootManager::Instance()->GetEventTime();
259 }
TVector3 pos
Double_t x
Definition: PndRichCalDb.h:25
TClonesArray * fHitArray
Int_t i
Definition: run_full.C:25
friend F32vec4 sqrt(const F32vec4 &a)
Definition: P4_F32vec4.h:29
TVector3 PositionDiscretization(TVector3 pos, bool cell=true)
Definition: PndRichGeo.cxx:557
TClonesArray * pnt
UInt_t sensorsPerDevice()
Definition: PndRichGeo.h:216
PndRichDigi * AddDigi(Int_t detID, Int_t sensorId, TVector3 &pos, TVector3 &dpos, Int_t index, Double_t time)
Double_t mom
Definition: plot_dirc.C:14
UInt_t phDetNPixelMaxY()
Definition: PndRichGeo.h:192
Double_t GetMass() const
UInt_t phDetNPixelMaxX()
Definition: PndRichGeo.h:189
Double_t
PndRichHit * AddHit(Int_t detID, Int_t sensorId, TVector3 &pos, TVector3 &dpos, Double_t thetaC, Double_t errThetaC, Int_t index)
Double_t mass
Definition: PndRichCalDb.h:23
UInt_t sensorIndex()
Definition: PndRichGeo.h:186
Double_t GetThetaC() const
TClonesArray * fPDPointArray
Double_t theta
Definition: PndRichCalDb.h:27
TTree * t
Definition: bump_analys.C:13
Double_t phi
Definition: PndRichCalDb.h:28
PndSdsMCPoint * hit
Definition: anasim.C:70
Double_t Sigma(dbpoint pnt)
PndRichResolution * fRichResolution
Double_t Efficiency(dbpoint pnt)
Double_t beta
Definition: PndRichCalDb.h:24
Double_t thetaC
Definition: plot_dirc.C:16
Double_t y
Definition: PndRichCalDb.h:26
TClonesArray * fBarPointArray
TVector3 PixelPosition(UInt_t ix, UInt_t iy)
Definition: PndRichGeo.cxx:681
PndSdsMCPoint * point
Definition: anaLmdCluster.C:72
void PndRichHitProducer::FinishEvent ( )

Definition at line 337 of file PndRichHitProducer.cxx.

338 {
339 }
void PndRichHitProducer::FinishTask ( )

Definition at line 341 of file PndRichHitProducer.cxx.

342 {
343 }
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(), 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(), 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 PndRichHitProducer::Init ( )
virtual

Virtual method Init

Definition at line 57 of file PndRichHitProducer.cxx.

References fBarPointArray, fDataBuffer, fGeo, fGeoVersion, fHitArray, fPDPointArray, fPhDetNoise, fPosResolution, fRichResolution, fTimeOrderedDigi, PndPersistencyTask::GetPersistency(), and PndRichGeo::init().

Referenced by digi_complete().

57  {
58 
59  cout << "-I- PndRichHitProducer::Init: "
60  << "INITIALIZATION *********************" << endl;
61 
62  //FairRun* sim = FairRun::Instance(); //[R.K. 01/2017] unused variable?
63  //FairRuntimeDb* rtdb=sim->GetRuntimeDb(); //[R.K. 01/2017] unused variable?
64 
65  fGeo = new PndRichGeo();
67  cout << "-I- PndRichHitProducer::Init: "
68  << "fGeoVersion = " << fGeoVersion << endl;
69 
70  cout << "-I- PndRichHitProducer::Init: ";
71  if (fPhDetNoise)
72  cout << "Photodetector noise is switched on! " << endl;
73  else
74  cout << "Photodetector noise is switched off! " << endl;
75 
76  // Get RootManager
77  FairRootManager* ioman = FairRootManager::Instance();
78  if ( ! ioman ) {
79  cout << "-E- PndRichHitProducer::Init: "
80  << "RootManager not instantiated!" << endl;
81  return kFATAL;
82  }
83 
84  // Get input array
85  fPDPointArray = (TClonesArray*) ioman->GetObject("RichPDPoint");
86  if ( ! fPDPointArray ) {
87  cout << "-W- PndRichHitProducer::Init: "
88  << "No RichPDPoint array!" << endl;
89  return kERROR;
90  }
91 
92  fBarPointArray = (TClonesArray*) ioman->GetObject("RichBarPoint");
93  if ( ! fBarPointArray ) {
94  cout << "-W- PndRichHitProducer::Init: "
95  << "No RichBarPoint array!" << endl;
96  return kERROR;
97  }
98 
99  // Create and register output array
100  fDataBuffer = new PndRichHitWriteoutBuffer("RichDigi", "PndRich", GetPersistency());
101  fDataBuffer = (PndRichHitWriteoutBuffer*)ioman->RegisterWriteoutBuffer("RichDigi", fDataBuffer);
102  fDataBuffer->ActivateBuffering(fTimeOrderedDigi);
103 
104  fHitArray = new TClonesArray("PndRichHit");
105  ioman->Register("RichHit","PndRich",fHitArray,kTRUE);
106 
107  if (fPosResolution>0.)
108  cout << "-I- PndRichHitProducer::Init: "
109  << "Hit Position smearing: " << fPosResolution << " [cm]" << endl;
110 
111  cout << "-I- PndRichHitProducer: Intialization successfull" << endl;
112 
114 
115 /* for(UInt_t i=0;i<1e5;i++)
116  {
117  Double_t xl = 2*gRandom->Uniform()*(fGeo->phDetSizeX() + fGeo->phDetGapX());
118  Double_t yl = 2*gRandom->Uniform()*(fGeo->phDetSizeY() + fGeo->phDetGapY());
119  TVector3 posg = fGeo->PhDetPositionGlobal(TVector3(xl,yl,0.0));
120  TVector3 pos = fGeo->PositionDiscretization(posg);
121  TVector3 posl = pos.Z() ? fGeo->PhDetPositionLocal(pos) : TVector3(0,0,0);
122  std::cout << "PndRichGeo: " <<
123 // format("%15.6 %15.6 %15.6 %15.6 %15.6\n") % xl % yl % posl.X() % posl.Y() % pos.Z();
124  std::setprecision(8) << xl << " " << yl <<
125  " " << posl.X() << " " << posl.Y() << " " << pos.Z() << std::endl;
126  }
127 */
128 /* Double_t xmax = (fGeo->phDetSizeX() + fGeo->phDetGapX())*2;// *fGeo->phDetNumX();
129  Double_t ymax = (fGeo->phDetSizeY() + fGeo->phDetGapY())*2;// *fGeo->phDetNumY();
130  for(Double_t x=-xmax;x<xmax;x+=0.1)
131  {
132  for(Double_t y=-ymax;y<ymax;y+=0.1)
133  {
134  TVector3 pos = fGeo->PhDetPositionGlobal(TVector3(x,y,0));
135  Int_t ix = fGeo->IndexX(pos);
136  Int_t iy = fGeo->IndexY(pos);
137  TVector3 posl = fGeo->PhDetPositionLocal(fGeo->PixelPosition(ix,iy));
138  std::cout << "PndRichGeo: " <<
139  std::setprecision(8) << ix << " " << iy << " " << x << " " << y <<
140  " " << posl.X() << " " << posl.Y() << " " << pos.Z() << std::endl;
141  }
142  }*/
143  return kSUCCESS;
144 
145 }
TClonesArray * fHitArray
void init(size_t ver=0)
Definition: PndRichGeo.cxx:82
PndRichHitWriteoutBuffer * fDataBuffer
TClonesArray * fPDPointArray
PndRichResolution * fRichResolution
TClonesArray * fBarPointArray
std::vector< Double_t > PndRichHitProducer::PhDetNoise ( )
private

Definition at line 262 of file PndRichHitProducer.cxx.

References Double_t, fNumRand, t, and ts.

263 {
264  std::vector<Double_t> tn;
265  Double_t td = 720; //ns
266  Double_t fn = 0.25e5; //Hz
267  Double_t ts = -2000;//start time of noise simulation, in ns
268  Double_t tstop = 50;
269  Double_t t = 0;
270  while(ts<tstop) {
271  t += gRandom->Exp(1e9/fn-td);
272  fNumRand++;
273  if (t>td) {
274  ts += t;
275  t = 0;
276  if (ts<tstop) tn.push_back(ts);
277  }
278  }
279  return tn;
280 }
Double_t
TTree * t
Definition: bump_analys.C:13
PndPidEmcAssociatorTask * ts
void PndRichHitProducer::RunTimeBased ( )
inline

Definition at line 52 of file PndRichHitProducer.h.

References fTimeOrderedDigi.

Referenced by digi_rich().

52 {fTimeOrderedDigi = kTRUE;}
void PndRichHitProducer::SetGeoVersion ( UInt_t  version)
inline

Definition at line 45 of file PndRichHitProducer.h.

References fGeoVersion.

45 { fGeoVersion = version; };
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(), 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(), PndSttHitProducerRealFull::SetPersistence(), PndSttHitProducerIdeal::SetPersistence(), PndSttHitProducerRealFast::SetPersistence(), PndFtsHitProducerIdeal::SetPersistence(), PndTrackSmearTask::SetPersistence(), PndSciTHitProducerIdeal::SetPersistence(), PndIdealTrackFinder::SetPersistence(), PndSttMatchTracks::SetPersistence(), PndSttFindTracks::SetPersistence(), PndFtsHoughTrackerTask::SetPersistence(), PndTrkTracking2::SetPersistence(), PndEmcMakeRecoHit::SetStorageOfData(), PndEmcFWEndcapDigi::SetStorageOfData(), PndEmcMakeClusterOnline::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 PndRichHitProducer::SetPhDetNoiseON ( UInt_t  phDetNoise)
inline

Definition at line 47 of file PndRichHitProducer.h.

References fPhDetNoise.

Referenced by digi_complete_runs(), and digi_rich().

47 { fPhDetNoise = phDetNoise; };
void PndRichHitProducer::SetPositionSmearing ( Float_t  res)
inline

Definition at line 43 of file PndRichHitProducer.h.

References fPosResolution, and res.

43 { fPosResolution = res; };
Int_t res
Definition: anadigi.C:166

Member Data Documentation

TClonesArray* PndRichHitProducer::fBarPointArray
private

Definition at line 70 of file PndRichHitProducer.h.

Referenced by Exec(), and Init().

PndRichHitWriteoutBuffer* PndRichHitProducer::fDataBuffer
private

Definition at line 78 of file PndRichHitProducer.h.

Referenced by AddDigi(), and Init().

Double_t PndRichHitProducer::fDeadTime
private

Definition at line 61 of file PndRichHitProducer.h.

Referenced by AddDigi().

Double_t PndRichHitProducer::fEventTime
private

Definition at line 62 of file PndRichHitProducer.h.

Referenced by Exec().

PndRichGeo* PndRichHitProducer::fGeo
private

Definition at line 56 of file PndRichHitProducer.h.

Referenced by Exec(), and Init().

UInt_t PndRichHitProducer::fGeoVersion
private

Definition at line 57 of file PndRichHitProducer.h.

Referenced by Init(), PndRichHitProducer(), and SetGeoVersion().

TClonesArray* PndRichHitProducer::fHitArray
private

Definition at line 74 of file PndRichHitProducer.h.

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

UInt_t PndRichHitProducer::fNumRand
private

Definition at line 59 of file PndRichHitProducer.h.

Referenced by PhDetNoise(), and PndRichHitProducer().

TClonesArray* PndRichHitProducer::fPDHitArray
private

Output array of PndRichHit

Definition at line 73 of file PndRichHitProducer.h.

Referenced by AddPDHit().

TClonesArray* PndRichHitProducer::fPDPointArray
private

Input array of PndRichPoint

Definition at line 69 of file PndRichHitProducer.h.

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

Bool_t PndRichHitProducer::fPhDetNoise
private

Definition at line 58 of file PndRichHitProducer.h.

Referenced by Exec(), Init(), PndRichHitProducer(), and SetPhDetNoiseON().

Float_t PndRichHitProducer::fPosResolution
private

Definition at line 65 of file PndRichHitProducer.h.

Referenced by Exec(), Init(), PndRichHitProducer(), and SetPositionSmearing().

Double_t PndRichHitProducer::fPreviousEventTime
private

Definition at line 63 of file PndRichHitProducer.h.

Referenced by Exec(), and PndRichHitProducer().

PndRichResolution* PndRichHitProducer::fRichResolution
private

Definition at line 66 of file PndRichHitProducer.h.

Referenced by Exec(), and Init().

Bool_t PndRichHitProducer::fTimeOrderedDigi
private

Definition at line 60 of file PndRichHitProducer.h.

Referenced by AddDigi(), AddXPDHit(), Exec(), Init(), PndRichHitProducer(), and RunTimeBased().


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