29 double a = fabs(pos.eta());
31 double c = 2. * b / (1. - b * b);
32 double r = c / sqrt(1. + c * c);
35 double dRad1 = fabs(t1 - t2) / 2.;
46 if (!dde)
return false;
56 float perp2 = dPos.perp2(nearestMom);
60 float totTrkLen = sqrt(dPos.mag2() -
perp2);
61 if (dPos.dot(nearestMom) < 0) { totTrkLen = -totTrkLen; }
65 const std::vector<Trk::CurvilinearParameters>& intersections =
m_caloExtension->caloLayerIntersections();
66 for (
int i = 0; i <= nearestIdx; ++i) {
67 pos = intersections[i].position();
68 totTrkLen += (pos - oldPos).
mag();
73 if (totTrkLen < 0)
return false;
Scalar perp2() const
perp2 method - perpendicular length squared
Scalar mag() const
mag method
Data object for each calorimeter readout cell.
This class groups all DetDescr information related to a CaloCell.
CaloCellSelectorMinPerp(double coneSize)
const Trk::CaloExtension * m_caloExtension
bool select(const CaloCell &cell) const
Method to determine if a cell is to be selected or not.
bool preSelectAction(const Trk::CaloExtension &caloExtension)
Initialize selector wtih CaloExtension, returns false if the selection cannot be performed for the gi...
Tracking class to hold the extrapolation through calorimeter Layers Both the caloEntryLayerIntersecti...
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.
void findNearestPoint(const Amg::Vector3D &inputPos, const Trk::CaloExtension *caloExtension, int &nearestIdx, Amg::Vector3D &nearestPos, Amg::Vector3D &nearestMom)
void swap(ElementLinkVector< DOBJ > &lhs, ElementLinkVector< DOBJ > &rhs)