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
std::vector< l1t::PFTau > PFTauCollection
Definition: PFTau.h:61
float fullIso() const
Definition: PFTau.h:42
std::vector< l1t::PFTauRef > PFTauVectorRef
Definition: PFTau.h:65
double pt() const final
transverse momentum
static constexpr float PFTAU_NN_OVERALL_SCALE
Definition: PFTau.h:12
math::PtEtaPhiMLorentzVector PolarLorentzVector
Lorentz vector.
Definition: LeafCandidate.h:25
delete x;
Definition: CaloConfig.h:22
static constexpr double PFTAU_NN_PT_CUTOFF
Definition: PFTau.h:20
bool passLoosePF() const
Definition: PFTau.h:48
edm::RefVector< l1t::PFTauCollection > PFTauRefVector
Definition: PFTau.h:64
double p() const final
magnitude of momentum vector
int id_
Definition: PFTau.h:58
static constexpr float PFTAU_NN_OFFSET
Definition: PFTau.h:10
bool passLooseNN() const
Definition: PFTau.h:44
bool passTightNN() const
Definition: PFTau.h:49
int id() const
Definition: PFTau.h:43
float fullIso_
Definition: PFTau.h:57
static constexpr float PFTAU_NN_SLOPE
Definition: PFTau.h:11
edm::Ref< l1t::PFTauCollection > PFTauRef
Definition: PFTau.h:63
static constexpr float PFTAU_PF_LOOSE_CUT
Definition: PFTau.h:17
bool passTightPF() const
Definition: PFTau.h:53
static constexpr float PFTAU_NN_TIGHT_CUT
Definition: PFTau.h:15
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Candidate.h:36
float iso_
Definition: PFTau.h:56
static constexpr float PFTAU_NN_LOOSE_CUT
Definition: PFTau.h:14
float chargedIso() const
Definition: PFTau.h:41
static constexpr float PFTAU_PF_TIGHT_CUT
Definition: PFTau.h:18
PFTau()
Definition: PFTau.h:24
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
math::PtEtaPhiMLorentzVector PolarLorentzVector
Lorentz vector.
Definition: Candidate.h:38