CMS 3D CMS Logo

List of all members | Public Member Functions
SSDigitizerAlgorithm Class Reference

#include <SSDigitizerAlgorithm.h>

Inheritance diagram for SSDigitizerAlgorithm:
Phase2TrackerDigitizerAlgorithm

Public Member Functions

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)
 
void init (const edm::EventSetup &es)
 
 SSDigitizerAlgorithm (const edm::ParameterSet &conf, CLHEP::HepRandomEngine &)
 
 ~SSDigitizerAlgorithm ()
 
- Public Member Functions inherited from Phase2TrackerDigitizerAlgorithm
virtual void digitize (const Phase2TrackerGeomDetUnit *pixdet, std::map< int, DigitizerUtility::DigiSimInfo > &digi_map, const TrackerTopology *tTopo)
 
virtual void initializeEvent ()
 
 Phase2TrackerDigitizerAlgorithm (const edm::ParameterSet &conf_common, const edm::ParameterSet &conf_specific, CLHEP::HepRandomEngine &)
 
 ~Phase2TrackerDigitizerAlgorithm ()
 

Additional Inherited Members

- Protected Types inherited from Phase2TrackerDigitizerAlgorithm
using Frame = GloballyPositioned< double >
 
using Parameters = std::vector< edm::ParameterSet >
 
using signal_map_const_iterator = signal_map_type::const_iterator
 
using signal_map_iterator = signal_map_type::iterator
 
using signal_map_type = std::map< int, DigitizerUtility::Amplitude, std::less< int > >
 
using signalMaps = std::map< uint32_t, signal_map_type >
 
using simlink_map = std::map< unsigned int, std::vector< float >, std::less< unsigned int > >
 
- Protected Member Functions inherited from Phase2TrackerDigitizerAlgorithm
virtual void add_noise (const Phase2TrackerGeomDetUnit *pixdet, float thePixelThreshold)
 
double calcQ (float x) const
 
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
 
LocalVector DriftDirection (const Phase2TrackerGeomDetUnit *pixdet, const GlobalVector &bfield, const DetId &detId) const
 
void fluctuateEloss (int particleId, float momentum, float eloss, float length, int NumberOfSegments, std::vector< float > &elossVector) const
 
void induce_signal (const PSimHit &hit, const size_t hitIndex, const unsigned int tofBin, const Phase2TrackerGeomDetUnit *pixdet, const std::vector< DigitizerUtility::SignalPoint > &collection_points)
 
virtual void module_killing_conf (uint32_t detID)
 
virtual void module_killing_DB (uint32_t detID)
 
virtual void pixel_inefficiency (const SubdetEfficiencies &eff, const Phase2TrackerGeomDetUnit *pixdet, const TrackerTopology *tTopo)
 
virtual void pixel_inefficiency_db (uint32_t detID)
 
void primary_ionization (const PSimHit &hit, std::vector< DigitizerUtility::EnergyDepositUnit > &ionization_points) 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
 
std::vector< edm::ParameterSetbadPixels
 
const float ClusterWidth
 
const Parameters DeadModules
 
const bool doDigitalReadout
 
const std::unique_ptr< CLHEP::RandFlat > flatDistribution_
 
const std::unique_ptr< SiG4UniversalFluctuationfluctuate
 
const bool fluctuateCharge
 
const std::unique_ptr< CLHEP::RandGaussQ > gaussDistribution_
 
edm::ESHandle< TrackerGeometrygeom_
 
const float GeVperElectron
 
const float interstripCoupling
 
const bool makeDigiSimLinks_
 
edm::ESHandle< SiPixelFedCablingMapmap_
 
bool pixelFlag
 
const double pseudoRadDamage
 
const double pseudoRadDamageRadius
 
CLHEP::HepRandomEngine * rengine_
 
const float Sigma0
 
const float SigmaCoeff
 
edm::ESHandle< SiPixelQualitySiPixelBadModule_
 
edm::ESHandle< SiPixelLorentzAngleSiPixelLorentzAngle_
 
const std::unique_ptr< CLHEP::RandGaussQ > smearedThreshold_Barrel_
 
const 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 float theReadoutNoise
 
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_
 

Detailed Description

Definition at line 10 of file SSDigitizerAlgorithm.h.

Constructor & Destructor Documentation

SSDigitizerAlgorithm::SSDigitizerAlgorithm ( const edm::ParameterSet conf,
CLHEP::HepRandomEngine &  eng 
)

Definition at line 32 of file SSDigitizerAlgorithm.cc.

References Phase2TrackerDigitizerAlgorithm::AddPixelInefficiency, Phase2TrackerDigitizerAlgorithm::pixelFlag, Phase2TrackerDigitizerAlgorithm::theAdcFullScale, Phase2TrackerDigitizerAlgorithm::theElectronPerADC, Phase2TrackerDigitizerAlgorithm::theThresholdInE_Barrel, Phase2TrackerDigitizerAlgorithm::theThresholdInE_Endcap, and Phase2TrackerDigitizerAlgorithm::tMax.

32  :
34  conf.getParameter<ParameterSet>("SSDigitizerAlgorithm"),
35  eng)
36 {
37  pixelFlag = false;
38  LogInfo("SSDigitizerAlgorithm ") << "SSDigitizerAlgorithm constructed "
39  << "Configuration parameters:"
40  << "Threshold/Gain = "
41  << "threshold in electron Endcap = "
43  << "threshold in electron Barrel = "
45  <<" " << theElectronPerADC << " " << theAdcFullScale
46  << " The delta cut-off is set to " << tMax
47  << " pix-inefficiency "<<AddPixelInefficiency;
48 }
T getParameter(std::string const &) const
Phase2TrackerDigitizerAlgorithm(const edm::ParameterSet &conf_common, const edm::ParameterSet &conf_specific, CLHEP::HepRandomEngine &)
SSDigitizerAlgorithm::~SSDigitizerAlgorithm ( )

Definition at line 49 of file SSDigitizerAlgorithm.cc.

References LogDebug.

49  {
50  LogDebug("SSDigitizerAlgorithm") << "SSDigitizerAlgorithm deleted";
51 }
#define LogDebug(id)

Member Function Documentation

void SSDigitizerAlgorithm::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 
)
virtual

Implements Phase2TrackerDigitizerAlgorithm.

Definition at line 52 of file SSDigitizerAlgorithm.cc.

References Phase2TrackerDigitizerAlgorithm::drift(), GeomDet::geographicalId(), Phase2TrackerDigitizerAlgorithm::induce_signal(), LogDebug, mag(), Phase2TrackerDigitizerAlgorithm::primary_ionization(), DetId::rawId(), GeomDet::surface(), Phase2TrackerDigitizerAlgorithm::theTofLowerCut, Phase2TrackerDigitizerAlgorithm::theTofUpperCut, and Surface::toGlobal().

57  {
58  // produce SignalPoint's for all SimHit's in detector
59  // Loop over hits
60  uint32_t detId = pixdet->geographicalId().rawId();
61  size_t simHitGlobalIndex = inputBeginGlobalIndex; // This needs to be stored to create the digi-sim link later
62  for (auto it = inputBegin; it != inputEnd; ++it, ++simHitGlobalIndex) {
63  // skip hits not in this detector.
64  if ((*it).detUnitId() != detId)
65  continue;
66 
67  LogDebug("SSDigitizerAlgorithm")
68  << (*it).particleType() << " " << (*it).pabs() << " "
69  << (*it).energyLoss() << " " << (*it).tof() << " "
70  << (*it).trackId() << " " << (*it).processType() << " "
71  << (*it).detUnitId()
72  << (*it).entryPoint() << " " << (*it).exitPoint() ;
73 
74  std::vector<DigitizerUtility::EnergyDepositUnit> ionization_points;
75  std::vector<DigitizerUtility::SignalPoint> collection_points;
76 
77  // fill collection_points for this SimHit, indpendent of topology
78  // Check the TOF cut
79  if (((*it).tof() - pixdet->surface().toGlobal((*it).localPosition()).mag()/30.) >= theTofLowerCut &&
80  ((*it).tof() - pixdet->surface().toGlobal((*it).localPosition()).mag()/30.) <= theTofUpperCut) {
81  primary_ionization(*it, ionization_points); // fills _ionization_points
82  drift(*it, pixdet, bfield, ionization_points, collection_points); // transforms _ionization_points to collection_points
83 
84  // compute induced signal on readout elements and add to _signal
85 
86  induce_signal(*it, simHitGlobalIndex, tofBin, pixdet, collection_points); // *ihit needed only for SimHit<-->Digi link
87  }
88  }
89 }
void primary_ionization(const PSimHit &hit, std::vector< DigitizerUtility::EnergyDepositUnit > &ionization_points) const
#define LogDebug(id)
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition: Surface.h:106
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
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 Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:42
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:79
void induce_signal(const PSimHit &hit, const size_t hitIndex, const unsigned int tofBin, const Phase2TrackerGeomDetUnit *pixdet, const std::vector< DigitizerUtility::SignalPoint > &collection_points)
void SSDigitizerAlgorithm::init ( const edm::EventSetup es)
virtual

Implements Phase2TrackerDigitizerAlgorithm.

Definition at line 29 of file SSDigitizerAlgorithm.cc.

References edm::EventSetup::get().

29  {
31 }
edm::ESHandle< TrackerGeometry > geom_
const T & get() const
Definition: EventSetup.h:56