5 #include "KVFAZIA3DBlock.h"
129 fout.
AddCommentLine(
"File containing the position and orientation of the FAZIA quartets");
133 std::map<int, TVector3> pos;
144 for (
int bb = 0; bb < 12; bb++) {
148 int id = 10 * bb + qq;
200 fout.
WriteFile(
"FAZIA3D.Quartet.Position.env");
259 Info(
"BuildFAZIA",
"Exact geometry using 'FAZIA3D.Quartet.Position.env', %f cm from target.",
fFDist);
264 auto block_numbers = KVBase::GetDataSetEnv<KVString>(
fDataSet,
"FAZIA.BlockNumbers",
"0,1,2,3,4,5,6,7,8,9,10,11");
265 block_numbers.Begin(
",");
266 auto block_positions = KVBase::GetDataSetEnv<KVString>(
fDataSet,
"FAZIA.BlockPositions",
"0,1,2,3,4,5,6,7,8,9,10,11");
267 block_positions.Begin(
",");
271 Int_t block_number = block_numbers.Next().Atoi();
272 Int_t bb = block_positions.Next().Atoi();
283 top->
AddNode(block, block_number, ph);
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char filename
R__EXTERN TGeoManager * gGeoManager
char * Form(const char *fmt,...)
static ValType GetDataSetEnv(const KVString &dataset, const KVString &type, const ValType &defval={})
Extension of TEnv to allow the writing of comments in the file.
void AddCommentLine(const Char_t *line)
Int_t WriteFile(const char *fname, EEnvLevel level=kEnvAll) override
Geometry of 16-telescope FAZIA block where each quartet is placed in absolute using [DATASET]/FAZIA3D...
FAZIA 12-block demonstrator.
void GetGeometryParameters() override
defined configuration of the blocks
static void MakeConfigFile(const char *filename)
void BuildFAZIA() override
Description of a FAZIA detector geometry.
Double_t fFDist
distance of FAZIA detectors from target (in cm)
void SetGeometryImportParameters(Double_t dt=0.25, Double_t dp=1.0, Double_t tmin=2., Double_t pmin=0, Double_t tmax=20., Double_t pmax=360., Double_t xorg=0, Double_t yorg=0, Double_t zorg=0)
Int_t fNblocks
number of blocks
Handle reading columns of numeric data in text files.
ReadStatus ReadLine(const KVString &pattern="")
Int_t GetNparRead() const
KVString GetReadPar(Int_t pos) const
Bool_t OpenFileToRead(const KVString &filename)
TString fDataSet
name of associated dataset, used with MakeMultiDetector()
virtual void SetValue(const char *name, const char *value, EEnvLevel level=kEnvChange, const char *type=nullptr)
TGeoVolume * GetTopVolume() const
void SetDy(Double_t dy) override
void SetDz(Double_t dz) override
void SetDx(Double_t dx) override
virtual TGeoNode * AddNode(TGeoVolume *vol, Int_t copy_no, TGeoMatrix *mat=nullptr, Option_t *option="")
virtual void Info(const char *method, const char *msgfmt,...) const
TRotation & RotateY(Double_t)
TRotation & RotateZ(Double_t)
Double_t Angle(const TVector3 &) const
TVector3 Cross(const TVector3 &) const
RooCmdArg ClassName(const char *name)
Double_t Sign(Double_t a, Double_t b)
constexpr Double_t RadToDeg()