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

#include <PndDrcDigiTask.h>

Inheritance diagram for PndDrcDigiTask:
PndPersistencyTask

Public Member Functions

 PndDrcDigiTask ()
 
 PndDrcDigiTask (Int_t verbose)
 
virtual ~PndDrcDigiTask ()
 
virtual InitStatus Init ()
 
virtual void Exec (Option_t *option)
 
void Reset ()
 
virtual void Finish ()
 
void FindDrcHitPosition (Double_t xPoint, Double_t yPoint, Double_t zPoint, Double_t &xHit, Double_t &yHit, Double_t &zHit, Int_t pmtID)
 
void RunTimeBased ()
 
void SetChargeSharing (Bool_t ct=0)
 
void SetDeadTime (Double_t var)
 
void SetTimeResolution (Double_t var)
 
TVector3 GetSensorDimensions (Int_t sensorID)
 
void SetPersistency (Bool_t val=kTRUE)
 
Bool_t GetPersistency ()
 

Protected Attributes

PndGeoHandlingfGeoH
 

Private Member Functions

void ProcessPhotonPoint ()
 ///< converter for detector names More...
 
void Smear (Double_t &time, Double_t sigt)
 
void ActivatePixel (Int_t sensorId, Int_t k, Int_t csflag)
 
void SetParameters ()
 

Private Attributes

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 fChargeSharing
 
Bool_t fTimeOrderedDigi
 
Int_t fDetectorID
 
TVector3 fPosHit
 
TVector3 fDPosHit
 
TVector3 fPosPDHit
 
Double_t fThetaC
 
Double_t fErrThetaC
 
Double_t fTime
 
Int_t fRefIndex
 
Int_t fPixelID
 
Int_t fBarId
 
Int_t fNDigis
 
TClonesArray * fDigis
 
std::map< Int_t, Int_t > fPixelMap
 
TClonesArray * fBarPointArray
 
TClonesArray * fPDPointArray
 
TClonesArray * fDrcDigiArray
 
TClonesArray * fMCArray
 
PndGeoDrcParfPar
 
PndGeoDrcfGeo
 
Int_t fVerbose
 
Int_t fDetType
 
Double_t nRefrac
 
Double_t fSigmat
 
Int_t nevents
 
PndDrcPDPointfPpt
 
PndMCTrackfMCtrk
 
PndDrcBarPointfBarPoint
 
PndDrcDigiWriteoutBufferfDataBuffer
 

Detailed Description

Definition at line 40 of file PndDrcDigiTask.h.

Constructor & Destructor Documentation

PndDrcDigiTask::PndDrcDigiTask ( )

Default constructor

Definition at line 37 of file PndDrcDigiTask.cxx.

References fGeo, fGeoH, fPDPointArray, Reset(), and SetParameters().

37  :PndPersistencyTask("PndDrcDigiTask"){
38  fGeo = new PndGeoDrc();
39  fGeoH = NULL;
40  fPDPointArray = NULL;
41 
42  SetParameters();
43  Reset();
44 }
TClonesArray * fPDPointArray
PndGeoHandling * fGeoH
PndGeoDrc * fGeo
PndDrcDigiTask::PndDrcDigiTask ( Int_t  verbose)

Constructor with verbosity

Definition at line 47 of file PndDrcDigiTask.cxx.

References fGeo, fGeoH, fPDPointArray, fVerbose, Reset(), SetParameters(), and verbose.

47  :PndPersistencyTask("PndDrcDigiTask",verbose){
48  fVerbose = verbose;
49  fGeo = new PndGeoDrc();
50  fGeoH = NULL;
51  fPDPointArray = NULL;
52 
53  SetParameters();
54  Reset();
55 }
TClonesArray * fPDPointArray
#define verbose
PndGeoHandling * fGeoH
PndGeoDrc * fGeo
PndDrcDigiTask::~PndDrcDigiTask ( )
virtual

Destructor

Definition at line 75 of file PndDrcDigiTask.cxx.

References fGeo, and Reset().

75  {
76  Reset();
77  if (fGeo) delete fGeo;
78 }
PndGeoDrc * fGeo

Member Function Documentation

void PndDrcDigiTask::ActivatePixel ( Int_t  sensorId,
Int_t  k,
Int_t  csflag 
)
private

Definition at line 266 of file PndDrcDigiTask.cxx.

References digi, Double_t, fBarPoint, fDataBuffer, fDeadTime, fDetectorID, fPpt, fSigmat, fTime, PndDrcBarPoint::GetPdgCode(), PndDrcDigi::SetPdgCode(), PndDrcDigi::SetTimeAtBar(), and CAMath::Sqrt().

Referenced by ProcessPhotonPoint().

266  {
267  // in case when the same pixel was fired by two different photons this function takes care of which hits from that pixel to write
268  PndDrcDigi* digi = new PndDrcDigi(k, fDetectorID, sensorId, 0., fTime, csflag, 0.);
269  Double_t timeStamp = fTime + FairRootManager::Instance()->GetEventTime();
270 
271  digi->SetPdgCode(fBarPoint->GetPdgCode());
272  digi->SetTimeStamp(timeStamp);
273  digi->SetTimeAtBar(fBarPoint->GetTime());
274  if(fSigmat>0) digi->SetTimeStampError(fSigmat/TMath::Sqrt(fSigmat));
275  else digi->SetTimeStampError(0);
276 
277  FairEventHeader* evtHeader = (FairEventHeader*)FairRootManager::Instance()->GetObject("EventHeader.");
278 
279  digi->SetLink(fPpt->GetLink(0)); // MCTrack
280  digi->AddLink(FairLink(evtHeader->GetInputFileId(), evtHeader->GetMCEntryNumber(), "DrcPDPoint", k));
281 
282  fDataBuffer->FillNewData(digi, timeStamp, timeStamp + fDeadTime);
283 
284  // if ( fPixelMap.find(sensorId) == fPixelMap.end() ){
285  // // pixel not yet active, create new digi
286  // fDataBuffer->FillNewData(digi, fTime, fTime + fDeadTime);
287  // fPixelMap[sensorId] = fNDigis;
288  // fNDigis++;
289  // }else{
290  // // // if there was already hit in this pixel...
291  // // PndDrcDigi* ddigi = dynamic_cast<PndDrcDigi*>(fDrcDigiArray->At(fPixelMap[sensorId]));
292 
293  // // // ... check the time difference with another one in the same pixel
294  // // if(fabs(ddigi->GetTimeStamp() - fTime) > fDeadTime){
295  // fDataBuffer->FillNewData(digi, fTime, fTime + fDeadTime);
296  // fPixelMap[sensorId] = fNDigis;
297  // fNDigis++;
298  // // }
299  // }
300 }
Int_t GetPdgCode() const
TClonesArray * digi
void SetTimeAtBar(Double_t TimeAtBar)
Definition: PndDrcDigi.cxx:46
PndDrcBarPoint * fBarPoint
static T Sqrt(const T &x)
Definition: PndCAMath.h:37
Double_t
PndDrcPDPoint * fPpt
void SetPdgCode(Int_t Pdg)
Definition: PndDrcDigi.cxx:37
PndDrcDigiWriteoutBuffer * fDataBuffer
Double_t fDeadTime
void PndDrcDigiTask::Exec ( Option_t *  option)
virtual

Executed task

Definition at line 137 of file PndDrcDigiTask.cxx.

References fPDPointArray, fVerbose, nevents, ProcessPhotonPoint(), and Reset().

137  { // ion //[R.K.03/2017] unused variable(s)
138  Reset();
139  if (fVerbose > 0) cout << "-I- PndDrcDigiTask: Event # " << nevents
140  << " has " << fPDPointArray->GetEntriesFast()
141  << " PD points" << endl;
143  nevents++;
144 }
TClonesArray * fPDPointArray
void ProcessPhotonPoint()
///&lt; converter for detector names
void PndDrcDigiTask::FindDrcHitPosition ( Double_t  xPoint,
Double_t  yPoint,
Double_t  zPoint,
Double_t xHit,
Double_t yHit,
Double_t zHit,
Int_t  pmtID 
)

method: FindDrcHitPosition-> finds hit position in PMT plane

void PndDrcDigiTask::Finish ( )
virtual

Finish task

Definition at line 323 of file PndDrcDigiTask.cxx.

323  {
324  cout << "-I- PndDrcDigiTask: Finish" << endl;
325 }
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(), PndSciTHitProducerIdeal::Init(), PndEmcHitProducer::Init(), PndRecoMultiKalmanTask2::Init(), PndDrcHitProducerReal::Init(), PndDskFLGHitProducerIdeal::Init(), PndEmcTmpWaveformToDigi::Init(), 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; }
TVector3 PndDrcDigiTask::GetSensorDimensions ( Int_t  sensorID)

Definition at line 303 of file PndDrcDigiTask.cxx.

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

Referenced by ProcessPhotonPoint().

303  {
304  gGeoManager->cd(fGeoH->GetPath(sensorID));
305  TGeoVolume* actVolume = gGeoManager->GetCurrentVolume();
306  TGeoBBox* actBox = (TGeoBBox*)(actVolume->GetShape());
307  TVector3 result(actBox->GetDX(),actBox->GetDY(),actBox->GetDZ());
308  return result;
309 }
TGeoManager * gGeoManager
TString GetPath(Int_t shortID)
for a given shortID the path is returned
PndGeoHandling * fGeoH
InitStatus PndDrcDigiTask::Init ( )
virtual

Initialization of the task

Definition at line 81 of file PndDrcDigiTask.cxx.

References fBarPointArray, fDataBuffer, fGeoH, fPDPointArray, fTimeOrderedDigi, fVerbose, PndPersistencyTask::GetPersistency(), PndGeoHandling::Instance(), nevents, PndGeoHandling::SetParContainers(), and PndGeoHandling::SetVerbose().

81  {
82  cout << " ---------- INITIALIZATION ------------" << endl;
83  nevents = 0;
84 
85  // Get RootManager
86  FairRootManager* ioman = FairRootManager::Instance();
87  if ( ! ioman ) {
88  cout << "-E- PndDrcDigiTask::Init: "
89  << "RootManager not instantiated!" << endl;
90  return kFATAL;
91  }
92 
93  // PndGeoHandling
94  if ( fGeoH == NULL )
96 
99  if(fVerbose>1) Info("SetParContainers","done.");
100 
101  // // Get input array
102  // fMCArray = (TClonesArray*) ioman->GetObject("MCTrack");
103  // if ( ! fMCArray ) {
104  // cout << "-W- PndDrcRecoLookupMap::Init: "
105  // << "No MCTrack array!" << endl;
106  // return kERROR;
107  // }
108 
109  // Get input array
110  fBarPointArray = (TClonesArray*) ioman->GetObject("DrcBarPoint");
111  if ( ! fBarPointArray ) {
112  cout << "-W- PndDrcDigiTask::Init: "
113  << "No DrcBarPoint array!" << endl;
114  return kERROR;
115  }
116 
117  // Get Photon point array
118  fPDPointArray = (TClonesArray*) ioman->GetObject("DrcPDPoint");
119  if ( ! fPDPointArray ) {
120  cout << "-W- PndDrcAna::Init: "
121  << "No DrcPDPoint array!" << endl;
122  return kERROR;
123  }
124 
125  // Create and register output buffer
126  fDataBuffer = new PndDrcDigiWriteoutBuffer("DrcDigi","PndDrc", GetPersistency());
127  fDataBuffer = (PndDrcDigiWriteoutBuffer*)ioman->RegisterWriteoutBuffer("DrcDigi", fDataBuffer);
128  fDataBuffer->SetVerbose(fVerbose);
129  fDataBuffer->ActivateBuffering(fTimeOrderedDigi);
130 
131  cout << "-I- PndDrcDigiTask: Intialization successfull" << endl;
132 
133  return kSUCCESS;
134 }
TClonesArray * fPDPointArray
virtual void SetParContainers()
Bool_t fTimeOrderedDigi
TClonesArray * fBarPointArray
PndGeoHandling * fGeoH
static PndGeoHandling * Instance()
void SetVerbose(Int_t v)
PndDrcDigiWriteoutBuffer * fDataBuffer
void PndDrcDigiTask::ProcessPhotonPoint ( )
private

///< converter for detector names

Process MC Points

Definition at line 147 of file PndDrcDigiTask.cxx.

References ActivatePixel(), corner, Double_t, exp(), fBarPoint, fBarPointArray, fChargeSharing, fDetectorID, fGeoH, fNpix, fPDPointArray, fPixelSigma, fPixelStep, fPpt, fSigmat, fThreshold, fTime, fTimeGranularity, PndDrcPDPoint::GetBarPointID(), PndDrcPDPoint::GetDetectorID(), PndDrcPDPoint::GetMcpId(), GetSensorDimensions(), PndGeoHandling::MasterToLocalShortId(), point, and Smear().

Referenced by Exec().

147  {
148  for(Int_t k=0; k < fPDPointArray->GetEntriesFast(); k++) {
149 
150  fPpt = (PndDrcPDPoint*)fPDPointArray->At(k);
151  // fMCtrk = (PndMCTrack*)fMCArray->At(fPpt->GetTrackID());
152  Int_t bpId=fPpt->GetBarPointID();
153  if(bpId<0){
154  std::cout<<" Error: bpId = "<<bpId <<std::endl;
155 
156  continue;
157  }
158 
160 
161  // transform to local sensor system
162  TVector3 PptPosition;
163  fPpt->Position(PptPosition);
164  TVector3 posL = fGeoH->MasterToLocalShortId(PptPosition,fPpt->GetDetectorID());
165  TVector3 sensorDim = GetSensorDimensions(fPpt->GetDetectorID());
166 
167  //usually sensors have origin in the middle, let's move it to the left lower corner:
168  TVector3 posLshifted = posL + sensorDim;
169 
170  // calculate the number of the fired pixel
171  Int_t Ncol = (Int_t)TMath::Floor(posLshifted.X()/fPixelStep);
172  Int_t Nrow = (Int_t)TMath::Floor(posLshifted.Y()/fPixelStep);
173  Int_t NpixelLocal = Ncol + Nrow * fNpix;
174 
175  fDetectorID = fPpt->GetDetectorID() * 100 + NpixelLocal;
176  Int_t mcpId = fPpt->GetMcpId();
177  Int_t sensorId = mcpId * 100 + NpixelLocal;
178 
179  // time is smeared and digitized = has granularity
180  fTime=(Int_t)(fPpt->GetTime()/fTimeGranularity)*fTimeGranularity;
181  fTime=fPpt->GetTime();
182  if(fSigmat>0) Smear(fTime,fSigmat);
183 
184  ActivatePixel(sensorId, k, 0);
185 
186  if(fChargeSharing){
187  Double_t distance = 999.;
188  TVector3 corner, point;
189 
190  // left pixel
191  distance = posLshifted.X() - TMath::Floor(posLshifted.X()/fPixelStep)*fPixelStep;
192  if(exp(- distance/fPixelSigma) > gRandom->Uniform(0.,1.) && exp(- distance/fPixelSigma) > fThreshold){
193  if((Ncol-1) >= 0){
194  ActivatePixel(mcpId * 100 +Ncol-1+Nrow*fNpix,k, 1);
195  }
196  }
197  // right pixel
198  distance = TMath::Ceil(posLshifted.X()/fPixelStep)*fPixelStep - posLshifted.X();
199  if(exp(- distance/fPixelSigma) > gRandom->Uniform(0.,1.) && exp(- distance/fPixelSigma) > fThreshold){
200  if(Ncol+1 < fNpix){
201  ActivatePixel(mcpId * 100 +Ncol+1+Nrow*fNpix, k, 1);
202  }
203  }
204  // lower pixel
205  distance = posLshifted.Y() - TMath::Floor(posLshifted.Y()/fPixelStep)*fPixelStep;
206  if(exp(- distance/fPixelSigma) > gRandom->Uniform(0.,1.) && exp(- distance/fPixelSigma) > fThreshold){
207  if(Nrow-1 >= 0){
208  ActivatePixel(mcpId * 100 +Ncol+(Nrow-1)*fNpix, k, 1);
209  }
210  }
211  // upper pixel
212  distance = TMath::Ceil(posLshifted.Y()/fPixelStep)*fPixelStep - posLshifted.Y();
213  if(exp(- distance/fPixelSigma) > gRandom->Uniform(0.,1.) && exp(- distance/fPixelSigma) > fThreshold){
214  if(Nrow+1 < fNpix){
215  ActivatePixel(mcpId * 100 +Ncol+(Nrow+1)*fNpix, k, 1);
216  }
217  }
218 
219  point.SetXYZ(posLshifted.X(),posLshifted.Y(),0.);
220 
221  // upper left pixel
222  corner.SetXYZ(TMath::Floor(posLshifted.X()/fPixelStep)*fPixelStep,
223  TMath::Ceil(posLshifted.Y()/fPixelStep)*fPixelStep,0.);
224  distance = (point-corner).Mag();
225  if(exp(-distance/fPixelSigma) > gRandom->Uniform(0.,1.) && exp(- distance/fPixelSigma) > fThreshold){
226  if(Ncol-1 >= 0 && Nrow+1 < fNpix){
227  ActivatePixel(mcpId * 100 +Ncol-1+(Nrow+1)*fNpix, k, 1);
228 
229  }
230  }
231 
232  // bottom left pixel
233  corner.SetXYZ(TMath::Floor(posLshifted.X()/fPixelStep)*fPixelStep,
234  TMath::Floor(posLshifted.Y()/fPixelStep)*fPixelStep,0.);
235  distance = (point-corner).Mag();
236  if(exp(-distance/fPixelSigma) > gRandom->Uniform(0.,1.) && exp(- distance/fPixelSigma) > fThreshold){
237  if(Ncol-1 >= 0 && Nrow-1 >= 0){
238  ActivatePixel(mcpId * 100 +Ncol-1+(Nrow-1)*fNpix, k, 1);
239  }
240  }
241 
242  // bottom right pixel
243  corner.SetXYZ(TMath::Ceil(posLshifted.X()/fPixelStep)*fPixelStep,
244  TMath::Floor(posLshifted.Y()/fPixelStep)*fPixelStep,0.);
245  distance = (point-corner).Mag();
246  if(exp(-distance/fPixelSigma) > gRandom->Uniform(0.,1.) && exp(- distance/fPixelSigma) > fThreshold){
247  if(Ncol+1 < fNpix && Nrow-1 >= 0){
248  ActivatePixel(mcpId * 100 +Ncol+1+(Nrow-1)*fNpix, k, 1);
249  }
250  }
251 
252  // upper right pixel
253  corner.SetXYZ(TMath::Ceil(posLshifted.X()/fPixelStep)*fPixelStep,
254  TMath::Ceil(posLshifted.Y()/fPixelStep)*fPixelStep,0.);
255  distance = (point-corner).Mag();
256  if(exp(-distance/fPixelSigma) > gRandom->Uniform(0.,1.) && exp(- distance/fPixelSigma) > fThreshold){
257  if(Ncol+1 < fNpix && Nrow+1 < fNpix){
258  ActivatePixel(mcpId * 100 +Ncol+1+(Nrow+1)*fNpix, k, 1);
259  }
260  }
261  }
262  }
263 }
friend F32vec4 exp(const F32vec4 &a)
Definition: P4_F32vec4.h:109
void ActivatePixel(Int_t sensorId, Int_t k, Int_t csflag)
PndDrcBarPoint * fBarPoint
Int_t GetMcpId() const
Definition: PndDrcPDPoint.h:57
Int_t GetDetectorID() const
Definition: PndDrcPDPoint.h:55
TClonesArray * fPDPointArray
Double_t fTimeGranularity
Double_t fPixelSigma
Double_t fThreshold
Int_t GetBarPointID() const
Definition: PndDrcPDPoint.h:56
TVector3 corner
Double_t
TClonesArray * fBarPointArray
PndGeoHandling * fGeoH
TVector3 MasterToLocalShortId(const TVector3 &master, const Int_t &shortId)
Double_t fPixelStep
TVector3 GetSensorDimensions(Int_t sensorID)
PndDrcPDPoint * fPpt
void Smear(Double_t &time, Double_t sigt)
PndSdsMCPoint * point
Definition: anaLmdCluster.C:72
void PndDrcDigiTask::Reset ( )

Reset eventwise counters

Definition at line 317 of file PndDrcDigiTask.cxx.

References fNDigis, and fPixelMap.

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

317  {
318  fNDigis = 0;
319  fPixelMap.clear();
320 }
std::map< Int_t, Int_t > fPixelMap
void PndDrcDigiTask::RunTimeBased ( )
inline

Definition at line 71 of file PndDrcDigiTask.h.

References fTimeOrderedDigi.

Referenced by digi(), and QAmacro_drc_2().

71 {fTimeOrderedDigi = kTRUE;}
Bool_t fTimeOrderedDigi
void PndDrcDigiTask::SetChargeSharing ( Bool_t  ct = 0)
inline

Definition at line 72 of file PndDrcDigiTask.h.

References fChargeSharing.

Referenced by digi(), digiLut(), fillLut(), and QAmacro_drc_2().

72 {fChargeSharing = ct;}
void PndDrcDigiTask::SetDeadTime ( Double_t  var)
inline

Definition at line 73 of file PndDrcDigiTask.h.

References fDeadTime.

Referenced by digi(), and QAmacro_drc_2().

73 { fDeadTime = var; }
Double_t fDeadTime
void PndDrcDigiTask::SetParameters ( )
private

Set the parameters to the default values.

Definition at line 57 of file PndDrcDigiTask.cxx.

References Double_t, fChargeSharing, fDeadTime, fDetType, fGeo, fMcpActiveArea, fNpix, fPixelGap, fPixelSigma, fPixelSize, fPixelStep, fSigmat, fThreshold, fTimeGranularity, fTimeOrderedDigi, PndGeoDrc::McpActiveArea(), PndGeoDrc::Npixels(), PndGeoDrc::PixelSize(), and PndGeoDrc::SigmaCharge().

Referenced by PndDrcDigiTask().

57  {
58  fTimeOrderedDigi = kFALSE;
59  fChargeSharing = kFALSE;
60  fDeadTime = 5;
61 
62  fDetType=1; // Detector Type =1
63  fSigmat=0.1; // Time Resolution is 100 ps ############################
64  fTimeGranularity = 0.001;// [ns] = 98 ps granularity of the time signal
67  fNpix = fGeo->Npixels();
69  fPixelStep = fMcpActiveArea/fNpix; //fPixelSize + 0.5*fPixelGap;
71  fThreshold = 0.20; //threshold to detect charge shared hits
72 }
Double_t SigmaCharge()
Definition: PndGeoDrc.h:178
Double_t fPixelGap
Double_t fTimeGranularity
Double_t fPixelSigma
Double_t fMcpActiveArea
Bool_t fTimeOrderedDigi
Double_t fThreshold
Double_t
Double_t McpActiveArea()
Definition: PndGeoDrc.h:166
Double_t fPixelStep
Int_t Npixels()
Definition: PndGeoDrc.h:172
PndGeoDrc * fGeo
Double_t fPixelSize
Double_t PixelSize()
Definition: PndGeoDrc.h:175
Double_t fDeadTime
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 PndDrcDigiTask::SetTimeResolution ( Double_t  var)
inline

Definition at line 74 of file PndDrcDigiTask.h.

References fSigmat.

Referenced by digi(), digiLut(), and QAmacro_drc_2().

74 {fSigmat = var;}
void PndDrcDigiTask::Smear ( Double_t time,
Double_t  sigt 
)
private

Definition at line 312 of file PndDrcDigiTask.cxx.

Referenced by ProcessPhotonPoint().

312  {
313  time += gRandom->Gaus(0,sigt);
314 }

Member Data Documentation

Int_t PndDrcDigiTask::fBarId
private

Definition at line 110 of file PndDrcDigiTask.h.

PndDrcBarPoint* PndDrcDigiTask::fBarPoint
private

Definition at line 137 of file PndDrcDigiTask.h.

Referenced by ActivatePixel(), and ProcessPhotonPoint().

TClonesArray* PndDrcDigiTask::fBarPointArray
private

Definition at line 118 of file PndDrcDigiTask.h.

Referenced by Init(), and ProcessPhotonPoint().

Bool_t PndDrcDigiTask::fChargeSharing
private

Definition at line 100 of file PndDrcDigiTask.h.

Referenced by ProcessPhotonPoint(), SetChargeSharing(), and SetParameters().

PndDrcDigiWriteoutBuffer* PndDrcDigiTask::fDataBuffer
private

Definition at line 138 of file PndDrcDigiTask.h.

Referenced by ActivatePixel(), and Init().

Double_t PndDrcDigiTask::fDeadTime
private

Definition at line 96 of file PndDrcDigiTask.h.

Referenced by ActivatePixel(), SetDeadTime(), and SetParameters().

Int_t PndDrcDigiTask::fDetectorID
private

Definition at line 102 of file PndDrcDigiTask.h.

Referenced by ActivatePixel(), and ProcessPhotonPoint().

Int_t PndDrcDigiTask::fDetType
private

Parameters of photodetector

Definition at line 129 of file PndDrcDigiTask.h.

Referenced by SetParameters().

TClonesArray* PndDrcDigiTask::fDigis
private

Definition at line 113 of file PndDrcDigiTask.h.

TVector3 PndDrcDigiTask::fDPosHit
private

Definition at line 104 of file PndDrcDigiTask.h.

TClonesArray* PndDrcDigiTask::fDrcDigiArray
private

Definition at line 120 of file PndDrcDigiTask.h.

Double_t PndDrcDigiTask::fErrThetaC
private

Definition at line 106 of file PndDrcDigiTask.h.

PndGeoDrc* PndDrcDigiTask::fGeo
private

Definition at line 124 of file PndDrcDigiTask.h.

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

PndGeoHandling* PndDrcDigiTask::fGeoH
protected

Definition at line 80 of file PndDrcDigiTask.h.

Referenced by GetSensorDimensions(), Init(), PndDrcDigiTask(), and ProcessPhotonPoint().

TClonesArray* PndDrcDigiTask::fMCArray
private

Definition at line 121 of file PndDrcDigiTask.h.

Double_t PndDrcDigiTask::fMcpActiveArea
private

Definition at line 90 of file PndDrcDigiTask.h.

Referenced by SetParameters().

PndMCTrack* PndDrcDigiTask::fMCtrk
private

Definition at line 136 of file PndDrcDigiTask.h.

Int_t PndDrcDigiTask::fNDigis
private

Definition at line 112 of file PndDrcDigiTask.h.

Referenced by Reset().

Int_t PndDrcDigiTask::fNpix
private

Definition at line 92 of file PndDrcDigiTask.h.

Referenced by ProcessPhotonPoint(), and SetParameters().

PndGeoDrcPar* PndDrcDigiTask::fPar
private

Definition at line 123 of file PndDrcDigiTask.h.

TClonesArray* PndDrcDigiTask::fPDPointArray
private

Definition at line 119 of file PndDrcDigiTask.h.

Referenced by Exec(), Init(), PndDrcDigiTask(), and ProcessPhotonPoint().

Double_t PndDrcDigiTask::fPixelGap
private

Definition at line 93 of file PndDrcDigiTask.h.

Referenced by SetParameters().

Int_t PndDrcDigiTask::fPixelID
private

Definition at line 109 of file PndDrcDigiTask.h.

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

Output array of PndDrcDigi

Definition at line 116 of file PndDrcDigiTask.h.

Referenced by Reset().

Double_t PndDrcDigiTask::fPixelSigma
private

Definition at line 95 of file PndDrcDigiTask.h.

Referenced by ProcessPhotonPoint(), and SetParameters().

Double_t PndDrcDigiTask::fPixelSize
private

Definition at line 91 of file PndDrcDigiTask.h.

Referenced by SetParameters().

Double_t PndDrcDigiTask::fPixelStep
private

Definition at line 94 of file PndDrcDigiTask.h.

Referenced by ProcessPhotonPoint(), and SetParameters().

TVector3 PndDrcDigiTask::fPosHit
private

Definition at line 103 of file PndDrcDigiTask.h.

TVector3 PndDrcDigiTask::fPosPDHit
private

Definition at line 105 of file PndDrcDigiTask.h.

PndDrcPDPoint* PndDrcDigiTask::fPpt
private

Definition at line 135 of file PndDrcDigiTask.h.

Referenced by ActivatePixel(), and ProcessPhotonPoint().

Int_t PndDrcDigiTask::fRefIndex
private

Definition at line 108 of file PndDrcDigiTask.h.

Double_t PndDrcDigiTask::fSigmat
private
Double_t PndDrcDigiTask::fThetaC
private

Definition at line 106 of file PndDrcDigiTask.h.

Double_t PndDrcDigiTask::fThreshold
private

Definition at line 97 of file PndDrcDigiTask.h.

Referenced by ProcessPhotonPoint(), and SetParameters().

Double_t PndDrcDigiTask::fTime
private

Definition at line 107 of file PndDrcDigiTask.h.

Referenced by ActivatePixel(), and ProcessPhotonPoint().

Double_t PndDrcDigiTask::fTimeGranularity
private

Definition at line 98 of file PndDrcDigiTask.h.

Referenced by ProcessPhotonPoint(), and SetParameters().

Bool_t PndDrcDigiTask::fTimeOrderedDigi
private

Definition at line 101 of file PndDrcDigiTask.h.

Referenced by Init(), RunTimeBased(), and SetParameters().

Int_t PndDrcDigiTask::fVerbose
private

Definition at line 126 of file PndDrcDigiTask.h.

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

Int_t PndDrcDigiTask::nevents
private

Definition at line 133 of file PndDrcDigiTask.h.

Referenced by Exec(), and Init().

Double_t PndDrcDigiTask::nRefrac
private

Definition at line 131 of file PndDrcDigiTask.h.


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