CMS 3D CMS Logo

TrackingTruthAccumulator.h
Go to the documentation of this file.
1 #ifndef TrackingAnalysis_TrackingTruthAccumulator_h
2 #define TrackingAnalysis_TrackingTruthAccumulator_h
3 
6 #include <memory> // required for std::unique_ptr
9 
10 
11 // Forward declarations
12 namespace edm
13 {
14  class ParameterSet;
15  class ConsumesCollector;
16  class ProducerBase;
17  class Event;
18  class EventSetup;
19  class StreamID;
20 }
22 class PSimHit;
23 
24 
25 
74 {
75 public:
77 private:
78  void initializeEvent( const edm::Event& event, const edm::EventSetup& setup ) override;
79  void accumulate( const edm::Event& event, const edm::EventSetup& setup ) override;
80  void accumulate( const PileUpEventPrincipal& event, const edm::EventSetup& setup, edm::StreamID const& ) override;
81  void finalizeEvent( edm::Event& event, const edm::EventSetup& setup ) override;
82 
84  template<class T> void accumulateEvent( const T& event, const edm::EventSetup& setup, const edm::Handle< edm::HepMCProduct >& hepMCproduct );
85 
87  template<class T> void fillSimHits( std::vector<const PSimHit*>& returnValue, const T& event, const edm::EventSetup& setup );
88 
90 
91  const double volumeRadius_;
92  const double volumeZ_;
94  const double vertexDistanceCut_;
96 
99  const unsigned int maximumPreviousBunchCrossing_;
109  const bool addAncestors_;
110 
112  const bool removeDeadModules_;
115  std::vector<edm::InputTag> collectionTags_;
119 
126 
135 public:
136  // These always go hand in hand, and I need to pass them around in the internal
137  // functions, so I might as well package them up in a struct.
139  {
140  std::unique_ptr<TrackingParticleCollection> pTrackingParticles;
141  std::unique_ptr<TrackingVertexCollection> pTrackingVertices;
144  };
145 private:
148  std::unique_ptr<TrackingVertexCollection> pInitialVertices_;
149 };
150 
151 #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.
const bool addAncestors_
Whether or not to add the full parentage of any TrackingParticle that is inserted in the collection...
def setup(process, global_tag, zero_tesla=False)
Definition: GeneralSetup.py:1
const double vertexDistanceCut_
maximum distance for HepMC::GenVertex to be added to SimVertex
Definition: config.py:1
bool signalOnly_
Uses the same config as selector_, but can be used to drop out early since selector_ requires the Tra...
const unsigned int maximumSubsequentBunchCrossing_
const std::string messageCategory_
The message category used to send messages to MessageLogger.
bool allowDifferentProcessTypeForDifferentDetectors_
When counting hits, allows hits in different detectors to have a different process type...
const bool createInitialVertexCollection_
Whether or not to create a separate collection for just the initial interaction vertices.
const unsigned int maximumPreviousBunchCrossing_
HLT enums.
bool chargedOnly_
Uses the same config as selector_, but can be used to drop out early since selector_ requires the Tra...
const bool createUnmergedCollection_
If bremsstrahlung merging, whether to also add the unmerged collection to the event or not...
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_