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

In This Package:

MaterialBudgetAlg Class Reference

Simple algorithm, which perform the evaluation of the material budget using Transport Service ("LHCb's GEANE"). More...

#include <MaterialBudgetAlg.h>

Inheritance diagram for MaterialBudgetAlg:

[legend]
Collaboration diagram for MaterialBudgetAlg:
[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 initialization of the algorithm
virtual StatusCode execute ()
 standard execution of the 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

 MaterialBudgetAlg (const std::string &name, ISvcLocator *svc)
 Standard constructor.
virtual ~MaterialBudgetAlg ()
 destructor (virtual and protected)
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

StatusCode makeRandomShots ()
 make random shoots
StatusCode makeGridShots ()
 make grid shots
StatusCode makePsrapShots ()
 make psrap shots
 MaterialBudgetAlg ()
 default constructor is private
 MaterialBudgetAlg (const MaterialBudgetAlg &)
 copy constructor is private
MaterialBudgetAlgoperator= (const MaterialBudgetAlg &)
 assignement operator is private

Private Attributes

std::string m_trSvcName
ITransportSvcm_trSvc
std::vector< double > m_vrtx
Gaudi::XYZPoint m_vertex
int m_shots
double m_z
double m_xMax
double m_yMax
double m_xMin
double m_yMin
double m_etaMax
double m_phiMax
double m_etaMin
double m_phiMin
int m_nbx
int m_nby
int m_grid
int m_psrap
double m_xbinref
double m_ybinref
double m_zref

Friends

class AlgFactory< MaterialBudgetAlg >
 friend factory for instantiation

Detailed Description

Simple algorithm, which perform the evaluation of the material budget using Transport Service ("LHCb's GEANE").

The algorithm produces 2 2-dimentional plots with the evaluationfo the material budget ( in units of radiation length) between origin vertex and x-y point at the reference plane. The plot need to be normalized properly. Normalization is given by histogram number 2. The proper normalization is achieved e.g in PAW

  PAW> hi/oper/div 1 2 10
  PAW> hi/plot     10     lego1 

The full list of algorithm properties and their default values:

Author:
Vanya BELYAEV Ivan.Belyaev@itep.ru
Date:
23/04/2002
added by W. Pokorski:

Definition at line 68 of file MaterialBudgetAlg.h.


Constructor & Destructor Documentation

MaterialBudgetAlg::MaterialBudgetAlg ( const std::string &  name,
ISvcLocator svc 
) [protected]

Standard constructor.

Parameters:
name name of the algorithm
svc service locator

Definition at line 56 of file MaterialBudgetAlg.cpp.

00058   : GaudiHistoAlg   ( name , svc     ) 
00059   , m_trSvcName     ( "TransportSvc" )
00060   , m_trSvc         ( 0              )  
00061   , m_vrtx          ( 3 , 0.0        )
00062   , m_vertex        (                )
00063   , m_shots         ( 1000           )
00064   , m_z             ( 12 * Gaudi::Units::meter     )
00065   , m_xMax          (  4 * Gaudi::Units::meter     )
00066   , m_yMax          (  3 * Gaudi::Units::meter     )
00067   , m_xMin          (  0 * Gaudi::Units::meter     )
00068   , m_yMin          (  0 * Gaudi::Units::meter     )
00069   , m_etaMax        (  5.5           )
00070   , m_phiMax        (  270.          )
00071   , m_etaMin        (  2.0           )
00072   , m_phiMin        (  90.           )
00073   , m_nbx           ( 360            )
00074   , m_nby           ( 300            )
00075   , m_grid          (  0             )
00076   , m_psrap         (  0             )
00077   , m_xbinref       ( 20.0           )
00078   , m_ybinref       ( 20.0           )
00079   , m_zref          ( 10000.0        )
00080 {  
00081   declareProperty( "TransportService" , m_trSvcName   ) ;
00082   declareProperty( "ShootingPoint"    , m_vrtx        ) ;
00083   declareProperty( "Shots"            , m_shots       ) ;
00084   declareProperty( "zPlane"           , m_z           ) ;
00085   declareProperty( "xMax"             , m_xMax        ) ;
00086   declareProperty( "xMin"             , m_xMin        ) ;
00087   declareProperty( "yMax"             , m_yMax        ) ;
00088   declareProperty( "yMin"             , m_yMin        ) ;
00089   declareProperty( "etaMax"           , m_etaMax      ) ;
00090   declareProperty( "etaMin"           , m_etaMin      ) ;
00091   declareProperty( "phiMax"           , m_phiMax      ) ;
00092   declareProperty( "phiMin"           , m_phiMin      ) ;
00093   declareProperty( "nBx"              , m_nbx         ) ;
00094   declareProperty( "nBy"              , m_nby         ) ;
00095   declareProperty( "Grid"             , m_grid        ) ;
00096   declareProperty( "Rapidity"         , m_psrap       ) ;
00097   declareProperty( "xbinref"          , m_xbinref     ) ;
00098   declareProperty( "ybinref"          , m_ybinref     ) ;
00099   declareProperty( "zref"             , m_zref        ) ;
00100 };

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

destructor (virtual and protected)

Definition at line 106 of file MaterialBudgetAlg.cpp.

00106 {}; 

MaterialBudgetAlg::MaterialBudgetAlg (  )  [private]

default constructor is private

MaterialBudgetAlg::MaterialBudgetAlg ( const MaterialBudgetAlg  )  [private]

copy constructor is private


Member Function Documentation

StatusCode MaterialBudgetAlg::initialize (  )  [virtual]

standard initialization of the algorithm

See also:
Algorithm

IAlgorithm

Returns:
status code

Reimplemented from GaudiHistoAlg.

Definition at line 116 of file MaterialBudgetAlg.cpp.

00117 {
00118   StatusCode sc = GaudiHistoAlg::initialize() ;
00119   if ( sc.isFailure() ) { return sc ; }
00120   
00121   m_trSvc   = svc<ITransportSvc> ( m_trSvcName   , true ) ;
00122   
00123   Assert ( 0 != randSvc() , "IRndmGenSvc* poitns to NULL!" );
00124   
00125   // activate the vertex
00126   if ( m_vrtx.size() <= 3 )
00127   { while( 3 != m_vrtx.size() ) { m_vrtx.push_back( 0.0 ); } }
00128   else 
00129   { warning() << " Ignore extra fields in 'ShootingPoint' "<< endreq ; }
00130   m_vertex.SetXYZ( m_vrtx[0], m_vrtx[1], m_vrtx[2] ) ;
00131   
00132   // transform parameters 
00133   if ( m_xMin >  m_xMax ) {  std::swap( m_xMin , m_xMax )  ; }
00134   if ( m_yMin >  m_yMax ) {  std::swap( m_yMin , m_yMax )  ; }
00135   // adjust number of bins 
00136   if ( 0      >= m_nbx  ) {  m_nbx = 50                    ; }
00137   if ( 0      >= m_nby  ) {  m_nby = 50                    ; }
00138   
00139   if ( m_grid != 0 && m_psrap != 0 ) 
00140   {
00141     return Error(" Asked for X-Y and Eta-Phi scans ");
00142   }
00143   
00144   // for grid we calculate x/yMin/Max from the size and number of bins 
00145   if ( m_grid )
00146   {
00147     m_xMin=-(m_xbinref*m_nbx*m_z)/(2.0*m_zref);
00148     m_yMin=-(m_ybinref*m_nby*m_z)/(2.0*m_zref);
00149     m_xMax=-m_xMin;
00150     m_yMax=-m_yMin;
00151   }
00152   
00153   if ( m_psrap)
00154   {
00155     m_xMin=m_etaMin;
00156     m_yMin=m_phiMin;
00157     m_xMax=m_etaMax;
00158     m_yMax=m_phiMax;
00159   }
00160   
00161   return StatusCode::SUCCESS;
00162 };

StatusCode MaterialBudgetAlg::execute (  )  [virtual]

standard execution of the algorithm

See also:
Algorithm

IAlgorithm

Returns:
status code

Reimplemented from GaudiHistoAlg.

Definition at line 172 of file MaterialBudgetAlg.cpp.

00173 {
00174   
00175   if      ( m_grid  ) { return makeGridShots  () ; }
00176   else if ( m_psrap ) { return makePsrapShots () ; }
00177   
00178   return makeRandomShots() ;
00179 };

StatusCode MaterialBudgetAlg::makeRandomShots (  )  [private]

make random shoots

Definition at line 185 of file MaterialBudgetAlg.cpp.

00186 {
00187   
00188   // get random number generator 
00189   Rndm::Numbers x ( randSvc() , Rndm::Flat( m_xMin , m_xMax ) );
00190   Rndm::Numbers y ( randSvc() , Rndm::Flat( m_yMin , m_yMax ) );
00191   
00192   // make 'shots'
00193   boost::progress_display progress ( m_shots ) ;
00194   for ( int shot = 0 ; shot < m_shots ; ++shot , ++progress ) 
00195   {
00196     // point at reference plane  
00197     const Gaudi::XYZPoint point( x() , y() , m_z );      
00198     // evaluate the distance 
00199     const double dist = 
00200       m_trSvc -> distanceInRadUnits ( m_vertex , point );
00201     
00202     // fill material budget histogram 
00203     plot2D ( point.x()   , point.y()              , 
00204              1           , "Material Budget"      , 
00205              m_xMin      , m_xMax                 , 
00206              m_yMin      , m_yMax                 , 
00207              m_nbx       , m_nby                  , 
00208              dist                                 ) ; // weight 
00209     // fill the normalization histogram  
00210     plot2D ( point.x()   , point.y()              , 
00211              2           , "Budget Normalization" , 
00212              m_xMin      , m_xMax                 , 
00213              m_yMin      , m_yMax                 , 
00214              m_nbx       , m_nby                  ) ;
00215     
00216   }
00217   
00218   return StatusCode::SUCCESS ;
00219 };

StatusCode MaterialBudgetAlg::makeGridShots (  )  [private]

make grid shots

make a progress bar

Definition at line 225 of file MaterialBudgetAlg.cpp.

00226 {
00227   if ( !m_grid ) { return StatusCode::FAILURE ; }
00228   
00229   // put in a transformation to go from XY to Eta-Phi.
00230   const double dxgrid = m_xbinref * m_z / m_zref;
00231   const double dygrid = m_ybinref * m_z / m_zref;
00232   
00233   // xx and yy refer to the two non-Z dimensions, be them cartesian or 
00234   // whatever. x and y are cartesian.
00235   
00237   boost::progress_display progress( m_nbx * m_nby ) ;
00238   
00239   for ( double y = m_yMin + dygrid/2 ; y <= m_yMax ; y += dygrid ) 
00240   {
00241     for ( double x = m_yMin + dxgrid/2 ; x <= m_xMax ; x += dxgrid )
00242     {
00243       // "shooting" point at the reference plane
00244       const Gaudi::XYZPoint point ( x, y, m_z);       
00245       
00246       // evaluate the distance 
00247       const double dist = 
00248         m_trSvc -> distanceInRadUnits ( m_vertex , point );
00249       
00250       // fill material budget histogram 
00251       plot2D ( point.x()   , point.y()              , 
00252                1           , "Material Budget"      , 
00253                m_xMin      , m_xMax                 , 
00254                m_yMin      , m_yMax                 , 
00255                m_nbx       , m_nby                  , 
00256                dist                                 ) ; // weight 
00257       // fill the "normalization" histogram  (must be flat)
00258       plot2D ( point.x()   , point.y()              , 
00259                2           , "Budget Normalization" , 
00260                m_xMin      , m_xMax                 , 
00261                m_yMin      , m_yMax                 , 
00262                m_nbx       , m_nby                  ) ;
00263       
00264       // show the progress 
00265       ++progress ;
00266     }
00267   }
00268   
00269   return StatusCode::SUCCESS ;
00270 } ;

StatusCode MaterialBudgetAlg::makePsrapShots (  )  [private]

make psrap shots

make a pregress bar

Definition at line 277 of file MaterialBudgetAlg.cpp.

00278 {
00279   if ( !m_psrap ) { return StatusCode::FAILURE ; }
00280   
00281   // put in a transformation to go from XY to Eta-Phi.
00282   const double dxgrid = (m_xMax-m_xMin)/m_nbx;
00283   const double dygrid = (m_yMax-m_yMin)/m_nby;
00284   
00286   boost::progress_display progress ( m_nbx * m_nby ) ;  
00287   for ( double yy = m_yMin + dygrid/2 ; yy <= m_yMax ; yy += dygrid ) 
00288   {
00289     for ( double xx = m_yMin + dxgrid/2 ; xx <= m_xMax ; xx += dxgrid )
00290     {
00291       const double theta = 2.0*atan(exp(-1.0*xx));
00292       const double phi = yy*Gaudi::Units::degree;
00293       // make sure theta in not 90 or 270!!!!
00294       const double x = sin(theta)*cos(phi)*m_z/cos(theta);
00295       const double y = sin(theta)*sin(phi)*m_z/cos(theta);
00296       
00297       // "shooting" point at the reference plane
00298       const Gaudi::XYZPoint point( x, y, m_z);       
00299       
00300       // evaluate the distance 
00301       const double dist = 
00302         m_trSvc -> distanceInRadUnits( m_vertex , point );
00303       
00304       // fill material budget histogram 
00305       plot2D ( xx          , yy                      , 
00306                1           , "Material Budget"       , 
00307                m_xMin      , m_xMax                  , 
00308                m_yMin      , m_yMax                  , 
00309                m_nbx       , m_nby                   , 
00310                dist                                  ) ; // weight 
00311       // fill the "helper" histogram 
00312       plot2D ( x           , y                       , 
00313                2           , "Material Budget Check" , 
00314                -600        , 600                     , 
00315                -600        , 600                     , 
00316                m_nbx       , m_nby                   ) ;
00317       
00318       // show the progress 
00319       ++progress ;
00320     }
00321   }
00322   
00323   return StatusCode::SUCCESS ;
00324 } ;

MaterialBudgetAlg* MaterialBudgetAlg::operator= ( const MaterialBudgetAlg  )  [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< MaterialBudgetAlg > [friend]

friend factory for instantiation

Definition at line 71 of file MaterialBudgetAlg.h.


Member Data Documentation

std::string MaterialBudgetAlg::m_trSvcName [private]

Definition at line 124 of file MaterialBudgetAlg.h.

ITransportSvc* MaterialBudgetAlg::m_trSvc [private]

Definition at line 125 of file MaterialBudgetAlg.h.

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

Definition at line 127 of file MaterialBudgetAlg.h.

Gaudi::XYZPoint MaterialBudgetAlg::m_vertex [private]

Definition at line 128 of file MaterialBudgetAlg.h.

int MaterialBudgetAlg::m_shots [private]

Definition at line 130 of file MaterialBudgetAlg.h.

double MaterialBudgetAlg::m_z [private]

Definition at line 132 of file MaterialBudgetAlg.h.

double MaterialBudgetAlg::m_xMax [private]

Definition at line 134 of file MaterialBudgetAlg.h.

double MaterialBudgetAlg::m_yMax [private]

Definition at line 135 of file MaterialBudgetAlg.h.

double MaterialBudgetAlg::m_xMin [private]

Definition at line 136 of file MaterialBudgetAlg.h.

double MaterialBudgetAlg::m_yMin [private]

Definition at line 137 of file MaterialBudgetAlg.h.

double MaterialBudgetAlg::m_etaMax [private]

Definition at line 138 of file MaterialBudgetAlg.h.

double MaterialBudgetAlg::m_phiMax [private]

Definition at line 139 of file MaterialBudgetAlg.h.

double MaterialBudgetAlg::m_etaMin [private]

Definition at line 140 of file MaterialBudgetAlg.h.

double MaterialBudgetAlg::m_phiMin [private]

Definition at line 141 of file MaterialBudgetAlg.h.

int MaterialBudgetAlg::m_nbx [private]

Definition at line 142 of file MaterialBudgetAlg.h.

int MaterialBudgetAlg::m_nby [private]

Definition at line 143 of file MaterialBudgetAlg.h.

int MaterialBudgetAlg::m_grid [private]

Definition at line 147 of file MaterialBudgetAlg.h.

int MaterialBudgetAlg::m_psrap [private]

Definition at line 150 of file MaterialBudgetAlg.h.

double MaterialBudgetAlg::m_xbinref [private]

Definition at line 151 of file MaterialBudgetAlg.h.

double MaterialBudgetAlg::m_ybinref [private]

Definition at line 152 of file MaterialBudgetAlg.h.

double MaterialBudgetAlg::m_zref [private]

Definition at line 153 of file MaterialBudgetAlg.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