CMS 3D CMS Logo

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

#include <MagVolume.h>

Inheritance diagram for MagVolume:
GloballyPositioned< float > MagneticField defaultRKPropagator::RKMagVolume MagCylinder MagVolume6Faces NavVolume NavVolume6Faces

Public Types

typedef GloballyPositioned< float > Base
 
typedef GloballyPositioned
< float >::GlobalPoint 
GlobalPoint
 
typedef GloballyPositioned
< float >::GlobalVector 
GlobalVector
 
typedef GloballyPositioned
< float >::LocalPoint 
LocalPoint
 
typedef GloballyPositioned
< float >::LocalVector 
LocalVector
 
- Public Types inherited from GloballyPositioned< float >
typedef Point3DBase< float,
GlobalTag
GlobalPoint
 
typedef Vector3DBase< float,
GlobalTag
GlobalVector
 
typedef Point3DBase< float,
LocalTag
LocalPoint
 
typedef Vector3DBase< float,
LocalTag
LocalVector
 
typedef Point3DBase< float,
GlobalTag
PositionType
 
typedef TkRotation< float > RotationType
 
typedef float Scalar
 

Public Member Functions

virtual const std::vector
< VolumeSide > & 
faces () const =0
 Access to volume faces. More...
 
LocalVector fieldInTesla (const LocalPoint &lp) const
 
GlobalVector fieldInTesla (const GlobalPoint &lp) const
 
virtual bool inside (const GlobalPoint &gp, double tolerance=0.) const =0
 
virtual bool inside (const LocalPoint &lp, double tolerance=0.) const
 
virtual ::GlobalVector inTesla (const ::GlobalPoint &gp) const
 
bool isIron () const
 Temporary hack to pass information on material. Will eventually be replaced! More...
 
 MagVolume (const PositionType &pos, const RotationType &rot, DDSolidShape shape, const MagneticFieldProvider< float > *mfp, double sf=1.)
 
void ownsFieldProvider (bool o)
 
const MagneticFieldProvider
< float > * 
provider () const
 
void setIsIron (bool iron)
 
DDSolidShape shapeType () const
 
virtual ~MagVolume ()
 
- Public Member Functions inherited from GloballyPositioned< float >
float eta () const
 
 GloballyPositioned ()
 
 GloballyPositioned (const PositionType &pos, const RotationType &rot)
 
void move (const GlobalVector &displacement)
 
float phi () const
 
const PositionTypeposition () const
 
void rotate (const RotationType &rotation)
 
const RotationTyperotation () const
 
GlobalPoint toGlobal (const LocalPoint &lp) const
 
Point3DBase< U, GlobalTagtoGlobal (const Point3DBase< U, LocalTag > &lp) const
 
GlobalVector toGlobal (const LocalVector &lv) const
 
Vector3DBase< U, GlobalTagtoGlobal (const Vector3DBase< U, LocalTag > &lv) const
 
LocalPoint toLocal (const GlobalPoint &gp) const
 
Point3DBase< U, LocalTagtoLocal (const Point3DBase< U, GlobalTag > &gp) const
 
LocalVector toLocal (const GlobalVector &gv) const
 
Vector3DBase< U, LocalTagtoLocal (const Vector3DBase< U, GlobalTag > &gv) const
 
virtual ~GloballyPositioned ()
 
- Public Member Functions inherited from MagneticField
virtual MagneticFieldclone () const
 
GlobalVector inInverseGeV (const GlobalPoint &gp) const
 Field value ad specified global point, in 1/Gev. More...
 
GlobalVector inKGauss (const GlobalPoint &gp) const
 Field value ad specified global point, in KGauss. More...
 
virtual GlobalVector inTesla (const GlobalPoint &gp) const =0
 Field value ad specified global point, in Tesla. More...
 
virtual GlobalVector inTeslaUnchecked (const GlobalPoint &gp) const
 
virtual bool isDefined (const GlobalPoint &) const
 True if the point is within the region where the concrete field. More...
 
 MagneticField ()
 
 MagneticField (const MagneticField &orig)
 
int nominalValue () const
 The nominal field value for this map in kGauss. More...
 
virtual ~MagneticField ()
 

Private Attributes

bool isIronFlag
 
const MagneticFieldProvider
< float > * 
theProvider
 
bool theProviderOwned
 
double theScalingFactor
 
DDSolidShape theShape
 

Additional Inherited Members

- Static Public Member Functions inherited from GloballyPositioned< float >
static float iniEta ()
 
static float iniPhi ()
 

Detailed Description

Definition at line 14 of file MagVolume.h.

Member Typedef Documentation

Definition at line 17 of file MagVolume.h.

Definition at line 20 of file MagVolume.h.

Definition at line 21 of file MagVolume.h.

Definition at line 18 of file MagVolume.h.

Definition at line 19 of file MagVolume.h.

Constructor & Destructor Documentation

MagVolume::MagVolume ( const PositionType pos,
const RotationType rot,
DDSolidShape  shape,
const MagneticFieldProvider< float > *  mfp,
double  sf = 1. 
)
inline

Definition at line 23 of file MagVolume.h.

25  :
26  Base(pos,rot), MagneticField(), theShape(shape), theProvider(mfp),
27  theProviderOwned(false), theScalingFactor(sf), isIronFlag(false) {}
bool theProviderOwned
Definition: MagVolume.h:59
double theScalingFactor
Definition: MagVolume.h:60
bool isIronFlag
Definition: MagVolume.h:62
DDSolidShape theShape
Definition: MagVolume.h:57
GloballyPositioned< float > Base
Definition: MagVolume.h:17
const MagneticFieldProvider< float > * theProvider
Definition: MagVolume.h:58
MagVolume::~MagVolume ( )
virtual

Definition at line 6 of file MagVolume.cc.

References theProvider, and theProviderOwned.

6  {
7  if (theProviderOwned) delete theProvider;
8 }
bool theProviderOwned
Definition: MagVolume.h:59
const MagneticFieldProvider< float > * theProvider
Definition: MagVolume.h:58

Member Function Documentation

virtual const std::vector<VolumeSide>& MagVolume::faces ( ) const
pure virtual
MagVolume::LocalVector MagVolume::fieldInTesla ( const LocalPoint lp) const

Definition at line 11 of file MagVolume.cc.

References theProvider, theScalingFactor, and MagneticFieldProvider< T >::valueInTesla().

Referenced by MagGeometry::fieldInTesla(), RKLocalFieldProvider::inTesla(), inTesla(), and SteppingHelixPropagator::loadState().

12 {
14 }
double theScalingFactor
Definition: MagVolume.h:60
virtual LocalVectorType valueInTesla(const LocalPointType &p) const =0
const MagneticFieldProvider< float > * theProvider
Definition: MagVolume.h:58
MagVolume::GlobalVector MagVolume::fieldInTesla ( const GlobalPoint lp) const

Definition at line 16 of file MagVolume.cc.

References theProvider, theScalingFactor, GloballyPositioned< float >::toGlobal(), GloballyPositioned< float >::toLocal(), and MagneticFieldProvider< T >::valueInTesla().

17 {
19 }
double theScalingFactor
Definition: MagVolume.h:60
LocalPoint toLocal(const GlobalPoint &gp) const
GlobalPoint toGlobal(const LocalPoint &lp) const
virtual LocalVectorType valueInTesla(const LocalPointType &p) const =0
const MagneticFieldProvider< float > * theProvider
Definition: MagVolume.h:58
virtual bool MagVolume::inside ( const GlobalPoint gp,
double  tolerance = 0. 
) const
pure virtual
virtual bool MagVolume::inside ( const LocalPoint lp,
double  tolerance = 0. 
) const
inlinevirtual

Reimplemented in MagCylinder.

Definition at line 37 of file MagVolume.h.

References inside(), and GloballyPositioned< float >::toGlobal().

37  {
38  return inside( toGlobal(lp), tolerance);
39  }
virtual bool inside(const GlobalPoint &gp, double tolerance=0.) const =0
GlobalPoint toGlobal(const LocalPoint &lp) const
virtual ::GlobalVector MagVolume::inTesla ( const ::GlobalPoint gp) const
inline

Definition at line 46 of file MagVolume.h.

References fieldInTesla().

Referenced by SteppingHelixPropagator::getNextState(), SteppingHelixPropagator::loadState(), and SteppingHelixPropagator::makeAtomStep().

46  {
47  return fieldInTesla( gp);
48  }
LocalVector fieldInTesla(const LocalPoint &lp) const
Definition: MagVolume.cc:11
bool MagVolume::isIron ( ) const
inline

Temporary hack to pass information on material. Will eventually be replaced!

Definition at line 51 of file MagVolume.h.

References isIronFlag.

Referenced by SteppingHelixPropagator::isYokeVolume().

51 {return isIronFlag;}
bool isIronFlag
Definition: MagVolume.h:62
void MagVolume::ownsFieldProvider ( bool  o)
inline

Definition at line 53 of file MagVolume.h.

References connectstrParser::o, and theProviderOwned.

Referenced by MagGeoBuilderFromDDD::buildMagVolumes().

const MagneticFieldProvider<float>* MagVolume::provider ( ) const
inline

Definition at line 41 of file MagVolume.h.

References theProvider.

41 {return theProvider;}
const MagneticFieldProvider< float > * theProvider
Definition: MagVolume.h:58
void MagVolume::setIsIron ( bool  iron)
inline

Definition at line 52 of file MagVolume.h.

References isIronFlag.

52 {isIronFlag = iron;}
bool isIronFlag
Definition: MagVolume.h:62
DDSolidShape MagVolume::shapeType ( ) const
inline

Definition at line 31 of file MagVolume.h.

References theShape.

Referenced by SteppingHelixPropagator::refToMagVolume().

31 {return theShape;}
DDSolidShape theShape
Definition: MagVolume.h:57

Member Data Documentation

bool MagVolume::isIronFlag
private

Definition at line 62 of file MagVolume.h.

Referenced by isIron(), and setIsIron().

const MagneticFieldProvider<float>* MagVolume::theProvider
private

Definition at line 58 of file MagVolume.h.

Referenced by fieldInTesla(), provider(), and ~MagVolume().

bool MagVolume::theProviderOwned
private

Definition at line 59 of file MagVolume.h.

Referenced by ownsFieldProvider(), and ~MagVolume().

double MagVolume::theScalingFactor
private

Definition at line 60 of file MagVolume.h.

Referenced by fieldInTesla().

DDSolidShape MagVolume::theShape
private

Definition at line 57 of file MagVolume.h.

Referenced by shapeType().