File indexing completed on 2024-06-04 04:35:19
0001 #ifndef CMSSQLoopProcessDiscr_h
0002 #define CMSSQLoopProcessDiscr_h 1
0003
0004 #include "G4VDiscreteProcess.hh"
0005 #include "globals.hh"
0006 #include "G4Track.hh"
0007 #include "G4ParticleChange.hh"
0008 #include "G4ParticleChangeForTransport.hh"
0009 #include "CMSSQ.h"
0010 #include "CMSAntiSQ.h"
0011
0012 class G4Step;
0013 class G4ParticleDefinition;
0014
0015 class CMSSQLoopProcessDiscr : public G4VDiscreteProcess {
0016 public:
0017 CMSSQLoopProcessDiscr(double mass, const G4String& name = "SQLooper", G4ProcessType type = fUserDefined);
0018 virtual ~CMSSQLoopProcessDiscr();
0019
0020 public:
0021 virtual G4VParticleChange* PostStepDoIt(const G4Track&, const G4Step&);
0022 virtual G4double PostStepGetPhysicalInteractionLength(const G4Track& track,
0023 G4double previousStepSize,
0024 G4ForceCondition* condition);
0025 virtual G4double GetMeanFreePath(const G4Track&, G4double, G4ForceCondition*);
0026 void SetTimeLimit(G4double);
0027 virtual void StartTracking(G4Track* aTrack);
0028
0029 private:
0030 CMSSQLoopProcessDiscr(CMSSQLoopProcessDiscr&);
0031 CMSSQLoopProcessDiscr& operator=(const CMSSQLoopProcessDiscr& right);
0032
0033 protected:
0034 G4ParticleChange* fParticleChange;
0035 double GenMass;
0036
0037 private:
0038 G4ThreeVector posini;
0039 G4double globaltimeini;
0040 };
0041
0042 #endif