R3BROOT
R3B analysis software
Loading...
Searching...
No Matches
R3BCaveFloor.cxx
Go to the documentation of this file.
1/******************************************************************************
2 * Copyright (C) 2026 GSI Helmholtzzentrum für Schwerionenforschung GmbH *
3 * Copyright (C) 2026 Members of R3B Collaboration *
4 * *
5 * This software is distributed under the terms of the *
6 * GNU General Public Licence (GPL) version 3, *
7 * copied verbatim in the file "LICENSE". *
8 * *
9 * In applying this license GSI does not waive the privileges and immunities *
10 * granted to it by virtue of its status as an Intergovernmental Organization *
11 * or submit itself to any jurisdiction. *
12 ******************************************************************************/
13
14#include "R3BCaveFloor.h"
15#include "R3BLogger.h"
16
17#include <FairGeoBuilder.h>
18#include <FairGeoInterface.h>
19#include <FairGeoLoader.h>
20#include <FairGeoMedia.h>
21
22#include <TGeoBBox.h>
23#include <TGeoManager.h>
24#include <TGeoVolume.h>
25
30
31R3BCaveFloor::R3BCaveFloor(const TString& name)
32 : R3BModule(name, "R3BCaveFloor", false)
33{
34}
35
36R3BCaveFloor::R3BCaveFloor(const TString& geoFile, const TGeoTranslation& trans, const TGeoRotation& rot)
37 : R3BCaveFloor(geoFile, { trans, rot })
38{
39}
40
41R3BCaveFloor::R3BCaveFloor(const TString& geoFile, const TGeoCombiTrans& combi)
42 : R3BModule("R3BCaveFloor", "Floor", false, geoFile, combi)
43{
44}
45
47{
48 R3BLOG(info, "");
49
50 auto* geoLoad = FairGeoLoader::Instance();
51 auto* geoFace = geoLoad->getGeoInterface();
52 auto* geoMedia = geoFace->getMedia();
53 auto* geoBuild = geoLoad->getGeoBuilder();
54
55 auto fairMedium = geoMedia->getMedium("concrete");
56 R3BLOG_IF(fatal, !fairMedium, "FairGeoMedium concrete not found");
57 geoBuild->createMedium(fairMedium);
58
59 auto med = gGeoManager->GetMedium("concrete");
60 R3BLOG_IF(fatal, !med, "TGeoMedium concrete not found");
61
62 double dx = 1500.; // 15 m
63 double dy = 10.; // 10 cm
64 double dz = 2500.; // 25 m
65
66 auto* floor = gGeoManager->MakeBox("CaveFloor", med, dx / 2., dy / 2., dz / 2.);
67 floor->SetLineColor(31);
68
69 double yPos = -200. - dy / 2.;
70 double zPos = 600.;
71
72 auto* top = gGeoManager->GetTopVolume();
73 top->AddNode(floor, 1, new TGeoTranslation(0., yPos, zPos));
74}
75
#define R3BLOG(severity, x)
Definition R3BLogger.h:33
#define R3BLOG_IF(severity, condition, x)
Definition R3BLogger.h:42
ClassImp(R3B::Neuland::Cal2HitPar)
virtual void ConstructGeometry()
Construct geometry from root files.