|
|
Go to the documentation of this file.
19 conf.getParameter<
ParameterSet>(
"PSSDigitizerAlgorithm")) {
21 LogDebug(
"PSSDigitizerAlgorithm") <<
"Algorithm constructed "
22 <<
"Configuration parameters: "
23 <<
"Threshold/Gain = "
31 std::vector<PSimHit>::const_iterator inputEnd,
32 const size_t inputBeginGlobalIndex,
33 const uint32_t tofBin,
39 size_t simHitGlobalIndex = inputBeginGlobalIndex;
42 std::vector<PSimHit> matchedSimHits;
43 std::copy_if(inputBegin, inputEnd, std::back_inserter(matchedSimHits), [detId](
auto const&
hit) ->
bool {
44 return hit.detUnitId() == detId;
47 for (
auto const&
hit : matchedSimHits) {
48 LogDebug(
"PSSDigitizerAlgorithm") <<
hit.particleType() <<
" " <<
hit.pabs() <<
" " <<
hit.energyLoss() <<
" "
49 <<
hit.tof() <<
" " <<
hit.trackId() <<
" " <<
hit.processType() <<
" "
50 <<
hit.detUnitId() <<
hit.entryPoint() <<
" " <<
hit.exitPoint();
52 std::vector<DigitizerUtility::EnergyDepositUnit> ionization_points;
53 std::vector<DigitizerUtility::SignalPoint> collection_points;
55 double signalScale = 1.0;
61 drift(
hit, pixdet, bfield, ionization_points, collection_points);
74 double toa =
hit.tof() - tCorr;
void init(const edm::EventSetup &es) override
const float theThresholdInE_Barrel_
const float theTofUpperCut_
const float theTofLowerCut_
const Plane & surface() const
The nominal surface of the GeomDet.
void primary_ionization(const PSimHit &hit, std::vector< DigitizerUtility::EnergyDepositUnit > &ionization_points) const
const int theAdcFullScale_
bool select_hit(const PSimHit &hit, double tCorr, double &sigScale) override
bool isAboveThreshold(const DigitizerUtility::SimHitInfo *hitInfo, float charge, float thr) override
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
void induce_signal(const PSimHit &hit, const size_t hitIndex, const uint32_t tofBin, const Phase2TrackerGeomDetUnit *pixdet, const std::vector< DigitizerUtility::SignalPoint > &collection_points)
PSSDigitizerAlgorithm(const edm::ParameterSet &conf)
DetId geographicalId() const
The label of this GeomDet.
T const & get(Event const &event, InputTag const &tag) noexcept(false)
void accumulateSimHits(const std::vector< PSimHit >::const_iterator inputBegin, const std::vector< PSimHit >::const_iterator inputEnd, const size_t inputBeginGlobalIndex, const uint32_t tofBin, const Phase2TrackerGeomDetUnit *pixdet, const GlobalVector &bfield) override
~PSSDigitizerAlgorithm() override
const float theElectronPerADC_
const float theThresholdInE_Endcap_
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
constexpr uint32_t rawId() const
get the raw id
void drift(const PSimHit &hit, const Phase2TrackerGeomDetUnit *pixdet, const GlobalVector &bfield, const std::vector< DigitizerUtility::EnergyDepositUnit > &ionization_points, std::vector< DigitizerUtility::SignalPoint > &collection_points) const
const bool addPixelInefficiency_