/home/docs/checkouts/readthedocs.org/user_builds/ratpac/checkouts/latest/src/ds/include/RAT/DS/NestedTubeInfo.hh Source File

Ratpac-two: /home/docs/checkouts/readthedocs.org/user_builds/ratpac/checkouts/latest/src/ds/include/RAT/DS/NestedTubeInfo.hh Source File
Ratpac-two
NestedTubeInfo.hh
1 
8 #ifndef __RAT_DS_NestedTubeInfo__
9 #define __RAT_DS_NestedTubeInfo__
10 
11 #include <TObject.h>
12 
13 #include <G4ThreeVector.hh>
14 #include <algorithm>
15 
16 namespace RAT {
17 namespace DS {
18 
19 class NestedTubeInfo : public TObject {
20  public:
21  NestedTubeInfo() : TObject() {}
22  virtual ~NestedTubeInfo() {}
23 
24  virtual void AddNestedTube(const G4ThreeVector& _pos, const G4ThreeVector& _dir, const double _length,
25  const double _core_r, const double _inner_r, const double _outer_r,
26  const std::string _core_material, const std::string _inner_material,
27  const std::string _outer_material) {
28  pos.push_back(_pos);
29  dir.push_back(_dir);
30  length.push_back(_length);
31  core_r.push_back(_core_r);
32  inner_r.push_back(_inner_r);
33  outer_r.push_back(_outer_r);
34  core_material.push_back(_core_material);
35  inner_material.push_back(_inner_material);
36  outer_material.push_back(_outer_material);
37  }
38 
39  virtual void AddNestedTube(const G4ThreeVector& _pos, const G4ThreeVector& _dir, const int _length) {
40  AddNestedTube(_pos, _dir, _length, 0.47, 0.485, 0.5, "", "", "");
41  }
42 
43  virtual Int_t GetNestedTubeCount() const { return pos.size(); }
44 
45  virtual G4ThreeVector GetPosition(int id) const { return pos.at(id); }
46  virtual void SetPosition(int id, const G4ThreeVector& _pos) { pos.at(id) = _pos; }
47 
48  virtual G4ThreeVector GetDirection(int id) const { return dir.at(id); }
49  virtual void SetDirection(int id, const G4ThreeVector& _dir) { dir.at(id) = _dir; }
50 
51  virtual int GetLength(int id) const { return length.at(id); }
52  virtual void SetLength(int id, int _length) { length.at(id) = _length; }
53 
54  virtual double GetCoreR(int id) const { return core_r.at(id); }
55  virtual void SetCoreR(int id, double _core_r) { core_r.at(id) = _core_r; }
56 
57  virtual double GetInnerR(int id) const { return inner_r.at(id); }
58  virtual void SetInnerR(int id, double _inner_r) { inner_r.at(id) = _inner_r; }
59 
60  virtual double GetOuterR(int id) const { return outer_r.at(id); }
61  virtual void SetOuterR(int id, double _outer_r) { outer_r.at(id) = _outer_r; }
62 
63  virtual std::string GetCoreMaterial(int id) const { return core_material.at(id); }
64  virtual void SetCoreMaterial(int id, double _core_material) { core_material.at(id) = _core_material; }
65 
66  virtual std::string GetInnerMaterial(int id) const { return inner_material.at(id); }
67  virtual void SetInnerMaterial(int id, double _inner_material) { inner_material.at(id) = _inner_material; }
68 
69  virtual std::string GetOuterMaterial(int id) const { return outer_material.at(id); }
70  virtual void SetOuterMaterial(int id, double _outer_material) { outer_material.at(id) = _outer_material; }
71 
72  ClassDef(NestedTubeInfo, 2);
73 
74  protected:
75  std::vector<G4ThreeVector> pos;
76  std::vector<G4ThreeVector> dir;
77  std::vector<double> length;
78  std::vector<double> core_r;
79  std::vector<double> inner_r;
80  std::vector<double> outer_r;
81  std::vector<std::string> core_material;
82  std::vector<std::string> inner_material;
83  std::vector<std::string> outer_material;
84 };
85 
86 } // namespace DS
87 } // namespace RAT
88 
89 #endif
Definition: NestedTubeInfo.hh:19
Definition: CCCrossSecMessenger.hh:29