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 hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () 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, badGlobalMuonTaggersAOD_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:355
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
badGlobalMuonTaggersAOD_cff.vtx
vtx
Definition: badGlobalMuonTaggersAOD_cff.py:5
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:36
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:113
DDAxes::phi
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
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
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
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