CMS 3D CMS Logo

PFEGammaProducer.cc
Go to the documentation of this file.
1 
35 
37 public:
38  explicit PFEGammaProducer(const edm::ParameterSet&);
39 
40  void produce(edm::StreamID, edm::Event&, const edm::EventSetup&) const override;
41 
42  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
43 
44 private:
46  const edm::RefProd<reco::ConversionCollection>& convProd) const;
47 
51 
58 
62 };
63 
66 
67 #ifdef PFLOW_DEBUG
68 #define LOGDRESSED(x) edm::LogInfo(x)
69 #else
70 #define LOGDRESSED(x) LogDebug(x)
71 #endif
72 
74  : inputTagBlocks_(consumes<reco::PFBlockCollection>(iConfig.getParameter<edm::InputTag>("blocks"))),
75  eetopsSrc_(consumes<reco::PFCluster::EEtoPSAssociation>(iConfig.getParameter<edm::InputTag>("EEtoPS_source"))),
76  vertices_(consumes<reco::VertexCollection>(iConfig.getParameter<edm::InputTag>("vertexCollection"))),
77  pfCandidateCollectionPutToken_{produces<reco::PFCandidateCollection>()},
78  pfCandidateEGammaExtraCollectionPutToken_{produces<reco::PFCandidateEGammaExtraCollection>()},
79  superClusterCollectionPutToken_{produces<reco::SuperClusterCollection>()},
80  caloClusterCollectionEBEEPutToken_{produces<reco::CaloClusterCollection>("EBEEClusters")},
81  caloClusterCollectionESPutToken_{produces<reco::CaloClusterCollection>("ESClusters")},
82  conversionCollectionPutToken_{produces<reco::ConversionCollection>()},
83  pfEGConfigInfo_{
84  .mvaEleCut = iConfig.getParameter<double>("pf_electron_mvaCut"),
85  .applyCrackCorrections = iConfig.getParameter<bool>("pf_electronID_crackCorrection"),
86  .produceEGCandsWithNoSuperCluster = iConfig.getParameter<bool>("produceEGCandsWithNoSuperCluster"),
87  .mvaConvCut = iConfig.getParameter<double>("pf_conv_mvaCut"),
88  },
89  gbrForests_{
90  iConfig,
91  } {}
92 
94  LOGDRESSED("PFEGammaProducer") << "START event: " << iEvent.id().event() << " in run " << iEvent.id().run()
95  << std::endl;
96 
97  // output collections
98  reco::PFCandidateCollection egCandidates{};
100  reco::SuperClusterCollection sClusters{};
101 
102  // preshower conditions
103  edm::ESHandle<ESEEIntercalibConstants> esEEInterCalibHandle_;
104  iSetup.get<ESEEIntercalibConstantsRcd>().get(esEEInterCalibHandle_);
105 
106  edm::ESHandle<ESChannelStatus> esChannelStatusHandle_;
107  iSetup.get<ESChannelStatusRcd>().get(esChannelStatusHandle_);
108 
109  //Assign the PFAlgo Parameters
110  auto const& primaryVertices = iEvent.get(vertices_);
111  auto const* primaryVertex = &primaryVertices.front();
112  for (auto const& pv : primaryVertices) {
113  if (pv.isValid() && !pv.isFake()) {
114  primaryVertex = &pv;
115  break;
116  }
117  }
118 
119  PFEGammaAlgo pfEGammaAlgo{pfEGConfigInfo_,
120  gbrForests_,
121  iEvent.get(eetopsSrc_),
122  *esEEInterCalibHandle_,
123  *esChannelStatusHandle_,
124  *primaryVertex};
125 
126  // get the collection of blocks
127 
128  LOGDRESSED("PFEGammaProducer") << "getting blocks" << std::endl;
129  auto blocks = iEvent.getHandle(inputTagBlocks_);
130 
131  LOGDRESSED("PFEGammaProducer") << "EGPFlow is starting..." << std::endl;
132 
133 #ifdef PFLOW_DEBUG
134  assert(blocks.isValid() && "edm::Handle to blocks was null!");
135  std::ostringstream str;
136  //str<<(*pfAlgo_)<<std::endl;
137  // cout << (*pfAlgo_) << std::endl;
138  LOGDRESSED("PFEGammaProducer") << str.str() << std::endl;
139 #endif
140 
141  // sort elements in three lists:
142  std::list<reco::PFBlockRef> hcalBlockRefs;
143  std::list<reco::PFBlockRef> ecalBlockRefs;
144  std::list<reco::PFBlockRef> hoBlockRefs;
145  std::list<reco::PFBlockRef> otherBlockRefs;
146 
147  for (unsigned i = 0; i < blocks->size(); ++i) {
148  reco::PFBlockRef blockref(blocks, i);
149 
150  const edm::OwnVector<reco::PFBlockElement>& elements = blockref->elements();
151 
152  LOGDRESSED("PFEGammaProducer") << "Found " << elements.size() << " PFBlockElements in block: " << i << std::endl;
153 
154  bool singleEcalOrHcal = false;
155  if (elements.size() == 1) {
156  switch (elements[0].type()) {
158  edm::LogError("PFEGammaProducer") << "PFBLOCKALGO BUG!!!! Found a SuperCluster in a block by itself!";
159  break;
163  ecalBlockRefs.push_back(blockref);
164  singleEcalOrHcal = true;
165  break;
169  if (elements[0].clusterRef()->flags() & reco::CaloCluster::badHcalMarker)
170  continue;
171  hcalBlockRefs.push_back(blockref);
172  singleEcalOrHcal = true;
173  break;
175  // Single HO elements are likely to be noise. Not considered for now.
176  hoBlockRefs.push_back(blockref);
177  singleEcalOrHcal = true;
178  break;
179  default:
180  break;
181  }
182  }
183 
184  if (!singleEcalOrHcal) {
185  otherBlockRefs.push_back(blockref);
186  }
187  } //loop blocks
188 
189  // loop on blocks that are not single ecal, single ps1, single ps2 , or
190  // single hcal and produce unbiased collection of EGamma Candidates
191 
192  //printf("loop over blocks\n");
193  unsigned nblcks = 0;
194 
195  // this auto is a const reco::PFBlockRef&
196  for (const auto& blockref : otherBlockRefs) {
197  ++nblcks;
198  // this auto is a: const edm::OwnVector< reco::PFBlockElement >&
199  const auto& elements = blockref->elements();
200  // make a copy of the link data, which will be edited.
201  //PFBlock::LinkData linkData = block.linkData();
202 
203  auto output = pfEGammaAlgo(blockref);
204 
205  if (!output.candidates.empty()) {
206  LOGDRESSED("PFEGammaProducer") << "Block with " << elements.size() << " elements produced "
207  << output.candidates.size() << " e-g candidates!" << std::endl;
208  }
209 
210  const size_t egsize = egCandidates.size();
211  egCandidates.resize(egsize + output.candidates.size());
212  std::move(output.candidates.begin(), output.candidates.end(), egCandidates.begin() + egsize);
213 
214  const size_t egxsize = egExtra.size();
215  egExtra.resize(egxsize + output.candidateExtras.size());
216  std::move(output.candidateExtras.begin(), output.candidateExtras.end(), egExtra.begin() + egxsize);
217 
218  const size_t rscsize = sClusters.size();
219  sClusters.resize(rscsize + output.refinedSuperClusters.size());
220  std::move(output.refinedSuperClusters.begin(), output.refinedSuperClusters.end(), sClusters.begin() + rscsize);
221  }
222 
223  LOGDRESSED("PFEGammaProducer") << "Running PFEGammaAlgo on all blocks produced = " << egCandidates.size()
224  << " e-g candidates!" << std::endl;
225 
226  auto sClusterProd = iEvent.getRefBeforePut<reco::SuperClusterCollection>();
227  auto egXtraProd = iEvent.getRefBeforePut<reco::PFCandidateEGammaExtraCollection>();
228 
229  //set the correct references to refined SC and EG extra using the refprods
230  for (unsigned int i = 0; i < egCandidates.size(); ++i) {
231  reco::PFCandidate& cand = egCandidates.at(i);
232  reco::PFCandidateEGammaExtra& xtra = egExtra.at(i);
233 
234  reco::PFCandidateEGammaExtraRef extraref(egXtraProd, i);
235  reco::SuperClusterRef refinedSCRef(sClusterProd, i);
236 
237  xtra.setSuperClusterRef(refinedSCRef);
238  cand.setSuperClusterRef(refinedSCRef);
239  cand.setPFEGammaExtraRef(extraref);
240  }
241 
242  //build collections of output CaloClusters from the used PFClusters
243  reco::CaloClusterCollection caloClustersEBEE{};
244  reco::CaloClusterCollection caloClustersES{};
245 
246  std::map<edm::Ptr<reco::CaloCluster>, unsigned int> pfClusterMapEBEE; //maps of pfclusters to caloclusters
247  std::map<edm::Ptr<reco::CaloCluster>, unsigned int> pfClusterMapES;
248 
249  for (const auto& sc : sClusters) {
250  for (reco::CaloCluster_iterator pfclus = sc.clustersBegin(); pfclus != sc.clustersEnd(); ++pfclus) {
251  if (!pfClusterMapEBEE.count(*pfclus)) {
252  reco::CaloCluster caloclus(**pfclus);
253  caloClustersEBEE.push_back(caloclus);
254  pfClusterMapEBEE[*pfclus] = caloClustersEBEE.size() - 1;
255  } else {
256  throw cms::Exception("PFEgammaProducer::produce")
257  << "Found an EB/EE pfcluster matched to more than one supercluster!" << std::dec << std::endl;
258  }
259  }
260  for (reco::CaloCluster_iterator pfclus = sc.preshowerClustersBegin(); pfclus != sc.preshowerClustersEnd();
261  ++pfclus) {
262  if (!pfClusterMapES.count(*pfclus)) {
263  reco::CaloCluster caloclus(**pfclus);
264  caloClustersES.push_back(caloclus);
265  pfClusterMapES[*pfclus] = caloClustersES.size() - 1;
266  } else {
267  throw cms::Exception("PFEgammaProducer::produce")
268  << "Found an ES pfcluster matched to more than one supercluster!" << std::dec << std::endl;
269  }
270  }
271  }
272 
273  //put calocluster output collections in event and get orphan handles to create ptrs
274  auto const& caloClusHandleEBEE = iEvent.emplace(caloClusterCollectionEBEEPutToken_, std::move(caloClustersEBEE));
275  auto const& caloClusHandleES = iEvent.emplace(caloClusterCollectionESPutToken_, std::move(caloClustersES));
276 
277  //relink superclusters to output caloclusters
278  for (auto& sc : sClusters) {
279  edm::Ptr<reco::CaloCluster> seedptr(caloClusHandleEBEE, pfClusterMapEBEE[sc.seed()]);
280  sc.setSeed(seedptr);
281 
283  for (reco::CaloCluster_iterator pfclus = sc.clustersBegin(); pfclus != sc.clustersEnd(); ++pfclus) {
284  edm::Ptr<reco::CaloCluster> clusptr(caloClusHandleEBEE, pfClusterMapEBEE[*pfclus]);
285  clusters.push_back(clusptr);
286  }
287  sc.setClusters(clusters);
288 
289  reco::CaloClusterPtrVector psclusters;
290  for (reco::CaloCluster_iterator pfclus = sc.preshowerClustersBegin(); pfclus != sc.preshowerClustersEnd();
291  ++pfclus) {
292  edm::Ptr<reco::CaloCluster> clusptr(caloClusHandleES, pfClusterMapES[*pfclus]);
293  psclusters.push_back(clusptr);
294  }
295  sc.setPreshowerClusters(psclusters);
296  }
297 
298  //create and fill references to single leg conversions
299  auto singleLegConv = createSingleLegConversions(egExtra, iEvent.getRefBeforePut<reco::ConversionCollection>());
300 
301  // release our demonspawn into the wild to cause havoc
302  iEvent.emplace(superClusterCollectionPutToken_, std::move(sClusters));
304  iEvent.emplace(conversionCollectionPutToken_, std::move(singleLegConv));
305  iEvent.emplace(pfCandidateCollectionPutToken_, std::move(egCandidates));
306 }
307 
310  reco::ConversionCollection oneLegConversions{};
312  for (auto& extra : extras) {
313  for (const auto& tkrefmva : extra.singleLegConvTrackRefMva()) {
314  const reco::Track& trk = *tkrefmva.first;
315 
316  const reco::Vertex convVtx(trk.innerPosition(), error);
317  std::vector<reco::TrackRef> OneLegConvVector;
318  OneLegConvVector.push_back(tkrefmva.first);
319  std::vector<float> OneLegMvaVector;
320  OneLegMvaVector.push_back(tkrefmva.second);
321  std::vector<reco::CaloClusterPtr> dummymatchingBC;
323  scPtrVec.push_back(edm::refToPtr(extra.superClusterRef()));
324 
325  std::vector<math::XYZPointF> trackPositionAtEcalVec;
326  std::vector<math::XYZPointF> innPointVec;
327  std::vector<math::XYZVectorF> trackPinVec;
328  std::vector<math::XYZVectorF> trackPoutVec;
329  math::XYZPointF trackPositionAtEcal(trk.outerPosition().X(), trk.outerPosition().Y(), trk.outerPosition().Z());
330  trackPositionAtEcalVec.push_back(trackPositionAtEcal);
331 
332  math::XYZPointF innPoint(trk.innerPosition().X(), trk.innerPosition().Y(), trk.innerPosition().Z());
333  innPointVec.push_back(innPoint);
334 
335  math::XYZVectorF trackPin(trk.innerMomentum().X(), trk.innerMomentum().Y(), trk.innerMomentum().Z());
336  trackPinVec.push_back(trackPin);
337 
338  math::XYZVectorF trackPout(trk.outerMomentum().X(), trk.outerMomentum().Y(), trk.outerMomentum().Z());
339  trackPoutVec.push_back(trackPout);
340 
341  float DCA = trk.d0();
342  float mvaval = tkrefmva.second;
343  reco::Conversion singleLegConvCandidate(scPtrVec,
344  OneLegConvVector,
345  trackPositionAtEcalVec,
346  convVtx,
347  dummymatchingBC,
348  DCA,
349  innPointVec,
350  trackPinVec,
351  trackPoutVec,
352  mvaval,
354  singleLegConvCandidate.setOneLegMVA(OneLegMvaVector);
355  oneLegConversions.push_back(singleLegConvCandidate);
356 
357  reco::ConversionRef convref(convProd, oneLegConversions.size() - 1);
358  extra.addSingleLegConversionRef(convref);
359  }
360  }
361  return oneLegConversions;
362 }
363 
366  desc.add<bool>("produceEGCandsWithNoSuperCluster", false)
367  ->setComment("Allow building of candidates with no input or output supercluster?");
368  desc.add<double>("pf_electron_mvaCut", -0.1);
369  desc.add<bool>("pf_electronID_crackCorrection", false);
370  desc.add<double>("pf_conv_mvaCut", 0.0);
371  desc.add<edm::InputTag>("blocks", edm::InputTag("particleFlowBlock"))->setComment("PF Blocks label");
372  desc.add<edm::InputTag>("EEtoPS_source", edm::InputTag("particleFlowClusterECAL"))
373  ->setComment("EE to PS association");
374  desc.add<edm::InputTag>("vertexCollection", edm::InputTag("offlinePrimaryVertices"));
375  desc.add<edm::FileInPath>("pf_electronID_mvaWeightFile",
376  edm::FileInPath("RecoParticleFlow/PFProducer/data/PfElectrons23Jan_BDT.weights.xml.gz"));
377  desc.add<edm::FileInPath>("pf_convID_mvaWeightFile",
378  edm::FileInPath("RecoParticleFlow/PFProducer/data/pfConversionAug0411_BDT.weights.xml.gz"));
379  descriptions.add("particleFlowEGamma", desc);
380 }
reco::Track::outerPosition
const math::XYZPoint & outerPosition() const
position of the outermost hit
Definition: Track.h:62
reco::Track::outerMomentum
const math::XYZVector & outerMomentum() const
momentum vector at the outermost hit position
Definition: Track.h:65
edm::RefProd
Definition: EDProductfwd.h:25
edm::StreamID
Definition: StreamID.h:30
reco::Conversion
Definition: Conversion.h:23
reco::PFBlockElement::HO
Definition: PFBlockElement.h:42
mps_fire.i
i
Definition: mps_fire.py:355
PFEGammaProducer::createSingleLegConversions
reco::ConversionCollection createSingleLegConversions(reco::PFCandidateEGammaExtraCollection &extras, const edm::RefProd< reco::ConversionCollection > &convProd) const
Definition: PFEGammaProducer.cc:308
edm::ParameterSetDescription::add
ParameterDescriptionBase * add(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:95
MessageLogger.h
HLT_2018_cff.applyCrackCorrections
applyCrackCorrections
Definition: HLT_2018_cff.py:12007
PFCalibrationRcd.h
ESHandle.h
convertSQLitetoXML_cfg.output
output
Definition: convertSQLitetoXML_cfg.py:32
ESChannelStatusRcd
Definition: ESChannelStatusRcd.h:5
PFEGammaProducer::superClusterCollectionPutToken_
const edm::EDPutTokenT< reco::SuperClusterCollection > superClusterCollectionPutToken_
Definition: PFEGammaProducer.cc:54
PFEGammaProducer::pfEGConfigInfo_
const PFEGammaAlgo::PFEGConfigInfo pfEGConfigInfo_
particle flow algorithm configuration
Definition: PFEGammaProducer.cc:60
PFEGammaProducer::caloClusterCollectionEBEEPutToken_
const edm::EDPutTokenT< reco::CaloClusterCollection > caloClusterCollectionEBEEPutToken_
Definition: PFEGammaProducer.cc:55
edm::EDGetTokenT< reco::PFBlockCollection >
edm
HLT enums.
Definition: AlignableModifier.h:19
edm::EDPutTokenT< reco::PFCandidateCollection >
GBRWrapperRcd.h
reco::VertexCollection
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition: VertexFwd.h:9
reco::PFBlockElement::SC
Definition: PFBlockElement.h:41
LOGDRESSED
#define LOGDRESSED(x)
Definition: PFEGammaProducer.cc:70
PreshowerCluster.h
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
cms::cuda::assert
assert(be >=bs)
edm::PtrVectorItr
Definition: PtrVector.h:51
PFEGammaProducer::vertices_
const edm::EDGetTokenT< reco::VertexCollection > vertices_
Definition: PFEGammaProducer.cc:50
reco::PFBlockElement::HCAL
Definition: PFBlockElement.h:36
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:45
PFEGammaProducer::eetopsSrc_
const edm::EDGetTokenT< reco::PFCluster::EEtoPSAssociation > eetopsSrc_
Definition: PFEGammaProducer.cc:49
PFEGammaProducer::gbrForests_
const PFEGammaAlgo::GBRForests gbrForests_
Definition: PFEGammaProducer.cc:61
ESChannelStatusRcd.h
relativeConstraints.error
error
Definition: relativeConstraints.py:53
reco::PFCandidateEGammaExtra
Definition: PFCandidateEGammaExtra.h:25
reco::PFCandidateEGammaExtraCollection
std::vector< reco::PFCandidateEGammaExtra > PFCandidateEGammaExtraCollection
collection of PFCandidateEGammaExtras
Definition: PFCandidateEGammaExtraFwd.h:12
reco::PFCandidateEGammaExtra::setSuperClusterRef
void setSuperClusterRef(reco::SuperClusterRef sc)
set reference to the corresponding supercluster
Definition: PFCandidateEGammaExtra.h:108
PFRecHit.h
edm::Ref< PFBlockCollection >
reco::ConversionCollection
std::vector< Conversion > ConversionCollection
collectin of Conversion objects
Definition: ConversionFwd.h:9
edm::refToPtr
Ptr< typename C::value_type > refToPtr(Ref< C, typename C::value_type, refhelper::FindUsingAdvance< C, typename C::value_type > > const &ref)
Definition: RefToPtr.h:18
PFEGammaProducer::inputTagBlocks_
const edm::EDGetTokenT< reco::PFBlockCollection > inputTagBlocks_
Definition: PFEGammaProducer.cc:48
BeamMonitor_cff.primaryVertex
primaryVertex
hltOfflineBeamSpot for HLTMON
Definition: BeamMonitor_cff.py:7
reco::SuperClusterCollection
std::vector< SuperCluster > SuperClusterCollection
collection of SuperCluser objectr
Definition: SuperClusterFwd.h:9
edm::FileInPath
Definition: FileInPath.h:64
PFEnergyCalibration.h
MakerMacros.h
reco::Track::innerMomentum
const math::XYZVector & innerMomentum() const
momentum vector at the innermost hit position
Definition: Track.h:59
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
ESEEIntercalibConstantsRcd
Definition: ESEEIntercalibConstantsRcd.h:5
PFEGammaProducer::PFEGammaProducer
PFEGammaProducer(const edm::ParameterSet &)
Definition: PFEGammaProducer.cc:73
edm::PtrVector< CaloCluster >
reco::CaloCluster
Definition: CaloCluster.h:31
reco::CaloClusterCollection
std::vector< CaloCluster > CaloClusterCollection
collection of CaloCluster objects
Definition: CaloClusterFwd.h:19
reco::Track
Definition: Track.h:27
str
#define str(s)
Definition: TestProcessor.cc:48
edm::ESHandle< ESEEIntercalibConstants >
reco::CaloCluster::badHcalMarker
Definition: CaloCluster.h:50
GsfElectron.h
PFEGammaProducer::caloClusterCollectionESPutToken_
const edm::EDPutTokenT< reco::CaloClusterCollection > caloClusterCollectionESPutToken_
Definition: PFEGammaProducer.cc:56
edm::global::EDProducer
Definition: EDProducer.h:32
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
reco::PFBlockCollection
std::vector< PFBlock > PFBlockCollection
collection of PFBlock objects
Definition: PFBlockFwd.h:10
Vertex.h
bsc_activity_cfg.clusters
clusters
Definition: bsc_activity_cfg.py:36
edm::PtrVector::push_back
void push_back(Ptr< T > const &iPtr)
Definition: PtrVector.h:149
HLT_2018_cff.InputTag
InputTag
Definition: HLT_2018_cff.py:79016
edm::ParameterSet
Definition: ParameterSet.h:36
reco::PFBlockElement::HFEM
Definition: PFBlockElement.h:39
edm::LogError
Definition: MessageLogger.h:183
PFEGammaAlgo::PFEGConfigInfo
Definition: PFEGammaAlgo.h:110
zMuMuMuonUserData.primaryVertices
primaryVertices
Definition: zMuMuMuonUserData.py:12
Event.h
reco::PFBlockElement::ECAL
Definition: PFBlockElement.h:35
cand
Definition: decayParser.h:34
ESChannelStatus.h
reco::Track::innerPosition
const math::XYZPoint & innerPosition() const
position of the innermost hit
Definition: Track.h:56
MetAnalyzer.pv
def pv(vc)
Definition: MetAnalyzer.py:7
iEvent
int iEvent
Definition: GenABIO.cc:224
PFBlockElementSuperCluster.h
RefToPtr.h
reco::TrackBase::d0
double d0() const
dxy parameter in perigee convention (d0 = -dxy)
Definition: TrackBase.h:596
reco::Conversion::setOneLegMVA
void setOneLegMVA(const std::vector< float > &mva)
set the MVS output from PF for one leg conversions
Definition: Conversion.h:163
edm::EventSetup
Definition: EventSetup.h:57
ESEEIntercalibConstantsRcd.h
reco::PFBlockElement::HFHAD
Definition: PFBlockElement.h:40
get
#define get
ESEEIntercalibConstants.h
PFEGammaAlgo::GBRForests
Definition: PFEGammaAlgo.h:74
PFEGammaProducer
Producer for particle flow reconstructed particles (PFCandidates)
Definition: PFEGammaProducer.cc:36
edm::Ptr
Definition: AssociationVector.h:31
PerformancePayloadFromTFormula.h
PFBlock.h
PFEGammaProducer::conversionCollectionPutToken_
const edm::EDPutTokenT< reco::ConversionCollection > conversionCollectionPutToken_
Definition: PFEGammaProducer.cc:57
bookConverter.elements
elements
Definition: bookConverter.py:147
type
type
Definition: HCALResponse.h:21
eostools.move
def move(src, dest)
Definition: eostools.py:511
math::Error::type
ErrorD< N >::type type
Definition: Error.h:32
SuperCluster.h
Exception
Definition: hltDiff.cc:246
PFEGammaAlgo.h
reco::PFCandidateCollection
std::vector< reco::PFCandidate > PFCandidateCollection
collection of PFCandidates
Definition: PFCandidateFwd.h:12
math::XYZVectorF
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< float > > XYZVectorF
spatial vector with cartesian internal representation
Definition: Vector3D.h:16
EventSetup.h
PFEnergyCalibrationHF.h
reco::PFCandidate
Particle reconstructed by the particle flow algorithm.
Definition: PFCandidate.h:40
PFEGammaAlgo
Definition: PFEGammaAlgo.h:62
PFEGammaProducer::produce
void produce(edm::StreamID, edm::Event &, const edm::EventSetup &) const override
Definition: PFEGammaProducer.cc:93
reco::PFBlockElement::PS1
Definition: PFBlockElement.h:33
ParameterSet.h
EDProducer.h
PFEGammaProducer::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: PFEGammaProducer.cc:364
math::XYZPointF
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< float > > XYZPointF
point in space with cartesian internal representation
Definition: Point3D.h:10
edm::Event
Definition: Event.h:73
PFEGammaProducer::pfCandidateEGammaExtraCollectionPutToken_
const edm::EDPutTokenT< reco::PFCandidateEGammaExtraCollection > pfCandidateEGammaExtraCollectionPutToken_
Definition: PFEGammaProducer.cc:53
PFEGammaProducer::pfCandidateCollectionPutToken_
const edm::EDPutTokenT< reco::PFCandidateCollection > pfCandidateCollectionPutToken_
Definition: PFEGammaProducer.cc:52
gather_cfg.blocks
blocks
Definition: gather_cfg.py:90
HLT_2018_cff.flags
flags
Definition: HLT_2018_cff.py:11758
TauDecayModes.dec
dec
Definition: TauDecayModes.py:143
edm::InputTag
Definition: InputTag.h:15
reco::Vertex
Definition: Vertex.h:35
reco::PFBlockElement::PS2
Definition: PFBlockElement.h:34
edm::OwnVector< reco::PFBlockElement >
reco::Conversion::pflow
Definition: Conversion.h:25
CaloCluster.h