4 #ifndef __INDRAGEOMETRYBUILDER_H
5 #define __INDRAGEOMETRYBUILDER_H
8 #include "KVDetector.h"
12 #include "KVNumberList.h"
13 #include "KVNameValueList.h"
14 #include <unordered_map>
72 double thmin,
double thmax,
double phi);
#define ClassDefOverride(name, id)
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
std::vector< theta_phi > GetDirectionsToTestForImport() const
void Print(Option_t *="") const override
Int_t Ndets
number of detectors in ring
Bool_t CheckImportResults(const KVSeqCollection *)
void CalculateBackPlaneCoordinates(TVector3 *frontcoords, TVector3 centre, Double_t depth, TVector3 *backcoords)
TGeoVolume * fDetVolume
geo volume representing frame
void CalculateCentre(TVector3 *corners, TVector3 ¢re)
void BuildEtalonVolumes()
void read_indra_struct_file()
file containing structure of array
Double_t fEtalonTheta[10]
void ReadDetCAO(const Char_t *detname, Int_t ring)
std::unordered_map< std::string, detector_properties > detector_map
Int_t fActiveLayer
type name of current detector
void read_layer_infos(const Char_t *name)
read infos on layer 'name' in file "$KVROOT/KVFiles/data/indra-struct.[dataset].env"
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
Bool_t SetDetectorThickness(const TString &detname, Double_t thickness)
std::vector< detector_properties > read_telescope_infos(const Char_t *prefix, Int_t ring, Int_t mod, Int_t ntel, double thmin, double thmax, double phi)
read telescope infos in file "$KVROOT/KVFiles/data/indra-struct.[dataset].env"
void MakeEtalon(int RING)
void CalculateCornersInPlane(TVector3 *plane, Double_t thetamin, Double_t thetamax, Double_t phimin, Double_t phimax, TVector3 *corners)
TString fCurrentDetectorType
list of materials making up layers of current detector
TVector3 fOuterFront[4]
coords of outer front face
TVector3 fOuterCentre
centre of outer face
Bool_t CheckDetectorPresent(TString detname)
void TransformToOwnFrame(TVector3 *orig, TVector3 ¢re, TVector3 *ownframe)
Double_t fRingCentreDistance
TVector3 fFrameFront[4]
coords of outer front face
INDRAGeometryBuilder(const TString &_data_set, Int_t current_run=-1)
Default constructor.
void Build(Bool_t withTarget=kTRUE, Bool_t closeGeometry=kTRUE)
void read_ring_infos(Int_t number, const Char_t *prefix)
read infos on ring in file "$KVROOT/KVFiles/data/indra-struct.[dataset].env"
void MakeRing(const Char_t *det, int ring)
void MakeFrame(TString det_type, Int_t ring_num)
TVector3 fFrameCentre
centre of frame
TGeoVolume * fFrameVolume
geo volume representing frame
KVDetector fCurrentDetector
void PlaceDetector()
position detector inside frame
TGeoTranslation * fDetectorPosition
TGeoVolumeAssembly * fEtalonVol
std::pair< double, double > theta_phi
Base class for KaliVeda framework.
Description of physical materials used to construct detectors & targets; interface to range tables.
Handles lists of named parameters with different types, a list of KVNamedParameter objects.
Strings used to represent a set of ranges of values.
KaliVeda extensions to ROOT collection classes.