BmnRoot
Loading...
Searching...
No Matches
BmnSsdDigitize Class Reference

Task class for simulating the detector response of the SSD. More...

#include <BmnSsdDigitize.h>

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

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
 
BmnDaqBufferfDaqBuffer
 

Detailed Description

Task class for simulating the detector response of the SSD.

Author
Volker Friese v.fri.nosp@m.ese@.nosp@m.gsi.d.nosp@m.e
Since
23.05.2014
Version
2.0

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.

Constructor & Destructor Documentation

◆ BmnSsdDigitize()

BmnSsdDigitize::BmnSsdDigitize ( )

Constructor

Definition at line 68 of file BmnSsdDigitize.cxx.

◆ ~BmnSsdDigitize()

BmnSsdDigitize::~BmnSsdDigitize ( )
virtual

Destructor

Definition at line 125 of file BmnSsdDigitize.cxx.

References ResetArrays().

Member Function Documentation

◆ CreateDigi()

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

Parameters
addressUnique channel address
timeAbsolute time [ns]
adcDigitised charge [ADC channels]
matchMC Match object

Definition at line 185 of file BmnSsdDigitize.cxx.

References BmnSsdSetup::GetElement(), kSsdModule, BmnDigitize::SendDigi(), and BmnDigi::SetMatch().

◆ DiscardSecondaries()

void BmnSsdDigitize::DiscardSecondaries ( Bool_t  flag = kTRUE)
inline

Discard processing of secondary tracks.

Parameters
flagkTRUE 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().

◆ Exec()

◆ GetELossModel()

Int_t BmnSsdDigitize::GetELossModel ( ) const
inline

Get energy loss model

Parameters
eLossModel0 = ideal, 1 = uniform, 2 = fluctuations

Definition at line 82 of file BmnSsdDigitize.h.

References BmnSsdDigitizeParameters::GetELossModel().

◆ GetNofSignalsB()

Int_t BmnSsdDigitize::GetNofSignalsB ( ) const
inline

Get number of signals back side

Definition at line 90 of file BmnSsdDigitize.h.

◆ GetNofSignalsF()

Int_t BmnSsdDigitize::GetNofSignalsF ( ) const
inline

Get number of signals front side

Definition at line 86 of file BmnSsdDigitize.h.

◆ InitSetup()

◆ ReInit()

InitStatus BmnSsdDigitize::ReInit ( )
virtual

Re-initialisation

Definition at line 632 of file BmnSsdDigitize.cxx.

References BmnSsdSetup::Instance().

◆ ResetArrays()

void BmnSsdDigitize::ResetArrays ( )
virtual

Clear data arrays.

Implements BmnDigitize.

Definition at line 644 of file BmnSsdDigitize.cxx.

Referenced by ~BmnSsdDigitize().

◆ SetDefaultModuleParameters()

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.

Parameters
dynRangeDynamic range [e]
thresholdThreshold [e]
nAdcNumber of ADC channels
timeResolutionTime resolution [ns]
deadTimeChannel dead time [ns]
noiseNoise RMS [e]
zeroNoiseRateZero-threshold noise rate [1/ns]
fracDeadChanFraction 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.

◆ SetDefaultSensorConditions()

void BmnSsdDigitize::SetDefaultSensorConditions ( Double_t  vDep,
Double_t  vBias,
Double_t  temperature,
Double_t  cCoupling,
Double_t  cInterstrip 
)

Set the default sensor conditions.

Parameters
vDepFull-depletion voltage [V]
vBiasBias voltage [V]
temperatureTemperature [K]
cCouplingCoupling capacitance [pF]
cInterstripInter-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.

◆ SetDefaultSensorParameters()

void BmnSsdDigitize::SetDefaultSensorParameters ( Double_t  dInact,
Double_t  pitch,
Double_t  stereoF,
Double_t  stereoB 
)

Set the default sensor parameters.

Parameters
dInactSize of inactive boarder (guard ring) [cm]
pitchStrip pitch [cm]
stereoFStrip stereo angle front side [degrees]
stereoBStrip 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.

◆ SetGenerateNoise()

void BmnSsdDigitize::SetGenerateNoise ( Bool_t  choise = kTRUE)

Activate noise generation.

Parameters
choiceIf 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.

◆ SetModuleParameterFile()

void BmnSsdDigitize::SetModuleParameterFile ( const char *  fileName)

Set the file name with module parameters.

Parameters
fileNameFile name with module parameters

The format of the file must comply with BmnSsdSetup::ReadModuleParameters(const char*)

Definition at line 737 of file BmnSsdDigitize.cxx.

◆ SetParameters()

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)

Parameters
dynRagneDynamic range [e]
thresholdThreshold [e]
nAdcNumber of ADC channels
timeResolutionTime resolution [ns]
deadTimecSingle-channel dead time [ns]
noiseEquivalent noise charge (sigma) [e]
zeroNoiseRateZero-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().

◆ SetParContainers()

void BmnSsdDigitize::SetParContainers ( )
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.

◆ SetProcesses()

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

Parameters
eLossModel0 = ideal, 1 = uniform, 2 = fluctuations
useLorentzShiftIf kTRUE, activate Lorentz shift
useDiffusionIf kTRUE, activate diffusion
useCrossTalkIf kTRUE, activate cross talk
generateNoiseIf kTRUE, noise will be generated

Changing the physics flags is only allowed before Init() is called.

Definition at line 770 of file BmnSsdDigitize.cxx.

◆ SetSensorConditionFile()

void BmnSsdDigitize::SetSensorConditionFile ( const char *  fileName)

Set the file name with sensor conditions.

Parameters
fileNameFile name with sensor conditions

The format of the file must comply with BmnSsdSetup::ReadSensorConditions(const char*)

Definition at line 792 of file BmnSsdDigitize.cxx.

◆ SetSensorParameterFile()

void BmnSsdDigitize::SetSensorParameterFile ( const char *  fileName)

Set the file name with sensor parameters.

Parameters
fileNameFile name with sensor parameters

The format of the file must comply with BmnSsdSetup::ReadSensorParameters(const char*)

Definition at line 808 of file BmnSsdDigitize.cxx.

◆ SetSensorStripPitch()

void BmnSsdDigitize::SetSensorStripPitch ( Double_t  pitch)
inline

Set the sensor strip pitch

Parameters
pitchStrip 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().

◆ WriteDigi()

void BmnSsdDigitize::WriteDigi ( BmnDigi digi)
virtual

Write a digi to the output tree.

Parameters
digiPointer to digi object

Implements BmnDigitize.

Definition at line 824 of file BmnSsdDigitize.cxx.

References BmnDigi::GetMatch().


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