CMS 3D CMS Logo

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

Public Member Functions

 PFClusterTimeAssigner (const edm::ParameterSet &conf)
 
void produce (edm::Event &e, const edm::EventSetup &es) 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
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 

Private Attributes

edm::EDGetTokenT< reco::PFClusterCollectionclustersTok_
 
edm::EDGetTokenT< edm::ValueMap< float > > timeResosTok_
 
edm::EDGetTokenT< edm::ValueMap< float > > timesTok_
 

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 19 of file PFClusterTimeAssigner.cc.

Constructor & Destructor Documentation

◆ PFClusterTimeAssigner()

PFClusterTimeAssigner::PFClusterTimeAssigner ( const edm::ParameterSet conf)
inline

Definition at line 21 of file PFClusterTimeAssigner.cc.

21  {
22  const edm::InputTag& clusters = conf.getParameter<edm::InputTag>("src");
23  clustersTok_ = consumes<reco::PFClusterCollection>(clusters);
24 
25  const edm::InputTag& times = conf.getParameter<edm::InputTag>("timeSrc");
26  timesTok_ = consumes<edm::ValueMap<float> >(times);
27 
28  const edm::InputTag& timeResos = conf.getParameter<edm::InputTag>("timeResoSrc");
29  timeResosTok_ = consumes<edm::ValueMap<float> >(timeResos);
30 
31  produces<reco::PFClusterCollection>();
32  }

References bsc_activity_cfg::clusters, clustersTok_, edm::ParameterSet::getParameter(), timeResosTok_, and timesTok_.

Member Function Documentation

◆ fillDescriptions()

void PFClusterTimeAssigner::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 73 of file PFClusterTimeAssigner.cc.

73  {
75  desc.add<edm::InputTag>("src", edm::InputTag("particleFlowClusterECALUncorrected"));
76  desc.add<edm::InputTag>("timeSrc", edm::InputTag("ecalBarrelClusterFastTimer"));
77  desc.add<edm::InputTag>("timeResoSrc", edm::InputTag("ecalBarrelClusterFastTimer"));
78  descriptions.add("particleFlowClusterTimeAssignerDefault", desc);
79 }

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), and HLT_2018_cff::InputTag.

◆ produce()

void PFClusterTimeAssigner::produce ( edm::Event e,
const edm::EventSetup es 
)
override

Definition at line 45 of file PFClusterTimeAssigner.cc.

45  {
46  auto clusters_out = std::make_unique<reco::PFClusterCollection>();
47 
49  e.getByToken(clustersTok_, clustersH);
50  edm::Handle<edm::ValueMap<float> > timesH, timeResosH;
51  e.getByToken(timesTok_, timesH);
52  e.getByToken(timeResosTok_, timeResosH);
53 
54  auto const& clusters = *clustersH;
55  auto const& times = *timesH;
56  auto const& timeResos = *timeResosH;
57 
58  clusters_out->reserve(clusters.size());
59  clusters_out->insert(clusters_out->end(), clusters.begin(), clusters.end());
60 
61  //build the EE->PS association
62  auto& out = *clusters_out;
63  for (unsigned i = 0; i < out.size(); ++i) {
64  edm::Ref<reco::PFClusterCollection> clusterRef(clustersH, i);
65  const float time = times[clusterRef];
66  const float timeReso = timeResos[clusterRef];
67  out[i].setTime(time, timeReso);
68  }
69 
70  e.put(std::move(clusters_out));
71 }

References bsc_activity_cfg::clusters, clustersTok_, MillePedeFileConverter_cfg::e, mps_fire::i, eostools::move(), MillePedeFileConverter_cfg::out, ntuplemaker::time, timeResosTok_, and timesTok_.

Member Data Documentation

◆ clustersTok_

edm::EDGetTokenT<reco::PFClusterCollection> PFClusterTimeAssigner::clustersTok_
private

Definition at line 38 of file PFClusterTimeAssigner.cc.

Referenced by PFClusterTimeAssigner(), and produce().

◆ timeResosTok_

edm::EDGetTokenT<edm::ValueMap<float> > PFClusterTimeAssigner::timeResosTok_
private

Definition at line 40 of file PFClusterTimeAssigner.cc.

Referenced by PFClusterTimeAssigner(), and produce().

◆ timesTok_

edm::EDGetTokenT<edm::ValueMap<float> > PFClusterTimeAssigner::timesTok_
private

Definition at line 39 of file PFClusterTimeAssigner.cc.

Referenced by PFClusterTimeAssigner(), and produce().

mps_fire.i
i
Definition: mps_fire.py:355
edm::ParameterSetDescription::add
ParameterDescriptionBase * add(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:95
PFClusterTimeAssigner::timesTok_
edm::EDGetTokenT< edm::ValueMap< float > > timesTok_
Definition: PFClusterTimeAssigner.cc:39
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
edm::Handle
Definition: AssociativeIterator.h:50
edm::Ref
Definition: AssociativeIterator.h:58
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
bsc_activity_cfg.clusters
clusters
Definition: bsc_activity_cfg.py:36
HLT_2018_cff.InputTag
InputTag
Definition: HLT_2018_cff.py:79016
PFClusterTimeAssigner::clustersTok_
edm::EDGetTokenT< reco::PFClusterCollection > clustersTok_
Definition: PFClusterTimeAssigner.cc:38
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
eostools.move
def move(src, dest)
Definition: eostools.py:511
MillePedeFileConverter_cfg.out
out
Definition: MillePedeFileConverter_cfg.py:31
ntuplemaker.time
time
Definition: ntuplemaker.py:310
edm::InputTag
Definition: InputTag.h:15
PFClusterTimeAssigner::timeResosTok_
edm::EDGetTokenT< edm::ValueMap< float > > timeResosTok_
Definition: PFClusterTimeAssigner.cc:40
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37