CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
FiducialVolume Class Reference

#include <FiducialVolume.h>

Public Member Functions

void addActivePoint (const GlobalPoint &point)
 add a point that belongs to the active volume More...
 
void determinInnerDimensions ()
 
 FiducialVolume (double tolerance=1.0)
 
bool isValid () const
 check whether the volume is properly defined More...
 
double maxR (bool withTolerance=true) const
 
double maxZ (bool withTolerance=true) const
 
double minR (bool withTolerance=true) const
 
double minZ (bool withTolerance=true) const
 
void reset ()
 invalidate the volume More...
 

Private Attributes

double maxR_
 
double maxZ_
 
double minR_
 
double minZ_
 
double tolerance_
 

Detailed Description

The detector active volume is determined estimated as a non-zero thickness cylinder with outter dimensions maxZ and maxR. The inner dimensions are found as minimum R and Z for two cases "barrel" (|eta|<1) and "endcap" (|eta|>1.7) correspondingly

Definition at line 26 of file FiducialVolume.h.

Constructor & Destructor Documentation

FiducialVolume::FiducialVolume ( double  tolerance = 1.0)
inline

Definition at line 28 of file FiducialVolume.h.

References reset().

28  :
29  tolerance_(tolerance) { reset(); }
void reset()
invalidate the volume

Member Function Documentation

void FiducialVolume::addActivePoint ( const GlobalPoint point)

add a point that belongs to the active volume

Definition at line 25 of file FiducialVolume.cc.

References PV3DBase< T, PVType, FrameType >::eta(), maxR_, maxZ_, minR_, minZ_, PV3DBase< T, PVType, FrameType >::perp(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by DetIdAssociator::buildMap().

26 {
27  if ( point.perp() > maxR_ ) maxR_ = point.perp();
28  if ( fabs(point.eta()) < 1 && point.perp() < minR_) minR_ = point.perp();
29  if ( fabs(point.z()) > maxZ_ ) maxZ_ = fabs(point.z());
30  if ( fabs(point.eta()) > 1.7 && fabs(point.z()) < minZ_) minZ_ = fabs(point.z());
31 }
T perp() const
Definition: PV3DBase.h:72
T z() const
Definition: PV3DBase.h:64
T eta() const
Definition: PV3DBase.h:76
void FiducialVolume::determinInnerDimensions ( )

finilize dimension calculations, fixes dimensions in a case of missing barrel or endcap

Definition at line 41 of file FiducialVolume.cc.

References maxR_, maxZ_, minR_, and minZ_.

Referenced by DetIdAssociator::buildMap().

42 {
43  if ( maxR_ > 0 && maxR_ < minR_ ) minR_ = maxR_;
44  if ( maxZ_ > 0 && maxZ_ < minZ_ ) minZ_ = maxZ_;
45 }
bool FiducialVolume::isValid ( void  ) const

check whether the volume is properly defined

Definition at line 20 of file FiducialVolume.cc.

References minR_, and minZ_.

Referenced by CachedTrajectory::getTrajectory().

21 {
22  return minR_<1e4 && maxR_ >= minR_ && minZ_<1e4 && maxZ_ >= minZ_;
23 }
double FiducialVolume::maxR ( bool  withTolerance = true) const
inline

Definition at line 46 of file FiducialVolume.h.

References maxR_, and tolerance_.

Referenced by DetIdAssociator::buildMap(), BetaCalculatorECAL::calcEcalDeposit(), and CachedTrajectory::getTrajectory().

47  {
48  if (withTolerance)
49  return maxR_+tolerance_;
50  else
51  return maxR_;
52  }
double FiducialVolume::maxZ ( bool  withTolerance = true) const
inline

Definition at line 60 of file FiducialVolume.h.

References maxZ_, and tolerance_.

Referenced by DetIdAssociator::buildMap(), BetaCalculatorECAL::calcEcalDeposit(), and CachedTrajectory::getTrajectory().

61  {
62  if (withTolerance)
63  return maxZ_+tolerance_;
64  else
65  return maxZ_;
66  }
double FiducialVolume::minR ( bool  withTolerance = true) const
inline

Definition at line 39 of file FiducialVolume.h.

References minR_, and tolerance_.

Referenced by DetIdAssociator::buildMap(), BetaCalculatorECAL::calcEcalDeposit(), CachedTrajectory::getTrajectory(), and TrackExtrapolator::propagateTrackToVolume().

40  {
41  if (withTolerance && minR_>tolerance_)
42  return minR_-tolerance_;
43  else
44  return minR_;
45  }
double FiducialVolume::minZ ( bool  withTolerance = true) const
inline

Definition at line 53 of file FiducialVolume.h.

References minZ_, and tolerance_.

Referenced by DetIdAssociator::buildMap(), BetaCalculatorECAL::calcEcalDeposit(), CachedTrajectory::getTrajectory(), and TrackExtrapolator::propagateTrackToVolume().

54  {
55  if (withTolerance && minZ_>tolerance_)
56  return minZ_-tolerance_;
57  else
58  return minZ_;
59  }
void FiducialVolume::reset ( void  )

invalidate the volume

Definition at line 33 of file FiducialVolume.cc.

References maxR_, maxZ_, minR_, and minZ_.

Referenced by FiducialVolume().

34 {
35  minR_ = 1e5;
36  maxR_ = -1;
37  minZ_ = 1e5;
38  maxZ_ = -1;
39 }

Member Data Documentation

double FiducialVolume::maxR_
private

Definition at line 69 of file FiducialVolume.h.

Referenced by addActivePoint(), determinInnerDimensions(), maxR(), and reset().

double FiducialVolume::maxZ_
private

Definition at line 71 of file FiducialVolume.h.

Referenced by addActivePoint(), determinInnerDimensions(), maxZ(), and reset().

double FiducialVolume::minR_
private

Definition at line 68 of file FiducialVolume.h.

Referenced by addActivePoint(), determinInnerDimensions(), isValid(), minR(), and reset().

double FiducialVolume::minZ_
private

Definition at line 70 of file FiducialVolume.h.

Referenced by addActivePoint(), determinInnerDimensions(), isValid(), minZ(), and reset().

double FiducialVolume::tolerance_
private

Definition at line 72 of file FiducialVolume.h.

Referenced by maxR(), maxZ(), minR(), and minZ().