CMS 3D CMS Logo

Pixel3DDigitizerAlgorithm.h
Go to the documentation of this file.
1 #ifndef _SimTracker_SiPhase2Digitizer_Pixel3DDigitizerAlgorithm_h
2 #define _SimTracker_SiPhase2Digitizer_Pixel3DDigitizerAlgorithm_h
3 
4 //-------------------------------------------------------------
5 // class Pixel3DDigitizerAlgorithm
6 //
7 // Specialization of the tracker digitizer for the 3D pixel
8 // sensors placed at PXB-Layer1 (and possibly Layer2), and
9 // at PXF-Disk1 and Disk2
10 //
11 // Authors: Jordi Duarte-Campderros (CERN/IFCA)
12 // Clara Lasaosa Garcia (IFCA)
13 //--------------------------------------------------------------
14 
16 
17 // Data formats
19 
20 // system
21 #include <functional>
22 
24 public:
26  ~Pixel3DDigitizerAlgorithm() override;
27 
28  // initialization that cannot be done in the constructor
29  void init(const edm::EventSetup& es) override;
30 
31  // run the algorithm to digitize a single det
32  void accumulateSimHits(const std::vector<PSimHit>::const_iterator inputBegin,
33  const std::vector<PSimHit>::const_iterator inputEnd,
34  const size_t inputBeginGlobalIndex,
35  const unsigned int tofBin,
36  const Phase2TrackerGeomDetUnit* pixdet,
37  const GlobalVector& bfield) override;
38 
39  // overload the mother (drift3d maybe)
40  std::vector<DigitizerUtility::SignalPoint> drift(
41  const PSimHit& hit,
42  const Phase2TrackerGeomDetUnit* pixdet,
43  const GlobalVector& bfield,
44  const std::vector<DigitizerUtility::EnergyDepositUnit>& ionization_points,
45  bool diffusion_activated);
46  // New diffusion function: check implementation
47  std::vector<DigitizerUtility::EnergyDepositUnit> diffusion(const LocalPoint& pos,
48  const float& ncarriers,
49  const std::function<LocalVector(float, float)>& u_drift,
50  const std::pair<float, float> pitches,
51  const float& thickness);
52  // Specific for 3D-pixel
53  void induce_signal(const PSimHit& hit,
54  const size_t hitIndex,
55  const unsigned int tofBin,
56  const Phase2TrackerGeomDetUnit* pixdet,
57  const std::vector<DigitizerUtility::SignalPoint>& collection_points);
58 
59 private:
60  // Raidus of Column np and ohmic
63 
64  // Check if a carrier is inside the column: The point should
65  // be described in the pixel cell frame
66  const bool _is_inside_n_column(const LocalPoint& p) const;
67  const bool _is_inside_ohmic_column(const LocalPoint& p, const std::pair<float, float>& pitch) const;
68 };
69 #endif
Vector3DBase
Definition: Vector3DBase.h:8
Pixel3DDigitizerAlgorithm::_is_inside_n_column
const bool _is_inside_n_column(const LocalPoint &p) const
Definition: Pixel3DDigitizerAlgorithm.cc:122
Pixel3DDigitizerAlgorithm::diffusion
std::vector< DigitizerUtility::EnergyDepositUnit > diffusion(const LocalPoint &pos, const float &ncarriers, const std::function< LocalVector(float, float)> &u_drift, const std::pair< float, float > pitches, const float &thickness)
Definition: Pixel3DDigitizerAlgorithm.cc:144
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
pos
Definition: PixelAliasList.h:18
Pixel3DDigitizerAlgorithm::~Pixel3DDigitizerAlgorithm
~Pixel3DDigitizerAlgorithm() override
Definition: Pixel3DDigitizerAlgorithm.cc:73
Phase2TrackerDigitizerAlgorithm.h
Pixel3DDigitizerAlgorithm
Definition: Pixel3DDigitizerAlgorithm.h:23
Pixel3DDigitizerAlgorithm::Pixel3DDigitizerAlgorithm
Pixel3DDigitizerAlgorithm(const edm::ParameterSet &conf)
Definition: Pixel3DDigitizerAlgorithm.cc:53
Calorimetry_cff.thickness
thickness
Definition: Calorimetry_cff.py:114
PixelGeomDetUnit
Definition: PixelGeomDetUnit.h:15
Pixel3DDigitizerAlgorithm::drift
std::vector< DigitizerUtility::SignalPoint > drift(const PSimHit &hit, const Phase2TrackerGeomDetUnit *pixdet, const GlobalVector &bfield, const std::vector< DigitizerUtility::EnergyDepositUnit > &ionization_points, bool diffusion_activated)
Definition: Pixel3DDigitizerAlgorithm.cc:254
Point3DBase< float, LocalTag >
edm::ParameterSet
Definition: ParameterSet.h:36
Pixel3DDigitizerAlgorithm::induce_signal
void induce_signal(const PSimHit &hit, const size_t hitIndex, const unsigned int tofBin, const Phase2TrackerGeomDetUnit *pixdet, const std::vector< DigitizerUtility::SignalPoint > &collection_points)
Definition: Pixel3DDigitizerAlgorithm.cc:394
Phase2TrackerDigitizerAlgorithm
Definition: Phase2TrackerDigitizerAlgorithm.h:58
Pixel3DDigitizerAlgorithm::_is_inside_ohmic_column
const bool _is_inside_ohmic_column(const LocalPoint &p, const std::pair< float, float > &pitch) const
Definition: Pixel3DDigitizerAlgorithm.cc:126
Pixel3DDigitizerAlgorithm::init
void init(const edm::EventSetup &es) override
Definition: Pixel3DDigitizerAlgorithm.cc:30
LocalVector
Local3DVector LocalVector
Definition: LocalVector.h:12
Pixel3DDigitizerAlgorithm::_ohm_column_radius
float _ohm_column_radius
Definition: Pixel3DDigitizerAlgorithm.h:62
Pixel3DDigitizerAlgorithm::_np_column_radius
float _np_column_radius
Definition: Pixel3DDigitizerAlgorithm.h:61
edm::EventSetup
Definition: EventSetup.h:57
Pixel3DDigitizerAlgorithm::accumulateSimHits
void accumulateSimHits(const std::vector< PSimHit >::const_iterator inputBegin, const std::vector< PSimHit >::const_iterator inputEnd, const size_t inputBeginGlobalIndex, const unsigned int tofBin, const Phase2TrackerGeomDetUnit *pixdet, const GlobalVector &bfield) override
Definition: Pixel3DDigitizerAlgorithm.cc:75
LocalPoint.h
HiBiasedCentrality_cfi.function
function
Definition: HiBiasedCentrality_cfi.py:4
PSimHit
Definition: PSimHit.h:15
hit
Definition: SiStripHitEffFromCalibTree.cc:88