HLTriggerOffline
Tau
interface
HLTTauMCProducer.h
Go to the documentation of this file.
1
/*HLTTauMCProducer
2
Producer that creates LorentzVector Collections
3
from offline reconstructed quantities to be used
4
in Offline Trigger DQM etc
5
*/
6
7
#ifndef HLTTauMCProducer_h
8
#define HLTTauMCProducer_h
9
10
#include "
DataFormats/Candidate/interface/Candidate.h
"
11
#include "
DataFormats/Common/interface/Handle.h
"
12
#include "
DataFormats/HepMCCandidate/interface/GenParticle.h
"
13
#include "
DataFormats/HepMCCandidate/interface/GenParticleFwd.h
"
14
#include "
DataFormats/METReco/interface/GenMET.h
"
15
#include "
DataFormats/METReco/interface/GenMETCollection.h
"
16
#include "
DataFormats/Math/interface/LorentzVector.h
"
17
#include "
FWCore/Framework/interface/global/EDProducer.h
"
18
#include "
FWCore/Framework/interface/Event.h
"
19
#include "
FWCore/Framework/interface/Frameworkfwd.h
"
20
#include "
FWCore/MessageLogger/interface/MessageLogger.h
"
21
#include "
FWCore/ParameterSet/interface/ParameterSet.h
"
22
#include "
FWCore/Utilities/interface/InputTag.h
"
23
#include "HepMC/GenEvent.h"
24
#include "
SimDataFormats/GeneratorProducts/interface/HepMCProduct.h
"
25
26
#include "TLorentzVector.h"
27
#include <string>
28
#include <vector>
29
30
typedef
math::XYZTLorentzVectorD
LorentzVector
;
31
typedef
std::vector<LorentzVector>
LorentzVectorCollection
;
32
33
class
HLTTauMCProducer
:
public
edm::global::EDProducer
<> {
34
public
:
35
explicit
HLTTauMCProducer
(
const
edm::ParameterSet
&);
36
37
void
produce
(
edm::StreamID
,
edm::Event
&,
const
edm::EventSetup
&)
const override
;
38
39
private
:
40
void
getGenDecayProducts
(
const
reco::GenParticleRef
&,
41
reco::GenParticleRefVector
&,
42
int
status
= 1,
43
int
pdgId
= 0)
const
;
44
45
enum
tauDecayModes
{
46
kElectron
,
47
kMuon
,
48
kOneProng0pi0
,
49
kOneProng1pi0
,
50
kOneProng2pi0
,
51
kThreeProng0pi0
,
52
kThreeProng1pi0
,
53
kOther
,
54
kUndefined
55
};
56
57
const
edm::EDGetTokenT<reco::GenParticleCollection>
MC_
;
58
const
edm::EDGetTokenT<reco::GenMETCollection>
MCMET_
;
59
const
double
ptMinMCTau_
;
60
const
double
ptMinMCElectron_
;
61
const
double
ptMinMCMuon_
;
62
const
std::vector<int>
m_PDG_
;
63
const
double
etaMin_
,
etaMax_
,
phiMin_
,
phiMax_
;
64
};
65
66
#endif
HLTTauMCProducer::getGenDecayProducts
void getGenDecayProducts(const reco::GenParticleRef &, reco::GenParticleRefVector &, int status=1, int pdgId=0) const
Definition:
HLTTauMCProducer.cc:262
HLTTauMCProducer::ptMinMCMuon_
const double ptMinMCMuon_
Definition:
HLTTauMCProducer.h:61
edm::StreamID
Definition:
StreamID.h:30
HLTTauMCProducer::etaMax_
const double etaMax_
Definition:
HLTTauMCProducer.h:63
Handle.h
HLTTauMCProducer::kOther
Definition:
HLTTauMCProducer.h:53
MessageLogger.h
HLTTauMCProducer::kOneProng0pi0
Definition:
HLTTauMCProducer.h:48
HLTTauMCProducer::etaMin_
const double etaMin_
Definition:
HLTTauMCProducer.h:63
HLTTauMCProducer::kElectron
Definition:
HLTTauMCProducer.h:46
HLTTauMCProducer::MC_
const edm::EDGetTokenT< reco::GenParticleCollection > MC_
Definition:
HLTTauMCProducer.h:57
GenMETCollection.h
mps_update.status
status
Definition:
mps_update.py:69
edm::EDGetTokenT< reco::GenParticleCollection >
math::XYZTLorentzVectorD
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > XYZTLorentzVectorD
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition:
LorentzVector.h:14
HLTTauMCProducer::kUndefined
Definition:
HLTTauMCProducer.h:54
HLTTauMCProducer::kThreeProng1pi0
Definition:
HLTTauMCProducer.h:52
edm::RefVector< GenParticleCollection >
HLTTauMCProducer::phiMax_
const double phiMax_
Definition:
HLTTauMCProducer.h:63
HLTTauMCProducer::produce
void produce(edm::StreamID, edm::Event &, const edm::EventSetup &) const override
Definition:
HLTTauMCProducer.cc:32
edm::Ref< GenParticleCollection >
GenParticle.h
GenParticleFwd.h
edm::global::EDProducer
Definition:
EDProducer.h:32
GenMET.h
HLTTauMCProducer::m_PDG_
const std::vector< int > m_PDG_
Definition:
HLTTauMCProducer.h:62
HLTTauMCProducer::MCMET_
const edm::EDGetTokenT< reco::GenMETCollection > MCMET_
Definition:
HLTTauMCProducer.h:58
edm::ParameterSet
Definition:
ParameterSet.h:47
Event.h
HLTTauMCProducer::ptMinMCTau_
const double ptMinMCTau_
Definition:
HLTTauMCProducer.h:59
HLTTauMCProducer::kOneProng1pi0
Definition:
HLTTauMCProducer.h:49
HLTTauMCProducer::tauDecayModes
tauDecayModes
Definition:
HLTTauMCProducer.h:45
LorentzVector.h
LorentzVectorCollection
std::vector< LorentzVector > LorentzVectorCollection
Definition:
HLTTauMCProducer.h:31
EgammaValidation_cff.pdgId
pdgId
Definition:
EgammaValidation_cff.py:118
edm::EventSetup
Definition:
EventSetup.h:57
InputTag.h
HLTTauMCProducer::phiMin_
const double phiMin_
Definition:
HLTTauMCProducer.h:63
HLTTauMCProducer::kThreeProng0pi0
Definition:
HLTTauMCProducer.h:51
Frameworkfwd.h
HLTTauMCProducer::ptMinMCElectron_
const double ptMinMCElectron_
Definition:
HLTTauMCProducer.h:60
HLTTauMCProducer::HLTTauMCProducer
HLTTauMCProducer(const edm::ParameterSet &)
Definition:
HLTTauMCProducer.cc:7
Candidate.h
LorentzVector
math::XYZTLorentzVectorD LorentzVector
Definition:
HLTTauMCProducer.h:30
ParameterSet.h
HepMCProduct.h
EDProducer.h
edm::Event
Definition:
Event.h:73
HLTTauMCProducer
Definition:
HLTTauMCProducer.h:33
HLTTauMCProducer::kOneProng2pi0
Definition:
HLTTauMCProducer.h:50
HLTTauMCProducer::kMuon
Definition:
HLTTauMCProducer.h:47
Generated for CMSSW Reference Manual by
1.8.16