Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-07-09 05:00:33

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   ~CMSSQLoopProcessDiscr() override;
0019 
0020 public:
0021   G4VParticleChange* PostStepDoIt(const G4Track&, const G4Step&) override;
0022   G4double PostStepGetPhysicalInteractionLength(const G4Track& track,
0023                                                 G4double previousStepSize,
0024                                                 G4ForceCondition* condition) override;
0025   G4double GetMeanFreePath(const G4Track&, G4double, G4ForceCondition*) override;
0026   void SetTimeLimit(G4double);
0027   void StartTracking(G4Track* aTrack) override;
0028 
0029   CMSSQLoopProcessDiscr(CMSSQLoopProcessDiscr&) = delete;
0030   CMSSQLoopProcessDiscr& operator=(const CMSSQLoopProcessDiscr& right) = delete;
0031 
0032 protected:
0033   G4ParticleChange* fParticleChange;
0034   double GenMass;
0035 
0036 private:
0037   G4ThreeVector posini;
0038   G4double globaltimeini;
0039 };
0040 
0041 #endif