|
CbmRoot
|
Task class for simulating the detector response of the STS. More...
#include <CbmStsDigitize.h>
Public Types | |
| typedef std::pair< std::unique_ptr< CbmStsDigi >, std::unique_ptr< CbmMatch > > | Data |
| Short for data to be handled (pair of digi and match) | |
Public Member Functions | |
| CbmStsDigitize () | |
| virtual | ~CbmStsDigitize () |
| void | CreateDigi (Int_t address, UShort_t channel, Long64_t time, UShort_t adc, const CbmMatch &match) |
| ECbmModuleId | GetSystemId () const |
| Detector system ID. | |
| virtual void | SetParContainers () |
| Inherited from FairTask. | |
| virtual void | Exec (Option_t *opt) |
| Int_t | GetNofSignalsF () const |
| Int_t | GetNofSignalsB () const |
| void | InitSetup () |
| virtual InitStatus | ReInit () |
| void | SetGlobalAsicParams (UShort_t nChannels, UShort_t nAdc, Double_t dynRange, Double_t threshold, Double_t timeResolution, Double_t deadTime, Double_t noise, Double_t zeroNoiseRate) |
| Set individual module parameters. | |
| void | SetGlobalFracDeadChannels (Double_t fraction) |
| Set global fraction of dead channels. | |
| void | SetGlobalModuleParams (UInt_t nChannels, UInt_t nAsicChannels) |
| Set the global module parameters. | |
| void | SetGlobalSensorConditions (Double_t vDep, Double_t vBias, Double_t temperature, Double_t cCoupling, Double_t cInterstrip) |
| Set the global sensor conditions. | |
| void | SetModuleParameterFile (const char *fileName) |
| Set the file name with module parameters. | |
| void | SetProcesses (CbmStsELoss eLossModel, Bool_t useLorentzShift=kTRUE, Bool_t useDiffusion=kTRUE, Bool_t useCrossTalk=kTRUE) |
| void | SetReadoutInterval (Double_t value) |
| Set readout interval. | |
| void | SetSensorConditionFile (const char *fileName) |
| Set the file name with sensor conditions. | |
| void | SetSensorParameterFile (const char *fileName) |
| Set the file name with sensor parameters. | |
| void | UseOnlyPrimaries (Bool_t flag=kTRUE) |
| Discard processing of secondary tracks. | |
| bool | SetAsicParamsFromFile (const char *filename) |
| Set ASIC parameters from ASCII file. | |
| Bool_t | CheckOutput () |
| Check the output for being time-sorted. | |
| Double_t | GetLatency () const |
| Return the detector specific latency @value latency. | |
| void | ClearOutput () |
| Clear the output arrays. | |
| ULong64_t | FillTimeSlice (CbmTimeSlice *timeSlice) |
| Move data from the DaqBuffer into the current time slice. | |
| ULong64_t | FillTimeSlice (CbmTimeSlice *timeSlice, Double_t fillTime) |
| Move data from the DaqBuffer into the current time slice. | |
| ULong64_t | GetDaqBufferSize () const |
| Size of DAQ buffer @value Number of data in the DAQ buffer. | |
| std::string | GetDaqBufferStatus () const |
| Debug output of DAQ buffer status @value String with status of DAQ buffer. | |
| Double_t | GetDaqBufferTimeFirst () const |
| Time stamp of first data in the DAQ buffer @value Time stamp of first data in the DAQ buffer. | |
| Double_t | GetDaqBufferTimeLast () const |
| Time stamp of last data in the DAQ buffer @value Time stamp of last data in the DAQ buffer. | |
| void | RegisterOutput () |
| Register the output arrays. | |
| void | SendData (Double_t time, CbmStsDigi *digi, CbmMatch *match=nullptr) |
| Send a digi and the corresponding match object to the DAQ. | |
| virtual void | FillCustomData (Double_t, Bool_t=kTRUE) |
| Fill custom data into time slice. | |
| void | GetEventInfo () |
| Get event information. | |
| Double_t | GetEventTime () const |
| Current event time @value Start time of current event [ns]. | |
| void | SetCreateMatches (Bool_t choice=kTRUE) |
| Set creation of links to MC. | |
| void | SetEventMode (Bool_t choice=kTRUE) |
| Set event-by-event mode. | |
| void | SetInactiveChannelFile (const char *fileName) |
| Set the file containing the list of inactive channels. | |
| void | SetProduceNoise (Bool_t choice=kTRUE) |
| Set production of inter-event noise. | |
| void | SetRunStartTime (Double_t time) |
| Set the run start time. | |
Protected Attributes | |
| Bool_t | fEventMode |
| Bool_t | fProduceNoise |
| Flag for event-by-event mode. | |
| Bool_t | fCreateMatches |
| Flag for production of inter-event noise. | |
| Double_t | fRunStartTime |
| Flag for creation of links to MC. | |
| Int_t | fCurrentInput |
| Start time of run [ns]. | |
| Int_t | fCurrentEvent |
| Number of current input. | |
| Int_t | fCurrentMCEntry |
| Number of current MC event. | |
| Double_t | fCurrentEventTime |
| Number of current MC entry. | |
| TString | fInactiveChannelFileName |
| Time of current MC event [ns]. | |
| std::set< uint32_t > | fInactiveChannels |
| Name of file with inactive channels. | |
Private Member Functions | |
| Int_t | BufferSize () const |
| Number of signals in the analogue buffers @value nSignals Sum of number of signals in all modules. | |
| std::string | BufferStatus () const |
| Status of the analogue buffers. | |
| virtual void | Finish () |
| virtual InitStatus | Init () |
| UInt_t | InitModules () |
| Instantiate modules. | |
| void | InitParams () |
| Initialise the parameters. | |
| UInt_t | InitSensors () |
| Instantiate sensors. | |
| bool | IsChannelActiveSts (Int_t address, UShort_t channel) |
| Test if the channel of a digi object is set active. | |
| void | ProcessAnalogBuffers (Double_t readoutTime) |
| void | ProcessMCEvent () |
| void | ProcessPoint (const CbmStsPoint *point, Double_t eventTime, const CbmLink &link) |
| std::pair< size_t, bool > | ReadInactiveChannels () |
| Read the list of inactive channels from file. | |
| void | ResetCounters () |
| Reset event counters. | |
| void | SetGlobalDefaults () |
| Set global default parameters. | |
| CbmStsDigitize (const CbmStsDigitize &) | |
| CbmStsDigitize | operator= (const CbmStsDigitize &) |
| ClassDef (CbmStsDigitize, 5) | |
| ULong64_t | FillTimeSlice (CbmTimeSlice *timeSlice, Bool_t checkLimit, Double_t fillTime) |
| Move data from the DaqBuffer into the current time slice. | |
| bool | IsChannelActive (const CbmStsDigi &digi) |
| Test if the channel of a digi object is set active. | |
Private Attributes | |
| Bool_t | fIsInitialised |
| kTRUE if Init() was called | |
| CbmStsSetup * | fSetup |
| CbmStsSimSensorFactory * | fSensorFactory = nullptr |
| STS setup interface. | |
| TClonesArray * | fPoints |
| Sensor factory. | |
| TClonesArray * | fTracks |
| Input array of CbmMCTrack. | |
| TStopwatch | fTimer |
| ROOT timer. | |
| Double_t | fReadoutInterval = -1. |
| Interval for analog buffer readout [ns]. | |
| std::map< UInt_t, CbmStsSimModule * > | fModules {} |
| std::map< UInt_t, std::unique_ptr< CbmStsSimSensor > > | fSensors {} |
| CbmStsParSim * | fUserParSim = nullptr |
| Settings for simulation. | |
| CbmStsParAsic * | fUserParAsic = nullptr |
| User defined, global. | |
| CbmStsParModule * | fUserParModule = nullptr |
| User defined, global. | |
| CbmStsParSensor * | fUserParSensor = nullptr |
| User defined, global. | |
| CbmStsParSensorCond * | fUserParCond = nullptr |
| User defined, global. | |
| Double_t | fUserDinactive = 0. |
| Size of inactive sensor border [cm]. | |
| Double_t | fUserFracDeadChan = 0. |
| Fraction of inactive ASIC channels. | |
| CbmStsParSim * | fParSim = nullptr |
| Simulation settings. | |
| CbmStsParSetModule * | fParSetModule = nullptr |
| Module parameter. | |
| CbmStsParSetSensor * | fParSetSensor = nullptr |
| Sensor parameters. | |
| CbmStsParSetSensorCond * | fParSetCond = nullptr |
| Sensor conditions. | |
| Double_t | fSensorDinact |
| Size of inactive border [cm]. | |
| Double_t | fSensorPitch |
| Strip pitch [cm]. | |
| Double_t | fSensorStereoF |
| Stereo angle front side [degrees]. | |
| Double_t | fSensorStereoB |
| Stereo angle back side [degrees]. | |
| TString | fSensorParameterFile |
| File with sensor parameters. | |
| TString | fSensorConditionFile |
| File with sensor conditions. | |
| TString | fModuleParameterFile |
| File with module parameters. | |
| Double_t | fTimePointLast |
| Time of last processed StsPoint. | |
| Double_t | fTimeLastReadout |
| Time of last readout of analog buffers. | |
| Double_t | fTimeDigiFirst |
| Time of first digi sent to DAQ. | |
| Double_t | fTimeDigiLast |
| Time of last digi sent to DAQ. | |
| Int_t | fNofPointsProc = 0 |
| Number of processed points. | |
| Int_t | fNofPointsIgno = 0 |
| Number of ignored points. | |
| Int_t | fNofSignalsF = 0 |
| Number of signals on front side. | |
| Int_t | fNofSignalsB = 0 |
| Number of signals on back side. | |
| Int_t | fNofDigis = 0 |
| Number of created digis in Exec. | |
| Int_t | fNofEvents = 0 |
| Total number of processed events. | |
| Double_t | fNofPointsProcTot = 0 |
| Total number of processed points. | |
| Double_t | fNofPointsIgnoTot = 0 |
| Total number of ignored points. | |
| Double_t | fNofSignalsFTot = 0 |
| Number of signals on front side. | |
| Double_t | fNofSignalsBTot = 0 |
| Number of signals on back side. | |
| Double_t | fNofDigisTot = 0 |
| Total number of digis created. | |
| Double_t | fNofNoiseTot = 0 |
| Total number of noise digis. | |
| Double_t | fTimeTot = 0. |
| Total execution time. | |
| std::map< Int_t, std::set< UShort_t > > | fInactiveChannelsSts = {} |
| const char * | fAsicParamsFileName = nullptr |
| std::map< std::tuple< UInt_t, Int_t, Int_t >, std::unique_ptr< CbmStsParAsic > > | fModuleAsicParams |
| TString | fBranchName |
| Output branch name. | |
| std::vector< CbmStsDigi > * | fDigis |
| std::vector< CbmMatch > * | fMatches |
| Output array (Digi) | |
| std::multimap< double, Data > | fDaqBuffer |
| Output array (CbmMatch) | |
Task class for simulating the detector response of the STS.
The STS digitiser task reads CbmStsPoint from the input and produces objects of type CbmStsDigi. The StsPoints are distributed to the respective sensors, where the analogue response is calculated. This is buffered and digitised by the connected module. The digitiser task triggers the readout of each module after the end of each call to Exec(), i.e. after processing one input MC event. All buffered data prior to the MC time of the current event are read out and stored in the output.
Definition at line 54 of file CbmStsDigitize.h.
|
inherited |
Short for data to be handled (pair of digi and match)
Definition at line 48 of file CbmDigitize.h.
| CbmStsDigitize::CbmStsDigitize | ( | ) |
Constructor
Definition at line 75 of file CbmStsDigitize.cxx.
References CbmDigitize< CbmStsDigi >::CbmDigitize(), fAsicParamsFileName, fIsInitialised, fModuleParameterFile, fPoints, fSensorConditionFile, fSensorDinact, fSensorParameterFile, fSensorPitch, fSensorStereoB, fSensorStereoF, fSetup, fTimeDigiFirst, fTimeDigiLast, fTimePointLast, fTimer, fTracks, ResetCounters(), and SetGlobalDefaults().
Referenced by CbmStsDigitize(), ClassDef(), and operator=().
|
virtual |
Destructor
Definition at line 103 of file CbmStsDigitize.cxx.
|
private |
Prevent usage of copy constructor and assignment operator
References CbmStsDigitize().
|
private |
Number of signals in the analogue buffers @value nSignals Sum of number of signals in all modules.
Definition at line 108 of file CbmStsDigitize.cxx.
References fModules.
Referenced by Finish().
|
private |
Status of the analogue buffers.
| [out] | nSignals | Sum of number of signals in alll modules @value String output |
Definition at line 126 of file CbmStsDigitize.cxx.
References fModules.
|
inlinevirtualinherited |
Check the output for being time-sorted.
Implements CbmDigitizeBase.
Definition at line 67 of file CbmDigitize.h.
|
private |
References CbmStsDigitize().
|
inlinevirtualinherited |
| void CbmStsDigitize::CreateDigi | ( | Int_t | address, |
| UShort_t | channel, | ||
| Long64_t | time, | ||
| UShort_t | adc, | ||
| const CbmMatch & | match ) |
Create a digi and send it for further processing
| address | Unique channel address |
| time | Absolute time [ns] |
| adc | Digitised charge [ADC channels] |
| match | MC Match object |
Definition at line 155 of file CbmStsDigitize.cxx.
References CbmDigitize< CbmStsDigi >::fCreateMatches, fNofDigis, fTimeDigiFirst, fTimeDigiLast, IsChannelActiveSts(), and CbmDigitize< CbmStsDigi >::SendData().
|
virtual |
Execution
Definition at line 181 of file CbmStsDigitize.cxx.
References BufferStatus(), CbmDigitize< CbmStsDigi >::fCurrentEventTime, CbmDigitize< CbmStsDigi >::fEventMode, fModules, fNofDigis, fNofDigisTot, fNofEvents, fNofNoiseTot, fNofPointsIgno, fNofPointsIgnoTot, fNofPointsProc, fNofPointsProcTot, fNofSignalsB, fNofSignalsBTot, fNofSignalsF, fNofSignalsFTot, fParSim, fReadoutInterval, CbmDigitize< CbmStsDigi >::fRunStartTime, fTimeLastReadout, fTimer, fTimeTot, CbmDigitize< CbmStsDigi >::GetEventInfo(), ProcessAnalogBuffers(), ProcessMCEvent(), and ResetCounters().
|
inlinevirtualinherited |
Fill custom data into time slice.
| fillTime | Time until data can be filled |
| limit | If 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 75 of file CbmDigitizeBase.h.
|
inlinevirtualinherited |
Move data from the DaqBuffer into the current time slice.
| timeSlice | Pointer 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 114 of file CbmDigitize.h.
|
inlineprivateinherited |
Move data from the DaqBuffer into the current time slice.
| timeSlice | Pointer to current time slice object |
| fillTime | Time 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 273 of file CbmDigitize.h.
|
inlinevirtualinherited |
Move data from the DaqBuffer into the current time slice.
| timeSlice | Pointer to current time slice object |
| fillTime | Time 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 129 of file CbmDigitize.h.
|
privatevirtual |
End-of-run action
Definition at line 256 of file CbmStsDigitize.cxx.
References BufferSize(), BufferStatus(), CbmDigitize< CbmStsDigi >::fEventMode, fModules, fNofDigis, fNofDigisTot, fNofEvents, fNofNoiseTot, fNofPointsIgno, fNofPointsIgnoTot, fNofPointsProc, fNofPointsProcTot, fNofSignalsB, fNofSignalsBTot, fNofSignalsF, fNofSignalsFTot, fTimeDigiFirst, fTimeDigiLast, fTimer, fTimeTot, and ResetCounters().
|
inlinevirtualinherited |
Size of DAQ buffer @value Number of data in the DAQ buffer.
Implements CbmDigitizeBase.
Definition at line 140 of file CbmDigitize.h.
|
inlinevirtualinherited |
Debug output of DAQ buffer status @value String with status of DAQ buffer.
Implements CbmDigitizeBase.
Definition at line 148 of file CbmDigitize.h.
|
inlinevirtualinherited |
Time stamp of first data in the DAQ buffer @value Time stamp of first data in the DAQ buffer.
Implements CbmDigitizeBase.
Definition at line 162 of file CbmDigitize.h.
|
inlinevirtualinherited |
Time stamp of last data in the DAQ buffer @value Time stamp of last data in the DAQ buffer.
Implements CbmDigitizeBase.
Definition at line 174 of file CbmDigitize.h.
|
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 107 of file CbmDigitizeBase.cxx.
Referenced by CbmStsDigitize::Exec(), and CbmStsDigitizePixel::Exec().
|
inlineinherited |
Current event time @value Start time of current event [ns].
Definition at line 113 of file CbmDigitizeBase.h.
|
inlinevirtualinherited |
Return the detector specific latency @value latency.
If there is no detector sopecific implementation the return value is 0. which does not change the default value set in CbmDaq.
Implements CbmDigitizeBase.
Definition at line 92 of file CbmDigitize.h.
|
inline |
Get number of signals back side
Definition at line 94 of file CbmStsDigitize.h.
References fNofSignalsB.
|
inline |
Get number of signals front side
Definition at line 90 of file CbmStsDigitize.h.
References fNofSignalsF.
|
inlinevirtual |
Detector system ID.
Implements CbmDigitizeBase.
Definition at line 77 of file CbmStsDigitize.h.
References kSts.
|
privatevirtual |
Initialisation
Definition at line 333 of file CbmStsDigitize.cxx.
References CbmDigitize< CbmStsDigi >::fInactiveChannelFileName, fInactiveChannelsSts, fIsInitialised, fPoints, fSetup, fTracks, InitModules(), InitParams(), InitSensors(), CbmStsPhysics::Instance(), CbmStsSetup::Instance(), ReadInactiveChannels(), and CbmDigitize< CbmStsDigi >::RegisterOutput().
|
private |
Instantiate modules.
Definition at line 403 of file CbmStsDigitize.cxx.
References fModules, fParSetModule, fSetup, and CbmStsElement::GetAddress().
Referenced by Init().
|
private |
Initialise the parameters.
Definition at line 427 of file CbmStsDigitize.cxx.
References CbmDigitize< CbmStsDigi >::fEventMode, fModuleAsicParams, fParSetCond, fParSetModule, fParSetSensor, fParSim, CbmDigitize< CbmStsDigi >::fProduceNoise, fSetup, fUserDinactive, fUserFracDeadChan, fUserParAsic, fUserParCond, fUserParModule, fUserParSensor, fUserParSim, CbmStsElement::GetAddress(), CbmStsElement::GetPnode(), kDssdStereo, and CbmStsParSensor::SetPar().
Referenced by Init().
|
private |
Instantiate sensors.
Definition at line 566 of file CbmStsDigitize.cxx.
References fModules, fParSetCond, fParSetSensor, fParSim, fSensorFactory, fSensors, fSetup, CbmStsElement::GetAddress(), CbmStsElement::GetMother(), and CbmStsElement::GetPnode().
Referenced by Init().
| void CbmStsDigitize::InitSetup | ( | ) |
Initialise the STS setup and the parameters
Definition at line 638 of file CbmStsDigitize.cxx.
References fParSetCond, fParSetModule, fParSetSensor, fSetup, and CbmStsSetup::Instance().
|
inlineprivateinherited |
Test if the channel of a digi object is set active.
| digi | object |
Definition at line 355 of file CbmDigitize.h.
|
private |
Test if the channel of a digi object is set active.
| address | CbmStdAddress of module |
| channel | Channel number in module |
We do not use the base class method IsChannelActive(), because unlike for the other detector systems, an STS channel is not identified by the address only, but by address plus channel number.
Definition at line 657 of file CbmStsDigitize.cxx.
References fInactiveChannelsSts.
Referenced by CreateDigi().
|
private |
References CbmStsDigitize().
|
private |
Process the analog buffers of all modules
| readoutTime | Time of readout [ns] |
Definition at line 668 of file CbmStsDigitize.cxx.
References fModules.
Referenced by Exec().
|
private |
Process StsPoints from MCEvent
Definition at line 679 of file CbmStsDigitize.cxx.
References CbmDigitize< CbmStsDigi >::fCurrentEventTime, CbmDigitize< CbmStsDigi >::fCurrentInput, CbmDigitize< CbmStsDigi >::fCurrentMCEntry, fNofPointsIgno, fNofPointsProc, fParSim, fPoints, fTracks, CbmMCTrack::GetGeantProcessId(), and ProcessPoint().
Referenced by Exec().
|
private |
Process one MCPoint
| point | Pointer to CbmStsPoint to be processed |
| link | Link to MCPoint |
Definition at line 720 of file CbmStsDigitize.cxx.
References fNofSignalsB, fNofSignalsF, and fSensors.
Referenced by ProcessMCEvent().
|
privatevirtual |
Read the list of inactive channels from file.
| fileName | File name |
This re-implements the respective method from the base class by reading not only the address, but also the channel number from file. The file must contain one line for each channel containing the module address and the channel number, separated by a blank. Comments can follow after the channel number, if separated by a blank.
Reading from the file will stop when a read error occurs. In that case, or when the file could not be opened at all, the success flag will be .false.
Reimplemented from CbmDigitizeBase.
Definition at line 742 of file CbmStsDigitize.cxx.
References CbmDigitize< CbmStsDigi >::fInactiveChannelFileName, and fInactiveChannelsSts.
Referenced by Init().
|
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 189 of file CbmDigitize.h.
Referenced by CbmStsDigitize::Init(), and CbmStsDigitizePixel::Init().
|
virtual |
Re-initialisation
Definition at line 825 of file CbmStsDigitize.cxx.
References fSetup, and CbmStsSetup::Instance().
|
private |
Reset event counters.
Definition at line 836 of file CbmStsDigitize.cxx.
References fNofDigis, fNofPointsIgno, fNofPointsProc, fNofSignalsB, fNofSignalsF, fTimeDigiFirst, and fTimeDigiLast.
Referenced by CbmStsDigitize(), Exec(), and Finish().
|
inlineinherited |
Send a digi and the corresponding match object to the DAQ.
| time | Global time of the digi |
| digi | Pointer to digi object (template parameter) |
| match | Pointer to match object |
Time is passed as a seperate parameter because the global time might be too large for some digi classes to store internally. So digis are not required to have a valid timestamp at this point. Later on when the time slices are known, the timestamp is overwritten with the relative time to the beginning of the time slice.
TODO: The interface should be unique pointers, meaning that the digitisers have to create objects by unique pointers from the start.
Definition at line 237 of file CbmDigitize.h.
Referenced by CbmStsDigitize::CreateDigi(), and CbmStsDigitizePixel::Exec().
| bool CbmStsDigitize::SetAsicParamsFromFile | ( | const char * | filename | ) |
Set ASIC parameters from ASCII file.
Definition at line 766 of file CbmStsDigitize.cxx.
References fModuleAsicParams.
|
inlineinherited |
Set creation of links to MC.
| Choice | If kTRUE, the match objects will be created |
Definition at line 154 of file CbmDigitizeBase.h.
Referenced by CbmStsDigitizePixel::Init().
|
inlineinherited |
Set event-by-event mode.
| Choice | If kTRUE, the digitizer will run in event-by-event mode |
Definition at line 160 of file CbmDigitizeBase.h.
| void CbmStsDigitize::SetGlobalAsicParams | ( | UShort_t | nChannels, |
| UShort_t | nAdc, | ||
| Double_t | dynRange, | ||
| Double_t | threshold, | ||
| Double_t | timeResolution, | ||
| Double_t | deadTime, | ||
| Double_t | noise, | ||
| Double_t | zeroNoiseRate ) |
Set individual module parameters.
| parMap | Map of module addresses and corresponding module parameters |
These parameters will be applied to individual modules after the global defaults are set. TODO: Include this with the new parameter scheme
Set the global ASIC parameters
| nChannels | Number of readout channels |
| nAdc | Number of ADC channels |
| dynRange | Dynamic range [e] |
| threshold | Threshold [e] |
| timeResolution | Time resolution [ns] |
| deadTime | Channel dead time [ns] |
| noise | Noise RMS [e] |
| zeroNoiseRate | Zero-threshold noise rate [1/ns] |
These parameters will be applied to all ASICS in all modules.
Definition at line 919 of file CbmStsDigitize.cxx.
References fIsInitialised, and fUserParAsic.
|
private |
Set global default parameters.
The global module and sensor parameters will be applied for all modules and sensors if no element-specific parameters are applied. Default values for the global parameters are hard-coded here. They can be changed from the macro level by the appropriate methods (e.g. SetGlobalSensorConditions).
Definition at line 849 of file CbmStsDigitize.cxx.
References fIsInitialised, fUserDinactive, fUserParAsic, fUserParCond, fUserParModule, fUserParSensor, fUserParSim, kDssdStereo, and kUrban.
Referenced by CbmStsDigitize().
|
inline |
Set global fraction of dead channels.
| fraction | Fraction of dead channels |
If this number is different from zero, in each ASIC a number of channels corresponding to this fraction are deactivated.
Definition at line 140 of file CbmStsDigitize.h.
References fUserFracDeadChan.
| void CbmStsDigitize::SetGlobalModuleParams | ( | UInt_t | nChannels, |
| UInt_t | nAsicChannels ) |
Set the global module parameters.
| nChannels | Number of readout channels |
| nAsicChannels | Number of readout channels per ASIC |
These parameters will be applied to all modules.
Definition at line 933 of file CbmStsDigitize.cxx.
References fIsInitialised, and fUserParModule.
| void CbmStsDigitize::SetGlobalSensorConditions | ( | Double_t | vDep, |
| Double_t | vBias, | ||
| Double_t | temperature, | ||
| Double_t | cCoupling, | ||
| Double_t | cInterstrip ) |
Set the global sensor conditions.
| vDep | Full-depletion voltage [V] |
| vBias | Bias voltage [V] |
| temperature | Temperature [K] |
| cCoupling | Coupling capacitance [pF] |
| cInterstrip | Inter-strip capacitance [pF] |
These parameters will be applied to all sensors when no condition file is specified.
Definition at line 944 of file CbmStsDigitize.cxx.
References fIsInitialised, and fUserParCond.
|
inlineinherited |
Set the file containing the list of inactive channels.
| fileName | Name of file |
Channels are identified by their CbmAddress. The file must contain a list of addresses, one per line. Comments after the address are allowed if separated by a blank.
Definition at line 169 of file CbmDigitizeBase.h.
| void CbmStsDigitize::SetModuleParameterFile | ( | const char * | fileName | ) |
Set the file name with module parameters.
| fileName | File name with module parameters |
The format of the file must comply with CbmStsSetup::ReadModuleParameters(const char*)
Definition at line 956 of file CbmStsDigitize.cxx.
References fIsInitialised, and fModuleParameterFile.
|
virtual |
Inherited from FairTask.
Definition at line 320 of file CbmStsDigitize.cxx.
References fParSetCond, fParSetModule, fParSetSensor, and fParSim.
| void CbmStsDigitize::SetProcesses | ( | CbmStsELoss | eLossModel, |
| Bool_t | useLorentzShift = kTRUE, | ||
| Bool_t | useDiffusion = kTRUE, | ||
| Bool_t | useCrossTalk = kTRUE ) |
Set physics processes
| eLossModel | Energy loss model |
| useLorentzShift | If kTRUE, activate Lorentz shift |
| useDiffusion | If kTRUE, activate diffusion |
| useCrossTalk | If kTRUE, activate cross talk |
Changing the physics flags is only allowed before Init() is called.
Definition at line 966 of file CbmStsDigitize.cxx.
References fIsInitialised, and fUserParSim.
|
inlineinherited |
Set production of inter-event noise.
| Choice | If kTRUE, the digitizer will produce noise |
Definition at line 175 of file CbmDigitizeBase.h.
|
inline |
Set readout interval.
| interval | Readout interval size [ns] |
By default, readout and digitization of the analog buffers are triggerd after each event. In some cases, in particular with small event sizes (e.g., beam-target events or p+p events), this leads to an unpropertional cost in runtime. Setting this parameter to a finite value will trigger the readout only at fixed time intervals. The value to be chosen depends on the input rate. It has no effect in the event-by-event mode. If set to a negative value (default), the readout will be triggered after each event.
Definition at line 199 of file CbmStsDigitize.h.
References fReadoutInterval.
|
inlineinherited |
Set the run start time.
| Run | start time [ns] |
Definition at line 181 of file CbmDigitizeBase.h.
| void CbmStsDigitize::SetSensorConditionFile | ( | const char * | fileName | ) |
Set the file name with sensor conditions.
| fileName | File name with sensor conditions |
The format of the file must comply with CbmStsSetup::ReadSensorConditions(const char*)
Definition at line 981 of file CbmStsDigitize.cxx.
References fIsInitialised, and fSensorConditionFile.
| void CbmStsDigitize::SetSensorParameterFile | ( | const char * | fileName | ) |
Set the file name with sensor parameters.
| fileName | File name with sensor parameters |
The format of the file must comply with CbmStsSetup::ReadSensorParameters(const char*)
Definition at line 994 of file CbmStsDigitize.cxx.
References fIsInitialised, and fSensorParameterFile.
| void CbmStsDigitize::UseOnlyPrimaries | ( | Bool_t | flag = kTRUE | ) |
Discard processing of secondary tracks.
Set the sensor strip pitch
| pitch | Strip pitch [cm] |
The internal sensor parameters like pitch, stereo angle etc. are normally taken from a sensor database. This method allows to override the value for the strip pitch defined there, in order to easily test different sensor layout options without defining new types in the database. It has effect only for strip sensor types. The specified strip pitch will be applied for all sensors in the setup.
TODO: Functionality still used? Should be included in new parameter scheme, then. Through CbmStsParSensor.
| flag | kTRUE if secondaries shall be discarded |
This flag enables the user to suppress the digitisation of StsPoints from secondary tracks for debug purposes. By default, points from all tracks are processed.
Definition at line 1007 of file CbmStsDigitize.cxx.
References fUserParSim.
|
private |
Definition at line 404 of file CbmStsDigitize.h.
Referenced by CbmStsDigitize().
|
privateinherited |
Output branch name.
Definition at line 248 of file CbmDigitize.h.
|
protectedinherited |
Flag for production of inter-event noise.
Definition at line 187 of file CbmDigitizeBase.h.
Referenced by CbmStsDigitize::CreateDigi(), and CbmStsDigitizePixel::Exec().
|
protectedinherited |
Number of current input.
Definition at line 190 of file CbmDigitizeBase.h.
|
protectedinherited |
Number of current MC entry.
Definition at line 192 of file CbmDigitizeBase.h.
Referenced by CbmStsDigitize::Exec(), CbmStsDigitizePixel::Exec(), and CbmStsDigitize::ProcessMCEvent().
|
protectedinherited |
Start time of run [ns].
Definition at line 189 of file CbmDigitizeBase.h.
Referenced by CbmStsDigitizePixel::Exec(), and CbmStsDigitize::ProcessMCEvent().
|
protectedinherited |
Number of current MC event.
Definition at line 191 of file CbmDigitizeBase.h.
Referenced by CbmStsDigitizePixel::Exec(), and CbmStsDigitize::ProcessMCEvent().
|
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 257 of file CbmDigitize.h.
|
privateinherited |
Definition at line 249 of file CbmDigitize.h.
|
protectedinherited |
Definition at line 185 of file CbmDigitizeBase.h.
Referenced by CbmStsDigitize::Exec(), CbmStsDigitize::Finish(), CbmStsDigitize::InitParams(), and CbmStsDigitizePixel::InitParams().
|
protectedinherited |
Time of current MC event [ns].
Definition at line 193 of file CbmDigitizeBase.h.
Referenced by CbmStsDigitize::Init(), and CbmStsDigitize::ReadInactiveChannels().
|
protectedinherited |
Name of file with inactive channels.
Definition at line 194 of file CbmDigitizeBase.h.
|
private |
Definition at line 320 of file CbmStsDigitize.h.
Referenced by Init(), IsChannelActiveSts(), and ReadInactiveChannels().
|
private |
kTRUE if Init() was called
Definition at line 251 of file CbmStsDigitize.h.
Referenced by CbmStsDigitize(), Init(), SetGlobalAsicParams(), SetGlobalDefaults(), SetGlobalModuleParams(), SetGlobalSensorConditions(), SetModuleParameterFile(), SetProcesses(), SetSensorConditionFile(), and SetSensorParameterFile().
|
privateinherited |
Output array (Digi)
Definition at line 250 of file CbmDigitize.h.
|
private |
Map of ASIC parameters for particular module Key: tuple (ModuleAddress, Side, AsicIndex) ModuleAddress : UInt_t, address of the module (hex or dec) Side : Int_t, sensor side (0 = n-side, 1 = p-side) AsicIndex : Int_t, ASIC index for given side (>= 0 for specific ASIC of the side, -1 for all ASICs on given side) Value: unique_ptr to CbmStsParAsic containing ASIC configuration parameters
Definition at line 413 of file CbmStsDigitize.h.
Referenced by InitParams(), and SetAsicParamsFromFile().
|
private |
File with module parameters.
Definition at line 291 of file CbmStsDigitize.h.
Referenced by CbmStsDigitize(), and SetModuleParameterFile().
|
private |
Map of modules. Key is the address.
Definition at line 262 of file CbmStsDigitize.h.
Referenced by BufferSize(), BufferStatus(), Exec(), Finish(), InitModules(), InitSensors(), and ProcessAnalogBuffers().
|
private |
Number of created digis in Exec.
Definition at line 304 of file CbmStsDigitize.h.
Referenced by CreateDigi(), Exec(), Finish(), and ResetCounters().
|
private |
Total number of digis created.
Definition at line 312 of file CbmStsDigitize.h.
|
private |
Total number of processed events.
Definition at line 307 of file CbmStsDigitize.h.
|
private |
Total number of noise digis.
Definition at line 313 of file CbmStsDigitize.h.
|
private |
Number of ignored points.
Definition at line 301 of file CbmStsDigitize.h.
Referenced by Exec(), Finish(), ProcessMCEvent(), and ResetCounters().
|
private |
Total number of ignored points.
Definition at line 309 of file CbmStsDigitize.h.
|
private |
Number of processed points.
Definition at line 300 of file CbmStsDigitize.h.
Referenced by Exec(), Finish(), ProcessMCEvent(), and ResetCounters().
|
private |
Total number of processed points.
Definition at line 308 of file CbmStsDigitize.h.
|
private |
Number of signals on back side.
Definition at line 303 of file CbmStsDigitize.h.
Referenced by Exec(), Finish(), GetNofSignalsB(), ProcessPoint(), and ResetCounters().
|
private |
Number of signals on back side.
Definition at line 311 of file CbmStsDigitize.h.
|
private |
Number of signals on front side.
Definition at line 302 of file CbmStsDigitize.h.
Referenced by Exec(), Finish(), GetNofSignalsF(), ProcessPoint(), and ResetCounters().
|
private |
Number of signals on front side.
Definition at line 310 of file CbmStsDigitize.h.
|
private |
Sensor conditions.
Definition at line 280 of file CbmStsDigitize.h.
Referenced by InitParams(), InitSensors(), InitSetup(), and SetParContainers().
|
private |
Module parameter.
Definition at line 278 of file CbmStsDigitize.h.
Referenced by InitModules(), InitParams(), InitSetup(), and SetParContainers().
|
private |
Sensor parameters.
Definition at line 279 of file CbmStsDigitize.h.
Referenced by InitParams(), InitSensors(), InitSetup(), and SetParContainers().
|
private |
Simulation settings.
Definition at line 277 of file CbmStsDigitize.h.
Referenced by Exec(), InitParams(), InitSensors(), ProcessMCEvent(), and SetParContainers().
|
private |
Sensor factory.
Input array of CbmStsPoint
Definition at line 256 of file CbmStsDigitize.h.
Referenced by CbmStsDigitize(), Init(), and ProcessMCEvent().
|
protectedinherited |
Flag for event-by-event mode.
Definition at line 186 of file CbmDigitizeBase.h.
Referenced by CbmStsDigitize::InitParams(), and CbmStsDigitizePixel::InitParams().
|
private |
Interval for analog buffer readout [ns].
Definition at line 259 of file CbmStsDigitize.h.
Referenced by Exec(), and SetReadoutInterval().
|
protectedinherited |
Flag for creation of links to MC.
Definition at line 188 of file CbmDigitizeBase.h.
Referenced by CbmStsDigitize::Exec().
|
private |
File with sensor conditions.
Definition at line 290 of file CbmStsDigitize.h.
Referenced by CbmStsDigitize(), and SetSensorConditionFile().
|
private |
Size of inactive border [cm].
Definition at line 283 of file CbmStsDigitize.h.
Referenced by CbmStsDigitize().
|
private |
|
private |
File with sensor parameters.
Definition at line 289 of file CbmStsDigitize.h.
Referenced by CbmStsDigitize(), and SetSensorParameterFile().
|
private |
|
private |
Map of sensors. Key is the address.
Definition at line 265 of file CbmStsDigitize.h.
Referenced by InitSensors(), and ProcessPoint().
|
private |
Stereo angle back side [degrees].
Definition at line 286 of file CbmStsDigitize.h.
Referenced by CbmStsDigitize().
|
private |
Stereo angle front side [degrees].
Definition at line 285 of file CbmStsDigitize.h.
Referenced by CbmStsDigitize().
|
private |
Definition at line 254 of file CbmStsDigitize.h.
Referenced by CbmStsDigitize(), Init(), InitModules(), InitParams(), InitSensors(), InitSetup(), and ReInit().
|
private |
Time of first digi sent to DAQ.
Definition at line 296 of file CbmStsDigitize.h.
Referenced by CbmStsDigitize(), CreateDigi(), Finish(), and ResetCounters().
|
private |
Time of last digi sent to DAQ.
Definition at line 297 of file CbmStsDigitize.h.
Referenced by CbmStsDigitize(), CreateDigi(), Finish(), and ResetCounters().
|
private |
Time of last readout of analog buffers.
Definition at line 295 of file CbmStsDigitize.h.
Referenced by Exec().
|
private |
Time of last processed StsPoint.
Definition at line 294 of file CbmStsDigitize.h.
Referenced by CbmStsDigitize().
|
private |
ROOT timer.
Definition at line 258 of file CbmStsDigitize.h.
Referenced by CbmStsDigitize(), Exec(), and Finish().
|
private |
Total execution time.
Definition at line 314 of file CbmStsDigitize.h.
|
private |
Input array of CbmMCTrack.
Definition at line 257 of file CbmStsDigitize.h.
Referenced by CbmStsDigitize(), Init(), and ProcessMCEvent().
|
private |
Size of inactive sensor border [cm].
Definition at line 273 of file CbmStsDigitize.h.
Referenced by InitParams(), and SetGlobalDefaults().
|
private |
Fraction of inactive ASIC channels.
Definition at line 274 of file CbmStsDigitize.h.
Referenced by InitParams(), and SetGlobalFracDeadChannels().
|
private |
User defined, global.
Definition at line 269 of file CbmStsDigitize.h.
Referenced by InitParams(), SetGlobalAsicParams(), and SetGlobalDefaults().
|
private |
User defined, global.
Definition at line 272 of file CbmStsDigitize.h.
Referenced by InitParams(), SetGlobalDefaults(), and SetGlobalSensorConditions().
|
private |
User defined, global.
Definition at line 270 of file CbmStsDigitize.h.
Referenced by InitParams(), SetGlobalDefaults(), and SetGlobalModuleParams().
|
private |
User defined, global.
Definition at line 271 of file CbmStsDigitize.h.
Referenced by InitParams(), and SetGlobalDefaults().
|
private |
Settings for simulation.
Definition at line 268 of file CbmStsDigitize.h.
Referenced by InitParams(), SetGlobalDefaults(), SetProcesses(), and UseOnlyPrimaries().