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

#include <PndDrcTimeDigiTask.h>

Inheritance diagram for PndDrcTimeDigiTask:
PndPersistencyTask

Public Member Functions

 PndDrcTimeDigiTask ()
 
 PndDrcTimeDigiTask (Int_t verbose)
 
virtual ~PndDrcTimeDigiTask ()
 
void RunTimeBased ()
 
virtual InitStatus Init ()
 
virtual void Exec (Option_t *option)
 
void Reset ()
 
virtual void Finish ()
 
PndDrcDigiAddDrcDigi (Int_t index, Int_t iDetectorId, Double_t charge, Double_t TimeStamp, Int_t csflag)
 
void FindDrcHitPosition (Double_t, Double_t, Double_t, Double_t &, Double_t &, Double_t &, Int_t)
 
void SetFakeDetEff ()
 
Double_t FindPhiRot (Double_t, Double_t)
 
Double_t FindOutPoint (Double_t, Double_t, Double_t, Double_t *, Bool_t)
 
void SetActiveTime (Double_t ActiveTime=10)
 
void SetTimeSmearing (Bool_t ct=0)
 
void SetChargeSharing (Bool_t ct=0)
 
TVector3 GetSensorDimensions (Int_t sensorID)
 
void SetTilt (Double_t tilt=0.)
 
void SetTimeOrdered (Bool_t TimeOrderedDigi=kFALSE)
 
void SetTimeResolution (Double_t Sigmat=0.1)
 
void DrawDetEfficiency (Bool_t dr=kFALSE)
 
void SetPersistency (Bool_t val=kTRUE)
 
Bool_t GetPersistency ()
 

Protected Attributes

PndGeoHandlingfGeoH
 

Private Member Functions

void ProcessPhotonPoint ()
 
void Smear (Double_t &time, Double_t sigt)
 
void ActivatePixel (Int_t DetectorId, Int_t sensorId, Double_t signalTime, Int_t k, Int_t csflag)
 
Double_t FuncD1 (Double_t x)
 
Double_t FuncD3 (Double_t x, Double_t y)
 
void SetParameters ()
 

Private Attributes

TClonesArray * fHitArray
 ///< converter for detector names More...
 
Double_t fPDTimeStamp
 
Double_t fpi
 
Double_t fzup
 
Double_t fzdown
 
Double_t fradius
 
Double_t fhthick
 
Double_t fpipehAngle
 
Double_t fbbGap
 
Double_t fbbnum
 
Double_t fbarnum
 
Double_t fphi0
 
Double_t fdphi
 
Double_t flside
 
Double_t fbarwidth
 
Double_t fMcpActiveArea
 
Double_t fPixelSize
 
Int_t fNpix
 
Double_t fPixelGap
 
Double_t fPixelStep
 
Double_t fPixelSigma
 
Double_t fDeadTime
 
Double_t fThreshold
 
Double_t fTimeGranularity
 
Bool_t fisDetEff
 
Bool_t fisPixel
 
Bool_t fisTransportEff
 
Bool_t fDrawing
 
Bool_t fTimeSmearing
 
Bool_t fChargeSharing
 
Double_t ftilt
 
Int_t fDetectorID
 
TVector3 fPosHit
 
TVector3 fDPosHit
 
TVector3 fPosPDHit
 
Double_t fThetaC
 
Double_t fErrThetaC
 
Double_t fTime
 
Int_t fRefIndex
 
Int_t fPixelID
 
Double_t fTimeOfFlight
 
Double_t fEventTime
 
Int_t fBarId
 
Int_t fBoxId
 
Int_t fTrackId
 
TVector3 fTrackIniVertex
 
Int_t fMrId
 
Int_t fMrIdPho
 
Int_t fPdg
 
TVector3 fTrackMom
 
Double_t fTimeAtBar
 
Double_t fActiveTime
 
Int_t fNDigis
 
TClonesArray * fDigis
 
Double_t fPileup
 
std::map< Int_t, Int_t > fPixelMap
 
std::map< Int_t, Double_tfTimeMap
 
TClonesArray * fBarPointArray
 
TClonesArray * fPDPointArray
 
PndDrcDigiWriteoutBufferfDrcTimeDigiArray
 
Bool_t fTimeOrderedDigi
 
TClonesArray * fDrcDigiArray
 
TClonesArray * fMCArray
 
TH2F * detEffLam
 
PndGeoDrcParfPar
 
PndGeoDrcfGeo
 Basic geometry data of barrel DRC. More...
 
Int_t fVerbose
 
Int_t fDetType
 
Double_t nRefrac
 
Double_t fSigmat
 
Double_t fCollectionEff
 
Double_t fPackingFraction
 
Double_t fRoughness
 
Int_t fDetection
 
Int_t nevents
 
Double_t flambda_min
 
Double_t flambda_max
 
Double_t flambda_step
 
Double_t fDetEfficiency [800]
 
Double_t fTranspEfficiency [798]
 
Double_t flambda_min_tr
 
Double_t flambda_max_tr
 
Double_t flambda_step_tr
 
Double_t fangle_step_tr
 
Int_t flambda_points_tr
 
TH1D * PileUp
 
PndDrcPDPointfPpt
 
PndMCTrackfMCtrk
 
PndDrcBarPointfBarPoint
 

Detailed Description

Definition at line 47 of file PndDrcTimeDigiTask.h.

Constructor & Destructor Documentation

PndDrcTimeDigiTask::PndDrcTimeDigiTask ( )

Default constructor

Definition at line 43 of file PndDrcTimeDigiTask.cxx.

References fChargeSharing, fDrcDigiArray, fDrcTimeDigiArray, fGeo, fGeoH, fisDetEff, fisPixel, fPDPointArray, fTimeOrderedDigi, fTimeSmearing, Reset(), and SetParameters().

44 :PndPersistencyTask("PndDrcTimeDigiTask")
45 {
46  fGeo = new PndGeoDrc();
47  fGeoH = NULL;
48  SetParameters();
49  fisDetEff= kTRUE;
50  fisPixel= kTRUE;
51  fChargeSharing=kTRUE;
52  fTimeSmearing= kTRUE;
53 
54  fPDPointArray = NULL;
55  fTimeOrderedDigi =kFALSE;// kTRUE;
56  fDrcDigiArray = NULL;
57  fDrcTimeDigiArray = NULL;
58  Reset();
59 }
PndDrcDigiWriteoutBuffer * fDrcTimeDigiArray
PndGeoDrc * fGeo
Basic geometry data of barrel DRC.
TClonesArray * fDrcDigiArray
PndGeoHandling * fGeoH
TClonesArray * fPDPointArray
PndDrcTimeDigiTask::PndDrcTimeDigiTask ( Int_t  verbose)

Constructor with verbosity

Definition at line 64 of file PndDrcTimeDigiTask.cxx.

References fDetType, fDrcDigiArray, fDrcTimeDigiArray, fGeo, fGeoH, fisDetEff, fisPixel, fPDPointArray, fTimeOrderedDigi, fVerbose, Reset(), SetParameters(), and verbose.

65  :PndPersistencyTask("PndDrcTimeDigiTask",verbose)
66 {
67  fVerbose = verbose;
68  fDetType= 1;
69  fisDetEff= kTRUE;
70  fisPixel= kTRUE;
71  fGeo = new PndGeoDrc();
72  fGeoH = NULL;
73  SetParameters();
74 
75  fPDPointArray = NULL;
76  fTimeOrderedDigi=kFALSE;//kTRUE;
77  fDrcDigiArray = NULL;
78  fDrcTimeDigiArray = NULL;
79  Reset();
80 }
#define verbose
PndDrcDigiWriteoutBuffer * fDrcTimeDigiArray
PndGeoDrc * fGeo
Basic geometry data of barrel DRC.
TClonesArray * fDrcDigiArray
PndGeoHandling * fGeoH
TClonesArray * fPDPointArray
PndDrcTimeDigiTask::~PndDrcTimeDigiTask ( )
virtual

Destructor

Definition at line 85 of file PndDrcTimeDigiTask.cxx.

References fDrcDigiArray, fGeo, and Reset().

86 {
87  if (fGeo) delete fGeo;
88  if ( fDrcDigiArray ) {
89  fDrcDigiArray->Delete();
90  delete fDrcDigiArray;
91  }
92  Reset();
93 
94 }
PndGeoDrc * fGeo
Basic geometry data of barrel DRC.
TClonesArray * fDrcDigiArray

Member Function Documentation

void PndDrcTimeDigiTask::ActivatePixel ( Int_t  DetectorId,
Int_t  sensorId,
Double_t  signalTime,
Int_t  k,
Int_t  csflag 
)
private

Definition at line 332 of file PndDrcTimeDigiTask.cxx.

References digi, fabs(), fActiveTime, fBarId, fBoxId, fDrcTimeDigiArray, fEventTime, fMrId, fMrIdPho, fNDigis, fPdg, fPileup, fPixelMap, fSigmat, fTimeAtBar, fTimeMap, fTimeOfFlight, fTrackId, fTrackIniVertex, fTrackMom, nevents, PndDrcDigi::SetBarID(), PndDrcDigi::SetBoxID(), PndDrcDigi::SetEventNo(), PndDrcDigi::SetEventTim(), PndDrcDigi::SetEvtTim(), PndDrcDigi::SetMotherID(), PndDrcDigi::SetMotherIDPho(), PndDrcDigi::SetPdgCode(), PndDrcDigi::SetTimeAtBar(), PndDrcDigi::SetTrackID(), PndDrcDigi::SetTrackIniVertex(), PndDrcDigi::SetTrackMom(), and CAMath::Sqrt().

Referenced by Exec().

332  {
333  // in case when the same pixel was fired by two different photons this function takes care of which hits from that pixel to write
334  if ( fPixelMap.find(sensorId) == fPixelMap.end() )
335  {
336  // pixel not yet active, create new digi
337 
338  PndDrcDigi* Digi = new PndDrcDigi(k, detectorId, sensorId, 0., fTimeOfFlight, csflag, 0.);
339  Digi->SetTimeStamp(signalTime);
340  Digi->SetTimeStampError(fSigmat/TMath::Sqrt(fSigmat));
341  Digi->SetBarID(fBarId);
342  Digi->SetBoxID(fBoxId);
343  Digi->SetTrackID(fTrackId);
345  Digi->SetMotherID(fMrId);
346  Digi->SetMotherIDPho(fMrIdPho);
347  Digi->SetPdgCode(fPdg);
348  Digi->SetTrackMom(fTrackMom);
349  Digi->SetTimeAtBar(fTimeAtBar);
350  Digi->SetEvtTim(signalTime);
351  Digi->SetEventTim(fEventTime);
352  Digi->SetEventNo(nevents);
353  fDrcTimeDigiArray->FillNewData(Digi, signalTime, signalTime + fActiveTime);
354  fPixelMap[sensorId] = fNDigis;
355  fTimeMap[sensorId] = signalTime;
356  fNDigis++;
357  Digi->SetLink(FairLink("PndDrcPDPoint", k));
358  }
359  else {
360  //Int_t iDigi = fPixelMap[sensorId]; //[R.K. 01/2017] unused variable?
361 
362  if(fabs(fTimeMap.find(sensorId)->second-signalTime)<5.0){
363  fPileup++;
364 }
365  {
366  PndDrcDigi* digi = new PndDrcDigi(k, detectorId, sensorId, 0., fTimeOfFlight, csflag, 0.);
367  digi->SetTimeStamp(signalTime);
368  digi->SetTimeStampError(fSigmat/TMath::Sqrt(fSigmat));
369  digi->SetBarID(fBarId);
370  digi->SetBoxID(fBoxId);
371  digi->SetTrackID(fTrackId);
373  digi->SetMotherID(fMrId);
374  digi->SetMotherIDPho(fMrIdPho);
375  digi->SetPdgCode(fPdg);
376  digi->SetTrackMom(fTrackMom);
377  digi->SetTimeAtBar(fTimeAtBar);
378  digi->SetEvtTim(signalTime);
379  digi->SetEventTim(fEventTime);
380  digi->SetEventNo(nevents);
381  fDrcTimeDigiArray->FillNewData(digi, signalTime, signalTime + fActiveTime);
382  fPixelMap[sensorId] = fNDigis;
383  fTimeMap[sensorId] = signalTime;
384  fNDigis++;
385  fPileup=0.0;
386  }
387  }
388 }
TClonesArray * digi
void SetTimeAtBar(Double_t TimeAtBar)
Definition: PndDrcDigi.cxx:46
std::map< Int_t, Int_t > fPixelMap
static T Sqrt(const T &x)
Definition: PndCAMath.h:37
std::map< Int_t, Double_t > fTimeMap
void SetEventNo(Double_t EventNo)
Definition: PndDrcDigi.cxx:58
PndDrcDigiWriteoutBuffer * fDrcTimeDigiArray
void SetBarID(Int_t BarID)
Definition: PndDrcDigi.cxx:22
void SetBoxID(Int_t BoxID)
Definition: PndDrcDigi.cxx:25
void SetMotherID(Int_t MrID)
Definition: PndDrcDigi.cxx:34
void SetTrackMom(TVector3 TrackMom)
Definition: PndDrcDigi.cxx:40
void SetTrackID(Int_t TrackID)
Definition: PndDrcDigi.cxx:28
friend F32vec4 fabs(const F32vec4 &a)
Definition: P4_F32vec4.h:47
void SetEvtTim(Double_t EvtTim)
Definition: PndDrcDigi.cxx:49
void SetTrackIniVertex(TVector3 TrackIniVertex)
Definition: PndDrcDigi.cxx:31
void SetPdgCode(Int_t Pdg)
Definition: PndDrcDigi.cxx:37
void SetEventTim(Double_t EventTim)
Definition: PndDrcDigi.cxx:52
void SetMotherIDPho(Int_t MrIDPho)
Definition: PndDrcDigi.cxx:43
PndDrcDigi * PndDrcTimeDigiTask::AddDrcDigi ( Int_t  index,
Int_t  iDetectorId,
Double_t  charge,
Double_t  TimeStamp,
Int_t  csflag 
)

method AddPDHit

Adds a DrcTimeDigi to the DigiCollection

Definition at line 449 of file PndDrcTimeDigiTask.cxx.

References fDigis.

450 {
451  TClonesArray& clrefPD = *fDigis;
452  Int_t size = clrefPD.GetEntriesFast();
453  return new(clrefPD[size]) PndDrcDigi(index, iDetectorId, iDetectorId, charge, time, csflag, 0.);
454 }
void PndDrcTimeDigiTask::DrawDetEfficiency ( Bool_t  dr = kFALSE)
inline

Definition at line 103 of file PndDrcTimeDigiTask.h.

References fDrawing.

103 {fDrawing = dr;}
void PndDrcTimeDigiTask::Exec ( Option_t *  option)
virtual

Executed task

Definition at line 154 of file PndDrcTimeDigiTask.cxx.

References ActivatePixel(), corner, Double_t, exp(), fBarId, fBarPoint, fBarPointArray, fBoxId, fChargeSharing, fDetection, fDetectorID, fDrcDigiArray, fEventTime, fGeoH, fMCArray, fMCtrk, fMrId, fMrIdPho, fNpix, fPdg, fPDPointArray, fPileup, fPixelSigma, fPixelStep, fPpt, fSigmat, fThreshold, fTime, fTimeAtBar, fTimeGranularity, fTimeMap, fTimeOfFlight, fTimeSmearing, fTrackId, fTrackIniVertex, fTrackMom, fVerbose, PndDrcBarPoint::GetBarId(), PndDrcPDPoint::GetBarPointID(), PndDrcBarPoint::GetBoxId(), PndDrcPDPoint::GetDetectorID(), PndDrcPDPoint::GetMcpId(), PndMCTrack::GetMomentum(), PndMCTrack::GetMotherID(), PndMCTrack::GetPdgCode(), GetSensorDimensions(), PndMCTrack::GetStartTime(), PndMCTrack::GetStartVertex(), PndGeoHandling::MasterToLocalShortId(), nevents, point, Reset(), PndGeoHandling::SetVerbose(), and Smear().

155 {
156  fTimeMap.clear();
157  Reset();
158  fDrcDigiArray->Delete();
159  nevents++;
160  fPileup=0;
161  //Int_t PDHIT = fPDPointArray->GetEntriesFast(); //[R.K. 01/2017] unused variable?
162 // if (fVerbose > 0) if(nevents%10==0)
163 // cout<<"event time "<<FairRootManager::Instance()->GetEventTime()<<endl;
164  // Reset output array
166 
167  if (fVerbose > 1) {
168  cout <<" Number of Photon MC Points in Photon Detector Plane : "<<fPDPointArray->GetEntries()<<endl;
169  }
170 
171  //Loop over PndDrcPDPoints
172  if (fVerbose == 0) cout<<"-I- PndDrcTimeDigiTask: PD points "<< fPDPointArray->GetEntriesFast() <<endl;
173  for(Int_t k=0; k < fPDPointArray->GetEntriesFast(); k++) {
174 
175  fPpt = (PndDrcPDPoint*)fPDPointArray->At(k);
176 
177  Int_t trID= fPpt->GetTrackID();
178  if(trID<0) continue;
179  fMCtrk = (PndMCTrack*)fMCArray->At(trID);
180  Int_t trMrID= fMCtrk->GetMotherID();
181  fMrIdPho = trMrID;
183 
184  PndMCTrack* fMCtrk1 = (PndMCTrack*)fMCArray->At(trMrID);
185  fPdg = fMCtrk1->GetPdgCode();
186  fMrId = fMCtrk1->GetMotherID();
187  //Int_t NbouncesX, NbouncesY; //[R.K. 01/2017] unused variable?
188  //Double_t angleX, angleY; //[R.K. 01/2017] unused variable?
189  Int_t BarId=-1;
190  fTrackId= trID;
191  fTrackMom.SetXYZ(fMCtrk1->GetMomentum().X(),fMCtrk1->GetMomentum().Y(),fMCtrk1->GetMomentum().Z());
192  if(fPpt->GetBarPointID()!=-1){
194  BarId = fBarPoint->GetDetectorID();
197  // start vertex of the photon
198  TVector3 StartVertex = fMCtrk->GetStartVertex();
199  fTrackIniVertex = StartVertex;
200  // initial direction of the photon in the bar coord system
201  TVector3 PphoInitBar = fGeoH->MasterToLocalShortId(fMCtrk->GetMomentum(), BarId)- fGeoH->MasterToLocalShortId(TVector3(0.,0.,0.),BarId); // vector
202  }
203 
204 
205 
206  //Double_t PPx= fPpt->GetPx(); //[R.K. 01/2017] unused variable?
207  //Double_t PPy= fPpt->GetPy(); //[R.K. 01/2017] unused variable?
208  //Double_t PPz= fPpt->GetPz(); //[R.K. 01/2017] unused variable?
209 
210  //Double_t etot = sqrt(PPx*PPx + PPy*PPy +PPz*PPz);// in GeV //[R.K. 01/2017] unused variable?
211  //Double_t lambda=197.0*2.0*fpi/(etot*1.0E9);//wavelength of photon in nm //[R.K. 01/2017] unused variable?
212 
213  //####################################
214  // transport efficiency
215  if(BarId != -1){
216  fDetection=1;
217  }
218 
219  if(fDetection==1){
220 
221  // transform to local sensor system... (mc point has the ID not the path to the volume)
222  TVector3 PptPosition;
223  fPpt->Position(PptPosition);
224  TVector3 posL = fGeoH->MasterToLocalShortId(PptPosition,fPpt->GetDetectorID()); // point
225  TVector3 sensorDim = GetSensorDimensions(fPpt->GetDetectorID());
226 
227  //usually sensors have origin in the middle, let's move it to the left lower corner:
228  TVector3 posLshifted = posL + sensorDim;
229 
230  // calculate the number of the fired pixel
231  Int_t Ncol = (Int_t)TMath::Floor(posLshifted.X()/fPixelStep);
232  Int_t Nrow = (Int_t)TMath::Floor(posLshifted.Y()/fPixelStep);
233  Int_t NpixelLocal = Ncol + Nrow * fNpix;
234 
235  fDetectorID = fPpt->GetDetectorID() * 100 + NpixelLocal;;
236  Int_t mcpId = fPpt->GetMcpId();
237 
238  Int_t sensorId = mcpId * 100 + NpixelLocal;
239 
240  // time is smeared and digitized = has granularity
241  fTime=(Int_t)(fPpt->GetTime()/fTimeGranularity)*fTimeGranularity;
242 
244  fEventTime = FairRootManager::Instance()->GetEventTime();
245  if(fTimeSmearing == kTRUE) Smear(fTime,fSigmat);
246 
247  ActivatePixel(fDetectorID, sensorId, fTime, k, 0);
248 
249  if(fChargeSharing == kTRUE){
250  // find fired pixels:
251  Double_t distance = 999.;
252  TVector3 corner;
253  TVector3 point;
254 
255  // left pixel
256  distance = posLshifted.X() - TMath::Floor(posLshifted.X()/fPixelStep)*fPixelStep; //[cm]
257  if(exp(- distance/fPixelSigma) > gRandom->Uniform(0.,1.) && exp(- distance/fPixelSigma) > fThreshold){
258  if((Ncol-1) >= 0){
259  ActivatePixel(fDetectorID, mcpId * 100 +Ncol-1+Nrow*fNpix, fTime, k, 1);
260  }
261  }
262  // right pixel
263  distance = TMath::Ceil(posLshifted.X()/fPixelStep)*fPixelStep - posLshifted.X();
264  if(exp(- distance/fPixelSigma) > gRandom->Uniform(0.,1.) && exp(- distance/fPixelSigma) > fThreshold){
265  if(Ncol+1 < fNpix){
266  ActivatePixel(fDetectorID, mcpId * 100 +Ncol+1+Nrow*fNpix, fTime, k, 1);
267  }
268  }
269  // lower pixel
270  distance = posLshifted.Y() - TMath::Floor(posLshifted.Y()/fPixelStep)*fPixelStep;
271  if(exp(- distance/fPixelSigma) > gRandom->Uniform(0.,1.) && exp(- distance/fPixelSigma) > fThreshold){
272  if(Nrow-1 >= 0){
273  ActivatePixel(fDetectorID, mcpId * 100 +Ncol+(Nrow-1)*fNpix, fTime, k, 1);
274  }
275  }
276  // upper pixel
277  distance = TMath::Ceil(posLshifted.Y()/fPixelStep)*fPixelStep - posLshifted.Y();
278  if(exp(- distance/fPixelSigma) > gRandom->Uniform(0.,1.) && exp(- distance/fPixelSigma) > fThreshold){
279  if(Nrow+1 < fNpix){
280  ActivatePixel(fDetectorID, mcpId * 100 +Ncol+(Nrow+1)*fNpix, fTime, k, 1);
281  }
282  }
283 
284  point.SetXYZ(posLshifted.X(),posLshifted.Y(),0.);
285 
286  // upper left pixel
287  corner.SetXYZ(TMath::Floor(posLshifted.X()/fPixelStep)*fPixelStep,
288  TMath::Ceil(posLshifted.Y()/fPixelStep)*fPixelStep,0.);
289  distance = (point-corner).Mag();
290  if(exp(-distance/fPixelSigma) > gRandom->Uniform(0.,1.) && exp(- distance/fPixelSigma) > fThreshold){
291  if(Ncol-1 >= 0 && Nrow+1 < fNpix){
292  ActivatePixel(fDetectorID, mcpId * 100 +Ncol-1+(Nrow+1)*fNpix, fTime, k, 1);
293 
294  }
295  }
296 
297  // bottom left pixel
298  corner.SetXYZ(TMath::Floor(posLshifted.X()/fPixelStep)*fPixelStep,
299  TMath::Floor(posLshifted.Y()/fPixelStep)*fPixelStep,0.);
300  distance = (point-corner).Mag();
301  if(exp(-distance/fPixelSigma) > gRandom->Uniform(0.,1.) && exp(- distance/fPixelSigma) > fThreshold){
302  if(Ncol-1 >= 0 && Nrow-1 >= 0){
303  ActivatePixel(fDetectorID, mcpId * 100 +Ncol-1+(Nrow-1)*fNpix, fTime, k, 1);
304  }
305  }
306 
307  // bottom right pixel
308  corner.SetXYZ(TMath::Ceil(posLshifted.X()/fPixelStep)*fPixelStep,
309  TMath::Floor(posLshifted.Y()/fPixelStep)*fPixelStep,0.);
310  distance = (point-corner).Mag();
311  if(exp(-distance/fPixelSigma) > gRandom->Uniform(0.,1.) && exp(- distance/fPixelSigma) > fThreshold){
312  if(Ncol+1 < fNpix && Nrow-1 >= 0){
313  ActivatePixel(fDetectorID, mcpId * 100 +Ncol+1+(Nrow-1)*fNpix, fTime, k, 1);
314  }
315  }
316 
317  // upper right pixel
318  corner.SetXYZ(TMath::Ceil(posLshifted.X()/fPixelStep)*fPixelStep,
319  TMath::Ceil(posLshifted.Y()/fPixelStep)*fPixelStep,0.);
320  distance = (point-corner).Mag();
321  if(exp(-distance/fPixelSigma) > gRandom->Uniform(0.,1.) && exp(- distance/fPixelSigma) > fThreshold){
322  if(Ncol+1 < fNpix && Nrow+1 < fNpix){
323  ActivatePixel(fDetectorID, mcpId * 100 +Ncol+1+(Nrow+1)*fNpix, fTime, k, 1);
324  }
325  }
326  } // if charge sharing true
327  } // if detection
328  }
329 }
friend F32vec4 exp(const F32vec4 &a)
Definition: P4_F32vec4.h:109
Int_t GetMcpId() const
Definition: PndDrcPDPoint.h:57
TClonesArray * fMCArray
Int_t GetBarId() const
Int_t GetPdgCode() const
Definition: PndMCTrack.h:73
Int_t GetDetectorID() const
Definition: PndDrcPDPoint.h:55
std::map< Int_t, Double_t > fTimeMap
TVector3 GetMomentum() const
Definition: PndMCTrack.h:78
TClonesArray * fBarPointArray
void Smear(Double_t &time, Double_t sigt)
TClonesArray * fDrcDigiArray
Int_t GetBarPointID() const
Definition: PndDrcPDPoint.h:56
TVector3 corner
Int_t GetBoxId() const
Double_t
PndDrcBarPoint * fBarPoint
TClonesArray * point
Definition: anaLmdDigi.C:29
PndGeoHandling * fGeoH
TVector3 GetSensorDimensions(Int_t sensorID)
TVector3 MasterToLocalShortId(const TVector3 &master, const Int_t &shortId)
TClonesArray * fPDPointArray
void SetVerbose(Int_t v)
PndDrcPDPoint * fPpt
TVector3 GetStartVertex() const
Definition: PndMCTrack.h:76
void ActivatePixel(Int_t DetectorId, Int_t sensorId, Double_t signalTime, Int_t k, Int_t csflag)
Int_t GetMotherID() const
Definition: PndMCTrack.h:74
Double_t GetStartTime() const
Definition: PndMCTrack.h:77
void PndDrcTimeDigiTask::FindDrcHitPosition ( Double_t  ,
Double_t  ,
Double_t  ,
Double_t ,
Double_t ,
Double_t ,
Int_t   
)
inline

method: FindDrcHitPosition-> finds hit position in PMT plane

Definition at line 80 of file PndDrcTimeDigiTask.h.

82 {std::cerr << "WARNNING PndDrcTimeDigiTask::FindDrcHitPosition() not properly implemented." <<std::endl;};
Double_t PndDrcTimeDigiTask::FindOutPoint ( Double_t  x0,
Double_t  xEn,
Double_t  a,
Double_t NN,
Bool_t  print 
)

Definition at line 413 of file PndDrcTimeDigiTask.cxx.

References a, Double_t, m, and n.

413  {
414  Double_t m=99.;
415  Double_t n=TMath::Floor(x0/a);
416  m = n;
417  if(print){std::cout<<"n = "<<n<<", NN = "<<*NN<<", x0 = "<<x0<<", a = "<<a<<std::endl;}
418  Double_t x1 = x0 - n*a;
419  if(x0 < 0.){x1 = x0 - (n+1)*a;}
420  if(print){std::cout<<"xy = "<< x1<<std::endl;}
421  Double_t xK = 0.;
422  if((m/2. - TMath::Floor(m/2.)) == 0.) { // 4etnoe
423  if(print){std::cout<<"odd==0"<<std::endl;}
424  if(x0 >= 0. && x1 + xEn <= a){xK = x1 + xEn;}
425  if(x0 >= 0. && x1 + xEn > a){xK = 2*a - x1 - xEn; n = 1. + n;}
426  if(x0 < 0. && x1 + xEn >= 0.){xK = a - (x1 + xEn); n = -1. -n;}
427  if(x0 < 0. && x1 + xEn < 0.) {xK = a + x1 + xEn; n = -n;}
428  if(print){std::cout<<"xK = "<< xK<<", n = "<<n<<std::endl;}
429 
430  }
431 
432  if((m/2. - TMath::Floor(m/2.)) != 0.) { // ne4etnoe
433  if(print){std::cout<<"even!=0"<<std::endl;}
434  if(x0 >= 0. && x1 + xEn <= a){xK = a - (x1 + xEn);}
435  if(x0 >= 0. && x1 + xEn > a){xK = x1 + xEn - a; n = 1. + n;}
436  if(x0 < 0. && x1 + xEn >= 0.){xK = x1 + xEn; n = -1. -n;}
437  if(x0 < 0. && x1 + xEn < 0.) {xK = - (x1 + xEn); n = -n;}
438  if(print){std::cout<<"xK = "<< xK<<", n = "<<n<<std::endl;}
439 
440  }
441 
442  *NN = n;
443  return xK;
444 }
Double_t x0
Definition: checkhelixhit.C:70
__m128 m
Definition: P4_F32vec4.h:28
int n
Int_t a
Definition: anaLmdDigi.C:126
Double_t
Double_t PndDrcTimeDigiTask::FindPhiRot ( Double_t  xx,
Double_t  yy 
)

Set Photon Transport Efficiency Auxiliraly functions

Definition at line 391 of file PndDrcTimeDigiTask.cxx.

References Double_t, fdphi, fpi, fpipehAngle, and hit().

391  { // returns [degrees]
392 
393  TVector3 hit;
394  hit.SetXYZ(xx,yy,0.);
395  Double_t startPhi = hit.Phi()/fpi*180.; // [degrees]
396  if(startPhi < 0.){startPhi = 360. + hit.Phi()*180./fpi;}
397 
398  Double_t PhiRot = 0.; //[degrees]
399  if(startPhi >= 0. && startPhi < 90.){
400  PhiRot = TMath::Floor(startPhi/fdphi) *fdphi + fdphi/2.;
401  }
402  if(startPhi >= 90. && startPhi < 270.){
403  PhiRot = 90. + fpipehAngle + TMath::Floor((startPhi-90.-fpipehAngle)/fdphi) *fdphi + fdphi/2.;
404  }
405  if(startPhi >= 270. && startPhi < 360.){
406  PhiRot = 270. + fpipehAngle + TMath::Floor((startPhi-270.-fpipehAngle)/fdphi) *fdphi + fdphi/2.;
407  }
408  //cout<<"-I- FindPhiRot: PhiRot = "<<PhiRot<<endl;
409  return PhiRot; // degrees
410 }
Double_t
int hit(Int_t nEvents=0, TString inFile="sim.root", TString parFile="par.root", TString inDigi="digi.root", TString outFile="hit.root", Int_t timeBased=0)
Definition: hit.C:1
void PndDrcTimeDigiTask::Finish ( )
virtual

Finish task

Definition at line 566 of file PndDrcTimeDigiTask.cxx.

References fDrcDigiArray.

567 {
568  if ( fDrcDigiArray ) fDrcDigiArray->Clear();
569  cout << "-I- PndDrcTimeDigiTask: Finish" << endl;
570  }
TClonesArray * fDrcDigiArray
Double_t PndDrcTimeDigiTask::FuncD1 ( Double_t  x)
private

Definition at line 483 of file PndDrcTimeDigiTask.cxx.

References Double_t, par1, and sqrt().

Referenced by FuncD3().

483  {
484 
485  // refraction index of fused silica as a function of wavelength
486  Double_t par0 = 0.696;
487  Double_t par1 = 0.068;
488  Double_t par2 = 0.407;
489  Double_t par3 = 0.116;
490  Double_t par4 = 0.897;
491  Double_t par5 = 9.896;
492 
493  return sqrt(1.+
494  (par0*x*x/(x*x-par1*par1))+
495  (par2*x*x/(x*x-par3*par3))+
496  (par4*x*x/(x*x-par5*par5)));
497 }
friend F32vec4 sqrt(const F32vec4 &a)
Definition: P4_F32vec4.h:29
Double_t
Double_t x
Double_t par1[3]
Definition: reco_analys2.C:51
Double_t PndDrcTimeDigiTask::FuncD3 ( Double_t  x,
Double_t  y 
)
private

Definition at line 499 of file PndDrcTimeDigiTask.cxx.

References cos(), Double_t, fRoughness, and FuncD1().

499  {
500  // reflection probability according to the scalar theory (PhD Thesis R.Hohler)
501  Double_t par0 = fRoughness;
502  return 1. - pow(4.*3.14159*cos(y)*par0*FuncD1(x)/x,2);
503 }
friend F32vec4 cos(const F32vec4 &a)
Definition: P4_F32vec4.h:112
Double_t
Double_t x
Double_t FuncD1(Double_t x)
Double_t y
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(), PndSttHitProducerRealFast::Init(), PndDiscTaskReconstruction::Init(), PndRichHitProducer::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(), 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; }
TVector3 PndDrcTimeDigiTask::GetSensorDimensions ( Int_t  sensorID)

Definition at line 506 of file PndDrcTimeDigiTask.cxx.

References fGeoH, PndGeoHandling::GetPath(), and gGeoManager.

Referenced by Exec().

506  {
507  gGeoManager->cd(fGeoH->GetPath(sensorID));
508  TGeoVolume* actVolume = gGeoManager->GetCurrentVolume();
509  TGeoBBox* actBox = (TGeoBBox*)(actVolume->GetShape());
510  TVector3 result(actBox->GetDX(),actBox->GetDY(),actBox->GetDZ());
511  return result;
512 }
TGeoManager * gGeoManager
TString GetPath(Int_t shortID)
for a given shortID the path is returned
PndGeoHandling * fGeoH
InitStatus PndDrcTimeDigiTask::Init ( )
virtual

Definition at line 98 of file PndDrcTimeDigiTask.cxx.

References fBarPointArray, fDrcDigiArray, fDrcTimeDigiArray, fGeoH, fMCArray, fPDPointArray, fTimeOrderedDigi, fVerbose, PndPersistencyTask::GetPersistency(), PndGeoHandling::Instance(), nevents, and PndGeoHandling::SetParContainers().

99 {
100  cout << " ---------- INITIALIZATION ------------" << endl;
101  nevents = 0;
102 
103  // Get RootManager
104  FairRootManager* ioman = FairRootManager::Instance();
105 if ( ! ioman ) {
106  cout << "-E- PndDrcTimeDigiTask::Init: "
107  << "RootManager not instantiated!" << endl;
108  return kFATAL;
109  }
110 
111  // PndGeoHandling
112  if ( fGeoH == NULL )
114 
116  if(fVerbose>1) Info("SetParContainers","done.");
117 
118  // Get input array
119  fMCArray = (TClonesArray*) ioman->GetObject("MCTrack");
120  if ( ! fMCArray ) {
121  cout << "-W- PndDrcRecoLookupMap::Init: "
122  << "No MCTrack array!" << endl;
123  return kERROR;
124  }
125 
126  // Get input array
127  fBarPointArray = (TClonesArray*) ioman->GetObject("DrcBarPoint");
128  if ( ! fBarPointArray ) {
129  cout << "-W- PndDrcTimeDigiTask::Init: "
130  << "No DrcBarPoint array!" << endl;
131  return kERROR;
132  }
133 
134  // Get Photon point array
135  fPDPointArray = (TClonesArray*) ioman->GetObject("DrcPDPoint");
136  if ( ! fPDPointArray ) {
137  cout << "-W- PndDrcAna::Init: "
138  << "No DrcPDPoint array!" << endl;
139  return kERROR;
140  }
141  fDrcDigiArray = new TClonesArray("PndDrcDigi");
142  ioman->Register("DrcDigiNormal","Drc",fDrcDigiArray, kFALSE);
143 
144  // Create and register output array
145  fDrcTimeDigiArray = new PndDrcDigiWriteoutBuffer("DrcDigi","PndDrc", GetPersistency());
146  fDrcTimeDigiArray = (PndDrcDigiWriteoutBuffer*)ioman->RegisterWriteoutBuffer("DrcDigi", fDrcTimeDigiArray);
147  fDrcTimeDigiArray->ActivateBuffering(fTimeOrderedDigi);
148 
149  cout << "-I- PndDrcTimeDigiTask: Intialization successfull" << endl;
150 
151  return kSUCCESS;
152 }
TClonesArray * fMCArray
virtual void SetParContainers()
PndDrcDigiWriteoutBuffer * fDrcTimeDigiArray
TClonesArray * fBarPointArray
TClonesArray * fDrcDigiArray
PndGeoHandling * fGeoH
static PndGeoHandling * Instance()
TClonesArray * fPDPointArray
void PndDrcTimeDigiTask::ProcessPhotonPoint ( )
private
void PndDrcTimeDigiTask::Reset ( )

Reset eventwise counters

Definition at line 557 of file PndDrcTimeDigiTask.cxx.

References fDrcDigiArray, fNDigis, and fPixelMap.

Referenced by Exec(), PndDrcTimeDigiTask(), and ~PndDrcTimeDigiTask().

557  {
558  fNDigis = 0;
559  fPixelMap.clear();
560  if ( fDrcDigiArray ) fDrcDigiArray->Clear();
561 }
std::map< Int_t, Int_t > fPixelMap
TClonesArray * fDrcDigiArray
void PndDrcTimeDigiTask::RunTimeBased ( )
inline

Initialization of the task

Definition at line 62 of file PndDrcTimeDigiTask.h.

References fTimeOrderedDigi.

62 {fTimeOrderedDigi =kFALSE;/*kTRUE;*/}
void PndDrcTimeDigiTask::SetActiveTime ( Double_t  ActiveTime = 10)
inline

Definition at line 91 of file PndDrcTimeDigiTask.h.

References fActiveTime.

91 {fActiveTime = ActiveTime;}
void PndDrcTimeDigiTask::SetChargeSharing ( Bool_t  ct = 0)
inline

Definition at line 93 of file PndDrcTimeDigiTask.h.

References fChargeSharing.

93 {fChargeSharing = ct;}
void PndDrcTimeDigiTask::SetFakeDetEff ( )

Set Photon Detector Parameter

Quantum efficiency taken from old Burle data

Definition at line 457 of file PndDrcTimeDigiTask.cxx.

References fDetEfficiency, fDetType, flambda_max, flambda_min, and flambda_step.

458 {
459  if (fDetType == 1){
460 
462  flambda_min = 300.;
463  flambda_max = 700.;
464  flambda_step = 400.;
465 
466  fDetEfficiency[0] = 1.;
467  fDetEfficiency[1] = 1.;
468  }
469  else {
470  cout << "ERROR: photocathode type not specified" << endl;
471 
472  flambda_min = 300.;
473  flambda_max = 700.;
474  flambda_step = 400.;
475 
476  fDetEfficiency[0] = 0.;
477  }
478 }
Double_t fDetEfficiency[800]
void PndDrcTimeDigiTask::SetParameters ( )
private

Set the parameters to the default values.

Definition at line 515 of file PndDrcTimeDigiTask.cxx.

References PndGeoDrc::barBoxZDown(), PndGeoDrc::barBoxZUp(), PndGeoDrc::barHalfThick(), PndGeoDrc::barNum(), PndGeoDrc::BarWidth(), PndGeoDrc::BBoxGap(), PndGeoDrc::BBoxNum(), PndGeoDrc::DeadTime(), Double_t, fbarnum, fbarwidth, fbbGap, fbbnum, fCollectionEff, fDeadTime, fDetType, fdphi, fGeo, fhthick, flside, fMcpActiveArea, fNpix, fPackingFraction, fphi0, fpi, fpipehAngle, fPixelGap, fPixelSigma, fPixelSize, fPixelStep, fradius, fRoughness, fThreshold, fTimeGranularity, fzdown, fzup, PndGeoDrc::Lside(), PndGeoDrc::McpActiveArea(), PndGeoDrc::nEV(), PndGeoDrc::Npixels(), nRefrac, Pi, PndGeoDrc::PipehAngle(), PndGeoDrc::PixelSize(), PndGeoDrc::radius(), and PndGeoDrc::SigmaCharge().

Referenced by PndDrcTimeDigiTask().

515  {
516  fDetType=1; // Detector Type =1
517  nRefrac=fGeo->nEV();//1.467; //Refractive index of SOB
518 // fSigmat=0.1; //Time Resolution is 100 ps ############################
519  fCollectionEff=0.65;//Collection Efficiency
520  fPackingFraction=0.80;//Packing Efficiency
521  fRoughness = 0.001; // 10 A
522  fTimeGranularity = 0.001;// [ns] = 98 ps granularity of the time signal
523 
524  // basic DIRC parameters:
525  fpi = TMath::Pi();
526  fzup = fGeo->barBoxZUp();
527  fzdown = fGeo->barBoxZDown();
528  fradius = fGeo->radius(); //radius in the middle of the bar = 50.cm
529  fhthick = fGeo->barHalfThick(); //half thickness of the bars=1.7/2 cm
531  fbbGap = fGeo->BBoxGap();
532  fbbnum = fGeo->BBoxNum();
533  fbarnum = fGeo->barNum();
534  fphi0 = (180.-2.*fpipehAngle)/fbbnum + fpipehAngle;
535  fdphi = (180.-2.*fpipehAngle)/fbbnum*2.;
536  flside = fGeo->Lside();
537  fbarwidth = fGeo->BarWidth();
540  fNpix = fGeo->Npixels();
541 
543  fPixelStep = fMcpActiveArea/fNpix; //fPixelSize + 0.5*fPixelGap;
544 
546  fDeadTime = fGeo->DeadTime();
547 
548  fThreshold = 0.20; //threshold to detect charge shared hits
549 }
Double_t nEV()
Definition: PndGeoDrc.h:76
Double_t SigmaCharge()
Definition: PndGeoDrc.h:178
Double_t BBoxNum()
Definition: PndGeoDrc.h:136
Double_t Lside()
Definition: PndGeoDrc.h:184
Double_t BarWidth()
Definition: PndGeoDrc.h:100
Double_t DeadTime()
Definition: PndGeoDrc.h:181
Double_t BBoxGap()
Definition: PndGeoDrc.h:130
PndGeoDrc * fGeo
Basic geometry data of barrel DRC.
Double_t barBoxZDown()
Definition: PndGeoDrc.h:104
Double_t PipehAngle()
Definition: PndGeoDrc.h:139
Double_t barBoxZUp()
Definition: PndGeoDrc.h:108
Double_t
Double_t McpActiveArea()
Definition: PndGeoDrc.h:166
Double_t barHalfThick()
Definition: PndGeoDrc.h:96
Int_t Npixels()
Definition: PndGeoDrc.h:172
Double_t Pi
Double_t barNum()
Definition: PndGeoDrc.h:124
Double_t PixelSize()
Definition: PndGeoDrc.h:175
Double_t radius()
Definition: PndGeoDrc.h:92
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
void PndDrcTimeDigiTask::SetTilt ( Double_t  tilt = 0.)
inline

Definition at line 98 of file PndDrcTimeDigiTask.h.

References ftilt.

98 {ftilt = tilt;} // degrees
void PndDrcTimeDigiTask::SetTimeOrdered ( Bool_t  TimeOrderedDigi = kFALSE)
inline

Definition at line 99 of file PndDrcTimeDigiTask.h.

References fTimeOrderedDigi.

99 {fTimeOrderedDigi = TimeOrderedDigi;} // degrees
void PndDrcTimeDigiTask::SetTimeResolution ( Double_t  Sigmat = 0.1)
inline

Definition at line 100 of file PndDrcTimeDigiTask.h.

References fSigmat.

100 {fSigmat = Sigmat;}
void PndDrcTimeDigiTask::SetTimeSmearing ( Bool_t  ct = 0)
inline

Definition at line 92 of file PndDrcTimeDigiTask.h.

References fTimeSmearing.

92 {fTimeSmearing = ct;}
void PndDrcTimeDigiTask::Smear ( Double_t time,
Double_t  sigt 
)
private

Definition at line 551 of file PndDrcTimeDigiTask.cxx.

References Double_t.

Referenced by Exec().

551  {
552  Double_t EvtTime = FairRootManager::Instance()->GetEventTime();
553  time += EvtTime + gRandom->Gaus(0,sigt);
554 }
Double_t

Member Data Documentation

TH2F* PndDrcTimeDigiTask::detEffLam
private

Definition at line 190 of file PndDrcTimeDigiTask.h.

Double_t PndDrcTimeDigiTask::fActiveTime
private

Definition at line 172 of file PndDrcTimeDigiTask.h.

Referenced by ActivatePixel(), and SetActiveTime().

Double_t PndDrcTimeDigiTask::fangle_step_tr
private

Definition at line 215 of file PndDrcTimeDigiTask.h.

Int_t PndDrcTimeDigiTask::fBarId
private

Definition at line 163 of file PndDrcTimeDigiTask.h.

Referenced by ActivatePixel(), and Exec().

Double_t PndDrcTimeDigiTask::fbarnum
private

Definition at line 131 of file PndDrcTimeDigiTask.h.

Referenced by SetParameters().

PndDrcBarPoint* PndDrcTimeDigiTask::fBarPoint
private

Definition at line 220 of file PndDrcTimeDigiTask.h.

Referenced by Exec().

TClonesArray* PndDrcTimeDigiTask::fBarPointArray
private

Definition at line 181 of file PndDrcTimeDigiTask.h.

Referenced by Exec(), and Init().

Double_t PndDrcTimeDigiTask::fbarwidth
private

Definition at line 135 of file PndDrcTimeDigiTask.h.

Referenced by SetParameters().

Double_t PndDrcTimeDigiTask::fbbGap
private

Definition at line 129 of file PndDrcTimeDigiTask.h.

Referenced by SetParameters().

Double_t PndDrcTimeDigiTask::fbbnum
private

Definition at line 130 of file PndDrcTimeDigiTask.h.

Referenced by SetParameters().

Int_t PndDrcTimeDigiTask::fBoxId
private

Definition at line 164 of file PndDrcTimeDigiTask.h.

Referenced by ActivatePixel(), and Exec().

Bool_t PndDrcTimeDigiTask::fChargeSharing
private

Definition at line 151 of file PndDrcTimeDigiTask.h.

Referenced by Exec(), PndDrcTimeDigiTask(), and SetChargeSharing().

Double_t PndDrcTimeDigiTask::fCollectionEff
private

Definition at line 205 of file PndDrcTimeDigiTask.h.

Referenced by SetParameters().

Double_t PndDrcTimeDigiTask::fDeadTime
private

Definition at line 142 of file PndDrcTimeDigiTask.h.

Referenced by SetParameters().

Int_t PndDrcTimeDigiTask::fDetection
private

Definition at line 208 of file PndDrcTimeDigiTask.h.

Referenced by Exec().

Int_t PndDrcTimeDigiTask::fDetectorID
private

Definition at line 153 of file PndDrcTimeDigiTask.h.

Referenced by Exec().

Double_t PndDrcTimeDigiTask::fDetEfficiency[800]
private

Definition at line 213 of file PndDrcTimeDigiTask.h.

Referenced by SetFakeDetEff().

Int_t PndDrcTimeDigiTask::fDetType
private

Parameters of photodetector

Definition at line 201 of file PndDrcTimeDigiTask.h.

Referenced by PndDrcTimeDigiTask(), SetFakeDetEff(), and SetParameters().

TClonesArray* PndDrcTimeDigiTask::fDigis
private

Definition at line 174 of file PndDrcTimeDigiTask.h.

Referenced by AddDrcDigi().

Double_t PndDrcTimeDigiTask::fdphi
private

Definition at line 133 of file PndDrcTimeDigiTask.h.

Referenced by FindPhiRot(), and SetParameters().

TVector3 PndDrcTimeDigiTask::fDPosHit
private

Definition at line 155 of file PndDrcTimeDigiTask.h.

Bool_t PndDrcTimeDigiTask::fDrawing
private

Definition at line 149 of file PndDrcTimeDigiTask.h.

Referenced by DrawDetEfficiency().

TClonesArray* PndDrcTimeDigiTask::fDrcDigiArray
private

Definition at line 187 of file PndDrcTimeDigiTask.h.

Referenced by Exec(), Finish(), Init(), PndDrcTimeDigiTask(), Reset(), and ~PndDrcTimeDigiTask().

PndDrcDigiWriteoutBuffer* PndDrcTimeDigiTask::fDrcTimeDigiArray
private

Output array of PndDrcTimeDigis

Definition at line 185 of file PndDrcTimeDigiTask.h.

Referenced by ActivatePixel(), Init(), and PndDrcTimeDigiTask().

Double_t PndDrcTimeDigiTask::fErrThetaC
private

Definition at line 157 of file PndDrcTimeDigiTask.h.

Double_t PndDrcTimeDigiTask::fEventTime
private

Definition at line 162 of file PndDrcTimeDigiTask.h.

Referenced by ActivatePixel(), and Exec().

PndGeoDrc* PndDrcTimeDigiTask::fGeo
private

Basic geometry data of barrel DRC.

Definition at line 195 of file PndDrcTimeDigiTask.h.

Referenced by PndDrcTimeDigiTask(), SetParameters(), and ~PndDrcTimeDigiTask().

PndGeoHandling* PndDrcTimeDigiTask::fGeoH
protected

Definition at line 107 of file PndDrcTimeDigiTask.h.

Referenced by Exec(), GetSensorDimensions(), Init(), and PndDrcTimeDigiTask().

TClonesArray* PndDrcTimeDigiTask::fHitArray
private

///< converter for detector names

Process MC Points

Definition at line 113 of file PndDrcTimeDigiTask.h.

Double_t PndDrcTimeDigiTask::fhthick
private

Definition at line 127 of file PndDrcTimeDigiTask.h.

Referenced by SetParameters().

Bool_t PndDrcTimeDigiTask::fisDetEff
private

Definition at line 146 of file PndDrcTimeDigiTask.h.

Referenced by PndDrcTimeDigiTask().

Bool_t PndDrcTimeDigiTask::fisPixel
private

Definition at line 147 of file PndDrcTimeDigiTask.h.

Referenced by PndDrcTimeDigiTask().

Bool_t PndDrcTimeDigiTask::fisTransportEff
private

Definition at line 148 of file PndDrcTimeDigiTask.h.

Double_t PndDrcTimeDigiTask::flambda_max
private

Definition at line 212 of file PndDrcTimeDigiTask.h.

Referenced by SetFakeDetEff().

Double_t PndDrcTimeDigiTask::flambda_max_tr
private

Definition at line 215 of file PndDrcTimeDigiTask.h.

Double_t PndDrcTimeDigiTask::flambda_min
private

Definition at line 212 of file PndDrcTimeDigiTask.h.

Referenced by SetFakeDetEff().

Double_t PndDrcTimeDigiTask::flambda_min_tr
private

Definition at line 215 of file PndDrcTimeDigiTask.h.

Int_t PndDrcTimeDigiTask::flambda_points_tr
private

Definition at line 216 of file PndDrcTimeDigiTask.h.

Double_t PndDrcTimeDigiTask::flambda_step
private

Definition at line 212 of file PndDrcTimeDigiTask.h.

Referenced by SetFakeDetEff().

Double_t PndDrcTimeDigiTask::flambda_step_tr
private

Definition at line 215 of file PndDrcTimeDigiTask.h.

Double_t PndDrcTimeDigiTask::flside
private

Definition at line 134 of file PndDrcTimeDigiTask.h.

Referenced by SetParameters().

TClonesArray* PndDrcTimeDigiTask::fMCArray
private

Definition at line 188 of file PndDrcTimeDigiTask.h.

Referenced by Exec(), and Init().

Double_t PndDrcTimeDigiTask::fMcpActiveArea
private

Definition at line 136 of file PndDrcTimeDigiTask.h.

Referenced by SetParameters().

PndMCTrack* PndDrcTimeDigiTask::fMCtrk
private

Definition at line 219 of file PndDrcTimeDigiTask.h.

Referenced by Exec().

Int_t PndDrcTimeDigiTask::fMrId
private

Definition at line 167 of file PndDrcTimeDigiTask.h.

Referenced by ActivatePixel(), and Exec().

Int_t PndDrcTimeDigiTask::fMrIdPho
private

Definition at line 168 of file PndDrcTimeDigiTask.h.

Referenced by ActivatePixel(), and Exec().

Int_t PndDrcTimeDigiTask::fNDigis
private

Definition at line 173 of file PndDrcTimeDigiTask.h.

Referenced by ActivatePixel(), and Reset().

Int_t PndDrcTimeDigiTask::fNpix
private

Definition at line 138 of file PndDrcTimeDigiTask.h.

Referenced by Exec(), and SetParameters().

Double_t PndDrcTimeDigiTask::fPackingFraction
private

Definition at line 206 of file PndDrcTimeDigiTask.h.

Referenced by SetParameters().

PndGeoDrcPar* PndDrcTimeDigiTask::fPar
private

Definition at line 193 of file PndDrcTimeDigiTask.h.

Int_t PndDrcTimeDigiTask::fPdg
private

Definition at line 169 of file PndDrcTimeDigiTask.h.

Referenced by ActivatePixel(), and Exec().

TClonesArray* PndDrcTimeDigiTask::fPDPointArray
private

Input array of PndDrcPDPoints

Definition at line 183 of file PndDrcTimeDigiTask.h.

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

Double_t PndDrcTimeDigiTask::fPDTimeStamp
private

Definition at line 122 of file PndDrcTimeDigiTask.h.

Double_t PndDrcTimeDigiTask::fphi0
private

Definition at line 132 of file PndDrcTimeDigiTask.h.

Referenced by SetParameters().

Double_t PndDrcTimeDigiTask::fpi
private

Definition at line 123 of file PndDrcTimeDigiTask.h.

Referenced by FindPhiRot(), and SetParameters().

Double_t PndDrcTimeDigiTask::fPileup
private

Output array of PndDrcTimeDigi

Definition at line 175 of file PndDrcTimeDigiTask.h.

Referenced by ActivatePixel(), and Exec().

Double_t PndDrcTimeDigiTask::fpipehAngle
private

Definition at line 128 of file PndDrcTimeDigiTask.h.

Referenced by FindPhiRot(), and SetParameters().

Double_t PndDrcTimeDigiTask::fPixelGap
private

Definition at line 139 of file PndDrcTimeDigiTask.h.

Referenced by SetParameters().

Int_t PndDrcTimeDigiTask::fPixelID
private

Definition at line 160 of file PndDrcTimeDigiTask.h.

std::map<Int_t, Int_t> PndDrcTimeDigiTask::fPixelMap
private

Map of active pixels to index of PndDrcTimeDigis

Definition at line 178 of file PndDrcTimeDigiTask.h.

Referenced by ActivatePixel(), and Reset().

Double_t PndDrcTimeDigiTask::fPixelSigma
private

Definition at line 141 of file PndDrcTimeDigiTask.h.

Referenced by Exec(), and SetParameters().

Double_t PndDrcTimeDigiTask::fPixelSize
private

Definition at line 137 of file PndDrcTimeDigiTask.h.

Referenced by SetParameters().

Double_t PndDrcTimeDigiTask::fPixelStep
private

Definition at line 140 of file PndDrcTimeDigiTask.h.

Referenced by Exec(), and SetParameters().

TVector3 PndDrcTimeDigiTask::fPosHit
private

Definition at line 154 of file PndDrcTimeDigiTask.h.

TVector3 PndDrcTimeDigiTask::fPosPDHit
private

Definition at line 156 of file PndDrcTimeDigiTask.h.

PndDrcPDPoint* PndDrcTimeDigiTask::fPpt
private

Definition at line 218 of file PndDrcTimeDigiTask.h.

Referenced by Exec().

Double_t PndDrcTimeDigiTask::fradius
private

Definition at line 126 of file PndDrcTimeDigiTask.h.

Referenced by SetParameters().

Int_t PndDrcTimeDigiTask::fRefIndex
private

Definition at line 159 of file PndDrcTimeDigiTask.h.

Double_t PndDrcTimeDigiTask::fRoughness
private

Definition at line 207 of file PndDrcTimeDigiTask.h.

Referenced by FuncD3(), and SetParameters().

Double_t PndDrcTimeDigiTask::fSigmat
private

Definition at line 204 of file PndDrcTimeDigiTask.h.

Referenced by ActivatePixel(), Exec(), and SetTimeResolution().

Double_t PndDrcTimeDigiTask::fThetaC
private

Definition at line 157 of file PndDrcTimeDigiTask.h.

Double_t PndDrcTimeDigiTask::fThreshold
private

Definition at line 143 of file PndDrcTimeDigiTask.h.

Referenced by Exec(), and SetParameters().

Double_t PndDrcTimeDigiTask::ftilt
private

Definition at line 152 of file PndDrcTimeDigiTask.h.

Referenced by SetTilt().

Double_t PndDrcTimeDigiTask::fTime
private

Definition at line 158 of file PndDrcTimeDigiTask.h.

Referenced by Exec().

Double_t PndDrcTimeDigiTask::fTimeAtBar
private

Definition at line 171 of file PndDrcTimeDigiTask.h.

Referenced by ActivatePixel(), and Exec().

Double_t PndDrcTimeDigiTask::fTimeGranularity
private

Definition at line 144 of file PndDrcTimeDigiTask.h.

Referenced by Exec(), and SetParameters().

std::map<Int_t, Double_t> PndDrcTimeDigiTask::fTimeMap
private

Definition at line 179 of file PndDrcTimeDigiTask.h.

Referenced by ActivatePixel(), and Exec().

Double_t PndDrcTimeDigiTask::fTimeOfFlight
private

Definition at line 161 of file PndDrcTimeDigiTask.h.

Referenced by ActivatePixel(), and Exec().

Bool_t PndDrcTimeDigiTask::fTimeOrderedDigi
private

Definition at line 186 of file PndDrcTimeDigiTask.h.

Referenced by Init(), PndDrcTimeDigiTask(), RunTimeBased(), and SetTimeOrdered().

Bool_t PndDrcTimeDigiTask::fTimeSmearing
private

Definition at line 150 of file PndDrcTimeDigiTask.h.

Referenced by Exec(), PndDrcTimeDigiTask(), and SetTimeSmearing().

Int_t PndDrcTimeDigiTask::fTrackId
private

Definition at line 165 of file PndDrcTimeDigiTask.h.

Referenced by ActivatePixel(), and Exec().

TVector3 PndDrcTimeDigiTask::fTrackIniVertex
private

Definition at line 166 of file PndDrcTimeDigiTask.h.

Referenced by ActivatePixel(), and Exec().

TVector3 PndDrcTimeDigiTask::fTrackMom
private

Definition at line 170 of file PndDrcTimeDigiTask.h.

Referenced by ActivatePixel(), and Exec().

Double_t PndDrcTimeDigiTask::fTranspEfficiency[798]
private

Definition at line 214 of file PndDrcTimeDigiTask.h.

Int_t PndDrcTimeDigiTask::fVerbose
private

Verbosity level

Definition at line 198 of file PndDrcTimeDigiTask.h.

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

Double_t PndDrcTimeDigiTask::fzdown
private

Definition at line 125 of file PndDrcTimeDigiTask.h.

Referenced by SetParameters().

Double_t PndDrcTimeDigiTask::fzup
private

Definition at line 124 of file PndDrcTimeDigiTask.h.

Referenced by SetParameters().

Int_t PndDrcTimeDigiTask::nevents
private

Definition at line 209 of file PndDrcTimeDigiTask.h.

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

Double_t PndDrcTimeDigiTask::nRefrac
private

Definition at line 203 of file PndDrcTimeDigiTask.h.

Referenced by SetParameters().

TH1D* PndDrcTimeDigiTask::PileUp
private

Definition at line 217 of file PndDrcTimeDigiTask.h.


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