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
52 
53  // Destructor
55 
56  // Runs the algorithm
58  const std::vector<std::pair<const PSimHit*, int > > &,
59  StripGeomDetUnit const *, GlobalVector, float,
62  const TrackerTopology *tTopo,
63  CLHEP::HepRandomEngine*);
64 
65  // digisimlink
66  std::vector<StripDigiSimLink> make_link() { return link_coll; }
67 
68  // ParticleDataTable
71  pdt= pardt;
72  }
73 
74  private:
77  double theThreshold;
78  double cmnRMStib;
79  double cmnRMStob;
80  double cmnRMStid;
81  double cmnRMStec;
83  bool peakMode;
84  bool noise;
90 
95  double tofCut;
96  int numStrips;
97  int strip;
98  //double noiseRMS;
99  //double pedValue;
100  double cosmicShift;
101  double inefficiency;
102  double pedOffset;
104 
105 
110 
111  // local amplitude of detector channels (from processed PSimHit)
112  std::vector<float> locAmpl;
113  // total amplitude of detector channels
114  std::vector<float> detAmpl;
115 
118 
124 
127  std::vector<StripDigiSimLink> link_coll;
128 
129  void push_link(const DigitalVecType&,
130  const HitToDigisMapType&,
132  const std::vector<float>&,
133  unsigned int);
134 
135  void push_link_raw(const DigitalRawVecType&,
136  const HitToDigisMapType&,
138  const std::vector<float>&,
139  unsigned int);
140 };
141 
142 #endif
void push_link(const DigitalVecType &, const HitToDigisMapType &, const HitCounterToDigisMapType &, const std::vector< float > &, unsigned int)
std::vector< SiStripDigi > DigitalVecType
SiHitDigitizer * theSiHitDigitizer
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
void run(edm::DetSet< SiStripDigi > &, edm::DetSet< SiStripRawDigi > &, const std::vector< std::pair< const PSimHit *, int > > &, StripGeomDetUnit const *, GlobalVector, float, edm::ESHandle< SiStripGain > &, edm::ESHandle< SiStripThreshold > &, edm::ESHandle< SiStripNoises > &, edm::ESHandle< SiStripPedestals > &, edm::ESHandle< SiStripBadStrip > &, const TrackerTopology *tTopo, CLHEP::HepRandomEngine *)
std::vector< SiStripRawDigi > DigitalRawVecType
std::vector< float > detAmpl
void setParticleDataTable(const ParticleDataTable *pdt)
SiGaussianTailNoiseAdder * theSiNoiseAdder
HepPDT::ParticleData ParticleData
DigiSimLinkPileUpSignals::HitCounterToDigisMapType HitCounterToDigisMapType
DigiSimLinkAlgorithm(const edm::ParameterSet &conf)
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