FairRoot/PandaRoot
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
PndSdsNoiseProducer Class Referenceabstract

#include <PndSdsNoiseProducer.h>

Inheritance diagram for PndSdsNoiseProducer:
PndSdsTask PndPersistencyTask

Public Member Functions

 PndSdsNoiseProducer ()
 
 PndSdsNoiseProducer (PndSdsNoiseProducer &other)
 
virtual ~PndSdsNoiseProducer ()
 
virtual void SetParContainers ()
 
virtual InitStatus Init ()
 
virtual void SetBranchNames ()=0
 
virtual void SetMCPointType ()=0
 
virtual void Exec (Option_t *opt)
 
Double_t CalcDistFraction (Double_t spread, Double_t threshold)
 
Int_t CalcChargeAboveThreshold (Double_t spread, Double_t threshold)
 
void AddDigiStrip (Int_t &iStrip, Int_t iPoint, Int_t sensorID, Int_t fe, Int_t chan, Double_t charge)
 
void AddDigiPixel (Int_t &noisies, Int_t iPoint, Int_t sensorID, Int_t fe, Int_t col, Int_t row, Double_t charge)
 
void DiveDownNode (TGeoNode *fN)
 
void FillSensorLists ()
 
PndSdsNoiseProduceroperator= (PndSdsNoiseProducer &other)
 
virtual void SetInBranchId ()
 
void SetPersistency (Bool_t val=kTRUE)
 
Bool_t GetPersistency ()
 

Protected Member Functions

 ClassDef (PndSdsNoiseProducer, 1)
 
 ClassDef (PndSdsTask, 1)
 

Protected Attributes

TString fBranchNameStrip
 
TString fBranchNamePixel
 
TClonesArray * fDigiStripArray
 
TClonesArray * fDigiPixelArray
 
PndSdsStripDigiParfDigiParRect
 
PndSdsStripDigiParfDigiParTrap
 
PndSdsPixelDigiParfDigiParPix
 
fDetectorType fMCPointType
 
PndGeoHandlingfGeoH
 
std::vector< Int_t > fPixelIds4
 Geometry name handling. More...
 
std::vector< Int_t > fPixelIds6
 
std::vector< Int_t > fPixelIds8
 
std::vector< Int_t > fPixelIds12
 
std::vector< Int_t > fStripRectIds
 
std::vector< Int_t > fStripTrapIds
 
Int_t fNoiseSpread
 
Int_t fThreshold
 
Double_t fIonizationEnergy
 
TString fInBranchName
 
TString fOutBranchName
 
TString fFolderName
 
Int_t fInBranchId
 
Int_t fOutBranchId
 

Detailed Description

Definition at line 32 of file PndSdsNoiseProducer.h.

Constructor & Destructor Documentation

PndSdsNoiseProducer::PndSdsNoiseProducer ( )

Default constructor

Definition at line 25 of file PndSdsNoiseProducer.cxx.

References PndPersistencyTask::SetPersistency().

25  :
26 PndSdsTask("Charge Noise Producer"),
29 fDigiStripArray(NULL),
30 fDigiPixelArray(NULL),
31 fDigiParRect(NULL),
32 fDigiParTrap(NULL),
33 fDigiParPix(NULL),
34 fMCPointType(), // Not used???
35 fGeoH(NULL),
36 fPixelIds4(),
37 fPixelIds6(),
38 fPixelIds8(),
39 fPixelIds12(),
42 fNoiseSpread(0),
43 fThreshold(0),
45 {
46  SetPersistency(kTRUE);
47 }
PndSdsPixelDigiPar * fDigiParPix
void SetPersistency(Bool_t val=kTRUE)
PndSdsStripDigiPar * fDigiParTrap
TClonesArray * fDigiPixelArray
std::vector< Int_t > fPixelIds8
std::vector< Int_t > fStripRectIds
TClonesArray * fDigiStripArray
std::vector< Int_t > fStripTrapIds
PndGeoHandling * fGeoH
PndSdsStripDigiPar * fDigiParRect
std::vector< Int_t > fPixelIds6
std::vector< Int_t > fPixelIds12
std::vector< Int_t > fPixelIds4
Geometry name handling.
PndSdsNoiseProducer::PndSdsNoiseProducer ( PndSdsNoiseProducer other)
inline

Definition at line 39 of file PndSdsNoiseProducer.h.

39  :
40  PndSdsTask(),
47  fDigiParPix(other.fDigiParPix),
49  fGeoH(other.fGeoH),
50  fPixelIds4(other.fPixelIds4),
51  fPixelIds6(other.fPixelIds6),
52  fPixelIds8(other.fPixelIds8),
53  fPixelIds12(other.fPixelIds12),
57  fThreshold(other.fThreshold),
59  {};
PndSdsPixelDigiPar * fDigiParPix
PndSdsStripDigiPar * fDigiParTrap
TClonesArray * fDigiPixelArray
std::vector< Int_t > fPixelIds8
std::vector< Int_t > fStripRectIds
TClonesArray * fDigiStripArray
std::vector< Int_t > fStripTrapIds
PndGeoHandling * fGeoH
PndSdsStripDigiPar * fDigiParRect
std::vector< Int_t > fPixelIds6
std::vector< Int_t > fPixelIds12
std::vector< Int_t > fPixelIds4
Geometry name handling.
PndSdsNoiseProducer::~PndSdsNoiseProducer ( )
virtual

Destructor

Definition at line 52 of file PndSdsNoiseProducer.cxx.

53 {
54 }

Member Function Documentation

void PndSdsNoiseProducer::AddDigiPixel ( Int_t &  noisies,
Int_t  iPoint,
Int_t  sensorID,
Int_t  fe,
Int_t  col,
Int_t  row,
Double_t  charge 
)

Definition at line 367 of file PndSdsNoiseProducer.cxx.

References PndSdsDigi::AddCharge(), PndSdsDigi::AddIndex(), Bool_t, fBranchNamePixel, fDigiPixelArray, fVerbose, PndSdsDigi::GetDetID(), PndSdsDigi::GetFE(), PndSdsDigiPixel::GetPixelColumn(), PndSdsDigiPixel::GetPixelRow(), PndSdsDigi::GetSensorID(), and row.

Referenced by Exec().

368 {
369  Bool_t found = kFALSE;
370  Int_t detID = -1;
371  fDigiPixelArray = FairRootManager::Instance()->GetTClonesArray(fBranchNamePixel);
372  Int_t iPix = fDigiPixelArray->GetEntriesFast();
373  PndSdsDigiPixel* aDigi = 0;
374  for(Int_t kstr = 0; kstr < iPix && found == kFALSE; kstr++)
375  {
376  aDigi = (PndSdsDigiPixel*)fDigiPixelArray->At(kstr);
377  if ( aDigi->GetDetID() == detID &&
378  aDigi->GetSensorID() == sensorID &&
379  aDigi->GetFE() == fe &&
380  aDigi->GetPixelColumn() == col &&
381  aDigi->GetPixelRow() == row )
382  {
383  aDigi->AddCharge(charge);
384  aDigi->AddIndex(iPoint);
385  found = kTRUE;
386  }
387  }
388  if(found == kFALSE){
389  std::vector<Int_t> indices;
390  indices.push_back(iPoint);
391  FairMCEventHeader* MCevtHeader = (FairMCEventHeader*)FairRootManager::Instance()->GetObject("MCEventHeader.");
392 
393  new ((*fDigiPixelArray)[iPix]) PndSdsDigiPixel(indices,detID,sensorID,fe,col,row,charge, MCevtHeader->GetT()) ;
394  noisies++;
395  if(fVerbose>2) std::cout
396  << " -I- PndSdsNoiseProducer: Added Pixel Digi at: FE=" << fe
397  << ", col|row = ("<<col<<"|"<<row<< "), charge=" << charge<< " e"
398  << ", in sensor \n" << sensorID <<std::endl;
399 
400  }
401 }
int row
Definition: anaLmdDigi.C:67
Int_t GetPixelRow() const
int fVerbose
Definition: poormantracks.C:24
Int_t GetSensorID() const
Definition: PndSdsDigi.h:59
virtual void AddIndex(int index)
Definition: PndSdsDigi.h:66
void AddCharge(double charge)
Definition: PndSdsDigi.h:78
Int_t GetPixelColumn() const
int col
Definition: anaLmdDigi.C:67
Int_t GetFE() const
Definition: PndSdsDigi.h:57
TClonesArray * fDigiPixelArray
Int_t GetDetID() const
Definition: PndSdsDigi.h:61
int fe
Definition: anaLmdDigi.C:67
Data class to store the digi output of a pixel module.
void PndSdsNoiseProducer::AddDigiStrip ( Int_t &  iStrip,
Int_t  iPoint,
Int_t  sensorID,
Int_t  fe,
Int_t  chan,
Double_t  charge 
)

Definition at line 333 of file PndSdsNoiseProducer.cxx.

References PndSdsDigi::AddCharge(), PndSdsDigi::AddIndex(), Bool_t, fBranchNameStrip, fDigiStripArray, fVerbose, PndSdsDigiStrip::GetChannel(), PndSdsDigi::GetDetID(), PndSdsDigi::GetFE(), and PndSdsDigi::GetSensorID().

Referenced by Exec().

334 {
335  Bool_t found = kFALSE;
336  Int_t detID = -1; // we have no input array with MC Points
337  fDigiStripArray = FairRootManager::Instance()->GetTClonesArray(fBranchNameStrip);
338  Int_t iStrip = fDigiStripArray->GetEntriesFast();
339  PndSdsDigiStrip* aDigi = 0;
340  for(Int_t kstr = 0; kstr < iStrip && found == kFALSE; kstr++)
341  {
342  aDigi = (PndSdsDigiStrip*)fDigiStripArray->At(kstr);
343  if ( aDigi->GetDetID() == detID &&
344  aDigi->GetSensorID() == sensorID &&
345  aDigi->GetFE() == fe &&
346  aDigi->GetChannel() == chan )
347  {
348  aDigi->AddCharge(charge);
349  aDigi->AddIndex(iPoint);
350  found = kTRUE;
351  }
352  }
353  if(found == kFALSE){
354  //TODO: get a reasonable timestamp fake for the noise
355  std::vector<Int_t> indices;
356  indices.push_back(iPoint);
357  FairMCEventHeader* MCevtHeader = (FairMCEventHeader*)FairRootManager::Instance()->GetObject("MCEventHeader.");
358  new ((*fDigiStripArray)[iStrip]) PndSdsDigiStrip(indices,detID,sensorID,fe,chan,charge, MCevtHeader->GetT()) ;
359  noisies++;
360  if(fVerbose>2) std::cout
361  << " -I- PndSdsNoiseProducer: Added StripTrap Digi at: FE=" << fe
362  << ", channel=" << chan << ", charge=" << charge<< " e"
363  << ", in sensor \n" << sensorID <<std::endl;
364  }
365 }
int fVerbose
Definition: poormantracks.C:24
Int_t GetSensorID() const
Definition: PndSdsDigi.h:59
virtual void AddIndex(int index)
Definition: PndSdsDigi.h:66
void AddCharge(double charge)
Definition: PndSdsDigi.h:78
Class for digitised strip hits.
Int_t GetFE() const
Definition: PndSdsDigi.h:57
TClonesArray * fDigiStripArray
Int_t GetDetID() const
Definition: PndSdsDigi.h:61
int fe
Definition: anaLmdDigi.C:67
Int_t GetChannel() const
Int_t PndSdsNoiseProducer::CalcChargeAboveThreshold ( Double_t  spread,
Double_t  threshold 
)

Definition at line 320 of file PndSdsNoiseProducer.cxx.

References Double_t, log(), and sqrt().

Referenced by Exec().

321 {
322  // only the charge ABOVE the threshold counts
323  // get maximum y value of gauss tail
324  // calculate a random charge according to that tails distribution
325  Double_t temp=0.;
326  temp = TMath::Gaus(threshold,0,spread);
327  temp = gRandom->Uniform(0.,temp);
328  temp = -2.*spread*spread*log(temp);
329  temp = sqrt(temp);
330  return (Int_t)temp;
331 }
friend F32vec4 sqrt(const F32vec4 &a)
Definition: P4_F32vec4.h:29
friend F32vec4 log(const F32vec4 &a)
Definition: P4_F32vec4.h:110
Double_t
double threshold
Double_t PndSdsNoiseProducer::CalcDistFraction ( Double_t  spread,
Double_t  threshold 
)

Definition at line 306 of file PndSdsNoiseProducer.cxx.

Referenced by Exec().

307 {
308  // mean fraction of fireing digis
309  return 0.5*TMath::Erfc( threshold / (TMath::Sqrt2()*spread) );
310 }
double threshold
PndSdsTask::ClassDef ( PndSdsTask  ,
 
)
protectedinherited
PndSdsNoiseProducer::ClassDef ( PndSdsNoiseProducer  ,
 
)
protected
void PndSdsNoiseProducer::DiveDownNode ( TGeoNode *  fN)

Definition at line 137 of file PndSdsNoiseProducer.cxx.

137  { //nodeMother //[R.K.03/2017] unused variable(s)
138  // for (Int_t Nod=0; Nod<nodeMother->GetNdaughters();Nod++)
139  // {
140  // gGeoManager->CdDown(Nod);
141  // TGeoNode *aNode = gGeoManager->GetCurrentNode();
142  // if(aNode->GetNdaughters()>0) DiveDownNode(aNode);
143  // TString volname = gGeoManager->GetPath();
144  // if(volname.Contains("Active"))
145  // {
146  // if(volname.Contains("Rect")) fStripRectIds.push_back(fGeoH->GetID(volname));
147  // if(volname.Contains("Trap")) fStripTrapIds.push_back(fGeoH->GetID(volname));
148  // if(volname.Contains("Pixel"))
149  // {
150  // if(volname.Contains("4x1")) fPixelIds4.push_back(fGeoH->GetID(volname));
151  // if(volname.Contains("6x1")) fPixelIds6.push_back(fGeoH->GetID(volname));
152  // if(volname.Contains("4x2")) fPixelIds8.push_back(fGeoH->GetID(volname));
153  // if(volname.Contains("6x2")) fPixelIds12.push_back(fGeoH->GetID(volname));
154  // }
155  // }
156  // gGeoManager->CdUp();
157  // }
158 }
void PndSdsNoiseProducer::Exec ( Option_t *  opt)
virtual

Virtual method Exec

Definition at line 180 of file PndSdsNoiseProducer.cxx.

References AddDigiPixel(), AddDigiStrip(), CalcChargeAboveThreshold(), CalcDistFraction(), col, Double_t, fDigiParPix, fDigiParRect, fDigiParTrap, fe, fGeoH, fPixelIds12, fPixelIds4, fPixelIds6, fPixelIds8, fStripRectIds, fStripTrapIds, fVerbose, PndSdsPixelDigiPar::GetFECols(), PndSdsPixelDigiPar::GetFERows(), PndSdsPixelDigiPar::GetNoise(), PndSdsStripDigiPar::GetNoise(), PndSdsStripDigiPar::GetNrBotFE(), PndSdsStripDigiPar::GetNrFECh(), PndSdsStripDigiPar::GetNrTopFE(), PndSdsPixelDigiPar::GetThreshold(), PndSdsStripDigiPar::GetThreshold(), i, row, and PndGeoHandling::SetVerbose().

181 {
183  // TObjArray* activeSensors = fGeoPar->GetGeoSensitiveNodes();
184  Int_t nrCh=0,rnd=0,
185  nrFE=0,sens=0,
186  nrSensors=0,fe=0,
187  chanmax=0,chan=0,
188  col=0,row=0,
189  // iStrip=0,
190  chanwhite=0,
191  //iPix=0,
192  charge=0,
193  nNoisyStripRects=0,
194  nNoisyStripTraps=0,
195  nNoisyPixels=0;
196  Double_t xfrac=0.;
197  Int_t did;
198 
199  // *** Strip Rect ***
200  // how many channels left?
201  nrCh = fDigiParRect->GetNrFECh();
203  nrSensors = fStripRectIds.size();
204  chanmax = nrCh * nrFE * nrSensors;
205  // Get Number of Channels fired from noise
207  chanwhite = gRandom->Poisson(xfrac*chanmax);
208  if(fVerbose>1) std::cout << "-I- PndSdsNoiseProducer: RECT xfrac = " << xfrac
209  << " leading to " << chanwhite << " noisy digis of " << chanmax
210  << " total channels" << std::endl;
211  for(Int_t i = 0;i < chanwhite;i++)
212  {
213  // randomize the channel numbers & sensors
214  rnd = gRandom->Integer(chanmax);
215  sens = rnd/(nrFE*nrCh);
216  rnd = rnd % (nrFE*nrCh);
217  fe = rnd/nrCh; //will populate
218  chan = rnd % nrCh;
219  // calculate a charge deposit above threshold
221  did = fStripRectIds[sens];
222  AddDigiStrip(nNoisyStripRects,-1,did,fe,chan,charge);
223  }
224 
225  // *** Strip Trapezoids ***
226  nrCh = fDigiParTrap->GetNrFECh();
228  nrSensors = fStripTrapIds.size();
229  chanmax = nrCh * nrFE * nrSensors;
231  chanwhite = gRandom->Poisson(xfrac*chanmax);
232  if(fVerbose>1) std::cout << "-I- PndSdsNoiseProducer: TRAP xfrac = " << xfrac
233  << " leading to " << chanwhite << " noisy digis of " << chanmax
234  << " total channels" << std::endl;
235  for(Int_t i = 0;i < chanwhite;i++)
236  {
237  rnd = gRandom->Integer(chanmax);
238  sens = rnd/(nrFE*nrCh);
239  rnd = rnd % (nrFE*nrCh);
240  fe = rnd/nrCh;
241  chan = rnd % nrCh;
243  did = fStripTrapIds[sens];
244  AddDigiStrip(nNoisyStripTraps,-1,did,fe,chan,charge);
245  }
246 
247  // *** Pixel Sensors ***
249  nrFE = 4*fPixelIds4.size() + 6*fPixelIds6.size() + 8*fPixelIds8.size() + 12*fPixelIds12.size();
250  chanmax = nrCh * nrFE;
252  chanwhite = gRandom->Poisson(xfrac*chanmax);
253  if(fVerbose>1) std::cout << "-I- PndSdsNoiseProducer: PIXEL xfrac = " << xfrac
254  << " leading to " << chanwhite << " noisy digis of " << chanmax
255  << " total channels" << std::endl;
256  for(Int_t i = 0;i < chanwhite;i++)
257  {
259  rnd = gRandom->Integer(chanmax);
260  chan = rnd%nrCh;
261  col = chan%fDigiParPix->GetFECols();
262  row = chan/fDigiParPix->GetFECols();
263  fe = rnd/nrCh;
264  if(fe >= (Int_t)(4*fPixelIds4.size() + 6*fPixelIds6.size() + 8*fPixelIds8.size()) )
265  {
266  fe = fe - 4*fPixelIds4.size() - 6*fPixelIds6.size() - 8*fPixelIds8.size();
267  sens = fe/12;
268  did = fPixelIds12[sens];
269  fe = fe%12;
270  if(fe>6) fe=fe-6+10; //0-9 one row of FE, 10-19 2nd row of FE
271  } else if(fe >= (Int_t)(4*fPixelIds4.size() + 6*fPixelIds6.size()) )
272  {
273  fe = fe - 4*fPixelIds4.size() - 6*fPixelIds6.size();
274  sens = fe/8;
275  did = fPixelIds8[sens];
276  fe = fe%8;
277  if(fe>4) fe=fe-4+10; //0-9 one row of FE, 10-19 2nd row of FE
278  } else if( fe >= (Int_t)(4*fPixelIds4.size()) )
279  {
280  fe = fe -4*fPixelIds4.size();
281  sens = fe/6;
282  did = fPixelIds6[sens];
283  fe = fe%6;
284  } else
285  {
286  sens = fe/4;
287  did = fPixelIds4[sens];
288  fe = fe%4;
289  }
290 
291  AddDigiPixel(nNoisyPixels,-1,did,fe,col,row,charge);
292  }
293 
294  // *** The End ***
295  if(fVerbose>0)
296  {
297  std::cout <<"-I- PndSdsNoiseProducer: Noise produced\t"
298  <<nNoisyStripRects <<"xStripRect\t"
299  <<nNoisyStripTraps <<"xStripTrap\t"
300  <<nNoisyPixels <<"xPixels"<<std::endl;
301  }
302 }
int row
Definition: anaLmdDigi.C:67
int fVerbose
Definition: poormantracks.C:24
Int_t i
Definition: run_full.C:25
PndSdsPixelDigiPar * fDigiParPix
int col
Definition: anaLmdDigi.C:67
void AddDigiPixel(Int_t &noisies, Int_t iPoint, Int_t sensorID, Int_t fe, Int_t col, Int_t row, Double_t charge)
Double_t GetNoise() const
Double_t GetThreshold() const
PndSdsStripDigiPar * fDigiParTrap
std::vector< Int_t > fPixelIds8
void AddDigiStrip(Int_t &iStrip, Int_t iPoint, Int_t sensorID, Int_t fe, Int_t chan, Double_t charge)
Double_t GetNoise() const
Int_t GetFERows() const
Int_t GetFECols() const
Double_t
std::vector< Int_t > fStripRectIds
Double_t CalcDistFraction(Double_t spread, Double_t threshold)
std::vector< Int_t > fStripTrapIds
void SetVerbose(Int_t v)
PndGeoHandling * fGeoH
Int_t GetNrFECh() const
PndSdsStripDigiPar * fDigiParRect
int fe
Definition: anaLmdDigi.C:67
std::vector< Int_t > fPixelIds6
Int_t GetNrTopFE() const
Int_t GetNrBotFE() const
std::vector< Int_t > fPixelIds12
std::vector< Int_t > fPixelIds4
Geometry name handling.
Int_t CalcChargeAboveThreshold(Double_t spread, Double_t threshold)
Double_t GetThreshold() const
void PndSdsNoiseProducer::FillSensorLists ( )

Definition at line 117 of file PndSdsNoiseProducer.cxx.

References fGeoH, fPixelIds12, fPixelIds4, fPixelIds6, fPixelIds8, fStripRectIds, fStripTrapIds, PndGeoHandling::GetSensorNames(), i, and TString.

Referenced by Init().

118 {
119  TObjArray* sensorNames = fGeoH->GetSensorNames();
120  for (int i = 0; i < sensorNames->GetEntries(); i++){
121  TString volname = ((TObjString*)(sensorNames->At(i)))->GetString();
122  if(volname.Contains("Active"))
123  {
124  if(volname.Contains("Rect")) fStripRectIds.push_back(i);
125  if(volname.Contains("Trap")) fStripTrapIds.push_back(i);
126  if(volname.Contains("Pixel"))
127  {
128  if(volname.Contains("4x1")) fPixelIds4.push_back(i);
129  if(volname.Contains("6x1")) fPixelIds6.push_back(i);
130  if(volname.Contains("4x2")) fPixelIds8.push_back(i);
131  if(volname.Contains("6x2")) fPixelIds12.push_back(i);
132  }
133  }
134  }
135 }
Int_t i
Definition: run_full.C:25
std::vector< Int_t > fPixelIds8
std::vector< Int_t > fStripRectIds
TObjArray * GetSensorNames()
std::vector< Int_t > fStripTrapIds
PndGeoHandling * fGeoH
std::vector< Int_t > fPixelIds6
std::vector< Int_t > fPixelIds12
std::vector< Int_t > fPixelIds4
Geometry name handling.
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(), PndRecoMultiKalmanTask2::Init(), PndEmcHitProducer::Init(), PndDrcHitProducerReal::Init(), PndDskFLGHitProducerIdeal::Init(), PndEmcTmpWaveformToDigi::Init(), PndDrcDigiTask::Init(), PndEmcWaveformToDigi::Init(), PndSttMatchTracks::Init(), PndEmcWaveformToCalibratedDigi::Init(), PndTrkTracking2::Init(), PndSttFindTracks::Init(), PndEmcMultiWaveformToCalibratedDigi::Init(), PndRecoKalmanTask2::Init(), PndDrcTimeDigiTask::Init(), PndEmcExpClusterSplitter::Init(), PndFtsHoughTrackerTask::Init(), Init(), PndEmcPhiBumpSplitter::Init(), PndSdsIdealRecoTask::Init(), PndSdsHybridHitProducer::Init(), PndRecoMultiKalmanTask::Init(), PndSdsIdealClusterTask::Init(), PndRecoKalmanTask::Init(), PndSdsStripHitProducerDif::Init(), PndGemDigitize::Init(), PndSdsStripHitProducer::Init(), PndGemFindHits::Init(), PndSdsPixelClusterTask::Init(), PndSdsStripClusterTask::Init(), PndMvdGemTrackFinderOnHits::Init(), PndBarrelTrackFinder::Init(), PndEmcFullDigiTask::PndEmcFullDigiTask(), PndEmcMakeBump::PndEmcMakeBump(), PndUnassignedHitsTask::RegisterBranches(), PndMvdClusterTask::SetPersistance(), PndMvdDigiTask::SetPersistance(), PndEmcMakeBump::SetStorageOfData(), and PndEmcFullDigiTask::StoreDigi().

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

Definition at line 57 of file PndSdsNoiseProducer.cxx.

References fBranchNamePixel, fBranchNameStrip, fDigiPixelArray, fDigiStripArray, PndSdsTask::fFolderName, FillSensorLists(), fPixelIds4, fStripRectIds, fStripTrapIds, fVerbose, PndPersistencyTask::GetPersistency(), and SetBranchNames().

58 {
60 
61  // Get RootManager
62  FairRootManager* ioman = FairRootManager::Instance();
63 
64  if ( ! ioman )
65  {
66  std::cout << "-E- PndSdsNoiseProducer::Init: RootManager not instantiated!" << std::endl;
67  return kFATAL;
68  }
69 
70  // Get input array
71  fDigiStripArray = FairRootManager::Instance()->GetTClonesArray(fBranchNameStrip);
72  if ( ! fDigiStripArray ) {
73  std::cout << "-W- PndSdsNoiseProducer::Init: No "<<fBranchNameStrip<<" array!" << std::endl;
74  std::cout << " Create a new one." << std::endl;
75  ioman->Register(fBranchNameStrip, "PndSdsDigiStrip", fFolderName, GetPersistency());
76  }
77 
78  fDigiPixelArray = FairRootManager::Instance()->GetTClonesArray(fBranchNamePixel);
79  if ( ! fDigiPixelArray ) {
80  std::cout << "-W- PndSdsNoiseProducer::Init: No "<<fBranchNamePixel<<" array!" << std::endl;
81  std::cout << " Create a new one." << std::endl;
82  ioman->Register(fBranchNamePixel, "PndSdsDigiPixel", fFolderName, GetPersistency());
83  }
84 
85 
86  // Retrieve a map between the active geometry nodes and their interpretation
87  // TGeoNode* topnode = gGeoManager->GetTopNode();
88  // for (Int_t n=0; n<topnode->GetNdaughters();n++)
89  // {
90  // gGeoManager->CdDown(n);
91  // TGeoNode* node = gGeoManager->GetCurrentNode();
92  // TString nodeName = node->GetName();
93  // if(nodeName.BeginsWith(fFolderName))
94  // {
95  // DiveDownNode(node);
96  // break;
97  // }
98  // gGeoManager->CdUp();
99  // }
100 
101  FillSensorLists();
102  if(fVerbose>1)
103  {
104  std::cout <<"-I- PndSdsNoiseProducer: Registered Sensors: "
105  <<fStripRectIds.size()<<"xStripRect "
106  <<fStripTrapIds.size()<<"xStripTrap "
107  <<fPixelIds4.size()<<"xPixel"
108  <<std::endl;
109  }
110  std::cout << "-I- PndSdsNoiseProducer: Intialisation successfull" << std::endl;
111 
112 
113  return kSUCCESS;
114 
115 }
int fVerbose
Definition: poormantracks.C:24
TClonesArray * fDigiPixelArray
std::vector< Int_t > fStripRectIds
TClonesArray * fDigiStripArray
TString fFolderName
Definition: PndSdsTask.h:41
std::vector< Int_t > fStripTrapIds
virtual void SetBranchNames()=0
std::vector< Int_t > fPixelIds4
Geometry name handling.
PndSdsNoiseProducer& PndSdsNoiseProducer::operator= ( PndSdsNoiseProducer other)
inline

Definition at line 91 of file PndSdsNoiseProducer.h.

References fBranchNamePixel, fBranchNameStrip, fDigiParPix, fDigiParRect, fDigiParTrap, fDigiPixelArray, fDigiStripArray, fGeoH, fIonizationEnergy, fMCPointType, fNoiseSpread, fPixelIds12, fPixelIds4, fPixelIds6, fPixelIds8, fStripRectIds, fStripTrapIds, and fThreshold.

92  {
93  if(this != &other) // protect against invalid self-assignment
94  {
101  fDigiParPix=other.fDigiParPix;
103  fGeoH=other.fGeoH;
104  fPixelIds4=other.fPixelIds4;
105  fPixelIds6=other.fPixelIds6;
106  fPixelIds8=other.fPixelIds8;
107  fPixelIds12=other.fPixelIds12;
111  fThreshold=other.fThreshold;
113  }
114  return *this;
115  }
PndSdsPixelDigiPar * fDigiParPix
PndSdsStripDigiPar * fDigiParTrap
TClonesArray * fDigiPixelArray
std::vector< Int_t > fPixelIds8
std::vector< Int_t > fStripRectIds
TClonesArray * fDigiStripArray
std::vector< Int_t > fStripTrapIds
PndGeoHandling * fGeoH
PndSdsStripDigiPar * fDigiParRect
std::vector< Int_t > fPixelIds6
std::vector< Int_t > fPixelIds12
std::vector< Int_t > fPixelIds4
Geometry name handling.
virtual void PndSdsNoiseProducer::SetBranchNames ( )
pure virtual

pure virtual method SetBranchNames

called by Init() function to set individual branch names

Implements PndSdsTask.

Referenced by Init().

virtual void PndSdsTask::SetInBranchId ( )
inlinevirtualinherited

Reimplemented in PndSdsStripClusterTask, PndSdsPixelClusterTask, and PndSdsIdealClusterTask.

Definition at line 30 of file PndSdsTask.h.

References PndSdsTask::fInBranchId, PndSdsTask::fInBranchName, PndSdsTask::fOutBranchId, and PndSdsTask::fOutBranchName.

Referenced by PndSdsTimeWalkCorrTask::Init(), PndSdsRecoTask::Init(), PndSdsIdealRecoTask::Init(), PndLmdStripHitProducer::SetBranchNames(), PndMvdHitProducerIdeal::SetBranchNames(), PndLmdHybridHitProducer::SetBranchNames(), PndMvdHybridHitProducer::SetBranchNames(), and PndMvdStripHitProducer::SetBranchNames().

30  {
31  FairRootManager *ioman = FairRootManager::Instance();
32  fInBranchId = ioman->GetBranchId(fInBranchName);
33  fOutBranchId = ioman->GetBranchId(fOutBranchName);
34  std::cout << "InBranchId: " << fInBranchId << " for Branch: " << fInBranchName.Data() << std::endl;
35  std::cout << "OutBranchId: " << fOutBranchId << " for Branch: " << fOutBranchName.Data() << std::endl;
36  }
Int_t fInBranchId
Definition: PndSdsTask.h:43
TString fOutBranchName
Definition: PndSdsTask.h:40
Int_t fOutBranchId
Definition: PndSdsTask.h:44
TString fInBranchName
Definition: PndSdsTask.h:39
virtual void PndSdsNoiseProducer::SetMCPointType ( )
pure virtual
void PndSdsNoiseProducer::SetParContainers ( )
virtual

Virtual method Init

Definition at line 161 of file PndSdsNoiseProducer.cxx.

References fDigiParPix, fDigiParRect, fDigiParTrap, fGeoH, PndGeoHandling::Instance(), rtdb, and PndGeoHandling::SetParContainers().

162 {
163  if ( fGeoH == NULL )
165 
167 
168  // Get Base Container
169  FairRun* ana = FairRun::Instance();
170  FairRuntimeDb* rtdb=ana->GetRuntimeDb();
171  // fGeoPar = (PndSdsGeoPar*)(rtdb->getContainer("PndSdsGeoPar"));
172  fDigiParRect = (PndSdsStripDigiPar*)(rtdb->getContainer("MVDStripDigiParRect"));
173  fDigiParTrap = (PndSdsStripDigiPar*)(rtdb->getContainer("MVDStripDigiParTrap"));
174  fDigiParPix = (PndSdsPixelDigiPar*)(rtdb->getContainer("MVDPixelDigiPar"));
175  Info("SetParContainers","done.");
176 }
PndSdsPixelDigiPar * fDigiParPix
virtual void SetParContainers()
PndSdsStripDigiPar * fDigiParTrap
Digitization Parameter Class for MVD-Strip part.
FairRuntimeDb * rtdb
Definition: hit_dirc.C:66
static PndGeoHandling * Instance()
PndGeoHandling * fGeoH
PndSdsStripDigiPar * fDigiParRect
Digitization Parameter Class for SDS-Pixel part.
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(), PndSdsPixelClusterTask::PndSdsPixelClusterTask(), PndSdsStripClusterTask::PndSdsStripClusterTask(), PndSdsStripHitProducer::PndSdsStripHitProducer(), PndSdsTimeWalkCorrTask::PndSdsTimeWalkCorrTask(), PndSttFindTracks::PndSttFindTracks(), PndSttHelixHitProducer::PndSttHelixHitProducer(), PndSttHitProducerIdeal::PndSttHitProducerIdeal(), PndSttHitProducerRealFast::PndSttHitProducerRealFast(), PndSttHitProducerRealFull::PndSttHitProducerRealFull(), PndSttMatchTracks::PndSttMatchTracks(), PndSttMvdGemTracking::PndSttMvdGemTracking(), PndTrackSmearTask::PndTrackSmearTask(), PndTrkTracking2::PndTrkTracking2(), reco(), reco_complete(), reco_complete_gf2(), reco_complete_newSTT(), reco_complete_sec(), recoideal_complete(), PndMvdClusterTask::SetPersistance(), PndMvdDigiTask::SetPersistance(), PndLmdPixelHitProducerFast::SetPersistance(), PndSdsHitProducerIdeal::SetPersistance(), PndSttMvdGemTracking::SetPersistenc(), PndMdtClusterTask::SetPersistence(), PndSttHelixHitProducer::SetPersistence(), PndMissingPzCleanerTask::SetPersistence(), PndFtsHitProducerRealFast::SetPersistence(), PndFtsHitProducerRealFull::SetPersistence(), PndSttHitProducerIdeal::SetPersistence(), PndSttHitProducerRealFull::SetPersistence(), PndSttHitProducerRealFast::SetPersistence(), PndFtsHitProducerIdeal::SetPersistence(), PndTrackSmearTask::SetPersistence(), PndSciTHitProducerIdeal::SetPersistence(), PndIdealTrackFinder::SetPersistence(), PndSttMatchTracks::SetPersistence(), PndSttFindTracks::SetPersistence(), PndFtsHoughTrackerTask::SetPersistence(), PndTrkTracking2::SetPersistence(), PndEmcMakeRecoHit::SetStorageOfData(), PndEmcMakeClusterOnline::SetStorageOfData(), PndEmcFWEndcapDigi::SetStorageOfData(), PndEmcFWEndcapTimebasedWaveforms::SetStorageOfData(), PndEmcMakeDigi::SetStorageOfData(), PndMdtPointsToWaveform::SetStorageOfData(), PndEmc2DLocMaxFinder::SetStorageOfData(), PndEmcMakeCluster::SetStorageOfData(), PndEmcHitsToWaveform::SetStorageOfData(), PndEmcMakeBump::SetStorageOfData(), PndEmcTmpWaveformToDigi::SetStorageOfData(), PndEmcWaveformToDigi::SetStorageOfData(), PndEmcWaveformToCalibratedDigi::SetStorageOfData(), PndEmcMultiWaveformToCalibratedDigi::SetStorageOfData(), PndEmcExpClusterSplitter::SetStorageOfData(), PndEmcPhiBumpSplitter::SetStorageOfData(), standard_tracking(), and PndEmcFullDigiTask::StoreDigi().

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

Member Data Documentation

TString PndSdsNoiseProducer::fBranchNamePixel
protected

Definition at line 119 of file PndSdsNoiseProducer.h.

Referenced by AddDigiPixel(), Init(), and operator=().

TString PndSdsNoiseProducer::fBranchNameStrip
protected

Definition at line 118 of file PndSdsNoiseProducer.h.

Referenced by AddDigiStrip(), Init(), and operator=().

PndSdsPixelDigiPar* PndSdsNoiseProducer::fDigiParPix
protected

Definition at line 127 of file PndSdsNoiseProducer.h.

Referenced by Exec(), operator=(), and SetParContainers().

PndSdsStripDigiPar* PndSdsNoiseProducer::fDigiParRect
protected

Parameter Containers

Definition at line 125 of file PndSdsNoiseProducer.h.

Referenced by Exec(), operator=(), and SetParContainers().

PndSdsStripDigiPar* PndSdsNoiseProducer::fDigiParTrap
protected

Definition at line 126 of file PndSdsNoiseProducer.h.

Referenced by Exec(), operator=(), and SetParContainers().

TClonesArray* PndSdsNoiseProducer::fDigiPixelArray
protected

Definition at line 122 of file PndSdsNoiseProducer.h.

Referenced by AddDigiPixel(), Init(), and operator=().

TClonesArray* PndSdsNoiseProducer::fDigiStripArray
protected

In-Output array of PndSdsDigis

Definition at line 121 of file PndSdsNoiseProducer.h.

Referenced by AddDigiStrip(), Init(), and operator=().

TString PndSdsTask::fFolderName
protectedinherited
PndGeoHandling* PndSdsNoiseProducer::fGeoH
protected

Definition at line 131 of file PndSdsNoiseProducer.h.

Referenced by Exec(), FillSensorLists(), operator=(), and SetParContainers().

Int_t PndSdsTask::fInBranchId
protectedinherited
TString PndSdsTask::fInBranchName
protectedinherited

Definition at line 39 of file PndSdsTask.h.

Referenced by PndSdsStripHitProducer::AddDigi(), PndLmdPixelClusterTask::Exec(), PndLmdStripClusterTask::Exec(), PndSdsStripHitProducer::Exec(), PndSdsPixelClusterTask::Exec(), PndSdsStripClusterTask::Exec(), PndLmdPixelClusterTask::Init(), PndLmdStripClusterTask::Init(), PndSdsTimeWalkCorrTask::Init(), PndLmdPixelHitProducerFast::Init(), PndSdsHitProducerIdeal::Init(), PndLmdPairFinderTask::Init(), PndSdsHybridHitProducer::Init(), PndSdsIdealRecoTask::Init(), PndSdsIdealClusterTask::Init(), PndSdsStripHitProducer::Init(), PndSdsPixelClusterTask::Init(), PndSdsStripClusterTask::Init(), PndMvdHitProducerIdeal::PndMvdHitProducerIdeal(), PndLmdIdealClusterTask::SetBranchNames(), PndMvdTimeWalkCorrTask::SetBranchNames(), PndLmdStripClusterTask::SetBranchNames(), PndMvdStripClusterTask::SetBranchNames(), PndLmdStripHitProducer::SetBranchNames(), PndMvdHitProducerIdeal::SetBranchNames(), PndMvdIdealClusterTask::SetBranchNames(), PndLmdPixelClusterTask::SetBranchNames(), PndLmdHybridHitProducer::SetBranchNames(), PndMvdHybridHitProducer::SetBranchNames(), PndMvdPixelClusterTask::SetBranchNames(), PndLmdIdealRecoTask::SetBranchNames(), PndLmdHitProducerIdeal::SetBranchNames(), PndLmdPixelHitProducerFast::SetBranchNames(), PndLmdPairFinderTask::SetBranchNames(), PndMvdStripHitProducer::SetBranchNames(), PndSdsTask::SetInBranchId(), PndSdsIdealClusterTask::SetInBranchId(), PndSdsPixelClusterTask::SetInBranchId(), and PndSdsStripClusterTask::SetInBranchId().

Double_t PndSdsNoiseProducer::fIonizationEnergy
protected

Definition at line 143 of file PndSdsNoiseProducer.h.

Referenced by operator=().

fDetectorType PndSdsNoiseProducer::fMCPointType
protected

Definition at line 129 of file PndSdsNoiseProducer.h.

Referenced by operator=().

Int_t PndSdsNoiseProducer::fNoiseSpread
protected

Definition at line 140 of file PndSdsNoiseProducer.h.

Referenced by operator=().

Int_t PndSdsTask::fOutBranchId
protectedinherited

Definition at line 44 of file PndSdsTask.h.

Referenced by PndSdsTask::SetInBranchId().

TString PndSdsTask::fOutBranchName
protectedinherited
std::vector<Int_t> PndSdsNoiseProducer::fPixelIds12
protected

Definition at line 136 of file PndSdsNoiseProducer.h.

Referenced by Exec(), FillSensorLists(), and operator=().

std::vector<Int_t> PndSdsNoiseProducer::fPixelIds4
protected

Geometry name handling.

Definition at line 133 of file PndSdsNoiseProducer.h.

Referenced by Exec(), FillSensorLists(), Init(), and operator=().

std::vector<Int_t> PndSdsNoiseProducer::fPixelIds6
protected

Definition at line 134 of file PndSdsNoiseProducer.h.

Referenced by Exec(), FillSensorLists(), and operator=().

std::vector<Int_t> PndSdsNoiseProducer::fPixelIds8
protected

Definition at line 135 of file PndSdsNoiseProducer.h.

Referenced by Exec(), FillSensorLists(), and operator=().

std::vector<Int_t> PndSdsNoiseProducer::fStripRectIds
protected

Definition at line 137 of file PndSdsNoiseProducer.h.

Referenced by Exec(), FillSensorLists(), Init(), and operator=().

std::vector<Int_t> PndSdsNoiseProducer::fStripTrapIds
protected

Definition at line 138 of file PndSdsNoiseProducer.h.

Referenced by Exec(), FillSensorLists(), Init(), and operator=().

Int_t PndSdsNoiseProducer::fThreshold
protected

Definition at line 141 of file PndSdsNoiseProducer.h.

Referenced by operator=().


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