ATLAS Offline Software
Loading...
Searching...
No Matches
LArWheelCalculator_Impl Namespace Reference

Classes

class  DistanceCalculatorFactory
class  DistanceCalculatorSaggingOff
 Implements details of distance calculation to parts of the LAr endcap without sagging corrections. More...
class  DistanceCalculatorSaggingOn
 Implements details of distance calculation to parts of the LAr endcap with sagging taken into account. More...
class  DistanceToTheNeutralFibre_OfFan
class  DistanceToTheNeutralFibre_OfFan< SaggingOff_t >
class  DistanceToTheNeutralFibre_OfFan< SaggingOn_t >
class  DoSearch
class  DoSearch< BACKWARD >
class  DoSearch< FORWARD >
class  FanCalculatorFactory
 A factory for FanCalculators. More...
class  IDistanceCalculator
 Abstract interface for calculator classes that handle distance calculation to parts of the LAr endcap. More...
class  IFanCalculator
 Abstract interface for fan calculator classes that handle distance calculation to parts of the LAr endcap. More...
class  ModuleFanCalculator
 This is an interface of distance calculation to parts of the LAr endcap. More...
class  SaggingOff_t
class  SaggingOn_t
class  StepFan
class  StepFan< SaggingOff_t, dir >
class  StepFan< SaggingOn_t, BACKWARD >
class  StepFan< SaggingOn_t, FORWARD >
class  WheelFanCalculator
 LAr wheel fan calculator, templated for sagging settings. More...

Enumerations

enum  FanSearchDirection_t { FORWARD = 1 , BACKWARD = -1 }

Functions

template<typename SaggingType, FanSearchDirection_t dir, class NFDistance>
void rotate_to_nearest_fan (const LArWheelCalculator *lwc, int &fan_number, const double angle, CLHEP::Hep3Vector &p)

Enumeration Type Documentation

◆ FanSearchDirection_t

Enumerator
FORWARD 
BACKWARD 

Definition at line 44 of file WheelFanCalculator.h.

44 {
45 FORWARD = 1, // delta = 1
46 BACKWARD = -1 // delta = -1
47 };

Function Documentation

◆ rotate_to_nearest_fan()

template<typename SaggingType, FanSearchDirection_t dir, class NFDistance>
void LArWheelCalculator_Impl::rotate_to_nearest_fan ( const LArWheelCalculator * lwc,
int & fan_number,
const double angle,
CLHEP::Hep3Vector & p )
inline
Todo
Needs documentation

Definition at line 110 of file WheelFanCalculator.h.

112 {
113 p.rotateZ(angle);
115 //fan_number += delta;
116 double d1 = NFDistance::calculate(lwc, fan_number, p);
117
118 //while(d0 * d1 > 0.) -> dir*d1 > 0 -> FORWARD: d1 > 0., BACKWARD: d1 < 0.
119
120 while ( DoSearch<dir>::pred(d1) ) { // search:
121 p.rotateZ(angle);
123 //fan_number += delta;
124
125 d1 = NFDistance::calculate(lwc, fan_number, p);
126 //lwc()->set_m_fan_number(fan_number);
127 //d1 = lwc()->DistanceToTheNeutralFibre(p);
128
129 }
130 // if signs of d1 and d0 are different, the point is between current pair
131 StepFan<SaggingType, dir>::adjust(fan_number);
132 //if(delta > 0) fan_number --;
133 }
double angle(const GeoTrf::Vector2D &a, const GeoTrf::Vector2D &b)