test
CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
VertexAssociatorByTracksProducer.cc
Go to the documentation of this file.
10 
12 
15 
17 public:
20 
21  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
22 
23 private:
24  virtual void produce(edm::StreamID, edm::Event&, const edm::EventSetup&) const override;
25 
26  // ----------member data ---------------------------
27  const double R2SMatchedSimRatio_;
28  const double R2SMatchedRecoRatio_;
29  const double S2RMatchedSimRatio_;
30  const double S2RMatchedRecoRatio_;
31 
34 
37 };
38 
39 namespace {
40  TrackingParticleSelector makeSelector(const edm::ParameterSet& param) {
42  param.getParameter<double>("ptMinTP"),
43  param.getParameter<double>("minRapidityTP"),
44  param.getParameter<double>("maxRapidityTP"),
45  param.getParameter<double>("tipTP"),
46  param.getParameter<double>("lipTP"),
47  param.getParameter<int>("minHitTP"),
48  param.getParameter<bool>("signalOnlyTP"),
49  param.getParameter<bool>("intimeOnlyTP"),
50  param.getParameter<bool>("chargedOnlyTP"),
51  param.getParameter<bool>("stableOnlyTP"),
52  param.getParameter<std::vector<int> >("pdgIdTP")
53  );
54  }
55 }
56 
58  R2SMatchedSimRatio_(config.getParameter<double>("R2SMatchedSimRatio")),
59  R2SMatchedRecoRatio_(config.getParameter<double>("R2SMatchedRecoRatio")),
60  S2RMatchedSimRatio_(config.getParameter<double>("S2RMatchedSimRatio")),
61  S2RMatchedRecoRatio_(config.getParameter<double>("S2RMatchedRecoRatio")),
62  selector_(makeSelector(config.getParameter<edm::ParameterSet>("trackingParticleSelector"))),
63  trackQuality_(reco::TrackBase::qualityByName(config.getParameter<std::string>("trackQuality"))),
64  trackRecoToSimAssociationToken_(consumes<reco::RecoToSimCollection>(config.getParameter<edm::InputTag>("trackAssociation"))),
65  trackSimToRecoAssociationToken_(consumes<reco::SimToRecoCollection>(config.getParameter<edm::InputTag>("trackAssociation")))
66 {
67  produces<reco::VertexToTrackingVertexAssociator>();
68 }
69 
71 
74 
75  // Matching conditions
76  desc.add<double>("R2SMatchedSimRatio", 0.3);
77  desc.add<double>("R2SMatchedRecoRatio", 0.0);
78  desc.add<double>("S2RMatchedSimRatio", 0.0);
79  desc.add<double>("S2RMatchedRecoRatio", 0.3);
80 
81  //RecoTrack selection
82  desc.add<std::string>("trackQuality", "highPurity");
83 
84  // TrackingParticle selection
86 
87  descTp.add<double>("lipTP", 30.0);
88  descTp.add<bool>("chargedOnlyTP", true);
89  descTp.add<std::vector<int>>("pdgIdTP", std::vector<int>());
90  descTp.add<bool>("signalOnlyTP", true);
91  descTp.add<double>("minRapidityTP", -2.4);
92  descTp.add<int>("minHitTP", 0);
93  descTp.add<double>("ptMinTP", 0.9);
94  descTp.add<double>("maxRapidityTP", 2.4);
95  descTp.add<double>("tipTP", 3.5);
96  desc.add<edm::ParameterSetDescription>("trackingParticleSelector", descTp);
97 
98  // Track-TrackingParticle association
99  desc.add<edm::InputTag>("trackAssociation", edm::InputTag("trackingParticleRecoTrackAsssociation"));
100 
101  descriptions.add("VertexAssociatorByTracks", desc);
102 }
103 
105  edm::Handle<reco::RecoToSimCollection > recotosimCollectionH;
106  iEvent.getByToken(trackRecoToSimAssociationToken_, recotosimCollectionH);
107 
108  edm::Handle<reco::SimToRecoCollection > simtorecoCollectionH;
109  iEvent.getByToken(trackSimToRecoAssociationToken_, simtorecoCollectionH);
110 
111  auto impl = std::make_unique<VertexAssociatorByTracks>(&(iEvent.productGetter()),
116  &selector_,
118  recotosimCollectionH.product(),
119  simtorecoCollectionH.product());
120 
121  auto toPut = std::make_unique<reco::VertexToTrackingVertexAssociator>(std::move(impl));
122  iEvent.put(std::move(toPut));
123 }
124 
T getParameter(std::string const &) const
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:464
TrackQuality
track quality
Definition: TrackBase.h:149
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:17
EDProductGetter const & productGetter() const
Definition: Event.cc:60
const reco::TrackBase::TrackQuality trackQuality_
SingleObjectSelector< TrackingParticleCollection,::TrackingParticleSelector > TrackingParticleSelector
int iEvent
Definition: GenABIO.cc:230
VertexAssociatorByTracksProducer(const edm::ParameterSet &)
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:120
def move
Definition: eostools.py:510
ParameterDescriptionBase * add(U const &iLabel, T const &value)
virtual void produce(edm::StreamID, edm::Event &, const edm::EventSetup &) const override
T const * product() const
Definition: Handle.h:81
edm::AssociationMap< edm::OneToManyWithQualityGeneric< edm::View< reco::Track >, TrackingParticleCollection, double > > RecoToSimCollection
void add(std::string const &label, ParameterSetDescription const &psetDescription)
edm::EDGetTokenT< reco::SimToRecoCollection > trackSimToRecoAssociationToken_
edm::AssociationMap< edm::OneToManyWithQualityGeneric< TrackingParticleCollection, edm::View< reco::Track >, double > > SimToRecoCollection
edm::EDGetTokenT< reco::RecoToSimCollection > trackRecoToSimAssociationToken_
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)