CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
HcalIsolatedTrackCandidate.h
Go to the documentation of this file.
1 #ifndef HcalIsolatedTrack_HcalIsolatedTrackCandidate_h
2 #define HcalIsolatedTrack_HcalIsolatedTrackCandidate_h
3 
14 
15 #include <vector>
16 #include <map>
17 #include <utility>
18 
19 namespace reco {
20 
22 
23  public:
24 
25  // default constructor
27  maxP_ =-1;
28  enEcal_ =-1;
29  ptL1_ =etaL1_ =phiL1_=0;
32  etaPhiEcal_=etaPhiHcal_=false;
33  }
36  maxP_ =-1;
37  enEcal_ =-1;
38  ptL1_ =etaL1_ =phiL1_=0;
41  etaPhiEcal_=etaPhiHcal_=false;
42  }
44  HcalIsolatedTrackCandidate(const reco::TrackRef & tr, double max, double ene):
45  RecoCandidate( 0, LorentzVector((tr.get()->px()),(tr.get())->py(),(tr.get())->pz(),(tr.get())->p()) ),
46  track_(tr), maxP_(max), enEcal_(ene) {
47  ptL1_ =etaL1_ =phiL1_=0;
50  etaPhiEcal_=etaPhiHcal_=false;
51  }
54 
57 
59  virtual HcalIsolatedTrackCandidate * clone() const;
60 
62  virtual reco::TrackRef track() const;
63  void setTrack(const reco::TrackRef & tr) { track_ = tr; }
64 
66  double maxP() const {return maxP_;}
67  void SetMaxP(double mp) {maxP_=mp;}
68 
70  virtual l1extra::L1JetParticleRef l1jet() const;
71  void setL1Jet(const l1extra::L1JetParticleRef & jetRef) { l1Jet_ = jetRef; }
72  std::pair<double,double> EtaPhiL1() const {
73  return std::pair<double,double>(etaL1_,phiL1_);
74  }
76  void setL1(double pt, double eta, double phi) {
77  ptL1_ = pt; etaL1_ = eta; phiL1_ = phi;
78  }
79 
81  double energyEcal() const {return enEcal_;}
82  void SetEnergyEcal(double a) {enEcal_=a;}
83 
85  void SetEtaPhiEcal(double eta, double phi) {
87  }
88  std::pair<double,double> EtaPhiEcal() const {
89  return ((etaPhiEcal_) ? std::pair<double,double>(etaEcal_,phiEcal_) : std::pair<double,double>(0,0));
90  }
91  bool etaPhiEcal() const {return etaPhiEcal_;}
92 
94  void SetEtaPhiHcal(double eta, double phi, int ieta, int iphi) {
96  }
97  std::pair<double,double> EtaPhiHcal() const {
98  return ((etaPhiHcal_) ? std::pair<double,double>(etaHcal_,phiHcal_) : std::pair<double,double>(0,0));
99  }
100  std::pair<int,int> towerIndex() const {
101  return ((etaPhiHcal_) ? std::pair<int,int>(ietaHcal_,iphiHcal_) : std::pair<int,int>(0,0));
102  }
103  bool etaPhiHcal() const {return etaPhiHcal_;}
104 
105  private:
107  virtual bool overlap( const Candidate & ) const;
113  double maxP_;
115  double enEcal_;
117  double ptL1_, etaL1_, phiL1_;
125  };
126 
127 
128 }
129 
130 #endif
std::pair< double, double > EtaPhiEcal() const
math::XYZTLorentzVector l1jetp() const
reco::TrackRef track_
reference to a Track
virtual HcalIsolatedTrackCandidate * clone() const
returns a clone of the candidate
void setL1Jet(const l1extra::L1JetParticleRef &jetRef)
double ptL1_
pt, eta, phi of L1 object
virtual double phi() const final
momentum azimuthal angle
double enEcal_
energy in ECAL around a cone around the track
std::pair< double, double > EtaPhiHcal() const
std::pair< int, int > towerIndex() const
l1extra::L1JetParticleRef l1Jet_
reference to a L1 tau jet
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
double maxP_
highest P of other tracks in the cone around the candidate
void SetEtaPhiEcal(double eta, double phi)
eta, phi at ECAL surface
virtual bool overlap(const Candidate &) const
check overlap with another candidate
T get() const
get a component
void SetEtaPhiHcal(double eta, double phi, int ieta, int iphi)
eta, phi at HCAL surface
virtual double py() const final
y coordinate of momentum vector
HcalIsolatedTrackCandidate(const reco::TrackRef &tr, double max, double ene)
constructor from a track
virtual l1extra::L1JetParticleRef l1jet() const
get reference to L1 jet
virtual double pz() const final
z coordinate of momentum vector
HcalIsolatedTrackCandidate(const LorentzVector &v)
constructor from LorentzVector
std::pair< double, double > EtaPhiL1() const
void setL1(double pt, double eta, double phi)
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Candidate.h:37
virtual double p() const final
magnitude of momentum vector
double a
Definition: hdecay.h:121
void setTrack(const reco::TrackRef &tr)
virtual double px() const final
x coordinate of momentum vector
virtual double eta() const final
momentum pseudorapidity
virtual reco::TrackRef track() const
refrence to a Track
double energyEcal() const
ECAL energy in the inner cone around tau jet.
virtual double pt() const final
transverse momentum
double maxP() const
highest energy of other tracks in the cone around the candidate