|
BmnRoot
|
Task class for simulating the detector response of the SSD. More...
#include <BmnSsdDigitize.h>
Public Member Functions | |
| BmnSsdDigitize () | |
| virtual | ~BmnSsdDigitize () |
| void | CreateDigi (Int_t address, UShort_t channel, Long64_t time, UShort_t adc, const BmnMatch &match) |
| void | DiscardSecondaries (Bool_t flag=kTRUE) |
| Discard processing of secondary tracks. | |
| virtual void | SetParContainers () |
| Inherited from FairTask. | |
| virtual void | Exec (Option_t *opt) |
| Int_t | GetELossModel () const |
| Int_t | GetNofSignalsF () const |
| Int_t | GetNofSignalsB () const |
| void | InitSetup () |
| virtual InitStatus | ReInit () |
| virtual void | ResetArrays () |
| Clear data arrays. | |
| void | SetDefaultModuleParameters (Double_t dynRange, Double_t threshold, Int_t nAdc, Double_t timeResolution, Double_t deadTime, Double_t noise, Double_t zeroNoiseRate, Double_t fracDeadChan) |
| Set the default module parameters. | |
| void | SetDefaultSensorConditions (Double_t vDep, Double_t vBias, Double_t temperature, Double_t cCoupling, Double_t cInterstrip) |
| Set the default sensor conditions. | |
| void | SetDefaultSensorParameters (Double_t dInact, Double_t pitch, Double_t stereoF, Double_t stereoB) |
| Set the default sensor parameters. | |
| void | SetGenerateNoise (Bool_t choise=kTRUE) |
| Activate noise generation. | |
| void | SetModuleParameterFile (const char *fileName) |
| Set the file name with module parameters. | |
| void | SetParameters (Double_t dynRange, Double_t threshold, Int_t nAdc, Double_t timeResolution, Double_t deadTime, Double_t noise, Double_t zeroNoiseRate, Double_t deadChannelFrac=0.) |
| void | SetProcesses (Int_t eLossModel, Bool_t useLorentzShift=kTRUE, Bool_t useDiffusion=kTRUE, Bool_t useCrossTalk=kTRUE, Bool_t generateNoise=kFALSE) |
| 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 | SetSensorStripPitch (Double_t pitch) |
| virtual void | WriteDigi (BmnDigi *digi) |
| Write a digi to the output tree. | |
Public Member Functions inherited from BmnDigitize | |
| BmnDigitize () | |
| Constructor. | |
| BmnDigitize (const char *name) | |
| Constructor with name. | |
| virtual | ~BmnDigitize () |
| Destructor. | |
| 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 | SendDigi (BmnDigi *digi) |
| Send a digi object to the DAQ. | |
| void | SetDaqBuffer (BmnDaqBuffer *buffer) |
| Set the DAQ buffer instance. | |
| void | SetEventMode (Bool_t choice=kTRUE) |
| Set event-by-event mode. | |
Additional Inherited Members | |
Protected Attributes inherited from BmnDigitize | |
| Bool_t | fEventMode |
| Int_t | fCurrentInput |
| Int_t | fCurrentEvent |
| Double_t | fCurrentEventTime |
| BmnDaqBuffer * | fDaqBuffer |
Task class for simulating the detector response of the SSD.
The SSD digitiser task reads BmnSsdPoint from the input and produces objects of type BmnSsdDigi. The SsdPoints are distributed to the respective sensors, where the analog 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 35 of file BmnSsdDigitize.h.
| BmnSsdDigitize::BmnSsdDigitize | ( | ) |
Constructor
Definition at line 68 of file BmnSsdDigitize.cxx.
|
virtual |
| void BmnSsdDigitize::CreateDigi | ( | Int_t | address, |
| UShort_t | channel, | ||
| Long64_t | time, | ||
| UShort_t | adc, | ||
| const BmnMatch & | 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 185 of file BmnSsdDigitize.cxx.
References BmnSsdSetup::GetElement(), kSsdModule, BmnDigitize::SendDigi(), and BmnDigi::SetMatch().
|
inline |
Discard processing of secondary tracks.
| flag | kTRUE if secondaries shall be discarded |
This flag enables the user to suppress the digitisation of SsdPoints from secondary tracks for debug purposes. By default, points from all tracks are processed.
Definition at line 65 of file BmnSsdDigitize.h.
References BmnSsdDigitizeParameters::SetDiscardSecondaries().
|
virtual |
Execution
Definition at line 219 of file BmnSsdDigitize.cxx.
References BmnDigitize::fCurrentEvent, BmnDigitize::fCurrentEventTime, fDigiPar, BmnDigitize::fEventMode, BmnSsdModule::GenerateNoise(), BmnDigitize::GetEventInfo(), BmnSsdDigitizeParameters::GetGenerateNoise(), BmnSsdSetup::GetModule(), and BmnSsdSetup::GetNofModules().
|
inline |
Get energy loss model
| eLossModel | 0 = ideal, 1 = uniform, 2 = fluctuations |
Definition at line 82 of file BmnSsdDigitize.h.
References BmnSsdDigitizeParameters::GetELossModel().
|
inline |
Get number of signals back side
Definition at line 90 of file BmnSsdDigitize.h.
|
inline |
Get number of signals front side
Definition at line 86 of file BmnSsdDigitize.h.
| void BmnSsdDigitize::InitSetup | ( | ) |
Initialise the SSD setup and the parameters
Definition at line 483 of file BmnSsdDigitize.cxx.
References fDigiPar, BmnSsdSetup::Init(), BmnSsdSetup::Instance(), BmnSsdSetup::SetDefaultSensorParameters(), BmnSsdSetup::SetDigiParameters(), BmnSsdSetup::SetDigitizer(), BmnSsdSetup::SetModuleParameters(), and BmnSsdSetup::SetSensorConditions().
|
virtual |
Re-initialisation
Definition at line 632 of file BmnSsdDigitize.cxx.
References BmnSsdSetup::Instance().
|
virtual |
Clear data arrays.
Implements BmnDigitize.
Definition at line 644 of file BmnSsdDigitize.cxx.
Referenced by ~BmnSsdDigitize().
| void BmnSsdDigitize::SetDefaultModuleParameters | ( | Double_t | dynRange, |
| Double_t | threshold, | ||
| Int_t | nAdc, | ||
| Double_t | timeResolution, | ||
| Double_t | deadTime, | ||
| Double_t | noise, | ||
| Double_t | zeroNoiseRate, | ||
| Double_t | fracDeadChan | ||
| ) |
Set the default module parameters.
| dynRange | Dynamic range [e] |
| threshold | Threshold [e] |
| nAdc | Number of ADC channels |
| timeResolution | Time resolution [ns] |
| deadTime | Channel dead time [ns] |
| noise | Noise RMS [e] |
| zeroNoiseRate | Zero-threshold noise rate [1/ns] |
| fracDeadChan | Fraction of dead channels |
These parameters will be applied to all modules when no parameter file is specified.
Definition at line 662 of file BmnSsdDigitize.cxx.
| void BmnSsdDigitize::SetDefaultSensorConditions | ( | Double_t | vDep, |
| Double_t | vBias, | ||
| Double_t | temperature, | ||
| Double_t | cCoupling, | ||
| Double_t | cInterstrip | ||
| ) |
Set the default 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 687 of file BmnSsdDigitize.cxx.
| void BmnSsdDigitize::SetDefaultSensorParameters | ( | Double_t | dInact, |
| Double_t | pitch, | ||
| Double_t | stereoF, | ||
| Double_t | stereoB | ||
| ) |
Set the default sensor parameters.
| dInact | Size of inactive boarder (guard ring) [cm] |
| pitch | Strip pitch [cm] |
| stereoF | Strip stereo angle front side [degrees] |
| stereoB | Strip stereo angle back side [degrees] |
These parameters correspond to the default sensor type DssdStereo. They will be applied if no sensor parameter file is specified.
Definition at line 704 of file BmnSsdDigitize.cxx.
| void BmnSsdDigitize::SetGenerateNoise | ( | Bool_t | choise = kTRUE | ) |
Activate noise generation.
| choice | If kTRUE, noise will be generated (only in stream mode). |
By default, noise is not generated. Changing the physics flags is only allowed before Init() is called.
Definition at line 721 of file BmnSsdDigitize.cxx.
| void BmnSsdDigitize::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 BmnSsdSetup::ReadModuleParameters(const char*)
Definition at line 737 of file BmnSsdDigitize.cxx.
| void BmnSsdDigitize::SetParameters | ( | Double_t | dynRange, |
| Double_t | threshold, | ||
| Int_t | nAdc, | ||
| Double_t | timeResolution, | ||
| Double_t | deadTime, | ||
| Double_t | noise, | ||
| Double_t | zeroNoiseRate, | ||
| Double_t | deadChannelFrac = 0. |
||
| ) |
Set the digitisation parameters (same for all modules)
| dynRagne | Dynamic range [e] |
| threshold | Threshold [e] |
| nAdc | Number of ADC channels |
| timeResolution | Time resolution [ns] |
| deadTimec | Single-channel dead time [ns] |
| noise | Equivalent noise charge (sigma) [e] |
| zeroNoiseRate | Zero-threshold noise rate [1/ns] |
Changing the parameters is only allowed before Init() is called.
Definition at line 748 of file BmnSsdDigitize.cxx.
References fDigiPar, and BmnSsdDigitizeParameters::SetModuleParameters().
|
virtual |
Inherited from FairTask.
Is now in base class BmnDigitizer. Can be removed here after validation. --— Get event information --------------------------------------— void BmnSsdDigitize::GetEventInfo(Int_t& inputNr, Int_t& eventNr, Double_t& eventTime) {
— The event number is taken from the FairRootManager eventNr = FairRootManager::Instance()->GetEntryNr();
— In a FairRunAna, take input number and time from FairEventHeader if ( FairRunAna::Instance() ) { FairEventHeader* event = FairRunAna::Instance()->GetEventHeader(); assert ( event ); inputNr = event->GetInputFileId(); eventTime = event->GetEventTime(); } //? FairRunAna
— In a FairRunSim, the input number and event time are always zero. else { if ( ! FairRunSim::Instance() ) LOG(fatal) << GetName() << ": neither SIM nor ANA run." ; inputNr = 0; eventTime = 0.; } //? Not FairRunAna
Definition at line 406 of file BmnSsdDigitize.cxx.
References fDigiPar.
| void BmnSsdDigitize::SetProcesses | ( | Int_t | eLossModel, |
| Bool_t | useLorentzShift = kTRUE, |
||
| Bool_t | useDiffusion = kTRUE, |
||
| Bool_t | useCrossTalk = kTRUE, |
||
| Bool_t | generateNoise = kFALSE |
||
| ) |
Set physics processes
| eLossModel | 0 = ideal, 1 = uniform, 2 = fluctuations |
| useLorentzShift | If kTRUE, activate Lorentz shift |
| useDiffusion | If kTRUE, activate diffusion |
| useCrossTalk | If kTRUE, activate cross talk |
| generateNoise | If kTRUE, noise will be generated |
Changing the physics flags is only allowed before Init() is called.
Definition at line 770 of file BmnSsdDigitize.cxx.
| void BmnSsdDigitize::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 BmnSsdSetup::ReadSensorConditions(const char*)
Definition at line 792 of file BmnSsdDigitize.cxx.
| void BmnSsdDigitize::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 BmnSsdSetup::ReadSensorParameters(const char*)
Definition at line 808 of file BmnSsdDigitize.cxx.
|
inline |
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.
Definition at line 231 of file BmnSsdDigitize.h.
References BmnSsdDigitizeParameters::SetStripPitch().
|
virtual |
Write a digi to the output tree.
| digi | Pointer to digi object |
Implements BmnDigitize.
Definition at line 824 of file BmnSsdDigitize.cxx.
References BmnDigi::GetMatch().