CMS 3D CMS Logo

ShallowSimTracksProducer.cc
Go to the documentation of this file.
3 
7 
9 
11  : Prefix(conf.getParameter<std::string>("Prefix")),
12  Suffix(conf.getParameter<std::string>("Suffix")),
13  trackingParticles_token_(
14  consumes<TrackingParticleCollection>(conf.getParameter<edm::InputTag>("TrackingParticles"))),
15  associator_token_(
16  consumes<reco::TrackToTrackingParticleAssociator>(conf.getParameter<edm::InputTag>("Associator"))),
17  tracks_token_(consumes<edm::View<reco::Track>>(conf.getParameter<edm::InputTag>("Tracks"))) {
18  produces<std::vector<unsigned>>(Prefix + "multi" + Suffix);
19  produces<std::vector<int>>(Prefix + "type" + Suffix);
20  produces<std::vector<float>>(Prefix + "charge" + Suffix);
21  produces<std::vector<float>>(Prefix + "momentum" + Suffix);
22  produces<std::vector<float>>(Prefix + "pt" + Suffix);
23  produces<std::vector<double>>(Prefix + "theta" + Suffix);
24  produces<std::vector<double>>(Prefix + "phi" + Suffix);
25  produces<std::vector<double>>(Prefix + "eta" + Suffix);
26  produces<std::vector<double>>(Prefix + "qoverp" + Suffix);
27  produces<std::vector<double>>(Prefix + "vx" + Suffix);
28  produces<std::vector<double>>(Prefix + "vy" + Suffix);
29  produces<std::vector<double>>(Prefix + "vz" + Suffix);
30 }
31 
34  event.getByToken(tracks_token_, tracks);
38  event.getByToken(associator_token_, associator);
39 
40  unsigned size = tracks->size();
41  auto multi = std::make_unique<std::vector<unsigned>>(size, 0);
42  auto type = std::make_unique<std::vector<int>>(size, 0);
43  auto charge = std::make_unique<std::vector<float>>(size, 0);
44  auto momentum = std::make_unique<std::vector<float>>(size, -1);
45  auto pt = std::make_unique<std::vector<float>>(size, -1);
46  auto theta = std::make_unique<std::vector<double>>(size, -1000);
47  auto phi = std::make_unique<std::vector<double>>(size, -1000);
48  auto eta = std::make_unique<std::vector<double>>(size, -1000);
49  auto dxy = std::make_unique<std::vector<double>>(size, -1000);
50  auto dsz = std::make_unique<std::vector<double>>(size, -1000);
51  auto qoverp = std::make_unique<std::vector<double>>(size, -1000);
52  auto vx = std::make_unique<std::vector<double>>(size, -1000);
53  auto vy = std::make_unique<std::vector<double>>(size, -1000);
54  auto vz = std::make_unique<std::vector<double>>(size, -1000);
55 
57 
59  association++) {
60  const reco::Track* track = association->key.get();
61  const int matches = association->val.size();
62  if (matches > 0) {
63  const TrackingParticle* tparticle = association->val[0].first.get();
65 
66  multi->at(i) = matches;
67  type->at(i) = tparticle->pdgId();
68  charge->at(i) = tparticle->charge();
69  momentum->at(i) = tparticle->p();
70  pt->at(i) = tparticle->pt();
71  theta->at(i) = tparticle->theta();
72  phi->at(i) = tparticle->phi();
73  eta->at(i) = tparticle->eta();
74  qoverp->at(i) = tparticle->charge() / tparticle->p();
75 
76  const TrackingVertex* tvertex = tparticle->parentVertex().get();
77  vx->at(i) = tvertex->position().x();
78  vy->at(i) = tvertex->position().y();
79  vz->at(i) = tvertex->position().z();
80  }
81  }
82 
83  event.put(std::move(multi), Prefix + "multi" + Suffix);
84  event.put(std::move(type), Prefix + "type" + Suffix);
85  event.put(std::move(charge), Prefix + "charge" + Suffix);
86  event.put(std::move(momentum), Prefix + "momentum" + Suffix);
87  event.put(std::move(pt), Prefix + "pt" + Suffix);
88  event.put(std::move(theta), Prefix + "theta" + Suffix);
89  event.put(std::move(phi), Prefix + "phi" + Suffix);
90  event.put(std::move(eta), Prefix + "eta" + Suffix);
91  event.put(std::move(qoverp), Prefix + "qoverp" + Suffix);
92  event.put(std::move(vx), Prefix + "vx" + Suffix);
93  event.put(std::move(vy), Prefix + "vy" + Suffix);
94  event.put(std::move(vz), Prefix + "vz" + Suffix);
95 }
LCToCPAssociation_cfi.associator
associator
Definition: LCToCPAssociation_cfi.py:4
genericTrackCandidates_cff.associations
associations
Definition: genericTrackCandidates_cff.py:45
mps_fire.i
i
Definition: mps_fire.py:428
ShallowTools.h
HLT_FULL_cff.track
track
Definition: HLT_FULL_cff.py:11713
MessageLogger.h
TrackingParticle::eta
double eta() const
Momentum pseudorapidity. Note this is taken from the first SimTrack only.
Definition: TrackingParticle.h:151
sistrip::View
View
Definition: ConstantsForView.h:26
DiDispStaMuonMonitor_cfi.pt
pt
Definition: DiDispStaMuonMonitor_cfi.py:39
edm
HLT enums.
Definition: AlignableModifier.h:19
oniaPATMuonsWithTrigger_cff.matches
matches
Definition: oniaPATMuonsWithTrigger_cff.py:77
TrackingVertex::position
const LorentzVector & position() const
Definition: TrackingVertex.h:71
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89281
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
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:70
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
L1TCaloTriggerNtuples_cff.Prefix
Prefix
Definition: L1TCaloTriggerNtuples_cff.py:8
reco::Track
Definition: Track.h:27
theta
Geom::Theta< T > theta() const
Definition: Basic3DVectorLD.h:150
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
edm::ParameterSet
Definition: ParameterSet.h:47
Event.h
tracks
const uint32_t *__restrict__ const HitContainer *__restrict__ TkSoA *__restrict__ tracks
Definition: CAHitNtupletGeneratorKernelsImpl.h:159
edm::AssociationMap< edm::OneToManyWithQualityGeneric< edm::View< reco::Track >, TrackingParticleCollection, double > >
type
type
Definition: SiPixelVCal_PayloadInspector.cc:37
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:58
ShallowSimTracksProducer::Suffix
const std::string Suffix
Definition: ShallowSimTracksProducer.h:18
ShallowSimTracksProducer::ShallowSimTracksProducer
ShallowSimTracksProducer(const edm::ParameterSet &)
Definition: ShallowSimTracksProducer.cc:10
DDAxes::phi
eostools.move
def move(src, dest)
Definition: eostools.py:511
std
Definition: JetResolutionObject.h:76
hgcal::association
std::tuple< layerClusterToCaloParticle, caloParticleToLayerCluster > association
Definition: LayerClusterAssociatorByEnergyScoreImpl.h:44
PVValHelper::dxy
Definition: PVValidationHelpers.h:48
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:9
ShallowSimTracksProducer::produce
void produce(edm::Event &iEvent, const edm::EventSetup &iSetup) override
Definition: ShallowSimTracksProducer.cc:32
ShallowSimTracksProducer.h
ParameterSet.h
event
Definition: event.py:1
edm::Event
Definition: Event.h:73
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