25 #ifndef PNDGEOHANDLING_H
26 #define PNDGEOHANDLING_H
31 #include "FairRuntimeDb.h"
34 #include "TGeoManager.h"
35 #include "TGeoMatrix.h"
135 void cd(TGeoNode* node);
158 std::vector<TString> empty;
TString FindNodePath(TGeoNode *node)
Int_t GetRunId(TString mcFile)
void SetGeoManager(TGeoManager *geo)
void DiveDownToNode(TGeoNode *node)
virtual InitStatus ReInit()
void DiveDownToNodeContainingString(TString name)
runs through the GeoManager until a path is found with a substring which matches to the given string ...
void SetSensorNamePar(PndSensorNamePar *par)
void GetOUVShortId(Int_t shortId, TVector3 &o, TVector3 &u, TVector3 &v)
virtual ~PndGeoHandling()
TGeoHMatrix * GetMatrixPath(TString path)
std::vector< TString > fLevelNames
virtual void SetParContainers()
void CreateUniqueSensorId(TString startName, std::vector< std::string > listOfSensitives)
Has to be called during simulation to create unique sensor id.
TVector3 GetSensorDimensionsPath(TString path)
TGeoManager * gGeoManager
TVector3 MasterToLocalPath(const TVector3 &master, const TString &id)
void FillLevelNames()
fills vector<TString> fLevelNames with the names (or the paths) of the volumes down to the level give...
TMatrixD MasterToLocalErrorsShortId(const TMatrixD &master, const Int_t &shortId)
std::vector< TString > GetSensorNamesWithString(TString value)
static PndGeoHandling * fInstance
TString GetPath(Int_t shortID)
for a given shortID the path is returned
ClassDef(PndGeoHandling, 3)
TVector3 GetSensorDimensionsShortId(Int_t shortId)
TGeoHMatrix * GetMatrixShortId(Int_t shortId)
TObjArray * GetSensorNames() const
TMatrixD LocalToMasterErrorsShortId(const TMatrixD &local, const Int_t &shortId)
Class to access the naming information of the MVD.
TString GetVolumeID(TString name)
returns the volume ID for a given volume name
void GetOUVPath(TString path, TVector3 &o, TVector3 &u, TVector3 &v)
for a volume given by its path the o, u, v vectors for the plane are returned
TMatrixD GetCurrentRotationMatrix()
void InitRuntimeDb(TString parFileName)
TMatrixD LocalToMasterErrorsPath(const TMatrixD &local, const TString &id)
Bool_t cd(Int_t id)
as the cd command of TGeoManager just with the ID
TObjArray * GetSensorNames()
Int_t GetShortID(TString path)
for a given path the (unique) position of the sensor path in the fSensorNamePar-List is given...
PndGeoHandling(PndGeoHandling &gh)
TVector3 LocalToMasterPath(const TVector3 &local, const TString &id)
static PndGeoHandling * Instance()
std::vector< TString > GetSensorNamesWithString(TString identifier)
TVector3 MasterToLocalShortId(const TVector3 &master, const Int_t &shortId)
TMatrixD MasterToLocalErrorsPath(const TMatrixD &master, const TString &id)
void DiveDownToFillSensNamePar(std::vector< std::string > listOfSensitives)
bool VolumeIsSensitive(TString &path, std::vector< std::string > &listOfSensitives)
Checks if the path contains a substring which matches one of the given strings in listOfSensitives...
PndGeoHandling & operator=(const PndGeoHandling &)
TGeoManager * GetGeoMan()
TVector3 LocalToMasterShortId(const TVector3 &local, const Int_t &shortId)
PndSensorNamePar * fSensorNamePar
TMatrixT< double > TMatrixD
std::vector< TString > GetNamesLevel(Int_t level, TString startPath="")
PndGeoHandling()
default constructor. Has to be called in SetParContainers if the support of shortId is needed...
Unique match between SensorID and path in TGeoManager.