CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
DigiSimLinkAlgorithm.h
Go to the documentation of this file.
1 #ifndef DigiSimLinkAlgorithm_h
2 #define DigiSimLinkAlgorithm_h
3 
9 #include <string>
10 
12 
26 #include "SiHitDigitizer.h"
34 
35 namespace CLHEP {
36  class HepRandomEngine;
37 }
38 
39 class TrackerTopolgoy;
40 
42  public:
47  typedef std::map< int, float, std::less<int> > hit_map_type;
48  typedef float Amplitude;
49 
50  // Constructor
51  DigiSimLinkAlgorithm(const edm::ParameterSet& conf, CLHEP::HepRandomEngine&);
52 
53  // Destructor
55 
56  // Runs the algorithm
58  const std::vector<std::pair<const PSimHit*, int > > &,
59  StripGeomDetUnit *, GlobalVector, float,
62  const TrackerTopology *tTopo);
63 
64  // digisimlink
65  std::vector<StripDigiSimLink> make_link() { return link_coll; }
66 
67  // ParticleDataTable
70  pdt= pardt;
71  }
72 
73  private:
76  double theThreshold;
77  double cmnRMStib;
78  double cmnRMStob;
79  double cmnRMStid;
80  double cmnRMStec;
82  bool peakMode;
83  bool noise;
89 
94  double tofCut;
95  int numStrips;
96  int strip;
97  //double noiseRMS;
98  //double pedValue;
99  double cosmicShift;
100  double inefficiency;
101  double pedOffset;
102 
107 
108  // local amplitude of detector channels (from processed PSimHit)
109  std::vector<float> locAmpl;
110  // total amplitude of detector channels
111  std::vector<float> detAmpl;
112 
115 
121  CLHEP::HepRandomEngine& rndEngine;
122 
125  std::vector<StripDigiSimLink> link_coll;
126  CLHEP::RandFlat *theFlatDistribution;
127 
128  void push_link(const DigitalVecType&,
129  const HitToDigisMapType&,
131  const std::vector<float>&,
132  unsigned int);
133 
134  void push_link_raw(const DigitalRawVecType&,
135  const HitToDigisMapType&,
137  const std::vector<float>&,
138  unsigned int);
139 };
140 
141 #endif
DigiSimLinkAlgorithm(const edm::ParameterSet &conf, CLHEP::HepRandomEngine &)
void push_link(const DigitalVecType &, const HitToDigisMapType &, const HitCounterToDigisMapType &, const std::vector< float > &, unsigned int)
std::vector< SiStripDigi > DigitalVecType
SiHitDigitizer * theSiHitDigitizer
CLHEP::HepRandomEngine & rndEngine
DigitalRawVecType rawdigis
HepPDT::ParticleDataTable ParticleDataTable
edm::ParameterSet conf_
SiStripFedZeroSuppression * theSiZeroSuppress
std::vector< StripDigiSimLink > make_link()
const ParticleDataTable * pdt
void setParticleDataTable(const ParticleDataTable *pardt)
void push_link_raw(const DigitalRawVecType &, const HitToDigisMapType &, const HitCounterToDigisMapType &, const std::vector< float > &, unsigned int)
SiDigitalConverter::DigitalRawVecType DigitalRawVecType
SiDigitalConverter::DigitalVecType DigitalVecType
std::vector< StripDigiSimLink > link_coll
SiTrivialDigitalConverter * theSiDigitalConverter
std::vector< SiStripRawDigi > DigitalRawVecType
std::vector< float > detAmpl
void setParticleDataTable(const ParticleDataTable *pdt)
SiGaussianTailNoiseAdder * theSiNoiseAdder
HepPDT::ParticleData ParticleData
DigiSimLinkPileUpSignals::HitCounterToDigisMapType HitCounterToDigisMapType
tuple conf
Definition: dbtoconf.py:185
void run(edm::DetSet< SiStripDigi > &, edm::DetSet< SiStripRawDigi > &, const std::vector< std::pair< const PSimHit *, int > > &, StripGeomDetUnit *, GlobalVector, float, edm::ESHandle< SiStripGain > &, edm::ESHandle< SiStripThreshold > &, edm::ESHandle< SiStripNoises > &, edm::ESHandle< SiStripPedestals > &, edm::ESHandle< SiStripBadStrip > &, const TrackerTopology *tTopo)
std::map< int, float, std::less< int > > hit_map_type
const ParticleData * particle
DigiSimLinkPileUpSignals::HitToDigisMapType HitToDigisMapType
DigiSimLinkPileUpSignals * theDigiSimLinkPileUpSignals
std::map< int, std::vector< std::pair< const PSimHit *, Amplitude > >, std::less< int > > HitToDigisMapType
std::map< int, std::vector< std::pair< const PSimHit *, int > >, std::less< int > > HitCounterToDigisMapType
std::vector< float > locAmpl
CLHEP::RandFlat * theFlatDistribution