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 
56  ~HcalIsolatedTrackCandidate() override;
57 
59  HcalIsolatedTrackCandidate * clone() const override;
60 
62  reco::TrackRef track() const override;
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  bool overlap( const Candidate & ) const override;
113  double maxP_;
115  double enEcal_;
117  double ptL1_, etaL1_, phiL1_;
125  };
126 
127 
128 }
129 
130 #endif
std::pair< double, double > EtaPhiEcal() const
double eta() const final
momentum pseudorapidity
math::XYZTLorentzVector l1jetp() const
reco::TrackRef track_
reference to a Track
double px() const final
x coordinate of momentum vector
void setL1Jet(const l1extra::L1JetParticleRef &jetRef)
double ptL1_
pt, eta, phi of L1 object
double pt() const final
transverse momentum
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
double pz() const final
z coordinate of momentum vector
void SetEtaPhiEcal(double eta, double phi)
eta, phi at ECAL surface
T get() const
get a component
void SetEtaPhiHcal(double eta, double phi, int ieta, int iphi)
eta, phi at HCAL surface
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
double p() const final
magnitude of momentum vector
std::pair< double, double > EtaPhiL1() const
void setL1(double pt, double eta, double phi)
bool overlap(const Candidate &) const override
check overlap with another candidate
double py() const final
y coordinate of momentum vector
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Candidate.h:37
fixed size matrix
double a
Definition: hdecay.h:121
reco::TrackRef track() const override
refrence to a Track
void setTrack(const reco::TrackRef &tr)
HcalIsolatedTrackCandidate * clone() const override
returns a clone of the candidate
double phi() const final
momentum azimuthal angle
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