CMS 3D CMS Logo

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
virtual double pt() const final
transverse momentum
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
virtual double eta() const final
momentum pseudorapidity
void setL1Jet(const l1extra::L1JetParticleRef &jetRef)
double ptL1_
pt, eta, phi of L1 object
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
virtual double phi() const final
momentum azimuthal angle
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
virtual double px() const final
x coordinate of momentum vector
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 p() const final
magnitude 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
HcalIsolatedTrackCandidate(const LorentzVector &v)
constructor from LorentzVector
virtual double pz() const final
z coordinate of momentum vector
std::pair< double, double > EtaPhiL1() const
void setL1(double pt, double eta, double phi)
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Candidate.h:37
fixed size matrix
double a
Definition: hdecay.h:121
void setTrack(const reco::TrackRef &tr)
virtual reco::TrackRef track() const
refrence to a Track
virtual double py() const final
y coordinate of momentum vector
double energyEcal() const
ECAL energy in the inner cone around tau jet.
double maxP() const
highest energy of other tracks in the cone around the candidate