|
ATLAS Offline Software
|
Go to the documentation of this file.
23 const double RfaceCalo = 1500;
24 const double ZfaceCalo = 3700;
26 double Rclus = RfaceCalo;
27 double Zclus = ZfaceCalo;
28 const double clusterEta = cluster.
eta();
29 if (clusterEta != 0) {
35 const double tanthetaclus = (1.0 / std::cosh(clusterEta)) / std::tanh(clusterEta);
37 Rclus = std::abs(ZfaceCalo * (tanthetaclus));
43 if (tanthetaclus != 0) {
44 Zclus = RfaceCalo / (tanthetaclus);
51 const double clusterPhi = cluster.
phi();
52 return { Rclus *
std::cos(clusterPhi), Rclus *
std::sin(clusterPhi), Zclus };
63 const double Rcalo = 1200;
69 const double ecFactor = 1.0 / (0.8 *
std::atan(15.0 / 34.0));
71 ecCorr = sinTheta0 * std::sqrt(sinTheta0) * ecFactor;
74 const double Rscaled = (Rcalo - r_first) * (1. / Rcalo);
75 phiRot = Rscaled * ecCorr *
charge * 430. / (Et);
Amg::Vector3D approxXYZwrtPoint(const xAOD::CaloCluster &cluster, const Amg::Vector3D &point, const bool isEndCap)
Function to get the (x,y,z) of the cluster wrt to a point (x0,y0,z0)
virtual double phi() const
The azimuthal angle ( ) of the particle.
double PhiROT(const double pt, const double eta, const int charge, const double r_start, const bool isEndCap)
Function to calculate the approximate rotation in phi/bending of a track until it reaches the calo.
Description of a calorimeter cluster.
virtual double eta() const
The pseudorapidity ( ) of the particle.
double charge(const T &p)
Eigen::Matrix< double, 3, 1 > Vector3D
Amg::Vector3D approxXYZwrtATLAS(const xAOD::CaloCluster &clusterEta, const bool isEndCap)
Function to get the (x,y,z) of the cluster in the ATLAS frame origin (0,0,0)