|
int | areAlignedRZ (float r1, float z1, float ro, float zo, const float ptmin, const float thetaCut) const |
|
| CACell (const HitDoublets *doublets, int doubletId, const int innerHitId, const int outerHitId) |
|
void | checkAlignmentAndAct (CAColl &allCells, CAntuple &innerCells, const float ptmin, const float region_origin_x, const float region_origin_y, const float region_origin_radius, const float thetaCut, const float phiCut, const float hardPtCut, std::vector< CACell::CAntuplet > *foundTriplets) |
|
void | checkAlignmentAndPushTriplet (CAColl &allCells, CAntuple &innerCells, std::vector< CACell::CAntuplet > &foundTriplets, const float ptmin, const float region_origin_x, const float region_origin_y, const float region_origin_radius, const float thetaCut, const float phiCut, const float hardPtCut) |
|
void | checkAlignmentAndTag (CAColl &allCells, CAntuple &innerCells, const float ptmin, const float region_origin_x, const float region_origin_y, const float region_origin_radius, const float thetaCut, const float phiCut, const float hardPtCut) |
|
void | evolve (unsigned int me, CAStatusColl &allStatus) |
|
void | findNtuplets (CAColl &allCells, std::vector< CAntuplet > &foundNtuplets, CAntuplet &tmpNtuplet, const unsigned int minHitsPerNtuplet) const |
|
Hit const & | getInnerHit () const |
|
float | getInnerPhi () const |
|
float | getInnerR () const |
|
float | getInnerX () const |
|
float | getInnerY () const |
|
float | getInnerZ () const |
|
Hit const & | getOuterHit () const |
|
float | getOuterPhi () const |
|
float | getOuterR () const |
|
float | getOuterX () const |
|
float | getOuterY () const |
|
float | getOuterZ () const |
|
bool | haveSimilarCurvature (const CACell &otherCell, const float ptmin, const float region_origin_x, const float region_origin_y, const float region_origin_radius, const float phiCut, const float hardPtCut) const |
|
void | tagAsOuterNeighbor (unsigned int otherCell) |
|
Definition at line 35 of file CACell.h.
bool CACell::haveSimilarCurvature |
( |
const CACell & |
otherCell, |
|
|
const float |
ptmin, |
|
|
const float |
region_origin_x, |
|
|
const float |
region_origin_y, |
|
|
const float |
region_origin_radius, |
|
|
const float |
phiCut, |
|
|
const float |
hardPtCut |
|
) |
| const |
|
inline |
Definition at line 191 of file CACell.h.
References funct::abs(), hippyaddtobaddatafiles::cd(), MillePedeFileConverter_cfg::e, f, getInnerX(), getInnerY(), PFRecoTauDiscriminationByIsolation_cfi::offset, TCMET_cfi::radius, mathSSE::sqrt(), globals_cff::x1, and globals_cff::x2.
205 float distance_13_squared = (
x1 - x3)*(
x1 - x3) + (y1 - y3)*(y1 - y3);
206 float tan_12_13_half_mul_distance_13_squared =
std::abs(y1 * (
x2 - x3) + y2 * (x3 -
x1) + y3 * (
x1 -
x2)) ;
208 if(tan_12_13_half_mul_distance_13_squared *
ptmin <= 1.0
e-4
f*distance_13_squared)
211 float distance_3_beamspot_squared = (x3-region_origin_x) * (x3-region_origin_x) + (y3-region_origin_y) * (y3-region_origin_y);
213 float dot_bs3_13 = ((
x1 - x3)*( region_origin_x - x3) + (y1 - y3) * (region_origin_y-y3));
214 float proj_bs3_on_13_squared = dot_bs3_13*dot_bs3_13/distance_13_squared;
216 float distance_13_beamspot_squared = distance_3_beamspot_squared - proj_bs3_on_13_squared;
218 return distance_13_beamspot_squared < (region_origin_radius+phiCut)*(region_origin_radius+phiCut);
224 float minRadius = hardPtCut*87.f;
226 auto det = (
x1 -
x2) * (y2 - y3) - (
x2 - x3) * (y1 - y2);
233 auto cd = (
offset - x3 * x3 - y3 * y3)*0.5
f;
237 auto idet = 1.f / det;
239 auto x_center = (bc * (y2 - y3) -
cd * (y1 - y2)) * idet;
240 auto y_center = (
cd * (
x1 -
x2) - bc * (
x2 - x3)) * idet;
242 auto radius =
std::sqrt((
x2 - x_center)*(
x2 - x_center) + (y2 - y_center)*(y2 - y_center));
244 if(
radius < minRadius)
return false;
246 auto centers_distance_squared = (x_center - region_origin_x)*(x_center - region_origin_x) + (y_center - region_origin_y)*(y_center - region_origin_y);
247 auto region_origin_radius_plus_tolerance = region_origin_radius + phiCut;
248 auto minimumOfIntersectionRange = (
radius - region_origin_radius_plus_tolerance)*(
radius - region_origin_radius_plus_tolerance);
250 if (centers_distance_squared >= minimumOfIntersectionRange) {
251 auto maximumOfIntersectionRange = (
radius + region_origin_radius_plus_tolerance)*(
radius + region_origin_radius_plus_tolerance);
252 return centers_distance_squared <= maximumOfIntersectionRange;
Abs< T >::type abs(const T &t)