PandaRoot
BSEmcWaveformGenerationProcess Class Reference

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

#include <BSEmcWaveformGenerationProcess.h>

Inheritance diagram for BSEmcWaveformGenerationProcess:
PndProcess< BSEmcDigitizationData > 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 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 SetData (BSEmcDigitizationData *t_data)
 Pass the data container ptrs to the process, and store pointers in class members. 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 RunTimebased (Bool_t t_timebased=kTRUE)
 
void SetStorageOfData (Bool_t t_storeWaves=kTRUE)
 
void StoreDataClass (Bool_t t_storeData=kTRUE)
 
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< BSEmcDigitizationData >
 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 fHitBranchName {""}
 
TString fWaveformBranchName {""}
 
TString fWaveformDataBranchName {""}
 
PndInputContainerI< BSEmcMCHit > * fHitArray {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< BSEmcDigitizationData >
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
 Name of current PndProcess (for debugging) More...
 
TStopwatch fTimer
 Timer to monitor Process() time. More...
 
Double_t fTotalTime
 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 BSEmcMCHits.

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

◆ ClassDef()

BSEmcWaveformGenerationProcess::ClassDef ( BSEmcWaveformGenerationProcess  ,
 
)
protected

◆ Process()

virtual void BSEmcWaveformGenerationProcess::Process ( )
virtual

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

Implements PndProcess< BSEmcDigitizationData >.

◆ RunTimebased()

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

Definition at line 57 of file BSEmcWaveformGenerationProcess.h.

References fActivateBuffering.

◆ SetData()

virtual void BSEmcWaveformGenerationProcess::SetData ( BSEmcDigitizationData t_data)
virtual

Pass the data container ptrs to the process, and store pointers in class members.

Parameters
t_data

Implements PndProcess< BSEmcDigitizationData >.

◆ 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< BSEmcDigitizationData >.

Reimplemented in BSEmcFwEndcapWaveformGeneration, and BSEmcFwEndcapCosmicWaveformGeneration.

◆ SetPhotonStatisticParName()

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

Definition at line 63 of file BSEmcWaveformGenerationProcess.h.

References fPhotonStatisticParName.

63 { fPhotonStatisticParName = t_photonStatParName; }

◆ SetSimulator()

void BSEmcWaveformGenerationProcess::SetSimulator ( BSEmcAbsWaveformSimulator t_simulator)
inlineprotected

Definition at line 66 of file BSEmcWaveformGenerationProcess.h.

References fSimulator.

66 { fSimulator = t_simulator; }

◆ SetStorageOfData()

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

Definition at line 58 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< BSEmcDigitizationData >.

Reimplemented in BSEmcFwEndcapWaveformGeneration, and BSEmcFwEndcapCosmicWaveformGeneration.

◆ SetWaveformBranchName()

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

Definition at line 61 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 59 of file BSEmcWaveformGenerationProcess.h.

References fStoreDataClass.

Member Data Documentation

◆ fActivateBuffering

Bool_t BSEmcWaveformGenerationProcess::fActivateBuffering {kFALSE}
protected

Definition at line 78 of file BSEmcWaveformGenerationProcess.h.

Referenced by RunTimebased().

◆ fExcessNoiseFactor

Double_t BSEmcWaveformGenerationProcess::fExcessNoiseFactor {0}
protected

Definition at line 83 of file BSEmcWaveformGenerationProcess.h.

◆ fHitArray

PndInputContainerI<BSEmcMCHit>* BSEmcWaveformGenerationProcess::fHitArray {nullptr}
protected

Definition at line 71 of file BSEmcWaveformGenerationProcess.h.

◆ fHitBranchName

TString BSEmcWaveformGenerationProcess::fHitBranchName {""}
protected

Definition at line 68 of file BSEmcWaveformGenerationProcess.h.

◆ fNPhotoElectronsPerMeV

Double_t BSEmcWaveformGenerationProcess::fNPhotoElectronsPerMeV {0}
protected

Definition at line 82 of file BSEmcWaveformGenerationProcess.h.

◆ fOverlapTime

Double_t BSEmcWaveformGenerationProcess::fOverlapTime {0}
protected

Definition at line 84 of file BSEmcWaveformGenerationProcess.h.

◆ fPhotonStatisticPar

BSEmcDigiPar* BSEmcWaveformGenerationProcess::fPhotonStatisticPar {nullptr}
protected

Definition at line 80 of file BSEmcWaveformGenerationProcess.h.

◆ fPhotonStatisticParName

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

Definition at line 79 of file BSEmcWaveformGenerationProcess.h.

Referenced by SetPhotonStatisticParName().

◆ fSimulator

BSEmcAbsWaveformSimulator* BSEmcWaveformGenerationProcess::fSimulator {nullptr}
protected

Definition at line 74 of file BSEmcWaveformGenerationProcess.h.

Referenced by SetSimulator().

◆ fStoreDataClass

Bool_t BSEmcWaveformGenerationProcess::fStoreDataClass {kFALSE}
protected

Definition at line 77 of file BSEmcWaveformGenerationProcess.h.

Referenced by StoreDataClass().

◆ fStoreWaves

Bool_t BSEmcWaveformGenerationProcess::fStoreWaves {kFALSE}
protected

Definition at line 76 of file BSEmcWaveformGenerationProcess.h.

Referenced by SetStorageOfData().

◆ fUse_photon_statistic

Bool_t BSEmcWaveformGenerationProcess::fUse_photon_statistic {kFALSE}
protected

Definition at line 81 of file BSEmcWaveformGenerationProcess.h.

◆ fWaveformBranchName

TString BSEmcWaveformGenerationProcess::fWaveformBranchName {""}
protected

Definition at line 69 of file BSEmcWaveformGenerationProcess.h.

Referenced by SetWaveformBranchName().

◆ fWaveformBuffer

BSEmcWaveformBuffer* BSEmcWaveformGenerationProcess::fWaveformBuffer {nullptr}
protected

Output array of BSEmcWaveforms

Definition at line 73 of file BSEmcWaveformGenerationProcess.h.

◆ fWaveformDataBranchName

TString BSEmcWaveformGenerationProcess::fWaveformDataBranchName {""}
protected

Definition at line 70 of file BSEmcWaveformGenerationProcess.h.

Referenced by SetWaveformDataBranchName().


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