Back to home page

Project CMSSW displayed by LXR

 
 

    


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