CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
l1tpf::PFTrackProducerFromL1Tracks Class Reference
Inheritance diagram for l1tpf::PFTrackProducerFromL1Tracks:
edm::stream::EDProducer<>

Public Member Functions

 PFTrackProducerFromL1Tracks (const edm::ParameterSet &)
 
 ~PFTrackProducerFromL1Tracks () override
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

Private Member Functions

void produce (edm::Event &, const edm::EventSetup &) override
 

Private Attributes

edm::ESGetToken< MagneticField, IdealMagneticFieldRecordBFieldTag_
 
edm::ESWatcher< IdealMagneticFieldRecordBFieldWatcher_
 
float fBz_
 
int nParam_
 
l1tpf::ParametricResolution resolCalo_
 
l1tpf::ParametricResolution resolTrk_
 
edm::EDGetTokenT< std::vector< l1t::PFTrack::L1TTTrackType > > TrackTag_
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer<>
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 

Detailed Description

Definition at line 17 of file PFTrackProducerFromL1Tracks.cc.

Constructor & Destructor Documentation

◆ PFTrackProducerFromL1Tracks()

l1tpf::PFTrackProducerFromL1Tracks::PFTrackProducerFromL1Tracks ( const edm::ParameterSet iConfig)
explicit

Definition at line 35 of file PFTrackProducerFromL1Tracks.cc.

36  : TrackTag_(consumes<std::vector<l1t::PFTrack::L1TTTrackType>>(iConfig.getParameter<edm::InputTag>("L1TrackTag"))),
37  BFieldTag_{esConsumes<MagneticField, IdealMagneticFieldRecord>()},
38  nParam_(iConfig.getParameter<unsigned int>("nParam")),
39  resolCalo_(iConfig.getParameter<edm::ParameterSet>("resolCalo")),
40  resolTrk_(iConfig.getParameter<edm::ParameterSet>("resolTrack")) {
41  produces<l1t::PFTrackCollection>();
42 }

◆ ~PFTrackProducerFromL1Tracks()

l1tpf::PFTrackProducerFromL1Tracks::~PFTrackProducerFromL1Tracks ( )
inlineoverride

Definition at line 20 of file PFTrackProducerFromL1Tracks.cc.

20 {}

Member Function Documentation

◆ produce()

void l1tpf::PFTrackProducerFromL1Tracks::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivate

Definition at line 44 of file PFTrackProducerFromL1Tracks.cc.

44  {
45  if (BFieldWatcher_.check(iSetup)) {
46  fBz_ = iSetup.getData(BFieldTag_).inTesla(GlobalPoint(0, 0, 0)).z();
47  }
48 
49  std::unique_ptr<l1t::PFTrackCollection> out(new l1t::PFTrackCollection());
50 
51  // https://github.com/skinnari/cmssw/blob/80c19f1b721325c3a02ee0482f72fb974a4c3bf7/L1Trigger/TrackFindingTracklet/test/L1TrackNtupleMaker.cc
53  iEvent.getByToken(TrackTag_, htracks);
54  const auto &tracks = *htracks;
55 
56  for (unsigned int i = 0, n = tracks.size(); i < n; ++i) {
57  const auto &tk = tracks[i];
58 
59  float pt = tk.momentum().perp();
60  float eta = tk.momentum().eta();
61  float phi = tk.momentum().phi();
62  float z0 = tk.POCA().z(); //cm
63  int charge = tk.rInv() > 0 ? +1 : -1;
64 
65  reco::Candidate::PolarLorentzVector p4p(pt, eta, phi, 0.137); // pion mass
66  reco::Particle::LorentzVector p4(p4p.X(), p4p.Y(), p4p.Z(), p4p.E());
67  reco::Particle::Point vtx(0., 0., z0);
68 
69  auto caloetaphi = l1tpf::propagateToCalo(p4, math::XYZTLorentzVector(0., 0., z0, 0.), charge, fBz_);
70 
71  float trkErr = resolTrk_(pt, std::abs(eta));
72  float caloErr = resolCalo_(pt, std::abs(eta));
73  int quality = 1;
74  out->emplace_back(charge,
75  p4,
76  vtx,
77  l1t::PFTrack::TrackRef(htracks, i),
78  nParam_,
79  caloetaphi.first,
80  caloetaphi.second,
81  trkErr,
82  caloErr,
83  quality);
84  }
85  iEvent.put(std::move(out));
86 }

References funct::abs(), ALCARECOTkAlJpsiMuMu_cff::charge, PVValHelper::eta, edm::EventSetup::getData(), mps_fire::i, iEvent, eostools::move(), dqmiodumpmetadata::n, MillePedeFileConverter_cfg::out, p4, l1tpf::propagateToCalo(), DiDispStaMuonMonitor_cfi::pt, qcdUeDQM_cfi::quality, PDWG_EXOHSCP_cff::tracks, extraflags_cff::vtx, and HLTMuonOfflineAnalyzer_cfi::z0.

Member Data Documentation

◆ BFieldTag_

edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> l1tpf::PFTrackProducerFromL1Tracks::BFieldTag_
private

Definition at line 25 of file PFTrackProducerFromL1Tracks.cc.

◆ BFieldWatcher_

edm::ESWatcher<IdealMagneticFieldRecord> l1tpf::PFTrackProducerFromL1Tracks::BFieldWatcher_
private

Definition at line 24 of file PFTrackProducerFromL1Tracks.cc.

◆ fBz_

float l1tpf::PFTrackProducerFromL1Tracks::fBz_
private

Definition at line 27 of file PFTrackProducerFromL1Tracks.cc.

◆ nParam_

int l1tpf::PFTrackProducerFromL1Tracks::nParam_
private

Definition at line 26 of file PFTrackProducerFromL1Tracks.cc.

◆ resolCalo_

l1tpf::ParametricResolution l1tpf::PFTrackProducerFromL1Tracks::resolCalo_
private

Definition at line 28 of file PFTrackProducerFromL1Tracks.cc.

◆ resolTrk_

l1tpf::ParametricResolution l1tpf::PFTrackProducerFromL1Tracks::resolTrk_
private

Definition at line 28 of file PFTrackProducerFromL1Tracks.cc.

◆ TrackTag_

edm::EDGetTokenT<std::vector<l1t::PFTrack::L1TTTrackType> > l1tpf::PFTrackProducerFromL1Tracks::TrackTag_
private

Definition at line 23 of file PFTrackProducerFromL1Tracks.cc.

l1tpf::PFTrackProducerFromL1Tracks::TrackTag_
edm::EDGetTokenT< std::vector< l1t::PFTrack::L1TTTrackType > > TrackTag_
Definition: PFTrackProducerFromL1Tracks.cc:23
edm::ESWatcher::check
bool check(const edm::EventSetup &iSetup)
Definition: ESWatcher.h:52
l1tpf::PFTrackProducerFromL1Tracks::fBz_
float fBz_
Definition: PFTrackProducerFromL1Tracks.cc:27
PDWG_EXOHSCP_cff.tracks
tracks
Definition: PDWG_EXOHSCP_cff.py:28
mps_fire.i
i
Definition: mps_fire.py:428
dqmiodumpmetadata.n
n
Definition: dqmiodumpmetadata.py:28
DiDispStaMuonMonitor_cfi.pt
pt
Definition: DiDispStaMuonMonitor_cfi.py:39
reco::Candidate::PolarLorentzVector
math::PtEtaPhiMLorentzVector PolarLorentzVector
Lorentz vector.
Definition: Candidate.h:38
edm::Handle
Definition: AssociativeIterator.h:50
reco::Particle::LorentzVector
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Particle.h:21
edm::Ref< std::vector< L1TTTrackType > >
PVValHelper::eta
Definition: PVValidationHelpers.h:69
l1tpf::PFTrackProducerFromL1Tracks::BFieldWatcher_
edm::ESWatcher< IdealMagneticFieldRecord > BFieldWatcher_
Definition: PFTrackProducerFromL1Tracks.cc:24
HLTMuonOfflineAnalyzer_cfi.z0
z0
Definition: HLTMuonOfflineAnalyzer_cfi.py:98
GlobalPoint
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
l1t::PFTrackCollection
std::vector< l1t::PFTrack > PFTrackCollection
Definition: PFTrack.h:84
l1tpf::PFTrackProducerFromL1Tracks::BFieldTag_
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > BFieldTag_
Definition: PFTrackProducerFromL1Tracks.cc:25
l1tpf::PFTrackProducerFromL1Tracks::resolTrk_
l1tpf::ParametricResolution resolTrk_
Definition: PFTrackProducerFromL1Tracks.cc:28
ALCARECOTkAlJpsiMuMu_cff.charge
charge
Definition: ALCARECOTkAlJpsiMuMu_cff.py:47
edm::ParameterSet
Definition: ParameterSet.h:47
iEvent
int iEvent
Definition: GenABIO.cc:224
p4
double p4[4]
Definition: TauolaWrapper.h:92
edm::EventSetup::getData
bool getData(T &iHolder) const
Definition: EventSetup.h:120
DDAxes::phi
eostools.move
def move(src, dest)
Definition: eostools.py:511
l1tpf::PFTrackProducerFromL1Tracks::resolCalo_
l1tpf::ParametricResolution resolCalo_
Definition: PFTrackProducerFromL1Tracks.cc:28
qcdUeDQM_cfi.quality
quality
Definition: qcdUeDQM_cfi.py:31
extraflags_cff.vtx
vtx
Definition: extraflags_cff.py:18
math::XYZTLorentzVector
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
l1tpf::propagateToCalo
std::pair< float, float > propagateToCalo(const math::XYZTLorentzVector &iMom, const math::XYZTLorentzVector &iVtx, double iCharge, double iBField)
Definition: L1TPFUtils.cc:7
l1tpf::PFTrackProducerFromL1Tracks::nParam_
int nParam_
Definition: PFTrackProducerFromL1Tracks.cc:26
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
reco::Particle::Point
math::XYZPoint Point
point in the space
Definition: Particle.h:25
MillePedeFileConverter_cfg.out
out
Definition: MillePedeFileConverter_cfg.py:31
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
edm::InputTag
Definition: InputTag.h:15