#include <MagVolume.h>
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 Member Functions | |
virtual const std::vector < VolumeSide > & | faces () const =0 |
Access to volume faces. | |
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! | |
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 () |
Private Attributes | |
bool | isIronFlag |
const MagneticFieldProvider < float > * | theProvider |
bool | theProviderOwned |
double | theScalingFactor |
DDSolidShape | theShape |
Definition at line 14 of file MagVolume.h.
typedef GloballyPositioned<float> MagVolume::Base |
Definition at line 17 of file MagVolume.h.
typedef GloballyPositioned<float>::GlobalPoint MagVolume::GlobalPoint |
Reimplemented from GloballyPositioned< float >.
Definition at line 20 of file MagVolume.h.
typedef GloballyPositioned<float>::GlobalVector MagVolume::GlobalVector |
Reimplemented from GloballyPositioned< float >.
Definition at line 21 of file MagVolume.h.
typedef GloballyPositioned<float>::LocalPoint MagVolume::LocalPoint |
Reimplemented from GloballyPositioned< float >.
Definition at line 18 of file MagVolume.h.
typedef GloballyPositioned<float>::LocalVector MagVolume::LocalVector |
Reimplemented from GloballyPositioned< float >.
Definition at line 19 of file MagVolume.h.
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.
: Base(pos,rot), MagneticField(), theShape(shape), theProvider(mfp), theProviderOwned(false), theScalingFactor(sf), isIronFlag(false) {}
MagVolume::~MagVolume | ( | ) | [virtual] |
Definition at line 6 of file MagVolume.cc.
References theProvider, and theProviderOwned.
{ if (theProviderOwned) delete theProvider; }
virtual const std::vector<VolumeSide>& MagVolume::faces | ( | ) | const [pure virtual] |
Access to volume faces.
Implemented in MagCylinder, MagVolume6Faces, NavVolume6Faces, and RKTestMagVolume.
Referenced by NavVolume6Faces::NavVolume6Faces(), and SteppingHelixPropagator::refToMagVolume().
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(), inTesla(), RKLocalFieldProvider::inTesla(), and SteppingHelixPropagator::loadState().
{ return theProvider->valueInTesla(lp)*theScalingFactor; }
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().
{ return toGlobal( theProvider->valueInTesla( toLocal(gp)))*theScalingFactor; }
virtual bool MagVolume::inside | ( | const GlobalPoint & | gp, |
double | tolerance = 0. |
||
) | const [pure virtual] |
Implemented in MagCylinder, MagVolume6Faces, NavVolume6Faces, and RKTestMagVolume.
Referenced by MagGeometry::findVolume(), MagBLayer::findVolume(), inside(), NavPropagator::propagateInVolume(), and SteppingHelixPropagator::refToMagVolume().
virtual bool MagVolume::inside | ( | const LocalPoint & | lp, |
double | tolerance = 0. |
||
) | const [inline, virtual] |
Reimplemented in MagCylinder.
Definition at line 37 of file MagVolume.h.
References inside(), and GloballyPositioned< float >::toGlobal().
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().
{ return fieldInTesla( gp); }
bool MagVolume::isIron | ( | ) | const [inline] |
Temporary hack to pass information on material. Will eventually be replaced!
Reimplemented in NavVolume, and NavVolume6Faces.
Definition at line 51 of file MagVolume.h.
References isIronFlag.
Referenced by SteppingHelixPropagator::isYokeVolume().
{return isIronFlag;}
void MagVolume::ownsFieldProvider | ( | bool | o | ) | [inline] |
Definition at line 53 of file MagVolume.h.
References python::connectstrParser::o, and theProviderOwned.
Referenced by MagGeoBuilderFromDDD::buildMagVolumes().
const MagneticFieldProvider<float>* MagVolume::provider | ( | ) | const [inline] |
void MagVolume::setIsIron | ( | bool | iron | ) | [inline] |
DDSolidShape MagVolume::shapeType | ( | ) | const [inline] |
Definition at line 31 of file MagVolume.h.
References theShape.
Referenced by SteppingHelixPropagator::refToMagVolume().
{return theShape;}
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().