#include "AthenaBaseComps/AthAlgorithm.h" #include "GaudiKernel/ITHistSvc.h" #include "TH1.h" #include "AthenaKernel/IAtRndmGenSvc.h" class IAtRndmGenSvc; class ISiPropertiesSvc; //////////////////////////////////////////////// class MySCTcharge:public AthAlgorithm { public: MySCTcharge(const std::string& name, ISvcLocator* pSvcLocator); ~MySCTcharge(); StatusCode initialize(); StatusCode execute(); StatusCode finalize(); double Amp_response(double time); double Amp_crosstalk(double time); StatusCode holeTransport(double x0, double y0, double* Q_m2, double* Q_m1, double* Q_00, double* Q_p1, double* Q_p2 ); StatusCode electronTransport(double x0, double y0, double* Q_m2, double* Q_m1, double* Q_00, double* Q_p1, double* Q_p2 ); bool electron( double x_e, double y_e, double &vx_e, double &vy_e, double &D_e) ; bool hole( double x_h, double y_h, double &vx_h, double &vy_h, double &D_h); double mud_e(double E) ; void init_mud_e(double T) ; double mud_h(double E) ; void init_mud_h(double T) ; void EField( double x, double y, double &Ex, double &Ey ) ; double induced (int istrip, double x, double y); void initTransport(); StatusCode initRandomEngine(); void initExEyArray(); void initPotentialValue(); private: //!< Random number service ServiceHandle m_rndmSvc; //!< Random number service //ServiceHandle getRndmSvc() const { return m_rndmSvc; } std::string m_rndmEngineName; //!< Name of random engine, CLHEP::HepRandomEngine *m_rndmEngine; //!< Random number generation engine // ServiceHandle m_siPropertiesSvc; StatusCode m_sc; //!< Help variable to take care of returned status codes //------parameters given exterbnally by jobOptions ------------------ int m_model; bool m_isSCTDigiModel; double m_VD; double m_VB; double m_B; double m_T; double m_transportTimeStep; double m_transportTimeMax; double m_x0; double m_y0; int m_coutLevel; int m_eventNumber; //------parameters mostly fixed but can be changed exterbnally ------------ double m_bulk_depth; double m_strip_pitch; double m_depletion_depth; double m_y_origin_min; //-------- parameters for e, h transport -------------------------------- double m_kB ; double m_e ; double m_vs_e; double m_Ec_e ; double m_vs_h; double m_Ec_h ; double m_diffusion; double m_beta_e ; double m_beta_h ; double m_theta; double m_driftMobility; double m_tanLA; //---------- arrays of FEM analysis ----------------------------------- double m_PotentialValue[81][115]; double m_ExValue150[17][115]; double m_EyValue150[17][115]; //-------histogramme ---------------------------------- };