CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
LightPFTrackProducer Class Reference
Inheritance diagram for LightPFTrackProducer:
edm::stream::EDProducer<>

Public Member Functions

 LightPFTrackProducer (const edm::ParameterSet &)
 Constructor. More...
 
 ~LightPFTrackProducer () override
 Destructor. More...
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

Private Member Functions

void beginRun (const edm::Run &, const edm::EventSetup &) override
 
void endRun (const edm::Run &, const edm::EventSetup &) override
 
void produce (edm::Event &, const edm::EventSetup &) override
 Produce the PFRecTrack collection. More...
 

Private Attributes

const edm::ESGetToken
< MagneticField,
IdealMagneticFieldRecord
magneticFieldToken_
 
PFTrackTransformerpfTransformer_
 PFTrackTransformer. More...
 
reco::TrackBase::TrackQuality trackQuality_
 
std::vector< edm::EDGetTokenT
< reco::TrackCollection > > 
tracksContainers_
 
bool useQuality_
 TRACK QUALITY. More...
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer<>
using CacheTypes = CacheContexts< T...>
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T...>
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 

Detailed Description

Definition at line 12 of file LightPFTrackProducer.cc.

Constructor & Destructor Documentation

LightPFTrackProducer::LightPFTrackProducer ( const edm::ParameterSet iConfig)
explicit

Constructor.

Definition at line 42 of file LightPFTrackProducer.cc.

References edm::BeginRun, edm::ParameterSet::getParameter(), mps_fire::i, reco::TrackBase::qualityByName(), AlCaHLTBitMon_QueryRunRegistry::string, getPayloadData::tags, trackQuality_, tracksContainers_, and useQuality_.

43  : pfTransformer_(nullptr), magneticFieldToken_(esConsumes<edm::Transition::BeginRun>()) {
44  produces<reco::PFRecTrackCollection>();
45 
46  std::vector<InputTag> tags = iConfig.getParameter<vector<InputTag> >("TkColList");
47 
48  for (unsigned int i = 0; i < tags.size(); ++i)
49  tracksContainers_.push_back(consumes<reco::TrackCollection>(tags[i]));
50 
51  useQuality_ = iConfig.getParameter<bool>("UseQuality");
53 }
PFTrackTransformer * pfTransformer_
PFTrackTransformer.
bool useQuality_
TRACK QUALITY.
static TrackQuality qualityByName(const std::string &name)
Definition: TrackBase.cc:126
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > magneticFieldToken_
std::vector< edm::EDGetTokenT< reco::TrackCollection > > tracksContainers_
reco::TrackBase::TrackQuality trackQuality_
LightPFTrackProducer::~LightPFTrackProducer ( )
override

Destructor.

Definition at line 55 of file LightPFTrackProducer.cc.

References pfTransformer_.

55 { delete pfTransformer_; }
PFTrackTransformer * pfTransformer_
PFTrackTransformer.

Member Function Documentation

void LightPFTrackProducer::beginRun ( const edm::Run run,
const edm::EventSetup iSetup 
)
overrideprivate

Definition at line 82 of file LightPFTrackProducer.cc.

References edm::EventSetup::getData(), HLT_FULL_cff::magneticField, magneticFieldToken_, PFTrackTransformer::OnlyProp(), and pfTransformer_.

82  {
83  auto const& magneticField = &iSetup.getData(magneticFieldToken_);
86 }
tuple magneticField
bool getData(T &iHolder) const
Definition: EventSetup.h:122
PFTrackTransformer * pfTransformer_
PFTrackTransformer.
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:31
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > magneticFieldToken_
void LightPFTrackProducer::endRun ( const edm::Run run,
const edm::EventSetup iSetup 
)
overrideprivate

Definition at line 89 of file LightPFTrackProducer.cc.

References pfTransformer_.

89  {
90  delete pfTransformer_;
91  pfTransformer_ = nullptr;
92 }
PFTrackTransformer * pfTransformer_
PFTrackTransformer.
void LightPFTrackProducer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivate

Produce the PFRecTrack collection.

Definition at line 57 of file LightPFTrackProducer.cc.

References PFTrackTransformer::addPoints(), edm::Event::getByToken(), mps_fire::i, reco::PFRecTrack::KF, eostools::move(), pfTransformer_, edm::Handle< T >::product(), edm::Event::put(), quality, trackQuality_, tracksContainers_, and useQuality_.

57  {
58  //create the empty collections
59  auto PfTrColl = std::make_unique<reco::PFRecTrackCollection>();
60 
61  for (unsigned int istr = 0; istr < tracksContainers_.size(); istr++) {
62  //Track collection
63  Handle<reco::TrackCollection> tkRefCollection;
64  iEvent.getByToken(tracksContainers_[istr], tkRefCollection);
65  reco::TrackCollection Tk = *(tkRefCollection.product());
66  for (unsigned int i = 0; i < Tk.size(); i++) {
67  if (useQuality_ && (!(Tk[i].quality(trackQuality_))))
68  continue;
69  reco::TrackRef trackRef(tkRefCollection, i);
70  reco::PFRecTrack pftrack(trackRef->charge(), reco::PFRecTrack::KF, i, trackRef);
71  Trajectory FakeTraj;
72  bool mymsgwarning = false;
73  bool valid = pfTransformer_->addPoints(pftrack, *trackRef, FakeTraj, mymsgwarning);
74  if (valid)
75  PfTrColl->push_back(pftrack);
76  }
77  }
78  iEvent.put(std::move(PfTrColl));
79 }
reconstructed track used as an input to particle flow
Definition: PFRecTrack.h:20
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:133
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
bool addPoints(reco::PFRecTrack &pftrack, const reco::Track &track, const Trajectory &traj, bool msgwarning=true) const
Add points to a PFTrack. return false if a TSOS is invalid.
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:14
string quality
PFTrackTransformer * pfTransformer_
PFTrackTransformer.
bool useQuality_
TRACK QUALITY.
def move
Definition: eostools.py:511
T const * product() const
Definition: Handle.h:70
std::vector< edm::EDGetTokenT< reco::TrackCollection > > tracksContainers_
reco::TrackBase::TrackQuality trackQuality_

Member Data Documentation

const edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> LightPFTrackProducer::magneticFieldToken_
private

Definition at line 31 of file LightPFTrackProducer.cc.

Referenced by beginRun().

PFTrackTransformer* LightPFTrackProducer::pfTransformer_
private
reco::TrackBase::TrackQuality LightPFTrackProducer::trackQuality_
private

Definition at line 34 of file LightPFTrackProducer.cc.

Referenced by LightPFTrackProducer(), and produce().

std::vector<edm::EDGetTokenT<reco::TrackCollection> > LightPFTrackProducer::tracksContainers_
private

Definition at line 29 of file LightPFTrackProducer.cc.

Referenced by LightPFTrackProducer(), and produce().

bool LightPFTrackProducer::useQuality_
private

TRACK QUALITY.

Definition at line 33 of file LightPFTrackProducer.cc.

Referenced by LightPFTrackProducer(), and produce().