File indexing completed on 2025-07-13 08:53:44
0001
0002 #ifndef _CHERENKOV_STEPPING_ACTION_
0003 #define _CHERENKOV_STEPPING_ACTION_
0004
0005 #include "G4UserSteppingAction.hh"
0006
0007 class CherenkovEvent;
0008 class CherenkovDetectorCollection;
0009 class G4Track;
0010 class TransientParticle;
0011 class CherenkovRadiator;
0012 class CherenkovPhotonDetector;
0013
0014 #include <TransientTrackInformation.h>
0015
0016 class CherenkovSteppingAction : public G4UserSteppingAction
0017 {
0018 public:
0019 CherenkovSteppingAction(CherenkovDetectorCollection *geometry, CherenkovEvent *event);
0020 virtual ~CherenkovSteppingAction() {};
0021
0022
0023 virtual void UserSteppingAction(const G4Step*);
0024
0025 TransientTrackInformation *AttachUserInfo(G4Track* track, TransientParticle *myself,
0026 TransientParticle *parent);
0027
0028 void DisableSecondaries( void ) { m_SeconadriesDisabled = true; };
0029
0030 private:
0031 CherenkovEvent *m_EventPtr;
0032 CherenkovDetectorCollection *m_Geometry;
0033
0034 bool m_SeconadriesDisabled;
0035
0036 double GetQE(const CherenkovPhotonDetector *pd, double eph);
0037 double GetAttenuationLength(const CherenkovRadiator *radiator, double eph);
0038 double GetRefractiveIndex(const CherenkovRadiator *radiator, double eph);
0039 };
0040
0041 #endif