LDMX Software
CDFSiSensorSim.h
1#pragma once
2
3#include <map>
4
5#include "Acts/Definitions/Algebra.hpp"
6#include "Tracking/Digitization/ChargeCarrier.h"
7#include "Tracking/Digitization/SiElectrodeDataCollection.h"
8
9namespace tracking {
10namespace digitization {
11
13 // Static parameters - not intended to be user modifiable
14
15 // 10% of pitch or depleted thickness
16 // static double deposition_granularity_ = 0.10;
17 // static double distance_error_threshold_ = 0.001;
18
19 // Field
20 // SiSensor _sensor = null;
21
23
24 /*
25
26 void setTrapping(double trapping) {trapping_ = trapping;}
27
28 // Get charge map on electrodes
29 // TODO::Add check that the carrier exists in the internal map
30 SiElectrodeDataCollection getReadoutData(ChargeCarrier carrier) {
31 return readout_data.get(carrier);
32 }
33
34 // Simulate charge deposition
35 std::map<ChargeCarrier, SiElectrodeDataCollection> computeElectrodeData();
36 */
37
38 private:
39 std::map<ChargeCarrier, Acts::Vector3> _drift_direction;
40 std::map<ChargeCarrier, SiElectrodeDataCollection> _sense_data;
41 std::map<ChargeCarrier, SiElectrodeDataCollection> _readout_data;
42
43 // Simple simulation of charge trapping, this is a temporary kludge.
44 // Charge collection efficiency with linear drift distance dependence.
45 // Input is fraction lost per 100um drift: 0.2 is typical for 1E15 NEQ.
46 // FIXME: should be calculated from properties of DopedSilicon (radiation
47 // dose)
48
49 double trapping_{0.0};
50
51 bool debug_{false};
52};
53
54} // namespace digitization
55} // namespace tracking
The measurement calibrator can be a function or a class/struct able to retrieve the sim hits containe...