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

Ratpac-two: /home/docs/checkouts/readthedocs.org/user_builds/ratpac/checkouts/latest/src/gen/include/RAT/Gen_LED.hh Source File
Ratpac-two
Gen_LED.hh
1 #ifndef __RAT_Gen_LED__
2 #define __RAT_Gen_LED__
3 
4 #include <CLHEP/Random/RandGeneral.h>
5 
6 #include <vector>
7 
8 #include "GLG4Gen.hh"
9 
10 class G4ParticleDefinition;
11 
12 namespace RAT {
13 
14 class Gen_LED : public GLG4Gen {
15  public:
16  Gen_LED();
17  virtual ~Gen_LED();
18  virtual void GenerateEvent(G4Event *event);
19  virtual void ResetTime(double offset = 0.0);
20  virtual bool IsRepeatable() const { return true; };
21 
22  virtual void SetState(G4String state);
23  virtual G4String GetState() const;
24 
25  void SetLEDParameters(G4String state);
26 
27  virtual void SetTimeState(G4String state);
28  virtual G4String GetTimeState() const;
29  virtual void SetVertexState(G4String state);
30  virtual G4String GetVertexState() const;
31  virtual void SetPosState(G4String state);
32  virtual G4String GetPosState() const;
33 
34  protected:
35  G4String stateStr;
36  GLG4TimeGen *timeGen;
37 
38  std::vector<double> led_x, led_y, led_z, led_wavelength;
39  std::vector<double> led_u, led_v, led_w;
40  bool fire_at_target;
41  std::vector<double> target_x, target_y, target_z;
42  std::vector<int> photons_per_LED;
43  bool iso_mode;
44  bool ang_dist_mode;
45  bool multi_ang_dist_mode;
46  bool mono_wl_mode;
47  bool unif_mode;
48  int selectedLED;
49 
50  CLHEP::RandGeneral *rand_angle, *rand_wl, *rand_time;
51  double angle_min, angle_max, wl_min, wl_max, time_min, time_max;
52  std::vector<CLHEP::RandGeneral *> rand_angles;
53  std::vector<double> angle_mins, angle_maxs;
54 
55  int photons_per_event;
56  int next_led;
57  G4ParticleDefinition *photonDef;
58 };
59 
60 } // namespace RAT
61 
62 #endif
Definition: GLG4Gen.hh:14
Definition: GLG4TimeGen.hh:6
Definition: Gen_LED.hh:14
Definition: CCCrossSecMessenger.hh:29