Main Page   Namespace List   Class Hierarchy   Compound List   File List   Compound Members   File Members  

Medium Class Reference

Medium is an interface class for MCParticle, combining information on the material, field, and geometry. More...

#include <Medium.h>

Inheritance diagram for Medium:

GeomObject CompositeMedium LayeredTube::Layer SlabWorld::Slab LayeredMedium LayeredTube World LayeredBox SlicedCone Demo1 SlabWorld List of all members.

Public Methods

 Medium (Medium* parent =0, float size=100)
 default Constructors / destructor. More...

 Medium (Medium* parent, Shape* vol, const char* mat= "vacuum", Detector * det= 0)
 Medium (const Medium& old)
 copy constructor. More...

virtual ~Medium ()
 destructor. More...

virtual Medium& addMedium (Medium* nextMedium)
 Methods for building Trees of Media. Error if not called from a CompositeMedium. More...

virtual Medium& removeMedium (Medium* oldMedium)
 Methods for building Trees of Media. Error if not called from a CompositeMedium. More...

Medium& setParent (Medium* p)
 Methods for setting data members (these all set by constructor and unnessary?). More...

Medium& setVolume (Shape* vol)
Medium& setMaterial (Material *mat)
Medium& setDetector (Detector *det)
Medium& setTitle (const char *newTitle)
virtual Medium& setKECutOff (float keCut)
 set tracking attributes: vitual to allow a CompositeMedium to set its children. More...

virtual Medium& setMaxStep (float mxStep)
virtual Medium& setField (Field* )
virtual const char* nameOf () const
 Methods for getting data members, attributes. More...

virtual int isComposite () const
const char* title () const
Shape& volume ()
const Shape& volume () const
Fieldfield () const
Materialmaterial () const
const Medium* getParent () const
const Medium* parent () const
float kECutOff () const
float maxStep () const
Detectordetector () const
GeomObjecttransform (const CoordTransform& )
 co-ordinate transformation. More...

Ray* CreateRay (const Point& position, const Vector& momentum, float charge,float maxdist=0 ) const
 create a Ray that will describe the trajectory. More...

virtual double distanceToLeave ( const Ray& r, const Medium*& nextMedium, double maxStep ) const
 This is perhaps to enter an inner Medium if implemented by a CompositeMedium, setting nextMedium if a boundary is reached. More...

virtual const Medium* inside (const Point& r) const
 return the Medium that the point is inside. More...

virtual double distanceToEnter ( const Ray& r, const Medium*& newstuff, double ) const
 support for distanceToLeave of a CompositeMedium. More...

virtual void clear ()
 Methods for Event processing -- apply to the detectof if present. More...

virtual void generateResponse ()
virtual void accept (DetectorVisitor&)
virtual void readData (std::istream&)
virtual void writeData (std::ostream&)
virtual void notify ()
 allow implementation of the Observer pattern -- message passed to all Detectors. More...

virtual void printOn ( std::ostream& os = std::cout ) const
 print and display. More...

virtual void printResponse (std::ostream& os= std::cout) const
virtual void createDetectorView (gui::DisplayRep& v)
 pass a gui::DisplayRep object to the Shape for display of the volume. More...

virtual void createResponseView (gui::DisplayRep& v)
 pass a gui::DisplayRep Detector for display of the response. More...


Static Public Methods

void setLastMedium (const Medium *last)
 used in the tracking. More...


Protected Methods

void set_defaults ()

Protected Attributes

Shape* _volume
Material_material
Detector_detector
Field_field
Medium* _parent
float _keCutOff
float _maxStep
char* _title

Static Protected Attributes

unsigned s_count = 0
const Medium* lastMedium = 0

Detailed Description

Medium is an interface class for MCParticle, combining information on the material, field, and geometry.


This information is use in the propagate method of MCParticle. Furthermore mediums provide "hooks" to generate detector responses and do event anaylsis.
Mediums contain mediums and hence form a hierarchical arrangement of the geometry. In particular a CompositeMedium has a list of mediums it contains as well as being in the list of mediums of its parent.

Definition at line 35 of file Medium.h.


Constructor & Destructor Documentation

Medium::Medium ( Medium * prnt = 0,
float size = 100 )
 

default Constructors / destructor.

Definition at line 33 of file Medium.cxx.

Referenced by Demo1::Demo1(), and LayeredBox::addLayer().

Medium::Medium ( Medium * parent,
Shape * vol,
const char * matName = "vacuum",
Detector * det = 0 )
 

Parameters:
parent   The parent: insure integrity of the medium hierarchy. and to make child tracking attributes default to those of the parent
vol   The geometric extent of the medium
mat   The material
det   Optional detector, which will be notified by any step inside

Definition at line 43 of file Medium.cxx.

Medium::Medium ( const Medium & old )
 

copy constructor.

Definition at line 54 of file Medium.cxx.

Medium::~Medium ( ) [virtual]
 

destructor.

Definition at line 91 of file Medium.cxx.


Member Function Documentation

Ray * Medium::CreateRay ( const Point & r,
const Vector & p,
float q,
float maxStep = 0 ) const
 

create a Ray that will describe the trajectory.

Definition at line 188 of file Medium.cxx.

Referenced by RCParticle::propagate(), and MCParticle::propagate().

void Medium::accept ( DetectorVisitor & a ) [virtual]
 

Reimplemented in CompositeMedium.

Definition at line 162 of file Medium.cxx.

Referenced by CompositeMedium::accept().

Medium & Medium::addMedium ( Medium * nextMedium ) [virtual]
 

Methods for building Trees of Media. Error if not called from a CompositeMedium.

Reimplemented in CompositeMedium, and World.

Definition at line 131 of file Medium.cxx.

Referenced by LayeredBox::addLayer(), and set_defaults().

void Medium::clear ( ) [virtual]
 

Methods for Event processing -- apply to the detectof if present.

Reimplemented in CompositeMedium.

Definition at line 158 of file Medium.cxx.

Referenced by CompositeMedium::clear().

void Medium::createDetectorView ( gui::DisplayRep & v ) [virtual]
 

pass a gui::DisplayRep object to the Shape for display of the volume.

Reimplemented in CompositeMedium, LayeredBox, LayeredMedium, World, LayeredTube, LayeredTube::Layer, and SlicedCone.

Definition at line 286 of file Medium.cxx.

Referenced by CompositeMedium::createDetectorView().

void Medium::createResponseView ( gui::DisplayRep & v ) [virtual]
 

pass a gui::DisplayRep Detector for display of the response.

Reimplemented in CompositeMedium.

Definition at line 170 of file Medium.cxx.

Referenced by CompositeMedium::createResponseView().

Detector * Medium::detector ( ) const [inline]
 

Definition at line 92 of file Medium.h.

Referenced by MCParticle::propagate().

double Medium::distanceToEnter ( const Ray & r,
const Medium *& m,
double t ) const [virtual]
 

support for distanceToLeave of a CompositeMedium.

Reimplemented in LayeredMedium, and LayeredTube.

Definition at line 249 of file Medium.cxx.

Referenced by LayeredTube::distanceToEnter(), LayeredMedium::distanceToEnter(), and CompositeMedium::distanceToLeave().

double Medium::distanceToLeave ( const Ray & ray,
const Medium *& newMedium,
double maxStep ) const [virtual]
 

This is perhaps to enter an inner Medium if implemented by a CompositeMedium, setting nextMedium if a boundary is reached.

Will be limited to maxStep

Reimplemented in CompositeMedium, LayeredMedium, LayeredTube, LayeredTube::Layer, SlabWorld::Slab, and SlabWorld.

Definition at line 206 of file Medium.cxx.

Referenced by CompositeMedium::distanceToLeave(), RCParticle::propagate(), and MCParticle::propagate().

Field & Medium::field ( ) const [inline]
 

Definition at line 84 of file Medium.h.

Referenced by setField(), and set_defaults().

void Medium::generateResponse ( ) [virtual]
 

Reimplemented in CompositeMedium.

Definition at line 160 of file Medium.cxx.

Referenced by CompositeMedium::generateResponse().

const Medium * Medium::getParent ( ) const [inline]
 

Definition at line 87 of file Medium.h.

const Medium * Medium::inside ( const Point & r ) const [virtual]
 

return the Medium that the point is inside.

Reimplemented in CompositeMedium, LayeredMedium, LayeredTube, LayeredTube::Layer, SlabWorld::Slab, and SlabWorld.

Definition at line 179 of file Medium.cxx.

Referenced by RCParticle::RCParticle(), distanceToLeave(), and CompositeMedium::inside().

int Medium::isComposite ( ) const [virtual]
 

Reimplemented in CompositeMedium.

Definition at line 124 of file Medium.cxx.

Referenced by LayeredBox::addLayer().

float Medium::kECutOff ( ) const [inline]
 

Definition at line 90 of file Medium.h.

Referenced by Interactor::ecut(), ShowerTest::init(), EGSInteractor::interact(), printOn(), and set_defaults().

Material & Medium::material ( ) const [inline]
 

Definition at line 85 of file Medium.h.

Referenced by Interactor::afterStep(), EGSInteractor::afterStep(), GheishaInteractor::data(), ShowerTest::init(), MuonInteractor::interactionLength(), Interactor::maxStepSize(), EGSInteractor::pegs(), MCParticle::propagate(), set_defaults(), and RCParticle::stepBy().

float Medium::maxStep ( ) const [inline]
 

Definition at line 91 of file Medium.h.

Referenced by distanceToLeave(), Interactor::maxStepSize(), EGSInteractor::maxStepSize(), printOn(), CompositeMedium::setMaxStep(), and set_defaults().

const char * Medium::nameOf ( ) const [virtual]
 

Methods for getting data members, attributes.

Reimplemented in CompositeMedium, LayeredBox, LayeredTube, LayeredTube::Layer, and SlicedCone.

Definition at line 120 of file Medium.cxx.

Referenced by printOn().

void Medium::notify ( ) [virtual]
 

allow implementation of the Observer pattern -- message passed to all Detectors.

Reimplemented in CompositeMedium.

Definition at line 173 of file Medium.cxx.

Referenced by CompositeMedium::notify().

const Medium * Medium::parent ( ) const [inline]
 

Reimplemented in LayeredTube::Layer.

Definition at line 88 of file Medium.h.

Referenced by LayeredMedium::addLayer(), LayeredBox::addLayer(), distanceToEnter(), distanceToLeave(), SlabWorld::Slab::inside(), and inside().

void Medium::printOn ( std::ostream & os = std::cout ) const [virtual]
 

print and display.

Reimplemented in CompositeMedium, and LayeredTube::Layer.

Definition at line 273 of file Medium.cxx.

Referenced by operator<<(), and CompositeMedium::printOn().

void Medium::printResponse ( std::ostream & os = std::cout ) const [virtual]
 

Reimplemented in CompositeMedium.

Definition at line 168 of file Medium.cxx.

Referenced by CompositeMedium::printResponse().

void Medium::readData ( std::istream & is ) [virtual]
 

Reimplemented in CompositeMedium.

Definition at line 166 of file Medium.cxx.

Referenced by CompositeMedium::readData().

Medium & Medium::removeMedium ( Medium * oldMedium ) [virtual]
 

Methods for building Trees of Media. Error if not called from a CompositeMedium.

Reimplemented in CompositeMedium.

Definition at line 137 of file Medium.cxx.

Medium & Medium::setDetector ( Detector * det ) [inline]
 

Definition at line 67 of file Medium.h.

Medium & Medium::setField ( Field * fld ) [virtual]
 

Reimplemented in CompositeMedium.

Definition at line 112 of file Medium.cxx.

Referenced by Demo1::Demo1(), and CompositeMedium::setField().

Medium & Medium::setKECutOff ( float keCut ) [virtual]
 

set tracking attributes: vitual to allow a CompositeMedium to set its children.

Reimplemented in CompositeMedium.

Definition at line 102 of file Medium.cxx.

Referenced by CompositeMedium::setKECutOff().

void Medium::setLastMedium ( const Medium * last ) [inline, static]
 

used in the tracking.

Definition at line 115 of file Medium.h.

Referenced by RCParticle::ini(), RCParticle::propagate(), and MCParticle::propagate().

Medium & Medium::setMaterial ( Material * mat ) [inline]
 

Definition at line 66 of file Medium.h.

Medium & Medium::setMaxStep ( float mxStep ) [virtual]
 

Reimplemented in CompositeMedium.

Definition at line 107 of file Medium.cxx.

Referenced by Demo1::Demo1(), and CompositeMedium::setMaxStep().

Medium & Medium::setParent ( Medium * p ) [inline]
 

Methods for setting data members (these all set by constructor and unnessary?).

Definition at line 64 of file Medium.h.

Referenced by CompositeMedium::addMedium().

Medium & Medium::setTitle ( const char * newTitle )
 

Definition at line 85 of file Medium.cxx.

Referenced by Demo1::Demo1(), World::World(), SlicedCone::addLayer(), LayeredBox::addLayer(), and SlabWorld::addSlab().

Medium & Medium::setVolume ( Shape * vol ) [inline]
 

Definition at line 65 of file Medium.h.

Referenced by LayeredMedium::LayeredMedium(), LayeredTube::addLayer(), and LayeredMedium::addLayer().

void Medium::set_defaults ( ) [protected]
 

Definition at line 64 of file Medium.cxx.

Referenced by Medium().

const char * Medium::title ( ) const [inline]
 

Definition at line 80 of file Medium.h.

Referenced by distanceToLeave(), Interactor::interact(), printOn(), CompositeMedium::printOn(), RCParticle::propagate(), and MCParticle::propagate().

GeomObject & Medium::transform ( const CoordTransform & T )
 

co-ordinate transformation.

Reimplemented in CompositeMedium, LayeredTube, and LayeredTube::Layer.

Definition at line 146 of file Medium.cxx.

Referenced by LayeredTube::Layer::transform(), and CompositeMedium::transform().

const Shape & Medium::volume ( ) const [inline]
 

Definition at line 83 of file Medium.h.

Shape & Medium::volume ( ) [inline]
 

Definition at line 82 of file Medium.h.

Referenced by LayeredMedium::addLayer(), World::addMedium(), createDetectorView(), LayeredTube::Layer::createDetectorView(), distanceToEnter(), distanceToLeave(), LayeredTube::Layer::distanceToLeave(), inside(), printOn(), and LayeredTube::tube().

void Medium::writeData ( std::ostream & os ) [virtual]
 

Reimplemented in CompositeMedium.

Definition at line 164 of file Medium.cxx.

Referenced by CompositeMedium::writeData().


Member Data Documentation

Detector * Medium::_detector [protected]
 

Definition at line 146 of file Medium.h.

Field * Medium::_field [protected]
 

Definition at line 147 of file Medium.h.

float Medium::_keCutOff [protected]
 

Definition at line 152 of file Medium.h.

Material * Medium::_material [protected]
 

Definition at line 145 of file Medium.h.

float Medium::_maxStep [protected]
 

Definition at line 153 of file Medium.h.

Medium * Medium::_parent [protected]
 

Definition at line 149 of file Medium.h.

char * Medium::_title [protected]
 

Definition at line 155 of file Medium.h.

Shape * Medium::_volume [protected]
 

Definition at line 144 of file Medium.h.

const Medium * Medium::lastMedium = 0 [static, protected]
 

Definition at line 300 of file Medium.cxx.

unsigned Medium::s_count = 0 [static, protected]
 

Definition at line 301 of file Medium.cxx.


The documentation for this class was generated from the following files:
Generated at Wed Nov 21 12:20:30 2001 by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000