CMS 3D CMS Logo

TriggerObject.h
Go to the documentation of this file.
1 #ifndef HLTReco_TriggerObject_h
2 #define HLTReco_TriggerObject_h
3 
15 #include <cmath>
16 #include <vector>
17 
18 namespace trigger {
19 
21  class TriggerObject {
23  private:
25  int id_;
27  float pt_, eta_, phi_, mass_;
28 
30  public:
32  TriggerObject() : id_(), pt_(), eta_(), phi_(), mass_() {}
33  TriggerObject(int id, float pt, float eta, float phi, float mass)
34  : id_(id), pt_(pt), eta_(eta), phi_(phi), mass_(mass) {}
35 
37  template <typename T>
38  TriggerObject(int id, const T& o) : id_(id), pt_(o.pt()), eta_(o.eta()), phi_(o.phi()), mass_(o.mass()) {}
40  template <typename T>
41  TriggerObject(const T& o) : id_(o.pdgId()), pt_(o.pt()), eta_(o.eta()), phi_(o.phi()), mass_(o.mass()) {}
42 
44  void setId(int id) { id_ = id; }
45  void setPt(float pt) { pt_ = pt; }
46  void setEta(float eta) { eta_ = eta; }
47  void setPhi(float phi) { phi_ = phi; }
48  void setMass(float mass) { mass_ = mass; }
49 
51  int id() const { return id_; }
52  float pt() const { return pt_; }
53  float eta() const { return eta_; }
54  float phi() const { return phi_; }
55  float mass() const { return mass_; }
56 
57  float px() const { return pt_ * std::cos(phi_); }
58  float py() const { return pt_ * std::sin(phi_); }
59  float pz() const { return pt_ * std::sinh(eta_); }
60  float p() const { return pt_ * std::cosh(eta_); }
61  float energy() const { return std::sqrt(std::pow(mass_, 2) + std::pow(p(), 2)); }
62  // et = energy/cosh(eta)
63  float et() const { return std::sqrt(std::pow(mass_ / std::cosh(eta_), 2) + std::pow(pt_, 2)); }
64 
67  int status = 0,
68  bool integerCharge = true) const {
69  return reco::Particle(
70  q, reco::Particle::LorentzVector(px(), py(), pz(), energy()), vertex, id(), status, integerCharge);
71  }
72  };
73 
75  typedef std::vector<TriggerObject> TriggerObjectCollection;
76 
77 } // namespace trigger
78 
79 #endif
trigger::TriggerObject::setEta
void setEta(float eta)
Definition: TriggerObject.h:46
trigger::TriggerObject::phi
float phi() const
Definition: TriggerObject.h:54
TriggerObject
Definition: TriggerObject.py:1
trigger::TriggerObject::particle
reco::Particle particle(reco::Particle::Charge q=0, const reco::Particle::Point &vertex=reco::Particle::Point(0, 0, 0), int status=0, bool integerCharge=true) const
Definition: TriggerObject.h:65
reco::Particle
Definition: Particle.h:16
mps_update.status
status
Definition: mps_update.py:69
trigger::TriggerObject::eta_
float eta_
Definition: TriggerObject.h:27
trigger::TriggerObject::id_
int id_
data members - similar to DataFormats/Candidate/interface/Particle.h
Definition: TriggerObject.h:25
reco::Particle::LorentzVector
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Particle.h:21
EcalTangentSkim_cfg.o
o
Definition: EcalTangentSkim_cfg.py:42
funct::sin
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
trigger::TriggerObject::py
float py() const
Definition: TriggerObject.h:58
trigger::TriggerObject::pt
float pt() const
Definition: TriggerObject.h:52
funct::cos
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
trigger::TriggerObject::et
float et() const
Definition: TriggerObject.h:63
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
trigger::TriggerObject::TriggerObject
TriggerObject(int id, const T &o)
any type T object implementing the methods pt(), eta(), phi(), mass()
Definition: TriggerObject.h:38
trigger::TriggerObject::TriggerObject
TriggerObject()
methods
Definition: TriggerObject.h:32
Particle.h
trigger::TriggerObject::mass_
float mass_
Definition: TriggerObject.h:27
trigger::TriggerObject::px
float px() const
Definition: TriggerObject.h:57
trigger::TriggerObject::phi_
float phi_
Definition: TriggerObject.h:27
trigger::TriggerObject::energy
float energy() const
Definition: TriggerObject.h:61
bphysicsOniaDQM_cfi.vertex
vertex
Definition: bphysicsOniaDQM_cfi.py:7
trigger::TriggerObjectCollection
std::vector< TriggerObject > TriggerObjectCollection
collection of trigger physics objects (e.g., all isolated muons)
Definition: TriggerObject.h:75
trigger::TriggerObject::id
int id() const
getters
Definition: TriggerObject.h:51
trigger::TriggerObject::TriggerObject
TriggerObject(const T &o)
... and pdgId()
Definition: TriggerObject.h:41
trigger::TriggerObject::setPhi
void setPhi(float phi)
Definition: TriggerObject.h:47
trigger::TriggerObject::eta
float eta() const
Definition: TriggerObject.h:53
trigger::TriggerObject::setPt
void setPt(float pt)
Definition: TriggerObject.h:45
EgammaValidation_cff.pdgId
pdgId
Definition: EgammaValidation_cff.py:118
submitPVResolutionJobs.q
q
Definition: submitPVResolutionJobs.py:84
trigger::TriggerObject::p
float p() const
Definition: TriggerObject.h:60
trigger::TriggerObject::pt_
float pt_
4-momentum of physics object
Definition: TriggerObject.h:27
trigger::TriggerObject::pz
float pz() const
Definition: TriggerObject.h:59
T
long double T
Definition: Basic3DVectorLD.h:48
trigger
Definition: HLTPrescaleTableCond.h:8
reco::Particle::Point
math::XYZPoint Point
point in the space
Definition: Particle.h:25
trigger::TriggerObject::setId
void setId(int id)
setters
Definition: TriggerObject.h:44
funct::pow
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:29
trigger::TriggerObject::TriggerObject
TriggerObject(int id, float pt, float eta, float phi, float mass)
Definition: TriggerObject.h:33
reco::Particle::Charge
int Charge
electric charge type
Definition: Particle.h:19
trigger::TriggerObject::mass
float mass() const
Definition: TriggerObject.h:55
trigger::TriggerObject::setMass
void setMass(float mass)
Definition: TriggerObject.h:48