CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
PSSDigitizerAlgorithm Class Reference

#include <PSSDigitizerAlgorithm.h>

Inheritance diagram for PSSDigitizerAlgorithm:
Phase2TrackerDigitizerAlgorithm

Public Member Functions

void init (const edm::EventSetup &es) override
 
bool isAboveThreshold (const digitizerUtility::SimHitInfo *hitInfo, float charge, float thr) const override
 
void module_killing_DB (const Phase2TrackerGeomDetUnit *pixdet) override
 
 PSSDigitizerAlgorithm (const edm::ParameterSet &conf, edm::ConsumesCollector iC)
 
bool select_hit (const PSimHit &hit, double tCorr, double &sigScale) const override
 
 ~PSSDigitizerAlgorithm () override
 
- Public Member Functions inherited from Phase2TrackerDigitizerAlgorithm
virtual 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)
 
virtual void digitize (const Phase2TrackerGeomDetUnit *pixdet, std::map< int, digitizerUtility::DigiSimInfo > &digi_map, const TrackerTopology *tTopo)
 
virtual void initializeEvent (CLHEP::HepRandomEngine &eng)
 
void loadAccumulator (uint32_t detId, const std::map< int, float > &accumulator)
 
 Phase2TrackerDigitizerAlgorithm (const edm::ParameterSet &conf_common, const edm::ParameterSet &conf_specific, edm::ConsumesCollector iC)
 
virtual ~Phase2TrackerDigitizerAlgorithm ()
 

Private Attributes

const SiStripBadStripbadChannelPayload_
 
edm::ESGetToken< SiStripBadStrip, SiPhase2OuterTrackerBadStripRcdbadChannelToken_
 
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecordgeomToken_
 
edm::ESGetToken< SiPhase2OuterTrackerLorentzAngle, SiPhase2OuterTrackerLorentzAngleSimRcdsiPhase2OTLorentzAngleToken_
 

Additional Inherited Members

- Protected Types inherited from Phase2TrackerDigitizerAlgorithm
using Frame = GloballyPositioned< double >
 
using Parameters = std::vector< edm::ParameterSet >
 
using signal_map_type = std::map< int, digitizerUtility::Ph2Amplitude, std::less< int > >
 
using signalMaps = std::map< uint32_t, signal_map_type >
 
- Protected Member Functions inherited from Phase2TrackerDigitizerAlgorithm
virtual void add_cross_talk (const Phase2TrackerGeomDetUnit *pixdet)
 
virtual void add_noise (const Phase2TrackerGeomDetUnit *pixdet)
 
virtual void add_noisy_cells (const Phase2TrackerGeomDetUnit *pixdet, float thePixelThreshold)
 
float calcQ (float x)
 
int convertSignalToAdc (uint32_t detID, float signal_in_elec, float threshold)
 
virtual std::vector< digitizerUtility::SignalPointdrift (const PSimHit &hit, const Phase2TrackerGeomDetUnit *pixdet, const GlobalVector &bfield, const std::vector< digitizerUtility::EnergyDepositUnit > &ionization_points) const
 
LocalVector driftDirection (const Phase2TrackerGeomDetUnit *pixdet, const GlobalVector &bfield, const DetId &detId) const
 
virtual std::vector< float > fluctuateEloss (int particleId, float momentum, float eloss, float length, int NumberOfSegments) const
 
virtual void induce_signal (std::vector< PSimHit >::const_iterator inputBegin, const PSimHit &hit, const size_t hitIndex, const size_t firstHitIndex, const uint32_t tofBin, const Phase2TrackerGeomDetUnit *pixdet, const std::vector< digitizerUtility::SignalPoint > &collection_points)
 
virtual void module_killing_conf (uint32_t detID)
 
virtual void pixel_inefficiency (const SubdetEfficiencies &eff, const Phase2TrackerGeomDetUnit *pixdet, const TrackerTopology *tTopo)
 
virtual void pixel_inefficiency_db (uint32_t detID)
 
virtual std::vector< digitizerUtility::EnergyDepositUnitprimary_ionization (const PSimHit &hit) const
 
- Protected Attributes inherited from Phase2TrackerDigitizerAlgorithm
signalMaps _signal
 
const bool addNoise_
 
const bool addNoisyPixels_
 
const bool addPixelInefficiency_
 
const bool addThresholdSmearing_
 
const bool addXtalk_
 
const bool alpha2Order_
 
Parameters badPixels_
 
const float clusterWidth_
 
const Parameters deadModules_
 
const std::unique_ptr< SiG4UniversalFluctuationfluctuate_
 
const bool fluctuateCharge_
 
std::unique_ptr< CLHEP::RandGaussQ > gaussDistribution_
 
const TrackerGeometrygeom_
 
const float GeVperElectron_
 
const float interstripCoupling_
 
const bool makeDigiSimLinks_
 
bool pixelFlag_
 
const double pseudoRadDamage_
 
const double pseudoRadDamageRadius_
 
CLHEP::HepRandomEngine * rengine_
 
const float Sigma0_
 
const float SigmaCoeff_
 
const SiPhase2OuterTrackerLorentzAnglesiPhase2OTLorentzAngle_
 
const SiPixelQualitysiPixelBadModule_
 
const SiPixelLorentzAnglesiPixelLorentzAngle_
 
std::unique_ptr< CLHEP::RandGaussQ > smearedThreshold_Barrel_
 
std::unique_ptr< CLHEP::RandGaussQ > smearedThreshold_Endcap_
 
const SubdetEfficiencies subdetEfficiencies_
 
const float tanLorentzAnglePerTesla_Barrel_
 
const float tanLorentzAnglePerTesla_Endcap_
 
const int theAdcFullScale_
 
const float theElectronPerADC_
 
const double theHIPThresholdInE_Barrel_
 
const double theHIPThresholdInE_Endcap_
 
const float theNoiseInElectrons_
 
const std::unique_ptr< GaussianTailNoiseGeneratortheNoiser_
 
const int thePhase2ReadoutMode_
 
const float theReadoutNoise_
 
const std::unique_ptr< SiPixelChargeReweightingAlgorithmtheSiPixelChargeReweightingAlgorithm_
 
const std::unique_ptr< SiPixelGainCalibrationOfflineSimServicetheSiPixelGainCalibrationService_
 
const float theThresholdInE_Barrel_
 
const float theThresholdInE_Endcap_
 
const double theThresholdSmearing_Barrel_
 
const double theThresholdSmearing_Endcap_
 
const float theTofLowerCut_
 
const float theTofUpperCut_
 
const double tMax_
 
const bool use_deadmodule_DB_
 
const bool use_ineff_from_db_
 
const bool use_LorentzAngle_DB_
 
const bool use_module_killing_
 
const bool useChargeReweighting_
 

Detailed Description

Definition at line 10 of file PSSDigitizerAlgorithm.h.

Constructor & Destructor Documentation

◆ PSSDigitizerAlgorithm()

PSSDigitizerAlgorithm::PSSDigitizerAlgorithm ( const edm::ParameterSet conf,
edm::ConsumesCollector  iC 
)

Definition at line 26 of file PSSDigitizerAlgorithm.cc.

References Phase2TrackerDigitizerAlgorithm::addPixelInefficiency_, badChannelToken_, edm::ConsumesCollector::esConsumes(), edm::ParameterSet::getParameter(), LogDebug, Phase2TrackerDigitizerAlgorithm::pixelFlag_, siPhase2OTLorentzAngleToken_, AlCaHLTBitMon_QueryRunRegistry::string, Phase2TrackerDigitizerAlgorithm::theAdcFullScale_, Phase2TrackerDigitizerAlgorithm::theElectronPerADC_, Phase2TrackerDigitizerAlgorithm::theThresholdInE_Barrel_, Phase2TrackerDigitizerAlgorithm::theThresholdInE_Endcap_, Phase2TrackerDigitizerAlgorithm::tMax_, Phase2TrackerDigitizerAlgorithm::use_deadmodule_DB_, and Phase2TrackerDigitizerAlgorithm::use_LorentzAngle_DB_.

28  conf.getParameter<ParameterSet>("PSSDigitizerAlgorithm"),
29  iC),
30  geomToken_(iC.esConsumes()) {
33 
34  if (use_deadmodule_DB_) {
35  std::string badChannelLabel_ = conf.getParameter<ParameterSet>("SSDigitizerAlgorithm")
36  .getUntrackedParameter<std::string>("BadChannelLabel", "");
37  badChannelToken_ = iC.esConsumes(edm::ESInputTag{"", badChannelLabel_});
38  }
39 
40  pixelFlag_ = false;
41  LogDebug("PSSDigitizerAlgorithm") << "Algorithm constructed "
42  << "Configuration parameters: "
43  << "Threshold/Gain = "
44  << "threshold in electron Endcap = " << theThresholdInE_Endcap_
45  << "threshold in electron Barrel = " << theThresholdInE_Barrel_ << " "
46  << theElectronPerADC_ << " " << theAdcFullScale_ << " The delta cut-off is set to "
47  << tMax_ << " pix-inefficiency " << addPixelInefficiency_;
48 }
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > geomToken_
edm::ESGetToken< SiPhase2OuterTrackerLorentzAngle, SiPhase2OuterTrackerLorentzAngleSimRcd > siPhase2OTLorentzAngleToken_
Phase2TrackerDigitizerAlgorithm(const edm::ParameterSet &conf_common, const edm::ParameterSet &conf_specific, edm::ConsumesCollector iC)
edm::ESGetToken< SiStripBadStrip, SiPhase2OuterTrackerBadStripRcd > badChannelToken_
#define LogDebug(id)

◆ ~PSSDigitizerAlgorithm()

PSSDigitizerAlgorithm::~PSSDigitizerAlgorithm ( )
override

Definition at line 49 of file PSSDigitizerAlgorithm.cc.

References LogDebug.

49 { LogDebug("PSSDigitizerAlgorithm") << "Algorithm deleted"; }
#define LogDebug(id)

Member Function Documentation

◆ init()

void PSSDigitizerAlgorithm::init ( const edm::EventSetup es)
overridevirtual

Implements Phase2TrackerDigitizerAlgorithm.

Definition at line 17 of file PSSDigitizerAlgorithm.cc.

References edm::EventSetup::getData().

17  {
18  if (use_LorentzAngle_DB_) // Get Lorentz angle from DB record
20 
21  if (use_deadmodule_DB_) // Get Bad Channel (SiStripBadStrip) from DB
23 
24  geom_ = &es.getData(geomToken_);
25 }
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
Definition: EventSetup.h:119
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > geomToken_
edm::ESGetToken< SiPhase2OuterTrackerLorentzAngle, SiPhase2OuterTrackerLorentzAngleSimRcd > siPhase2OTLorentzAngleToken_
const SiStripBadStrip * badChannelPayload_
const SiPhase2OuterTrackerLorentzAngle * siPhase2OTLorentzAngle_
edm::ESGetToken< SiStripBadStrip, SiPhase2OuterTrackerBadStripRcd > badChannelToken_

◆ isAboveThreshold()

bool PSSDigitizerAlgorithm::isAboveThreshold ( const digitizerUtility::SimHitInfo hitInfo,
float  charge,
float  thr 
) const
overridevirtual

Reimplemented from Phase2TrackerDigitizerAlgorithm.

Definition at line 60 of file PSSDigitizerAlgorithm.cc.

References ALCARECOTkAlJpsiMuMu_cff::charge.

62  {
63  return (charge >= thr);
64 }

◆ module_killing_DB()

void PSSDigitizerAlgorithm::module_killing_DB ( const Phase2TrackerGeomDetUnit pixdet)
overridevirtual

Implements Phase2TrackerDigitizerAlgorithm.

Definition at line 68 of file PSSDigitizerAlgorithm.cc.

References Phase2TrackerDigitizerAlgorithm::_signal, badChannelPayload_, SiStripBadStrip::decodePhase2(), hcalRecHitTable_cff::detId, SiStripBadStrip::data::firstStrip, cms::cuda::for(), GeomDet::geographicalId(), SiStripBadStrip::getRange(), FastTimerService_cff::range, SiStripBadStrip::data::range, DetId::rawId(), and alignCSCRings::s.

68  {
69  uint32_t detId = pixdet->geographicalId().rawId();
70 
71  signal_map_type& theSignal = _signal[detId];
72  signal_map_type signalNew;
73 
75  for (std::vector<unsigned int>::const_iterator badChannel = range.first; badChannel != range.second; ++badChannel) {
76  const auto& firstStrip = badChannelPayload_->decodePhase2(*badChannel).firstStrip;
77  const auto& channelRange = badChannelPayload_->decodePhase2(*badChannel).range;
78 
79  for (int index = 0; index < channelRange; index++) {
80  for (auto& s : theSignal) {
81  auto& channel = s.first;
82  if (channel == firstStrip + index)
83  s.second.set(0.);
84  }
85  }
86  }
87 }
unsigned short range
for(int i=first, nt=offsets[nh];i< nt;i+=gridDim.x *blockDim.x)
const Range getRange(const uint32_t detID) const
std::map< int, digitizerUtility::Ph2Amplitude, std::less< int > > signal_map_type
const SiStripBadStrip * badChannelPayload_
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:64
unsigned short firstStrip
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
data decodePhase2(const unsigned int &value) const
std::pair< ContainerIterator, ContainerIterator > Range

◆ select_hit()

bool PSSDigitizerAlgorithm::select_hit ( const PSimHit hit,
double  tCorr,
double &  sigScale 
) const
overridevirtual

Member Data Documentation

◆ badChannelPayload_

const SiStripBadStrip* PSSDigitizerAlgorithm::badChannelPayload_
private

Definition at line 26 of file PSSDigitizerAlgorithm.h.

Referenced by module_killing_DB().

◆ badChannelToken_

edm::ESGetToken<SiStripBadStrip, SiPhase2OuterTrackerBadStripRcd> PSSDigitizerAlgorithm::badChannelToken_
private

Definition at line 25 of file PSSDigitizerAlgorithm.h.

Referenced by PSSDigitizerAlgorithm().

◆ geomToken_

const edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> PSSDigitizerAlgorithm::geomToken_
private

Definition at line 24 of file PSSDigitizerAlgorithm.h.

◆ siPhase2OTLorentzAngleToken_

edm::ESGetToken<SiPhase2OuterTrackerLorentzAngle, SiPhase2OuterTrackerLorentzAngleSimRcd> PSSDigitizerAlgorithm::siPhase2OTLorentzAngleToken_
private

Definition at line 23 of file PSSDigitizerAlgorithm.h.

Referenced by PSSDigitizerAlgorithm().