CMS 3D CMS Logo

HLTTauRefProducer.h
Go to the documentation of this file.
1 /*HLTTauRefProducer
2  Producer that creates LorentzVector Collections
3  from offline reconstructed quantities to be used
4  in Offline Trigger DQM etc
5 */
6 
7 #ifndef HLTTauRefProducer_h
8 #define HLTTauRefProducer_h
9 
21 
22 #include "TLorentzVector.h"
23 // TAU includes
27 
28 // ELECTRON includes
35 // MUON includes
39 #include "TLorentzVector.h"
41 
42 //Photon Includes
45 
46 //MET Includes
49 
50 #include <memory>
51 
52 #include <string>
53 #include <vector>
54 
55 typedef std::pair<edm::ProcessHistoryID, std::vector<int>> TauIDConfigCache;
56 
57 class HLTTauRefProducer : public edm::global::EDProducer<edm::StreamCache<TauIDConfigCache>> {
58 public:
59  explicit HLTTauRefProducer(const edm::ParameterSet&);
60 
61  void produce(edm::StreamID, edm::Event&, edm::EventSetup const&) const override;
62 
63  std::unique_ptr<TauIDConfigCache> beginStream(edm::StreamID) const override {
64  return std::make_unique<TauIDConfigCache>();
65  }
66 
67 private:
69  using LorentzVectorCollection = std::vector<LorentzVector>;
70 
72  std::vector<edm::EDGetTokenT<reco::PFTauDiscriminator>> PFTauDis_;
73  std::vector<edm::EDGetTokenT<reco::TauDiscriminatorContainer>> PFTauDisCont_;
74  std::vector<std::string> PFTauDisContWPs_;
76  bool doPFTaus_;
78 
84  bool e_doID_;
86  double e_trackMinPt_;
87  double e_lipCut_;
88  double e_minIsoDR_;
89  double e_maxIsoDR_;
92  double e_zMmin_;
93  double e_zMmax_;
94  double e_FromZet_;
95 
97  bool doPhotons_;
99  double ptMinPhoton_;
100 
102  bool doMuons_;
103  double ptMinMuon_;
104 
106  bool doJets_;
107  double ptMinJet_;
108 
110  bool doTowers_;
111  double ptMinTower_;
112  double towerIsol_;
113 
115  bool doMET_;
116  double ptMinMET_;
117 
119 
120  void doPFTaus(edm::StreamID, edm::Event&) const;
121  void doMuons(edm::Event&) const;
122  void doElectrons(edm::Event&) const;
123  void doJets(edm::Event&) const;
124  void doPhotons(edm::Event&) const;
125  void doTowers(edm::Event&) const;
126  void doMET(edm::Event&) const;
127 };
128 
129 #endif
std::unique_ptr< TauIDConfigCache > beginStream(edm::StreamID) const override
edm::ProcessHistoryID phID_
std::vector< LorentzVector > LorentzVectorCollection
edm::EDGetTokenT< reco::MuonCollection > Muons_
void doPhotons(edm::Event &) const
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > XYZTLorentzVectorD
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:14
void doTowers(edm::Event &) const
void doElectrons(edm::Event &) const
HLTTauRefProducer(const edm::ParameterSet &)
void produce(edm::StreamID, edm::Event &, edm::EventSetup const &) const override
std::pair< edm::ProcessHistoryID, std::vector< int > > TauIDConfigCache
edm::EDGetTokenT< reco::CaloMETCollection > MET_
edm::EDGetTokenT< reco::GsfElectronCollection > Electrons_
math::XYZTLorentzVectorD LorentzVector
edm::EDGetTokenT< reco::TrackCollection > e_ctfTrackCollection_
void doMuons(edm::Event &) const
std::vector< std::string > PFTauDisContWPs_
edm::EDGetTokenT< CaloTowerCollection > Towers_
edm::EDGetTokenT< reco::PhotonCollection > Photons_
edm::EDGetTokenT< reco::PFTauCollection > PFTaus_
std::vector< edm::EDGetTokenT< reco::TauDiscriminatorContainer > > PFTauDisCont_
std::vector< edm::EDGetTokenT< reco::PFTauDiscriminator > > PFTauDis_
edm::InputTag e_ctfTrackCollectionSrc_
void doMET(edm::Event &) const
void doPFTaus(edm::StreamID, edm::Event &) const
void doJets(edm::Event &) const
edm::EDGetTokenT< reco::CaloJetCollection > Jets_