PandaRoot
BSEmcWaveformGenerationProcess Class Reference

Base class Process to create waveforms out of BSEmcMCDeposits. More...

#include <BSEmcWaveformGenerationProcess.h>

Inheritance diagram for BSEmcWaveformGenerationProcess:
PndProcess BSEmcFwEndcapCosmicWaveformGeneration BSEmcFwEndcapWaveformGeneration

Public Member Functions

 BSEmcWaveformGenerationProcess (BSEmcAbsWaveformSimulator *t_simulator=nullptr, Bool_t t_storewaves=kTRUE, Bool_t t_storeData=kTRUE, Bool_t t_timebased=kFALSE)
 
virtual ~BSEmcWaveformGenerationProcess ()
 
virtual void RequestDataContainer (PndContainerRegister *t_register)
 Pass the container register to the process, and get the processes container requirements. More...
 
virtual void GetDataContainer (PndContainerRegister *t_register)
 Pass the container register to the process, and set the processes container requirements. More...
 
virtual void SetDetectorName (const std::string &t_detectorName)
 Set the Detector name. Important, as most EmcParameter need to know for which detector they need to be fetched (each Emc Subdetector has its own set of parameters) More...
 
virtual void SetupParameters (const PndParameterRegister *t_parameterRegister)
 Fetch all parameters from the PndParameterRegister. More...
 
virtual void Process ()
 The actual data transformation (digitizing, clustering, etc.) should be defined here. More...
 
void AddDepositData (const BSEmcMCDeposit *t_deposit, const Int_t t_depositIndex)
 
void RunTimebased (Bool_t t_timebased=kTRUE)
 
void SetStorageOfData (Bool_t t_storeWaves=kTRUE)
 
void StoreDataClass (Bool_t t_storeData=kTRUE)
 
void SetMCDepositBranchName (const TString &t_branchName)
 
void SetWaveformBranchName (const TString &t_branchName)
 
void SetWaveformDataBranchName (const TString &t_branchName)
 
void SetPhotonStatisticParName (const std::string &t_photonStatParName)
 
- Public Member Functions inherited from PndProcess
 PndProcess ()
 
 PndProcess (const std::string &t_processname)
 
virtual ~PndProcess ()
 
const std::vector< std::string > & GetListOfRequiredParameters () const
 Get the List Of Required Parameters. More...
 
virtual void PreProcess ()
 PreProcess() is called before the actual Process() call in each event. More...
 
virtual void PostProcess ()
 Immediately after calling Process() PostProcess() is called for cleanup of internal process data, or if not needed, to end the time and memory increase measurement started by PreProcess() More...
 
virtual void TearDown ()
 Last actions at the end of the run. More...
 

Protected Member Functions

void SetSimulator (BSEmcAbsWaveformSimulator *t_simulator)
 
 ClassDef (BSEmcWaveformGenerationProcess, 2)
 

Protected Attributes

TString fMCDepositBranchname {""}
 
TString fWaveformBranchName {""}
 
TString fWaveformDataBranchName {""}
 
PndContainerI< BSEmcMCDeposit > * fMCDepositArray {nullptr}
 
BSEmcWaveformBufferfWaveformBuffer {nullptr}
 
BSEmcAbsWaveformSimulatorfSimulator {nullptr}
 
Bool_t fStoreWaves {kFALSE}
 
Bool_t fStoreDataClass {kFALSE}
 
Bool_t fActivateBuffering {kFALSE}
 
std::string fPhotonStatisticParName {""}
 
BSEmcDigiParfPhotonStatisticPar {nullptr}
 
Bool_t fUse_photon_statistic {kFALSE}
 
Double_t fNPhotoElectronsPerMeV {0}
 
Double_t fExcessNoiseFactor {0}
 
Double_t fOverlapTime {0}
 
- Protected Attributes inherited from PndProcess
std::vector< std::string > fParameterList {}
 Parameter names required by this PndProcess. Needs to be populated in derived class. More...
 
std::string fDetectorName {""}
 Set Detector name this PndProcess transforms data for. Required for example by EMC Processes to fetch right parameters. More...
 
std::string fProcessName {"PndProcess"}
 Name of current PndProcess (for debugging) More...
 
TStopwatch fTimer {}
 Timer to monitor Process() time. More...
 
Double_t fTotalTime {0}
 Time taken by this Process' Process() More...
 
ProcInfo_t fProcInfo
 Helper to access cpu process Memory Info. More...
 
Long_t fLastMemSize
 

Detailed Description

Base class Process to create waveforms out of BSEmcMCDeposits.

This is a base class for emc detector specific waveform generation processes. Derived processes need to implement and set the BSEmcAbsWaveformSimulator. The BSEmcAbsWaveformSimulator should actually be a BSEmcMultiWaveformSimulator

Author
Phil Strother Original author
Dima Melnichuk - adaption for PANDA
Philipp Mahlberg mahlb.nosp@m.erg@.nosp@m.hiskp.nosp@m..uni.nosp@m.-bonn.nosp@m..de - integration in timebased
Ben Salisbury salis.nosp@m.bury.nosp@m.@hisk.nosp@m.p.un.nosp@m.i-bon.nosp@m.n.de - process changes

Definition at line 45 of file BSEmcWaveformGenerationProcess.h.

Constructor & Destructor Documentation

◆ BSEmcWaveformGenerationProcess()

BSEmcWaveformGenerationProcess::BSEmcWaveformGenerationProcess ( BSEmcAbsWaveformSimulator t_simulator = nullptr,
Bool_t  t_storewaves = kTRUE,
Bool_t  t_storeData = kTRUE,
Bool_t  t_timebased = kFALSE 
)

◆ ~BSEmcWaveformGenerationProcess()

virtual BSEmcWaveformGenerationProcess::~BSEmcWaveformGenerationProcess ( )
virtual

Member Function Documentation

◆ AddDepositData()

void BSEmcWaveformGenerationProcess::AddDepositData ( const BSEmcMCDeposit t_deposit,
const Int_t  t_depositIndex 
)

◆ ClassDef()

BSEmcWaveformGenerationProcess::ClassDef ( BSEmcWaveformGenerationProcess  ,
 
)
protected

◆ GetDataContainer()

virtual void BSEmcWaveformGenerationProcess::GetDataContainer ( PndContainerRegister )
virtual

Pass the container register to the process, and set the processes container requirements.

Parameters
t_register

Reimplemented from PndProcess.

◆ Process()

virtual void BSEmcWaveformGenerationProcess::Process ( )
virtual

The actual data transformation (digitizing, clustering, etc.) should be defined here.

Implements PndProcess.

◆ RequestDataContainer()

virtual void BSEmcWaveformGenerationProcess::RequestDataContainer ( PndContainerRegister )
virtual

Pass the container register to the process, and get the processes container requirements.

Parameters
t_register

Reimplemented from PndProcess.

◆ RunTimebased()

void BSEmcWaveformGenerationProcess::RunTimebased ( Bool_t  t_timebased = kTRUE)
inline

Definition at line 58 of file BSEmcWaveformGenerationProcess.h.

References fActivateBuffering.

◆ SetDetectorName()

virtual void BSEmcWaveformGenerationProcess::SetDetectorName ( const std::string &  t_detectorname)
virtual

Set the Detector name. Important, as most EmcParameter need to know for which detector they need to be fetched (each Emc Subdetector has its own set of parameters)

Parameters
t_detectorname

Reimplemented from PndProcess.

Reimplemented in BSEmcFwEndcapWaveformGeneration, and BSEmcFwEndcapCosmicWaveformGeneration.

◆ SetMCDepositBranchName()

void BSEmcWaveformGenerationProcess::SetMCDepositBranchName ( const TString &  t_branchName)
inline

Definition at line 62 of file BSEmcWaveformGenerationProcess.h.

References fMCDepositBranchname.

◆ SetPhotonStatisticParName()

void BSEmcWaveformGenerationProcess::SetPhotonStatisticParName ( const std::string &  t_photonStatParName)
inline

Definition at line 65 of file BSEmcWaveformGenerationProcess.h.

References fPhotonStatisticParName.

65 { fPhotonStatisticParName = t_photonStatParName; }

◆ SetSimulator()

void BSEmcWaveformGenerationProcess::SetSimulator ( BSEmcAbsWaveformSimulator t_simulator)
inlineprotected

Definition at line 68 of file BSEmcWaveformGenerationProcess.h.

References fSimulator.

68 { fSimulator = t_simulator; }

◆ SetStorageOfData()

void BSEmcWaveformGenerationProcess::SetStorageOfData ( Bool_t  t_storeWaves = kTRUE)
inline

Definition at line 59 of file BSEmcWaveformGenerationProcess.h.

References fStoreWaves.

◆ SetupParameters()

virtual void BSEmcWaveformGenerationProcess::SetupParameters ( const PndParameterRegister t_parameter)
virtual

Fetch all parameters from the PndParameterRegister.

Parameters
t_parameter

Implements PndProcess.

Reimplemented in BSEmcFwEndcapWaveformGeneration, and BSEmcFwEndcapCosmicWaveformGeneration.

◆ SetWaveformBranchName()

void BSEmcWaveformGenerationProcess::SetWaveformBranchName ( const TString &  t_branchName)
inline

Definition at line 63 of file BSEmcWaveformGenerationProcess.h.

References fWaveformBranchName.

◆ SetWaveformDataBranchName()

void BSEmcWaveformGenerationProcess::SetWaveformDataBranchName ( const TString &  t_branchName)
inline

◆ StoreDataClass()

void BSEmcWaveformGenerationProcess::StoreDataClass ( Bool_t  t_storeData = kTRUE)
inline

Definition at line 60 of file BSEmcWaveformGenerationProcess.h.

References fStoreDataClass.

Member Data Documentation

◆ fActivateBuffering

Bool_t BSEmcWaveformGenerationProcess::fActivateBuffering {kFALSE}
protected

Definition at line 79 of file BSEmcWaveformGenerationProcess.h.

Referenced by RunTimebased().

◆ fExcessNoiseFactor

Double_t BSEmcWaveformGenerationProcess::fExcessNoiseFactor {0}
protected

Definition at line 84 of file BSEmcWaveformGenerationProcess.h.

◆ fMCDepositArray

PndContainerI<BSEmcMCDeposit>* BSEmcWaveformGenerationProcess::fMCDepositArray {nullptr}
protected

Definition at line 72 of file BSEmcWaveformGenerationProcess.h.

◆ fMCDepositBranchname

TString BSEmcWaveformGenerationProcess::fMCDepositBranchname {""}
protected

Definition at line 69 of file BSEmcWaveformGenerationProcess.h.

Referenced by SetMCDepositBranchName().

◆ fNPhotoElectronsPerMeV

Double_t BSEmcWaveformGenerationProcess::fNPhotoElectronsPerMeV {0}
protected

Definition at line 83 of file BSEmcWaveformGenerationProcess.h.

◆ fOverlapTime

Double_t BSEmcWaveformGenerationProcess::fOverlapTime {0}
protected

Definition at line 85 of file BSEmcWaveformGenerationProcess.h.

◆ fPhotonStatisticPar

BSEmcDigiPar* BSEmcWaveformGenerationProcess::fPhotonStatisticPar {nullptr}
protected

Definition at line 81 of file BSEmcWaveformGenerationProcess.h.

◆ fPhotonStatisticParName

std::string BSEmcWaveformGenerationProcess::fPhotonStatisticParName {""}
protected

Definition at line 80 of file BSEmcWaveformGenerationProcess.h.

Referenced by SetPhotonStatisticParName().

◆ fSimulator

BSEmcAbsWaveformSimulator* BSEmcWaveformGenerationProcess::fSimulator {nullptr}
protected

Definition at line 75 of file BSEmcWaveformGenerationProcess.h.

Referenced by SetSimulator().

◆ fStoreDataClass

Bool_t BSEmcWaveformGenerationProcess::fStoreDataClass {kFALSE}
protected

Definition at line 78 of file BSEmcWaveformGenerationProcess.h.

Referenced by StoreDataClass().

◆ fStoreWaves

Bool_t BSEmcWaveformGenerationProcess::fStoreWaves {kFALSE}
protected

Definition at line 77 of file BSEmcWaveformGenerationProcess.h.

Referenced by SetStorageOfData().

◆ fUse_photon_statistic

Bool_t BSEmcWaveformGenerationProcess::fUse_photon_statistic {kFALSE}
protected

Definition at line 82 of file BSEmcWaveformGenerationProcess.h.

◆ fWaveformBranchName

TString BSEmcWaveformGenerationProcess::fWaveformBranchName {""}
protected

Definition at line 70 of file BSEmcWaveformGenerationProcess.h.

Referenced by SetWaveformBranchName().

◆ fWaveformBuffer

BSEmcWaveformBuffer* BSEmcWaveformGenerationProcess::fWaveformBuffer {nullptr}
protected

Output array of BSEmcWaveforms

Definition at line 74 of file BSEmcWaveformGenerationProcess.h.

◆ fWaveformDataBranchName

TString BSEmcWaveformGenerationProcess::fWaveformDataBranchName {""}
protected

Definition at line 71 of file BSEmcWaveformGenerationProcess.h.

Referenced by SetWaveformDataBranchName().


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