![]() |
Project
|
#include <Digitizer.h>
Public Types | |
using | SC = SpaceCharge< float > |
Public Member Functions | |
Digitizer () | |
Default constructor. | |
~Digitizer () | |
Destructor. | |
Digitizer (const Digitizer &)=delete | |
Digitizer & | operator= (const Digitizer &)=delete |
void | init () |
Initializer. | |
void | process (const std::vector< o2::tpc::HitGroup > &hits, const int eventID, const int sourceID=0) |
void | flush (std::vector< o2::tpc::Digit > &digits, o2::dataformats::MCTruthContainer< o2::MCCompLabel > &labels, std::vector< o2::tpc::CommonMode > &commonModeOutput, bool finalFlush=false) |
void | setSector (Sector sec) |
void | setStartTime (double time) |
void | setOutputDigitTimeOffset (double offset) |
Set mOutputDigitTimeOffset. | |
void | setEventTime (double time) |
void | setContinuousReadout (bool isContinuous) |
bool | isContinuousReadout () |
void | setUseSCDistortions (const SCDistortionType &distortionType, const TH3 *hisInitialSCDensity) |
void | setUseSCDistortions (SC *spaceCharge) |
void | setSCDistortionsDerivative (SC *spaceCharge) |
void | setUseSCDistortions (std::string_view finp) |
void | setVDrift (float v) |
void | setTDriftOffset (float t) |
void | setDistortionScaleType (int distortionScaleType) |
int | getDistortionScaleType () const |
void | setLumiScaleFactor () |
void | setMeanLumiDistortions (float meanLumi) |
void | setMeanLumiDistortionsDerivative (float meanLumi) |
void | recalculateDistortions () |
in case of scaled distortions, the distortions can be recalculated to ensure consistent distortions and corrections | |
This is the digitizer for the ALICE GEM TPC. It is the main class and steers all relevant physical processes for the signal formation in the detector.
Definition at line 53 of file Digitizer.h.
using o2::tpc::Digitizer::SC = SpaceCharge<float> |
Definition at line 56 of file Digitizer.h.
|
default |
Default constructor.
|
default |
Destructor.
|
delete |
void Digitizer::flush | ( | std::vector< o2::tpc::Digit > & | digits, |
o2::dataformats::MCTruthContainer< o2::MCCompLabel > & | labels, | ||
std::vector< o2::tpc::CommonMode > & | commonModeOutput, | ||
bool | finalFlush = false |
||
) |
Flush the data
digits | Container for the digits |
labels | Container for the MC labels |
commonModeOutput | Output container for the common mode |
finalFlush | Flag whether the whole container is dumped |
Definition at line 168 of file Digitizer.cxx.
|
inline |
Definition at line 136 of file Digitizer.h.
void Digitizer::init | ( | ) |
Definition at line 42 of file Digitizer.cxx.
|
inline |
Option to retrieve triggered / continuous readout
Definition at line 111 of file Digitizer.h.
void Digitizer::process | ( | const std::vector< o2::tpc::HitGroup > & | hits, |
const int | eventID, | ||
const int | sourceID = 0 |
||
) |
Process a single hit group
hits | Container with TPC hit groups |
eventID | ID of the event to be processed |
sourceID | ID of the source to be processed |
Reserve space in the digit container for the current event
obtain max drift_time + hitTime which can be processed
Remove electrons that end up more than three sigma of the hit's average diffusion away from the current sector boundary
The energy loss stored corresponds to nElectrons
in us
TODO: add primary ions to space-charge density
Loop over electrons
Drift and Diffusion
in us
in us
the absolute time needs to be within the readout limits (otherwise negative times would all be accumulated in the 0-th timebin further below)
Attachment
Remove electrons that end up outside the active volume
When the electron is not in the sector we're processing, abandon
Compute digit position and check for validity
Remove digits the end up outside the currently produced sector
Electron amplification
TODO: add ion backflow to space-charge density
end of loop over electrons
Definition at line 52 of file Digitizer.cxx.
void Digitizer::recalculateDistortions | ( | ) |
in case of scaled distortions, the distortions can be recalculated to ensure consistent distortions and corrections
Definition at line 252 of file Digitizer.cxx.
|
inline |
Switch for triggered / continuous readout
isContinuous | - false for triggered readout, true for continuous readout |
Definition at line 107 of file Digitizer.h.
Definition at line 135 of file Digitizer.h.
|
inline |
Set the time of the event to be processed
time | Time of the event |
Definition at line 103 of file Digitizer.h.
void Digitizer::setLumiScaleFactor | ( | ) |
Definition at line 236 of file Digitizer.cxx.
void Digitizer::setMeanLumiDistortions | ( | float | meanLumi | ) |
Definition at line 242 of file Digitizer.cxx.
void Digitizer::setMeanLumiDistortionsDerivative | ( | float | meanLumi | ) |
Definition at line 247 of file Digitizer.cxx.
|
inline |
Set mOutputDigitTimeOffset.
Definition at line 99 of file Digitizer.h.
spaceCharge | unique pointer to spaceCharge object |
Definition at line 202 of file Digitizer.cxx.
Set the sector to be processed
sec | Sector to be processed |
Definition at line 88 of file Digitizer.h.
void Digitizer::setStartTime | ( | double | time | ) |
Set the start time of the first event
time | Time of the first event |
Definition at line 224 of file Digitizer.cxx.
|
inline |
Definition at line 133 of file Digitizer.h.
void Digitizer::setUseSCDistortions | ( | const SCDistortionType & | distortionType, |
const TH3 * | hisInitialSCDensity | ||
) |
Enable the use of space-charge distortions and provide space-charge density histogram as input
distortionType | select the type of space-charge distortions (constant or realistic) |
hisInitialSCDensity | optional space-charge density histogram to use at the beginning of the simulation |
nZSlices | number of grid points in z, must be (2**N)+1 |
nPhiBins | number of grid points in phi |
nRBins | number of grid points in r, must be (2**N)+1 |
Definition at line 181 of file Digitizer.cxx.
Enable the use of space-charge distortions and provide SpaceCharge object as input
spaceCharge | unique pointer to spaceCharge object |
Definition at line 194 of file Digitizer.cxx.
void Digitizer::setUseSCDistortions | ( | std::string_view | finp | ) |
Enable the use of space-charge distortions by providing global distortions and global corrections stored in a ROOT file The storage of the values should be done by the methods provided in the SpaceCharge class
file | containing distortions |
Definition at line 209 of file Digitizer.cxx.
|
inline |
Definition at line 132 of file Digitizer.h.