CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
SiStripDigitizer.h
Go to the documentation of this file.
1 #ifndef SiStripDigitizer_h
2 #define SiStripDigitizer_h
3 
4 #include <map>
5 #include <memory>
6 #include <string>
7 #include <vector>
8 
11 
12 class TrackerTopology;
13 
14 namespace CLHEP {
15  class HepRandomEngine;
16 }
17 
18 namespace edm {
19  class ConsumesCollector;
20  namespace one {
21  class EDProducerBase;
22  }
23  class Event;
24  class EventSetup;
25  class ParameterSet;
26  template<typename T> class Handle;
27 }
28 
29 class MagneticField;
31 class PSimHit;
33 class StripGeomDetUnit;
34 class TrackerGeometry;
35 
45 public:
47 
48  virtual ~SiStripDigitizer();
49 
50  virtual void initializeEvent(edm::Event const& e, edm::EventSetup const& c) override;
51  virtual void accumulate(edm::Event const& e, edm::EventSetup const& c) override;
52  virtual void accumulate(PileUpEventPrincipal const& e, edm::EventSetup const& c) override;
53  virtual void finalizeEvent(edm::Event& e, edm::EventSetup const& c) override;
54 
55 private:
56  void accumulateStripHits(edm::Handle<std::vector<PSimHit> >, const TrackerTopology *tTopo, size_t globalSimHitIndex );
57 
58  typedef std::vector<std::string> vstring;
59  typedef std::map<unsigned int, std::vector<std::pair<const PSimHit*, int> >,std::less<unsigned int> > simhit_map;
60  typedef simhit_map::iterator simhit_map_iterator;
61 
70  const bool useConfFromDB;
71  const bool zeroSuppression;
72  const bool makeDigiSimLinks_;
73 
81  std::map<std::string,size_t> crossingSimHitIndexOffset_;
82 
83  std::unique_ptr<SiStripDigitizerAlgorithm> theDigiAlgo;
84  std::map<uint32_t, std::vector<int> > theDetIdList;
87  std::map<unsigned int, StripGeomDetUnit*> detectorUnits;
88 
89  CLHEP::HepRandomEngine* rndEngine;
90 };
91 
92 #endif
const vstring trackerContainers
const std::string ZSDigi
edm::ESHandle< TrackerGeometry > pDD
const bool zeroSuppression
virtual void initializeEvent(edm::Event const &e, edm::EventSetup const &c) override
const std::string hitsProducer
virtual void finalizeEvent(edm::Event &e, edm::EventSetup const &c) override
virtual void accumulate(edm::Event const &e, edm::EventSetup const &c) override
const bool useConfFromDB
std::map< uint32_t, std::vector< int > > theDetIdList
virtual ~SiStripDigitizer()
std::map< std::string, size_t > crossingSimHitIndexOffset_
Offset to add to the index of each sim hit to account for which crossing it&#39;s in. ...
std::map< unsigned int, StripGeomDetUnit * > detectorUnits
simhit_map::iterator simhit_map_iterator
Accumulator to perform digitisation on the strip tracker sim hits.
SiStripDigitizer(const edm::ParameterSet &conf, edm::one::EDProducerBase &mixMod, edm::ConsumesCollector &iC)
tuple conf
Definition: dbtoconf.py:185
std::unique_ptr< SiStripDigitizerAlgorithm > theDigiAlgo
void accumulateStripHits(edm::Handle< std::vector< PSimHit > >, const TrackerTopology *tTopo, size_t globalSimHitIndex)
edm::ESHandle< MagneticField > pSetup
const std::string VRDigi
const std::string PRDigi
const std::string geometryType
std::vector< std::string > vstring
const bool makeDigiSimLinks_
Whether or not to create the association to sim truth collection. Set in configuration.
std::map< unsigned int, std::vector< std::pair< const PSimHit *, int > >, std::less< unsigned int > > simhit_map
const std::string gainLabel
CLHEP::HepRandomEngine * rndEngine
const std::string SCDigi