CMS 3D CMS Logo

PFTau.h
Go to the documentation of this file.
1 #ifndef DataFormats_L1TParticleFlow_PFTau_h
2 #define DataFormats_L1TParticleFlow_PFTau_h
3 
4 #include <algorithm>
5 #include <vector>
7 
8 namespace l1t {
9 
10  static constexpr float PFTAU_NN_OFFSET = 0.1;
11  static constexpr float PFTAU_NN_SLOPE = 0.2;
12  static constexpr float PFTAU_NN_OVERALL_SCALE = 1. / 20.1;
13 
14  static constexpr float PFTAU_NN_LOOSE_CUT = 0.05;
15  static constexpr float PFTAU_NN_TIGHT_CUT = 0.25;
16 
17  static constexpr float PFTAU_PF_LOOSE_CUT = 10.0;
18  static constexpr float PFTAU_PF_TIGHT_CUT = 5.0;
19 
20  static constexpr double PFTAU_NN_PT_CUTOFF = 100.0;
21 
22  class PFTau : public L1Candidate {
23  public:
24  PFTau() {}
25  enum { unidentified = 0, oneprong = 1, oneprongpi0 = 2, threeprong = 3 };
27  float iso = -1,
28  float fulliso = -1,
29  int id = 0,
30  int hwpt = 0,
31  int hweta = 0,
32  int hwphi = 0)
33  : PFTau(PolarLorentzVector(p), iso, id, hwpt, hweta, hwphi) {}
34  PFTau(const PolarLorentzVector& p,
35  float iso = -1,
36  float fulliso = -1,
37  int id = 0,
38  int hwpt = 0,
39  int hweta = 0,
40  int hwphi = 0);
41  float chargedIso() const { return iso_; }
42  float fullIso() const { return fullIso_; }
43  int id() const { return id_; }
44  bool passLooseNN() const {
47  }
48  bool passLoosePF() const { return fullIso_ < PFTAU_PF_LOOSE_CUT; }
49  bool passTightNN() const {
52  }
53  bool passTightPF() const { return fullIso_ < PFTAU_PF_TIGHT_CUT; }
54 
55  private:
56  float iso_;
57  float fullIso_;
58  int id_;
59  };
60 
61  typedef std::vector<l1t::PFTau> PFTauCollection;
62 
65  typedef std::vector<l1t::PFTauRef> PFTauVectorRef;
66 } // namespace l1t
67 #endif
l1t::PFTau::PFTau
PFTau(const LorentzVector &p, float iso=-1, float fulliso=-1, int id=0, int hwpt=0, int hweta=0, int hwphi=0)
Definition: PFTau.h:26
l1t::PFTauRef
edm::Ref< l1t::PFTauCollection > PFTauRef
Definition: PFTau.h:63
l1t::PFTAU_PF_LOOSE_CUT
static constexpr float PFTAU_PF_LOOSE_CUT
Definition: PFTau.h:17
l1t::PFTau
Definition: PFTau.h:22
l1t::PFTAU_NN_OFFSET
static constexpr float PFTAU_NN_OFFSET
Definition: PFTau.h:10
min
T min(T a, T b)
Definition: MathUtil.h:58
reco::Candidate::PolarLorentzVector
math::PtEtaPhiMLorentzVector PolarLorentzVector
Lorentz vector.
Definition: Candidate.h:38
l1t::PFTAU_PF_TIGHT_CUT
static constexpr float PFTAU_PF_TIGHT_CUT
Definition: PFTau.h:18
l1t::PFTau::passTightPF
bool passTightPF() const
Definition: PFTau.h:53
edm::RefVector
Definition: EDProductfwd.h:27
reco::LeafCandidate::pt
double pt() const final
transverse momentum
Definition: LeafCandidate.h:146
l1t::PFTAU_NN_SLOPE
static constexpr float PFTAU_NN_SLOPE
Definition: PFTau.h:11
l1t::PFTAU_NN_LOOSE_CUT
static constexpr float PFTAU_NN_LOOSE_CUT
Definition: PFTau.h:14
edm::Ref
Definition: AssociativeIterator.h:58
l1t::PFTau::id_
int id_
Definition: PFTau.h:58
l1t::PFTau::chargedIso
float chargedIso() const
Definition: PFTau.h:41
l1t::PFTau::passTightNN
bool passTightNN() const
Definition: PFTau.h:49
l1t::L1Candidate
Definition: L1Candidate.h:15
l1t::PFTauCollection
std::vector< l1t::PFTau > PFTauCollection
Definition: PFTau.h:61
reco::LeafCandidate::PolarLorentzVector
math::PtEtaPhiMLorentzVector PolarLorentzVector
Lorentz vector.
Definition: LeafCandidate.h:25
l1t::PFTau::oneprongpi0
Definition: PFTau.h:25
l1t::PFTAU_NN_TIGHT_CUT
static constexpr float PFTAU_NN_TIGHT_CUT
Definition: PFTau.h:15
l1t::PFTau::PFTau
PFTau()
Definition: PFTau.h:24
l1t
delete x;
Definition: CaloConfig.h:22
l1t::PFTau::fullIso
float fullIso() const
Definition: PFTau.h:42
l1t::PFTAU_NN_OVERALL_SCALE
static constexpr float PFTAU_NN_OVERALL_SCALE
Definition: PFTau.h:12
L1Candidate.h
l1t::PFTau::threeprong
Definition: PFTau.h:25
l1t::PFTauRefVector
edm::RefVector< l1t::PFTauCollection > PFTauRefVector
Definition: PFTau.h:64
l1t::PFTauVectorRef
std::vector< l1t::PFTauRef > PFTauVectorRef
Definition: PFTau.h:65
l1t::PFTau::unidentified
Definition: PFTau.h:25
reco::LeafCandidate::p
double p() const final
magnitude of momentum vector
Definition: LeafCandidate.h:123
l1t::PFTau::iso_
float iso_
Definition: PFTau.h:56
reco::Candidate::LorentzVector
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Candidate.h:36
l1t::PFTau::fullIso_
float fullIso_
Definition: PFTau.h:57
l1t::PFTau::passLoosePF
bool passLoosePF() const
Definition: PFTau.h:48
l1t::PFTau::passLooseNN
bool passLooseNN() const
Definition: PFTau.h:44
l1t::PFTAU_NN_PT_CUTOFF
static constexpr double PFTAU_NN_PT_CUTOFF
Definition: PFTau.h:20
l1t::PFTau::oneprong
Definition: PFTau.h:25
l1t::PFTau::id
int id() const
Definition: PFTau.h:43