 |
Belle II Software
release-05-02-19
|
10 #ifndef SVDDigitizerModule_H
11 #define SVDDigitizerModule_H
13 #include <framework/core/Module.h>
14 #include <svd/dataobjects/SVDSimHit.h>
15 #include <svd/simulation/SVDSignal.h>
16 #include <svd/geometry/SensorInfo.h>
17 #include <svd/calibration/SVDFADCMaskedStrips.h>
18 #include <svd/online/SVDOnlineToOfflineMap.h>
19 #include <framework/database/PayloadFile.h>
23 #include <root/TVector3.h>
24 #include <root/TFile.h>
25 #include <root/TTree.h>
26 #include <root/TH1D.h>
39 typedef std::pair<StripSignals, StripSignals>
Sensor;
42 typedef std::map<VxdID, Sensor>
Sensors;
73 double addNoise(
double charge,
double noise);
95 virtual void event()
override;
224 std::unique_ptr<SVDOnlineToOfflineMap>
m_map;
269 #endif // SVDDigitizerModule_H
std::string m_relShaperDigitMCParticleName
Name of the relation between SVDShaperDigits and MCParticles.
double m_currentTime
Time of the current SimHit.
TH1D * m_histDistanceToPlane_h
Histogram showing the distance to plane for h.
std::unique_ptr< SVDOnlineToOfflineMap > m_map
channel mapping map
Sensors m_sensors
Structure containing signals in all existing sensors.
double m_backplaneCapacitanceU
The backplane capacitanceU wrt.
double m_backplaneCapacitanceV
The backplane capacitanceV wrt.
double m_segmentLength
Max.
DBObjPtr< PayloadFile > m_mapping
channel mapping payload
bool m_applyPoisson
Whether or not to apply poisson fluctuation of charge.
This class defines the dbobject and the method to access strips which are masked at FADC level.
bool m_storeWaveforms
Store waveform data in the reporting file?
double addNoise(double charge, double noise)
Calculate the noise contribution to one strip with given charge.
std::string m_relMCParticleSimHitName
Name of the relation between MCParticles and SVDSimHits.
void saveSignals()
Save signals to a root-delimited file (to be analyzed in Python).
std::pair< StripSignals, StripSignals > Sensor
Signals of u- and v- strips in one sensor.
Specialization of DBObjPtr in case of PayloadFiles.
Class SVDSimHit - Geant4 simulated hit for the SVD.
bool m_roundZS
Round ZS cut to nearest ADU.
double m_interstripCapacitanceV
The interstrip capacitanceV for the sensor.
const SensorInfo * m_currentSensorInfo
Pointer to the SensorInfo of the current sensor.
TH1D * m_histDriftTime_e
Histogram showing the drift time of e.
void saveWaveforms()
Save waveforms to the statistics file.
virtual void event() override
Digitize one event.
std::string m_rootFilename
Name of the ROOT filename to output statistics.
double m_samplingTime
Interval between two waveform samples (30 ns).
std::string m_relShaperDigitTrueHitName
Name of the relation between SVDShaperDigits and SVDTrueHits.
bool m_randomizeEventTimes
Randomize event times? If set to true, event times will be randomized uniformly from m_minTimeFrame t...
TH1D * m_histLorentz_u
Histogram showing the Lorentz angles in u (r-phi).
std::map< VxdID, Sensor > Sensors
Map of all signals in all sensors.
TH1D * m_signalDist_u
Histogram showing the distribution of digit signals in u (r-phi).
double m_interstripCapacitanceU
The interstrip capacitanceU for the sensor.
TTree * m_waveTree
Tree for waveform storage.
void saveDigits()
Save digits to the DataStore Saves samples of generated waveforms.
Specific implementation of SensorInfo for SVD Sensors which provides additional sensor specific infor...
double m_noiseFraction
(derived from SNAdjacent) Fraction of noisy strips per sensor.
void driftCharge(const TVector3 &position, double carriers, SVD::SensorInfo::CarrierType carrierType)
Drift the charge inside the silicon.
TFile * m_rootFile
Pointer to the ROOT filename for statistics.
std::string m_relTrueHitSimHitName
Name of the relation between SVDTrueHits and SVDSimHits.
double m_sensorThickness
Thickness of current sensor (read from m_currentSensorInfo).
float m_currentEventTime
Current event time.
std::string m_svdEventInfoName
Name of the SVDEventInfo object.
std::string m_storeSimHitsName
Name of the collection for the SVDSimhits.
std::map< short int, SVDSignal > StripSignals
Map of all signals in one sensor.
TH1D * m_histDriftTime_h
Histogram showing the drift time of h.
SVDFADCMaskedStrips m_MaskedStr
FADC masked strip payload.
double m_elNoiseV
Electronic noise for v-strips.
double m_elNoiseU
ADU equivalent charge for u-strips.
TH1D * m_histLorentz_v
Histogram showing the Lorentz angles in v (z).
The SVD Digitizer module.
static std::string m_xmlFileName
< channel mapping xml filename
std::string m_storeShaperDigitsName
Name of the collection for the SVDShaperDigits.
TH1D * m_histMobility_e
Histogram showing the mobility of e-.
double m_couplingCapacitanceU
The coupling capacitanceU for the sensor.
virtual void initialize() override
Initialize the module and check module parameters.
Abstract base class for different kinds of events.
TH1D * m_histChargeSharing_v
Histogram showing the charge sharing + diffusion in v (z).
std::string m_storeMCParticlesName
Name of the collection for the MCParticles.
const SVDSimHit * m_currentHit
Pointer to the SVDSimhit currently digitized.
TH1D * m_histDistanceToPlane_e
Histogram showing the distance to plane for e.
virtual void beginRun() override
Initialize the list of existing SVD Sensors.
std::string m_signalsList
Name of the tab-delimited listing of signals.
double m_startSampling
Time window start.
Sensor * m_currentSensor
Pointer to the sensor in which the current hit occurred.
double m_SNAdjacent
Zero-suppression cut.
TH1D * m_signalDist_v
Histogram showing the distribution of digit signals in v (z).
int m_currentParticle
Index of the particle which caused the current hit.
TH1D * m_histMobility_h
Histogram showing the mobility of h.
TH1D * m_histVelocity_h
Histogram showing the velocity of h.
double m_shapingTime
Shaping time of the APV25 shapers.
float m_maxTimeFrame
High edge of randomization time frame.
int m_currentTrueHit
Index of the TrueHit the current hit belongs to.
unsigned short m_nSamplesOverZS
Keek digit if at least m_nSamplesOverZS are over threshold.
TH1D * m_histVelocity_e
Histogram showing the velocity of e-.
double m_biasVoltage
The bias voltage on the sensor.
bool m_applyNoise
Whether or not to apply Gaussian noise.
float m_minTimeFrame
Low edge of randomization time frame.
SVDDigitizerModule()
Constructor.
CarrierType
Enum to flag charge carriers.
void processHit()
Process one SVDSimHit by dividing the step in smaller steps and drifting the charge.
std::string m_storeTrueHitsName
Name of the collection for the SVDTrueHits.
virtual void terminate() override
Terminate the module.
TH1D * m_histChargeSharing_u
Histogram showing the charge sharing + diffusion in u (r-phi).
double m_widthOfDiffusCloud
Width of diffusion cloud for simple drift model (in sigmas)
double m_couplingCapacitanceV
The coupling capacitanceV for the sensor.
double m_depletionVoltage
The depletion voltage of the Silicon sensor.