15 float &etacry,
float &phicry,
int &ieta,
int &iphi,
float &thetatilt,
float &phitilt )
23 double Theta = -position_.theta()+0.5*
TMath::Pi();
24 double Eta = position_.eta();
25 double Phi = TVector2::Phi_mpi_pi(position_.phi());
29 const float X0 = 0.89;
const float T0 = 7.4;
33 std::vector< std::pair<DetId, float> > crystals_vector = bclus.
hitsAndFractions();
37 for (
unsigned int icry=0; icry!=crystals_vector.size(); ++icry) {
41 auto cell=geom->getGeometry(crystal);
44 double EtaCentr = center_pos.
eta();
45 double PhiCentr = TVector2::Phi_mpi_pi(center_pos.
phi());
50 crystalseed = crystal;
55 ieta = crystalseed.
ieta();
56 iphi = crystalseed.
iphi();
59 auto cell=geom->getGeometry(crystalseed);
67 double PhiCentr = TVector2::Phi_mpi_pi(center_pos.
phi());
69 phicry = (TVector2::Phi_mpi_pi(Phi-PhiCentr))/PhiWidth;
71 if (ieta<0) phicry *= -1.;
74 double ThetaWidth = (
TMath::Pi()/180.)*TMath::Cos(ThetaCentr);
75 etacry = (Theta-ThetaCentr)/ThetaWidth;
77 if (ieta<0) etacry *= -1.;
84 float &xcry,
float &ycry,
int &ix,
int &iy,
float &thetatilt,
float &phitilt )
93 double Eta = position_.eta();
94 double Phi = TVector2::Phi_mpi_pi(position_.phi());
95 double X = position_.x();
96 double Y = position_.y();
100 const float X0 = 0.89;
float T0 = 1.2;
107 std::vector< std::pair<DetId, float> > crystals_vector = bclus.
hitsAndFractions();
111 for (
unsigned int icry=0; icry!=crystals_vector.size(); ++icry) {
115 auto cell=geom->getGeometry(crystal);
118 double EtaCentr = center_pos.
eta();
119 double PhiCentr = TVector2::Phi_mpi_pi(center_pos.
phi());
124 crystalseed = crystal;
129 ix = crystalseed.
ix();
130 iy = crystalseed.
iy();
133 auto cell=geom->getGeometry(crystalseed);
141 double XCentr = center_pos.
x();
142 double XWidth = 2.59;
143 xcry = (X-XCentr)/XWidth;
146 double YCentr = center_pos.
y();
147 double YWidth = 2.59;
148 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
GlobalPoint getPosition(CCGFloat depth) const override
Geom::Phi< T > phi() const
const std::vector< std::pair< DetId, float > > & hitsAndFractions() const
CCGFloat getPhiAxis() const
double eta() const
pseudorapidity of cluster centroid
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
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
XYZPointD XYZPoint
point in space with cartesian internal representation
A base class to handle the particular shape of Ecal Xtals. Taken from ORCA Calorimetry Code...