KaliVeda
Toolkit for HIC analysis
KVFAZIABlock.h
1 
4 #ifndef __KVFAZIABLOCK_H
5 #define __KVFAZIABLOCK_H
6 
7 #include "TGeoVolume.h"
8 #include <TVector3.h>
9 #include "KVConfig.h"
10 
18 
19  double fTotSidWBld;
20  double frame_side;
22  double side_thick;
24  double si_centre;
31  double full_width;
32  double dist_si2_csi;
33  double csi_depth;
35  double thick_si1;
36  double thick_si2;
38  double sarco_length;
39  double sarco_width;
40  double sarco_height;
42  double sarco_uplift;
43 
44  TGeoVolume* MakeRightCrossPieceCSI(double front_side, double separation, double distPlane, double depth);
45  TGeoVolume* MakeLeftCrossPieceCSI(double front_side, double separation, double distPlane, double depth);
46  TGeoVolume* MakeCrossPieceCSI(double front_side, double separation, double distPlane, double depth);
47  std::vector<double> GetCoordsCSI(int tel_num, double front_side, double separation, double distPlane, double depth);
48  TGeoVolume* MakeErgalFrame(double frame_depth, double ergal_edge_depth);
51  struct Projector {
52  double rap, depth;
53  Projector(double D, double d) : rap((D + d) / D), depth(d) {}
54 
56  {
57 #ifdef WITH_CPP11
58  return {rap * v.X(), rap * v.Y(), v.Z() + depth};
59 #else
60  return TVector3(rap * v.X(), rap * v.Y(), v.Z() + depth);
61 #endif
62  }
63  };
64 
65 public:
66  KVFAZIABlock();
67  virtual ~KVFAZIABlock() {}
68 
70  {
72  return fTotSidWBld;
73  }
74  Double_t GetNominalDistanceTargetBlockCentre(double dist_SI1 = 100.) const
75  {
87 
88  return dist_SI1 + 0.5 * full_length_quartet - (front_frame_depth + frame_edge_depth);
89  }
91  {
93  return front_frame_depth;
94  }
95 
96  ClassDef(KVFAZIABlock, 1) //Block of 16 telescopes FAZIA
97 };
98 
99 #endif
#define d(i)
double Double_t
#define ClassDef(name, id)
Standard geometry of 16-telescope FAZIA block.
Definition: KVFAZIABlock.h:17
double fTotSidWBld
Definition: KVFAZIABlock.h:19
double full_width
Definition: KVFAZIABlock.h:31
double si_centre
Definition: KVFAZIABlock.h:24
TGeoVolume * MakeSarco()
double dist_si2_csi
Definition: KVFAZIABlock.h:32
TGeoVolume * MakeLeftCrossPieceCSI(double front_side, double separation, double distPlane, double depth)
Part of aluminium frame which holds the CsI.
std::vector< double > GetCoordsCSI(int tel_num, double front_side, double separation, double distPlane, double depth)
Double_t GetBrassCollimatorDepth() const
Definition: KVFAZIABlock.h:90
double thick_si1
Definition: KVFAZIABlock.h:35
TGeoVolume * MakeCrossPieceCSI(double front_side, double separation, double distPlane, double depth)
Part of aluminium frame which holds the CsI.
double frame_depth_300
Definition: KVFAZIABlock.h:26
Double_t GetNominalDistanceTargetBlockCentre(double dist_SI1=100.) const
Definition: KVFAZIABlock.h:74
double centre_cross_thick
Definition: KVFAZIABlock.h:21
double frame_edge_depth
Definition: KVFAZIABlock.h:28
double dist_csi_sarco
Definition: KVFAZIABlock.h:37
TGeoVolume * MakeErgalFrame(double frame_depth, double ergal_edge_depth)
virtual ~KVFAZIABlock()
Definition: KVFAZIABlock.h:67
double full_length_quartet
Definition: KVFAZIABlock.h:34
double sarco_length
Definition: KVFAZIABlock.h:38
double sarco_epaisseur
Definition: KVFAZIABlock.h:41
double si_holder_side
Definition: KVFAZIABlock.h:23
double si300_position
Definition: KVFAZIABlock.h:29
double si500_position
Definition: KVFAZIABlock.h:30
TGeoVolume * MakeRightCrossPieceCSI(double front_side, double separation, double distPlane, double depth)
Part of aluminium frame which holds the CsI.
double sarco_uplift
Definition: KVFAZIABlock.h:42
double thick_si2
Definition: KVFAZIABlock.h:36
double sarco_height
Definition: KVFAZIABlock.h:40
double frame_depth_500
Definition: KVFAZIABlock.h:27
double front_frame_depth
Definition: KVFAZIABlock.h:25
double frame_side
Definition: KVFAZIABlock.h:20
double side_thick
Definition: KVFAZIABlock.h:22
double sarco_width
Definition: KVFAZIABlock.h:39
TGeoVolume * MakeQuartet()
double csi_depth
Definition: KVFAZIABlock.h:33
Double_t GetTotalSideWithBlindage() const
Definition: KVFAZIABlock.h:69
v
TVector3 operator()(const TVector3 &v)
Definition: KVFAZIABlock.h:55
Projector(double D, double d)
Definition: KVFAZIABlock.h:53