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

Takes list of PndEmcHits and creates PndEmcWaveform. More...

#include <PndEmcHitsToWaveform.h>

Inheritance diagram for PndEmcHitsToWaveform:
PndPersistencyTask

Public Member Functions

 PndEmcHitsToWaveform (Int_t verbose=0, Bool_t storewaves=kTRUE)
 
virtual ~PndEmcHitsToWaveform ()
 
virtual InitStatus Init ()
 Init Task. More...
 
virtual void Exec (Option_t *opt)
 Runs the task. More...
 
PndEmcWaveformAddWaveform (Int_t detId, Int_t hitIndex, Int_t numOfSamples, Double_t timeStamp, Double_t sampleRate, Int_t MCTrackID)
 Create a new PndEmcWaveform from the passed parameters. More...
 
void SetStorageOfData (Bool_t val)
 
void RunTimeBased ()
 
void FinishTask ()
 Called at end of task. More...
 
void SetPersistency (Bool_t val=kTRUE)
 
Bool_t GetPersistency ()
 

Protected Member Functions

virtual void SetParContainers ()
 

Private Member Functions

 PndEmcHitsToWaveform (const PndEmcHitsToWaveform &)
 
PndEmcHitsToWaveformoperator= (const PndEmcHitsToWaveform &)
 
 ClassDef (PndEmcHitsToWaveform, 2)
 

Private Attributes

TClonesArray * fHitArray
 
TClonesArray * fWaveformArray
 
PndEmcWaveformWriteoutBufferfDataBuffer
 
Bool_t fTimeOrderedWaveform
 
Double_t fOneBitResolution
 
Double_t fOneBitResolutionBW
 
Double_t fOneBitResolutionPMT
 
Double_t fOneBitResolutionFWD
 
Int_t fNBits
 
Double_t fDetectedPhotonsPerMeV
 
Double_t fDetectedPhotonsPerMeV_PMT
 
Double_t fNPhotoElectronsPerMeVAPDBarrel
 
Double_t fNPhotoElectronsPerMeVAPDBWD
 
Double_t fNPhotoElectronsPerMeVVPT
 
Double_t fNPhotoElectronsPerMeVPMT
 
Double_t fSensitiveAreaAPD
 
Double_t fSensitiveAreaVPT
 
Double_t fQuantumEfficiencyAPD
 
Double_t fQuantumEfficiencyVPT
 
Double_t fQuantumEfficiencyPMT
 
Double_t fExcessNoiseFactorAPD
 
Double_t fExcessNoiseFactorVPT
 
Double_t fExcessNoiseFactorPMT
 
Double_t fIncoherent_elec_noise_width_GeV_APD
 
Double_t fIncoherent_elec_noise_width_GeV_VPT
 
Double_t fEnergyRange
 
Double_t fEnergyRangeBW
 
Double_t fFirstSamplePhase
 
Int_t fNumber_of_samples_in_waveform
 
Int_t fNumber_of_samples_in_waveform_pmt
 
Int_t fNumber_of_samples_in_waveform_fwd
 
Double_t fASIC_Shaping_int_time
 
Double_t fPMT_Shaping_int_time
 
Double_t fPMT_Shaping_diff_time
 
Double_t fFWD_Shaping_int_time
 
Double_t fFWD_time_constant
 
Double_t fCrystal_time_constant
 
Double_t fShashlyk_time_constant
 
Double_t fShashlykSamplingFactor
 
Double_t fSampleRate
 
Double_t fSampleRate_PMT
 
Double_t fSampleRate_FWD
 
Int_t fUse_shaped_noise
 
Int_t fUse_photon_statistic
 
Int_t fNoiseAllChannels
 
Int_t fMapVersion
 
Double_t fFirstADCBinTime
 
Double_t fGevPeakAnalogue
 
Double_t fGevPeakAnalogue_PMT
 
Double_t fGevPeakAnalogue_FWD
 
PndEmcDigiParfDigiPar
 
PndEmcGeoParfGeoPar
 
Int_t fVerbose
 
Int_t HowManyHit
 
Int_t nWaveformProduced
 
Int_t HowManyEventPileup
 
PndEmcAbsPulseshapepulseshape1
 
PndEmcAbsPulseshapepulseshape2
 
PndEmcAbsPulseshapepulseshape3
 

Detailed Description

Takes list of PndEmcHits and creates PndEmcWaveform.

Definition at line 41 of file PndEmcHitsToWaveform.h.

Constructor & Destructor Documentation

PndEmcHitsToWaveform::PndEmcHitsToWaveform ( Int_t  verbose = 0,
Bool_t  storewaves = kTRUE 
)

Definition at line 55 of file PndEmcHitsToWaveform.cxx.

References HowManyHit, and PndPersistencyTask::SetPersistency().

55  :
57 {
58  HowManyHit = 0;
59  SetPersistency(storewaves);
60 }
Double_t fIncoherent_elec_noise_width_GeV_VPT
#define verbose
TClonesArray * fWaveformArray
void SetPersistency(Bool_t val=kTRUE)
PndEmcWaveformWriteoutBuffer * fDataBuffer
Double_t fNPhotoElectronsPerMeVAPDBarrel
Double_t fIncoherent_elec_noise_width_GeV_APD
parameter set of Emc digitisation
Definition: PndEmcDigiPar.h:12
PndEmcHitsToWaveform::~PndEmcHitsToWaveform ( )
virtual

Definition at line 66 of file PndEmcHitsToWaveform.cxx.

References pulseshape1, pulseshape2, and pulseshape3.

67 {
68 // delete fw_endcap_noise;
69  delete pulseshape1;
70  delete pulseshape2;
71  delete pulseshape3;
72 }
PndEmcAbsPulseshape * pulseshape2
PndEmcAbsPulseshape * pulseshape1
PndEmcAbsPulseshape * pulseshape3
PndEmcHitsToWaveform::PndEmcHitsToWaveform ( const PndEmcHitsToWaveform )
private

Member Function Documentation

PndEmcWaveform * PndEmcHitsToWaveform::AddWaveform ( Int_t  detID,
Int_t  iHit,
Int_t  numOfSamples,
Double_t  timeStamp,
Double_t  sampleRate,
Int_t  MCTrackID 
)

Create a new PndEmcWaveform from the passed parameters.

Parameters
detIDDetector ID
iHitIndex of PndEmcHit in hit TClonesArray
numOfSamplesNumber of samples in waveform
timeStampTimestamp from the hit
sampleRateSample rate (in Hz)
MCTrackIDMC track ID if available, else -1
Returns
PndEmcWaveform* The created waveform object

Definition at line 594 of file PndEmcHitsToWaveform.cxx.

References fTimeOrderedWaveform, fWaveformArray, and nWaveformProduced.

Referenced by Exec().

600 {
602  PndEmcWaveform* thisWave(0);
604  thisWave = new PndEmcWaveform(MCTrackID,detID,sampleRate, numOfSamples, iHit, timeStamp);
605  }else{
606  TClonesArray& clref = *fWaveformArray;
607  Int_t size = clref.GetEntriesFast();
608  thisWave = new(clref[size]) PndEmcWaveform(MCTrackID,detID,sampleRate, numOfSamples,iHit, timeStamp);
609  }
610  return thisWave;
611 }
TClonesArray * fWaveformArray
represents a simulated waveform in an emc crystal
PndEmcHitsToWaveform::ClassDef ( PndEmcHitsToWaveform  ,
 
)
private
void PndEmcHitsToWaveform::Exec ( Option_t *  opt)
virtual

Runs the task.

The tasks consists of using the PndEmcHit to create PndEmcWaveform by using the pulseshape generators (PndEmcAbsPulseshape derived) for the different parts of the EMC. Also the noise is added to the pulseshape here.

Parameters
optunused
Returns
void

Definition at line 257 of file PndEmcHitsToWaveform.cxx.

References PndEmcWaveform::AddElecNoiseAndDigitise(), PndEmcWaveform::AddEvt(), PndEmcWaveform::AddShapedElecNoiseAndDigitise(), AddWaveform(), ctime, Double_t, fDataBuffer, fExcessNoiseFactorAPD, fExcessNoiseFactorPMT, fExcessNoiseFactorVPT, fFirstADCBinTime, fFirstSamplePhase, fGevPeakAnalogue, fGevPeakAnalogue_FWD, fGevPeakAnalogue_PMT, fHitArray, fIncoherent_elec_noise_width_GeV_APD, fIncoherent_elec_noise_width_GeV_VPT, fNoiseAllChannels, fNPhotoElectronsPerMeVAPDBarrel, fNPhotoElectronsPerMeVPMT, fNPhotoElectronsPerMeVVPT, fNumber_of_samples_in_waveform, fNumber_of_samples_in_waveform_fwd, fNumber_of_samples_in_waveform_pmt, fOneBitResolution, fOneBitResolutionBW, fOneBitResolutionFWD, fOneBitResolutionPMT, fSampleRate, fSampleRate_FWD, fSampleRate_PMT, fShashlykSamplingFactor, fTimeOrderedWaveform, fUse_photon_statistic, fUse_shaped_noise, fVerbose, fWaveformArray, PndEmcWaveform::GetActiveTime(), PndEmcHit::GetEnergy(), PndEmcHit::GetMcList(), PndEmcHit::GetModule(), PndEmcMapper::GetTciMap(), PndEmcHit::GetTime(), HowManyHit, PndEmcMapper::Instance(), nHits, pulseshape1, pulseshape2, pulseshape3, rtime, PndEmcHit::SetEnergy(), sqrt(), timer, and PndEmcWaveform::UpdateWaveform().

258 {
259  TStopwatch timer;
260  if (fVerbose>2){
261  timer.Start();
262  }
263  // Reset output array
265  if ( ! fDataBuffer ) Fatal("Exec", "No Waveform Data Buffer");
266  }else{
267  if ( ! fWaveformArray ) Fatal("Exec", "No Waveform Array");
268  fWaveformArray->Delete();
269  }
270 
271  Double_t EventTime = FairRootManager::Instance()->GetEventTime();//nano seconds
272  Int_t nHits = fHitArray->GetEntriesFast();
273  Int_t evtNo = FairRun::Instance()->GetEventHeader()->GetMCEntryNumber();
274  if (fVerbose>1){
275  cout<<"**************************************"<<endl;
276  cout<<"Event No. #"<<evtNo<<", EvtTime #"<<EventTime<<std::endl;
277  cout<<"PndEmcHitsToWaveform:: Hit array contains "<<nHits<< " hits"<<endl;
278  cout<<"fDataBuffer size #"<< (fTimeOrderedWaveform ? fDataBuffer->GetNData() : fWaveformArray->GetEntriesFast()) <<std::endl;
279  cout<<"**************************************"<<endl;
280  }
281 
282  // Variable declaration
283  PndEmcHit* theHit = NULL;
284  PndEmcWaveform* theWaveform = NULL;
285  PndEmcHit* tmpHit = NULL;
286  std::set<Int_t> waveformInd;
287  Int_t NumOfSamples;
288 
289  // Loop over PndEmcHits to add them to correspondent waveforms
290  // <set> fWaveformInd contains indexes of detectors for which Waveforms are created
291  //PndEmcAsicPulseshape *pulseshape= new PndEmcAsicPulseshape(fASIC_Shaping_int_time,fCrystal_time_constant);
292  //PndEmcAbsPulseshape *pulseshape2=new PndEmcCRRCPulseshape(fPMT_Shaping_int_time,fPMT_Shaping_diff_time,fShashlyk_time_constant);
293  //PndEmcAbsPulseshape *pulseshape3=new PndEmcAsicPulseshape(10.e-9,25e-6);//fCrystal_time_constant = decay time constant 25 micorseconds
294 
295  Double_t sampleRate;
296  Double_t TimeMin = 99999.;
297  Double_t TimeMax = 0.;
298  Double_t WaveformTimeStamp(0.);
299  Double_t TimeError(0.);
300  Double_t EnergyError(0.);
301  Int_t detId, module, MCTrackID;
302 
303  HowManyHit += nHits;
304  for (Int_t iHit=0; iHit<nHits; iHit++)
305  {
306  theHit = (PndEmcHit*) fHitArray->At(iHit);
307  module = theHit->GetModule();
308 
309  if(module > 5) {
310  std::cout<<" UpdateWaveform: Unknown module number "<<module<<" in EMC digitization. Detector ID = "<<detId<<std::endl;
311  continue;
312  }
313  detId=theHit->GetDetectorID();
314  //if(theHit->GetEnergy() < 0.001) continue;//1MeV
315  TimeError = gRandom->Gaus(0, 0.55 + 5.5*TMath::Exp(-27.7*theHit->GetEnergy()));//ns
316  EnergyError = sqrt(0.01*0.01+0.02*0.02/theHit->GetEnergy());
317  const std::vector<Int_t>& mcTrack = theHit->GetMcList();
318  MCTrackID = mcTrack.size() > 0 ? mcTrack[0] : -1;
319 
320 
321  waveformInd.insert(detId);
322  if(module == 5){
323  sampleRate = fSampleRate_PMT;
324  NumOfSamples = fNumber_of_samples_in_waveform_pmt;
325  }else if(module == 3){
326  sampleRate = fSampleRate_FWD;//100 MHz
327  NumOfSamples = fNumber_of_samples_in_waveform_fwd;
328  }else{
329  sampleRate = fSampleRate;
330  NumOfSamples = fNumber_of_samples_in_waveform;
331  }
332  WaveformTimeStamp = EventTime + theHit->GetTime()*1.0e9 ;//to nano seconds
333  theWaveform = AddWaveform(detId,iHit,NumOfSamples, WaveformTimeStamp, sampleRate, MCTrackID);
334  theWaveform->AddEvt(evtNo);//very important
335  theWaveform->SetTimeStampError(TimeError);
336 
337  //WaveformMap[detId].push_back(Element(evtNo, theWaveform->GetTimeStamp()));
338  if(theWaveform->GetTimeStamp() > TimeMax) TimeMax = theWaveform->GetTimeStamp();
339  if(theWaveform->GetTimeStamp() < TimeMin) TimeMin = theWaveform->GetTimeStamp();
340  // Int_t module_wf = theWaveform->GetModule();
341 
342  switch (module){
343  case 1: // Barrel
345  if (fUse_shaped_noise==0)
346  {
348  }
349  else {
351  }
352  break;
353  case 2: // Barrel
355  if (fUse_shaped_noise==0)
356  {
358  }
359  else {
361  }
362  break;
363  case 3: // Fwd endcap
365  if (fUse_shaped_noise==0)
366  {
368  }
369  else {
371  }
372  break;
373  case 4: // Bwd endcap
375  if (fUse_shaped_noise==0)
376  {
378  }
379  else {
381  }
382  break;
383  case 5: // Shashlyk calorimetr
384  tmpHit = theHit;
385  tmpHit->SetEnergy(tmpHit->GetEnergy()*fShashlykSamplingFactor);
386  EnergyError = sqrt(0.01*0.01+0.02*0.02/tmpHit->GetEnergy());
388  if (fUse_shaped_noise==0)
389  {
391  }
392  else {
394  }
395  break;
396  default:
397  std::cout<<" UpdateWaveform: Unknown module number "<<module<<" in EMC digitization. Detector ID = "<<detId<<std::endl;
398  //abort();
399  }
401  fDataBuffer->FillNewData(theWaveform, theWaveform->GetTimeStamp(), theWaveform->GetActiveTime());
402  }
403  }
404  // Produce waveforms in all the crystals, not only where hits took place
405  // Since it is time consuming, by default it is off
406  if (fNoiseAllChannels)
407  {
408  Int_t detId_tmp, modId_tmp;
409  std::map<Int_t,PndEmcTwoCoordIndex*> intTwoCoordMap = PndEmcMapper::Instance()->GetTciMap();
410  for(std::map<Int_t,PndEmcTwoCoordIndex* >::iterator iter = intTwoCoordMap.begin();
411  iter != intTwoCoordMap.end(); ++iter){
412  detId_tmp=(*iter).first;
413  modId_tmp = detId_tmp/100000000;
414  if(modId_tmp == 5){
415  NumOfSamples = fNumber_of_samples_in_waveform_pmt;
416  sampleRate = fSampleRate_PMT;
417  }else if(modId_tmp == 3){
418  NumOfSamples = fNumber_of_samples_in_waveform_fwd;
419  sampleRate = fSampleRate_FWD;
420  }else{
421  NumOfSamples = fNumber_of_samples_in_waveform;
422  sampleRate = fSampleRate;
423  }
424 
425  if (waveformInd.insert(detId_tmp).second){
426  WaveformTimeStamp = gRandom->Uniform(TimeMin, TimeMax);
427  theWaveform = AddWaveform(detId_tmp,-1,NumOfSamples, WaveformTimeStamp, sampleRate, -1); // -1 correponds to Waveform produced not from EmcHit but from Noise
428  switch (modId_tmp){
429  case 1: // Barrel
430  if (fUse_shaped_noise==0)
431  {
433  }
434  else {
436  }
437  break;
438  case 2: // Barrel
439  if (fUse_shaped_noise==0)
440  {
442  }
443  else {
445  }
446  break;
447  case 3: // Fwd endcap
448  if (fUse_shaped_noise==0)
449  {
451  }
452  else {
454  }
455  break;
456  case 4: // Bwd endcap
457  if (fUse_shaped_noise==0)
458  {
460  }
461  else {
463  }
464  break;
465  case 5: // Shashlyk calorimetr
466  if (fUse_shaped_noise==0)
467  {
469  }
470  else {
472  }
473  break;
474  default:
475  std::cout<<" UpdateWaveform: Unknown module number "<<modId_tmp<<" in EMC digitization. Detector ID = "<<detId_tmp<<std::endl;
476  //abort();
477  }
479  fDataBuffer->FillNewData(theWaveform, theWaveform->GetTimeStamp(), theWaveform->GetActiveTime());
480  }
481  }
482  }
483  }
484 
485  // Add electronic noise
486  // There are two options how to add noise (before and after shaping)
487 
488  /*Int_t nWf = fWaveformArray->GetEntriesFast();
489  if (fVerbose>2){
490  cout << "Number of waveforms processed= "<<nWf<<endl;
491  }
492 
493  for (Int_t iWf=0; iWf<nWf; iWf++) {
494  theWaveform = (PndEmcWaveform*) fWaveformArray->At(iWf);
495  Int_t module = theWaveform->GetModule();
496  switch (module){
497  case 1: // Barrel
498  if (fUse_shaped_noise==0)
499  {
500  theWaveform->AddElecNoiseAndDigitise(fIncoherent_elec_noise_width_GeV_APD*fGevPeakAnalogue,fOneBitResolution);
501  }
502  else {
503  theWaveform->AddShapedElecNoiseAndDigitise(fIncoherent_elec_noise_width_GeV_APD*fGevPeakAnalogue,fOneBitResolution, pulseshape, fFirstSamplePhase, fSampleRate);
504  }
505  break;
506  case 2: // Barrel
507  if (fUse_shaped_noise==0)
508  {
509  theWaveform->AddElecNoiseAndDigitise(fIncoherent_elec_noise_width_GeV_APD*fGevPeakAnalogue,fOneBitResolution);
510  }
511  else {
512  theWaveform->AddShapedElecNoiseAndDigitise(fIncoherent_elec_noise_width_GeV_APD*fGevPeakAnalogue,fOneBitResolution, pulseshape, fFirstSamplePhase, fSampleRate);
513  }
514  break;
515  case 3: // FWD Endcap
516  if (fUse_shaped_noise==0)
517  {
518  theWaveform->AddElecNoiseAndDigitise(fIncoherent_elec_noise_width_GeV_VPT*fGevPeakAnalogue,fOneBitResolution);
519  }
520  else {
521  theWaveform->AddShapedElecNoiseAndDigitise(fIncoherent_elec_noise_width_GeV_VPT*fGevPeakAnalogue,fOneBitResolution, pulseshape, fFirstSamplePhase, fSampleRate);
522  }
523  break;
524  case 4: // BWD Endcap
525  if (fUse_shaped_noise==0)
526  {
527  theWaveform->AddElecNoiseAndDigitise(fIncoherent_elec_noise_width_GeV_APD*fGevPeakAnalogue,fOneBitResolutionBW);
528  }
529  else {
530  theWaveform->AddShapedElecNoiseAndDigitise(fIncoherent_elec_noise_width_GeV_APD*fGevPeakAnalogue,fOneBitResolutionBW, pulseshape, fFirstSamplePhase, fSampleRate);
531  }
532  break;
533  case 5: // shashlyk calorimetr
534  if (fUse_shaped_noise==0)
535  {
536  theWaveform->AddElecNoiseAndDigitise(fIncoherent_elec_noise_width_GeV_APD*fGevPeakAnalogue_PMT,fOneBitResolutionPMT);
537  }
538  else {
539  theWaveform->AddShapedElecNoiseAndDigitise(fIncoherent_elec_noise_width_GeV_APD*fGevPeakAnalogue_PMT,fOneBitResolutionPMT, pulseshape2, fFirstSamplePhase, fSampleRate_PMT);
540  }
541  break;
542  default:
543  std::cout<<"Add Noise: Unknown module number in EMC digitization"<<std::endl;
544  //abort();
545  }
546  }*/
547 
548  //std::cout<<"nWaveformProduced = "<<nWaveformProduced<<std::endl;
549  //delete pulseshape;
550  //delete pulseshape2;
551  //delete pulseshape3;
552 
553  if (fVerbose>2){
554  timer.Stop();
555  Double_t rtime = timer.RealTime();
556  Double_t ctime = timer.CpuTime();
557  cout << "PndEmcHitsToWaveform, Real time " << rtime << " s, CPU time " << ctime << " s" << endl;
558  }
559 }
Double_t GetActiveTime() const
void AddShapedElecNoiseAndDigitise(Double_t noise_width, Double_t oneBitResolution, PndEmcAbsPulseshape *pulseshape, Double_t firstADCBinTime, Double_t sampleRate, Double_t=0)
Double_t fIncoherent_elec_noise_width_GeV_VPT
friend F32vec4 sqrt(const F32vec4 &a)
Definition: P4_F32vec4.h:29
const std::map< Int_t, PndEmcTwoCoordIndex * > & GetTciMap()
TClonesArray * fWaveformArray
PndEmcAbsPulseshape * pulseshape2
PndEmcWaveformWriteoutBuffer * fDataBuffer
const std::vector< Int_t > & GetMcList()
Definition: PndEmcHit.h:69
int nHits
Definition: RiemannTest.C:16
Double_t fNPhotoElectronsPerMeVAPDBarrel
Double_t fIncoherent_elec_noise_width_GeV_APD
Double_t
virtual Double_t GetEnergy() const
Definition: PndEmcHit.h:54
TStopwatch timer
Definition: hit_dirc.C:51
void AddElecNoiseAndDigitise(Double_t, Double_t, Double_t=0)
void UpdateWaveform(PndEmcHit *hit, Double_t pePerMeV, Bool_t usePhotonStatistic, Double_t excessNoiseFactor, Double_t firstADCBinTime, Double_t sampleRate, PndEmcAbsPulseshape *pulseshape, Double_t=0)
virtual void SetEnergy(Double32_t energy)
Definition: PndEmcHit.h:50
represents a simulated waveform in an emc crystal
Double_t ctime
Definition: hit_dirc.C:114
PndEmcAbsPulseshape * pulseshape1
virtual Double_t GetTime() const
Definition: PndEmcHit.h:55
represents the deposited energy of one emc crystal from simulation
Definition: PndEmcHit.h:26
PndEmcWaveform * AddWaveform(Int_t detId, Int_t hitIndex, Int_t numOfSamples, Double_t timeStamp, Double_t sampleRate, Int_t MCTrackID)
Create a new PndEmcWaveform from the passed parameters.
PndEmcAbsPulseshape * pulseshape3
void AddEvt(Int_t evtNo)
Double_t rtime
Definition: hit_dirc.C:113
Short_t GetModule() const
Definition: PndEmcHit.h:58
static PndEmcMapper * Instance()
void PndEmcHitsToWaveform::FinishTask ( )

Called at end of task.

Outputs statistics and writes PndEmcWaveformWriteoutBuffer.

Returns
void

Definition at line 626 of file PndEmcHitsToWaveform.cxx.

References fDataBuffer, fTimeOrderedWaveform, HowManyHit, nWaveformProduced, and PndEmcWaveformWriteoutBuffer::Write().

627 {
628  std::cout<<"==================================================="<<std::endl;
629  std::cout<<"PndEmcHitsToWaveform::FinishTask"<<std::endl;
630  std::cout<<"***************************************************"<<std::endl;
631  std::cout<<"Read Hits# "<<HowManyHit<<std::endl;
632  std::cout<<"Produc waveforms# "<<nWaveformProduced<<std::endl;
633  std::cout<<"***************************************************"<<std::endl;
634 
636  fDataBuffer->Write();
637  }
638 }
PndEmcWaveformWriteoutBuffer * fDataBuffer
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(), 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(), PndSdsNoiseProducer::Init(), PndEmcPhiBumpSplitter::Init(), PndSdsIdealRecoTask::Init(), PndSdsHybridHitProducer::Init(), PndRecoMultiKalmanTask::Init(), PndSdsIdealClusterTask::Init(), PndRecoKalmanTask::Init(), PndSdsStripHitProducerDif::Init(), PndGemDigitize::Init(), PndSdsStripHitProducer::Init(), PndGemFindHits::Init(), PndSdsPixelClusterTask::Init(), PndSdsStripClusterTask::Init(), PndMvdGemTrackFinderOnHits::Init(), PndBarrelTrackFinder::Init(), PndEmcFullDigiTask::PndEmcFullDigiTask(), PndEmcMakeBump::PndEmcMakeBump(), PndUnassignedHitsTask::RegisterBranches(), PndMvdClusterTask::SetPersistance(), PndMvdDigiTask::SetPersistance(), PndEmcMakeBump::SetStorageOfData(), and PndEmcFullDigiTask::StoreDigi().

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

Init Task.

Prepares the TClonesArrays of PndEmcHit for reading and of PndEmcWaveform for writing. Also reads all relevant EMC parameters and initializes the mapper (PndEmcMapper). Prepares the pulseshapes (PndEmcAbsPulseshape) for the different parts of the EMC and calculates their normalization.

Returns
InitStatus
Return values
kSUCCESSsuccess

Definition at line 86 of file PndEmcHitsToWaveform.cxx.

References fASIC_Shaping_int_time, fCrystal_time_constant, fDataBuffer, fDetectedPhotonsPerMeV, fDetectedPhotonsPerMeV_PMT, fDigiPar, fEnergyRange, fEnergyRangeBW, fExcessNoiseFactorAPD, fExcessNoiseFactorPMT, fExcessNoiseFactorVPT, fFirstADCBinTime, fFirstSamplePhase, fFWD_Shaping_int_time, fFWD_time_constant, fGeoPar, fGevPeakAnalogue, fGevPeakAnalogue_FWD, fGevPeakAnalogue_PMT, fHitArray, fIncoherent_elec_noise_width_GeV_APD, fIncoherent_elec_noise_width_GeV_VPT, fNBits, fNoiseAllChannels, fNPhotoElectronsPerMeVAPDBarrel, fNPhotoElectronsPerMeVAPDBWD, fNPhotoElectronsPerMeVPMT, fNPhotoElectronsPerMeVVPT, fNumber_of_samples_in_waveform, fNumber_of_samples_in_waveform_fwd, fNumber_of_samples_in_waveform_pmt, fOneBitResolution, fOneBitResolutionBW, fOneBitResolutionFWD, fOneBitResolutionPMT, fPMT_Shaping_diff_time, fPMT_Shaping_int_time, fQuantumEfficiencyAPD, fQuantumEfficiencyPMT, fQuantumEfficiencyVPT, fSampleRate, fSampleRate_FWD, fSampleRate_PMT, fSensitiveAreaAPD, fSensitiveAreaVPT, fShashlyk_time_constant, fShashlykSamplingFactor, fTimeOrderedWaveform, fUse_photon_statistic, fUse_shaped_noise, fVerbose, fWaveformArray, PndEmcDigiPar::GetASIC_Shaping_int_time(), PndEmcDigiPar::GetCrystal_time_constant(), PndEmcDigiPar::GetDetectedPhotonsPerMeV(), PndEmcDigiPar::GetDetectedPhotonsPerMeV_PMT(), PndEmcDigiPar::GetEnergyRange(), PndEmcDigiPar::GetEnergyRangeBW(), PndEmcDigiPar::GetExcessNoiseFactorAPD(), PndEmcDigiPar::GetExcessNoiseFactorPMT(), PndEmcDigiPar::GetExcessNoiseFactorVPT(), PndEmcDigiPar::GetFirstSamplePhase(), PndEmcDigiPar::GetFWD_Shaping_int_time(), PndEmcDigiPar::GetFWD_time_constant(), PndEmcDigiPar::GetIncoherent_elec_noise_width_GeV_APD(), PndEmcDigiPar::GetIncoherent_elec_noise_width_GeV_VPT(), PndEmcGeoPar::GetMapperVersion(), PndEmcDigiPar::GetNBits(), PndEmcDigiPar::GetNoiseAllChannels(), PndEmcDigiPar::GetNumber_of_samples_in_waveform(), PndEmcDigiPar::GetNumber_of_samples_in_waveform_fwd(), PndEmcDigiPar::GetNumber_of_samples_in_waveform_pmt(), PndPersistencyTask::GetPersistency(), PndEmcDigiPar::GetPMT_Shaping_diff_time(), PndEmcDigiPar::GetPMT_Shaping_int_time(), PndEmcDigiPar::GetQuantumEfficiencyAPD(), PndEmcDigiPar::GetQuantumEfficiencyPMT(), PndEmcDigiPar::GetQuantumEfficiencyVPT(), PndEmcDigiPar::GetSampleRate(), PndEmcDigiPar::GetSampleRate_FWD(), PndEmcDigiPar::GetSampleRate_PMT(), PndEmcWaveform::GetScale(), PndEmcDigiPar::GetSensitiveAreaAPD(), PndEmcDigiPar::GetSensitiveAreaVPT(), PndEmcDigiPar::GetShashlyk_time_constant(), PndEmcDigiPar::GetShashlykSamplingFactor(), PndEmcDigiPar::GetUse_photon_statistic(), PndEmcDigiPar::GetUse_shaped_noise(), PndEmcGeoPar::InitEmcMapper(), PndEmcStructure::Instance(), nWaveformProduced, pulseshape1, pulseshape2, pulseshape3, and PndEmcWaveformWriteoutBuffer::SaveToTree().

87 {
88  // Get RootManager
89  FairRootManager* ioman = FairRootManager::Instance();
90  if ( ! ioman )
91  {
92  cout << "-E- PndEmcHitsToWaveform::Init: "
93  << "RootManager not instantiated!" << endl;
94  return kFATAL;
95  }
96 
97  // Get input array
98  fHitArray = (TClonesArray*) ioman->GetObject("EmcHit");
99  if ( ! fHitArray ) {
100  cout << "-W- PndEmcHitsToWaveform::Init: "
101  << "No EmcHit array!" << endl;
102  return kERROR;
103  }
105  // Create and register output buffer
106  fDataBuffer = new PndEmcWaveformWriteoutBuffer("EmcWaveform", "Emc", GetPersistency());
107  fDataBuffer->ActivateBuffering(fTimeOrderedWaveform);
108  fDataBuffer->SetVerbose(fVerbose);
109  ioman->RegisterWriteoutBuffer("EmcWaveform", fDataBuffer);
110  fDataBuffer->SaveToTree(kTRUE);
111  }else{
112  // Create and register output array
113  fWaveformArray = new TClonesArray("PndEmcWaveform");
114  ioman->Register("EmcWaveform","Emc",fWaveformArray,GetPersistency());
115  }
116 
117  cout << "-I- PndEmcHitsToWaveform: Intialization successfull" << endl;
118 
152 
153  fDigiPar->printParams();
154  // Test how parameters were read from DB.
155  cout<<"EMC digitisation parameters "<<endl;
156  cout<<" nBits "<<fNBits<<endl;
157  cout<<" detectedPhotonsPerMeV "<<fDetectedPhotonsPerMeV<<endl;
158  cout<<" detectedPhotonsPerMeV_PMT "<<fDetectedPhotonsPerMeV_PMT<<endl;
159  cout<<" excessNoiseFactor APD"<<fExcessNoiseFactorAPD<<endl;
160  cout<<" excessNoiseFactor VPT"<<fExcessNoiseFactorVPT<<endl;
161  cout<<" excessNoiseFactor PMT"<<fExcessNoiseFactorPMT<<endl;
162  cout<<" incoherent_elec_noise_width_GeV_APD "<<fIncoherent_elec_noise_width_GeV_APD<<endl;
163  cout<<" incoherent_elec_noise_width_GeV_VPT "<<fIncoherent_elec_noise_width_GeV_VPT<<endl;
164  cout<<" energyRange "<<fEnergyRange<<endl;
165  cout<<" energyRangeBW "<<fEnergyRangeBW<<endl;
166  cout<<" firstSamplePhase "<<fFirstSamplePhase<<endl;
167  cout<<" number_of_samples_in_waveform "<<fNumber_of_samples_in_waveform<<endl;
168  cout<<" number_of_samples_in_waveform_pmt "<<fNumber_of_samples_in_waveform_pmt<<endl;
169  cout<<" number_of_samples_in_waveform_fwd "<<fNumber_of_samples_in_waveform_fwd<<endl;
170  cout<<" ASIC_Shaping_int_time "<<fASIC_Shaping_int_time<<endl;
171  cout<<" PMT_Shaping_int_time "<<fPMT_Shaping_int_time<<endl;
172  cout<<" PMT_Shaping_diff_time "<<fPMT_Shaping_diff_time<<endl;
173  cout<<" crystal_time_constant "<<fCrystal_time_constant<<endl;
174  cout<<" shashlyk_time_constant "<<fShashlyk_time_constant<<endl;
175  cout<<" ShashlykSamplingFactor "<<fShashlykSamplingFactor<<endl;
176  cout<<" sampleRate "<<fSampleRate<<endl;
177  cout<<" sampleRate_PMT "<<fSampleRate_PMT<<endl;
178  cout<<" use_shaped_noise "<<fUse_shaped_noise<<endl;
179  cout<<" use_photon_statistic "<<fUse_photon_statistic<<endl;
180  cout<<" EMC mapper "<<fGeoPar->GetMapperVersion()<<endl;
181 
184 
185  //fUse_shaped_noise = 0;
186  //fNumber_of_samples_in_waveform = 64;
187  //fNumber_of_samples_in_waveform_FWD = 64;
188  // Calculate 1 bit resolution (in units of FADC amplitude)
189  PndEmcWaveform *tmpwaveform1=new PndEmcWaveform(0,101010001, fNumber_of_samples_in_waveform);
191 
192  PndEmcWaveform *tmpwaveform2=new PndEmcWaveform(0,101010001, fNumber_of_samples_in_waveform_pmt);
194 
195  PndEmcWaveform *tmpwaveform3=new PndEmcWaveform(0,101010001, fNumber_of_samples_in_waveform_fwd);//length 10
196  pulseshape3 =new PndEmcAsicPulseshape(fFWD_Shaping_int_time, fFWD_time_constant);//LNP raw signal, decay time constant 25 microseconds
197 
198 
199  //temp parameters;
200  //fSampleRate_FWD = 100e6;//100 MHz
201 
204  fGevPeakAnalogue_FWD = tmpwaveform3->GetScale(fSampleRate_FWD, pulseshape3);//forward endcap,100 MHz
205 
206  // cout<<" -I- PndEmcHitsToWaveform::Init:=========== "<<endl;
211 
212  cout<<" fGevPeakAnalogue= "<<fGevPeakAnalogue<<endl;
213  cout<<" fGevPeakAnalogue_PMT= "<<fGevPeakAnalogue_PMT<<endl;
214  cout<<" fGevPeakAnalogue_FWD= "<<fGevPeakAnalogue_FWD<<endl;
215  cout<<" fOneBitResolution= "<<fOneBitResolution<<endl;
216  cout<<" fOneBitResolutionBW= "<<fOneBitResolutionBW<<endl;
217  cout<<" fOneBitResolutionPMT= "<<fOneBitResolutionPMT<<endl;
218 
220  // cout<<" fFirstADCBinTime= "<<fFirstADCBinTime<<endl;
221 
222  // Calculate number of photoelectrons for APD and VPT
223  // The number fDetectedPhotonsPerMeV is the measured number of photoelectrons with PM covering the whole rear surface divided by quantum efficiency of PM (18%)
224  // To estimate Number of photoelectrons in barrel the rare surface is taken equal for all the crystals 745 mm^2, which is average surface, hovewer it varies depending on the type of the crystal
225  // For forward and backward endcap rear surface is equal 26x26=676 mm^2
226  // Therefore the different number of photoelectrons are used with APD for barrel and backward endcap
231  cout<<" fNPhotoElectronsPerMeVAPDBarrel= "<<fNPhotoElectronsPerMeVAPDBarrel<<endl;
232  cout<<" fNPhotoElectronsPerMeVAPDBWD= "<<fNPhotoElectronsPerMeVAPDBWD<<endl;
233  cout<<" fNPhotoElectronsPerMeVVPT= "<<fNPhotoElectronsPerMeVVPT<<endl;
234  cout<<" fNPhotoElectronsPerMeVPMT= "<<fNPhotoElectronsPerMeVPMT<<endl;
235  //delete pulseshape1;
236  delete tmpwaveform1;
237  //delete pulseshape2;
238  delete tmpwaveform2;
239  //delete pulseshape3;
240  delete tmpwaveform3;
241 
242  nWaveformProduced = 0;
243 
244  return kSUCCESS;
245 }
Double_t GetQuantumEfficiencyVPT()
Definition: PndEmcDigiPar.h:21
Int_t GetNBits()
Definition: PndEmcDigiPar.h:43
Int_t GetUse_photon_statistic()
Definition: PndEmcDigiPar.h:48
Double_t GetSampleRate()
Definition: PndEmcDigiPar.h:39
Double_t GetPMT_Shaping_diff_time()
Definition: PndEmcDigiPar.h:33
Double_t GetQuantumEfficiencyPMT()
Definition: PndEmcDigiPar.h:22
Double_t fIncoherent_elec_noise_width_GeV_VPT
Double_t GetIncoherent_elec_noise_width_GeV_VPT()
Definition: PndEmcDigiPar.h:27
Int_t GetUse_shaped_noise()
Definition: PndEmcDigiPar.h:47
Int_t GetNumber_of_samples_in_waveform()
Definition: PndEmcDigiPar.h:44
Double_t GetQuantumEfficiencyAPD()
Definition: PndEmcDigiPar.h:20
Double_t GetIncoherent_elec_noise_width_GeV_APD()
Definition: PndEmcDigiPar.h:26
Double_t GetEnergyRangeBW()
Definition: PndEmcDigiPar.h:29
TClonesArray * fWaveformArray
Double_t GetCrystal_time_constant()
Definition: PndEmcDigiPar.h:36
Double_t GetFirstSamplePhase()
Definition: PndEmcDigiPar.h:30
PndEmcAbsPulseshape * pulseshape2
PndEmcWaveformWriteoutBuffer * fDataBuffer
Double_t GetASIC_Shaping_int_time()
Definition: PndEmcDigiPar.h:31
Int_t GetMapperVersion()
Definition: PndEmcGeoPar.h:20
Pulseshape from an CRRC-Shaper.
Double_t GetSampleRate_FWD()
Definition: PndEmcDigiPar.h:41
void InitEmcMapper()
Double_t GetShashlykSamplingFactor()
Definition: PndEmcDigiPar.h:38
Double_t GetSensitiveAreaAPD()
Definition: PndEmcDigiPar.h:18
Double_t GetScale(Double_t sampleRate, PndEmcAbsPulseshape *pulseshape) const
Pulseshape from an APFEL ASIC preamplifier shaper.
Double_t fNPhotoElectronsPerMeVAPDBarrel
Double_t fIncoherent_elec_noise_width_GeV_APD
Double_t GetFWD_Shaping_int_time()
Definition: PndEmcDigiPar.h:34
Double_t GetEnergyRange()
Definition: PndEmcDigiPar.h:28
Double_t GetDetectedPhotonsPerMeV()
Definition: PndEmcDigiPar.h:16
represents a simulated waveform in an emc crystal
PndEmcAbsPulseshape * pulseshape1
Int_t GetNumber_of_samples_in_waveform_fwd()
Definition: PndEmcDigiPar.h:46
Double_t GetExcessNoiseFactorVPT()
Definition: PndEmcDigiPar.h:24
Double_t GetDetectedPhotonsPerMeV_PMT()
Definition: PndEmcDigiPar.h:17
Double_t GetExcessNoiseFactorAPD()
Definition: PndEmcDigiPar.h:23
Double_t GetFWD_time_constant()
Definition: PndEmcDigiPar.h:35
PndEmcAbsPulseshape * pulseshape3
Double_t GetSampleRate_PMT()
Definition: PndEmcDigiPar.h:40
static PndEmcStructure * Instance()
Double_t GetShashlyk_time_constant()
Definition: PndEmcDigiPar.h:37
Int_t GetNumber_of_samples_in_waveform_pmt()
Definition: PndEmcDigiPar.h:45
Double_t GetPMT_Shaping_int_time()
Definition: PndEmcDigiPar.h:32
Double_t GetSensitiveAreaVPT()
Definition: PndEmcDigiPar.h:19
Double_t GetExcessNoiseFactorPMT()
Definition: PndEmcDigiPar.h:25
Int_t GetNoiseAllChannels()
Definition: PndEmcDigiPar.h:50
PndEmcHitsToWaveform& PndEmcHitsToWaveform::operator= ( const PndEmcHitsToWaveform )
private
void PndEmcHitsToWaveform::RunTimeBased ( )
inline

Definition at line 57 of file PndEmcHitsToWaveform.h.

References fTimeOrderedWaveform.

57 { fTimeOrderedWaveform = kTRUE;}
void PndEmcHitsToWaveform::SetParContainers ( )
protectedvirtual

Get parameter containers

Definition at line 561 of file PndEmcHitsToWaveform.cxx.

References fDigiPar, fGeoPar, and run.

561  {
562 
563  // Get run and runtime database
564  FairRun* run = FairRun::Instance();
565  if ( ! run ) Fatal("SetParContainers", "No analysis run");
566 
567  FairRuntimeDb* db = run->GetRuntimeDb();
568  if ( ! db ) Fatal("SetParContainers", "No runtime database");
569 
570  // Get Emc geometry parameter container
571  fGeoPar = (PndEmcGeoPar*) db->getContainer("PndEmcGeoPar");
572  // Get Emc digitisation parameter container
573  fDigiPar = (PndEmcDigiPar*) db->getContainer("PndEmcDigiPar");
574 
575 }
Int_t run
Definition: autocutx.C:47
parameter set of Emc digitisation
Definition: PndEmcDigiPar.h:12
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(), 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(), PndSttHitProducerRealFull::SetPersistence(), PndSttHitProducerIdeal::SetPersistence(), PndSttHitProducerRealFast::SetPersistence(), PndFtsHitProducerIdeal::SetPersistence(), PndTrackSmearTask::SetPersistence(), PndSciTHitProducerIdeal::SetPersistence(), PndIdealTrackFinder::SetPersistence(), PndSttMatchTracks::SetPersistence(), PndSttFindTracks::SetPersistence(), PndFtsHoughTrackerTask::SetPersistence(), PndTrkTracking2::SetPersistence(), PndEmcMakeRecoHit::SetStorageOfData(), PndEmcFWEndcapDigi::SetStorageOfData(), PndEmcMakeClusterOnline::SetStorageOfData(), PndEmcFWEndcapTimebasedWaveforms::SetStorageOfData(), PndEmcMakeDigi::SetStorageOfData(), PndMdtPointsToWaveform::SetStorageOfData(), PndEmc2DLocMaxFinder::SetStorageOfData(), PndEmcMakeCluster::SetStorageOfData(), 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 PndEmcHitsToWaveform::SetStorageOfData ( Bool_t  val)

Member Data Documentation

Double_t PndEmcHitsToWaveform::fASIC_Shaping_int_time
private

Definition at line 105 of file PndEmcHitsToWaveform.h.

Referenced by Init().

Double_t PndEmcHitsToWaveform::fCrystal_time_constant
private

Definition at line 110 of file PndEmcHitsToWaveform.h.

Referenced by Init().

PndEmcWaveformWriteoutBuffer* PndEmcHitsToWaveform::fDataBuffer
private

Definition at line 74 of file PndEmcHitsToWaveform.h.

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

Double_t PndEmcHitsToWaveform::fDetectedPhotonsPerMeV
private

Definition at line 83 of file PndEmcHitsToWaveform.h.

Referenced by Init().

Double_t PndEmcHitsToWaveform::fDetectedPhotonsPerMeV_PMT
private

Definition at line 84 of file PndEmcHitsToWaveform.h.

Referenced by Init().

PndEmcDigiPar* PndEmcHitsToWaveform::fDigiPar
private

Definition at line 127 of file PndEmcHitsToWaveform.h.

Referenced by Init(), and SetParContainers().

Double_t PndEmcHitsToWaveform::fEnergyRange
private

Definition at line 99 of file PndEmcHitsToWaveform.h.

Referenced by Init().

Double_t PndEmcHitsToWaveform::fEnergyRangeBW
private

Definition at line 100 of file PndEmcHitsToWaveform.h.

Referenced by Init().

Double_t PndEmcHitsToWaveform::fExcessNoiseFactorAPD
private

Definition at line 94 of file PndEmcHitsToWaveform.h.

Referenced by Exec(), and Init().

Double_t PndEmcHitsToWaveform::fExcessNoiseFactorPMT
private

Definition at line 96 of file PndEmcHitsToWaveform.h.

Referenced by Exec(), and Init().

Double_t PndEmcHitsToWaveform::fExcessNoiseFactorVPT
private

Definition at line 95 of file PndEmcHitsToWaveform.h.

Referenced by Exec(), and Init().

Double_t PndEmcHitsToWaveform::fFirstADCBinTime
private

Definition at line 121 of file PndEmcHitsToWaveform.h.

Referenced by Exec(), and Init().

Double_t PndEmcHitsToWaveform::fFirstSamplePhase
private

Definition at line 101 of file PndEmcHitsToWaveform.h.

Referenced by Exec(), and Init().

Double_t PndEmcHitsToWaveform::fFWD_Shaping_int_time
private

Definition at line 108 of file PndEmcHitsToWaveform.h.

Referenced by Init().

Double_t PndEmcHitsToWaveform::fFWD_time_constant
private

Definition at line 109 of file PndEmcHitsToWaveform.h.

Referenced by Init().

PndEmcGeoPar* PndEmcHitsToWaveform::fGeoPar
private

Digitisation parameter container

Definition at line 128 of file PndEmcHitsToWaveform.h.

Referenced by Init(), and SetParContainers().

Double_t PndEmcHitsToWaveform::fGevPeakAnalogue
private

Definition at line 123 of file PndEmcHitsToWaveform.h.

Referenced by Exec(), and Init().

Double_t PndEmcHitsToWaveform::fGevPeakAnalogue_FWD
private

Definition at line 125 of file PndEmcHitsToWaveform.h.

Referenced by Exec(), and Init().

Double_t PndEmcHitsToWaveform::fGevPeakAnalogue_PMT
private

Definition at line 124 of file PndEmcHitsToWaveform.h.

Referenced by Exec(), and Init().

TClonesArray* PndEmcHitsToWaveform::fHitArray
private

Input array of PndEmcHits

Definition at line 70 of file PndEmcHitsToWaveform.h.

Referenced by Exec(), and Init().

Double_t PndEmcHitsToWaveform::fIncoherent_elec_noise_width_GeV_APD
private

Definition at line 97 of file PndEmcHitsToWaveform.h.

Referenced by Exec(), and Init().

Double_t PndEmcHitsToWaveform::fIncoherent_elec_noise_width_GeV_VPT
private

Definition at line 98 of file PndEmcHitsToWaveform.h.

Referenced by Exec(), and Init().

Int_t PndEmcHitsToWaveform::fMapVersion
private

Definition at line 119 of file PndEmcHitsToWaveform.h.

Int_t PndEmcHitsToWaveform::fNBits
private

Definition at line 82 of file PndEmcHitsToWaveform.h.

Referenced by Init().

Int_t PndEmcHitsToWaveform::fNoiseAllChannels
private

Definition at line 118 of file PndEmcHitsToWaveform.h.

Referenced by Exec(), and Init().

Double_t PndEmcHitsToWaveform::fNPhotoElectronsPerMeVAPDBarrel
private

Definition at line 85 of file PndEmcHitsToWaveform.h.

Referenced by Exec(), and Init().

Double_t PndEmcHitsToWaveform::fNPhotoElectronsPerMeVAPDBWD
private

Definition at line 86 of file PndEmcHitsToWaveform.h.

Referenced by Init().

Double_t PndEmcHitsToWaveform::fNPhotoElectronsPerMeVPMT
private

Definition at line 88 of file PndEmcHitsToWaveform.h.

Referenced by Exec(), and Init().

Double_t PndEmcHitsToWaveform::fNPhotoElectronsPerMeVVPT
private

Definition at line 87 of file PndEmcHitsToWaveform.h.

Referenced by Exec(), and Init().

Int_t PndEmcHitsToWaveform::fNumber_of_samples_in_waveform
private

Definition at line 102 of file PndEmcHitsToWaveform.h.

Referenced by Exec(), and Init().

Int_t PndEmcHitsToWaveform::fNumber_of_samples_in_waveform_fwd
private

Definition at line 104 of file PndEmcHitsToWaveform.h.

Referenced by Exec(), and Init().

Int_t PndEmcHitsToWaveform::fNumber_of_samples_in_waveform_pmt
private

Definition at line 103 of file PndEmcHitsToWaveform.h.

Referenced by Exec(), and Init().

Double_t PndEmcHitsToWaveform::fOneBitResolution
private

Definition at line 77 of file PndEmcHitsToWaveform.h.

Referenced by Exec(), and Init().

Double_t PndEmcHitsToWaveform::fOneBitResolutionBW
private

Definition at line 78 of file PndEmcHitsToWaveform.h.

Referenced by Exec(), and Init().

Double_t PndEmcHitsToWaveform::fOneBitResolutionFWD
private

Definition at line 80 of file PndEmcHitsToWaveform.h.

Referenced by Exec(), and Init().

Double_t PndEmcHitsToWaveform::fOneBitResolutionPMT
private

Definition at line 79 of file PndEmcHitsToWaveform.h.

Referenced by Exec(), and Init().

Double_t PndEmcHitsToWaveform::fPMT_Shaping_diff_time
private

Definition at line 107 of file PndEmcHitsToWaveform.h.

Referenced by Init().

Double_t PndEmcHitsToWaveform::fPMT_Shaping_int_time
private

Definition at line 106 of file PndEmcHitsToWaveform.h.

Referenced by Init().

Double_t PndEmcHitsToWaveform::fQuantumEfficiencyAPD
private

Definition at line 91 of file PndEmcHitsToWaveform.h.

Referenced by Init().

Double_t PndEmcHitsToWaveform::fQuantumEfficiencyPMT
private

Definition at line 93 of file PndEmcHitsToWaveform.h.

Referenced by Init().

Double_t PndEmcHitsToWaveform::fQuantumEfficiencyVPT
private

Definition at line 92 of file PndEmcHitsToWaveform.h.

Referenced by Init().

Double_t PndEmcHitsToWaveform::fSampleRate
private

Definition at line 113 of file PndEmcHitsToWaveform.h.

Referenced by Exec(), and Init().

Double_t PndEmcHitsToWaveform::fSampleRate_FWD
private

Definition at line 115 of file PndEmcHitsToWaveform.h.

Referenced by Exec(), and Init().

Double_t PndEmcHitsToWaveform::fSampleRate_PMT
private

Definition at line 114 of file PndEmcHitsToWaveform.h.

Referenced by Exec(), and Init().

Double_t PndEmcHitsToWaveform::fSensitiveAreaAPD
private

Definition at line 89 of file PndEmcHitsToWaveform.h.

Referenced by Init().

Double_t PndEmcHitsToWaveform::fSensitiveAreaVPT
private

Definition at line 90 of file PndEmcHitsToWaveform.h.

Referenced by Init().

Double_t PndEmcHitsToWaveform::fShashlyk_time_constant
private

Definition at line 111 of file PndEmcHitsToWaveform.h.

Referenced by Init().

Double_t PndEmcHitsToWaveform::fShashlykSamplingFactor
private

Definition at line 112 of file PndEmcHitsToWaveform.h.

Referenced by Exec(), and Init().

Bool_t PndEmcHitsToWaveform::fTimeOrderedWaveform
private

Definition at line 75 of file PndEmcHitsToWaveform.h.

Referenced by AddWaveform(), Exec(), FinishTask(), Init(), and RunTimeBased().

Int_t PndEmcHitsToWaveform::fUse_photon_statistic
private

Definition at line 117 of file PndEmcHitsToWaveform.h.

Referenced by Exec(), and Init().

Int_t PndEmcHitsToWaveform::fUse_shaped_noise
private

Definition at line 116 of file PndEmcHitsToWaveform.h.

Referenced by Exec(), and Init().

Int_t PndEmcHitsToWaveform::fVerbose
private

Geometry parameter container Verbosity level

Definition at line 131 of file PndEmcHitsToWaveform.h.

Referenced by Exec(), and Init().

TClonesArray* PndEmcHitsToWaveform::fWaveformArray
private

Output array of PndEmcWaveforms

Definition at line 73 of file PndEmcHitsToWaveform.h.

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

Int_t PndEmcHitsToWaveform::HowManyEventPileup
private

Definition at line 136 of file PndEmcHitsToWaveform.h.

Int_t PndEmcHitsToWaveform::HowManyHit
private

Definition at line 134 of file PndEmcHitsToWaveform.h.

Referenced by Exec(), FinishTask(), and PndEmcHitsToWaveform().

Int_t PndEmcHitsToWaveform::nWaveformProduced
private

Definition at line 135 of file PndEmcHitsToWaveform.h.

Referenced by AddWaveform(), FinishTask(), and Init().

PndEmcAbsPulseshape* PndEmcHitsToWaveform::pulseshape1
private

Definition at line 139 of file PndEmcHitsToWaveform.h.

Referenced by Exec(), Init(), and ~PndEmcHitsToWaveform().

PndEmcAbsPulseshape* PndEmcHitsToWaveform::pulseshape2
private

Definition at line 140 of file PndEmcHitsToWaveform.h.

Referenced by Exec(), Init(), and ~PndEmcHitsToWaveform().

PndEmcAbsPulseshape* PndEmcHitsToWaveform::pulseshape3
private

Definition at line 141 of file PndEmcHitsToWaveform.h.

Referenced by Exec(), Init(), and ~PndEmcHitsToWaveform().


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