CMS 3D CMS Logo

TrackingTruthAccumulator.h
Go to the documentation of this file.
1 #ifndef TrackingAnalysis_TrackingTruthAccumulator_h
2 #define TrackingAnalysis_TrackingTruthAccumulator_h
3 
8 #include <memory> // required for std::unique_ptr
9 
10 // Forward declarations
11 namespace edm {
12  class ParameterSet;
13  class ConsumesCollector;
14  class ProducerBase;
15  class Event;
16  class EventSetup;
17  class StreamID;
18 } // namespace edm
20 class PSimHit;
21 
90 public:
92  edm::ProducerBase &mixMod,
94 
95 private:
96  void initializeEvent(const edm::Event &event, const edm::EventSetup &setup) override;
97  void accumulate(const edm::Event &event, const edm::EventSetup &setup) override;
98  void accumulate(const PileUpEventPrincipal &event, const edm::EventSetup &setup, edm::StreamID const &) override;
99  void finalizeEvent(edm::Event &event, const edm::EventSetup &setup) override;
100 
102  template <class T>
103  void accumulateEvent(const T &event,
104  const edm::EventSetup &setup,
105  const edm::Handle<edm::HepMCProduct> &hepMCproduct);
106 
109  template <class T>
110  void fillSimHits(std::vector<const PSimHit *> &returnValue, const T &event, const edm::EventSetup &setup);
111 
113 
115  const double volumeRadius_;
116  const double volumeZ_;
118  const double vertexDistanceCut_;
120 
125  const unsigned int maximumPreviousBunchCrossing_;
140  const bool addAncestors_;
141 
143  const bool removeDeadModules_;
146  std::vector<edm::InputTag> collectionTags_;
150 
159 
171 
172 public:
173  // These always go hand in hand, and I need to pass them around in the
174  // internal functions, so I might as well package them up in a struct.
176  std::unique_ptr<TrackingParticleCollection> pTrackingParticles;
177  std::unique_ptr<TrackingVertexCollection> pTrackingVertices;
180  };
181 
182 private:
185  std::unique_ptr<TrackingVertexCollection> pInitialVertices_;
186 };
187 
188 #endif // end of "#ifndef TrackingAnalysis_TrackingTruthAccumulator_h"
std::unique_ptr< TrackingParticleCollection > pTrackingParticles
std::unique_ptr< TrackingVertexCollection > pInitialVertices_
std::unique_ptr< TrackingVertexCollection > pTrackingVertices
const bool removeDeadModules_
As of 11/Feb/2013 this option hasn&#39;t been implemented yet.
def setup(process, global_tag, zero_tesla=False)
Definition: GeneralSetup.py:2
const double vertexDistanceCut_
maximum distance for HepMC::GenVertex to be added to SimVertex
Definition: config.py:1
const unsigned int maximumSubsequentBunchCrossing_
bool allowDifferentProcessTypeForDifferentDetectors_
When counting hits, allows hits in different detectors to have a different process type...
const unsigned int maximumPreviousBunchCrossing_
HLT enums.
TrackingParticleSelector selector_
Replacement for TrackingTruthProducer in the new pileup mixing setup.
long double T
edm::InputTag hepMCproductLabel_
Needed to add HepMC::GenVertex to SimVertex.
Definition: event.py:1
std::vector< edm::InputTag > collectionTags_