CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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  namespace stream {
28  class EDProducerBase;
29  }
30  class Event;
31  class EventSetup;
32  class ParameterSet;
33  template<typename T> class Handle;
34  class StreamID;
35 }
36 
37 class MagneticField;
39 class PixelGeomDetUnit;
40 class PSimHit;
42 class TrackerGeometry;
43 
44 namespace CLHEP {
45  class HepRandomEngine;
46 }
47 
48 namespace cms {
50  public:
51 
53 
54  virtual ~SiPixelDigitizer();
55 
56  virtual void initializeEvent(edm::Event const& e, edm::EventSetup const& c) override;
57  virtual void accumulate(edm::Event const& e, edm::EventSetup const& c) override;
58  virtual void accumulate(PileUpEventPrincipal const& e, edm::EventSetup const& c, edm::StreamID const&) override;
59  virtual void finalizeEvent(edm::Event& e, edm::EventSetup const& c) override;
60 
61  virtual void beginJob() {}
62 
63  virtual void StorePileupInformation( std::vector<int> &numInteractionList,
64  std::vector<int> &bunchCrossingList,
65  std::vector<float> &TrueInteractionList,
66  std::vector<edm::EventID> &eventInfoList, int bunchSpacing){
67  PileupInfo_ = new PileupMixingContent(numInteractionList, bunchCrossingList, TrueInteractionList, eventInfoList, bunchSpacing);
68  }
69 
71 
72  private:
73  void accumulatePixelHits(edm::Handle<std::vector<PSimHit> >,
74  size_t globalSimHitIndex,
75  const unsigned int tofBin,
76  CLHEP::HepRandomEngine*,
77  edm::EventSetup const& c);
78  CLHEP::HepRandomEngine* randomEngine(edm::StreamID const& streamID);
79 
82  std::unique_ptr<SiPixelDigitizerAlgorithm> _pixeldigialgo;
91  std::map<std::string,size_t> crossingSimHitIndexOffset_;
92 
93  typedef std::vector<std::string> vstring;
99  std::map<unsigned int, PixelGeomDetUnit const *> detectorUnits;
100  std::vector<CLHEP::HepRandomEngine*> randomEngines_;
101 
103 
104  const bool pilotBlades; // Default = false
105  const int NumberOfEndcapDisks; // Default = 2
106 
107  // infrastructure to reject dead pixels as defined in db (added by F.Blekman)
108  };
109 }
110 
111 
112 #endif
virtual void finalizeEvent(edm::Event &e, edm::EventSetup const &c) override
virtual void beginJob()
CLHEP::HepRandomEngine * randomEngine(edm::StreamID const &streamID)
std::vector< CLHEP::HepRandomEngine * > randomEngines_
std::map< unsigned int, PixelGeomDetUnit const * > detectorUnits
edm::ESHandle< MagneticField > pSetup
std::vector< std::string > vstring
Definition: Event.h:16
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. ...
virtual void initializeEvent(edm::Event const &e, edm::EventSetup const &c) override
void accumulatePixelHits(edm::Handle< std::vector< PSimHit > >, size_t globalSimHitIndex, const unsigned int tofBin, CLHEP::HepRandomEngine *, edm::EventSetup const &c)
edm::ESHandle< TrackerGeometry > pDD
std::unique_ptr< SiPixelDigitizerAlgorithm > _pixeldigialgo
virtual void accumulate(edm::Event const &e, edm::EventSetup const &c) override
virtual void StorePileupInformation(std::vector< int > &numInteractionList, std::vector< int > &bunchCrossingList, std::vector< float > &TrueInteractionList, std::vector< edm::EventID > &eventInfoList, int bunchSpacing)
const std::string geometryType
PileupMixingContent * PileupInfo_
virtual PileupMixingContent * getEventPileupInfo()
const vstring trackerContainers
SiPixelDigitizer(const edm::ParameterSet &conf, edm::stream::EDProducerBase &mixMod, edm::ConsumesCollector &iC)