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 | 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_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 = 0 |
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. | |
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 |
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 = {} |
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 55 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 73 of file CbmStsDigitize.cxx.
References ResetCounters(), and SetGlobalDefaults().
|
virtual |
Destructor
Definition at line 100 of file CbmStsDigitize.cxx.
|
private |
Prevent usage of copy constructor and assignment operator
|
private |
Number of signals in the analogue buffers @value nSignals Sum of number of signals in all modules.
Definition at line 105 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 123 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 |
|
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 152 of file CbmStsDigitize.cxx.
References CbmDigitizeBase::fCreateMatches, fNofDigis, fTimeDigiFirst, fTimeDigiLast, IsChannelActiveSts(), and CbmDigitize< CbmStsDigi >::SendData().
Referenced by CbmStsSimModule::Digitize().
|
virtual |
Execution
Definition at line 178 of file CbmStsDigitize.cxx.
References BufferStatus(), CbmDigitizeBase::fCurrentEventTime, CbmDigitizeBase::fEventMode, fModules, fNofDigis, fNofDigisTot, fNofEvents, fNofNoiseTot, fNofPointsIgno, fNofPointsIgnoTot, fNofPointsProc, fNofPointsProcTot, fNofSignalsB, fNofSignalsBTot, fNofSignalsF, fNofSignalsFTot, fParSim, CbmDigitizeBase::fRunStartTime, fTimer, fTimeTot, CbmDigitizeBase::GetEventInfo(), CbmStsParSim::Noise(), 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 246 of file CbmStsDigitize.cxx.
References BufferSize(), BufferStatus(), CbmDigitizeBase::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 57 of file CbmDigitizeBase.cxx.
References CbmDigitizeBase::fCurrentEvent, CbmDigitizeBase::fCurrentEventTime, CbmDigitizeBase::fCurrentInput, and CbmDigitizeBase::fCurrentMCEntry.
Referenced by CbmBmonDigitize::Exec(), CbmFsdDigitize::Exec(), CbmMuchDigitizeGem::Exec(), CbmMvdDigitizer::Exec(), CbmPsdSimpleDigitizer::Exec(), CbmRichDigitizer::Exec(), Exec(), CbmStsDigitizePixel::Exec(), CbmTofDigitize::Exec(), and CbmTrdDigitizer::Exec().
|
inlineinherited |
Current event time @value Start time of current event [ns].
Definition at line 113 of file CbmDigitizeBase.h.
References CbmDigitizeBase::fCurrentEventTime.
|
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 95 of file CbmStsDigitize.h.
References fNofSignalsB.
|
inline |
Get number of signals front side
Definition at line 91 of file CbmStsDigitize.h.
References fNofSignalsF.
|
inlinevirtual |
Detector system ID.
Implements CbmDigitizeBase.
Definition at line 78 of file CbmStsDigitize.h.
References kSts.
|
privatevirtual |
Initialisation
Definition at line 323 of file CbmStsDigitize.cxx.
References CbmDigitizeBase::fInactiveChannelFileName, fInactiveChannelsSts, fIsInitialised, fPoints, fSetup, fTracks, CbmStsSetup::Init(), InitModules(), InitParams(), InitSensors(), CbmStsPhysics::Instance(), CbmStsSetup::Instance(), ReadInactiveChannels(), and CbmDigitize< CbmStsDigi >::RegisterOutput().
|
private |
Instantiate modules.
Definition at line 393 of file CbmStsDigitize.cxx.
References fModules, fParSetModule, fSetup, CbmStsElement::GetAddress(), CbmStsSetup::GetModule(), CbmStsSetup::GetNofModules(), and CbmStsParSetModule::GetParModule().
Referenced by Init().
|
private |
Initialise the parameters.
Definition at line 417 of file CbmStsDigitize.cxx.
References CbmStsParSetModule::clear(), CbmStsParSetSensor::clear(), CbmStsParSetSensorCond::clear(), CbmStsParSetModule::DeactivateRandomChannels(), CbmDigitizeBase::fEventMode, fParSetCond, fParSetModule, fParSetSensor, fParSim, CbmDigitizeBase::fProduceNoise, fSetup, fUserDinactive, fUserFracDeadChan, fUserParAsic, fUserParCond, fUserParModule, fUserParSensor, fUserParSim, CbmStsElement::GetAddress(), CbmStsParSensor::GetClass(), CbmStsSetup::GetModule(), CbmStsSetup::GetNofModules(), CbmStsSetup::GetNofSensors(), CbmStsParSensor::GetPar(), CbmStsElement::GetPnode(), CbmStsSetup::GetSensor(), kDssdStereo, CbmStsParModule::SetAllAsics(), CbmStsParSim::SetEventMode(), CbmStsParSim::SetGenerateNoise(), CbmStsParSetSensorCond::SetGlobalPar(), CbmStsParSensor::SetPar(), CbmStsParSetModule::SetParModule(), CbmStsParSetSensor::SetParSensor(), CbmStsParAsic::ToString(), CbmStsParSetModule::ToString(), CbmStsParSetSensor::ToString(), CbmStsParSetSensorCond::ToString(), and CbmStsParSim::ToString().
Referenced by Init().
|
private |
Instantiate sensors.
Definition at line 526 of file CbmStsDigitize.cxx.
References CbmStsParSetSensorCond::clear(), CbmStsSimSensorFactory::CreateSensor(), fModules, fParSetCond, fParSetSensor, fParSim, fSensorFactory, fSensors, fSetup, CbmStsElement::GetAddress(), CbmStsElement::GetMother(), CbmStsSetup::GetNofSensors(), CbmStsParSetSensor::GetParSensor(), CbmStsParSetSensorCond::GetParSensor(), CbmStsElement::GetPnode(), and CbmStsSetup::GetSensor().
Referenced by Init().
void CbmStsDigitize::InitSetup | ( | ) |
Initialise the STS setup and the parameters
Definition at line 598 of file CbmStsDigitize.cxx.
References fParSetCond, fParSetModule, fParSetSensor, fSetup, CbmStsSetup::Init(), CbmStsSetup::Instance(), CbmStsSetup::SetModuleParameters(), CbmStsSetup::SetSensorConditions(), and CbmStsSetup::SetSensorParameters().
|
inlineprivateinherited |
Test if the channel of a digi object is set active.
digi | object |
Definition at line 350 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 617 of file CbmStsDigitize.cxx.
References fInactiveChannelsSts.
Referenced by CreateDigi().
|
private |
|
private |
Process the analog buffers of all modules
readoutTime | Time of readout [ns] |
Definition at line 628 of file CbmStsDigitize.cxx.
References fModules.
Referenced by Exec().
|
private |
Process StsPoints from MCEvent
Definition at line 639 of file CbmStsDigitize.cxx.
References CbmDigitizeBase::fCurrentEventTime, CbmDigitizeBase::fCurrentInput, CbmDigitizeBase::fCurrentMCEntry, fNofPointsIgno, fNofPointsProc, fParSim, fPoints, fTracks, CbmMCTrack::GetGeantProcessId(), CbmStsParSim::OnlyPrimaries(), and ProcessPoint().
Referenced by Exec().
|
private |
Process one MCPoint
point | Pointer to CbmStsPoint to be processed |
link | Link to MCPoint |
Definition at line 680 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 702 of file CbmStsDigitize.cxx.
References CbmDigitizeBase::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 Init(), and CbmStsDigitizePixel::Init().
|
virtual |
Re-initialisation
Definition at line 726 of file CbmStsDigitize.cxx.
References fSetup, and CbmStsSetup::Instance().
|
private |
Reset event counters.
Definition at line 737 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 CreateDigi(), and CbmStsDigitizePixel::Exec().
|
inlineinherited |
Set creation of links to MC.
Choice | If kTRUE, the match objects will be created |
Definition at line 154 of file CbmDigitizeBase.h.
References CbmDigitizeBase::fCreateMatches.
Referenced by CbmStsDigitizePixel::Init(), and CbmDigitization::Run().
|
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.
References CbmDigitizeBase::fEventMode.
Referenced by CbmDigitization::Run().
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 820 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 750 of file CbmStsDigitize.cxx.
References fIsInitialised, fUserDinactive, fUserParAsic, fUserParCond, fUserParModule, fUserParSensor, fUserParSim, kDssdStereo, kUrban, CbmStsParSim::SetEventMode(), CbmStsParSim::SetGenerateNoise(), CbmStsParSensor::SetPar(), and CbmStsParSim::SetProcesses().
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 141 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 834 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 845 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.
References CbmDigitizeBase::fInactiveChannelFileName.
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 857 of file CbmStsDigitize.cxx.
References fIsInitialised, and fModuleParameterFile.
|
virtual |
Inherited from FairTask.
Definition at line 310 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 867 of file CbmStsDigitize.cxx.
References fIsInitialised, fUserParSim, and CbmStsParSim::SetProcesses().
|
inlineinherited |
Set production of inter-event noise.
Choice | If kTRUE, the digitizer will produce noise |
Definition at line 175 of file CbmDigitizeBase.h.
References CbmDigitizeBase::fProduceNoise.
Referenced by CbmDigitization::Run().
|
inlineinherited |
Set the run start time.
Run | start time [ns] |
Definition at line 181 of file CbmDigitizeBase.h.
References CbmDigitizeBase::fRunStartTime.
Referenced by CbmDigitization::Run().
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 882 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 895 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 908 of file CbmStsDigitize.cxx.
References fUserParSim, and CbmStsParSim::SetOnlyPrimaries().
|
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 CbmDigitize< Digi >::ClearOutput(), CreateDigi(), CbmBmonDigitize::Exec(), CbmFsdDigitize::Exec(), CbmMvdDigitizer::Exec(), CbmStsDigitizePixel::Exec(), CbmDigitize< Digi >::FillTimeSlice(), CbmMvdDigitizer::Finish(), CbmRichDigitizer::ProcessBuffers(), CbmDigitize< Digi >::RegisterOutput(), CbmFsdDigitize::ReleaseBuffer(), and CbmDigitizeBase::SetCreateMatches().
|
protectedinherited |
Number of current input.
Definition at line 190 of file CbmDigitizeBase.h.
Referenced by CbmMuchDigitizeGem::BufferSignals(), CbmFsdDigitize::Exec(), CbmMuchDigitizeGem::Exec(), CbmMvdDigitizer::Exec(), CbmPsdSimpleDigitizer::Exec(), CbmRichDigitizer::Exec(), CbmTofDigitize::Exec(), CbmTrdDigitizer::Exec(), CbmMuchDigitizeGem::GenerateNoise(), CbmDigitizeBase::GetEventInfo(), and CbmRichDigitizer::ProcessMcEvent().
|
protectedinherited |
Number of current MC entry.
Definition at line 192 of file CbmDigitizeBase.h.
Referenced by CbmMuchDigitizeGem::AddCharge(), CbmRichDigitizer::AddEventNoise(), CbmMuchDigitizeGem::BufferSignals(), CbmBmonDigitize::Exec(), CbmFsdDigitize::Exec(), CbmMuchDigitizeGem::Exec(), CbmMvdDigitizer::Exec(), CbmPsdSimpleDigitizer::Exec(), CbmRichDigitizer::Exec(), Exec(), CbmStsDigitizePixel::Exec(), CbmTofDigitize::Exec(), CbmTrdDigitizer::Exec(), CbmMuchDigitizeGem::GenerateNoise(), CbmDigitizeBase::GetEventInfo(), CbmDigitizeBase::GetEventTime(), CbmTofDigitize::MergeSameChanDigis(), ProcessMCEvent(), CbmRichDigitizer::ProcessMcEvent(), CbmRichDigitizer::ProcessPoint(), and CbmFsdDigitize::ReleaseBuffer().
|
protectedinherited |
Start time of run [ns].
Definition at line 189 of file CbmDigitizeBase.h.
Referenced by CbmMuchDigitizeGem::AddCharge(), CbmMuchDigitizeGem::BufferSignals(), CbmBmonDigitize::Exec(), CbmFsdDigitize::Exec(), CbmMuchDigitizeGem::Exec(), CbmPsdSimpleDigitizer::Exec(), CbmStsDigitizePixel::Exec(), CbmTrdDigitizer::Exec(), CbmDigitizeBase::GetEventInfo(), CbmTofDigitize::MergeSameChanDigis(), ProcessMCEvent(), and CbmRichDigitizer::ProcessMcEvent().
|
protectedinherited |
Number of current MC event.
Definition at line 191 of file CbmDigitizeBase.h.
Referenced by CbmMuchDigitizeGem::AddCharge(), CbmMuchDigitizeGem::BufferSignals(), CbmBmonDigitize::Exec(), CbmFsdDigitize::Exec(), CbmPsdSimpleDigitizer::Exec(), CbmStsDigitizePixel::Exec(), CbmTrdDigitizer::Exec(), CbmDigitizeBase::GetEventInfo(), CbmTofDigitize::MergeSameChanDigis(), ProcessMCEvent(), and CbmRichDigitizer::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 CbmTofDigitize::DigitizeDirectClusterSize(), CbmFsdDigitize::Exec(), CbmMuchDigitizeGem::Exec(), CbmRichDigitizer::Exec(), Exec(), CbmFsdDigitize::Finish(), CbmMuchDigitizeGem::Finish(), CbmRichDigitizer::Finish(), Finish(), CbmFsdDigitize::Init(), CbmMuchDigitizeGem::Init(), CbmMvdDigitizer::Init(), CbmRichDigitizer::Init(), CbmTofDigitize::Init(), CbmTrdDigitizer::Init(), InitParams(), CbmStsDigitizePixel::InitParams(), and CbmDigitizeBase::SetEventMode().
|
protectedinherited |
Time of current MC event [ns].
Definition at line 193 of file CbmDigitizeBase.h.
Referenced by CbmBmonDigitize::Init(), CbmMuchDigitizeGem::Init(), CbmMvdDigitizer::Init(), CbmPsdSimpleDigitizer::Init(), CbmRichDigitizer::Init(), Init(), CbmTofDigitize::Init(), CbmTrdDigitizer::Init(), CbmDigitizeBase::ReadInactiveChannels(), ReadInactiveChannels(), and CbmDigitizeBase::SetInactiveChannelFile().
|
protectedinherited |
Name of file with inactive channels.
Definition at line 194 of file CbmDigitizeBase.h.
Referenced by CbmBmonDigitize::Init(), CbmMuchDigitizeGem::Init(), CbmMvdDigitizer::Init(), CbmPsdSimpleDigitizer::Init(), CbmRichDigitizer::Init(), CbmTofDigitize::Init(), CbmTrdDigitizer::Init(), CbmDigitize< Digi >::IsChannelActive(), and CbmDigitizeBase::ReadInactiveChannels().
|
private |
Definition at line 303 of file CbmStsDigitize.h.
Referenced by Init(), IsChannelActiveSts(), and ReadInactiveChannels().
|
private |
kTRUE if Init() was called
Definition at line 235 of file CbmStsDigitize.h.
Referenced by Init(), SetGlobalAsicParams(), SetGlobalDefaults(), SetGlobalModuleParams(), SetGlobalSensorConditions(), SetModuleParameterFile(), SetProcesses(), SetSensorConditionFile(), and SetSensorParameterFile().
|
privateinherited |
Output array (Digi)
Definition at line 250 of file CbmDigitize.h.
|
private |
File with module parameters.
Definition at line 274 of file CbmStsDigitize.h.
Referenced by SetModuleParameterFile().
|
private |
Map of modules. Key is the address.
Definition at line 245 of file CbmStsDigitize.h.
Referenced by BufferSize(), BufferStatus(), Exec(), Finish(), InitModules(), InitSensors(), and ProcessAnalogBuffers().
|
private |
Number of created digis in Exec.
Definition at line 288 of file CbmStsDigitize.h.
Referenced by CreateDigi(), Exec(), Finish(), and ResetCounters().
|
private |
Total number of digis created.
Definition at line 296 of file CbmStsDigitize.h.
|
private |
Total number of processed events.
Definition at line 291 of file CbmStsDigitize.h.
|
private |
Total number of noise digis.
Definition at line 297 of file CbmStsDigitize.h.
|
private |
Number of ignored points.
Definition at line 285 of file CbmStsDigitize.h.
Referenced by Exec(), Finish(), ProcessMCEvent(), and ResetCounters().
|
private |
Total number of ignored points.
Definition at line 293 of file CbmStsDigitize.h.
|
private |
Number of processed points.
Definition at line 284 of file CbmStsDigitize.h.
Referenced by Exec(), Finish(), ProcessMCEvent(), and ResetCounters().
|
private |
Total number of processed points.
Definition at line 292 of file CbmStsDigitize.h.
|
private |
Number of signals on back side.
Definition at line 287 of file CbmStsDigitize.h.
Referenced by Exec(), Finish(), GetNofSignalsB(), ProcessPoint(), and ResetCounters().
|
private |
Number of signals on back side.
Definition at line 295 of file CbmStsDigitize.h.
|
private |
Number of signals on front side.
Definition at line 286 of file CbmStsDigitize.h.
Referenced by Exec(), Finish(), GetNofSignalsF(), ProcessPoint(), and ResetCounters().
|
private |
Number of signals on front side.
Definition at line 294 of file CbmStsDigitize.h.
|
private |
Sensor conditions.
Definition at line 263 of file CbmStsDigitize.h.
Referenced by InitParams(), InitSensors(), InitSetup(), and SetParContainers().
|
private |
Module parameter.
Definition at line 261 of file CbmStsDigitize.h.
Referenced by InitModules(), InitParams(), InitSetup(), and SetParContainers().
|
private |
Sensor parameters.
Definition at line 262 of file CbmStsDigitize.h.
Referenced by InitParams(), InitSensors(), InitSetup(), and SetParContainers().
|
private |
Simulation settings.
Definition at line 260 of file CbmStsDigitize.h.
Referenced by Exec(), InitParams(), InitSensors(), ProcessMCEvent(), and SetParContainers().
|
private |
Sensor factory.
Input array of CbmStsPoint
Definition at line 240 of file CbmStsDigitize.h.
Referenced by Init(), and ProcessMCEvent().
|
protectedinherited |
Flag for event-by-event mode.
Definition at line 186 of file CbmDigitizeBase.h.
Referenced by CbmRichDigitizer::Exec(), InitParams(), CbmStsDigitizePixel::InitParams(), and CbmDigitizeBase::SetProduceNoise().
|
protectedinherited |
Flag for creation of links to MC.
Definition at line 188 of file CbmDigitizeBase.h.
Referenced by CbmRichDigitizer::Exec(), Exec(), and CbmDigitizeBase::SetRunStartTime().
|
private |
File with sensor conditions.
Definition at line 273 of file CbmStsDigitize.h.
Referenced by SetSensorConditionFile().
|
private |
Size of inactive border [cm].
Definition at line 266 of file CbmStsDigitize.h.
|
private |
|
private |
File with sensor parameters.
Definition at line 272 of file CbmStsDigitize.h.
Referenced by SetSensorParameterFile().
|
private |
Strip pitch [cm].
Definition at line 267 of file CbmStsDigitize.h.
|
private |
Map of sensors. Key is the address.
Definition at line 248 of file CbmStsDigitize.h.
Referenced by InitSensors(), and ProcessPoint().
|
private |
Stereo angle back side [degrees].
Definition at line 269 of file CbmStsDigitize.h.
|
private |
Stereo angle front side [degrees].
Definition at line 268 of file CbmStsDigitize.h.
|
private |
Definition at line 238 of file CbmStsDigitize.h.
Referenced by Init(), InitModules(), InitParams(), InitSensors(), InitSetup(), and ReInit().
|
private |
Time of first digi sent to DAQ.
Definition at line 280 of file CbmStsDigitize.h.
Referenced by CreateDigi(), Finish(), and ResetCounters().
|
private |
Time of last digi sent to DAQ.
Definition at line 281 of file CbmStsDigitize.h.
Referenced by CreateDigi(), Finish(), and ResetCounters().
|
private |
Definition at line 277 of file CbmStsDigitize.h.
|
private |
|
private |
Total execution time.
Definition at line 298 of file CbmStsDigitize.h.
|
private |
Input array of CbmMCTrack.
Definition at line 241 of file CbmStsDigitize.h.
Referenced by Init(), and ProcessMCEvent().
|
private |
Size of inactive sensor border [cm].
Definition at line 256 of file CbmStsDigitize.h.
Referenced by InitParams(), and SetGlobalDefaults().
|
private |
Fraction of inactive ASIC channels.
Definition at line 257 of file CbmStsDigitize.h.
Referenced by InitParams(), and SetGlobalFracDeadChannels().
|
private |
User defined, global.
Definition at line 252 of file CbmStsDigitize.h.
Referenced by InitParams(), SetGlobalAsicParams(), and SetGlobalDefaults().
|
private |
User defined, global.
Definition at line 255 of file CbmStsDigitize.h.
Referenced by InitParams(), SetGlobalDefaults(), and SetGlobalSensorConditions().
|
private |
User defined, global.
Definition at line 253 of file CbmStsDigitize.h.
Referenced by InitParams(), SetGlobalDefaults(), and SetGlobalModuleParams().
|
private |
User defined, global.
Definition at line 254 of file CbmStsDigitize.h.
Referenced by InitParams(), and SetGlobalDefaults().
|
private |
Settings for simulation.
Definition at line 251 of file CbmStsDigitize.h.
Referenced by InitParams(), SetGlobalDefaults(), SetProcesses(), and UseOnlyPrimaries().