| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

GtPositionerTool Class Reference

#include <GtPositionerTool.h>

Inheritance diagram for GtPositionerTool:

[legend]
Collaboration diagram for GtPositionerTool:
[legend]
List of all members.

Public Types

 SUCCESS
 NO_INTERFACE
 VERSMISMATCH
 LAST_ERROR
 SUCCESS
 NO_INTERFACE
 VERSMISMATCH
 LAST_ERROR
enum  Status

Public Member Functions

 GtPositionerTool (const std::string &type, const std::string &name, const IInterface *parent)
 GtPositionerTool - (re)position a HepMC::GenEvent in a detector element.
virtual ~GtPositionerTool ()
virtual StatusCode initialize ()
virtual StatusCode finalize ()
virtual StatusCode mutate (HepMC::GenEvent &event)
 Modify the event.
const IDetectorElementdetelem ()
 Return the volume or 0 if error.
INTupleSvcntupleSvc () const
INTupleSvcevtColSvc () const
IDataProviderSvcdetSvc () const
IDataProviderSvcevtSvc () const
IIncidentSvcincSvc () const
IChronoStatSvcchronoSvc () const
IHistogramSvchistoSvc () const
IAlgContextSvccontextSvc () const
DataObjectput (IDataProviderSvc *svc, DataObject *object, const std::string &address, const bool useRootInTES=true) const
DataObjectput (DataObject *object, const std::string &address, const bool useRootInTES=true) const
Gaudi::Utils::GetData< TYPE
>::return_type 
get (IDataProviderSvc *svc, const std::string &location, const bool useRootInTES=true) const
Gaudi::Utils::GetData< TYPE
>::return_type 
get (const std::string &location, const bool useRootInTES=true) const
TYPE * getDet (IDataProviderSvc *svc, const std::string &location) const
TYPE * getDet (const std::string &location) const
bool exist (IDataProviderSvc *svc, const std::string &location, const bool useRootInTES=true) const
bool exist (const std::string &location, const bool useRootInTES=true) const
bool existDet (IDataProviderSvc *svc, const std::string &location) const
bool existDet (const std::string &location) const
TYPE * getOrCreate (IDataProviderSvc *svc, const std::string &location, const bool useRootInTES=true) const
TYPE * getOrCreate (const std::string &location, const bool useRootInTES=true) const
TOOL * tool (const std::string &type, const std::string &name, const IInterface *parent=0, bool create=true) const
TOOL * tool (const std::string &type, const IInterface *parent=0, bool create=true) const
SERVICE * svc (const std::string &name, const bool create=true) const
IUpdateManagerSvcupdMgrSvc () const
IDataProviderSvcfastContainersSvc () const
StatusCode Error (const std::string &msg, const StatusCode st=StatusCode::FAILURE, const size_t mx=10) const
StatusCode Warning (const std::string &msg, const StatusCode st=StatusCode::FAILURE, const size_t mx=10) const
StatusCode Print (const std::string &msg, const StatusCode st=StatusCode::SUCCESS, const MSG::Level lev=MSG::INFO) const
StatusCode Assert (const bool ok, const std::string &message="", const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
StatusCode Assert (const bool ok, const char *message, const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
StatusCode Exception (const std::string &msg, const GaudiException &exc, const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
StatusCode Exception (const std::string &msg, const std::exception &exc, const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
StatusCode Exception (const std::string &msg="no message", const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
MsgStreammsgStream (const MSG::Level level) const
MsgStreamalways () const
MsgStreamfatal () const
MsgStreamerr () const
MsgStreamerror () const
MsgStreamwarning () const
MsgStreaminfo () const
MsgStreamdebug () const
MsgStreamverbose () const
MsgStreammsg () const
const Statisticscounters () const
StatEntitycounter (const std::string &tag) const
MSG::Level msgLevel () const
bool msgLevel (const MSG::Level level) const
void resetMsgStream () const
bool typePrint () const
bool propsPrint () const
bool statPrint () const
bool errorsPrint () const
long printStat (const MSG::Level level=MSG::ALWAYS) const
long printErrors (const MSG::Level level=MSG::ALWAYS) const
long printProps (const MSG::Level level=MSG::ALWAYS) const
void registerCondition (const std::string &condition, StatusCode(CallerClass::*mf)()=NULL)
void registerCondition (const std::string &condition, CondType *&condPtrDest, StatusCode(CallerClass::*mf)()=NULL)
void registerCondition (char *condition, StatusCode(CallerClass::*mf)()=NULL)
void registerCondition (TargetClass *condition, StatusCode(CallerClass::*mf)()=NULL)
StatusCode runUpdate ()
TransientFastContainer< T > * getFastContainer (const std::string &location, typename TransientFastContainer< T >::size_type initial=0)
StatusCode release (const IInterface *interface) const
virtual unsigned long release ()
const std::string & context () const
const std::string & rootInTES () const
double globalTimeOffset () const
virtual StatusCode queryInterface (const InterfaceID &riid, void **ppvUnknown)
virtual unsigned long addRef ()
virtual const std::string & name () const
virtual const std::string & type () const
virtual const IInterfaceparent () const
virtual StatusCode configure ()
virtual StatusCode start ()
virtual StatusCode stop ()
virtual StatusCode terminate ()
virtual StatusCode reinitialize ()
virtual StatusCode restart ()
virtual Gaudi::StateMachine::State FSMState () const
virtual Gaudi::StateMachine::State targetFSMState () const
virtual StatusCode sysInitialize ()
virtual StatusCode sysStart ()
virtual StatusCode sysStop ()
virtual StatusCode sysFinalize ()
virtual StatusCode sysReinitialize ()
virtual StatusCode sysRestart ()
virtual StatusCode setProperty (const Property &p)
virtual StatusCode setProperty (const std::string &s)
virtual StatusCode setProperty (const std::string &n, const std::string &v)
StatusCode setProperty (const std::string &name, const TYPE &value)
virtual StatusCode getProperty (Property *p) const
virtual const PropertygetProperty (const std::string &name) const
virtual StatusCode getProperty (const std::string &n, std::string &v) const
virtual const std::vector<
Property * > & 
getProperties () const
PropertyMgrgetPropertyMgr ()
ISvcLocatorserviceLocator () const
ISvcLocatorsvcLoc () const
IMessageSvcmsgSvc () const
IToolSvctoolSvc () const
StatusCode setProperties ()
StatusCode service (const std::string &name, T *&svc, bool createIf=true) const
StatusCode service (const std::string &type, const std::string &name, T *&svc) const
void declInterface (const InterfaceID &, void *)
PropertydeclareProperty (const std::string &name, T &property, const std::string &doc="none") const
PropertydeclareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="") const
IAuditorSvcauditorSvc () const
IMonitorSvcmonitorSvc () const
void declareInfo (const std::string &name, const T &var, const std::string &desc) const
void declareInfo (const std::string &name, const std::string &format, const void *var, int size, const std::string &desc) const
virtual const std::string & type () const =0
virtual const IInterfaceparent () const =0
virtual StatusCode configure ()=0
virtual StatusCode start ()=0
virtual StatusCode stop ()=0
virtual StatusCode terminate ()=0
virtual StatusCode reinitialize ()=0
virtual StatusCode restart ()=0
virtual Gaudi::StateMachine::State FSMState () const =0
virtual StatusCode sysInitialize ()=0
virtual StatusCode sysStart ()=0
virtual StatusCode sysStop ()=0
virtual StatusCode sysFinalize ()=0
virtual StatusCode sysReinitialize ()=0
virtual StatusCode sysRestart ()=0
virtual unsigned long refCount () const =0
virtual const std::string & name () const =0
virtual StatusCode queryInterface (const InterfaceID &riid, void **ppvInterface)=0
virtual unsigned long addRef ()=0
virtual unsigned long release ()=0

Static Public Member Functions

static const InterfaceIDinterfaceID ()
static const InterfaceIDinterfaceID ()
static const InterfaceIDinterfaceID ()
static const InterfaceIDinterfaceID ()
 Retrieve interface ID.

Public Attributes

 SUCCESS
 NO_INTERFACE
 VERSMISMATCH
 LAST_ERROR

Protected Types

typedef std::map< std::string,
StatEntity
Statistics
typedef std::map< std::string,
unsigned int > 
Counter
typedef std::vector< IAlgTool * > AlgTools
typedef std::pair< IInterface *,
std::string > 
ServiceEntry
typedef std::vector< ServiceEntryServices

Protected Member Functions

StatusCode releaseTool (const IAlgTool *tool) const
StatusCode releaseSvc (const IInterface *svc) const
int outputLevel () const
virtual unsigned long refCount () const
IntegerPropertyoutputLevelProperty ()
void initOutputLevel (Property &prop)

Static Protected Attributes

static const bool IgnoreRootInTES
static const bool UseRootInTES

Private Member Functions

StatusCode really_initialize ()
void setPosition (std::vector< double > &pos, HepMC::GenEvent &event)
bool genPosition (std::vector< double > &pos)
bool getPoint (std::vector< double > &pos)
std::string baseName (const std::string &path)

Private Attributes

std::string m_volume
 Name (path in TDS) of detector element in which to position the event.
std::string m_strategy
 Positioning strategy.
std::string m_mode
 Positioning mode.
std::vector< double > m_position
 Fixed or mean position.
double m_spread
 Spread for Gaussian/Uniform smearing.
std::vector< std::string > m_fillVolumes
 Logical volume names to fill with generated events (VolumeType Strategy).
std::vector< std::string > m_fillMaterials
 Material names to fill with generated events (Material Strategy).
bool m_really_initialized
Rndm::Numbers m_uni
Rndm::Numbers m_gauss
std::vector< double > m_min
std::vector< double > m_max
IDetectorElementm_detelem

Detailed Description

Definition at line 67 of file GtPositionerTool.h.


Constructor & Destructor Documentation

GtPositionerTool::GtPositionerTool ( const std::string &  type,
const std::string &  name,
const IInterface parent 
)

GtPositionerTool - (re)position a HepMC::GenEvent in a detector element.

bv@bnl.gov 2007/12/31 start bv@bnl.gov 2008/01/31 add mode control bv@bnl.gov 2008/03/24 fix to use detector element instead of logvol bv@bnl.gov 2008/6/6 move transformations into dedicated tool kboddy@caltech.edu 2008/08/08 add "Relative" option for m_mode

Definition at line 29 of file GtPositionerTool.cc.

00032     : GaudiTool(type,name,parent)
00033     , m_position(3,0)
00034     , m_spread(0)
00035     , m_really_initialized(false)
00036     , m_min(3,0)
00037     , m_max(3,0)
00038     , m_detelem(0)
00039 {
00040     declareInterface<IHepMCEventMutator>(this);
00041 
00042     declareProperty("Volume",m_volume="",
00043                     "Name (TDS path) of physical volume in which to position events");
00044     declareProperty("Strategy",m_strategy="FullVolume",
00045                     "Strategy for positioning events.");
00046     declareProperty("Mode",m_mode="Uniform","Mode for choosing positions.");
00047     declareProperty("Position",m_position,"Fixed/mean point");
00048     declareProperty("Spread",m_spread,"Spread for Gausian/Uniform smearing");
00049     declareProperty("FillVolumes",m_fillVolumes,
00050                     "Logical volume names to fill with generated events");
00051     declareProperty("FillMaterials",m_fillMaterials,
00052                     "Material names to fill with generated events");
00053 }

GtPositionerTool::~GtPositionerTool (  )  [virtual]

Definition at line 55 of file GtPositionerTool.cc.

00056 {
00057 }


Member Function Documentation

StatusCode GtPositionerTool::initialize (  )  [virtual]

Reimplemented from GaudiTool.

Definition at line 71 of file GtPositionerTool.cc.

00072 {
00073     return StatusCode::SUCCESS;
00074 }

StatusCode GtPositionerTool::finalize (  )  [virtual]

Reimplemented from GaudiTool.

Definition at line 141 of file GtPositionerTool.cc.

00142 {
00143     return StatusCode::SUCCESS;
00144 }

StatusCode GtPositionerTool::mutate ( HepMC::GenEvent event  )  [virtual]

Modify the event.

Implements IHepMCEventMutator.

Definition at line 146 of file GtPositionerTool.cc.

00147 {
00148     if (! m_really_initialized) {
00149         info() << "really_initialized with detector element: \"" 
00150                << m_volume << "\"" << endreq;
00151         StatusCode sc = this->really_initialize();
00152         if (sc.isFailure()) return sc;
00153     }
00154 
00155 
00156     // short circuit when in Fixed mode
00157     if ("Fixed" == m_mode or "Relative" == m_mode) {
00158         this->setPosition(m_position,event);
00159         return StatusCode::SUCCESS;
00160     }
00161 
00162 
00163     std::vector<double> local_pos(3,0);
00164     if (this->genPosition(local_pos)) {
00165         this->setPosition(local_pos,event);
00166         return StatusCode::SUCCESS;
00167     }
00168     
00169     fatal() << "Failed to generate position" << endreq;
00170     return StatusCode::FAILURE;
00171 }

const IDetectorElement * GtPositionerTool::detelem (  ) 

Return the volume or 0 if error.

Definition at line 59 of file GtPositionerTool.cc.

00060 {
00061     if (m_detelem) return m_detelem;
00062 
00063     if ("" == m_volume) return 0;
00064 
00065     if (!existDet<IDetectorElement>(m_volume)) return 0;
00066 
00067     m_detelem = getDet<IDetectorElement>(m_volume);
00068     return m_detelem;
00069 }

StatusCode GtPositionerTool::really_initialize (  )  [private]

Definition at line 76 of file GtPositionerTool.cc.

00077 {
00078     m_really_initialized = true;
00079 
00080     const IDetectorElement* detelem = this->detelem();
00081     if (!detelem) {
00082         fatal() << "Could not get detector element: \"" << m_volume << "\"" << endreq;
00083         return StatusCode::FAILURE;
00084     }
00085 
00086     // Get volume's solid's bounding box
00087     const ILVolume* lvol = detelem->geometry()->lvolume();
00088     if (!lvol) {
00089         fatal() << "Could not get volume: \"" << m_volume << "\"" << endreq;
00090         return StatusCode::FAILURE;
00091     }
00092 
00093     const SolidBase* solid = dynamic_cast<const SolidBase*>(lvol->solid());
00094     m_min[0] = solid->xMin(); m_max[0] = solid->xMax();
00095     m_min[1] = solid->yMin(); m_max[1] = solid->yMax();
00096     m_min[2] = solid->zMin(); m_max[2] = solid->zMax();
00097 
00098     // sanity check position
00099     for (int ind=0; ind<3; ++ind) {
00100         if (m_min[ind] > m_position[ind] || m_max[ind] < m_position[ind]) {
00101             // Let this be only warning - maybe user wants to do this.
00102             warning() << "GtPositioner tool given position not in detector element "
00103                       << m_volume << "'s logical volume's " << *lvol
00104                       << " bounding box, index " << ind << ": " 
00105                       << m_min[ind] << " ? " << m_position[ind] << " ? " << m_max[ind]
00106                       << endreq;
00107             //return StatusCode::FAILURE;
00108         }
00109     }
00110 
00111 
00112     // Possibly shrink trial range if requested spread is less than
00113     // request uniform spread.
00114     if (m_mode == "Uniform") {
00115         for (int ind=0; ind<3; ++ind) {
00116             if (m_min[ind] < m_position[ind] - m_spread)
00117                 m_min[ind] = m_position[ind] - m_spread;
00118             if (m_max[ind] > m_position[ind] + m_spread)
00119                 m_max[ind] = m_position[ind] + m_spread;
00120         }
00121     }
00122 
00123     // Set up random numbers
00124     IRndmGenSvc *rgs = 0;
00125     if (service("RndmGenSvc",rgs,true).isFailure()) {
00126         fatal() << "Failed to get random service" << endreq;
00127         return StatusCode::FAILURE;        
00128     }
00129     if (m_uni.initialize(rgs, Rndm::Flat(0,1)).isFailure()) {
00130         fatal() << "Failed to initialize uniform random numbers" << endreq;
00131         return StatusCode::FAILURE;
00132     }
00133     if (m_gauss.initialize(rgs, Rndm::Gauss(0,1)).isFailure()) {
00134         fatal() << "Failed to initialize Gaussian random numbers" << endreq;
00135         return StatusCode::FAILURE;
00136     }
00137 
00138     return StatusCode::SUCCESS;
00139 }

void GtPositionerTool::setPosition ( std::vector< double > &  pos,
HepMC::GenEvent event 
) [private]

Definition at line 314 of file GtPositionerTool.cc.

00315 {
00316     HepMC::FourVector position(vpos[0],vpos[1],vpos[2],0);
00317     debug() << "Setting position: " 
00318             <<position.x()<<","<<position.y()<<","<<position.z()
00319             << endreq;
00320     HepMC::GenEvent::vertex_iterator vtx, done = event.vertices_end();
00321     for (vtx = event.vertices_begin(); vtx != done; ++vtx) {
00322         if ("Relative" == m_mode) {
00323             HepMC::FourVector relative_pos = (*vtx)->position();
00324             (*vtx)->set_position(HepMC::FourVector(position.x()+relative_pos.x(),
00325                                                    position.y()+relative_pos.y(),
00326                                                    position.z()+relative_pos.z(),
00327                                                    position.t()+relative_pos.t()));
00328         }
00329         else{
00330             HepMC::FourVector position4d = position;
00331             position4d.setT((*vtx)->position().t());
00332             (*vtx)->set_position(position4d);
00333             debug() << "\tvertex @ " << "("
00334                     << (*vtx)->position().x()/CLHEP::cm << ","
00335                     << (*vtx)->position().y()/CLHEP::cm << ","
00336                     << (*vtx)->position().z()/CLHEP::cm << ","
00337                     << (*vtx)->position().t()/CLHEP::second << ") [cm,cm,cm,second]" << endreq;
00338 
00339         }
00340     }
00341 }

bool GtPositionerTool::genPosition ( std::vector< double > &  pos  )  [private]

Definition at line 199 of file GtPositionerTool.cc.

00200 {
00201     if ("Surface" == m_strategy) {
00202         //generate point on surface, 
00203         // munge event
00204         // return
00205         //...
00206         fatal() << "Surface strategy not yet supported" << endreq;
00207         return false;
00208     }
00209 
00210 
00211     if (!this->getPoint(local_pos)) {
00212         fatal () << "Failed to get local point" << endreq;
00213         return false;
00214     }
00215 
00216     Gaudi::XYZPoint local_point(local_pos[0],local_pos[1],local_pos[2]);
00217 
00218     // Check if inside logical volume
00219     const ILVolume* lvol = m_detelem->geometry()->lvolume();
00220     if (!lvol) {
00221         fatal() << "Could not get volume: \"" << m_volume << "\"" << endreq;
00222         return false;
00223     }
00224 
00225     // not inside, try again
00226     if (!lvol->isInside(local_point)) 
00227         return this->genPosition(local_pos);
00228 
00229     if ("AvoidDaughters" == m_strategy) {
00230         // Place in top-most volume only
00231         ILVolume::ReplicaPath replicaPath;
00232         if (lvol->belongsTo(local_point,1,replicaPath).isFailure()){
00233           fatal() << "Invalid point in " << m_volume << ": " << local_point
00234                   << endreq;
00235         }
00236         // Check if point is inside a daughter volume
00237         if (replicaPath.size() == 0)
00238           return true;
00239         else
00240           return this->genPosition(local_pos);
00241     } else if("VolumeType" == m_strategy || "Material" == m_strategy) {
00242       // Fill by physical volume or material type
00243       //info() << "Starting volume search" << endreq;
00244       ILVolume::PVolumePath pVolumePath;
00245       //info() << "   Local point: " << local_point << endreq;
00246       if (lvol->belongsTo(local_point,-1,pVolumePath).isFailure()){
00247         fatal() << "Invalid point in " << m_volume << ": " << local_point
00248                 << endreq;
00249       }
00250       // Check if point is inside a daughter volume
00251       //info() << "Depth of PVolumes: " <<  pVolumePath.size() << endreq;
00252       //for(unsigned int idx = 0; idx < pVolumePath.size(); idx++){
00253       //        info() << "    PVolume: " << pVolumePath[idx]->name() << endreq;
00254       //}
00255       if (pVolumePath.size() == 0){
00256         // No daughter volumes, so check this volume
00257         if("Material" == m_strategy){
00258           if(std::find(m_fillMaterials.begin(), m_fillMaterials.end(),
00259                        lvol->materialName()) != m_fillMaterials.end()){
00260             debug() << "Placing in " <<  lvol->name() << endreq;
00261             return true;
00262           }
00263         }
00264         if("VolumeType" == m_strategy){
00265           if(std::find(m_fillVolumes.begin(), m_fillVolumes.end(),
00266                        baseName(lvol->name())) == m_fillVolumes.end()){
00267             //info() << "    Not the volume we want" << endreq;
00268             return this->genPosition(local_pos);
00269           }
00270         }
00271         return this->genPosition(local_pos);
00272       }else{
00273         const IPVolume* lastPV = pVolumePath[pVolumePath.size() - 1];
00274         //info() << "    Last PVolume" << endreq;
00275         //info() << "      Name: " << lastPV->name() << endreq;
00276         //info() << "      Material: " << lastPV->lvolume()->materialName() 
00277         //       << endreq;
00278         if("VolumeType" == m_strategy){
00279           if(std::find(m_fillVolumes.begin(), m_fillVolumes.end(),
00280                        baseName(lastPV->lvolumeName())) == m_fillVolumes.end()){
00281             //info() << "    Not the volume we want" << endreq;
00282             return this->genPosition(local_pos);
00283           }
00284         }
00285         if("Material" == m_strategy){
00286           std::string currentMaterial = 
00287             baseName(lastPV->lvolume()->materialName());
00288           //info() << "    Current Material: " << currentMaterial << endreq;
00289           if(std::find(m_fillMaterials.begin(), m_fillMaterials.end(),
00290                        currentMaterial) == m_fillMaterials.end()){
00291             //info() << "    Not the material we want" << endreq;
00292             return this->genPosition(local_pos);
00293           }
00294         }
00295         debug() << "Placing in " <<  lastPV->name() << endreq;
00296         return true;
00297       }
00298     } else if ("FullVolume" == m_strategy) {
00299       return true;
00300     }
00301     
00302     fatal() << "Failed to generate volume using strategy " << m_strategy << endreq;
00303     return false;
00304 }

bool GtPositionerTool::getPoint ( std::vector< double > &  pos  )  [private]

Definition at line 173 of file GtPositionerTool.cc.

00174 {
00175     // Keep drawing Gaussians until we get, for each dimension, one
00176     // that is inside the bounds.
00177     if ("Smeared" == m_mode) {
00178         for (int ind=0; ind<3; ++ind) {
00179             do {
00180                 pos[ind] = m_gauss() * m_spread + m_position[ind];
00181             } while(pos[ind] < m_min[ind] || pos[ind] > m_max[ind]);
00182         }
00183         return true;
00184     }
00185 
00186     // Simply draw uniforms 
00187     if ("Uniform" == m_mode) {
00188         for (int ind=0; ind<3; ++ind)
00189             pos[ind] = m_uni() * (m_max[ind]-m_min[ind]) + m_min[ind];
00190         return true;
00191     }
00192 
00193     // Huh, why are we here?
00194     fatal() << "Unknown positioning mode: " << m_mode << endreq;
00195     return false;
00196 }

std::string GtPositionerTool::baseName ( const std::string &  path  )  [private]

Definition at line 306 of file GtPositionerTool.cc.

00306                                                          {
00307   size_t pos = path.rfind('/');
00308   if( pos == std::string::npos ) return path;
00309   return path.substr(pos+1);
00310 }

const InterfaceID & IHepMCEventMutator::interfaceID (  )  [static, inherited]

Retrieve interface ID.

Reimplemented from IAlgTool.

Definition at line 8 of file IHepMCEventMutator.cc.

00009 { 
00010     return IID_IHepMCEventMutator; 
00011 }


Member Data Documentation

std::string GtPositionerTool::m_volume [private]

Name (path in TDS) of detector element in which to position the event.

Definition at line 91 of file GtPositionerTool.h.

std::string GtPositionerTool::m_strategy [private]

Positioning strategy.

Definition at line 94 of file GtPositionerTool.h.

std::string GtPositionerTool::m_mode [private]

Positioning mode.

Definition at line 97 of file GtPositionerTool.h.

std::vector<double> GtPositionerTool::m_position [private]

Fixed or mean position.

Definition at line 100 of file GtPositionerTool.h.

double GtPositionerTool::m_spread [private]

Spread for Gaussian/Uniform smearing.

Definition at line 103 of file GtPositionerTool.h.

std::vector<std::string> GtPositionerTool::m_fillVolumes [private]

Logical volume names to fill with generated events (VolumeType Strategy).

Definition at line 106 of file GtPositionerTool.h.

std::vector<std::string> GtPositionerTool::m_fillMaterials [private]

Material names to fill with generated events (Material Strategy).

Definition at line 109 of file GtPositionerTool.h.

bool GtPositionerTool::m_really_initialized [private]

Definition at line 117 of file GtPositionerTool.h.

Rndm::Numbers GtPositionerTool::m_uni [private]

Definition at line 119 of file GtPositionerTool.h.

Rndm::Numbers GtPositionerTool::m_gauss [private]

Definition at line 119 of file GtPositionerTool.h.

std::vector<double> GtPositionerTool::m_min [private]

Definition at line 120 of file GtPositionerTool.h.

std::vector<double> GtPositionerTool::m_max [private]

Definition at line 120 of file GtPositionerTool.h.

IDetectorElement* GtPositionerTool::m_detelem [private]

Definition at line 126 of file GtPositionerTool.h.


The documentation for this class was generated from the following files:
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:55:38 2011 for GenTools by doxygen 1.4.7