Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:30:32

0001 #ifndef SimDataMixingGeneralTrackWorker_h
0002 #define SimDataMixingGeneralTrackWorker_h
0003 
0004 /** \class DataMixingGeneralTrackWorker
0005  *
0006  * DataMixingModule is the EDProducer subclass
0007  * that overlays rawdata events on top of MC,
0008  * using real data for pileup simulation
0009  * This class takes care of the GeneralTrack information
0010  *
0011  * \author Mike Hildreth, University of Notre Dame
0012  *
0013  * \version   1st Version October 2007
0014  *
0015  ************************************************************/
0016 
0017 #include "FWCore/Framework/interface/ConsumesCollector.h"
0018 #include "FWCore/Framework/interface/Event.h"
0019 #include "FWCore/Framework/interface/EventPrincipal.h"
0020 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0021 
0022 #include "DataFormats/Common/interface/Handle.h"
0023 #include "DataFormats/Provenance/interface/ProductID.h"
0024 // Data Formats
0025 #include "DataFormats/TrackReco/interface/Track.h"
0026 #include "DataFormats/TrackReco/interface/TrackExtra.h"
0027 #include "DataFormats/TrackReco/interface/TrackFwd.h"
0028 
0029 #include <map>
0030 #include <string>
0031 #include <vector>
0032 
0033 namespace edm {
0034   class ModuleCallingContext;
0035 
0036   class DataMixingGeneralTrackWorker {
0037   public:
0038     DataMixingGeneralTrackWorker();
0039 
0040     /** standard constructor*/
0041     explicit DataMixingGeneralTrackWorker(const edm::ParameterSet &ps, edm::ConsumesCollector &&iC);
0042 
0043     /**Default destructor*/
0044     virtual ~DataMixingGeneralTrackWorker();
0045 
0046     void putGeneralTrack(edm::Event &e);
0047     void addGeneralTrackSignals(const edm::Event &e);
0048     void addGeneralTrackPileups(const int bcr,
0049                                 const edm::EventPrincipal *,
0050                                 unsigned int EventId,
0051                                 ModuleCallingContext const *);
0052 
0053   private:
0054     // data specifiers
0055 
0056     edm::InputTag GeneralTrackcollectionSig_;  // primary name given to collection
0057                                                // of GeneralTracks
0058     edm::InputTag GeneralTrackLabelSig_;       // secondary name given to collection of
0059                                                // GeneralTracks
0060     edm::InputTag GeneralTrackPileInputTag_;   // InputTag for pileup tracks
0061     std::string GeneralTrackCollectionDM_;     // secondary name to be given to new
0062                                                // GeneralTrack
0063 
0064     edm::EDGetTokenT<reco::TrackCollection> GTrackSigToken_;   // Token to retrieve information
0065     edm::EDGetTokenT<reco::TrackCollection> GTrackPileToken_;  // Token to retrieve information
0066 
0067     //
0068 
0069     std::unique_ptr<reco::TrackCollection> NewTrackList_;
0070   };
0071 }  // namespace edm
0072 
0073 #endif  // SimDataMixingGeneralTrackWorker_h