CMS 3D CMS Logo

List of all members | Public Member Functions | Private Types | Private Member Functions | Private Attributes
HLTTauRefProducer Class Reference

#include <HLTTauRefProducer.h>

Inheritance diagram for HLTTauRefProducer:
edm::global::EDProducer<> edm::global::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 HLTTauRefProducer (const edm::ParameterSet &)
 
void produce (edm::StreamID, edm::Event &, edm::EventSetup const &) const override
 
- Public Member Functions inherited from edm::global::EDProducer<>
 EDProducer ()=default
 
bool hasAbilityToProduceInLumis () const final
 
bool hasAbilityToProduceInRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsStreamLuminosityBlocks () const final
 
bool wantsStreamRuns () const final
 
- Public Member Functions inherited from edm::global::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
 ~ProducerBase () override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Types

using LorentzVector = math::XYZTLorentzVectorD
 
using LorentzVectorCollection = std::vector< LorentzVector >
 

Private Member Functions

void doElectrons (edm::Event &) const
 
void doJets (edm::Event &) const
 
void doMET (edm::Event &) const
 
void doMuons (edm::Event &) const
 
void doPFTaus (edm::Event &) const
 
void doPhotons (edm::Event &) const
 
void doTowers (edm::Event &) const
 

Private Attributes

bool doElecFromZ_
 
bool doElectrons_
 
bool doJets_
 
bool doMET_
 
bool doMuons_
 
bool doPFTaus_
 
bool doPhotons_
 
bool doTowers_
 
edm::EDGetTokenT< reco::TrackCollectione_ctfTrackCollection_
 
edm::InputTag e_ctfTrackCollectionSrc_
 
bool e_doID_
 
bool e_doTrackIso_
 
double e_FromZet_
 
edm::EDGetTokenT< reco::ElectronIDAssociationCollectione_idAssocProd_
 
double e_isoMaxSumPt_
 
double e_lipCut_
 
double e_maxIsoDR_
 
double e_minIsoDR_
 
double e_trackMinPt_
 
double e_zMmax_
 
double e_zMmin_
 
edm::EDGetTokenT< reco::GsfElectronCollectionElectrons_
 
double etaMax_
 
double etaMaxPFTau_
 
double etaMin_
 
double etaMinPFTau_
 
edm::EDGetTokenT< reco::CaloJetCollectionJets_
 
edm::EDGetTokenT< reco::CaloMETCollectionMET_
 
edm::EDGetTokenT< reco::MuonCollectionMuons_
 
std::vector< edm::EDGetTokenT< reco::PFTauDiscriminator > > PFTauDis_
 
edm::EDGetTokenT< reco::PFTauCollectionPFTaus_
 
double phiMax_
 
double phiMaxPFTau_
 
double phiMin_
 
double phiMinPFTau_
 
double photonEcalIso_
 
edm::EDGetTokenT< reco::PhotonCollectionPhotons_
 
double ptMinElectron_
 
double ptMinJet_
 
double ptMinMET_
 
double ptMinMuon_
 
double ptMinPFTau_
 
double ptMinPhoton_
 
double ptMinTower_
 
double towerIsol_
 
edm::EDGetTokenT< CaloTowerCollectionTowers_
 

Additional Inherited Members

- Public Types inherited from edm::global::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::global::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

Definition at line 52 of file HLTTauRefProducer.h.

Member Typedef Documentation

Definition at line 61 of file HLTTauRefProducer.h.

Definition at line 62 of file HLTTauRefProducer.h.

Constructor & Destructor Documentation

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

Definition at line 32 of file HLTTauRefProducer.cc.

References electrons_cff::electrons, edm::ParameterSet::getUntrackedParameter(), fwrapper::jets, RazorAnalyzer::met, nano_cff::muons, nano_cff::photons, and GlobalPosition_Frontier_DevDB_cff::tag.

33 {
34  //One Parameter Set per Collection
35  {
36  auto const& pfTau = iConfig.getUntrackedParameter<edm::ParameterSet>("PFTaus");
37  PFTaus_ = consumes<reco::PFTauCollection>(pfTau.getUntrackedParameter<InputTag>("PFTauProducer"));
38  auto discs = pfTau.getUntrackedParameter<vector<InputTag>>("PFTauDiscriminators");
39  for (edm::InputTag& tag: discs) {
40  PFTauDis_.push_back(consumes<reco::PFTauDiscriminator>(tag));
41  }
42  doPFTaus_ = pfTau.getUntrackedParameter<bool>("doPFTaus",false);
43  ptMinPFTau_= pfTau.getUntrackedParameter<double>("ptMin",15.);
44  etaMinPFTau_= pfTau.getUntrackedParameter<double>("etaMin",-2.5);
45  etaMaxPFTau_= pfTau.getUntrackedParameter<double>("etaMax",2.5);
46  phiMinPFTau_= pfTau.getUntrackedParameter<double>("phiMin",-3.15);
47  phiMaxPFTau_= pfTau.getUntrackedParameter<double>("phiMax",3.15);
48  }
49 
50  {
51  auto const& electrons = iConfig.getUntrackedParameter<edm::ParameterSet>("Electrons");
52  Electrons_ = consumes<reco::GsfElectronCollection>(electrons.getUntrackedParameter<InputTag>("ElectronCollection"));
53  doElectrons_ = electrons.getUntrackedParameter<bool>("doElectrons",false);
54  e_doID_ = electrons.getUntrackedParameter<bool>("doID",false);
55  if(e_doID_) {
56  e_idAssocProd_ = consumes<reco::ElectronIDAssociationCollection>(electrons.getUntrackedParameter<InputTag>("IdCollection"));
57  }
58  e_ctfTrackCollectionSrc_ = electrons.getUntrackedParameter<InputTag>("TrackCollection");
59  e_ctfTrackCollection_ = consumes<reco::TrackCollection>(e_ctfTrackCollectionSrc_);
60  ptMinElectron_= electrons.getUntrackedParameter<double>("ptMin",15.);
61  e_doTrackIso_ = electrons.getUntrackedParameter<bool>("doTrackIso",false);
62  e_trackMinPt_= electrons.getUntrackedParameter<double>("ptMinTrack",1.5);
63  e_lipCut_= electrons.getUntrackedParameter<double>("lipMinTrack",1.5);
64  e_minIsoDR_= electrons.getUntrackedParameter<double>("InnerConeDR",0.02);
65  e_maxIsoDR_= electrons.getUntrackedParameter<double>("OuterConeDR",0.6);
66  e_isoMaxSumPt_= electrons.getUntrackedParameter<double>("MaxIsoVar",0.02);
67  }
68 
69  {
70  auto const& muons = iConfig.getUntrackedParameter<edm::ParameterSet>("Muons");
71  Muons_ = consumes<reco::MuonCollection>(muons.getUntrackedParameter<InputTag>("MuonCollection"));
72  doMuons_ = muons.getUntrackedParameter<bool>("doMuons",false);
73  ptMinMuon_= muons.getUntrackedParameter<double>("ptMin",15.);
74  }
75 
76  {
77  auto const& jets = iConfig.getUntrackedParameter<edm::ParameterSet>("Jets");
78  Jets_ = consumes<reco::CaloJetCollection>(jets.getUntrackedParameter<InputTag>("JetCollection"));
79  doJets_ = jets.getUntrackedParameter<bool>("doJets");
80  ptMinJet_= jets.getUntrackedParameter<double>("etMin");
81  }
82 
83  {
84  auto const& towers = iConfig.getUntrackedParameter<edm::ParameterSet>("Towers");
85  Towers_ = consumes<CaloTowerCollection>(towers.getUntrackedParameter<InputTag>("TowerCollection"));
86  doTowers_ = towers.getUntrackedParameter<bool>("doTowers");
87  ptMinTower_= towers.getUntrackedParameter<double>("etMin");
88  towerIsol_= towers.getUntrackedParameter<double>("towerIsolation");
89  }
90 
91  {
92  auto const& photons = iConfig.getUntrackedParameter<edm::ParameterSet>("Photons");
93  Photons_ = consumes<reco::PhotonCollection>(photons.getUntrackedParameter<InputTag>("PhotonCollection"));
94  doPhotons_ = photons.getUntrackedParameter<bool>("doPhotons");
95  ptMinPhoton_= photons.getUntrackedParameter<double>("etMin");
96  photonEcalIso_= photons.getUntrackedParameter<double>("ECALIso");
97  }
98 
99  {
100  auto const& met = iConfig.getUntrackedParameter<edm::ParameterSet>("MET");
101  MET_ = consumes<reco::CaloMETCollection>(met.getUntrackedParameter<InputTag>("METCollection"));
102  doMET_ = met.getUntrackedParameter<bool>("doMET",false);
103  ptMinMET_= met.getUntrackedParameter<double>("ptMin",15.);
104  }
105 
106  etaMin_ = iConfig.getUntrackedParameter<double>("EtaMin",-2.5);
107  etaMax_ = iConfig.getUntrackedParameter<double>("EtaMax",2.5);
108  phiMin_ = iConfig.getUntrackedParameter<double>("PhiMin",-3.15);
109  phiMax_ = iConfig.getUntrackedParameter<double>("PhiMax",3.15);
110 
111  //recoCollections
112  produces<LorentzVectorCollection>("PFTaus");
113  produces<LorentzVectorCollection>("Electrons");
114  produces<LorentzVectorCollection>("Muons");
115  produces<LorentzVectorCollection>("Jets");
116  produces<LorentzVectorCollection>("Photons");
117  produces<LorentzVectorCollection>("Towers");
118  produces<LorentzVectorCollection>("MET");
119 
120 }
T getUntrackedParameter(std::string const &, T const &) const
edm::EDGetTokenT< reco::MuonCollection > Muons_
edm::EDGetTokenT< reco::CaloMETCollection > MET_
edm::EDGetTokenT< reco::GsfElectronCollection > Electrons_
edm::EDGetTokenT< reco::TrackCollection > e_ctfTrackCollection_
vector< PseudoJet > jets
edm::EDGetTokenT< CaloTowerCollection > Towers_
edm::EDGetTokenT< reco::PhotonCollection > Photons_
edm::EDGetTokenT< reco::PFTauCollection > PFTaus_
edm::EDGetTokenT< reco::ElectronIDAssociationCollection > e_idAssocProd_
std::vector< edm::EDGetTokenT< reco::PFTauDiscriminator > > PFTauDis_
edm::InputTag e_ctfTrackCollectionSrc_
met
===> hadronic RAZOR
edm::EDGetTokenT< reco::CaloJetCollection > Jets_

Member Function Documentation

void HLTTauRefProducer::doElectrons ( edm::Event iEvent) const
private

Definition at line 178 of file HLTTauRefProducer.cc.

References edm::AssociationMap< edm::OneToOne< GsfElectronCollection, ElectronIDCollection > >::const_iterator, metsig::electron, electrons_cff::electrons, edm::Event::getByToken(), mps_fire::i, xuti::id_tag(), btvTracks_cfi::lip, eostools::move(), edm::Event::put(), and mathSSE::sqrt().

179 {
180  auto product_Electrons = make_unique<LorentzVectorCollection>();
181 
183  bool doID {e_doID_};
184  if (doID) {//UGLY HACK UNTIL GET ELETRON ID WORKING IN 210
185  if (!iEvent.getByToken(e_idAssocProd_, pEleID)) {
186  edm::LogInfo("") << "Error! Can't get electronIDAssocProducer by label. ";
187  doID = false;
188  }
189  }
190 
192  if (!iEvent.getByToken(e_ctfTrackCollection_, pCtfTracks)) {
193  edm::LogInfo("") << "Error! Can't get " << e_ctfTrackCollectionSrc_.label() << " by label. ";
194  iEvent.put(move(product_Electrons),"Electrons");
195  return;
196  }
197 
199  if (iEvent.getByToken(Electrons_,electrons)) {
200  for (size_t i=0 ; i<electrons->size(); ++i) {
201  edm::Ref<reco::GsfElectronCollection> electronRef (electrons,i);
202  bool idDec {false};
203  if (doID) {
205  tagIDAssocItr = pEleID->find(electronRef);
206  const reco::ElectronIDRef& id_tag = tagIDAssocItr->val;
207  idDec=id_tag->cutBasedDecision();
208  }
209  else {
210  idDec=true;
211  }
212  auto const& electron = (*electrons)[i];
213  if (electron.pt()>ptMinElectron_&&fabs(electron.eta())<etaMax_&&idDec) {
214  if (e_doTrackIso_) {
215  double sum_of_pt_ele {};
216  for (auto const& tr : *pCtfTracks) {
217  double const lip {electron.gsfTrack()->dz() - tr.dz()};
218  if (tr.pt() > e_trackMinPt_ && fabs(lip) < e_lipCut_) {
219  double dphi {fabs(tr.phi()-electron.trackMomentumAtVtx().phi())};
220  if (dphi>acos(-1.)) {
221  dphi=2*acos(-1.)-dphi;
222  }
223  double const deta {fabs(tr.eta()-electron.trackMomentumAtVtx().eta())};
224  double const dr_ctf_ele {sqrt(deta*deta+dphi*dphi)};
225  if((dr_ctf_ele>e_minIsoDR_) && (dr_ctf_ele<e_maxIsoDR_)){
226  double const cft_pt_2 {tr.pt()*tr.pt()};
227  sum_of_pt_ele += cft_pt_2;
228  }
229  }
230  }
231  double const isolation_value_ele {sum_of_pt_ele/(electron.trackMomentumAtVtx().Rho()*electron.trackMomentumAtVtx().Rho())};
232  if (isolation_value_ele<e_isoMaxSumPt_) {
233  product_Electrons->emplace_back(electron.px(),electron.py(),electron.pz(),electron.energy());
234  }
235  }
236  else {
237  product_Electrons->emplace_back(electron.px(),electron.py(),electron.pz(),electron.energy());
238  }
239  }
240  }
241  }
242  iEvent.put(move(product_Electrons),"Electrons");
243 }
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:136
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:519
const std::string id_tag("id")
edm::EDGetTokenT< reco::GsfElectronCollection > Electrons_
edm::EDGetTokenT< reco::TrackCollection > e_ctfTrackCollection_
T sqrt(T t)
Definition: SSEVec.h:18
edm::EDGetTokenT< reco::ElectronIDAssociationCollection > e_idAssocProd_
edm::InputTag e_ctfTrackCollectionSrc_
std::string const & label() const
Definition: InputTag.h:36
def move(src, dest)
Definition: eostools.py:510
void HLTTauRefProducer::doJets ( edm::Event iEvent) const
private

Definition at line 263 of file HLTTauRefProducer.cc.

References edm::Event::getByToken(), metsig::jet, fwrapper::jets, eostools::move(), and edm::Event::put().

264 {
265  auto product_Jets = make_unique<LorentzVectorCollection>();
266 
268  if (iEvent.getByToken(Jets_,jets)) {
269  for (auto const& jet : *jets) {
270  if (jet.et()>ptMinJet_ && jet.eta()>etaMin_&&jet.eta()<etaMax_&&jet.phi()>phiMin_&&jet.phi()<phiMax_) {
271  product_Jets->emplace_back(jet.px(),jet.py(),jet.pz(),jet.energy());
272  }
273  }
274  }
275  iEvent.put(move(product_Jets),"Jets");
276 }
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:136
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:519
vector< PseudoJet > jets
edm::EDGetTokenT< reco::CaloJetCollection > Jets_
def move(src, dest)
Definition: eostools.py:510
void HLTTauRefProducer::doMET ( edm::Event iEvent) const
private

Definition at line 323 of file HLTTauRefProducer.cc.

References edm::Event::getByToken(), RazorAnalyzer::met, eostools::move(), and edm::Event::put().

324 {
325  auto product_MET = make_unique<LorentzVectorCollection>();
326 
328  if(iEvent.getByToken(MET_,met) && !met->empty()){
329  auto const& metMom = met->front().p4();
330  product_MET->emplace_back(metMom.Px(), metMom.Py(), 0, metMom.Pt());
331  }
332  iEvent.put(move(product_MET),"MET");
333 }
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:136
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:519
edm::EDGetTokenT< reco::CaloMETCollection > MET_
met
===> hadronic RAZOR
def move(src, dest)
Definition: eostools.py:510
void HLTTauRefProducer::doMuons ( edm::Event iEvent) const
private

Definition at line 246 of file HLTTauRefProducer.cc.

References edm::Event::getByToken(), eostools::move(), nano_cff::muons, and edm::Event::put().

247 {
248  auto product_Muons = make_unique<LorentzVectorCollection>();
249 
251  if (iEvent.getByToken(Muons_,muons)) {
252  for (auto const& muon : *muons) {
253  if (muon.pt()>ptMinMuon_ && muon.eta()>etaMin_&&muon.eta()<etaMax_&&muon.phi()>phiMin_&&muon.phi()<phiMax_) {
254  product_Muons->emplace_back(muon.px(),muon.py(),muon.pz(),muon.energy());
255  }
256  }
257  }
258  iEvent.put(move(product_Muons),"Muons");
259 }
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:136
edm::EDGetTokenT< reco::MuonCollection > Muons_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:519
def move(src, dest)
Definition: eostools.py:510
void HLTTauRefProducer::doPFTaus ( edm::Event iEvent) const
private

Definition at line 141 of file HLTTauRefProducer.cc.

References edm::Event::getByToken(), mps_fire::i, eostools::move(), and edm::Event::put().

142 {
143  auto product_PFTaus = make_unique<LorentzVectorCollection>();
144 
146  if (iEvent.getByToken(PFTaus_,pftaus)) {
147  for (unsigned int i=0; i<pftaus->size(); ++i) {
148  auto const& pftau = (*pftaus)[i];
149  if (pftau.pt()>ptMinPFTau_&&
150  pftau.eta()>etaMinPFTau_&&pftau.eta()<etaMaxPFTau_&&
151  pftau.phi()>phiMinPFTau_&&pftau.phi()<phiMaxPFTau_) {
152  reco::PFTauRef thePFTau {pftaus,i};
153  bool passAll {true};
156  if (iEvent.getByToken(token, pftaudis)) {
157  if ((*pftaudis)[thePFTau] < 0.5) {
158  passAll = false;
159  break;
160  }
161  }
162  else{
163  passAll = false;
164  break;
165  }
166  }
167  if (passAll) {
168  product_PFTaus->emplace_back(pftau.px(), pftau.py(), pftau.pz(), pftau.energy());
169  }
170  }
171  }
172  }
173  iEvent.put(move(product_PFTaus),"PFTaus");
174 }
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:136
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:519
edm::EDGetTokenT< reco::PFTauCollection > PFTaus_
std::vector< edm::EDGetTokenT< reco::PFTauDiscriminator > > PFTauDis_
def move(src, dest)
Definition: eostools.py:510
void HLTTauRefProducer::doPhotons ( edm::Event iEvent) const
private

Definition at line 306 of file HLTTauRefProducer.cc.

References edm::Event::getByToken(), eostools::move(), muons2muons_cfi::photon, nano_cff::photons, and edm::Event::put().

307 {
308  auto product_Gammas = make_unique<LorentzVectorCollection>();
309 
311  if (iEvent.getByToken(Photons_,photons)) {
312  for (auto const& photon : *photons) {
313  if (photon.ecalRecHitSumEtConeDR04()<photonEcalIso_ &&
314  photon.et()>ptMinPhoton_ && photon.eta()>etaMin_&&photon.eta()<etaMax_&&photon.phi()>phiMin_&&photon.phi()<phiMax_) {
315  product_Gammas->emplace_back(photon.px(),photon.py(),photon.pz(),photon.energy());
316  }
317  }
318  }
319  iEvent.put(move(product_Gammas),"Photons");
320 }
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:136
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:519
edm::EDGetTokenT< reco::PhotonCollection > Photons_
def move(src, dest)
Definition: eostools.py:510
void HLTTauRefProducer::doTowers ( edm::Event iEvent) const
private

Definition at line 279 of file HLTTauRefProducer.cc.

References HiRegitMuonDetachedTripletStep_cff::DeltaR, edm::Event::getByToken(), eostools::move(), and edm::Event::put().

280 {
281  auto product_Towers = make_unique<LorentzVectorCollection>();
282 
284  if (iEvent.getByToken(Towers_,towers)) {
285  for (auto const& tower1 : *towers) {
286  if (tower1.pt()>ptMinTower_ && tower1.eta()>etaMin_&&tower1.eta()<etaMax_&&tower1.phi()>phiMin_&&tower1.phi()<phiMax_) {
287  //calculate isolation
288  double isolET {};
289  for (auto const& tower2 : *towers) {
290  if (ROOT::Math::VectorUtil::DeltaR(tower1.p4(),tower2.p4())<0.5) {
291  isolET+=tower2.pt();
292  }
293  isolET-=tower1.pt();
294  }
295  if (isolET<towerIsol_) {
296  product_Towers->emplace_back(tower1.px(),tower1.py(),tower1.pz(),tower1.energy());
297  }
298  }
299  }
300  }
301  iEvent.put(move(product_Towers),"Towers");
302 }
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:136
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:519
edm::EDGetTokenT< CaloTowerCollection > Towers_
def move(src, dest)
Definition: eostools.py:510
void HLTTauRefProducer::produce ( edm::StreamID  ,
edm::Event iEvent,
edm::EventSetup const &   
) const
overridevirtual

Implements edm::global::EDProducerBase.

Definition at line 122 of file HLTTauRefProducer.cc.

Referenced by JSONExport.JsonExport::export(), HTMLExport.HTMLExport::export(), and HTMLExport.HTMLExportStatic::export().

123 {
124  if(doPFTaus_)
125  doPFTaus(iEvent);
126  if(doElectrons_)
127  doElectrons(iEvent);
128  if(doMuons_)
129  doMuons(iEvent);
130  if(doJets_)
131  doJets(iEvent);
132  if(doPhotons_)
133  doPhotons(iEvent);
134  if(doTowers_)
135  doTowers(iEvent);
136  if(doMET_)
137  doMET(iEvent);
138 }
void doElectrons(edm::Event &) const
void doMET(edm::Event &) const
void doTowers(edm::Event &) const
void doPFTaus(edm::Event &) const
void doMuons(edm::Event &) const
void doJets(edm::Event &) const
void doPhotons(edm::Event &) const

Member Data Documentation

bool HLTTauRefProducer::doElecFromZ_
private

Definition at line 82 of file HLTTauRefProducer.h.

bool HLTTauRefProducer::doElectrons_
private

Definition at line 70 of file HLTTauRefProducer.h.

bool HLTTauRefProducer::doJets_
private

Definition at line 97 of file HLTTauRefProducer.h.

bool HLTTauRefProducer::doMET_
private

Definition at line 106 of file HLTTauRefProducer.h.

bool HLTTauRefProducer::doMuons_
private

Definition at line 93 of file HLTTauRefProducer.h.

bool HLTTauRefProducer::doPFTaus_
private

Definition at line 66 of file HLTTauRefProducer.h.

bool HLTTauRefProducer::doPhotons_
private

Definition at line 88 of file HLTTauRefProducer.h.

bool HLTTauRefProducer::doTowers_
private

Definition at line 101 of file HLTTauRefProducer.h.

edm::EDGetTokenT<reco::TrackCollection> HLTTauRefProducer::e_ctfTrackCollection_
private

Definition at line 72 of file HLTTauRefProducer.h.

edm::InputTag HLTTauRefProducer::e_ctfTrackCollectionSrc_
private

Definition at line 73 of file HLTTauRefProducer.h.

bool HLTTauRefProducer::e_doID_
private

Definition at line 75 of file HLTTauRefProducer.h.

bool HLTTauRefProducer::e_doTrackIso_
private

Definition at line 76 of file HLTTauRefProducer.h.

double HLTTauRefProducer::e_FromZet_
private

Definition at line 85 of file HLTTauRefProducer.h.

edm::EDGetTokenT<reco::ElectronIDAssociationCollection> HLTTauRefProducer::e_idAssocProd_
private

Definition at line 71 of file HLTTauRefProducer.h.

double HLTTauRefProducer::e_isoMaxSumPt_
private

Definition at line 81 of file HLTTauRefProducer.h.

double HLTTauRefProducer::e_lipCut_
private

Definition at line 78 of file HLTTauRefProducer.h.

double HLTTauRefProducer::e_maxIsoDR_
private

Definition at line 80 of file HLTTauRefProducer.h.

double HLTTauRefProducer::e_minIsoDR_
private

Definition at line 79 of file HLTTauRefProducer.h.

double HLTTauRefProducer::e_trackMinPt_
private

Definition at line 77 of file HLTTauRefProducer.h.

double HLTTauRefProducer::e_zMmax_
private

Definition at line 84 of file HLTTauRefProducer.h.

double HLTTauRefProducer::e_zMmin_
private

Definition at line 83 of file HLTTauRefProducer.h.

edm::EDGetTokenT<reco::GsfElectronCollection> HLTTauRefProducer::Electrons_
private

Definition at line 69 of file HLTTauRefProducer.h.

double HLTTauRefProducer::etaMax_
private

Definition at line 109 of file HLTTauRefProducer.h.

double HLTTauRefProducer::etaMaxPFTau_
private

Definition at line 67 of file HLTTauRefProducer.h.

double HLTTauRefProducer::etaMin_
private

Definition at line 109 of file HLTTauRefProducer.h.

double HLTTauRefProducer::etaMinPFTau_
private

Definition at line 67 of file HLTTauRefProducer.h.

edm::EDGetTokenT<reco::CaloJetCollection> HLTTauRefProducer::Jets_
private

Definition at line 96 of file HLTTauRefProducer.h.

edm::EDGetTokenT<reco::CaloMETCollection> HLTTauRefProducer::MET_
private

Definition at line 105 of file HLTTauRefProducer.h.

edm::EDGetTokenT<reco::MuonCollection> HLTTauRefProducer::Muons_
private

Definition at line 92 of file HLTTauRefProducer.h.

std::vector<edm::EDGetTokenT<reco::PFTauDiscriminator> > HLTTauRefProducer::PFTauDis_
private

Definition at line 65 of file HLTTauRefProducer.h.

edm::EDGetTokenT<reco::PFTauCollection> HLTTauRefProducer::PFTaus_
private

Definition at line 64 of file HLTTauRefProducer.h.

double HLTTauRefProducer::phiMax_
private

Definition at line 109 of file HLTTauRefProducer.h.

double HLTTauRefProducer::phiMaxPFTau_
private

Definition at line 67 of file HLTTauRefProducer.h.

double HLTTauRefProducer::phiMin_
private

Definition at line 109 of file HLTTauRefProducer.h.

double HLTTauRefProducer::phiMinPFTau_
private

Definition at line 67 of file HLTTauRefProducer.h.

double HLTTauRefProducer::photonEcalIso_
private

Definition at line 89 of file HLTTauRefProducer.h.

edm::EDGetTokenT<reco::PhotonCollection> HLTTauRefProducer::Photons_
private

Definition at line 87 of file HLTTauRefProducer.h.

double HLTTauRefProducer::ptMinElectron_
private

Definition at line 74 of file HLTTauRefProducer.h.

double HLTTauRefProducer::ptMinJet_
private

Definition at line 98 of file HLTTauRefProducer.h.

double HLTTauRefProducer::ptMinMET_
private

Definition at line 107 of file HLTTauRefProducer.h.

double HLTTauRefProducer::ptMinMuon_
private

Definition at line 94 of file HLTTauRefProducer.h.

double HLTTauRefProducer::ptMinPFTau_
private

Definition at line 67 of file HLTTauRefProducer.h.

double HLTTauRefProducer::ptMinPhoton_
private

Definition at line 90 of file HLTTauRefProducer.h.

double HLTTauRefProducer::ptMinTower_
private

Definition at line 102 of file HLTTauRefProducer.h.

double HLTTauRefProducer::towerIsol_
private

Definition at line 103 of file HLTTauRefProducer.h.

edm::EDGetTokenT<CaloTowerCollection> HLTTauRefProducer::Towers_
private

Definition at line 100 of file HLTTauRefProducer.h.