27 double Theta = -position_.theta() + 0.5 *
M_PI;
28 double Eta = position_.eta();
29 double Phi = TVector2::Phi_mpi_pi(position_.phi());
33 const float X0 = 0.89;
38 std::vector<std::pair<DetId, float> > crystals_vector = bclus.
hitsAndFractions();
42 for (
unsigned int icry = 0; icry != crystals_vector.size(); ++icry) {
45 auto cell =
geom->getGeometry(crystal);
48 double EtaCentr = center_pos.
eta();
49 double PhiCentr = TVector2::Phi_mpi_pi(center_pos.
phi());
54 crystalseed = crystal;
62 auto cell =
geom->getGeometry(crystalseed);
70 double PhiCentr = TVector2::Phi_mpi_pi(center_pos.
phi());
71 double PhiWidth = (
M_PI / 180.);
72 phicry = (TVector2::Phi_mpi_pi(
Phi - PhiCentr)) / PhiWidth;
77 double ThetaCentr = -center_pos.
theta() + 0.5 *
M_PI;
78 double ThetaWidth = (
M_PI / 180.) *
std::cos(ThetaCentr);
79 etacry = (Theta - ThetaCentr) / ThetaWidth;
102 double Eta = position_.eta();
103 double Phi = TVector2::Phi_mpi_pi(position_.phi());
104 double X = position_.x();
105 double Y = position_.y();
109 const float X0 = 0.89;
118 std::vector<std::pair<DetId, float> > crystals_vector = bclus.
hitsAndFractions();
122 for (
unsigned int icry = 0; icry != crystals_vector.size(); ++icry) {
125 auto cell =
geom->getGeometry(crystal);
128 double EtaCentr = center_pos.
eta();
129 double PhiCentr = TVector2::Phi_mpi_pi(center_pos.
phi());
134 crystalseed = crystal;
138 ix = crystalseed.
ix();
139 iy = crystalseed.
iy();
142 auto cell =
geom->getGeometry(crystalseed);
150 double XCentr = center_pos.
x();
151 double XWidth = 2.59;
152 xcry = (
X - XCentr) / XWidth;
154 double YCentr = center_pos.
y();
155 double YWidth = 2.59;
156 ycry = (
Y - YCentr) / YWidth;
const math::XYZPoint & position() const
cluster centroid position
const std::vector< std::pair< DetId, float > > & hitsAndFractions() const
CCGFloat getPhiAxis() const
GlobalPoint getPosition(CCGFloat depth) const override
int iphi() const
get the crystal iphi
Geom::Phi< T > phi() const
int ieta() const
get the crystal ieta
Cos< T >::type cos(const T &t)
Abs< T >::type abs(const T &t)
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
double energy() const
cluster energy
ALPAKA_FN_ACC ALPAKA_FN_INLINE uint32_t ix(uint32_t id)
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...
ALPAKA_FN_ACC ALPAKA_FN_INLINE uint32_t iy(uint32_t id)
double eta() const
pseudorapidity of cluster centroid
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
access the subdetector geometry for the given subdetector directly
Geom::Theta< T > theta() const
CCGFloat getThetaAxis() const