CMS 3D CMS Logo

ShallowSimTracksProducer.cc
Go to the documentation of this file.
3 
8 
10 
12  : Prefix(conf.getParameter<std::string>("Prefix")),
13  Suffix(conf.getParameter<std::string>("Suffix")),
14  trackingParticles_token_(
15  consumes<TrackingParticleCollection>(conf.getParameter<edm::InputTag>("TrackingParticles"))),
16  associator_token_(
17  consumes<reco::TrackToTrackingParticleAssociator>(conf.getParameter<edm::InputTag>("Associator"))),
18  tracks_token_(consumes<edm::View<reco::Track>>(conf.getParameter<edm::InputTag>("Tracks"))) {
19  produces<std::vector<unsigned>>(Prefix + "multi" + Suffix);
20  produces<std::vector<int>>(Prefix + "type" + Suffix);
21  produces<std::vector<float>>(Prefix + "charge" + Suffix);
22  produces<std::vector<float>>(Prefix + "momentum" + Suffix);
23  produces<std::vector<float>>(Prefix + "pt" + Suffix);
24  produces<std::vector<double>>(Prefix + "theta" + Suffix);
25  produces<std::vector<double>>(Prefix + "phi" + Suffix);
26  produces<std::vector<double>>(Prefix + "eta" + Suffix);
27  produces<std::vector<double>>(Prefix + "qoverp" + Suffix);
28  produces<std::vector<double>>(Prefix + "vx" + Suffix);
29  produces<std::vector<double>>(Prefix + "vy" + Suffix);
30  produces<std::vector<double>>(Prefix + "vz" + Suffix);
31 }
32 
35  event.getByToken(tracks_token_, tracks);
39  event.getByToken(associator_token_, associator);
40 
41  unsigned size = tracks->size();
42  auto multi = std::make_unique<std::vector<unsigned>>(size, 0);
43  auto type = std::make_unique<std::vector<int>>(size, 0);
44  auto charge = std::make_unique<std::vector<float>>(size, 0);
45  auto momentum = std::make_unique<std::vector<float>>(size, -1);
46  auto pt = std::make_unique<std::vector<float>>(size, -1);
47  auto theta = std::make_unique<std::vector<double>>(size, -1000);
48  auto phi = std::make_unique<std::vector<double>>(size, -1000);
49  auto eta = std::make_unique<std::vector<double>>(size, -1000);
50  auto dxy = std::make_unique<std::vector<double>>(size, -1000);
51  auto dsz = std::make_unique<std::vector<double>>(size, -1000);
52  auto qoverp = std::make_unique<std::vector<double>>(size, -1000);
53  auto vx = std::make_unique<std::vector<double>>(size, -1000);
54  auto vy = std::make_unique<std::vector<double>>(size, -1000);
55  auto vz = std::make_unique<std::vector<double>>(size, -1000);
56 
58 
60  association++) {
61  const reco::Track* track = association->key.get();
62  const int matches = association->val.size();
63  if (matches > 0) {
64  const TrackingParticle* tparticle = association->val[0].first.get();
66 
67  multi->at(i) = matches;
68  type->at(i) = tparticle->pdgId();
69  charge->at(i) = tparticle->charge();
70  momentum->at(i) = tparticle->p();
71  pt->at(i) = tparticle->pt();
72  theta->at(i) = tparticle->theta();
73  phi->at(i) = tparticle->phi();
74  eta->at(i) = tparticle->eta();
75  qoverp->at(i) = tparticle->charge() / tparticle->p();
76 
77  const TrackingVertex* tvertex = tparticle->parentVertex().get();
78  vx->at(i) = tvertex->position().x();
79  vy->at(i) = tvertex->position().y();
80  vz->at(i) = tvertex->position().z();
81  }
82  }
83 
84  event.put(std::move(multi), Prefix + "multi" + Suffix);
85  event.put(std::move(type), Prefix + "type" + Suffix);
86  event.put(std::move(charge), Prefix + "charge" + Suffix);
87  event.put(std::move(momentum), Prefix + "momentum" + Suffix);
88  event.put(std::move(pt), Prefix + "pt" + Suffix);
89  event.put(std::move(theta), Prefix + "theta" + Suffix);
90  event.put(std::move(phi), Prefix + "phi" + Suffix);
91  event.put(std::move(eta), Prefix + "eta" + Suffix);
92  event.put(std::move(qoverp), Prefix + "qoverp" + Suffix);
93  event.put(std::move(vx), Prefix + "vx" + Suffix);
94  event.put(std::move(vy), Prefix + "vy" + Suffix);
95  event.put(std::move(vz), Prefix + "vz" + Suffix);
96 }
genericTrackCandidates_cff.associations
associations
Definition: genericTrackCandidates_cff.py:45
PDWG_EXOHSCP_cff.tracks
tracks
Definition: PDWG_EXOHSCP_cff.py:28
mps_fire.i
i
Definition: mps_fire.py:355
ShallowTools.h
MessageLogger.h
TrackingParticle::eta
double eta() const
Momentum pseudorapidity. Note this is taken from the first SimTrack only.
Definition: TrackingParticle.h:151
ESHandle.h
sistrip::View
View
Definition: ConstantsForView.h:26
DiDispStaMuonMonitor_cfi.pt
pt
Definition: DiDispStaMuonMonitor_cfi.py:39
edm
HLT enums.
Definition: AlignableModifier.h:19
TrackingVertex::position
const LorentzVector & position() const
Definition: TrackingVertex.h:71
TrackAssociation.h
edm::Ref::get
T const * get() const
Returns C++ pointer to the item.
Definition: Ref.h:232
TrackingParticle::parentVertex
const TrackingVertexRef & parentVertex() const
Definition: TrackingParticle.h:90
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:45
edm::Handle
Definition: AssociativeIterator.h:50
TrackToTrackingParticleAssociator
singleTopDQM_cfi.setup
setup
Definition: singleTopDQM_cfi.py:37
TrackingParticle::charge
float charge() const
Electric charge. Note this is taken from the first SimTrack only.
Definition: TrackingParticle.h:98
TrackingParticle::pt
double pt() const
Transverse momentum. Note this is taken from the first SimTrack only.
Definition: TrackingParticle.h:142
ShallowSimTracksProducer::trackingParticles_token_
const edm::EDGetTokenT< TrackingParticleCollection > trackingParticles_token_
Definition: ShallowSimTracksProducer.h:19
ShallowSimTracksProducer::tracks_token_
const edm::EDGetTokenT< edm::View< reco::Track > > tracks_token_
Definition: ShallowSimTracksProducer.h:21
PVValHelper::eta
Definition: PVValidationHelpers.h:69
TrackingParticle
Monte Carlo truth information used for tracking validation.
Definition: TrackingParticle.h:29
TrackingParticle::phi
double phi() const
Momentum azimuthal angle. Note this is taken from the first SimTrack only.
Definition: TrackingParticle.h:145
TrackingParticle::theta
double theta() const
Momentum polar angle. Note this is taken from the first SimTrack only.
Definition: TrackingParticle.h:148
reco::Track
Definition: Track.h:27
theta
Geom::Theta< T > theta() const
Definition: Basic3DVectorLD.h:150
ctfWithMaterialTrackMCMatch_cfi.associator
associator
Definition: ctfWithMaterialTrackMCMatch_cfi.py:7
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
ALCARECOTkAlJpsiMuMu_cff.charge
charge
Definition: ALCARECOTkAlJpsiMuMu_cff.py:47
ShallowSimTracksProducer::Prefix
const std::string Prefix
Definition: ShallowSimTracksProducer.h:17
edm::AssociationMap< edm::OneToManyWithQualityGeneric< edm::View< reco::Track >, TrackingParticleCollection, double > >::const_iterator
friend struct const_iterator
Definition: AssociationMap.h:274
ShallowSimTracksProducer::associator_token_
const edm::EDGetTokenT< reco::TrackToTrackingParticleAssociator > associator_token_
Definition: ShallowSimTracksProducer.h:20
HLT_2018_cff.InputTag
InputTag
Definition: HLT_2018_cff.py:79016
edm::ParameterSet
Definition: ParameterSet.h:36
Event.h
edm::AssociationMap< edm::OneToManyWithQualityGeneric< edm::View< reco::Track >, TrackingParticleCollection, double > >
TrackingVertex
Definition: TrackingVertex.h:22
muonClassificationByHits_cfi.trackingParticles
trackingParticles
Definition: muonClassificationByHits_cfi.py:28
TrackingParticle::pdgId
int pdgId() const
PDG ID.
Definition: TrackingParticle.h:61
trackerHitRTTI::multi
Definition: trackerHitRTTI.h:14
edm::EventSetup
Definition: EventSetup.h:57
TrackValidation_cff.association
association
Definition: TrackValidation_cff.py:286
ShallowSimTracksProducer::Suffix
const std::string Suffix
Definition: ShallowSimTracksProducer.h:18
ShallowSimTracksProducer::ShallowSimTracksProducer
ShallowSimTracksProducer(const edm::ParameterSet &)
Definition: ShallowSimTracksProducer.cc:11
DDAxes::phi
ShallowSimTracksProducer::produce
void produce(edm::Event &, const edm::EventSetup &) override
Definition: ShallowSimTracksProducer.cc:33
type
type
Definition: HCALResponse.h:21
eostools.move
def move(src, dest)
Definition: eostools.py:511
std
Definition: JetResolutionObject.h:76
PVValHelper::dxy
Definition: PVValidationHelpers.h:47
TrackingParticle::p
double p() const
Magnitude of momentum vector. Note this is taken from the first SimTrack only.
Definition: TrackingParticle.h:112
TrackingParticleCollection
std::vector< TrackingParticle > TrackingParticleCollection
Definition: TrackingParticleFwd.h:8
patCandidatesForDimuonsSequences_cff.matches
matches
Definition: patCandidatesForDimuonsSequences_cff.py:131
HLT_2018_cff.track
track
Definition: HLT_2018_cff.py:10352
ShallowSimTracksProducer.h
ParameterSet.h
event
Definition: event.py:1
edm::Event
Definition: Event.h:73
caloTruthCellsNtuples_cff.Prefix
Prefix
Definition: caloTruthCellsNtuples_cff.py:8
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443
shallow::findTrackIndex
int findTrackIndex(const edm::Handle< edm::View< reco::Track > > &h, const reco::Track *t)
Definition: ShallowTools.cc:25