1 #include "../interface/EcalClusterLocal.h"
25 localCoordsEB( bclus, *pG, etacry, phicry, ieta, iphi, thetatilt, phitilt);
39 double Theta = -position_.theta()+0.5*
TMath::Pi();
40 double Eta = position_.eta();
45 const float X0 = 0.89;
const float T0 = 7.4;
46 double depth = X0 * (T0 +
log(bclus.
energy()));
49 std::vector< std::pair<DetId, float> > crystals_vector = bclus.
hitsAndFractions();
53 for (
unsigned int icry=0; icry!=crystals_vector.size(); ++icry) {
59 double EtaCentr = center_pos.
eta();
65 crystalseed = crystal;
70 ieta = crystalseed.
ieta();
71 iphi = crystalseed.
iphi();
86 if (ieta<0) phicry *= -1.;
89 double ThetaWidth = (
TMath::Pi()/180.)*TMath::Cos(ThetaCentr);
90 etacry = (Theta-ThetaCentr)/ThetaWidth;
92 if (ieta<0) etacry *= -1.;
102 localCoordsEE( bclus, *pG, xcry, ycry, ix, iy, thetatilt, phitilt);
114 double Eta = position_.eta();
116 double X = position_.x();
117 double Y = position_.y();
121 const float X0 = 0.89;
float T0 = 1.2;
123 if (TMath::Abs(bclus.
eta())<1.653) T0 = 3.1;
125 double depth = X0 * (T0 +
log(bclus.
energy()));
128 std::vector< std::pair<DetId, float> > crystals_vector = bclus.
hitsAndFractions();
132 for (
unsigned int icry=0; icry!=crystals_vector.size(); ++icry) {
138 double EtaCentr = center_pos.
eta();
144 crystalseed = crystal;
149 ix = crystalseed.
ix();
150 iy = crystalseed.
iy();
161 double XCentr = center_pos.
x();
162 double XWidth = 2.59;
163 xcry = (X-XCentr)/XWidth;
166 double YCentr = center_pos.
y();
167 double YWidth = 2.59;
168 ycry = (Y-YCentr)/YWidth;
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
access the subdetector geometry for the given subdetector directly
const math::XYZPoint & position() const
cluster centroid position
Geom::Phi< T > phi() const
const std::vector< std::pair< DetId, float > > & hitsAndFractions() const
double Phi_mpi_pi(double x)
CCGFloat getPhiAxis() const
double eta() const
pseudorapidity of cluster centroid
double deltaR(double eta1, double phi1, double eta2, double phi2)
Geom::Theta< T > theta() const
int iphi() const
get the crystal iphi
double energy() const
cluster energy
int ieta() const
get the crystal ieta
CCGFloat getThetaAxis() const
const GlobalPoint getPosition(CCGFloat depth) const
XYZPointD XYZPoint
point in space with cartesian internal representation
void localCoordsEB(const reco::CaloCluster &bclus, const edm::EventSetup &es, float &etacry, float &phicry, int &ieta, int &iphi, float &thetatilt, float &phitilt) const
A base class to handle the particular shape of Ecal Xtals. Taken from ORCA Calorimetry Code...
void localCoordsEE(const reco::CaloCluster &bclus, const edm::EventSetup &es, float &xcry, float &ycry, int &ix, int &iy, float &thetatilt, float &phitilt) const