CMS 3D CMS Logo

SiPixelDigitizer.h
Go to the documentation of this file.
1 #ifndef SiPixelDigitizer_h
2 #define SiPixelDigitizer_h
3 
16 #include <map>
17 #include <memory>
18 #include <string>
19 #include <vector>
20 
24 
25 namespace edm {
26  class ConsumesCollector;
27  class ProducerBase;
28  class Event;
29  class EventSetup;
30  class ParameterSet;
31  template<typename T> class Handle;
32  class StreamID;
33 }
34 
35 class MagneticField;
37 class PixelGeomDetUnit;
38 class PSimHit;
40 class TrackerGeometry;
41 
42 namespace CLHEP {
43  class HepRandomEngine;
44 }
45 
46 namespace cms {
48  public:
49 
51 
52  ~SiPixelDigitizer() override;
53 
54  void initializeEvent(edm::Event const& e, edm::EventSetup const& c) override;
55  void accumulate(edm::Event const& e, edm::EventSetup const& c) override;
56  void accumulate(PileUpEventPrincipal const& e, edm::EventSetup const& c, edm::StreamID const&) override;
57  void finalizeEvent(edm::Event& e, edm::EventSetup const& c) override;
58 
59  virtual void beginJob() {}
60 
61  void StorePileupInformation( std::vector<int> &numInteractionList,
62  std::vector<int> &bunchCrossingList,
63  std::vector<float> &TrueInteractionList,
64  std::vector<edm::EventID> &eventInfoList, int bunchSpacing) override{
65  PileupInfo_ = std::make_unique<PileupMixingContent>(numInteractionList, bunchCrossingList, TrueInteractionList, eventInfoList, bunchSpacing);
66  }
67 
68  PileupMixingContent* getEventPileupInfo() override { return PileupInfo_.get(); }
69 
70  private:
71  void accumulatePixelHits(edm::Handle<std::vector<PSimHit> >,
72  size_t globalSimHitIndex,
73  const unsigned int tofBin,
74  edm::EventSetup const& c);
75 
78  std::unique_ptr<SiPixelDigitizerAlgorithm> _pixeldigialgo;
87  std::map<std::string,size_t> crossingSimHitIndexOffset_;
88 
89  typedef std::vector<std::string> vstring;
91  const vstring trackerContainers;
95  std::map<unsigned int, PixelGeomDetUnit const *> detectorUnits;
96  CLHEP::HepRandomEngine* randomEngine_ = nullptr;
97 
98  std::unique_ptr<PileupMixingContent> PileupInfo_;
99 
100  const bool pilotBlades; // Default = false
101  const int NumberOfEndcapDisks; // Default = 2
102 
103  // infrastructure to reject dead pixels as defined in db (added by F.Blekman)
104  };
105 }
106 
107 
108 #endif
virtual void beginJob()
std::map< unsigned int, PixelGeomDetUnit const * > detectorUnits
edm::ESHandle< MagneticField > pSetup
std::vector< std::string > vstring
std::unique_ptr< PileupMixingContent > PileupInfo_
const std::string hitsProducer
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. ...
edm::ESHandle< TrackerGeometry > pDD
std::unique_ptr< SiPixelDigitizerAlgorithm > _pixeldigialgo
Namespace of DDCMS conversion namespace.
void StorePileupInformation(std::vector< int > &numInteractionList, std::vector< int > &bunchCrossingList, std::vector< float > &TrueInteractionList, std::vector< edm::EventID > &eventInfoList, int bunchSpacing) override
const std::string geometryType
HLT enums.
const vstring trackerContainers
PileupMixingContent * getEventPileupInfo() override