FairShip
Loading...
Searching...
No Matches
ShipGeoUtil.h
Go to the documentation of this file.
1// SPDX-License-Identifier: LGPL-3.0-or-later
2// SPDX-FileCopyrightText: Copyright CERN for the benefit of the SHiP
3// Collaboration
4
5#ifndef SHIPDATA_SHIPGEOUTIL_H_
6#define SHIPDATA_SHIPGEOUTIL_H_
7
8#include "FairGeoBuilder.h"
9#include "FairGeoInterface.h"
10#include "FairGeoLoader.h"
11#include "FairGeoMedia.h"
12#include "TGeoManager.h"
13#include "TGeoMedium.h"
14
15namespace ShipGeo {
16
20inline Int_t InitMedium(const char* name) {
21 static FairGeoLoader* geoLoad = FairGeoLoader::Instance();
22 static FairGeoInterface* geoFace = geoLoad->getGeoInterface();
23 static FairGeoMedia* media = geoFace->getMedia();
24 static FairGeoBuilder* geoBuild = geoLoad->getGeoBuilder();
25
26 FairGeoMedium* ShipMedium = media->getMedium(name);
27
28 if (!ShipMedium) {
29 Fatal("ShipGeo::InitMedium", "Material %s not defined in media file.",
30 name);
31 return -1111;
32 }
33 TGeoMedium* medium = gGeoManager->GetMedium(name);
34 if (medium != nullptr) return ShipMedium->getMediumIndex();
35
36 return geoBuild->createMedium(ShipMedium);
37}
38
39} // namespace ShipGeo
40
41#endif // SHIPDATA_SHIPGEOUTIL_H_
Int_t InitMedium(const char *name)
Definition: ShipGeoUtil.h:20