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

In This Package:

VolumeCheckAlg Class Reference

Simple algorithm which performs an extensive and detailed check of logical volume. More...

#include <VolumeCheckAlg.h>

Inheritance diagram for VolumeCheckAlg:

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

Public Types

typedef GaudiAlg::HistoID HistoID
typedef GaudiAlg::Histo1DMapNumericID Histo1DMapNumID
typedef GaudiAlg::Histo1DMapLiteralID Histo1DMapLitID
typedef GaudiAlg::Histo1DMapTitle Histo1DMapTitle
typedef GaudiAlg::Histo2DMapNumericID Histo2DMapNumID
typedef GaudiAlg::Histo2DMapLiteralID Histo2DMapLitID
typedef GaudiAlg::Histo2DMapTitle Histo2DMapTitle
typedef GaudiAlg::Histo3DMapNumericID Histo3DMapNumID
typedef GaudiAlg::Histo3DMapLiteralID Histo3DMapLitID
typedef GaudiAlg::Histo3DMapTitle Histo3DMapTitle
typedef GaudiAlg::Profile1DMapNumericID Profile1DMapNumID
typedef GaudiAlg::Profile1DMapLiteralID Profile1DMapLitID
typedef GaudiAlg::Profile1DMapTitle Profile1DMapTitle
typedef GaudiAlg::Profile2DMapNumericID Profile2DMapNumID
typedef GaudiAlg::Profile2DMapLiteralID Profile2DMapLitID
typedef GaudiAlg::Profile2DMapTitle Profile2DMapTitle
 SUCCESS
 NO_INTERFACE
 VERSMISMATCH
 LAST_ERROR

Public Member Functions

virtual StatusCode initialize ()
 standard algorithm initialization
virtual StatusCode execute ()
 standard execution of algorithm
AIDA::IHistogram1D * plot1D (const double value, const std::string &title, const double low, const double high, const unsigned long bins=100, const double weight=1.0) const
AIDA::IHistogram1D * plot1D (const double value, const HistoID &ID, const std::string &title, const double low, const double high, const unsigned long bins=100, const double weight=1.0) const
AIDA::IHistogram1D * plot1D (const double value, const HistoID &ID, const std::string &title, const double low, const double high, const unsigned long bins=100, const double weight=1.0) const
AIDA::IHistogram1D * plot (const double value, const std::string &title, const double low, const double high, const unsigned long bins=100, const double weight=1.0) const
AIDA::IHistogram1D * plot (const double value, const Gaudi::Histo1DDef &hdef, const double weight=1.0) const
AIDA::IHistogram1D * plot (const double value, const HistoID &ID, const std::string &title, const double low, const double high, const unsigned long bins=100, const double weight=1.0) const
AIDA::IHistogram1D * plot (const double value, const HistoID &ID, const Gaudi::Histo1DDef &hdef, const double weight=1.0) const
AIDA::IHistogram1D * plot (const FUNCTION &func, OBJECT first, OBJECT last, const std::string &title, const double low, const double high, const unsigned long bins=100) const
AIDA::IHistogram1D * plot (const FUNCTION &func, OBJECT first, OBJECT last, const HistoID &ID, const std::string &title, const double low, const double high, const unsigned long bins=100) const
AIDA::IHistogram1D * plot (const FUNCTION &func, OBJECT first, OBJECT last, const std::string &title, const double low, const double high, const unsigned long bins, const WEIGHT &weight) const
AIDA::IHistogram1D * plot (const FUNCTION &func, OBJECT first, OBJECT last, const HistoID &ID, const std::string &title, const double low, const double high, const unsigned long bins, const WEIGHT &weight) const
AIDA::IHistogram1D * plot (const double value, const HistoID &ID, const std::string &title, const double low, const double high, const unsigned long bins=100, const double weight=1.0) const
AIDA::IHistogram1D * plot (const double value, const HistoID &ID, const Gaudi::Histo1DDef &hdef, const double weight=1.0) const
AIDA::IHistogram1D * plot (const FUNCTION &func, OBJECT first, OBJECT last, const HistoID &ID, const std::string &title, const double low, const double high, const unsigned long bins=100) const
AIDA::IHistogram1D * plot (const FUNCTION &func, OBJECT first, OBJECT last, const HistoID &ID, const std::string &title, const double low, const double high, const unsigned long bins, const WEIGHT &weight) const
AIDA::IHistogram2D * plot2D (const double valueX, const double valueY, const std::string &title, const double lowX, const double highX, const double lowY, const double highY, const unsigned long binsX=50, const unsigned long binsY=50, const double weight=1.0) const
AIDA::IHistogram2D * plot2D (const double valueX, const double valueY, const HistoID &ID, const std::string &title, const double lowX, const double highX, const double lowY, const double highY, const unsigned long binsX=50, const unsigned long binsY=50, const double weight=1.0) const
AIDA::IHistogram2D * plot2D (const double valueX, const double valueY, const HistoID &ID, const std::string &title, const double lowX, const double highX, const double lowY, const double highY, const unsigned long binsX=50, const unsigned long binsY=50, const double weight=1.0) const
AIDA::IHistogram3D * plot3D (const double valueX, const double valueY, const double valueZ, const std::string &title, const double lowX, const double highX, const double lowY, const double highY, const double lowZ, const double highZ, const unsigned long binsX=10, const unsigned long binsY=10, const unsigned long binsZ=10, const double weight=1.0) const
AIDA::IHistogram3D * plot3D (const double valueX, const double valueY, const double valueZ, const HistoID &ID, const std::string &title, const double lowX, const double highX, const double lowY, const double highY, const double lowZ, const double highZ, const unsigned long binsX=10, const unsigned long binsY=10, const unsigned long binsZ=10, const double weight=1.0) const
AIDA::IHistogram3D * plot3D (const double valueX, const double valueY, const double valueZ, const HistoID &ID, const std::string &title, const double lowX, const double highX, const double lowY, const double highY, const double lowZ, const double highZ, const unsigned long binsX=10, const unsigned long binsY=10, const unsigned long binsZ=10, const double weight=1.0) const
AIDA::IProfile1D * profile1D (const double valueX, const double valueY, const std::string &title, const double lowX, const double highX, const unsigned long binsX=100, const std::string &opt="", const double lowY=-std::numeric_limits< double >::max(), const double highY=std::numeric_limits< double >::max(), const double weight=1.0) const
AIDA::IProfile1D * profile1D (const double valueX, const double valueY, const HistoID &ID, const std::string &title, const double lowX, const double highX, const unsigned long binsX=100, const std::string &opt="", const double lowY=-std::numeric_limits< double >::max(), const double highY=std::numeric_limits< double >::max(), const double weight=1.0) const
AIDA::IProfile1D * profile1D (const std::string &title) const
AIDA::IProfile1D * profile1D (const HistoID &ID) const
AIDA::IProfile1D * profile1D (const double valueX, const double valueY, const HistoID &ID, const std::string &title, const double lowX, const double highX, const unsigned long binsX=100, const std::string &opt="", const double lowY=-std::numeric_limits< double >::max(), const double highY=std::numeric_limits< double >::max(), const double weight=1.0) const
AIDA::IProfile1D * profile1D (const HistoID &ID) const
AIDA::IProfile2D * profile2D (const double valueX, const double valueY, const double valueZ, const std::string &title, const double lowX, const double highX, const double lowY, const double highY, const unsigned long binsX=50, const unsigned long binsY=50, const double weight=1.0) const
AIDA::IProfile2D * profile2D (const double valueX, const double valueY, const double valueZ, const HistoID &ID, const std::string &title, const double lowX, const double highX, const double lowY, const double highY, const unsigned long binsX=50, const unsigned long binsY=50, const double weight=1.0) const
AIDA::IProfile2D * profile2D (const std::string &title) const
AIDA::IProfile2D * profile2D (const HistoID &ID) const
AIDA::IProfile2D * profile2D (const double valueX, const double valueY, const double valueZ, const HistoID &ID, const std::string &title, const double lowX, const double highX, const double lowY, const double highY, const unsigned long binsX=50, const unsigned long binsY=50, const double weight=1.0) const
AIDA::IProfile2D * profile2D (const HistoID &ID) const
AIDA::IHistogram1D * book1D (const std::string &title, const double low=0, const double high=100, const unsigned long bins=100) const
AIDA::IHistogram1D * book1D (const HistoID &ID, const std::string &title, const double low=0, const double high=100, const unsigned long bins=100) const
AIDA::IHistogram1D * book1D (const HistoID &ID, const std::string &title, const double low=0, const double high=100, const unsigned long bins=100) const
AIDA::IHistogram1D * book (const std::string &title, const double low=0, const double high=100, const unsigned long bins=100) const
AIDA::IHistogram1D * book (const Gaudi::Histo1DDef &hdef) const
AIDA::IHistogram1D * book (const HistoID &ID, const std::string &title, const double low=0, const double high=100, const unsigned long bins=100) const
AIDA::IHistogram1D * book (const HistoID &ID, const Gaudi::Histo1DDef &hdef) const
AIDA::IHistogram1D * book (const HistoID &ID, const std::string &title, const double low=0, const double high=100, const unsigned long bins=100) const
AIDA::IHistogram1D * book (const HistoID &ID, const Gaudi::Histo1DDef &hdef) const
AIDA::IHistogram2D * book2D (const std::string &title, const double lowX=0, const double highX=100, const unsigned long binsX=50, const double lowY=0, const double highY=100, const unsigned long binsY=50) const
AIDA::IHistogram2D * book2D (const HistoID &ID, const std::string &title, const double lowX=0, const double highX=100, const unsigned long binsX=50, const double lowY=0, const double highY=100, const unsigned long binsY=50) const
AIDA::IHistogram2D * book2D (const HistoID &ID, const std::string &title, const double lowX=0, const double highX=100, const unsigned long binsX=50, const double lowY=0, const double highY=100, const unsigned long binsY=50) const
AIDA::IHistogram3D * book3D (const std::string &title, const double lowX=0, const double highX=100, const unsigned long binsX=10, const double lowY=0, const double highY=100, const unsigned long binsY=10, const double lowZ=0, const double highZ=100, const unsigned long binsZ=10) const
AIDA::IHistogram3D * book3D (const HistoID &ID, const std::string &title, const double lowX=0, const double highX=100, const unsigned long binsX=10, const double lowY=0, const double highY=100, const unsigned long binsY=10, const double lowZ=0, const double highZ=100, const unsigned long binsZ=10) const
AIDA::IHistogram3D * book3D (const HistoID &ID, const std::string &title, const double lowX=0, const double highX=100, const unsigned long binsX=10, const double lowY=0, const double highY=100, const unsigned long binsY=10, const double lowZ=0, const double highZ=100, const unsigned long binsZ=10) const
AIDA::IProfile1D * bookProfile1D (const std::string &title, const double low=0, const double high=100, const unsigned long bins=100, const std::string &opt="", const double lowY=-std::numeric_limits< double >::max(), const double highY=std::numeric_limits< double >::max()) const
AIDA::IProfile1D * bookProfile1D (const HistoID &ID, const std::string &title, const double low=0, const double high=100, const unsigned long bins=100, const std::string &opt="", const double lowY=-std::numeric_limits< double >::max(), const double highY=std::numeric_limits< double >::max()) const
AIDA::IProfile1D * bookProfile1D (const HistoID &ID, const std::string &title, const double low=0, const double high=100, const unsigned long bins=100, const std::string &opt="", const double lowY=-std::numeric_limits< double >::max(), const double highY=std::numeric_limits< double >::max()) const
AIDA::IProfile2D * bookProfile2D (const std::string &title, const double lowX=0, const double highX=100, const unsigned long binsX=50, const double lowY=0, const double highY=100, const unsigned long binsY=50) const
AIDA::IProfile2D * bookProfile2D (const HistoID &ID, const std::string &title, const double lowX=0, const double highX=100, const unsigned long binsX=50, const double lowY=0, const double highY=100, const unsigned long binsY=50) const
AIDA::IProfile2D * bookProfile2D (const HistoID &ID, const std::string &title, const double lowX=0, const double highX=100, const unsigned long binsX=50, const double lowY=0, const double highY=100, const unsigned long binsY=50) const
AIDA::IHistogram1D * fill (AIDA::IHistogram1D *histo, const double value, const double weight, const std::string &title="") const
AIDA::IHistogram2D * fill (AIDA::IHistogram2D *histo, const double valueX, const double valueY, const double weight, const std::string &title="") const
AIDA::IHistogram3D * fill (AIDA::IHistogram3D *histo, const double valueX, const double valueY, const double valueZ, const double weight, const std::string &title="") const
AIDA::IProfile1D * fill (AIDA::IProfile1D *histo, const double valueX, const double valueY, const double weight, const std::string &title="") const
AIDA::IProfile2D * fill (AIDA::IProfile2D *histo, const double valueX, const double valueY, const double valueZ, const double weight, const std::string &title="") const
AIDA::IHistogram1D * histo1D (const std::string &title) const
AIDA::IHistogram1D * histo1D (const HistoID &ID) const
AIDA::IHistogram1D * histo1D (const HistoID &ID) const
AIDA::IHistogram1D * histo (const std::string &title) const
AIDA::IHistogram1D * histo (const HistoID &ID) const
AIDA::IHistogram1D * histo (const HistoID &ID) const
AIDA::IHistogram2D * histo2D (const std::string &title) const
AIDA::IHistogram2D * histo2D (const HistoID &ID) const
AIDA::IHistogram2D * histo2D (const HistoID &ID) const
AIDA::IHistogram3D * histo3D (const std::string &title) const
AIDA::IHistogram3D * histo3D (const HistoID &ID) const
AIDA::IHistogram3D * histo3D (const HistoID &ID) const
bool histoExists (const std::string &title) const
bool histoExists (const HistoID &ID) const
bool histoExists (const HistoID &ID) const
unsigned int totalNumberOfHistos () const
bool produceHistos () const
bool fullDetail () const
bool checkForNaN () const
bool splitHistoDir () const
HistoID::NumericID histoOffSet () const
const std::string & histoTopDir () const
const std::string & histoDir () const
std::string histoPath () const
bool histosPrint () const
bool useNumericAutoIDs () const
int printHistos (const MSG::Level level=MSG::ALWAYS) const
const Histo1DMapTitlehisto1DMapTitle () const
const Histo1DMapNumIDhisto1DMapNumID () const
const Histo1DMapLitIDhisto1DMapLitID () const
const Histo2DMapTitlehisto2DMapTitle () const
const Histo2DMapNumIDhisto2DMapNumID () const
const Histo2DMapLitIDhisto2DMapLitID () const
const Histo3DMapTitlehisto3DMapTitle () const
const Histo3DMapNumIDhisto3DMapNumID () const
const Histo3DMapLitIDhisto3DMapLitID () const
const Profile1DMapTitleprofile1DMapTitle () const
const Profile1DMapNumIDprofile1DMapNumID () const
const Profile1DMapLitIDprofile1DMapLitID () const
const Profile2DMapTitleprofile2DMapTitle () const
const Profile2DMapNumIDprofile2DMapNumID () const
const Profile2DMapLitIDprofile2DMapLitID () const
void setProduceHistos (const bool val)
void setFullDetail (const bool val)
void setCheckForNaN (const bool val)
void setSplitHistoDir (const bool val)
void setHistoOffSet (const HistoID::NumericID val)
void setHistoTopDir (const std::string &val)
void setHistoDir (const std::string &val)
virtual StatusCode sysExecute ()
void put (IDataProviderSvc *svc, DataObject *object, const std::string &address, const bool useRootInTES=true) const
void put (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
bool registerContext () const
INTupleSvcevtColSvc () const
IAlgContextSvccontextSvc () 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
unsigned long release ()
const std::string & context () const
const std::string & rootInTES () const
double globalTimeOffset () const
virtual StatusCode sysStart ()
virtual StatusCode sysInitialize ()
virtual StatusCode sysReinitialize ()
virtual StatusCode sysRestart ()
virtual StatusCode sysStop ()
virtual StatusCode sysFinalize ()
virtual StatusCode sysBeginRun ()
virtual StatusCode sysEndRun ()
virtual const std::string & name () const
virtual const std::string & version () const
virtual StatusCode configure ()
virtual StatusCode terminate ()
virtual StatusCode start ()
virtual StatusCode stop ()
virtual StatusCode reinitialize ()
virtual StatusCode restart ()
virtual bool isExecuted () const
virtual void setExecuted (bool state)
virtual void resetExecuted ()
virtual StatusCode beginRun ()
virtual StatusCode endRun ()
virtual Gaudi::StateMachine::State FSMState () const
virtual Gaudi::StateMachine::State targetFSMState () const
virtual bool isEnabled () const
virtual bool filterPassed () const
virtual void setFilterPassed (bool state)
StatusCode service (const std::string &name, T *&psvc, bool createIf=true) const
StatusCode service (const std::string &svcType, const std::string &svcName, T *&psvc) const
void setOutputLevel (int level)
IAuditorSvcauditorSvc () const
IChronoStatSvcchronoSvc () const
IChronoStatSvcchronoStatService () const
IDataProviderSvcdetSvc () const
IDataProviderSvcdetDataService () const
IConversionSvcdetCnvSvc () const
IConversionSvcdetDataCnvService () const
IDataProviderSvceventSvc () const
IDataProviderSvcevtSvc () const
IDataProviderSvceventDataService () const
IConversionSvceventCnvSvc () const
IConversionSvceventDataCnvService () const
IHistogramSvchistoSvc () const
IHistogramSvchistogramDataService () const
IMessageSvcmsgSvc () const
IMessageSvcmessageService () const
INTupleSvcntupleSvc () const
INTupleSvcntupleService () const
IRndmGenSvcrandSvc () const
IToolSvctoolSvc () const
IExceptionSvcexceptionSvc () const
ISvcLocatorserviceLocator () const
ISvcLocatorsvcLoc () const
StatusCode createSubAlgorithm (const std::string &type, const std::string &name, Algorithm *&pSubAlg)
std::vector< Algorithm * > * subAlgorithms () const
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
StatusCode setProperties ()
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
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
unsigned long addRef ()
StatusCode queryInterface (const InterfaceID &riid, void **)

Static Public Member Functions

static const InterfaceIDinterfaceID ()
static const InterfaceIDinterfaceID ()
static const InterfaceIDinterfaceID ()

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

 VolumeCheckAlg (const std::string &name, ISvcLocator *svcloc)
 Standard constructor.
virtual ~VolumeCheckAlg ()
 destructor (protected and virtual)
virtual StatusCode finalize ()
std::string convertTitleToID (const std::string &title) const
StatusCode releaseTool (const IAlgTool *tool) const
StatusCode releaseSvc (const IInterface *svc) const
bool isInitialized () const
bool isFinalized () const
int outputLevel () const
IntegerPropertyoutputLevelProperty ()
void initOutputLevel (Property &prop)

Static Protected Attributes

static const bool IgnoreRootInTES
static const bool UseRootInTES

Private Member Functions

 VolumeCheckAlg ()
 default constructor is private
 VolumeCheckAlg (const VolumeCheckAlg &)
 copy constructor is private
VolumeCheckAlgoperator= (const VolumeCheckAlg &)
 assignement operator is private

Private Attributes

std::string m_volumeName
const ILVolumem_volume
double m_minx
double m_maxx
double m_miny
double m_maxy
double m_minz
double m_maxz
int m_shotsSphere
int m_shotsXY
int m_shotsYZ
int m_shotsZX
std::vector< double > m_vrtx
Gaudi::XYZPoint m_vertex

Friends

class AlgFactory< VolumeCheckAlg >
 friend factory for instantiation

Detailed Description

Simple algorithm which performs an extensive and detailed check of logical volume.

The algorithm performs an extensive printout for given logical volume, its solid( if any) and material (if any).

The algorithm produces 8 2-dimentional plots with material profile for the given logical volume. The actual profiles could be obtained by the proper normalization of distributions, e.g. using PAW:

  PAW > hi/li

  ===> Directory : 
          1 (2)    3D-Material Budget     for /dd/Geometry/Pipe/BeamPipe  
          2 (2)    3D-Material Budget (N) for /dd/Geometry/Pipe/BeamPipe  
          3 (2)    XY-Material Budget     for /dd/Geometry/Pipe/BeamPipe  
          4 (2)    XY-Material Budget (N) for /dd/Geometry/Pipe/BeamPipe  
          5 (2)    YZ-Material Budget     for /dd/Geometry/Pipe/BeamPipe  
          6 (2)    YZ-Material Budget (N) for /dd/Geometry/Pipe/BeamPipe  
          7 (2)    ZX-Material Budget     for /dd/Geometry/Pipe/BeamPipe  
          8 (2)    ZX-Material Budget (N) for /dd/Geometry/Pipe/BeamPipe  
  PAW > hi/oper/div 1 2 10 
  PAW > hi/oper/div 3 4 30
  PAW > hi/oper/div 5 6 50
  PAW > hi/oper/div 7 8 70
  PAW > hi/plot 10 lego1.sph
  PAW > hi/plot 30 lego1    
  PAW > hi/plot 50 lego1
  PAW > hi/plot 70 lego1

The first pair of the plots (1&2) represents the material budget of the volume itself in spherical coordinates. Thus the histogram 10 form example above shold have the same "topological" characteristics as the whole logical volume. This distribution must be viewed using SPHERICAL coordinates (option SPH for PAW).

Other pairs of distributions represent the xy (3&4), yz(5&6) and zx(7&8) projections of the volume.

The upper and lower limits of the histograms are evaluated automatically for logical volumes of the type LVolume. For logical volumes of the type LAssembly ("Logical Assembly") the parameters shoudl be given by algorithm properties MinX, MaxX , MinY, MaxY , MinZ and MaxZ .

The full list of algorithm properties and their default values:

See also:
ILVolume

LVolume

LAssembly

Material

ISolid

SolidBox

Author:
Vanya Belyaev Ivan.Belyaev@itep.ru
Date:
2002-05-25

Definition at line 116 of file VolumeCheckAlg.h.


Constructor & Destructor Documentation

VolumeCheckAlg::VolumeCheckAlg ( const std::string &  name,
ISvcLocator svcloc 
) [protected]

Standard constructor.

Parameters:
name name of the algorithm
svcloc pointer to Service Locator

Definition at line 60 of file VolumeCheckAlg.cpp.

00062   : GaudiHistoAlg  ( name , svcloc ) 
00063   , m_volumeName   ( "Undefined Volume" )
00064   , m_volume       ( 0            )
00065   , m_minx         ( -10 * Gaudi::Units::m      ) 
00066   , m_maxx         (  10 * Gaudi::Units::m      ) 
00067   , m_miny         ( -10 * Gaudi::Units::m      ) 
00068   , m_maxy         (  10 * Gaudi::Units::m      ) 
00069   , m_minz         ( -10 * Gaudi::Units::m      ) 
00070   , m_maxz         (  10 * Gaudi::Units::m      )
00071   , m_shotsSphere  ( 50000        )
00072   , m_shotsXY      ( 10000        )  
00073   , m_shotsYZ      ( 10000        ) 
00074   , m_shotsZX      ( 10000        ) 
00075   , m_vrtx         ( 3 , 0        ) 
00076   , m_vertex       (              ) 
00077 {
00078   declareProperty ( "Volume"               , m_volumeName   ) ;
00079   declareProperty ( "MinX"                 , m_minx         ) ;
00080   declareProperty ( "MinY"                 , m_miny         ) ;
00081   declareProperty ( "MinZ"                 , m_minz         ) ;
00082   declareProperty ( "MaxX"                 , m_maxx         ) ;
00083   declareProperty ( "MaxY"                 , m_maxy         ) ;
00084   declareProperty ( "MaxZ"                 , m_maxz         ) ;
00085   declareProperty ( "Shots3D"              , m_shotsSphere ) ;
00086   declareProperty ( "ShotsXY"              , m_shotsXY     ) ;
00087   declareProperty ( "ShotsYZ"              , m_shotsYZ     ) ;
00088   declareProperty ( "ShotsZX"              , m_shotsZX     ) ; 
00089   declareProperty ( "Null"                 , m_vrtx         ) ;
00090  };

VolumeCheckAlg::~VolumeCheckAlg (  )  [protected, virtual]

destructor (protected and virtual)

Definition at line 96 of file VolumeCheckAlg.cpp.

00096 {}; 

VolumeCheckAlg::VolumeCheckAlg (  )  [private]

default constructor is private

VolumeCheckAlg::VolumeCheckAlg ( const VolumeCheckAlg  )  [private]

copy constructor is private


Member Function Documentation

StatusCode VolumeCheckAlg::initialize (  )  [virtual]

standard algorithm initialization

See also:
IAlgorithm
Returns:
status code

Reimplemented from GaudiHistoAlg.

Definition at line 105 of file VolumeCheckAlg.cpp.

00106 {  
00107   
00108   StatusCode sc = GaudiHistoAlg::initialize() ;
00109   if ( sc.isFailure() ) { return sc ; }
00110   
00111   Assert ( 0 != randSvc () , "randSvc() points to NULL!" ) ;
00112   Assert ( 0 != detSvc  () , "detSvc()  points to NULL!" ) ;
00113   
00114   m_volume = getDet<ILVolume>( m_volumeName ) ;
00115   
00116   const std::string stars(80,'*');
00117   
00118   info() << stars     << endreq ;
00119   info() << m_volume  << endreq ;
00120   info() << stars     << endreq ;
00121   if ( !m_volume->pvolumes().empty() )
00122   {
00123     info() << " Has " << m_volume->pvolumes().size() 
00124            << " daughter volumes " << endreq ;
00125     for ( ILVolume::PVolumes::const_iterator pv = m_volume->pvBegin() ; 
00126           m_volume->pvEnd() != pv ; ++pv )
00127     {
00128       info() << " **** Daughter Physical Volume #"
00129              << pv - m_volume->pvBegin() << endreq ;
00130       info() << *pv << endreq ;
00131     }
00132   }
00133   
00134   if ( !m_volume->isAssembly() ) 
00135   {
00136     const ISolid* solid       = m_volume->solid() ;
00137     info() << " **** Solid "    << endreq ;
00138     info() << solid             << endreq ;
00139     const Material* material  = m_volume->material() ;
00140     info() << " **** Material " << endreq ;
00141     info() << material          << endreq ;
00142   }
00143   
00144   // activate the vertex
00145   if ( m_vrtx.size() <= 3 )
00146   { while ( 3 != m_vrtx.size() ) { m_vrtx.push_back( 0.0 ); } }
00147   else 
00148   {
00149     warning()  << " Ignore extra fields in 'ShootingPoint' "<< endreq ;
00150   }
00151   m_vertex.SetXYZ( m_vrtx[0], m_vrtx[1], m_vrtx[2] ) ;
00152   
00153   if ( !m_volume->isAssembly() && 0 != m_volume->solid() ) 
00154   {
00155     const ISolid* top = m_volume->solid()->coverTop();
00156     if( 0 == top ) 
00157     { return Error( "CoverTop* points to NULL!" ) ; }
00158     const SolidBox* box = dynamic_cast<const SolidBox*> ( top );
00159     if( 0 == box ) 
00160     { return Error("SolidBox* points to NULL!"); }
00161     
00162     m_minx = -1 * box->xHalfLength() * 1.05 ;
00163     m_maxx =      box->xHalfLength() * 1.05 ;
00164     m_miny = -1 * box->yHalfLength() * 1.05 ;
00165     m_maxy =      box->yHalfLength() * 1.05 ;
00166     m_minz = -1 * box->zHalfLength() * 1.05 ;
00167     m_maxz =      box->zHalfLength() * 1.05 ;
00168   }
00169   
00170   return StatusCode::SUCCESS;
00171 };

StatusCode VolumeCheckAlg::execute (  )  [virtual]

standard execution of algorithm

See also:
IAlgorithm
Returns:
status code

Reimplemented from GaudiHistoAlg.

Definition at line 181 of file VolumeCheckAlg.cpp.

00182 {
00183   // spherical (3d) shots 
00184   {
00185     info() << " Start 3D shots #" << m_shotsSphere << endreq ;    
00186     // get random number generator 
00187     Rndm::Numbers flat( randSvc() , Rndm::Flat( -1.0 , 1.0 ) );
00188     // display the progress 
00189     boost::progress_display progress ( m_shotsSphere ) ;
00190     for ( int shot = 0 ; shot < m_shotsSphere ; ++shot )
00191     {
00192       Gaudi::XYZVector vect;
00193       
00194       double s = 0 ;
00195       do
00196       {
00197         vect.SetX( flat.shoot() ) ;
00198         vect.SetY( flat.shoot() ) ;
00199         s = vect.mag2()           ;
00200       }
00201       while ( s > 1.0 || s == 0.0 );
00202       
00203       vect.SetZ( -1 + 2 * s );
00204       const double a = 2. * sqrt( 1 - s ) ;
00205       
00206       vect.SetX( vect.x() * a ) ;
00207       vect.SetY( vect.y() * a ) ;
00208       
00209       ILVolume::Intersections intersections;
00210       m_volume->intersectLine ( m_vertex , vect , intersections , 0 );
00211       
00212       const double radLength = 
00213         std::accumulate
00214         (  intersections.begin()                                  ,  
00215            intersections.end  ()                                  , 
00216            0.0                                                    ,  
00217            VolumeIntersectionIntervals::AccumulateIntersections() );
00218       
00219       plot2D ( vect.phi   () / Gaudi::Units::degree , 
00220                vect.theta () / Gaudi::Units::degree , 
00221                1      , " 3D-Material Budget     for " + m_volumeName ,
00222                -180.0 , 180.0                                         , 
00223                0.0    , 180.0                                         , 
00224                50     , 50                                            , 
00225                radLength                                              ) ;
00226       
00227       plot2D ( vect.phi   () / Gaudi::Units::degree , 
00228                vect.theta () / Gaudi::Units::degree , 
00229                2      , " 3D-Material Budget (N) for " + m_volumeName ,
00230                -180.0 , 180.0                                         , 
00231                0.0    , 180.0                                         , 
00232                50     , 50                                            ) ;
00233       
00234       // show the progress
00235       ++progress ;
00236     }
00237   }
00238   
00239   // xy - shots 
00240   {
00241     info() << " Start XY shots #" << m_shotsXY  << endreq ;
00242     // get random number generator 
00243     Rndm::Numbers flat( randSvc() , Rndm::Flat( 0.0 , 1.0 ) );
00244     // display the progress 
00245     boost::progress_display progress ( m_shotsXY ) ;
00246     for ( int shot = 0 ; shot < m_shotsXY ; ++shot )
00247     {
00248       const double x = m_minx + flat.shoot() * ( m_maxx - m_minx ) ;
00249       const double y = m_miny + flat.shoot() * ( m_maxy - m_miny ) ;
00250       const double z = m_minz + flat.shoot() * ( m_maxz - m_minz ) ;
00251       Gaudi::XYZPoint  point( x , y , z ) ;
00252       Gaudi::XYZVector vect ( 0 , 0 , 1 ) ;
00253       
00254       ILVolume::Intersections intersections;
00255       m_volume->intersectLine ( point , vect , intersections , 0 );
00256       
00257       const double radLength = 
00258         std::accumulate
00259         (  intersections.begin()                                  ,  
00260            intersections.end  ()                                  , 
00261            0.0                                                    ,  
00262            VolumeIntersectionIntervals::AccumulateIntersections() );
00263   
00264       plot2D ( point.x() , point.y()                             , 
00265                3 , " XY-Material Budget     for " + m_volumeName , 
00266                m_minx    , m_maxx                                , 
00267                m_miny    , m_maxy                                , 
00268                50        , 50                                    , 
00269                radLength                                         )  ;
00270       
00271       plot2D ( point.x() , point.y()                             , 
00272                4 , " XY-Material Budget (N) for " + m_volumeName , 
00273                m_minx    , m_maxx                                , 
00274                m_miny    , m_maxy                                , 
00275                50        , 50                                    ) ;
00276       
00277       // show the progress
00278       ++progress ;
00279     }
00280   }
00281   
00282   // yz - shots 
00283   {
00284     info() << " Start YZ shots #" << m_shotsYZ << endreq ;
00285     // get random number generator 
00286     Rndm::Numbers flat( randSvc() , Rndm::Flat( 0.0 , 1.0 ) );
00287     // display the progress 
00288     boost::progress_display progress ( m_shotsYZ ) ;
00289     for ( int shot = 0 ; shot < m_shotsYZ ; ++shot )
00290     {
00291       const double x = m_minx + flat.shoot() * ( m_maxx - m_minx ) ;
00292       const double y = m_miny + flat.shoot() * ( m_maxy - m_miny ) ;
00293       const double z = m_minz + flat.shoot() * ( m_maxz - m_minz ) ;
00294       Gaudi::XYZPoint  point( x , y , z ) ;
00295       Gaudi::XYZVector vect ( 1 , 0 , 0 ) ;
00296       
00297       ILVolume::Intersections intersections;
00298       m_volume->intersectLine ( point , vect , intersections , 0 );
00299       
00300       const double radLength = 
00301         std::accumulate
00302         (  intersections.begin()                                  ,  
00303            intersections.end  ()                                  , 
00304            0.0                                                    ,  
00305            VolumeIntersectionIntervals::AccumulateIntersections() );
00306       
00307       plot2D ( point.y() , point.z()                             , 
00308                5 , " YZ-Material Budget     for " + m_volumeName , 
00309                m_miny    , m_maxy                                , 
00310                m_minz    , m_maxz                                , 
00311                50        , 50                                    , 
00312                radLength                                         )  ;
00313       
00314       plot2D ( point.y() , point.z()                             , 
00315                6 , " YZ-Material Budget (N) for " + m_volumeName , 
00316                m_miny    , m_maxy                                , 
00317                m_minz    , m_maxz                                , 
00318                50        , 50                                    ) ;
00319       
00320       
00321       // show the progress
00322       ++progress ;
00323       
00324     }
00325   }
00326   
00327   // zx - shoots 
00328   {
00329     info()  << " Start ZX shots #" << m_shotsZX << endreq ;
00330     // get random number generator 
00331     Rndm::Numbers flat( randSvc() , Rndm::Flat( 0.0 , 1.0 ) );
00332     // display the progress 
00333     boost::progress_display progress ( m_shotsZX ) ;
00334     for ( int shot = 0 ; shot < m_shotsZX ; ++shot )
00335     {
00336       
00337       const double x = m_minx + flat.shoot() * ( m_maxx - m_minx ) ;
00338       const double y = m_miny + flat.shoot() * ( m_maxy - m_miny ) ;
00339       const double z = m_minz + flat.shoot() * ( m_maxz - m_minz ) ;
00340       Gaudi::XYZPoint  point( x , y , z ) ;
00341       Gaudi::XYZVector vect ( 0 , 1 , 0 ) ;
00342       
00343       ILVolume::Intersections intersections;
00344       m_volume->intersectLine ( point , vect , intersections , 0 );
00345       
00346       const double radLength = 
00347         std::accumulate
00348         (  intersections.begin()                                  ,  
00349            intersections.end  ()                                  , 
00350            0.0                                                    ,  
00351            VolumeIntersectionIntervals::AccumulateIntersections() );
00352       
00353       plot2D ( point.y() , point.z()                             ,
00354                7 , " ZX-Material Budget     for " + m_volumeName , 
00355                m_minz    , m_maxz                                , 
00356                m_minx    , m_maxx                                , 
00357                50        , 50                                    , 
00358                radLength                                         )  ;
00359       
00360       plot2D ( point.y() , point.z()                             ,
00361                8 , " ZX-Material Budget (N) for " + m_volumeName , 
00362                m_minz    , m_maxz                                , 
00363                m_minx    , m_maxx                                , 
00364                50        , 50                                    ) ;
00365       
00366       // show the progress
00367       ++progress ;
00368       
00369     }
00370   }
00371   
00372   return StatusCode::SUCCESS;
00373 };

VolumeCheckAlg& VolumeCheckAlg::operator= ( const VolumeCheckAlg  )  [private]

assignement operator is private

AIDA::IHistogram1D * GaudiHistos< GaudiAlgorithm >::plot1D ( const double  value,
const HistoID ID,
const std::string &  title,
const double  low,
const double  high,
const unsigned long  bins = 100,
const double  weight = 1.0 
) const [inherited]

AIDA::IHistogram1D * GaudiHistos< GaudiAlgorithm >::plot ( const double  value,
const HistoID ID,
const std::string &  title,
const double  low,
const double  high,
const unsigned long  bins = 100,
const double  weight = 1.0 
) const [inherited]

AIDA::IHistogram1D * GaudiHistos< GaudiAlgorithm >::plot ( const double  value,
const HistoID ID,
const Gaudi::Histo1DDef &  hdef,
const double  weight = 1.0 
) const [inherited]

AIDA::IHistogram1D * GaudiHistos< GaudiAlgorithm >::plot ( const FUNCTION &  func,
OBJECT  first,
OBJECT  last,
const HistoID ID,
const std::string &  title,
const double  low,
const double  high,
const unsigned long  bins = 100 
) const [inherited]

AIDA::IHistogram1D * GaudiHistos< GaudiAlgorithm >::plot ( const FUNCTION &  func,
OBJECT  first,
OBJECT  last,
const HistoID ID,
const std::string &  title,
const double  low,
const double  high,
const unsigned long  bins,
const WEIGHT &  weight 
) const [inherited]

AIDA::IHistogram2D * GaudiHistos< GaudiAlgorithm >::plot2D ( const double  valueX,
const double  valueY,
const HistoID ID,
const std::string &  title,
const double  lowX,
const double  highX,
const double  lowY,
const double  highY,
const unsigned long  binsX = 50,
const unsigned long  binsY = 50,
const double  weight = 1.0 
) const [inherited]

AIDA::IHistogram3D * GaudiHistos< GaudiAlgorithm >::plot3D ( const double  valueX,
const double  valueY,
const double  valueZ,
const HistoID ID,
const std::string &  title,
const double  lowX,
const double  highX,
const double  lowY,
const double  highY,
const double  lowZ,
const double  highZ,
const unsigned long  binsX = 10,
const unsigned long  binsY = 10,
const unsigned long  binsZ = 10,
const double  weight = 1.0 
) const [inherited]

AIDA::IProfile1D * GaudiHistos< GaudiAlgorithm >::profile1D ( const double  valueX,
const double  valueY,
const HistoID ID,
const std::string &  title,
const double  lowX,
const double  highX,
const unsigned long  binsX = 100,
const std::string &  opt = "",
const double  lowY = -std::numeric_limits< double >::max(),
const double  highY = std::numeric_limits< double >::max(),
const double  weight = 1.0 
) const [inherited]

AIDA::IProfile1D * GaudiHistos< GaudiAlgorithm >::profile1D ( const HistoID ID  )  const [inherited]

AIDA::IProfile2D * GaudiHistos< GaudiAlgorithm >::profile2D ( const double  valueX,
const double  valueY,
const double  valueZ,
const HistoID ID,
const std::string &  title,
const double  lowX,
const double  highX,
const double  lowY,
const double  highY,
const unsigned long  binsX = 50,
const unsigned long  binsY = 50,
const double  weight = 1.0 
) const [inherited]

AIDA::IProfile2D * GaudiHistos< GaudiAlgorithm >::profile2D ( const HistoID ID  )  const [inherited]

AIDA::IHistogram1D * GaudiHistos< GaudiAlgorithm >::book1D ( const HistoID ID,
const std::string &  title,
const double  low = 0,
const double  high = 100,
const unsigned long  bins = 100 
) const [inherited]

AIDA::IHistogram1D * GaudiHistos< GaudiAlgorithm >::book ( const HistoID ID,
const std::string &  title,
const double  low = 0,
const double  high = 100,
const unsigned long  bins = 100 
) const [inherited]

AIDA::IHistogram1D * GaudiHistos< GaudiAlgorithm >::book ( const HistoID ID,
const Gaudi::Histo1DDef &  hdef 
) const [inherited]

AIDA::IHistogram2D * GaudiHistos< GaudiAlgorithm >::book2D ( const HistoID ID,
const std::string &  title,
const double  lowX = 0,
const double  highX = 100,
const unsigned long  binsX = 50,
const double  lowY = 0,
const double  highY = 100,
const unsigned long  binsY = 50 
) const [inherited]

AIDA::IHistogram3D * GaudiHistos< GaudiAlgorithm >::book3D ( const HistoID ID,
const std::string &  title,
const double  lowX = 0,
const double  highX = 100,
const unsigned long  binsX = 10,
const double  lowY = 0,
const double  highY = 100,
const unsigned long  binsY = 10,
const double  lowZ = 0,
const double  highZ = 100,
const unsigned long  binsZ = 10 
) const [inherited]

AIDA::IProfile1D * GaudiHistos< GaudiAlgorithm >::bookProfile1D ( const HistoID ID,
const std::string &  title,
const double  low = 0,
const double  high = 100,
const unsigned long  bins = 100,
const std::string &  opt = "",
const double  lowY = -std::numeric_limits< double >::max(),
const double  highY = std::numeric_limits< double >::max() 
) const [inherited]

AIDA::IProfile2D * GaudiHistos< GaudiAlgorithm >::bookProfile2D ( const HistoID ID,
const std::string &  title,
const double  lowX = 0,
const double  highX = 100,
const unsigned long  binsX = 50,
const double  lowY = 0,
const double  highY = 100,
const unsigned long  binsY = 50 
) const [inherited]

AIDA::IHistogram1D * GaudiHistos< GaudiAlgorithm >::histo1D ( const HistoID ID  )  const [inherited]

AIDA::IHistogram1D * GaudiHistos< GaudiAlgorithm >::histo ( const HistoID ID  )  const [inherited]

AIDA::IHistogram2D * GaudiHistos< GaudiAlgorithm >::histo2D ( const HistoID ID  )  const [inherited]

AIDA::IHistogram3D * GaudiHistos< GaudiAlgorithm >::histo3D ( const HistoID ID  )  const [inherited]

bool GaudiHistos< GaudiAlgorithm >::histoExists ( const HistoID ID  )  const [inherited]


Friends And Related Function Documentation

friend class AlgFactory< VolumeCheckAlg > [friend]

friend factory for instantiation

Definition at line 120 of file VolumeCheckAlg.h.


Member Data Documentation

std::string VolumeCheckAlg::m_volumeName [private]

Definition at line 163 of file VolumeCheckAlg.h.

const ILVolume* VolumeCheckAlg::m_volume [private]

Definition at line 165 of file VolumeCheckAlg.h.

double VolumeCheckAlg::m_minx [private]

Definition at line 168 of file VolumeCheckAlg.h.

double VolumeCheckAlg::m_maxx [private]

Definition at line 169 of file VolumeCheckAlg.h.

double VolumeCheckAlg::m_miny [private]

Definition at line 170 of file VolumeCheckAlg.h.

double VolumeCheckAlg::m_maxy [private]

Definition at line 171 of file VolumeCheckAlg.h.

double VolumeCheckAlg::m_minz [private]

Definition at line 172 of file VolumeCheckAlg.h.

double VolumeCheckAlg::m_maxz [private]

Definition at line 173 of file VolumeCheckAlg.h.

int VolumeCheckAlg::m_shotsSphere [private]

Definition at line 176 of file VolumeCheckAlg.h.

int VolumeCheckAlg::m_shotsXY [private]

Definition at line 177 of file VolumeCheckAlg.h.

int VolumeCheckAlg::m_shotsYZ [private]

Definition at line 178 of file VolumeCheckAlg.h.

int VolumeCheckAlg::m_shotsZX [private]

Definition at line 179 of file VolumeCheckAlg.h.

std::vector<double> VolumeCheckAlg::m_vrtx [private]

Definition at line 182 of file VolumeCheckAlg.h.

Gaudi::XYZPoint VolumeCheckAlg::m_vertex [private]

Definition at line 183 of file VolumeCheckAlg.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:05:14 2011 for DetDescChecks by doxygen 1.4.7