source: JEM-EUSO/esaf_cc_at_lal/packages/simulation/detector/G4Detector/optics/include/OpEUSODiffraction.hh @ 114

Last change on this file since 114 was 114, checked in by moretto, 11 years ago

actual version of ESAF at CCin2p3

File size: 1.6 KB
Line 
1#ifndef OpEUSODiffraction_h
2#define OpEUSODiffraction_h 1
3
4#include <globals.hh>
5#include <templates.hh>
6#include <geomdefs.hh>
7#include <G4VDiscreteProcess.hh>
8
9#include "EsafMsgSource.hh"
10#include "EsafConfigurable.hh"
11#include "VirtualTelParm.hh"
12enum OpEUSODiffractionStatus { EUSODiffraction, edNotAtBoundary, edSameMaterial, edStepTooSmall, edNoINDEX };
13
14class G4Step;
15class G4Material;
16class TGraph;
17class OpEUSODiffraction : public G4VDiscreteProcess, public VirtualTelParm, public EsafMsgSource, public EsafConfigurable
18{
19public:
20    OpEUSODiffraction(const G4String& processName = "OpESAFDiffraction",
21                            G4ProcessType type = fOptical);
22    ~OpEUSODiffraction();
23
24public:
25    G4bool IsApplicable(const G4ParticleDefinition& aParticleType);
26
27        G4double GetMeanFreePath(const G4Track&, G4double, G4ForceCondition* condition);
28    G4VParticleChange* PostStepDoIt(const G4Track& aTrack, const G4Step&  aStep);
29    OpEUSODiffractionStatus GetStatus() { return theStatus; }
30
31private:
32    G4Material* Material1;
33    double      Rindex1;
34    double      Rindex2;
35    TGraph*     theDindex;
36    double      Dindex1;
37    double      theMaximumPerp;
38
39    double      theLambda0;       // in nm
40
41    G4Material* Material2;
42    G4double thePhotonMomentum;
43    G4ThreeVector OldMomentum;
44    G4ThreeVector OldPolarization;
45    G4ThreeVector NewMomentum;
46    G4ThreeVector NewPolarization;
47
48    G4ThreeVector theGlobalNormal;
49
50    OpEUSODiffractionStatus theStatus;
51
52    double kCarTolerance;
53    EsafConfigClass(G4,G4EusoGeometryShape)
54};
55
56#endif /* OpEUSODiffraction_h */
Note: See TracBrowser for help on using the repository browser.