Project
Loading...
Searching...
No Matches
FairModule.h
Go to the documentation of this file.
1/********************************************************************************
2 * Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
3 * *
4 * This software is distributed under the terms of the *
5 * GNU Lesser General Public Licence (LGPL) version 3, *
6 * copied verbatim in the file "LICENSE" *
7 ********************************************************************************/
8// Modified for ALICE O2 in 2026: parts not used by O2 were removed (see README.md in this directory).
9#ifndef FAIRMODULE_H
10#define FAIRMODULE_H
11
12#include "FairGeoInterface.h" // for FairGeoInterface
13#include "FairGeoLoader.h" // for FairGeoLoader
14#include "FairGeoNode.h" // for FairGeoNode
15#include "FairGeoVolume.h" // for FairGeoVolume
16#include "FairLogger.h"
17#include "FairRun.h" // for FairRun
18
19#include <Rtypes.h> // for Bool_t, Int_t, etc
20#include <TList.h> // for TList (ptr only), TListIter
21#include <TNamed.h> // for TNamed
22#include <TObjArray.h> // for TObjArray
23#include <TString.h> // for TString, operator!=
24#include <string> // for string
25
26class FairVolumeList;
27class FairVolume;
28class TArrayI;
29class TGeoMatrix;
30class TGeoNode;
31class TGeoVolume;
32class TRefArray;
33class TVirtualMC;
34
46class FairModule : public TNamed
47{
48 public:
50 FairModule();
52 FairModule(const char* Name, const char* title, Bool_t Active = kFALSE);
54 virtual ~FairModule();
56 virtual void Print(Option_t*) const { ; }
58 virtual void SetGeometryFileName(TString fname, TString geoVer = "0");
60 virtual TString GetGeometryFileName() { return fgeoName; }
62 virtual TString GetGeometryFileVer() { return fgeoVer; }
64 virtual void ConstructGeometry();
66 virtual void ConstructOpGeometry();
68 virtual void ConstructRootGeometry(TGeoMatrix* shiftM = nullptr);
70 virtual void ConstructASCIIGeometry();
72 virtual void ModifyGeometry()
73 __attribute__((deprecated("Use FairAlignmentHandler instead, see Tutorial4 for examples")))
74 {
75 LOG(warn) << "This function is deprecated. Use FairAlignmentHandler instead, see Tutorial4 for examples.";
76 }
77 virtual void RegisterAlignmentMatrices() { ; }
78
80 virtual void ConstructGDMLGeometry(__attribute__((unused)) TGeoMatrix* posrot);
83 virtual void SetSpecialPhysicsCuts() { ; }
85 virtual FairModule* CloneModule() const;
87 virtual void BeginWorkerRun() const { ; }
89 virtual void FinishWorkerRun() const { ; }
90
91
94 virtual Bool_t IsSensitive(const std::string& name);
96 virtual Bool_t CheckIfSensitive(__attribute__((unused)) std::string name) __attribute__((
97 deprecated("The method CheckIfSensitive is deprecated. Implement IsSensitive in the detector classes.")))
98 {
99 return kFALSE;
100 }
102 virtual void ExpandNode(TGeoNode* Node);
104 virtual void ExpandNodeForGDML(__attribute__((unused)) TGeoNode* curNode);
106 virtual Int_t getVolId(const TString&) const { return 0; }
108 Int_t GetModId() { return fModId; }
112 Bool_t IsActive() { return fActive; }
114 void SetModId(Int_t id) { fModId = id; }
118 void SetMotherVolume(TString volName) { fMotherVolumeName = volName; }
121 virtual void SetParContainers() { ; }
124 virtual void InitParContainers() { ; }
126 TList* GetListOfGeoPar() { return flGeoPar; }
127
129 static thread_local FairVolumeList* vList;
131 static thread_local Int_t fNbOfVolumes;
133 static thread_local TRefArray* svList;
134
135 static thread_local TArrayI* volNumber;
138 void AddSensitiveVolume(TGeoVolume* v);
139
140 private:
142 void SetDefaultMatrixName(TGeoMatrix* matrix);
143 void AssignMediumAtImport(TGeoVolume* v); // O.Merle, 29.02.2012 - see impl.
144
146 void ReAssignMediaId();
147 void swap(FairModule& other) throw();
148
149 protected:
150 FairModule(const FairModule&);
152 TString fgeoVer;
153 TString fgeoName;
154 Int_t fModId;
155 Bool_t fActive;
158 TList* flGeoPar;
159 Bool_t fGeoSaved;
161
163};
164
165// The container-based ConstructASCIIGeometry<T,U> template was removed with the
166// FairRuntimeDb: it stored imported ASCII geometry into a parameter container.
167
168
169#endif // FAIRMODULE_H
Int_t fNbOfSensitiveVol
Definition FairModule.h:156
FairModule & operator=(const FairModule &)
Int_t fVerboseLevel
Definition FairModule.h:157
virtual void ExpandNodeForGDML(__attribute__((unused)) TGeoNode *curNode)
Int_t GetModId()
Definition FairModule.h:108
Bool_t fGeoSaved
list of Detector Geometry parameters
Definition FairModule.h:159
TString fMotherVolumeName
Definition FairModule.h:136
static thread_local Int_t fNbOfVolumes
Definition FairModule.h:131
virtual void BeginWorkerRun() const
Definition FairModule.h:87
virtual void Print(Option_t *) const
Definition FairModule.h:56
void SetMotherVolume(TString volName)
Definition FairModule.h:118
virtual void see Tutorial4 for examples
Definition FairModule.h:74
void AddSensitiveVolume(TGeoVolume *v)
virtual void ConstructOpGeometry()
virtual void SetParContainers()
Definition FairModule.h:121
TList * flGeoPar
Definition FairModule.h:158
virtual void SetSpecialPhysicsCuts()
Definition FairModule.h:83
virtual TString GetGeometryFileVer()
Definition FairModule.h:62
virtual void ExpandNode(TGeoNode *Node)
virtual void ConstructRootGeometry(TGeoMatrix *shiftM=nullptr)
ClassDef(FairModule, 4)
cahed pointer to MC (available only after initialization)
virtual void ConstructGDMLGeometry(__attribute__((unused)) TGeoMatrix *posrot)
virtual void InitParContainers()
Definition FairModule.h:124
Int_t fModId
Definition FairModule.h:154
void SetModId(Int_t id)
Definition FairModule.h:114
virtual void ConstructASCIIGeometry()
FairVolume * getFairVolume(FairGeoNode *fNode)
Bool_t fActive
Definition FairModule.h:155
virtual void ModifyGeometry() __attribute__((deprecated("Use FairAlignmentHandler instead
virtual TString GetGeometryFileName()
Definition FairModule.h:60
Bool_t IsActive()
Definition FairModule.h:112
virtual void SetGeometryFileName(TString fname, TString geoVer="0")
TList * GetListOfGeoPar()
Definition FairModule.h:126
TVirtualMC * fMC
flag for initialisation
Definition FairModule.h:160
static thread_local TArrayI * volNumber
Definition FairModule.h:135
virtual ~FairModule()
virtual FairModule * CloneModule() const
virtual void RegisterAlignmentMatrices()
Definition FairModule.h:77
void SetVerboseLevel(Int_t level)
Definition FairModule.h:110
static thread_local FairVolumeList * vList
Definition FairModule.h:129
TString fgeoVer
Definition FairModule.h:152
virtual void ConstructGeometry()
TString fgeoName
Definition FairModule.h:153
virtual Bool_t CheckIfSensitive(__attribute__((unused)) std::string name) __attribute__((deprecated("The method CheckIfSensitive is deprecated. Implement IsSensitive in the detector classes.")))
Definition FairModule.h:96
virtual void FinishWorkerRun() const
Definition FairModule.h:89
virtual Bool_t IsSensitive(const std::string &name)
static thread_local TRefArray * svList
Definition FairModule.h:133
virtual Int_t getVolId(const TString &) const
Definition FairModule.h:106
const GLdouble * v
Definition glcorearb.h:832
GLuint const GLchar * name
Definition glcorearb.h:781
GLint level
Definition glcorearb.h:275
GLuint id
Definition glcorearb.h:650
VectorOfTObjectPtrs other
LOG(info)<< "Compressed in "<< sw.CpuTime()<< " s"
for(int irof=0;irof< 1000;irof++)