CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
dRxyCalculator Class Reference

#include <dRxyCalculator.h>

Public Member Functions

 dRxyCalculator (const edm::Event &iEvent, const edm::EventSetup &iSetup, edm::InputTag trackLabel)
 
double getDRxy (const reco::Photon cluster, double x, double y)
 

Private Member Functions

double calcDphi (double phi1_, double phi2_)
 
double dRDistance (double eta1, double phi1, double eta2, double phi2)
 

Private Attributes

edm::Handle
< reco::TrackCollection
recCollection
 

Detailed Description

Definition at line 26 of file dRxyCalculator.h.

Constructor & Destructor Documentation

dRxyCalculator::dRxyCalculator ( const edm::Event iEvent,
const edm::EventSetup iSetup,
edm::InputTag  trackLabel 
)

Definition at line 14 of file dRxyCalculator.cc.

References edm::Event::getByLabel().

15 {
16  // Get reconstructed tracks
17  iEvent.getByLabel(trackLabel, recCollection); // !!
18 
19 }
edm::Handle< reco::TrackCollection > recCollection
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:356

Member Function Documentation

double dRxyCalculator::calcDphi ( double  phi1_,
double  phi2_ 
)
inlineprivate

Definition at line 41 of file dRxyCalculator.h.

References PI.

Referenced by dRDistance().

42  {
43  double dphi=phi1_-phi2_;
44 
45  if (dphi>0){
46  while (dphi>2*PI) dphi-=2*PI;
47  if (dphi>PI) dphi=2*PI-dphi;
48  } else {
49  while (dphi<-2*PI) dphi+=2*PI;
50  if (dphi<-PI) dphi=-2*PI-dphi;
51  }
52  return dphi;
53  }
#define PI
double dRxyCalculator::dRDistance ( double  eta1,
double  phi1,
double  eta2,
double  phi2 
)
inlineprivate

Definition at line 33 of file dRxyCalculator.h.

References calcDphi(), and mathSSE::sqrt().

34  {
35  double deta = eta1 - eta2;
36  double dphi = (calcDphi(phi1, phi2));
37 
38  return sqrt(deta * deta + dphi * dphi);
39  }
T sqrt(T t)
Definition: SSEVec.h:46
double calcDphi(double phi1_, double phi2_)
double dRxyCalculator::getDRxy ( const reco::Photon  cluster,
double  x,
double  y 
)

Definition at line 21 of file dRxyCalculator.cc.

References PFRecoTauDiscriminationAgainstElectronDeadECAL_cfi::dR, reco::LeafCandidate::eta(), reco::LeafCandidate::phi(), dt_dqm_sourceclient_common_cff::reco, python.multivaluedict::sort(), and detailsBasic3DVector::y.

Referenced by HiEgammaIsolationProducer::produce().

22 {
23  using namespace edm;
24  using namespace reco;
25 
26  double eta1 = p.eta();
27  double phi1 = p.phi();
28 
29  std::vector<double> Rxy;
30 
31  for(reco::TrackCollection::const_iterator
32  recTrack = recCollection->begin(); recTrack!= recCollection->end(); recTrack++)
33  {
34  double pt = recTrack->pt();
35  double eta2 = recTrack->eta();
36  double phi2 = recTrack->phi();
37 
38  if(pt < x * 0.4)
39  continue;
40 
41  double dR = dRDistance(eta1,phi1,eta2,phi2);
42 
43  if(Rxy.size() < y+1)
44  {
45  Rxy.push_back(dR);
46  sort(Rxy.begin(), Rxy.end());
47  continue;
48  }
49 
50  if(dR < Rxy[Rxy.size()-1])
51  {
52  Rxy[Rxy.size()-1] = dR;
53  sort(Rxy.begin(), Rxy.end());
54  }
55  }
56 
57  double rxy = 4;
58  if (Rxy.size()<y) rxy=4; else rxy = Rxy[(int)y-1];
59  Rxy.clear();
60  return rxy;
61 }
edm::Handle< reco::TrackCollection > recCollection
Definition: DDAxes.h:10
double dRDistance(double eta1, double phi1, double eta2, double phi2)

Member Data Documentation

edm::Handle<reco::TrackCollection> dRxyCalculator::recCollection
private

Definition at line 56 of file dRxyCalculator.h.