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
 
- Public Member Functions inherited from edm::global::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDProducerBase ()
 
- 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 ()
 
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, std::unordered_multimap< std::string, edm::ProductResolverIndex > const &iIndicies, std::string const &moduleLabel)
 
virtual ~ProducerBase () noexcept(false)
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
 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
 
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
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 genericTrackCleaner_cfi::electrons, edm::ParameterSet::getUntrackedParameter(), fwrapper::jets, RazorAnalyzer::met, electronCleaner_cfi::muons, jetCleaner_cfi::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, genericTrackCleaner_cfi::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:122
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:460
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:122
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:460
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:122
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:460
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(), electronCleaner_cfi::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:122
edm::EDGetTokenT< reco::MuonCollection > Muons_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:460
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:122
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:460
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, jetCleaner_cfi::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:122
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:460
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:122
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:460
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.