CbmRoot
Loading...
Searching...
No Matches
CbmTrdModuleSimR Class Reference

Simulation module implementation for rectangular pad geometry. More...

#include <CbmTrdModuleSimR.h>

Inheritance diagram for CbmTrdModuleSimR:
[legend]
Collaboration diagram for CbmTrdModuleSimR:
[legend]

Public Types

enum  CbmTrdModuleSimDef { kTime = 0 , kNoise , kWeightDistance }
 

Public Member Functions

 CbmTrdModuleSimR (Int_t mod, Int_t ly, Int_t rot)
 
virtual ~CbmTrdModuleSimR ()
 
void GetCounters (Int_t &nEl, Int_t &nLattice, Int_t &nOverThr) const
 
Int_t FlushBuffer (ULong64_t time=0)
 Flush local digi buffer.
 
Bool_t MakeDigi (CbmTrdPoint *p, Double_t time, Bool_t TR)
 Steering routine for converting MC point to digits.
 
Bool_t MakeRaw ()
 Steering routine for converting MC point to raw format.
 
void SetAsicPar (CbmTrdParModAsic *p=NULL)
 
void SetNCluster (Int_t nCluster)
 
void SetNoiseLevel (Double_t sigma_keV)
 
void SetDistributionPoints (Int_t points)
 
void SetSpadicResponse (Double_t calibration, Double_t tau)
 
void SetPulsePars (Int_t mode)
 
void SetPulseMode (Bool_t pulsed)
 
void SetGamma (Double_t gamma)
 
void SetTriggerThreshold (Double_t minCharge)
 
void SetPadPlaneScanArea (Int_t row)
 
void ResetCounters ()
 
void SetMessageConverter (CbmTrdRawToDigiR *conv)
 
void GetModuleType (CbmTrdRawToDigiR *conv)
 
void SetQA (CbmTrdCheckUtil *qa)
 
virtual std::map< Int_t, std::pair< CbmTrdDigi *, CbmMatch * > > * GetDigiMap ()
 
virtual Int_t GetEventId () const
 
virtual Int_t GetInputId () const
 
virtual Int_t GetPointId () const
 
void SetDigitizer (CbmTrdDigitizer *digitizer)
 
virtual void SetEventId (Int_t id)
 
virtual void SetInputId (Int_t id)
 
virtual void SetPointId (Int_t id)
 
virtual void SetRadiator (std::shared_ptr< CbmTrdRadiator > radiator)
 Set the Radiator.
 
virtual void SetPositionMC (Double_t pos[3])
 
virtual void SetLinkId (Int_t input, Int_t event=-1, Int_t point=-1)
 
virtual void SetTimeSysOffset (int dt)
 
virtual Double_t GetDx () const
 Shortcut getter size x/2 [cm].
 
virtual Double_t GetDy () const
 Shortcut getter size y/2 [cm].
 
virtual Double_t GetDz () const
 Shortcut getter size z/2 [cm].
 
virtual Int_t GetNasics () const
 Shortcut getter ASICs number module wise.
 
virtual Int_t GetNcols () const
 Shortcut getter column size.
 
virtual Int_t GetNrows () const
 Shortcut getter row wise.
 
virtual Int_t GetAsicAddress (Int_t id) const
 Addressing ASIC on module based on id.
 
virtual Int_t GetPadAddress (Int_t r, Int_t c) const
 Addressing read-out pads on module based on (row,col)
 
virtual Int_t GetPadRowCol (Int_t address, Int_t &c) const
 Addressing read-out pads based on module address.
 
virtual const Char_t * GetPath () const
 
bool IsChannelMasked (int ch) const
 Inquire the ASIC par set.
 
virtual void LocalToMaster (Double_t in[3], Double_t out[3])
 
virtual void SetChmbPar (const CbmTrdParModGas *p)
 
virtual void SetDigiPar (const CbmTrdParModDigi *p)
 
virtual void SetGainPar (const CbmTrdParModGain *p)
 
virtual void SetGeoPar (const CbmTrdParModGeo *p)
 

Protected Attributes

Int_t fPointId
 MC point id being processed.
 
Int_t fEventId
 MC event id being processed.
 
Int_t fInputId
 MC input file number.
 
Int_t fTimeSysOffset = 0
 Time offset of TRD digis to align them with other detectors (Bmon, ToF)
 
Double_t fXYZ [3]
 MC position of the point in module coordinates.
 
CbmTrdDigitizerfDigitizer
 
std::shared_ptr< CbmTrdRadiatorfRadiator = nullptr
 Pointer to digitizer.
 
std::map< Int_t, std::pair< CbmTrdDigi *, CbmMatch * > > fDigiMap
 Temporary storage for complete digis for each CBM address.
 
std::map< Int_t, std::vector< std::pair< CbmTrdDigi *, CbmMatch * > > > fBuffer
 Local digits buffer as function of time for each TRD channel in the module.
 
UShort_t fModAddress = 0
 unique identifier for current module
 
Char_t fLayerId = -1
 layer identifier
 
UChar_t fRotation = 0
 rotation angle for current module
 
const CbmTrdParModDigifDigiPar = nullptr
 read-out description of module
 
const CbmTrdParModGasfChmbPar = nullptr
 detection description (HV, drift) of module
 
CbmTrdParModAsicfAsicPar = nullptr
 the set of ASIC operating on the module (owned)
 
const CbmTrdParModGainfGainPar = nullptr
 Analog to digital conversion for module.
 
const CbmTrdParModGeofGeoPar = nullptr
 link to gGeometry for module
 

Private Member Functions

CbmTrdModuleSimRoperator= (const CbmTrdModuleSimR &)
 
 CbmTrdModuleSimR (const CbmTrdModuleSimR &)
 
void AddDigitoPulseBuffer (Int_t address, Double_t reldrift, Double_t charge, Double_t chargeTR, Double_t time, Int_t trigger, Int_t epoints, Int_t ipoint)
 
std::vector< Double_t > MakePulse (Double_t charge, std::vector< Double_t > pulse, Int_t address)
 
void AddToPulse (Int_t address, Double_t charge, Double_t reldrift, std::vector< Double_t > pulse)
 
Bool_t CheckMulti (Int_t address, std::vector< Double_t > pulse)
 
Int_t CheckTrigger (std::vector< Double_t > pulse)
 
Double_t CalcResponse (Double_t t)
 
void ProcessPulseBuffer (Int_t address, Bool_t FNcall, Bool_t MultiCall, Bool_t down, Bool_t up)
 
Int_t GetMultiBin (std::vector< Double_t > pulse)
 
void AddDigi (Int_t address, Double_t charge, Double_t chargeTR, Double_t time, Int_t trigger)
 
void AddDigitoBuffer (Int_t address, Double_t charge, Double_t chargeTR, Double_t time, Int_t trigger)
 
void ProcessBuffer (Int_t address)
 
void CheckBuffer (Bool_t EB)
 
void CleanUp (Bool_t EB)
 
Bool_t DistributeCharge (Double_t pointin[3], Double_t pointout[3], Double_t delta[3], Double_t pos[3], Int_t ipoints)
 
Double_t AddDrifttime (Double_t x, Double_t z)
 
Double_t AddDrifttime (Int_t x)
 
Double_t AddNoise (Double_t charge)
 
Double_t GetStep (Double_t dist, Int_t roll)
 
std::pair< Int_t, std::vector< Double_t > > GetTotalSteps (Double_t In[3], Double_t Out[3], Double_t dist)
 
Int_t AddNoiseADC ()
 
Int_t AddCrosstalk (Double_t address, Int_t i, Int_t sec, Int_t row, Int_t col, Int_t ncols)
 
Double_t CalcPRF (Double_t x, Double_t W, Double_t h)
 
void CheckTime (Int_t address)
 
void NoiseTime (ULong64_t eventTime)
 
void SetDist (Int_t dist)
 
std::vector< Double_t > AddCorrelatedNoise (std::vector< Double_t > pulse)
 
void ScanPadPlane (const Double_t *local_point, Double_t reldrift, Double_t clusterELoss, Double_t clusterELossTR, Int_t epoints, Int_t ipoint)
 

Private Attributes

Double_t fCalibration = 35. / 1.1107 / 0.8 * 1.5
 
Double_t fEReco = 0.
 
Double_t fTau = 120.0
 
Double_t fTriggerSlope = 12.0
 
Int_t fRecoMode = 2
 
Double_t fSigma_noise_keV
 
Double_t fMinimumChargeTH
 
Double_t fCurrentTime
 
Double_t fAddress
 
Double_t fLastEventTime
 
Double_t fEventTime
 
Double_t fLastTime
 
Double_t fCollectTime
 
Int_t fnClusterConst
 
Int_t fnScanRowConst
 
Bool_t fPulseSwitch
 
Bool_t fPrintPulse
 
Bool_t fTimeShift
 
Bool_t fAddCrosstalk
 
Bool_t fClipping
 
Int_t fepoints
 
Int_t fAdcNoise
 
Int_t fDistributionMode
 
Double_t fCrosstalkLevel
 
Int_t fLastPoint = 0
 
Int_t fLastEvent = 0
 
Int_t frecostart = 2
 
Int_t frecostop = 5
 
Int_t fClipLevel = 500
 
Int_t fPresamples = 2
 
Int_t fShapingOrder = 1
 
Int_t fMaxBin = 2 + fPresamples
 
Int_t fMinBin = 0 + fPresamples
 
Double_t fGamma = 0.
 
Double_t fMinDrift = 12.5
 
CbmTimeSlicefTimeSlice = NULL
 link to CBM time slice
 
Int_t nofElectrons
 
Int_t nofLatticeHits
 
Int_t nofPointsAboveThreshold
 
Double_t fDriftStart = 0
 
std::map< Int_t, std::vector< std::pair< CbmTrdDigi *, CbmMatch * > > > fAnalogBuffer
 
std::map< Int_t, std::pair< std::vector< Double_t >, CbmMatch * > > fPulseBuffer
 
std::map< Int_t, std::pair< Double_t, Int_t > > fMultiBuffer
 
std::map< Int_t, Double_t > fTimeBuffer
 
std::map< Int_t, Double_t > fShiftQA
 
std::map< Int_t, std::vector< std::map< TString, Int_t > > > fLinkQA
 
std::map< Int_t, Double_t > fMCQA
 
std::map< Int_t, std::vector< std::vector< Int_t > > > fMCBuffer
 
Float_t fQAPosition [3] = {0., 0., 0.}
 
Float_t fQAPos_out [3] = {0., 0., 0.}
 
CbmTrdRawToDigiRfMessageConverter = NULL
 
TH2D * fDriftTime = NULL
 
CbmTrdCheckUtilfQA = NULL
 
Bool_t fDebug = true
 

Detailed Description

Simulation module implementation for rectangular pad geometry.

Definition at line 23 of file CbmTrdModuleSimR.h.

Member Enumeration Documentation

◆ CbmTrdModuleSimDef

Enumerator
kTime 

select Time based/Event by event simulations

kNoise 

switch noise digits generation

kWeightDistance 

use weighting distance for link generation

Definition at line 26 of file CbmTrdModuleSim.h.

Constructor & Destructor Documentation

◆ CbmTrdModuleSimR() [1/2]

CbmTrdModuleSimR::CbmTrdModuleSimR ( Int_t mod,
Int_t ly,
Int_t rot )

Save old global file and folder pointer to avoid messing with FairRoot

Restore old global file and folder pointer to avoid messing with FairRoot

Definition at line 43 of file CbmTrdModuleSimR.cxx.

References fCalibration, fCollectTime, fDriftTime, fPulseSwitch, fRecoMode, fTau, fTimeSlice, CbmTrdDigitizer::IsTimeBased(), SetPulsePars(), and SetSpadicResponse().

◆ ~CbmTrdModuleSimR()

virtual CbmTrdModuleSimR::~CbmTrdModuleSimR ( )
inlinevirtual

Definition at line 26 of file CbmTrdModuleSimR.h.

◆ CbmTrdModuleSimR() [2/2]

CbmTrdModuleSimR::CbmTrdModuleSimR ( const CbmTrdModuleSimR & )
private

Member Function Documentation

◆ AddCorrelatedNoise()

std::vector< Double_t > CbmTrdModuleSimR::AddCorrelatedNoise ( std::vector< Double_t > pulse)
private

Definition at line 1776 of file CbmTrdModuleSimR.cxx.

Referenced by MakePulse().

◆ AddCrosstalk()

Int_t CbmTrdModuleSimR::AddCrosstalk ( Double_t address,
Int_t i,
Int_t sec,
Int_t row,
Int_t col,
Int_t ncols )
private

◆ AddDigi()

◆ AddDigitoBuffer()

◆ AddDigitoPulseBuffer()

void CbmTrdModuleSimR::AddDigitoPulseBuffer ( Int_t address,
Double_t reldrift,
Double_t charge,
Double_t chargeTR,
Double_t time,
Int_t trigger,
Int_t epoints,
Int_t ipoint )
private

◆ AddDrifttime() [1/2]

Double_t CbmTrdModuleSimR::AddDrifttime ( Double_t x,
Double_t z )
private

Definition at line 1974 of file CbmTrdModuleSimR.cxx.

References CbmTrdCheckUtil::CreateHist(), fDebug, fDriftTime, CbmTrdCheckUtil::Fill(), fQA, and x.

Referenced by MakeDigi().

◆ AddDrifttime() [2/2]

Double_t CbmTrdModuleSimR::AddDrifttime ( Int_t x)
private

Definition at line 1984 of file CbmTrdModuleSimR.cxx.

References x.

◆ AddNoise()

Double_t CbmTrdModuleSimR::AddNoise ( Double_t charge)
private

Definition at line 1748 of file CbmTrdModuleSimR.cxx.

References CbmTrdDigitizer::AddNoise(), fPulseSwitch, and fSigma_noise_keV.

Referenced by AddDigi(), and AddDigitoBuffer().

◆ AddNoiseADC()

Int_t CbmTrdModuleSimR::AddNoiseADC ( )
private

Definition at line 1762 of file CbmTrdModuleSimR.cxx.

References CbmTrdDigitizer::AddNoise(), fAdcNoise, and fPulseSwitch.

Referenced by ProcessPulseBuffer().

◆ AddToPulse()

void CbmTrdModuleSimR::AddToPulse ( Int_t address,
Double_t charge,
Double_t reldrift,
std::vector< Double_t > pulse )
private

◆ CalcPRF()

Double_t CbmTrdModuleSimR::CalcPRF ( Double_t x,
Double_t W,
Double_t h )
private

Definition at line 1042 of file CbmTrdModuleSimR.cxx.

References sqrt(), and x.

Referenced by ScanPadPlane().

◆ CalcResponse()

Double_t CbmTrdModuleSimR::CalcResponse ( Double_t t)
private

Definition at line 1053 of file CbmTrdModuleSimR.cxx.

References fShapingOrder, and fTau.

Referenced by AddToPulse(), CheckMulti(), MakePulse(), and SetSpadicResponse().

◆ CheckBuffer()

void CbmTrdModuleSimR::CheckBuffer ( Bool_t EB = false)
private

◆ CheckMulti()

◆ CheckTime()

void CbmTrdModuleSimR::CheckTime ( Int_t address)
private

◆ CheckTrigger()

Int_t CbmTrdModuleSimR::CheckTrigger ( std::vector< Double_t > pulse)
private

Definition at line 1002 of file CbmTrdModuleSimR.cxx.

References fMaxBin, and fTriggerSlope.

Referenced by AddToPulse(), CheckBuffer(), CheckMulti(), FlushBuffer(), and ProcessPulseBuffer().

◆ CleanUp()

void CbmTrdModuleSimR::CleanUp ( Bool_t EB = false)
private

◆ DistributeCharge()

Bool_t CbmTrdModuleSimR::DistributeCharge ( Double_t pointin[3],
Double_t pointout[3],
Double_t delta[3],
Double_t pos[3],
Int_t ipoints )
private

◆ FlushBuffer()

Int_t CbmTrdModuleSimR::FlushBuffer ( ULong64_t time = 0)
virtual

Flush local digi buffer.

Parameters
timeTime limit to dump digits. If 0 all (used also in EbyE mode)
Returns
no of digits exported

Implements CbmTrdModuleSim.

Definition at line 1863 of file CbmTrdModuleSimR.cxx.

References CheckTrigger(), fMCBuffer, fMultiBuffer, fPrintPulse, fPulseBuffer, fPulseSwitch, fTimeBuffer, fTimeSlice, CbmTimeSlice::GetEndTime(), ProcessBuffer(), and ProcessPulseBuffer().

◆ GetAsicAddress()

virtual Int_t CbmTrdModuleAbstract::GetAsicAddress ( Int_t id) const
inlinevirtualinherited

Addressing ASIC on module based on id.

Parameters
[in]idmodule wise ASIC identifier
Returns
ASIC address within experiment

Definition at line 59 of file CbmTrdModuleAbstract.h.

References CbmTrdModuleAbstract::fModAddress.

◆ GetCounters()

void CbmTrdModuleSimR::GetCounters ( Int_t & nEl,
Int_t & nLattice,
Int_t & nOverThr ) const
inlinevirtual

Reimplemented from CbmTrdModuleSim.

Definition at line 27 of file CbmTrdModuleSimR.h.

References nofElectrons, nofLatticeHits, and nofPointsAboveThreshold.

◆ GetDigiMap()

virtual std::map< Int_t, std::pair< CbmTrdDigi *, CbmMatch * > > * CbmTrdModuleSim::GetDigiMap ( )
inlinevirtualinherited

Definition at line 49 of file CbmTrdModuleSim.h.

References CbmTrdModuleSim::fDigiMap.

◆ GetDx()

virtual Double_t CbmTrdModuleAbstract::GetDx ( ) const
inlinevirtualinherited

Shortcut getter size x/2 [cm].

Definition at line 44 of file CbmTrdModuleAbstract.h.

References CbmTrdModuleAbstract::fGeoPar, and CbmTrdParModGeo::GetDX().

Referenced by SetAsicPar().

◆ GetDy()

virtual Double_t CbmTrdModuleAbstract::GetDy ( ) const
inlinevirtualinherited

Shortcut getter size y/2 [cm].

Definition at line 46 of file CbmTrdModuleAbstract.h.

References CbmTrdModuleAbstract::fGeoPar, and CbmTrdParModGeo::GetDY().

Referenced by SetAsicPar().

◆ GetDz()

virtual Double_t CbmTrdModuleAbstract::GetDz ( ) const
inlinevirtualinherited

Shortcut getter size z/2 [cm].

Definition at line 48 of file CbmTrdModuleAbstract.h.

References CbmTrdModuleAbstract::fGeoPar, and CbmTrdParModGeo::GetDZ().

◆ GetEventId()

virtual Int_t CbmTrdModuleSim::GetEventId ( ) const
inlinevirtualinherited

Definition at line 50 of file CbmTrdModuleSim.h.

References CbmTrdModuleSim::fEventId.

◆ GetInputId()

virtual Int_t CbmTrdModuleSim::GetInputId ( ) const
inlinevirtualinherited

Definition at line 51 of file CbmTrdModuleSim.h.

References CbmTrdModuleSim::fInputId.

◆ GetModuleType()

void CbmTrdModuleSimR::GetModuleType ( CbmTrdRawToDigiR * conv)
inline

Definition at line 55 of file CbmTrdModuleSimR.h.

References fMessageConverter.

◆ GetMultiBin()

Int_t CbmTrdModuleSimR::GetMultiBin ( std::vector< Double_t > pulse)
private

Definition at line 1023 of file CbmTrdModuleSimR.cxx.

References fMaxBin, and fTriggerSlope.

Referenced by CheckMulti().

◆ GetNasics()

virtual Int_t CbmTrdModuleAbstract::GetNasics ( ) const
inlinevirtualinherited

Shortcut getter ASICs number module wise.

Definition at line 50 of file CbmTrdModuleAbstract.h.

References CbmTrdModuleAbstract::fAsicPar, and CbmTrdParModAsic::GetNofAsics().

◆ GetNcols()

virtual Int_t CbmTrdModuleAbstract::GetNcols ( ) const
inlinevirtualinherited

◆ GetNrows()

virtual Int_t CbmTrdModuleAbstract::GetNrows ( ) const
inlinevirtualinherited

Shortcut getter row wise.

Definition at line 54 of file CbmTrdModuleAbstract.h.

References CbmTrdModuleAbstract::fDigiPar, and CbmTrdParModDigi::GetNofRows().

◆ GetPadAddress()

virtual Int_t CbmTrdModuleAbstract::GetPadAddress ( Int_t r,
Int_t c ) const
inlinevirtualinherited

Addressing read-out pads on module based on (row,col)

Parameters
[in]rglobal row id (not sector wise)
[in]cglobal column id
Returns
pad address within module

Definition at line 65 of file CbmTrdModuleAbstract.h.

References CbmTrdModuleAbstract::GetNcols().

Referenced by CbmTrdModuleSim2D::ScanPadPlane().

◆ GetPadRowCol()

Int_t CbmTrdModuleAbstract::GetPadRowCol ( Int_t address,
Int_t & c ) const
inlinevirtualinherited

Addressing read-out pads based on module address.

Parameters
[in]addresspad address within module
[in]con return global column id
Returns
global row address within module

Definition at line 107 of file CbmTrdModuleAbstract.h.

References CbmTrdModuleAbstract::fDigiPar, and CbmTrdModuleAbstract::GetNcols().

Referenced by CbmTrdModuleRec2D::AddDigi(), CbmTrdModuleRec2D::CheckMerge(), CbmTrdModuleSim2D::FlushBuffer(), CbmTrdModuleRec2D::LoadDigis(), CbmTrdModuleRec2D::LoadDigisRC(), CbmTrdModuleRec2D::MergeDigis(), and CbmTrdModuleRec2D::ProjectDigis().

◆ GetPath()

virtual const Char_t * CbmTrdModuleAbstract::GetPath ( ) const
inlinevirtualinherited

◆ GetPointId()

virtual Int_t CbmTrdModuleSim::GetPointId ( ) const
inlinevirtualinherited

Definition at line 52 of file CbmTrdModuleSim.h.

References CbmTrdModuleSim::fPointId.

◆ GetStep()

Double_t CbmTrdModuleSimR::GetStep ( Double_t dist,
Int_t roll )
private

Definition at line 2018 of file CbmTrdModuleSimR.cxx.

References fGamma, and first.

Referenced by DistributeCharge().

◆ GetTotalSteps()

std::pair< Int_t, std::vector< Double_t > > CbmTrdModuleSimR::GetTotalSteps ( Double_t In[3],
Double_t Out[3],
Double_t dist )
private

◆ IsChannelMasked()

bool CbmTrdModuleAbstract::IsChannelMasked ( int ch) const
inherited

Inquire the ASIC par set.

Returns
true for actively masked channel

Definition at line 30 of file CbmTrdModuleAbstract.cxx.

References CbmTrdModuleAbstract::fAsicPar, CbmTrdParModAsic::GetAsicPar(), and CbmTrdParAsic::IsChannelMasked().

◆ LocalToMaster()

void CbmTrdModuleAbstract::LocalToMaster ( Double_t in[3],
Double_t out[3] )
virtualinherited

◆ MakeDigi()

Bool_t CbmTrdModuleSimR::MakeDigi ( CbmTrdPoint * p,
Double_t time,
Bool_t TR )
virtual

Steering routine for converting MC point to digits.

Parameters
[in]pMC point to be digitized
[in]timeEvent time [ns]
[in]TRRequest TR generation on top of dEdx

Implements CbmTrdModuleSim.

Definition at line 1112 of file CbmTrdModuleSimR.cxx.

References AddDrifttime(), CbmTrdDigitizer::AddNoise(), CbmTrdCheckUtil::CreateHist(), DistributeCharge(), fCalibration, fCurrentTime, fDebug, CbmTrdModuleAbstract::fDigiPar, fDistributionMode, fDriftStart, fepoints, CbmTrdModuleSim::fEventId, fEventTime, CbmTrdCheckUtil::Fill(), fLastEvent, fLastEventTime, fLastPoint, fLastTime, fMaxBin, fMessageConverter, fMinBin, fMinimumChargeTH, fnClusterConst, CbmTrdModuleSim::fPointId, fPresamples, fPrintPulse, fPulseSwitch, fQA, fQAPos_out, fQAPosition, CbmTrdModuleSim::fRadiator, frecostart, frecostop, fShapingOrder, fTau, CbmTrdParModDigi::GetAnodeWireSpacing(), CbmTrdModuleAbstract::GetPath(), CbmTrdRawToDigiR::GetSetter(), CbmTrdParModDigi::GetSizeX(), CbmTrdParModDigi::GetSizeY(), GetTotalSteps(), CbmTrdPoint::GetXIn(), CbmTrdPoint::GetXOut(), CbmTrdPoint::GetYIn(), CbmTrdPoint::GetYOut(), CbmTrdPoint::GetZIn(), CbmTrdPoint::GetZOut(), CbmTrdRawToDigiR::Init(), nofElectrons, nofLatticeHits, nofPointsAboveThreshold, NoiseTime(), CbmTrdParModDigi::ProjectPositionToNextAnodeWire(), ScanPadPlane(), CbmTrdRawToDigiR::SetCalibration(), CbmTrdRawToDigiR::SetMaxBin(), CbmTrdRawToDigiR::SetMinBin(), CbmTrdModuleSim::SetPositionMC(), CbmTrdRawToDigiR::SetPresamples(), CbmTrdRawToDigiR::SetQA(), CbmTrdRawToDigiR::SetReadFile(), CbmTrdRawToDigiR::SetRecoMask(), CbmTrdRawToDigiR::SetSetter(), CbmTrdRawToDigiR::SetShapingOrder(), and CbmTrdRawToDigiR::SetTau().

◆ MakePulse()

std::vector< Double_t > CbmTrdModuleSimR::MakePulse ( Double_t charge,
std::vector< Double_t > pulse,
Int_t address )
private

◆ MakeRaw()

Bool_t CbmTrdModuleSimR::MakeRaw ( )
inlinevirtual

Steering routine for converting MC point to raw format.

Implements CbmTrdModuleSim.

Definition at line 35 of file CbmTrdModuleSimR.h.

◆ NoiseTime()

void CbmTrdModuleSimR::NoiseTime ( ULong64_t eventTime)
private

Definition at line 1971 of file CbmTrdModuleSimR.cxx.

References fCurrentTime, and fLastEventTime.

Referenced by MakeDigi().

◆ operator=()

CbmTrdModuleSimR & CbmTrdModuleSimR::operator= ( const CbmTrdModuleSimR & )
private

◆ ProcessBuffer()

void CbmTrdModuleSimR::ProcessBuffer ( Int_t address)
private

◆ ProcessPulseBuffer()

◆ ResetCounters()

void CbmTrdModuleSimR::ResetCounters ( )
inlinevirtual

Reimplemented from CbmTrdModuleSim.

Definition at line 48 of file CbmTrdModuleSimR.h.

References nofElectrons, nofLatticeHits, and nofPointsAboveThreshold.

◆ ScanPadPlane()

◆ SetAsicPar()

◆ SetChmbPar()

virtual void CbmTrdModuleAbstract::SetChmbPar ( const CbmTrdParModGas * p)
inlinevirtualinherited

Definition at line 82 of file CbmTrdModuleAbstract.h.

References CbmTrdModuleAbstract::fChmbPar.

◆ SetDigiPar()

virtual void CbmTrdModuleAbstract::SetDigiPar ( const CbmTrdParModDigi * p)
inlinevirtualinherited

Definition at line 83 of file CbmTrdModuleAbstract.h.

References CbmTrdModuleAbstract::fDigiPar.

◆ SetDigitizer()

void CbmTrdModuleSim::SetDigitizer ( CbmTrdDigitizer * digitizer)
inlineinherited

Definition at line 72 of file CbmTrdModuleSim.h.

References CbmTrdModuleSim::fDigitizer.

◆ SetDist()

void CbmTrdModuleSimR::SetDist ( Int_t dist)
inlineprivate

Definition at line 96 of file CbmTrdModuleSimR.h.

References fDistributionMode.

◆ SetDistributionPoints()

void CbmTrdModuleSimR::SetDistributionPoints ( Int_t points)

Definition at line 1706 of file CbmTrdModuleSimR.cxx.

References fepoints, and points.

◆ SetEventId()

virtual void CbmTrdModuleSim::SetEventId ( Int_t id)
inlinevirtualinherited

Definition at line 73 of file CbmTrdModuleSim.h.

References CbmTrdModuleSim::fEventId.

◆ SetGainPar()

virtual void CbmTrdModuleAbstract::SetGainPar ( const CbmTrdParModGain * p)
inlinevirtualinherited

Definition at line 84 of file CbmTrdModuleAbstract.h.

References CbmTrdModuleAbstract::fGainPar.

◆ SetGamma()

void CbmTrdModuleSimR::SetGamma ( Double_t gamma)
inlinevirtual

Implements CbmTrdModuleSim.

Definition at line 45 of file CbmTrdModuleSimR.h.

References fGamma.

◆ SetGeoPar()

virtual void CbmTrdModuleAbstract::SetGeoPar ( const CbmTrdParModGeo * p)
inlinevirtualinherited

Definition at line 85 of file CbmTrdModuleAbstract.h.

References CbmTrdModuleAbstract::fGeoPar.

◆ SetInputId()

virtual void CbmTrdModuleSim::SetInputId ( Int_t id)
inlinevirtualinherited

Definition at line 74 of file CbmTrdModuleSim.h.

References CbmTrdModuleSim::fInputId.

◆ SetLinkId()

virtual void CbmTrdModuleSim::SetLinkId ( Int_t input,
Int_t event = -1,
Int_t point = -1 )
inlinevirtualinherited

◆ SetMessageConverter()

void CbmTrdModuleSimR::SetMessageConverter ( CbmTrdRawToDigiR * conv)
inlinevirtual

Implements CbmTrdModuleSim.

Definition at line 54 of file CbmTrdModuleSimR.h.

References fMessageConverter.

◆ SetNCluster()

void CbmTrdModuleSimR::SetNCluster ( Int_t nCluster)
inline

Definition at line 39 of file CbmTrdModuleSimR.h.

References fnClusterConst.

◆ SetNoiseLevel()

void CbmTrdModuleSimR::SetNoiseLevel ( Double_t sigma_keV)

Definition at line 1703 of file CbmTrdModuleSimR.cxx.

References fSigma_noise_keV.

◆ SetPadPlaneScanArea()

void CbmTrdModuleSimR::SetPadPlaneScanArea ( Int_t row)

Definition at line 1740 of file CbmTrdModuleSimR.cxx.

References fnScanRowConst.

◆ SetPointId()

virtual void CbmTrdModuleSim::SetPointId ( Int_t id)
inlinevirtualinherited

Definition at line 75 of file CbmTrdModuleSim.h.

References CbmTrdModuleSim::fPointId.

◆ SetPositionMC()

virtual void CbmTrdModuleSim::SetPositionMC ( Double_t pos[3])
inlinevirtualinherited

Definition at line 79 of file CbmTrdModuleSim.h.

References CbmTrdModuleSim::fXYZ, and pos.

Referenced by CbmTrdModuleSim2D::MakeDigi(), and MakeDigi().

◆ SetPulseMode()

void CbmTrdModuleSimR::SetPulseMode ( Bool_t pulsed = true)

Definition at line 1736 of file CbmTrdModuleSimR.cxx.

References fPulseSwitch.

◆ SetPulsePars()

void CbmTrdModuleSimR::SetPulsePars ( Int_t mode)

Definition at line 1721 of file CbmTrdModuleSimR.cxx.

References frecostart, and frecostop.

Referenced by CbmTrdModuleSimR().

◆ SetQA()

void CbmTrdModuleSimR::SetQA ( CbmTrdCheckUtil * qa)
inlinevirtual

Implements CbmTrdModuleSim.

Definition at line 56 of file CbmTrdModuleSimR.h.

References fQA.

◆ SetRadiator()

virtual void CbmTrdModuleSim::SetRadiator ( std::shared_ptr< CbmTrdRadiator > radiator)
inlinevirtualinherited

Set the Radiator.

Parameters
radiatorDefintion of the radiator to be used for this module

Definition at line 77 of file CbmTrdModuleSim.h.

References CbmTrdModuleSim::fRadiator.

◆ SetSpadicResponse()

void CbmTrdModuleSimR::SetSpadicResponse ( Double_t calibration,
Double_t tau )

◆ SetTimeSysOffset()

virtual void CbmTrdModuleSim::SetTimeSysOffset ( int dt)
inlinevirtualinherited

Definition at line 89 of file CbmTrdModuleSim.h.

References CbmTrdModuleSim::fTimeSysOffset.

◆ SetTriggerThreshold()

void CbmTrdModuleSimR::SetTriggerThreshold ( Double_t minCharge)
inline

Definition at line 46 of file CbmTrdModuleSimR.h.

References fMinimumChargeTH.

Member Data Documentation

◆ fAdcNoise

Int_t CbmTrdModuleSimR::fAdcNoise
private

Definition at line 130 of file CbmTrdModuleSimR.h.

Referenced by AddNoiseADC().

◆ fAddCrosstalk

Bool_t CbmTrdModuleSimR::fAddCrosstalk
private

Definition at line 126 of file CbmTrdModuleSimR.h.

Referenced by AddCrosstalk().

◆ fAddress

Double_t CbmTrdModuleSimR::fAddress
private

Definition at line 115 of file CbmTrdModuleSimR.h.

◆ fAnalogBuffer

std::map<Int_t, std::vector<std::pair<CbmTrdDigi*, CbmMatch*> > > CbmTrdModuleSimR::fAnalogBuffer
private

Definition at line 156 of file CbmTrdModuleSimR.h.

Referenced by AddDigitoBuffer(), and ProcessBuffer().

◆ fAsicPar

◆ fBuffer

std::map<Int_t, std::vector<std::pair<CbmTrdDigi*, CbmMatch*> > > CbmTrdModuleSim::fBuffer
protectedinherited

Local digits buffer as function of time for each TRD channel in the module.

Definition at line 107 of file CbmTrdModuleSim.h.

Referenced by CbmTrdModuleSim2D::AddDigi(), CbmTrdModuleSim2D::DumpBuffer(), and CbmTrdModuleSim2D::FlushBuffer().

◆ fCalibration

Double_t CbmTrdModuleSimR::fCalibration = 35. / 1.1107 / 0.8 * 1.5
private

◆ fChmbPar

const CbmTrdParModGas* CbmTrdModuleAbstract::fChmbPar = nullptr
protectedinherited

detection description (HV, drift) of module

Definition at line 94 of file CbmTrdModuleAbstract.h.

Referenced by CbmTrdModuleSim2D::AddDigi(), CbmTrdModuleSim2D::MakeDigi(), and CbmTrdModuleAbstract::SetChmbPar().

◆ fClipLevel

Int_t CbmTrdModuleSimR::fClipLevel = 500
private

Definition at line 139 of file CbmTrdModuleSimR.h.

Referenced by AddToPulse(), CheckMulti(), MakePulse(), and ProcessPulseBuffer().

◆ fClipping

Bool_t CbmTrdModuleSimR::fClipping
private

Definition at line 127 of file CbmTrdModuleSimR.h.

Referenced by AddToPulse(), CheckMulti(), and MakePulse().

◆ fCollectTime

Double_t CbmTrdModuleSimR::fCollectTime
private

Definition at line 119 of file CbmTrdModuleSimR.h.

Referenced by CbmTrdModuleSimR(), CheckBuffer(), CheckTime(), and CleanUp().

◆ fCrosstalkLevel

Double_t CbmTrdModuleSimR::fCrosstalkLevel
private

Definition at line 132 of file CbmTrdModuleSimR.h.

Referenced by AddCrosstalk().

◆ fCurrentTime

Double_t CbmTrdModuleSimR::fCurrentTime
private

◆ fDebug

Bool_t CbmTrdModuleSimR::fDebug = true
private

◆ fDigiMap

std::map<Int_t, std::pair<CbmTrdDigi*, CbmMatch*> > CbmTrdModuleSim::fDigiMap
protectedinherited

Temporary storage for complete digis for each CBM address.

Definition at line 105 of file CbmTrdModuleSim.h.

Referenced by AddDigi(), CbmTrdModuleSim::GetDigiMap(), ProcessBuffer(), and ProcessPulseBuffer().

◆ fDigiPar

◆ fDigitizer

CbmTrdDigitizer* CbmTrdModuleSim::fDigitizer
protectedinherited

◆ fDistributionMode

Int_t CbmTrdModuleSimR::fDistributionMode
private

Definition at line 131 of file CbmTrdModuleSimR.h.

Referenced by DistributeCharge(), MakeDigi(), and SetDist().

◆ fDriftStart

Double_t CbmTrdModuleSimR::fDriftStart = 0
private

Definition at line 154 of file CbmTrdModuleSimR.h.

Referenced by MakeDigi().

◆ fDriftTime

TH2D* CbmTrdModuleSimR::fDriftTime = NULL
private

Definition at line 168 of file CbmTrdModuleSimR.h.

Referenced by AddDrifttime(), and CbmTrdModuleSimR().

◆ fepoints

Int_t CbmTrdModuleSimR::fepoints
private

◆ fEReco

Double_t CbmTrdModuleSimR::fEReco = 0.
private

Definition at line 106 of file CbmTrdModuleSimR.h.

Referenced by SetSpadicResponse().

◆ fEventId

Int_t CbmTrdModuleSim::fEventId
protectedinherited

◆ fEventTime

Double_t CbmTrdModuleSimR::fEventTime
private

Definition at line 117 of file CbmTrdModuleSimR.h.

Referenced by AddDigitoPulseBuffer(), CheckMulti(), and MakeDigi().

◆ fGainPar

const CbmTrdParModGain* CbmTrdModuleAbstract::fGainPar = nullptr
protectedinherited

Analog to digital conversion for module.

Definition at line 96 of file CbmTrdModuleAbstract.h.

Referenced by CbmTrdModuleAbstract::SetGainPar().

◆ fGamma

Double_t CbmTrdModuleSimR::fGamma = 0.
private

Definition at line 144 of file CbmTrdModuleSimR.h.

Referenced by GetStep(), GetTotalSteps(), and SetGamma().

◆ fGeoPar

const CbmTrdParModGeo* CbmTrdModuleAbstract::fGeoPar = nullptr
protectedinherited

◆ fInputId

Int_t CbmTrdModuleSim::fInputId
protectedinherited

◆ fLastEvent

Int_t CbmTrdModuleSimR::fLastEvent = 0
private

Definition at line 135 of file CbmTrdModuleSimR.h.

Referenced by MakeDigi().

◆ fLastEventTime

Double_t CbmTrdModuleSimR::fLastEventTime
private

Definition at line 116 of file CbmTrdModuleSimR.h.

Referenced by MakeDigi(), and NoiseTime().

◆ fLastPoint

Int_t CbmTrdModuleSimR::fLastPoint = 0
private

Definition at line 134 of file CbmTrdModuleSimR.h.

Referenced by MakeDigi().

◆ fLastTime

Double_t CbmTrdModuleSimR::fLastTime
private

Definition at line 118 of file CbmTrdModuleSimR.h.

Referenced by MakeDigi().

◆ fLayerId

Char_t CbmTrdModuleAbstract::fLayerId = -1
protectedinherited

◆ fLinkQA

std::map<Int_t, std::vector<std::map<TString, Int_t> > > CbmTrdModuleSimR::fLinkQA
private

Definition at line 161 of file CbmTrdModuleSimR.h.

Referenced by AddDigitoPulseBuffer(), CheckMulti(), and ProcessPulseBuffer().

◆ fMaxBin

Int_t CbmTrdModuleSimR::fMaxBin = 2 + fPresamples
private

Definition at line 142 of file CbmTrdModuleSimR.h.

Referenced by CheckTrigger(), GetMultiBin(), MakeDigi(), and ProcessPulseBuffer().

◆ fMCBuffer

std::map<Int_t, std::vector<std::vector<Int_t> > > CbmTrdModuleSimR::fMCBuffer
private

Definition at line 163 of file CbmTrdModuleSimR.h.

Referenced by AddDigitoPulseBuffer(), CheckMulti(), CleanUp(), and FlushBuffer().

◆ fMCQA

std::map<Int_t, Double_t> CbmTrdModuleSimR::fMCQA
private

Definition at line 162 of file CbmTrdModuleSimR.h.

Referenced by AddToPulse(), MakePulse(), and ProcessPulseBuffer().

◆ fMessageConverter

CbmTrdRawToDigiR* CbmTrdModuleSimR::fMessageConverter = NULL
private

◆ fMinBin

Int_t CbmTrdModuleSimR::fMinBin = 0 + fPresamples
private

Definition at line 143 of file CbmTrdModuleSimR.h.

Referenced by MakeDigi(), and ProcessPulseBuffer().

◆ fMinDrift

Double_t CbmTrdModuleSimR::fMinDrift = 12.5
private

Definition at line 145 of file CbmTrdModuleSimR.h.

Referenced by ProcessPulseBuffer().

◆ fMinimumChargeTH

Double_t CbmTrdModuleSimR::fMinimumChargeTH
private

Definition at line 113 of file CbmTrdModuleSimR.h.

Referenced by MakeDigi(), ScanPadPlane(), and SetTriggerThreshold().

◆ fModAddress

◆ fMultiBuffer

std::map<Int_t, std::pair<Double_t, Int_t> > CbmTrdModuleSimR::fMultiBuffer
private

◆ fnClusterConst

Int_t CbmTrdModuleSimR::fnClusterConst
private

Definition at line 120 of file CbmTrdModuleSimR.h.

Referenced by MakeDigi(), and SetNCluster().

◆ fnScanRowConst

Int_t CbmTrdModuleSimR::fnScanRowConst
private

Definition at line 121 of file CbmTrdModuleSimR.h.

Referenced by ScanPadPlane(), and SetPadPlaneScanArea().

◆ fPointId

Int_t CbmTrdModuleSim::fPointId
protectedinherited

◆ fPresamples

Int_t CbmTrdModuleSimR::fPresamples = 2
private

Definition at line 140 of file CbmTrdModuleSimR.h.

Referenced by AddToPulse(), CheckMulti(), MakeDigi(), and MakePulse().

◆ fPrintPulse

Bool_t CbmTrdModuleSimR::fPrintPulse
private

Definition at line 124 of file CbmTrdModuleSimR.h.

Referenced by CheckBuffer(), CheckTime(), FlushBuffer(), MakeDigi(), and ProcessPulseBuffer().

◆ fPulseBuffer

std::map<Int_t, std::pair<std::vector<Double_t>, CbmMatch*> > CbmTrdModuleSimR::fPulseBuffer
private

◆ fPulseSwitch

Bool_t CbmTrdModuleSimR::fPulseSwitch
private

◆ fQA

CbmTrdCheckUtil* CbmTrdModuleSimR::fQA = NULL
private

◆ fQAPos_out

Float_t CbmTrdModuleSimR::fQAPos_out[3] = {0., 0., 0.}
private

Definition at line 165 of file CbmTrdModuleSimR.h.

Referenced by MakeDigi().

◆ fQAPosition

Float_t CbmTrdModuleSimR::fQAPosition[3] = {0., 0., 0.}
private

Definition at line 164 of file CbmTrdModuleSimR.h.

Referenced by AddDigitoPulseBuffer(), and MakeDigi().

◆ fRadiator

std::shared_ptr<CbmTrdRadiator> CbmTrdModuleSim::fRadiator = nullptr
protectedinherited

Pointer to digitizer.

TR description for radiator

Definition at line 102 of file CbmTrdModuleSim.h.

Referenced by CbmTrdModuleSim2D::MakeDigi(), MakeDigi(), and CbmTrdModuleSim::SetRadiator().

◆ fRecoMode

Int_t CbmTrdModuleSimR::fRecoMode = 2
private

Definition at line 109 of file CbmTrdModuleSimR.h.

Referenced by CbmTrdModuleSimR().

◆ frecostart

Int_t CbmTrdModuleSimR::frecostart = 2
private

Definition at line 136 of file CbmTrdModuleSimR.h.

Referenced by MakeDigi(), SetPulsePars(), and SetSpadicResponse().

◆ frecostop

Int_t CbmTrdModuleSimR::frecostop = 5
private

Definition at line 137 of file CbmTrdModuleSimR.h.

Referenced by MakeDigi(), SetPulsePars(), and SetSpadicResponse().

◆ fRotation

UChar_t CbmTrdModuleAbstract::fRotation = 0
protectedinherited

rotation angle for current module

Definition at line 90 of file CbmTrdModuleAbstract.h.

Referenced by CbmTrdModuleAbstract::CbmTrdModuleAbstract().

◆ fShapingOrder

Int_t CbmTrdModuleSimR::fShapingOrder = 1
private

Definition at line 141 of file CbmTrdModuleSimR.h.

Referenced by CalcResponse(), and MakeDigi().

◆ fShiftQA

std::map<Int_t, Double_t> CbmTrdModuleSimR::fShiftQA
private

Definition at line 160 of file CbmTrdModuleSimR.h.

Referenced by MakePulse(), and ProcessPulseBuffer().

◆ fSigma_noise_keV

Double_t CbmTrdModuleSimR::fSigma_noise_keV
private

Definition at line 112 of file CbmTrdModuleSimR.h.

Referenced by AddNoise(), and SetNoiseLevel().

◆ fTau

Double_t CbmTrdModuleSimR::fTau = 120.0
private

Definition at line 107 of file CbmTrdModuleSimR.h.

Referenced by CalcResponse(), CbmTrdModuleSimR(), MakeDigi(), and SetSpadicResponse().

◆ fTimeBuffer

std::map<Int_t, Double_t> CbmTrdModuleSimR::fTimeBuffer
private

◆ fTimeShift

Bool_t CbmTrdModuleSimR::fTimeShift
private

Definition at line 125 of file CbmTrdModuleSimR.h.

Referenced by AddToPulse(), CheckMulti(), and MakePulse().

◆ fTimeSlice

CbmTimeSlice* CbmTrdModuleSimR::fTimeSlice = NULL
private

link to CBM time slice

Definition at line 146 of file CbmTrdModuleSimR.h.

Referenced by CbmTrdModuleSimR(), CleanUp(), FlushBuffer(), and ProcessPulseBuffer().

◆ fTimeSysOffset

Int_t CbmTrdModuleSim::fTimeSysOffset = 0
protectedinherited

Time offset of TRD digis to align them with other detectors (Bmon, ToF)

Definition at line 96 of file CbmTrdModuleSim.h.

Referenced by CbmTrdModuleSim2D::FlushBuffer(), and CbmTrdModuleSim::SetTimeSysOffset().

◆ fTriggerSlope

Double_t CbmTrdModuleSimR::fTriggerSlope = 12.0
private

Definition at line 108 of file CbmTrdModuleSimR.h.

Referenced by CheckTrigger(), and GetMultiBin().

◆ fXYZ

Double_t CbmTrdModuleSim::fXYZ[3]
protectedinherited

◆ nofElectrons

Int_t CbmTrdModuleSimR::nofElectrons
private

Definition at line 150 of file CbmTrdModuleSimR.h.

Referenced by GetCounters(), MakeDigi(), and ResetCounters().

◆ nofLatticeHits

Int_t CbmTrdModuleSimR::nofLatticeHits
private

Definition at line 151 of file CbmTrdModuleSimR.h.

Referenced by GetCounters(), MakeDigi(), and ResetCounters().

◆ nofPointsAboveThreshold

Int_t CbmTrdModuleSimR::nofPointsAboveThreshold
private

Definition at line 152 of file CbmTrdModuleSimR.h.

Referenced by GetCounters(), MakeDigi(), and ResetCounters().


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