/home/docs/checkouts/readthedocs.org/user_builds/ratpac/checkouts/latest/src/util/include/RAT/GroupVelocityCalculator.hh Source File

Ratpac-two: /home/docs/checkouts/readthedocs.org/user_builds/ratpac/checkouts/latest/src/util/include/RAT/GroupVelocityCalculator.hh Source File
Ratpac-two
GroupVelocityCalculator.hh
1 #ifndef __RAT_GROUPVELOCITYCALCULATOR_HH__
2 #define __RAT_GROUPVELOCITYCALCULATOR_HH__
3 
4 #include <G4Material.hh>
5 #include <G4ThreeVector.hh>
6 namespace RAT {
7 
9  public:
10  enum class Status_t { kNormal, kSkip, kStop };
11  struct Result {
12  double velocity;
13  Status_t status;
14  };
15  virtual ~GroupVelocityCalculator() = default;
16  virtual Result ComputeVelocity(const G4Material* material, G4double wavelength_nm, const G4ThreeVector& startPos,
17  const G4ThreeVector& endPos) const = 0;
18  virtual void SetDefaultRindex(G4double) {}
19 };
20 
22  public:
24 
25  Result ComputeVelocity(const G4Material* material, G4double wavelength_nm, const G4ThreeVector& startPos,
26  const G4ThreeVector& endPos) const override;
27 
28  void SetDefaultRindex(G4double n) override { fDefaultRindex = n; }
29 
30  private:
31  G4double fDefaultRindex = 1.0;
32 };
33 
34 } // namespace RAT
35 
36 #endif
Definition: GroupVelocityCalculator.hh:8
Definition: GroupVelocityCalculator.hh:21
Definition: CCCrossSecMessenger.hh:29
Definition: GroupVelocityCalculator.hh:11