00001 // $Id: MaterialBudgetAlg.h,v 1.10 2006/12/15 16:49:13 cattanem Exp $ 00002 // ============================================================================ 00003 #ifndef DETDESCCHECKS_MaterialBudgetALG_H 00004 #define DETDESCCHECKS_MaterialBudgetALG_H 1 00005 // Include files 00006 // from STL 00007 #include <string> 00008 // Math Definitions 00009 #include "GaudiKernel/Point3DTypes.h" 00010 // GaudiAlg 00011 #include "GaudiAlg/GaudiHistoAlg.h" 00012 00068 class MaterialBudgetAlg : public GaudiHistoAlg 00069 { 00071 friend class AlgFactory<MaterialBudgetAlg>; 00072 public: 00073 00079 virtual StatusCode initialize () ; 00080 00086 virtual StatusCode execute () ; 00087 00088 protected: 00089 00094 MaterialBudgetAlg 00095 ( const std::string& name , 00096 ISvcLocator* svc ) ; 00097 00099 virtual ~MaterialBudgetAlg() ; 00100 00101 private: 00102 00104 StatusCode makeRandomShots () ; 00106 StatusCode makeGridShots () ; 00108 StatusCode makePsrapShots () ; 00109 00110 private: 00111 00113 MaterialBudgetAlg() ; 00115 MaterialBudgetAlg 00116 ( const MaterialBudgetAlg& ); 00118 MaterialBudgetAlg* operator= 00119 ( const MaterialBudgetAlg& ); 00120 00121 private: 00122 00123 // transport service 00124 std::string m_trSvcName ; 00125 ITransportSvc* m_trSvc ; 00126 // point of shooting 00127 std::vector<double> m_vrtx ; 00128 Gaudi::XYZPoint m_vertex ; 00129 // number of shots per event 00130 int m_shots ; 00131 // z-position of reference plane 00132 double m_z ; 00133 // x- and y- size of shooting area (parameters of 2d-histograms) 00134 double m_xMax ; 00135 double m_yMax ; 00136 double m_xMin ; 00137 double m_yMin ; 00138 double m_etaMax ; 00139 double m_phiMax ; 00140 double m_etaMin ; 00141 double m_phiMin ; 00142 int m_nbx ; 00143 int m_nby ; 00144 // parameters for "grid shooting" (if grid=1) (added by W. Pokorski) 00145 // variables ending with "ref" correspond to some reference grid. 00146 // the actuall grid will be scaled according to m_z/m_zref 00147 int m_grid ; 00148 // parameter to switch between cartesian (0) and pseudorapidity (1) 00149 // flat scans. 00150 int m_psrap ; 00151 double m_xbinref ; 00152 double m_ybinref ; 00153 double m_zref ; 00154 00155 }; 00156 // ============================================================================ 00157 00158 // ============================================================================ 00159 // The End 00160 // ============================================================================ 00161 #endif // DETDESC_MaterialBudgetALG_H 00162 // ============================================================================