FairRoot/PandaRoot
Classes
PndEmc

Electromagnetic calorimeter. More...

Classes

class  PndEmcBump
 represents a reconstructed (splitted) emc cluster More...
 
class  PndEmcCluster
 a cluster (group of neighboring crystals) of hit emc crystals More...
 
class  PndEmcDigi
 represents the reconstructed hit of one emc crystal More...
 
class  PndEmcHit
 represents the deposited energy of one emc crystal from simulation More...
 
class  PndEmcMultiWaveform
 Class to hold multiple waveforms from one Emc Hit / ADC readout. More...
 
class  PndEmcPoint
 represents a mc hit in an emc crystal More...
 
class  PndEmcRecoHit
 represents the reconstructed hit in the emc More...
 
class  PndEmcSharedDigi
 used to share PndEmcDigis between bumps More...
 
class  PndEmcWaveform
 represents a simulated waveform in an emc crystal More...
 
class  PndEmcWaveformData
 represents a simulated waveform in an emc crystal, used by PndEmcFWEndcapTimebasedWaveforms More...
 
class  PndEmcAbsCrystalCalibrator
 Abstract interface for a emc calibrator. More...
 
class  PndEmcAbsPSA
 Baseclass for pulseshapeanalysis ( featureextraction ) More...
 
class  PndEmcAbsPulseshape
 pulseshape interface More...
 
class  PndEmcAbsWaveformModifier
 interface for waveform modifiers More...
 
class  PndEmcAbsWaveformSimulator
 Abstract base class for waveform simulator. More...
 
class  PndEmcAsicPulseshape
 Pulseshape from an APFEL ASIC preamplifier shaper. More...
 
class  PndEmcCR2RCPulseshape
 Pulseshape from an CR2RC-Shaper. More...
 
class  PndEmcDigiPar
 parameter set of Emc digitisation More...
 
class  PndEmcDummyCrystalCalibrator
 Dummy Calibrator for Emc Crystals. More...
 
class  PndEmcExpPulseshape
 Exponential Pulseshape. More...
 
class  PndEmcFadcFilter
 FADC FIR (finite impulse response) filter. More...
 
class  PndEmcFileCrystalCalibrator
 Class to use a textfile for Calibration. More...
 
class  PndEmcFittedPulseshape
 Experimentally derived Pulseshape. More...
 
class  PndEmcFullDigiTask
 combines the tasks PndEmcHitsToWaveform and PndEmcWaveformToDigi More...
 
class  PndEmcFullStackedWaveformSimulator
 Waveform simulator. More...
 
class  PndEmcFWEndcapDigi
 Task to create digis from waveforms. More...
 
class  PndEmcFWEndcapDigiPar
 parameter set for the FWEndcap variant of waveform simulation More...
 
class  PndEmcFWEndcapTimebasedWaveforms
 Taks to create waveforms from hits. More...
 
class  PndEmcHitProducer
 creates PndEmcHits from PndEmcPoints More...
 
class  PndEmcHitsToWaveform
 Takes list of PndEmcHits and creates PndEmcWaveform. More...
 
class  PndEmcMakeDigi
 Task to create PndEmcDigi from PndEmcHit. More...
 
class  PndEmcMultiWaveformSimulator
 Simulator to create PndEmcMultiWaveform. More...
 
class  PndEmcMultiWaveformToCalibratedDigi
 Module to take the hit list for the calorimeter and make ADC waveforms from them. More...
 
class  PndEmcHighLowPSA
 Wrapping class to manage two independent PSAs for high, resp. low gain. More...
 
class  PndEmcPSAMatchedDigiFilter
 Pulseshape analysis for ADC waveforms. More...
 
class  PndEmcPSAParabolic
 Pulseshape analysis for ADC waveforms. More...
 
class  PndEmcPSAParabolicBaseline
 Pulseshape analysis for ADC waveforms. More...
 
class  PndEmcPSATrapDigiFilter
 Pulseshape analysis for ADC waveforms. More...
 
class  PndEmcShapingNoiseAdder
 waveform modifier to add noise to waveform More...
 
class  PndEmcSimCrystalCalibrator
 Class to simulate a Calibration. More...
 
class  PndEmcTmpWaveformToDigi
 currently not used, not in CMakeLists.txt More...
 
class  PndEmcWaveformBuffer
 buffer for waveforms, used by PndEmcFWEndcapTimebasedWaveforms More...
 
class  PndEmcWaveformDigitizer
 waveform digitzer More...
 
class  PndEmcWaveformToCalibratedDigi
 Module to take the hit list for the calorimeter and make ADC waveforms from them. More...
 
class  PndEmcWaveformToDigi
 Takes list of PndEmcWaveform and creates PndEmcDigi. More...
 
class  PndEmcWfRescaler
 waveform rescaler More...
 
class  PndEmc
 Simulation of EMC. More...
 
class  PndEmc2DLocMaxFinder
 Searches for local maxima in a cluster. More...
 
class  PndEmcClusterRemoveDuplCrys
 Task to remove duplicate crystals. More...
 
class  PndEmcErrorMatrix
 Calculate Error Matrix for the given EmcCluster with parametrization defined by the given parameter PndEmcErrorMatrixPar. More...
 
class  PndEmcErrorMatrixParObject
 Container class for EMC error matrix parameter class is inherited from FairParGenericSet. More...
 
class  PndEmcExpClusterSplitter
 splits clusters on the basis of exponential distance from the bump centroid More...
 
class  PndEmcMakeBump
 Takes clusters and slits them up into bumps. More...
 
class  PndEmcMakeCluster
 Task to cluster PndEmcDigis. More...
 
class  PndEmcMakeRecoHit
 Create PndEmcRecoHit from PndEmcBump. More...
 
class  PndEmcPhiBumpSplitter
 splits clusters based on local maxima in the Phi direction for use with Bremstrahlung correction. More...
 
class  PndEmcRecoPar
 Parameter set for Emc Reco. More...
 
class  PndEmcHdrFiller
 Task to create Emc header. More...
 
class  PndEmcMapper
 Emc geometry mapper. More...
 
class  PndEmcStructure
 geometry helper class More...
 
class  PndEmcTwoCoordIndex
 stores crystal index coordinates (x,y) or (theta,phi) More...
 
class  PndEmcXtal
 represents coordinates of one crystal More...
 

Detailed Description

Electromagnetic calorimeter.

Simulation

Simulation is handled by PndEmc. The energy deposit creates an PndEmcPoint, from those the task PndEmcHitProducer creates PndEmcHits.

Geometry

Geometry is handled by the PndEmcMapper. The class PndEmcTwoCoordIndex is used to store the crystal coordinates and check for neighbors.

Tasks

The standard way to create PndEmcRecoHit from detector hits (PndEmcPoint) involves the following tasks:

As an alternative, one can use PndEmcMakeDigi to create PndEmcDigis directly from PndEmcHits, bypassing the waveform generation and pulse shape analysis.

Waveforms

To simulate the full detector readout chain, the waveform of the detector and the following pulse shape analysis are simulated. The task PndEmcHitsToWaveform uses the pulseshape PndEmcAsicPulseshape for barrel, FwEndcap and BwEndcap and PndEmcCRRCPulseshape for the shashlyk. The task PndEmcWaveformToDigi then uses PndEmcPSAMatchedDigiFilter for the pulse shape analysis of barrel, FwEndcap and BwEndcap and PndEmcPSAParabolic for the shashlyk.

Time-based waveforms

There are two ways running the waveform generation and pulse shape analysis in time-based simulation. One was implemented inside the PndEmcHitsToWaveform and PndEmcWaveformToDigi classes, the other one uses its own classes prefixed (in parts) with PndEmcFWEndcap. This does not mean that they are only for the FwEndcap, but they were developed for the FwEndcap first and can now be used for the whole EMC.

Variant A

The variant using PndEmcWaveformToDigi creates the waveforms in the same way as for event-based simulation, but uses a different buffer PndEmcWaveformWriteoutBuffer. In PndEmcWaveformWriteoutBuffer::Modify() the waveforms are added in the case of pileup via the newly implemented operator PndEmcWaveform::operator+=(). As the noise is generated for the individual waveforms, the noise adds up quadratically in this case. The waveforms have to be sorted before digitisation (PndEmcWaveformSorterTask).

Pulse shape analysis is done in PndEmcWaveformToDigi, using the branch EmcSortedWaveform instead of EmcWaveform.

Variant B

The variant using PndEmcFWEndcapTimebasedWaveforms uses a more modular approach with a simulator (inheriting PndEmcAbsWaveformSimulator) and modifier (inheriting PndEmcAbsWaveformModifier) to create waveforms. In case of pileup, the waveforms are first joined and afterwards the noise is added (by waveform modifier PndEmcShapingNoiseAdder). This variant also uses a custom writeout buffer (PndEmcWaveformBuffer).

Pulse shape analysis is done in PndEmcFWEndcapDigi. The digis have to be sorted by PndEmcDigiSorterTask. Due to limitations in PndEmcMakeCluster, the task PndEmcClusterRemoveDuplCrys is needed to remove double hits in one crystal for one event.