CMS 3D CMS Logo

TrackingParticleNumberOfLayersProducer.cc
Go to the documentation of this file.
7 
9 
16 public:
18 
19  static void fillDescriptions(edm::ConfigurationDescriptions &descriptions);
20 
21  void produce(edm::StreamID, edm::Event &iEvent, const edm::EventSetup &iSetup) const override;
22 
23 private:
25  std::vector<edm::EDGetTokenT<std::vector<PSimHit>>> simHitTokens_;
26 };
27 
29  : tpToken_(consumes<TrackingParticleCollection>(iConfig.getParameter<edm::InputTag>("trackingParticles"))) {
30  for (const auto &tag : iConfig.getParameter<std::vector<edm::InputTag>>("simHits")) {
31  simHitTokens_.push_back(consumes<std::vector<PSimHit>>(tag));
32  }
33 
34  produces<edm::ValueMap<unsigned int>>("trackerLayers");
35  produces<edm::ValueMap<unsigned int>>("pixelLayers");
36  produces<edm::ValueMap<unsigned int>>("stripStereoLayers");
37 }
38 
41  desc.add<edm::InputTag>("trackingParticles", edm::InputTag("mix", "MergedTrackTruth"));
42 
43  desc.add<std::vector<edm::InputTag>>("simHits",
44  {edm::InputTag("g4SimHits", "TrackerHitsPixelBarrelLowTof"),
45  edm::InputTag("g4SimHits", "TrackerHitsPixelBarrelHighTof"),
46  edm::InputTag("g4SimHits", "TrackerHitsPixelEndcapLowTof"),
47  edm::InputTag("g4SimHits", "TrackerHitsPixelEndcapHighTof"),
48  edm::InputTag("g4SimHits", "TrackerHitsTIBLowTof"),
49  edm::InputTag("g4SimHits", "TrackerHitsTIBHighTof"),
50  edm::InputTag("g4SimHits", "TrackerHitsTIDLowTof"),
51  edm::InputTag("g4SimHits", "TrackerHitsTIDHighTof"),
52  edm::InputTag("g4SimHits", "TrackerHitsTOBLowTof"),
53  edm::InputTag("g4SimHits", "TrackerHitsTOBHighTof"),
54  edm::InputTag("g4SimHits", "TrackerHitsTECLowTof"),
55  edm::InputTag("g4SimHits", "TrackerHitsTECHighTof")});
56 
57  descriptions.add("trackingParticleNumberOfLayersProducer", desc);
58 }
59 
62  const edm::EventSetup &iSetup) const {
64  iEvent.getByToken(tpToken_, htps);
65 
67  auto ret = algo.calculate(htps, iSetup);
68  iEvent.put(std::move(std::get<TrackingParticleNumberOfLayers::nTrackerLayers>(ret)), "trackerLayers");
69  iEvent.put(std::move(std::get<TrackingParticleNumberOfLayers::nPixelLayers>(ret)), "pixelLayers");
70  iEvent.put(std::move(std::get<TrackingParticleNumberOfLayers::nStripMonoAndStereoLayers>(ret)), "stripStereoLayers");
71 }
72 
T getParameter(std::string const &) const
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:125
std::vector< TrackingParticle > TrackingParticleCollection
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
std::vector< edm::EDGetTokenT< std::vector< PSimHit > > > simHitTokens_
TrackingParticleNumberOfLayersProducer(const edm::ParameterSet &iConfig)
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
int iEvent
Definition: GenABIO.cc:224
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
void produce(edm::StreamID, edm::Event &iEvent, const edm::EventSetup &iSetup) const override
edm::EDGetTokenT< TrackingParticleCollection > tpToken_
ParameterDescriptionBase * add(U const &iLabel, T const &value)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
std::tuple< std::unique_ptr< edm::ValueMap< unsigned int > >, std::unique_ptr< edm::ValueMap< unsigned int > >, std::unique_ptr< edm::ValueMap< unsigned int > > > calculate(const edm::Handle< TrackingParticleCollection > &tps, const edm::EventSetup &iSetup) const
HLT enums.
def move(src, dest)
Definition: eostools.py:511