37 BFieldTag_{esConsumes<MagneticField, IdealMagneticFieldRecord>()},
41 produces<l1t::PFTrackCollection>();
54 const auto &
tracks = *htracks;
56 for (
unsigned int i = 0,
n =
tracks.size();
i <
n; ++
i) {
59 float pt = tk.momentum().perp();
60 float eta = tk.momentum().eta();
61 float phi = tk.momentum().phi();
62 float z0 = tk.POCA().z();
63 int charge = tk.rInv() > 0 ? +1 : -1;
74 out->emplace_back(charge,
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
edm::ESWatcher< IdealMagneticFieldRecord > BFieldWatcher_
std::pair< float, float > propagateToCalo(const math::XYZTLorentzVector &iMom, const math::XYZTLorentzVector &iVtx, double iCharge, double iBField)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
#define DEFINE_FWK_MODULE(type)
Global3DPoint GlobalPoint
auto const & tracks
cannot be loose
void produce(edm::Event &, const edm::EventSetup &) override
bool getData(T &iHolder) const
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
edm::EDGetTokenT< std::vector< l1t::PFTrack::L1TTTrackType > > TrackTag_
math::XYZPoint Point
point in the space
Abs< T >::type abs(const T &t)
l1tpf::ParametricResolution resolCalo_
~PFTrackProducerFromL1Tracks() override
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > BFieldTag_
TTTrack< Ref_Phase2TrackerDigi_ > L1TTTrackType
T getParameter(std::string const &) const
bool check(const edm::EventSetup &iSetup)
std::vector< l1t::PFTrack > PFTrackCollection
PFTrackProducerFromL1Tracks(const edm::ParameterSet &)
l1tpf::ParametricResolution resolTrk_
math::XYZTLorentzVector LorentzVector
Lorentz vector.
math::PtEtaPhiMLorentzVector PolarLorentzVector
Lorentz vector.