KaliVeda  1.13/01
Heavy-Ion Analysis Toolkit
INDRAGeometryBuilder.h
Go to the documentation of this file.
1 
4 #ifndef __INDRAGEOMETRYBUILDER_H
5 #define __INDRAGEOMETRYBUILDER_H
6 
7 #include "KVBase.h"
8 #include "TVector3.h"
9 #include "KVDetector.h"
10 #include "TGeoVolume.h"
11 #include "TGeoMatrix.h"
12 #include "KVNumberList.h"
13 #include "KVNameValueList.h"
14 
15 class TGeoManager;
26 class INDRAGeometryBuilder : public KVBase {
54 
55 public:
58  ROOT_COPY_ASSIGN_OP(INDRAGeometryBuilder)
59  virtual ~INDRAGeometryBuilder();
60  void Copy(TObject&) const;
61 
62  void ReadDetCAO(const Char_t* detname, Int_t ring);
63  void CalculateBackPlaneCoordinates(TVector3* frontcoords, TVector3 centre, Double_t depth, TVector3* backcoords);
64  void CalculateCentre(TVector3* corners, TVector3& centre);
65  void CalculateCornersInPlane(TVector3* plane, Double_t thetamin,
66  Double_t thetamax, Double_t phimin, Double_t phimax, TVector3* corners);
67 
68  void Print(Option_t* = "") const;
69 
70  void MakeFrame(TString det_type, Int_t ring_num);
71  void MakeDetector(const Char_t* det, TVector3* som, TVector3 cen);
72  void PlaceFrame(Double_t phi, Int_t copy_no);
73  void PlaceDetector();
74  void MakeRing(const Char_t* det, int ring);
75  void MakeEtalon(int RING);
76  void ReflectPad(TVector3* orig, Double_t phicentre, TVector3* newpad);
77  void CloseAndDraw();
78 
79  void Build(Bool_t withTarget = kTRUE, Bool_t closeGeometry = kTRUE);
80  void BuildTarget();
81  void Build(const KVNumberList& rings, const KVNameValueList& detectors);
82  void TransformToOwnFrame(TVector3* orig, TVector3& centre, TVector3* ownframe);
83 
84  ClassDef(INDRAGeometryBuilder, 0) //Build INDRA geometry from Huguet CAO infos
85  void BuildEtalonVolumes();
87 };
88 
89 #endif
int Int_t
char Char_t
bool Bool_t
double Double_t
const char Option_t
Build INDRA geometry from Huguet CAO infos.
void CorrectCoordinates(Double_t *, Double_t &, Double_t &)
void MakeDetector(const Char_t *det, TVector3 *som, TVector3 cen)
make volume corresponding to the actual detector
INDRAGeometryBuilder()
Default constructor.
ClassDef(INDRAGeometryBuilder, 0) void BuildEtalonVolumes()
Int_t Ndets
number of detectors in ring
void Copy(TObject &) const
void CalculateBackPlaneCoordinates(TVector3 *frontcoords, TVector3 centre, Double_t depth, TVector3 *backcoords)
TGeoVolume * fDetVolume
geo volume representing frame
void CalculateCentre(TVector3 *corners, TVector3 &centre)
Double_t fTotalThickness
sum of thicknesses of layers of current detector
void ReadDetCAO(const Char_t *detname, Int_t ring)
Int_t fActiveLayer
index of active layer of current detector
TString fDetName
name of detector
TVector3 fInnerCentre
centre of inner face
void PlaceFrame(Double_t phi, Int_t copy_no)
position frame (dead zone) volume in geometry
KVMaterial fFrameMat
material of outer frame
void ReflectPad(TVector3 *orig, Double_t phicentre, TVector3 *newpad)
Double_t phi0
theoretical geometry
TVector3 fInnerFront[4]
coords of inner front face
void CalculateCornersInPlane(TVector3 *plane, Double_t thetamin, Double_t thetamax, Double_t phimin, Double_t phimax, TVector3 *corners)
TVector3 fOuterFront[4]
coords of outer front face
TVector3 fOuterCentre
centre of outer face
void Print(Option_t *="") const
Bool_t CheckDetectorPresent(TString detname)
void TransformToOwnFrame(TVector3 *orig, TVector3 &centre, TVector3 *ownframe)
KVDetector * fProtoDetector
detector used for last fLayers look up
TVector3 fFrameFront[4]
coords of outer front face
virtual ~INDRAGeometryBuilder()
Destructor.
void Build(Bool_t withTarget=kTRUE, Bool_t closeGeometry=kTRUE)
void MakeRing(const Char_t *det, int ring)
KVList * fLayers
list of materials making up layers of current detector
void MakeFrame(TString det_type, Int_t ring_num)
TVector3 fFrameCentre
centre of frame
TGeoVolume * fFrameVolume
geo volume representing frame
void PlaceDetector()
position detector inside frame
TGeoTranslation * fDetectorPosition
TGeoVolumeAssembly * fEtalonVol
Base class for KaliVeda framework.
Definition: KVBase.h:141
Base class for detector geometry description.
Definition: KVDetector.h:159
Extended TList class which owns its objects by default.
Definition: KVList.h:27
Description of physical materials used to construct detectors & targets; interface to range tables.
Definition: KVMaterial.h:93
Handles lists of named parameters with different types, a list of KVNamedParameter objects.
Strings used to represent a set of ranges of values.
Definition: KVNumberList.h:83