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