CbmRoot
CbmTofDigitize Class Referenceabstract

CBM ToF digitizer using beam data distributions as hit/cluster models. More...

#include <CbmTofDigitize.h>

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

Public Types

typedef std::pair< std::unique_ptr< CbmTofDigi >, std::unique_ptr< CbmMatch > > Data
 Short for data to be handled (pair of digi and match) More...
 

Public Member Functions

 CbmTofDigitize ()
 Constructor. More...
 
 CbmTofDigitize (const char *name, Int_t verbose=1)
 Constructor. More...
 
virtual ~CbmTofDigitize ()
 Destructor. More...
 
ECbmModuleId GetSystemId () const
 Detector system ID. More...
 
virtual InitStatus Init ()
 Inherited from FairTask. More...
 
virtual void SetParContainers ()
 Inherited from FairTask. More...
 
virtual void Exec (Option_t *option)
 Inherited from FairTask. More...
 
virtual void Finish ()
 Inherited from FairTask. More...
 
void SetInputFileName (TString FileName)
 
Bool_t SetHistoFileName (TString sFilenameIn="./tofDigiBdf.hst.root")
 
void SetMonitorHistograms (Bool_t bMonitor=kTRUE)
 
void UseMcTrackMonitoring (Bool_t bMcTrkMonitor=kTRUE)
 
void AllowPointsWithoutTrack (Bool_t bAllow=kTRUE)
 
void SetDigiTimeConvFactor (Double_t dfac)
 
Bool_t CheckOutput ()
 Check the output for being time-sorted. More...
 
void ClearOutput ()
 Clear the output arrays. More...
 
ULong64_t FillTimeSlice (CbmTimeSlice *timeSlice)
 Move data from the DaqBuffer into the current time slice. More...
 
ULong64_t FillTimeSlice (CbmTimeSlice *timeSlice, Double_t fillTime)
 Move data from the DaqBuffer into the current time slice. More...
 
ULong64_t GetDaqBufferSize () const
 Size of DAQ buffer @value Number of data in the DAQ buffer. More...
 
virtual ULong64_t GetDaqBufferSize () const =0
 Size of DAQ buffer @value Number of data in the DAQ buffer. More...
 
std::string GetDaqBufferStatus () const
 Debug output of DAQ buffer status @value String with status of DAQ buffer. More...
 
virtual std::string GetDaqBufferStatus () const =0
 Status of DAQ buffer @value Status string of the DAQ buffer. More...
 
Double_t GetDaqBufferTimeFirst () const
 Time stamp of first data in the DAQ buffer @value Time stamp of first data in the DAQ buffer. More...
 
virtual Double_t GetDaqBufferTimeFirst () const =0
 Time of first datum in DAQ buffer @value Time of first datum in DAQ buffer. More...
 
Double_t GetDaqBufferTimeLast () const
 Time stamp of last data in the DAQ buffer @value Time stamp of last data in the DAQ buffer. More...
 
virtual Double_t GetDaqBufferTimeLast () const =0
 Time of last datum in DAQ buffer @value Time of last datum in DAQ buffer. More...
 
void RegisterOutput ()
 Register the output arrays. More...
 
void SendData (CbmTofDigi *digi, CbmMatch *match=nullptr)
 Send a digi and the corresponding match object to the DAQ. More...
 
virtual void FillCustomData (Double_t, Bool_t=kTRUE)
 Fill custom data into time slice. More...
 
void GetEventInfo ()
 Get event information. More...
 
Double_t GetEventTime () const
 Current event time @value Start time of current event [ns]. More...
 
void SetCreateMatches (Bool_t choice=kTRUE)
 Set creation of links to MC. More...
 
void SetEventMode (Bool_t choice=kTRUE)
 Set event-by-event mode. More...
 
void SetProduceNoise (Bool_t choice=kTRUE)
 Set production of inter-event noise. More...
 

Protected Attributes

Bool_t fEventMode
 
Bool_t fProduceNoise
 Flag for event-by-event mode. More...
 
Bool_t fCreateMatches
 Flag for production of inter-event noise. More...
 
Int_t fCurrentInput
 Flag for creation of links to MC. More...
 
Int_t fCurrentEvent
 Number of current input. More...
 
Int_t fCurrentMCEntry
 Number of current MC event. More...
 
Double_t fCurrentEventTime
 Number of current MC entry. More...
 

Private Member Functions

 CbmTofDigitize (const CbmTofDigitize &)
 Copy constructor. More...
 
CbmTofDigitizeoperator= (const CbmTofDigitize &)
 Copy operator. More...
 
Bool_t RegisterInputs ()
 Recover pointer on input TClonesArray: TofPoints, ... More...
 
Bool_t InitParameters ()
 Initialize other parameters not included in parameter classes. More...
 
Bool_t LoadBeamtimeValues ()
 Load the beamtime values designed in the parameters: histograms or single values. More...
 
Bool_t CreateHistos ()
 
Bool_t FillHistos ()
 
Bool_t WriteHistos ()
 
Bool_t DeleteHistos ()
 
Bool_t MergeSameChanDigis ()
 Merge the digis on he same readout channel. More...
 
Double_t GenerateClusterRadius (Int_t iSmType, Int_t iRpc)
 Generate a value for the cluster radius from the beamtime data corresponding. More...
 
Bool_t DigitizeDirectClusterSize ()
 Convert TofPoints in input TClonesArray to Tof Digis using directly the. More...
 
Bool_t DigitizeFlatDisc ()
 Convert TofPoints in input TClonesArray to Tof Digis using an approximation of the. More...
 
Double_t ComputeClusterAreaOnChannel (Int_t iChanId, Double_t dClustRadius, Double_t dClustCentX, Double_t dClustCentY)
 Compute geometrical intersection area of a cluster and a channel. More...
 
Bool_t DigitizeGaussCharge ()
 Convert TofPoints in input TClonesArray to Tof Digis using an approximation of the. More...
 
Double_t TriangleArea (Double_t dXa, Double_t dYa, Double_t dXb, Double_t dYb, Double_t dXc, Double_t dYc)
 Compute triangle area from its corners. More...
 
Double_t DiscSectionArea (Double_t dDiscRadius, Double_t dDistBaseToCenter)
 Compute area of a disc section from the disc radius and the distance of the. More...
 
Double_t CircleIntersectPosX (Int_t iChanId, Double_t dClustRadius, Double_t dClustCentX, Double_t dClustCentY, Bool_t bUpperSide)
 Compute the x position of the intersection of a circle with the upper or. More...
 
Double_t CircleIntersectPosY (Int_t iChanId, Double_t dClustRadius, Double_t dClustCentX, Double_t dClustCentY, Bool_t bRightSide)
 Compute the y position of the intersection of a circle with the left or right edge of a channel. Assume single intersection in edge range! More...
 
Double_t DistanceCircleToBase (Double_t dClustRadius, Double_t dBaseXa, Double_t dBaseYa, Double_t dBaseXb, Double_t dBaseYb)
 Compute the distance from the cluster center to the base of a disc. More...
 
Bool_t CompareTimes (CbmTofDigi *p1, CbmTofDigi *p2)
 
 ClassDef (CbmTofDigitize, 1)
 
ULong64_t FillTimeSlice (CbmTimeSlice *timeSlice, Bool_t checkLimit, Double_t fillTime)
 Move data from the DaqBuffer into the current time slice. More...
 

Private Attributes

Double_t fdFeeGainSigma
 
Double_t fdFeeTotThr
 
Double_t fdTimeResElec
 
Double_t fdSignalPropSpeed
 
std::vector< TH1 * > fh1ClusterSizeProb
 
std::vector< TH1 * > fh1ClusterTotProb
 
std::vector< std::vector< std::vector< Double_t > > > fvdSignalVelocityRpc
 
std::vector< std::vector< std::vector< Double_t > > > fdChannelGain
 
CbmTofGeoHandlerfGeoHandler
 
CbmTofDetectorIdfTofId
 
CbmTofDigiParfDigiPar
 
CbmTofCellfChannelInfo
 
CbmTofDigiBdfParfDigiBdfPar
 
Int_t fiNbElecChTot
 
std::vector< std::vector< std::vector< Int_t > > > fvRpcChOffs
 
TClonesArray * fTofPointsColl
 
TClonesArray * fMcTracksColl
 
std::vector< std::vector< std::vector< std::vector< std::pair< CbmTofDigi *, CbmMatch * > > > > > fStorDigi
 
std::vector< std::vector< std::vector< std::vector< Int_t > > > > fStorDigiMatch
 
std::vector< std::vector< ULong64_t > > fvlTrckChAddr
 
std::vector< std::vector< ULong64_t > > fvlTrckRpcAddr
 
std::vector< std::vector< Double_t > > fvlTrckRpcTime
 
Int_t fiNbDigis
 
TString fsHistoOutFilename
 
TH1 * fhTofPointsPerTrack
 
TH2 * fhTofPtsInTrkVsGapInd
 
TH2 * fhTofPtsInTrkVsGapIndPrm
 
TH2 * fhTofPtsInTrkVsGapIndSec
 
TH2 * fhTofPtsPosVsGap [10]
 
TH1 * fhEvtProcTime
 
TH1 * fhDigiMergeTime
 
TH1 * fhDigiNbElecCh
 
TH2 * fhProcTimeEvtSize
 
TH1 * fhMeanDigiPerTrack
 
TH1 * fhMeanFiredPerTrack
 
TH1 * fhPtTime
 
TH1 * fhDigiTime
 
TH1 * fhDigiTimeRes
 
TH2 * fhDigiTimeResB
 
TH1 * fhToTDist
 
TH1 * fhElecChOccup
 
TH1 * fhMultiDigiEvtElCh
 
TH2 * fhNbDigiEvtElCh
 
TH2 * fhNbTracksEvtElCh
 
TH1 * fhFiredEvtElCh
 
TH1 * fhMultiProbElCh
 
TTimeStamp fStart
 
TTimeStamp fStop
 
Double_t fdDigitizeTime
 
Double_t fdMergeTime
 
TStopwatch fTimer
 ROOT timer. More...
 
Int_t fiNofEvents
 Total number of events processed. More...
 
Double_t fdNofTofMcTrkTot
 Total number of MC tracks with TOF points. More...
 
Double_t fdNofPointsTot
 Total number of points processed. More...
 
Double_t fdNofDigisTot
 Total number of digis created. More...
 
Double_t fdTimeTot
 Total execution time. More...
 
TString fsBeamInputFile
 
Bool_t fbMonitorHistos
 
Bool_t fbMcTrkMonitor
 
Bool_t fbTimeBasedOutput
 
Bool_t fbAllowPointsWithoutTrack
 
Double_t fdDigiTimeConvFactor
 
TString fBranchName
 Output branch name. More...
 
std::vector< CbmTofDigi > * fDigis
 
std::vector< CbmMatch > * fMatches
 Output array (Digi) More...
 
std::multimap< double, DatafDaqBuffer
 Output array (CbmMatch) More...
 

Detailed Description

CBM ToF digitizer using beam data distributions as hit/cluster models.

Author
Pierre-Alain Loizeau loize.nosp@m.au@p.nosp@m.hysi..nosp@m.uni-.nosp@m.heide.nosp@m.lber.nosp@m.g.de
Version
1.0

Definition at line 33 of file CbmTofDigitize.h.

Member Typedef Documentation

◆ Data

typedef std::pair<std::unique_ptr<CbmTofDigi >, std::unique_ptr<CbmMatch> > CbmDigitize< CbmTofDigi >::Data
inherited

Short for data to be handled (pair of digi and match)

Definition at line 43 of file CbmDigitize.h.

Constructor & Destructor Documentation

◆ CbmTofDigitize() [1/3]

CbmTofDigitize::CbmTofDigitize ( )

Constructor.

Definition at line 85 of file CbmTofDigitize.cxx.

◆ CbmTofDigitize() [2/3]

CbmTofDigitize::CbmTofDigitize ( const char *  name,
Int_t  verbose = 1 
)

Constructor.

Definition at line 154 of file CbmTofDigitize.cxx.

◆ ~CbmTofDigitize()

CbmTofDigitize::~CbmTofDigitize ( )
virtual

Destructor.

Definition at line 223 of file CbmTofDigitize.cxx.

References fGeoHandler.

◆ CbmTofDigitize() [3/3]

CbmTofDigitize::CbmTofDigitize ( const CbmTofDigitize )
private

Copy constructor.

Member Function Documentation

◆ AllowPointsWithoutTrack()

void CbmTofDigitize::AllowPointsWithoutTrack ( Bool_t  bAllow = kTRUE)
inline

Definition at line 85 of file CbmTofDigitize.h.

References fbAllowPointsWithoutTrack.

◆ CheckOutput()

Bool_t CbmDigitize< CbmTofDigi >::CheckOutput
inlinevirtualinherited

Check the output for being time-sorted.

Implements CbmDigitizeBase.

Definition at line 63 of file CbmDigitize.h.

◆ CircleIntersectPosX()

Double_t CbmTofDigitize::CircleIntersectPosX ( Int_t  iChanId,
Double_t  dClustRadius,
Double_t  dClustCentX,
Double_t  dClustCentY,
Bool_t  bUpperSide 
)
private

Compute the x position of the intersection of a circle with the upper or.

lower edge of a channel. Assume 1 single intersection exists in edge range!

=> Please check/insure before that it is the case!

Returns 0 if no intersection (neg. root) or 2 intersections

Definition at line 4685 of file CbmTofDigitize.cxx.

References fChannelInfo, fDigiPar, CbmTofDigiPar::GetCell(), CbmTofCell::GetSizex(), and CbmTofCell::GetSizey().

Referenced by ComputeClusterAreaOnChannel().

◆ CircleIntersectPosY()

Double_t CbmTofDigitize::CircleIntersectPosY ( Int_t  iChanId,
Double_t  dClustRadius,
Double_t  dClustCentX,
Double_t  dClustCentY,
Bool_t  bRightSide 
)
private

Compute the y position of the intersection of a circle with the left or right edge of a channel. Assume single intersection in edge range!

=> Please check/insure before that it is the case!

Returns 0 if no intersection (neg. root) or 2 intersections

Definition at line 4758 of file CbmTofDigitize.cxx.

References fChannelInfo, fDigiPar, CbmTofDigiPar::GetCell(), CbmTofCell::GetSizex(), and CbmTofCell::GetSizey().

Referenced by ComputeClusterAreaOnChannel().

◆ ClassDef()

CbmTofDigitize::ClassDef ( CbmTofDigitize  ,
 
)
private

◆ ClearOutput()

void CbmDigitize< CbmTofDigi >::ClearOutput
inlinevirtualinherited

Clear the output arrays.

Implements CbmDigitizeBase.

Definition at line 84 of file CbmDigitize.h.

◆ CompareTimes()

Bool_t CbmTofDigitize::CompareTimes ( CbmTofDigi p1,
CbmTofDigi p2 
)
private

Definition at line 4864 of file CbmTofDigitize.cxx.

References CbmTofDigi::GetTime().

◆ ComputeClusterAreaOnChannel()

Double_t CbmTofDigitize::ComputeClusterAreaOnChannel ( Int_t  iChanId,
Double_t  dClustRadius,
Double_t  dClustCentX,
Double_t  dClustCentY 
)
private

◆ CreateHistos()

◆ DeleteHistos()

◆ DigitizeDirectClusterSize()

Bool_t CbmTofDigitize::DigitizeDirectClusterSize ( )
private

Convert TofPoints in input TClonesArray to Tof Digis using directly the.

cluster size distribution from beamtime. The charge is encoded as ToT in ns and

shared among strips using a gauss distribution centered on the TofPoints.

Works only for strip RPC !!!!!

Generate higher cluster size than input as after digi merging a combination of strips

fired by each gap remains (e.g. size 1.5, 8 gaps can make 0 1 2l 2r 1 1 0 2l, ending in

size 3) => FIXME!

Returns the number of processed TofPoints

Definition at line 1497 of file CbmTofDigitize.cxx.

References fbAllowPointsWithoutTrack, fbMcTrkMonitor, fChannelInfo, fdChannelGain, fDigiBdfPar, fDigiPar, fdTimeResElec, CbmDigitizeBase::fEventMode, fGeoHandler, fh1ClusterSizeProb, fh1ClusterTotProb, fMcTracksColl, fStorDigi, fStorDigiMatch, fTofId, fTofPointsColl, fvdSignalVelocityRpc, fvlTrckChAddr, fvlTrckRpcAddr, fvlTrckRpcTime, CbmTofDigiPar::GetCell(), CbmTofGeoHandler::GetCell(), CbmTofGeoHandler::GetCellId(), CbmTofDigiBdfPar::GetChanOrient(), CbmTofDigiBdfPar::GetChanType(), CbmTofGeoHandler::GetCounter(), CbmTofDigiBdfPar::GetFeeThreshold(), CbmTofGeoHandler::GetGap(), CbmTofDigiBdfPar::GetGapEfficiency(), CbmTofGeoHandler::GetGeoVersion(), CbmMCTrack::GetMotherId(), CbmTofDigiBdfPar::GetNbChan(), CbmTofDigiBdfPar::GetNbRpc(), CbmTofDigiBdfPar::GetNbSm(), CbmTofDigiBdfPar::GetNbSmTypes(), CbmTofDigiPar::GetNode(), CbmMCTrack::GetNPoints(), CbmTofDigiBdfPar::GetResolution(), CbmTofCell::GetSizex(), CbmTofCell::GetSizey(), CbmTofGeoHandler::GetSModule(), CbmTofGeoHandler::GetSMType(), CbmTofDigiBdfPar::GetStartTimeRes(), CbmTofAddress::GetUniqueAddress(), CbmTofCell::GetX(), CbmTofCell::GetY(), CbmTofCell::GetZ(), i, k14a, kiNbIntPts, kTof, xMath::Pi(), CbmTofDetectorId::SetDetectorInfo(), CbmTofDigiBdfPar::UseOneGapPerTrk(), CbmTofDigiBdfPar::UseOnlyPrimaries(), and x.

Referenced by Exec().

◆ DigitizeFlatDisc()

Bool_t CbmTofDigitize::DigitizeFlatDisc ( )
private

Convert TofPoints in input TClonesArray to Tof Digis using an approximation of the.

cluster charge distribution by a "Flat disc". The charge is encoded as ToT in ns.

Returns the number of processed TofPoints

Definition at line 2084 of file CbmTofDigitize.cxx.

References ComputeClusterAreaOnChannel(), fbAllowPointsWithoutTrack, fbMcTrkMonitor, fbTimeBasedOutput, fChannelInfo, fdChannelGain, fDigiBdfPar, fDigiPar, fdTimeResElec, fGeoHandler, fh1ClusterTotProb, fMcTracksColl, fStorDigi, fStorDigiMatch, fTofId, fTofPointsColl, fvdSignalVelocityRpc, fvlTrckChAddr, fvlTrckRpcAddr, fvlTrckRpcTime, GenerateClusterRadius(), CbmTofDigiPar::GetCell(), CbmTofGeoHandler::GetCell(), CbmTofGeoHandler::GetCellId(), CbmTofDigiBdfPar::GetChanOrient(), CbmTofDigiBdfPar::GetChanType(), CbmTofGeoHandler::GetCounter(), CbmTofDigiBdfPar::GetFeeThreshold(), CbmTofGeoHandler::GetGap(), CbmTofDigiBdfPar::GetGapEfficiency(), CbmTofGeoHandler::GetGeoVersion(), CbmMCTrack::GetMotherId(), CbmTofDigiBdfPar::GetNbChan(), CbmTofDigiBdfPar::GetNbRpc(), CbmTofDigiBdfPar::GetNbSm(), CbmTofDigiBdfPar::GetNbSmTypes(), CbmMCTrack::GetNPoints(), CbmTofDigiBdfPar::GetResolution(), CbmTofCell::GetSizex(), CbmTofCell::GetSizey(), CbmTofGeoHandler::GetSModule(), CbmTofGeoHandler::GetSMType(), CbmTofDigiBdfPar::GetStartTimeRes(), CbmTofAddress::GetUniqueAddress(), CbmTofCell::GetX(), CbmTofCell::GetY(), CbmTofCell::GetZ(), i, k14a, kTof, xMath::Pi(), CbmTofDetectorId::SetDetectorInfo(), CbmTofDigiBdfPar::UseOneGapPerTrk(), and CbmTofDigiBdfPar::UseOnlyPrimaries().

Referenced by Exec().

◆ DigitizeGaussCharge()

Bool_t CbmTofDigitize::DigitizeGaussCharge ( )
private

Convert TofPoints in input TClonesArray to Tof Digis using an approximation of the.

cluster charge distribution by a 2D symetric Gauss function, with the approx. that

sigmaX = sigmaY = cluster size/2 and the following limits:

d(ch. center, cluster) < 3*sigma AND Tot(Ch) > 0.2ns

Returns the number of processed TofPoints

Definition at line 3123 of file CbmTofDigitize.cxx.

References fbAllowPointsWithoutTrack, fbMcTrkMonitor, fbTimeBasedOutput, CbmTofDetectorInfo::fCell, fChannelInfo, fdChannelGain, fDigiBdfPar, fDigiPar, fdTimeResElec, fGeoHandler, fh1ClusterTotProb, fMcTracksColl, fStorDigi, fStorDigiMatch, fTofId, fTofPointsColl, fvdSignalVelocityRpc, fvlTrckChAddr, fvlTrckRpcAddr, fvlTrckRpcTime, GenerateClusterRadius(), CbmTofDigiPar::GetCell(), CbmTofGeoHandler::GetCell(), CbmTofGeoHandler::GetCellId(), CbmTofDigiBdfPar::GetChanOrient(), CbmTofDigiBdfPar::GetChanType(), CbmTofGeoHandler::GetCounter(), CbmTofDigiBdfPar::GetFeeThreshold(), CbmTofGeoHandler::GetGap(), CbmTofDigiBdfPar::GetGapEfficiency(), CbmTofGeoHandler::GetGeoVersion(), CbmMCTrack::GetMotherId(), CbmTofDigiBdfPar::GetNbChan(), CbmTofDigiBdfPar::GetNbRpc(), CbmTofDigiBdfPar::GetNbSm(), CbmTofDigiBdfPar::GetNbSmTypes(), CbmMCTrack::GetNPoints(), CbmTofDigiBdfPar::GetResolution(), CbmTofCell::GetSizex(), CbmTofCell::GetSizey(), CbmTofGeoHandler::GetSModule(), CbmTofGeoHandler::GetSMType(), CbmTofDigiBdfPar::GetStartTimeRes(), CbmTofAddress::GetUniqueAddress(), CbmTofCell::GetX(), CbmTofCell::GetY(), CbmTofCell::GetZ(), k14a, kTof, xMath::Pi(), CbmTofDetectorId::SetDetectorInfo(), CbmTofDigiBdfPar::UseOneGapPerTrk(), and CbmTofDigiBdfPar::UseOnlyPrimaries().

Referenced by Exec().

◆ DiscSectionArea()

Double_t CbmTofDigitize::DiscSectionArea ( Double_t  dDiscRadius,
Double_t  dDistBaseToCenter 
)
private

Compute area of a disc section from the disc radius and the distance of the.

section base to the disc center

Definition at line 4661 of file CbmTofDigitize.cxx.

References xMath::Pi().

Referenced by ComputeClusterAreaOnChannel().

◆ DistanceCircleToBase()

Double_t CbmTofDigitize::DistanceCircleToBase ( Double_t  dClustRadius,
Double_t  dBaseXa,
Double_t  dBaseYa,
Double_t  dBaseXb,
Double_t  dBaseYb 
)
private

Compute the distance from the cluster center to the base of a disc.

section, described by its 2 endpoints.

Assumes that the endpoints are on the circle

=> Please make sure of it before calling this method.

Definition at line 4834 of file CbmTofDigitize.cxx.

Referenced by ComputeClusterAreaOnChannel().

◆ Exec()

◆ FillCustomData()

virtual void CbmDigitizeBase::FillCustomData ( Double_t  ,
Bool_t  = kTRUE 
)
inlinevirtualinherited

Fill custom data into time slice.

Parameters
fillTimeTime until data can be filled
limitIf kTRUE, only data up to fillTime will be treated; otherwise, all.

This method allows the digitizer to implement additional functionality than writing digis and match objects. It will be called from CbmDaq.

Definition at line 68 of file CbmDigitizeBase.h.

◆ FillHistos()

Bool_t CbmTofDigitize::FillHistos ( )
private

Definition at line 880 of file CbmTofDigitize.cxx.

◆ FillTimeSlice() [1/3]

ULong64_t CbmDigitize< CbmTofDigi >::FillTimeSlice ( CbmTimeSlice timeSlice)
inlinevirtualinherited

Move data from the DaqBuffer into the current time slice.

Parameters
timeSlicePointer to current time slice object @value Number of digi objects filled into the time slice.

For regular time slices, all data with time stamp within the interval of the current time slice are moved from the buffer to the time slice. For time slices of type kFlexible or kEvent, all data will be moved.

Implements CbmDigitizeBase.

Definition at line 101 of file CbmDigitize.h.

◆ FillTimeSlice() [2/3]

ULong64_t CbmDigitize< CbmTofDigi >::FillTimeSlice ( CbmTimeSlice timeSlice,
Bool_t  checkLimit,
Double_t  fillTime 
)
inlineprivateinherited

Move data from the DaqBuffer into the current time slice.

Parameters
timeSlicePointer to current time slice object
fillTimeTime up to which data will be moved [ns] @value Number of digi objects filled into the time slice.

For regular time slices, all data with time stamp within the interval of the current time slice are moved from the buffer to the time slice. For time slices of type kFlexible or kEvent, all data will be moved.

If checkLimit is selected, only data with time stamp less than fillTime are moved.

Definition at line 256 of file CbmDigitize.h.

◆ FillTimeSlice() [3/3]

ULong64_t CbmDigitize< CbmTofDigi >::FillTimeSlice ( CbmTimeSlice timeSlice,
Double_t  fillTime 
)
inlinevirtualinherited

Move data from the DaqBuffer into the current time slice.

Parameters
timeSlicePointer to current time slice object
fillTimeTime up to which data will be moved [ns] @value Number of digi objects filled into the time slice.

Move data with time stamp up to fillTime from the buffer to the time slice. For regular time slices, only data with time stamp within the time slice interval will be moved. For time slices of type kFlexible or kEvent, all data up to fillTime will be moved.

Implements CbmDigitizeBase.

Definition at line 118 of file CbmDigitize.h.

◆ Finish()

void CbmTofDigitize::Finish ( )
virtual

◆ GenerateClusterRadius()

Double_t CbmTofDigitize::GenerateClusterRadius ( Int_t  iSmType,
Int_t  iRpc 
)
private

◆ GetDaqBufferSize() [1/2]

ULong64_t CbmDigitize< CbmTofDigi >::GetDaqBufferSize
inlineinherited

Size of DAQ buffer @value Number of data in the DAQ buffer.

Definition at line 128 of file CbmDigitize.h.

◆ GetDaqBufferSize() [2/2]

virtual ULong64_t CbmDigitizeBase::GetDaqBufferSize ( ) const
pure virtualinherited

Size of DAQ buffer @value Number of data in the DAQ buffer.

Implemented in CbmDigitize< Digi >.

◆ GetDaqBufferStatus() [1/2]

std::string CbmDigitize< CbmTofDigi >::GetDaqBufferStatus
inlineinherited

Debug output of DAQ buffer status @value String with status of DAQ buffer.

Definition at line 136 of file CbmDigitize.h.

◆ GetDaqBufferStatus() [2/2]

virtual std::string CbmDigitizeBase::GetDaqBufferStatus ( ) const
pure virtualinherited

Status of DAQ buffer @value Status string of the DAQ buffer.

Implemented in CbmDigitize< Digi >.

◆ GetDaqBufferTimeFirst() [1/2]

Double_t CbmDigitize< CbmTofDigi >::GetDaqBufferTimeFirst
inlineinherited

Time stamp of first data in the DAQ buffer @value Time stamp of first data in the DAQ buffer.

Definition at line 150 of file CbmDigitize.h.

◆ GetDaqBufferTimeFirst() [2/2]

virtual Double_t CbmDigitizeBase::GetDaqBufferTimeFirst ( ) const
pure virtualinherited

Time of first datum in DAQ buffer @value Time of first datum in DAQ buffer.

Implemented in CbmDigitize< Digi >.

◆ GetDaqBufferTimeLast() [1/2]

Double_t CbmDigitize< CbmTofDigi >::GetDaqBufferTimeLast
inlineinherited

Time stamp of last data in the DAQ buffer @value Time stamp of last data in the DAQ buffer.

Definition at line 161 of file CbmDigitize.h.

◆ GetDaqBufferTimeLast() [2/2]

virtual Double_t CbmDigitizeBase::GetDaqBufferTimeLast ( ) const
pure virtualinherited

Time of last datum in DAQ buffer @value Time of last datum in DAQ buffer.

Implemented in CbmDigitize< Digi >.

◆ GetEventInfo()

void CbmDigitizeBase::GetEventInfo ( )
inherited

Get event information.

MC input number, entry number and event time are taken from FairEventHeader and stored in the private data members for convenience. Note that the MC entry number need not coincide with the event number, for instance if the run does not start with the first MC entry, or in the case of mixed MC inputs to digitization.

Definition at line 48 of file CbmDigitizeBase.cxx.

References CbmDigitizeBase::fCurrentEvent, CbmDigitizeBase::fCurrentEventTime, CbmDigitizeBase::fCurrentInput, and CbmDigitizeBase::fCurrentMCEntry.

Referenced by CbmMvdDigitizer::Exec(), CbmPsdSimpleDigitizer::Exec(), CbmRichDigitizer::Exec(), Exec(), CbmMuchDigitizeGem::Exec(), CbmTrdDigitizer::Exec(), and CbmStsDigitize::Exec().

◆ GetEventTime()

Double_t CbmDigitizeBase::GetEventTime ( ) const
inlineinherited

Current event time @value Start time of current event [ns].

Definition at line 107 of file CbmDigitizeBase.h.

References CbmDigitizeBase::fCurrentEventTime.

◆ GetSystemId()

ECbmModuleId CbmTofDigitize::GetSystemId ( ) const
inlinevirtual

Detector system ID.

Returns
Detector system ID [ECbmModuleId]

Implements CbmDigitizeBase.

Definition at line 50 of file CbmTofDigitize.h.

References kTof.

◆ Init()

InitStatus CbmTofDigitize::Init ( )
virtual

◆ InitParameters()

Bool_t CbmTofDigitize::InitParameters ( )
private

Initialize other parameters not included in parameter classes.

Definition at line 370 of file CbmTofDigitize.cxx.

References fDigiPar, fGeoHandler, fTofId, CbmTofDigiPar::GetNrOfModules(), CbmTofCreateDigiPar::Init(), CbmTofGeoHandler::Init(), k12b, and k14a.

Referenced by Init().

◆ LoadBeamtimeValues()

◆ MergeSameChanDigis()

◆ operator=()

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

Copy operator.

◆ RegisterInputs()

Bool_t CbmTofDigitize::RegisterInputs ( )
private

Recover pointer on input TClonesArray: TofPoints, ...

Definition at line 351 of file CbmTofDigitize.cxx.

References fMcTracksColl, and fTofPointsColl.

Referenced by Init().

◆ RegisterOutput()

void CbmDigitize< CbmTofDigi >::RegisterOutput
inlineinherited

Register the output arrays.

Arrays for the digis and the match objects will be created and registered as output to the ROOT tree. The current implementation uses std::vector as container.

Definition at line 175 of file CbmDigitize.h.

◆ SendData()

void CbmDigitize< CbmTofDigi >::SendData ( CbmTofDigi digi,
CbmMatch match = nullptr 
)
inlineinherited

Send a digi and the corresponding match object to the DAQ.

Parameters
digiPointer to digi object (template parameter)
matchPointer to match object

TODO: The interface should be unique pointers, meaning that the digitisers have to create objects by unique pointers from the start.

Definition at line 219 of file CbmDigitize.h.

◆ SetCreateMatches()

void CbmDigitizeBase::SetCreateMatches ( Bool_t  choice = kTRUE)
inlineinherited

Set creation of links to MC.

Parameters
ChoiceIf kTRUE, the match objects will be created

Definition at line 143 of file CbmDigitizeBase.h.

References CbmDigitizeBase::fCreateMatches.

Referenced by CbmDigitization::Run().

◆ SetDigiTimeConvFactor()

void CbmTofDigitize::SetDigiTimeConvFactor ( Double_t  dfac)
inline

Definition at line 89 of file CbmTofDigitize.h.

References fdDigiTimeConvFactor.

◆ SetEventMode()

void CbmDigitizeBase::SetEventMode ( Bool_t  choice = kTRUE)
inlineinherited

Set event-by-event mode.

Parameters
ChoiceIf kTRUE, the digitizer will run in event-by-event mode

Definition at line 149 of file CbmDigitizeBase.h.

References CbmDigitizeBase::fEventMode.

Referenced by CbmDigitization::Run().

◆ SetHistoFileName()

Bool_t CbmTofDigitize::SetHistoFileName ( TString  sFilenameIn = "./tofDigiBdf.hst.root")

Definition at line 1027 of file CbmTofDigitize.cxx.

References fsHistoOutFilename.

◆ SetInputFileName()

void CbmTofDigitize::SetInputFileName ( TString  FileName)
inline

Definition at line 73 of file CbmTofDigitize.h.

References fsBeamInputFile.

Referenced by Init().

◆ SetMonitorHistograms()

void CbmTofDigitize::SetMonitorHistograms ( Bool_t  bMonitor = kTRUE)
inline

Definition at line 77 of file CbmTofDigitize.h.

References fbMonitorHistos.

◆ SetParContainers()

void CbmTofDigitize::SetParContainers ( )
virtual

Inherited from FairTask.

Definition at line 259 of file CbmTofDigitize.cxx.

References fDigiBdfPar, and fDigiPar.

◆ SetProduceNoise()

void CbmDigitizeBase::SetProduceNoise ( Bool_t  choice = kTRUE)
inlineinherited

Set production of inter-event noise.

Parameters
ChoiceIf kTRUE, the digitizer will produce noise

Definition at line 155 of file CbmDigitizeBase.h.

References CbmDigitizeBase::fProduceNoise.

Referenced by CbmDigitization::Run().

◆ TriangleArea()

Double_t CbmTofDigitize::TriangleArea ( Double_t  dXa,
Double_t  dYa,
Double_t  dXb,
Double_t  dYb,
Double_t  dXc,
Double_t  dYc 
)
private

Compute triangle area from its corners.

Definition at line 4651 of file CbmTofDigitize.cxx.

Referenced by ComputeClusterAreaOnChannel().

◆ UseMcTrackMonitoring()

void CbmTofDigitize::UseMcTrackMonitoring ( Bool_t  bMcTrkMonitor = kTRUE)
inline

Definition at line 81 of file CbmTofDigitize.h.

References fbMcTrkMonitor.

◆ WriteHistos()

Member Data Documentation

◆ fbAllowPointsWithoutTrack

Bool_t CbmTofDigitize::fbAllowPointsWithoutTrack
private

◆ fbMcTrkMonitor

Bool_t CbmTofDigitize::fbMcTrkMonitor
private

◆ fbMonitorHistos

Bool_t CbmTofDigitize::fbMonitorHistos
private

◆ fBranchName

TString CbmDigitize< CbmTofDigi >::fBranchName
privateinherited

Output branch name.

Definition at line 230 of file CbmDigitize.h.

◆ fbTimeBasedOutput

Bool_t CbmTofDigitize::fbTimeBasedOutput
private

Definition at line 347 of file CbmTofDigitize.h.

Referenced by DigitizeFlatDisc(), and DigitizeGaussCharge().

◆ fChannelInfo

◆ fCreateMatches

◆ fCurrentEvent

◆ fCurrentEventTime

◆ fCurrentInput

◆ fCurrentMCEntry

◆ fDaqBuffer

std::multimap<double, Data> CbmDigitize< CbmTofDigi >::fDaqBuffer
privateinherited

Output array (CbmMatch)

DAQ buffer. Here, the digis and matches are buffered until they are filled into the time slice output (ROOT branch). The map key is the digi time.

Definition at line 239 of file CbmDigitize.h.

◆ fdChannelGain

std::vector<std::vector<std::vector<Double_t> > > CbmTofDigitize::fdChannelGain
private

◆ fdDigiTimeConvFactor

Double_t CbmTofDigitize::fdDigiTimeConvFactor
private

Definition at line 353 of file CbmTofDigitize.h.

Referenced by MergeSameChanDigis(), and SetDigiTimeConvFactor().

◆ fdDigitizeTime

Double_t CbmTofDigitize::fdDigitizeTime
private

Definition at line 333 of file CbmTofDigitize.h.

Referenced by Exec().

◆ fdFeeGainSigma

Double_t CbmTofDigitize::fdFeeGainSigma
private

Get event information (Is now in base class)

Parameters
[out]eventNumberNumber of MC event
[out]inputNumberNumber of input
[out]eventTimeStart time of event [ns]

In case of being run with FairRunAna, this information is taken from FairEventHeader. If the task is run with FairRunSim, the FairEventHeader is not filled, so the respective information is taken from FairMCEventHeader. void GetEventInfo(Int_t& inputNr, Int_t& eventNr, Double_t& eventTime);

Definition at line 246 of file CbmTofDigitize.h.

Referenced by LoadBeamtimeValues().

◆ fdFeeTotThr

Double_t CbmTofDigitize::fdFeeTotThr
private

Definition at line 247 of file CbmTofDigitize.h.

Referenced by LoadBeamtimeValues().

◆ fDigiBdfPar

◆ fDigiPar

◆ fDigis

std::vector<CbmTofDigi >* CbmDigitize< CbmTofDigi >::fDigis
privateinherited

Definition at line 231 of file CbmDigitize.h.

◆ fdMergeTime

Double_t CbmTofDigitize::fdMergeTime
private

Definition at line 334 of file CbmTofDigitize.h.

Referenced by Exec().

◆ fdNofDigisTot

Double_t CbmTofDigitize::fdNofDigisTot
private

Total number of digis created.

Definition at line 340 of file CbmTofDigitize.h.

Referenced by Exec(), and Finish().

◆ fdNofPointsTot

Double_t CbmTofDigitize::fdNofPointsTot
private

Total number of points processed.

Definition at line 339 of file CbmTofDigitize.h.

Referenced by Exec(), and Finish().

◆ fdNofTofMcTrkTot

Double_t CbmTofDigitize::fdNofTofMcTrkTot
private

Total number of MC tracks with TOF points.

Definition at line 338 of file CbmTofDigitize.h.

Referenced by Finish().

◆ fdSignalPropSpeed

Double_t CbmTofDigitize::fdSignalPropSpeed
private

Definition at line 249 of file CbmTofDigitize.h.

Referenced by LoadBeamtimeValues().

◆ fdTimeResElec

Double_t CbmTofDigitize::fdTimeResElec
private

◆ fdTimeTot

Double_t CbmTofDigitize::fdTimeTot
private

Total execution time.

Definition at line 341 of file CbmTofDigitize.h.

Referenced by Exec(), and Finish().

◆ fEventMode

◆ fGeoHandler

◆ fh1ClusterSizeProb

std::vector<TH1*> CbmTofDigitize::fh1ClusterSizeProb
private

◆ fh1ClusterTotProb

std::vector<TH1*> CbmTofDigitize::fh1ClusterTotProb
private

◆ fhDigiMergeTime

TH1* CbmTofDigitize::fhDigiMergeTime
private

Definition at line 313 of file CbmTofDigitize.h.

Referenced by CreateHistos(), DeleteHistos(), and WriteHistos().

◆ fhDigiNbElecCh

TH1* CbmTofDigitize::fhDigiNbElecCh
private

Definition at line 314 of file CbmTofDigitize.h.

Referenced by CreateHistos(), DeleteHistos(), MergeSameChanDigis(), and WriteHistos().

◆ fhDigiTime

TH1* CbmTofDigitize::fhDigiTime
private

Definition at line 319 of file CbmTofDigitize.h.

Referenced by CreateHistos(), DeleteHistos(), and WriteHistos().

◆ fhDigiTimeRes

TH1* CbmTofDigitize::fhDigiTimeRes
private

Definition at line 320 of file CbmTofDigitize.h.

Referenced by CreateHistos(), DeleteHistos(), and WriteHistos().

◆ fhDigiTimeResB

TH2* CbmTofDigitize::fhDigiTimeResB
private

Definition at line 321 of file CbmTofDigitize.h.

Referenced by CreateHistos(), DeleteHistos(), and WriteHistos().

◆ fhElecChOccup

TH1* CbmTofDigitize::fhElecChOccup
private

Definition at line 324 of file CbmTofDigitize.h.

Referenced by CreateHistos(), DeleteHistos(), and WriteHistos().

◆ fhEvtProcTime

TH1* CbmTofDigitize::fhEvtProcTime
private

Definition at line 312 of file CbmTofDigitize.h.

Referenced by CreateHistos(), DeleteHistos(), and WriteHistos().

◆ fhFiredEvtElCh

TH1* CbmTofDigitize::fhFiredEvtElCh
private

Definition at line 328 of file CbmTofDigitize.h.

Referenced by CreateHistos(), DeleteHistos(), MergeSameChanDigis(), and WriteHistos().

◆ fhMeanDigiPerTrack

TH1* CbmTofDigitize::fhMeanDigiPerTrack
private

Definition at line 316 of file CbmTofDigitize.h.

Referenced by CreateHistos(), DeleteHistos(), and WriteHistos().

◆ fhMeanFiredPerTrack

TH1* CbmTofDigitize::fhMeanFiredPerTrack
private

Definition at line 317 of file CbmTofDigitize.h.

Referenced by CreateHistos(), DeleteHistos(), and WriteHistos().

◆ fhMultiDigiEvtElCh

TH1* CbmTofDigitize::fhMultiDigiEvtElCh
private

Definition at line 325 of file CbmTofDigitize.h.

Referenced by CreateHistos(), DeleteHistos(), MergeSameChanDigis(), and WriteHistos().

◆ fhMultiProbElCh

TH1* CbmTofDigitize::fhMultiProbElCh
private

Definition at line 329 of file CbmTofDigitize.h.

Referenced by CreateHistos(), DeleteHistos(), and WriteHistos().

◆ fhNbDigiEvtElCh

TH2* CbmTofDigitize::fhNbDigiEvtElCh
private

Definition at line 326 of file CbmTofDigitize.h.

Referenced by CreateHistos(), DeleteHistos(), MergeSameChanDigis(), and WriteHistos().

◆ fhNbTracksEvtElCh

TH2* CbmTofDigitize::fhNbTracksEvtElCh
private

Definition at line 327 of file CbmTofDigitize.h.

Referenced by CreateHistos(), DeleteHistos(), MergeSameChanDigis(), and WriteHistos().

◆ fhProcTimeEvtSize

TH2* CbmTofDigitize::fhProcTimeEvtSize
private

Definition at line 315 of file CbmTofDigitize.h.

Referenced by CreateHistos(), DeleteHistos(), and WriteHistos().

◆ fhPtTime

TH1* CbmTofDigitize::fhPtTime
private

Definition at line 318 of file CbmTofDigitize.h.

Referenced by CreateHistos(), DeleteHistos(), and WriteHistos().

◆ fhTofPointsPerTrack

TH1* CbmTofDigitize::fhTofPointsPerTrack
private

Definition at line 300 of file CbmTofDigitize.h.

Referenced by CreateHistos(), DeleteHistos(), and WriteHistos().

◆ fhTofPtsInTrkVsGapInd

TH2* CbmTofDigitize::fhTofPtsInTrkVsGapInd
private

Definition at line 301 of file CbmTofDigitize.h.

Referenced by CreateHistos(), DeleteHistos(), and WriteHistos().

◆ fhTofPtsInTrkVsGapIndPrm

TH2* CbmTofDigitize::fhTofPtsInTrkVsGapIndPrm
private

Definition at line 302 of file CbmTofDigitize.h.

Referenced by CreateHistos(), DeleteHistos(), and WriteHistos().

◆ fhTofPtsInTrkVsGapIndSec

TH2* CbmTofDigitize::fhTofPtsInTrkVsGapIndSec
private

Definition at line 303 of file CbmTofDigitize.h.

Referenced by CreateHistos(), DeleteHistos(), and WriteHistos().

◆ fhTofPtsPosVsGap

TH2* CbmTofDigitize::fhTofPtsPosVsGap[10]
private

Definition at line 304 of file CbmTofDigitize.h.

Referenced by CreateHistos(), DeleteHistos(), and WriteHistos().

◆ fhToTDist

TH1* CbmTofDigitize::fhToTDist
private

Definition at line 322 of file CbmTofDigitize.h.

Referenced by CreateHistos(), DeleteHistos(), and WriteHistos().

◆ fiNbDigis

Int_t CbmTofDigitize::fiNbDigis
private

Definition at line 295 of file CbmTofDigitize.h.

Referenced by Exec(), and MergeSameChanDigis().

◆ fiNbElecChTot

Int_t CbmTofDigitize::fiNbElecChTot
private

Definition at line 268 of file CbmTofDigitize.h.

Referenced by CreateHistos(), and LoadBeamtimeValues().

◆ fiNofEvents

Int_t CbmTofDigitize::fiNofEvents
private

Total number of events processed.

Definition at line 337 of file CbmTofDigitize.h.

Referenced by Exec(), and Finish().

◆ fMatches

std::vector<CbmMatch>* CbmDigitize< CbmTofDigi >::fMatches
privateinherited

Output array (Digi)

Definition at line 232 of file CbmDigitize.h.

◆ fMcTracksColl

TClonesArray* CbmTofDigitize::fMcTracksColl
private

◆ fProduceNoise

Bool_t CbmDigitizeBase::fProduceNoise
protectedinherited

Flag for event-by-event mode.

Definition at line 160 of file CbmDigitizeBase.h.

Referenced by CbmRichDigitizer::Exec(), CbmStsDigitize::InitParams(), and CbmDigitizeBase::SetProduceNoise().

◆ fsBeamInputFile

TString CbmTofDigitize::fsBeamInputFile
private

Definition at line 343 of file CbmTofDigitize.h.

Referenced by Init(), LoadBeamtimeValues(), and SetInputFileName().

◆ fsHistoOutFilename

TString CbmTofDigitize::fsHistoOutFilename
private

Definition at line 298 of file CbmTofDigitize.h.

Referenced by SetHistoFileName(), and WriteHistos().

◆ fStart

TTimeStamp CbmTofDigitize::fStart
private

Definition at line 331 of file CbmTofDigitize.h.

Referenced by Exec().

◆ fStop

TTimeStamp CbmTofDigitize::fStop
private

Definition at line 332 of file CbmTofDigitize.h.

Referenced by Exec().

◆ fStorDigi

std::vector< std::vector<std::vector<std::vector<std::pair<CbmTofDigi*, CbmMatch*> > > > > CbmTofDigitize::fStorDigi
private

◆ fStorDigiMatch

std::vector<std::vector<std::vector<std::vector<Int_t> > > > CbmTofDigitize::fStorDigiMatch
private

◆ fTimer

TStopwatch CbmTofDigitize::fTimer
private

ROOT timer.

Definition at line 336 of file CbmTofDigitize.h.

Referenced by Exec().

◆ fTofId

CbmTofDetectorId* CbmTofDigitize::fTofId
private

◆ fTofPointsColl

TClonesArray* CbmTofDigitize::fTofPointsColl
private

◆ fvdSignalVelocityRpc

std::vector<std::vector<std::vector<Double_t> > > CbmTofDigitize::fvdSignalVelocityRpc
private

◆ fvlTrckChAddr

std::vector<std::vector<ULong64_t> > CbmTofDigitize::fvlTrckChAddr
private

◆ fvlTrckRpcAddr

std::vector<std::vector<ULong64_t> > CbmTofDigitize::fvlTrckRpcAddr
private

◆ fvlTrckRpcTime

std::vector<std::vector<Double_t> > CbmTofDigitize::fvlTrckRpcTime
private

◆ fvRpcChOffs

std::vector<std::vector<std::vector<Int_t> > > CbmTofDigitize::fvRpcChOffs
private

Definition at line 270 of file CbmTofDigitize.h.

Referenced by LoadBeamtimeValues(), and MergeSameChanDigis().


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