CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Classes | Functions | Variables
Geom Namespace Reference

Classes

class  Cartesian2Cartesian3D
 
class  Cylindrical2Cartesian
 
class  OnePiRange
 
class  Phi
 
class  Polar2Cartesian
 
class  Spherical2Cartesian
 
class  Theta
 

Functions

double deltaBarePhi (double phi1, double phi2)
 
double deltaPhi (float phi1, float phi2)
 
double deltaPhi (double phi1, double phi2)
 
template<class Vector1 , class Vector2 >
double deltaPhi (const Vector1 &v1, const Vector2 &v2)
 
template<class Vector1 , class Vector2 >
double deltaR (const Vector1 &v1, const Vector2 &v2)
 
template<class Vector1 , class Vector2 >
double deltaR2 (const Vector1 &v1, const Vector2 &v2)
 
float fhalfPi ()
 
float fpi ()
 
float ftwoPi ()
 
double halfPi ()
 
template<class T , class Scalar >
OnePiRange< Toperator* (const OnePiRange< T > &a, const Scalar &b)
 Multiplication with scalar, does not change the precision. More...
 
template<class T , class Scalar >
Phi< Toperator* (const Phi< T > &a, const Scalar &b)
 Multiplication with scalar, does not change the precision. More...
 
template<class T >
OnePiRange< Toperator* (double a, const OnePiRange< T > &b)
 Multiplication with scalar. More...
 
template<class T >
Phi< Toperator* (double a, const Phi< T > &b)
 Multiplication with scalar. More...
 
template<class T >
OnePiRange< Toperator+ (const OnePiRange< T > &a, const OnePiRange< T > &b)
 Addition. More...
 
template<class T >
Phi< Toperator+ (const Phi< T > &a, const Phi< T > &b)
 Addition. More...
 
template<class T , class Scalar >
OnePiRange< Toperator+ (const OnePiRange< T > &a, const Scalar &b)
 Addition with scalar, does not change the precision. More...
 
template<class T , class Scalar >
Phi< Toperator+ (const Phi< T > &a, const Scalar &b)
 Addition with scalar, does not change the precision. More...
 
template<class T , class Scalar >
OnePiRange< Toperator+ (const Scalar &a, const OnePiRange< T > &b)
 Addition with scalar, does not change the precision. More...
 
template<class T , class Scalar >
Phi< Toperator+ (const Scalar &a, const Phi< T > &b)
 Addition with scalar, does not change the precision. More...
 
template<class T >
OnePiRange< Toperator- (const OnePiRange< T > &a)
 
template<class T >
Phi< Toperator- (const Phi< T > &a)
 
template<class T >
OnePiRange< Toperator- (const OnePiRange< T > &a, const OnePiRange< T > &b)
 Subtraction. More...
 
template<class T >
Phi< Toperator- (const Phi< T > &a, const Phi< T > &b)
 Subtraction. More...
 
template<class T , class Scalar >
OnePiRange< Toperator- (const OnePiRange< T > &a, const Scalar &b)
 Subtraction with scalar, does not change the precision. More...
 
template<class T , class Scalar >
Phi< Toperator- (const Phi< T > &a, const Scalar &b)
 Subtraction with scalar, does not change the precision. More...
 
template<class T , class Scalar >
Phi< Toperator- (const Scalar &a, const Phi< T > &b)
 Subtraction with scalar, does not change the precision. More...
 
template<class T , class Scalar >
OnePiRange< Toperator- (const Scalar &a, const OnePiRange< T > &b)
 Subtraction with scalar, does not change the precision. More...
 
template<class T >
T operator/ (const OnePiRange< T > &a, const OnePiRange< T > &b)
 Division. More...
 
template<class T >
T operator/ (const Phi< T > &a, const Phi< T > &b)
 Division. More...
 
template<class T >
Phi< Toperator/ (const Phi< T > &a, double b)
 Division by scalar. More...
 
template<class T >
OnePiRange< Toperator/ (const OnePiRange< T > &a, double b)
 Division by scalar. More...
 
bool phiLess (float phi1, float phi2)
 
bool phiLess (double phi1, double phi2)
 
template<class Vector1 , class Vector2 >
bool phiLess (const Vector1 &v1, const Vector2 &v2)
 
double pi ()
 
double twoPi ()
 

Variables

class Geom::Polar2Cartesian __attribute__
 

Function Documentation

double Geom::deltaBarePhi ( double  phi1,
double  phi2 
)
inline

Find aximutal Angle difference between two generic vectors ( v2.Phi() - v1.Phi() ) The only requirements on the Vector classes is that they implement the Phi() method

Parameters
v1Vector of any type implementing the Phi() operator
v2Vector of any type implementing the Phi() operator
Returns
Phi difference

\[ \Delta \phi = \phi_2 - \phi_1 \]

Definition at line 21 of file VectorUtil.h.

References M_PI.

Referenced by deltaPhi().

21  {
22  double dphi = phi2-phi1;
23  if ( dphi > M_PI ) {
24  dphi -= 2.0*M_PI;
25  } else if ( dphi <= -M_PI ) {
26  dphi += 2.0*M_PI;
27  }
28  return dphi;
29  }
#define M_PI
Definition: BFit3D.cc:3
double Geom::deltaPhi ( float  phi1,
float  phi2 
)
inline

Definition at line 30 of file VectorUtil.h.

References deltaBarePhi(), and Phi_mpi_pi().

Referenced by TECLayer::computeCrossings(), deltaR2(), phiLess(), and QcdLowPtDQM::trackletVertexUnbinned().

30  {
32  return deltaBarePhi(Phi_mpi_pi(phi2),Phi_mpi_pi(phi1));
33  }
double deltaBarePhi(double phi1, double phi2)
Definition: VectorUtil.h:21
double Phi_mpi_pi(double x)
Definition: JetUtil.h:24
double Geom::deltaPhi ( double  phi1,
double  phi2 
)
inline

Definition at line 34 of file VectorUtil.h.

References deltaBarePhi(), and Phi_mpi_pi().

34  {
36  return deltaBarePhi(Phi_mpi_pi(phi2),Phi_mpi_pi(phi1));
37  }
double deltaBarePhi(double phi1, double phi2)
Definition: VectorUtil.h:21
double Phi_mpi_pi(double x)
Definition: JetUtil.h:24
template<class Vector1 , class Vector2 >
double Geom::deltaPhi ( const Vector1 &  v1,
const Vector2 &  v2 
)

Definition at line 39 of file VectorUtil.h.

References deltaBarePhi().

39  {
40  return deltaBarePhi(v1.phi(),v2.phi());
41  }
double deltaBarePhi(double phi1, double phi2)
Definition: VectorUtil.h:21
template<class Vector1 , class Vector2 >
double Geom::deltaR ( const Vector1 &  v1,
const Vector2 &  v2 
)
template<class Vector1 , class Vector2 >
double Geom::deltaR2 ( const Vector1 &  v1,
const Vector2 &  v2 
)

Find difference in pseudorapidity (Eta) and Phi betwen two generic vectors The only requirements on the Vector classes is that they implement the Phi() and Eta() method

Parameters
v1Vector 1
v2Vector 2
Returns
Angle between the two vectors

\[ \Delta R = \sqrt{ ( \Delta \phi )^2 + ( \Delta \eta )^2 } \]

Definition at line 78 of file VectorUtil.h.

References deltaPhi().

Referenced by helper::SimpleJetTrackAssociator::associate(), helper::SimpleJetTrackAssociator::associateTransient(), pat::LeptonJetIsolationAngle::calculate(), deltaR(), PythiaFilterGammaJet::filter(), PythiaFilterGammaJetWithBg::filter(), PythiaFilterGammaJetWithOutBg::filter(), PythiaFilterGammaJetIsoPi0::filter(), PhotonEnrichmentFilter::filter(), CMSMidpointAlgorithm::findStableConesFromMidPoints(), modules::MuonCleanerBySegmentsT< T >::isBetterMuon(), MatcherByPullsAlgorithm::match(), L1MuonMatcherAlgo::match(), L1MuonMatcherAlgo::matchGeneric(), DeltaRMinPairSelector::operator()(), pat::OverlapByDeltaR::operator()(), JetTracksAssociationDRVertex::produce(), JetTracksAssociationDRVertexAssigned::produce(), JetTracksAssociationDRCalo::produce(), JetVetoedTracksAssociationDRVertex::produce(), TauJetSelectorForHLTTrackSeeding::produce(), L2TauPixelIsoTagProducer::produce(), NearbyCandCountComputer::produce(), DeltaRNearestObjectComputer< T >::produce(), JetPlusTrackCorrector::rebuildJta(), CMSIterativeConeAlgorithm::run(), GenJetClosestMatchSelectorDefinition::select(), and CMSMidpointAlgorithm::splitAndMerge().

78  {
79  double dphi = deltaPhi(v1,v2);
80  double deta = v2.eta() - v1.eta();
81  return dphi*dphi + deta*deta;
82  }
float Geom::fhalfPi ( )
inline

Definition at line 37 of file Pi.h.

37 {return 0.5f*3.141592653589793238f;}
float Geom::fpi ( )
inline
float Geom::ftwoPi ( )
inline
double Geom::halfPi ( )
inline

Definition at line 33 of file Pi.h.

Referenced by TrackAssociatorByChi2::parametersAtClosestApproach().

33 {return 0.5*3.141592653589793238;}
template<class T , class Scalar >
OnePiRange<T> Geom::operator* ( const OnePiRange< T > &  a,
const Scalar &  b 
)
inline

Multiplication with scalar, does not change the precision.

Definition at line 110 of file OnePiRange.h.

References a.

110  {
111  return OnePiRange<T>(a) *= b;
112  }
double b
Definition: hdecay.h:120
double a
Definition: hdecay.h:121
template<class T , class Scalar >
Phi<T> Geom::operator* ( const Phi< T > &  a,
const Scalar &  b 
)
inline

Multiplication with scalar, does not change the precision.

Definition at line 111 of file Phi.h.

References a.

111  {
112  return Phi<T>(a) *= b;
113  }
double b
Definition: hdecay.h:120
double a
Definition: hdecay.h:121
template<class T >
OnePiRange<T> Geom::operator* ( double  a,
const OnePiRange< T > &  b 
)
inline

Multiplication with scalar.

Definition at line 116 of file OnePiRange.h.

References b.

116  {
117  return OnePiRange<T>(b) *= a;
118  }
double b
Definition: hdecay.h:120
double a
Definition: hdecay.h:121
template<class T >
Phi<T> Geom::operator* ( double  a,
const Phi< T > &  b 
)
inline

Multiplication with scalar.

Definition at line 116 of file Phi.h.

References b.

116  {
117  return Phi<T>(b) *= a;
118  }
double b
Definition: hdecay.h:120
double a
Definition: hdecay.h:121
template<class T >
OnePiRange<T> Geom::operator+ ( const OnePiRange< T > &  a,
const OnePiRange< T > &  b 
)
inline

Addition.

Definition at line 76 of file OnePiRange.h.

References a.

76  {
77  return OnePiRange<T>(a) += b;
78  }
double b
Definition: hdecay.h:120
double a
Definition: hdecay.h:121
template<class T >
Phi<T> Geom::operator+ ( const Phi< T > &  a,
const Phi< T > &  b 
)
inline

Addition.

Definition at line 77 of file Phi.h.

References a.

77  {
78  return Phi<T>(a) += b;
79  }
double b
Definition: hdecay.h:120
double a
Definition: hdecay.h:121
template<class T , class Scalar >
OnePiRange<T> Geom::operator+ ( const OnePiRange< T > &  a,
const Scalar &  b 
)
inline

Addition with scalar, does not change the precision.

Definition at line 81 of file OnePiRange.h.

References a.

81  {
82  return OnePiRange<T>(a) += b;
83  }
double b
Definition: hdecay.h:120
double a
Definition: hdecay.h:121
template<class T , class Scalar >
Phi<T> Geom::operator+ ( const Phi< T > &  a,
const Scalar &  b 
)
inline

Addition with scalar, does not change the precision.

Definition at line 82 of file Phi.h.

References a.

82  {
83  return Phi<T>(a) += b;
84  }
double b
Definition: hdecay.h:120
double a
Definition: hdecay.h:121
template<class T , class Scalar >
OnePiRange<T> Geom::operator+ ( const Scalar &  a,
const OnePiRange< T > &  b 
)
inline

Addition with scalar, does not change the precision.

Definition at line 86 of file OnePiRange.h.

References b.

86  {
87  return OnePiRange<T>(b) += a;
88  }
double b
Definition: hdecay.h:120
double a
Definition: hdecay.h:121
template<class T , class Scalar >
Phi<T> Geom::operator+ ( const Scalar &  a,
const Phi< T > &  b 
)
inline

Addition with scalar, does not change the precision.

Definition at line 87 of file Phi.h.

References b.

87  {
88  return Phi<T>(b) += a;
89  }
double b
Definition: hdecay.h:120
double a
Definition: hdecay.h:121
template<class T >
OnePiRange<T> Geom::operator- ( const OnePiRange< T > &  a)
inline
  • operator

Definition at line 71 of file OnePiRange.h.

References Geom::OnePiRange< T >::value().

71 {return OnePiRange<T>(-a.value());}
double a
Definition: hdecay.h:121
template<class T >
Phi<T> Geom::operator- ( const Phi< T > &  a)
inline
  • operator

Definition at line 72 of file Phi.h.

References Geom::Phi< T >::value().

72 {return Phi<T>(-a.value());}
double a
Definition: hdecay.h:121
template<class T >
OnePiRange<T> Geom::operator- ( const OnePiRange< T > &  a,
const OnePiRange< T > &  b 
)
inline

Subtraction.

Definition at line 92 of file OnePiRange.h.

References a.

92  {
93  return OnePiRange<T>(a) -= b;
94  }
double b
Definition: hdecay.h:120
double a
Definition: hdecay.h:121
template<class T >
Phi<T> Geom::operator- ( const Phi< T > &  a,
const Phi< T > &  b 
)
inline

Subtraction.

Definition at line 94 of file Phi.h.

References a.

94  {
95  return Phi<T>(a) -= b;
96  }
double b
Definition: hdecay.h:120
double a
Definition: hdecay.h:121
template<class T , class Scalar >
OnePiRange<T> Geom::operator- ( const OnePiRange< T > &  a,
const Scalar &  b 
)
inline

Subtraction with scalar, does not change the precision.

Definition at line 98 of file OnePiRange.h.

References a.

98  {
99  return OnePiRange<T>(a) -= b;
100  }
double b
Definition: hdecay.h:120
double a
Definition: hdecay.h:121
template<class T , class Scalar >
Phi<T> Geom::operator- ( const Phi< T > &  a,
const Scalar &  b 
)
inline

Subtraction with scalar, does not change the precision.

Definition at line 99 of file Phi.h.

References a.

99  {
100  return Phi<T>(a) -= b;
101  }
double b
Definition: hdecay.h:120
double a
Definition: hdecay.h:121
template<class T , class Scalar >
Phi<T> Geom::operator- ( const Scalar &  a,
const Phi< T > &  b 
)
inline

Subtraction with scalar, does not change the precision.

Definition at line 104 of file Phi.h.

References Geom::Phi< T >::value().

104  {
105  return Phi<T>(a - b.value()); // use of unary operators would normalize twice
106  }
double b
Definition: hdecay.h:120
double a
Definition: hdecay.h:121
template<class T , class Scalar >
OnePiRange<T> Geom::operator- ( const Scalar &  a,
const OnePiRange< T > &  b 
)
inline

Subtraction with scalar, does not change the precision.

Definition at line 104 of file OnePiRange.h.

References Geom::OnePiRange< T >::value().

104  {
105  return OnePiRange<T>(a - b.value()); // use of unary operators would normalize twice
106  }
double b
Definition: hdecay.h:120
double a
Definition: hdecay.h:121
template<class T >
T Geom::operator/ ( const OnePiRange< T > &  a,
const OnePiRange< T > &  b 
)
inline

Division.

Definition at line 122 of file OnePiRange.h.

References Geom::OnePiRange< T >::value().

122  {
123  return a.value() / b.value();
124  }
double b
Definition: hdecay.h:120
double a
Definition: hdecay.h:121
template<class T >
T Geom::operator/ ( const Phi< T > &  a,
const Phi< T > &  b 
)
inline

Division.

Definition at line 123 of file Phi.h.

References Geom::Phi< T >::value().

123  {
124  return a.value() / b.value();
125  }
double b
Definition: hdecay.h:120
double a
Definition: hdecay.h:121
template<class T >
Phi<T> Geom::operator/ ( const Phi< T > &  a,
double  b 
)
inline

Division by scalar.

Definition at line 128 of file Phi.h.

References a.

128  {
129  return Phi<T>(a) /= b;
130  }
double b
Definition: hdecay.h:120
double a
Definition: hdecay.h:121
template<class T >
OnePiRange<T> Geom::operator/ ( const OnePiRange< T > &  a,
double  b 
)
inline

Division by scalar.

Definition at line 128 of file OnePiRange.h.

References a.

128  {
129  return OnePiRange<T>(a) /= b;
130  }
double b
Definition: hdecay.h:120
double a
Definition: hdecay.h:121
bool Geom::phiLess ( float  phi1,
float  phi2 
)
inline

Definition of ordering of azimuthal angles. phi1 is less than phi2 if the angle covered by a point going from phi1 to phi2 in the counterclockwise direction is smaller than pi. It makes sense only if ALL phis are in a single hemisphere...

Definition at line 57 of file VectorUtil.h.

References deltaPhi().

Referenced by tkDetUtil::calculatePhiWindow(), BoundSpan::compute(), and PhiLess::operator()().

57  {
58  return deltaPhi(phi1,phi2)<0;
59  }
bool Geom::phiLess ( double  phi1,
double  phi2 
)
inline

Definition at line 60 of file VectorUtil.h.

References deltaPhi().

60  {
61  return deltaPhi(phi1,phi2)<0;
62  }
template<class Vector1 , class Vector2 >
bool Geom::phiLess ( const Vector1 &  v1,
const Vector2 &  v2 
)

Definition at line 64 of file VectorUtil.h.

References deltaPhi().

64  {
65  return deltaPhi(v1,v2)<0.;
66  }
double Geom::pi ( )
inline

Definition at line 31 of file Pi.h.

Referenced by PhotonsWithConversionsAnalyzer::analyze(), SimpleConvertedPhotonAnalyzer::analyze(), EwkDQM::analyze(), DTVDriftCalibration::analyze(), DTLocalTriggerSynchTask::analyze(), EgammaObjects::analyzeElectrons(), EgammaObjects::analyzePhotons(), MagGeoBuilderFromDDD::buildInterpolator(), SuperClusterShapeAlgo::Calculate_Covariances(), ClusterShapeAlgo::Calculate_Covariances(), tkDetUtil::calculatePhiWindow(), PFHcalSuperClusterAlgo::calculatePosition(), PFHcalSuperClusterAlgo::calculateWidths(), ForwardDiskSectorBuilderFromWedges::computeBounds(), BladeShapeBuilderFromDet::computeBounds(), ForwardDiskSectorBuilderFromDet::computeBounds(), DTTime2DriftParametrization::computeDriftDistance_mean(), DTTime2DriftParametrization::computeDriftDistance_mode(), PFClusterShapeAlgo::covariances(), EcalClusterTools::covariances(), CylinderFromSectorMFGrid::CylinderFromSectorMFGrid(), Geom::OnePiRange< T >::degrees(), Geom::Phi< float >::degrees(), RecHitsSortedInPhi::doubleRange(), DTTrigGeomUtils::DTTrigGeomUtils(), ECALPositionCalculator::ecalEta(), ContainmentCorrectionAnalyzer::ecalEta(), EgammaSuperClusters::ecalEta(), EgammaObjects::ecalEta(), EcalEtaPhiRegion::EcalEtaPhiRegion(), ECALPositionCalculator::ecalPhi(), EcalElectronicsMapping::GetListofFEDs(), DDI::Ellipsoid::halfVol(), RecHitsSortedInPhi::hits(), HResolution::HResolution(), HResolution1DRecHit::HResolution1DRecHit(), HTrackVariables::HTrackVariables(), reco::PFHcalSuperClusterInit::initialize(), EcalEtaPhiRegion::inRegion(), EcalListOfFEDSProducer::ListOfFEDS(), ESListOfFEDSProducer::ListOfFEDS(), EcalRawToRecHitRoI::ListOfFEDS(), HLTAlCa::ListOfFEDS(), MagBLayer::MagBLayer(), MagGeometry::MagGeometry(), HLTDTActivityFilter::matchChamber(), Geom::OnePiRange< T >::normalize(), Geom::Phi< float >::normalize(), GCC11_FINAL< T, TOPO >::openingAngle(), ForwardDiskSectorBuilderFromWedges::operator()(), DTSegmentSelector::operator()(), PhiBorderFinder::PhiBorderFinder(), L2MuonSeedGenerator::produce(), TrapezoidalCylindricalMFGrid::TrapezoidalCylindricalMFGrid(), DTTrigGeomUtils::trigPos(), DDI::Sphere::volume(), DDI::Orb::volume(), DDI::EllipticalTube::volume(), and DDI::Ellipsoid::volume().

31 {return 3.141592653589793238;}
double Geom::twoPi ( )
inline

Variable Documentation

class Geom::Theta Geom::__attribute__