AliRoot Core  3dc7879 (3dc7879)
AliFMDGeometryBuilder.h
Go to the documentation of this file.
1 #ifndef ALIFMDGEOMETRYBUILDER_H
2 #define ALIFMDGEOMETRYBUILDER_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights
4  * reserved.
5  *
6  * Latest changes by Christian Holm Christensen <cholm@nbi.dk>
7  *
8  * See cxx source for full Copyright notice
9  */
10 // Builder of FMD geometry.
11 // This class takes care of actually building the geometry using the
12 // TGeo classes. Various parameters are fecthed from the
13 // AliFMDGeometry manager.
19 #ifndef ROOT_TTask
20 # include <TTask.h>
21 #endif
22 #ifndef ROOT_TArrayI
23 # include <TArrayI.h>
24 #endif
25 class TGeoVolume;
26 class TGeoMedium;
27 class TGeoShape;
28 class AliFMD;
29 class AliFMDRing;
30 class AliFMDDetector;
31 class AliFMD1;
32 class AliFMD2;
33 class AliFMD3;
34 
35 //____________________________________________________________________
43 class AliFMDGeometryBuilder : public TTask
44 {
45 public:
50  AliFMDGeometryBuilder(Bool_t detailed);
53  virtual void Exec(Option_t* option="");
55  virtual void UseAssembly(Bool_t use=kTRUE) { fUseAssembly = use; }
58  virtual void SetDetailed(Bool_t use) { fDetailed = use; }
60  Int_t GetSectorOff() const { return fSectorOff; }
62  Int_t GetModuleOff() const { return fModuleOff; }
64  Int_t GetRingOff() const { return fRingOff; }
66  Int_t GetDetectorOff() const { return fDetectorOff; }
67 protected:
70  : TTask(o),
76  fRingOff(o.fRingOff),
78  fSi(o.fSi),
79  fC(o.fC),
80  fAl(o.fAl),
81  fPCB(o.fPCB),
82  fChip(o.fChip),
83  fAir(o.fAir),
84  fPlastic(o.fPlastic),
85  fCopper(o.fCopper),
86  fSteel(o.fSteel)
87  {}
94 
104  virtual TGeoShape* MakeXTRU(const TObjArray& verticies, Double_t thick) const;
105 
113  virtual TGeoVolume* RingGeometry(const AliFMDRing* r);
114 
128  virtual TGeoShape* HoneycombShape(Int_t id, Char_t ring,
129  double r1, double r2,
130  double w, double t, double c=0.3);
137  virtual TGeoVolume* TensionBox();
152  virtual TGeoVolume* DetectorGeometry(const AliFMDDetector* d,
153  TGeoVolume* motherTop,
154  TGeoVolume* motherBot,
155  Double_t zmother,
156  TGeoVolume* innerTop,
157  TGeoVolume* innerBot,
158  TGeoVolume* outerTop=0,
159  TGeoVolume* outerBot=0);
168  virtual TGeoVolume* FMD1Geometry(const AliFMD1* d,
169  TGeoVolume* innerTop,
170  TGeoVolume* innerBot);
182  virtual TGeoVolume* FMD2Geometry(const AliFMD2* d,
183  TGeoVolume* innerTop,
184  TGeoVolume* innerBot,
185  TGeoVolume* outerTop,
186  TGeoVolume* outerBot);
198  virtual TGeoVolume* FMD3Geometry(const AliFMD3* d,
199  TGeoVolume* innerTop,
200  TGeoVolume* innerBot,
201  TGeoVolume* outerTop,
202  TGeoVolume* outerBot);
203 
204 
205  TArrayI fActiveId;
206  Bool_t fDetailed; // Whether to make a detailed simulation
207  Bool_t fUseAssembly; // Assembly volumes
208  Int_t fSectorOff; // Sector offset in volume tree
209  Int_t fModuleOff; // Module offset in volume tree
210  Int_t fRingOff; // Ring offset in the volume tree
211  Int_t fDetectorOff; // Detector offfset in the volume tree
212 
213  TGeoMedium* fSi;
214  TGeoMedium* fC;
215  TGeoMedium* fAl;
216  TGeoMedium* fPCB;
217  TGeoMedium* fChip;
218  TGeoMedium* fAir;
219  TGeoMedium* fPlastic;
220  TGeoMedium* fCopper;
221  TGeoMedium* fSteel;
222 
223  static const Char_t* fgkActiveName; // Name of Active volumes
224  static const Char_t* fgkSectorName; // Name of Sector volumes
225  static const Char_t* fgkStripName; // Name of Strip volumes
226  static const Char_t* fgkSensorName; // Name of Sensor volumes
227  static const Char_t* fgkPCBName; // Name of PCB volumes
228  static const Char_t* fgkCuName; // Name of copper volumes
229  static const Char_t* fgkChipName; // Name of chip volumes
230  static const Char_t* fgkLongLegName; // Name of LongLeg volumes
231  static const Char_t* fgkShortLegName; // Name of ShortLeg volumes
232  static const Char_t* fgkFrontVName; // Name of Front volumes
233  static const Char_t* fgkBackVName; // Name of Back volumes
234  static const Char_t* fgkRingTopName; // Name of Top ring volumes
235  static const Char_t* fgkRingBotName; // Name of Bottom ring volumes
236  static const Char_t* fgkHCName; // Name of Honeycomb volumes
237  static const Char_t* fgkIHCName; // Name of Inner honeycomb volumes
238  static const Char_t* fgkNoseName; // Name of Nose volumes
239  static const Char_t* fgkBackName; // Name of Back volumes
240  static const Char_t* fgkTopName; // Name of Back volumes
241  static const Char_t* fgkBeamName; // Name of Beam volumes
242  static const Char_t* fgkFlangeName; // Name of Flange volumes
243  static const Char_t* fgkFMDDCuName; // Name of FMDD copper volumes
244  static const Char_t* fgkFMDDPCBName; // Name of FMDD PCB volumes
245  static const Char_t* fgkFMDDChipName; // Name of FMDD chip volumes
246  static const Char_t* fgkFMDDName; // Name of FMDD volumes
247  static const Char_t* fgkFMDName; // Name of Half FMD volumes
248 
249  ClassDef(AliFMDGeometryBuilder,1)
250 };
251 
252 #endif
253 //____________________________________________________________________
254 //
255 // Local Variables:
256 // mode: C++
257 // End:
258 //
259 // EOF
260 //
261 
Geometry parameters of the FMD3 detector. FMD3 has a fairly complicated support structure. The cone also supports the beam-pipe.
Definition: AliFMD3.h:27
static const Char_t * fgkSensorName
static const Char_t * fgkCuName
static const Char_t * fgkFMDDPCBName
TGeoMedium * fCopper
Plastic Medium.
AliFMDGeometryBuilder & operator=(const AliFMDGeometryBuilder &)
#define TObjArray
static const Char_t * fgkFlangeName
static const Char_t * fgkTopName
virtual TGeoVolume * FMD2Geometry(const AliFMD2 *d, TGeoVolume *innerTop, TGeoVolume *innerBot, TGeoVolume *outerTop, TGeoVolume *outerBot)
virtual TGeoVolume * TensionBox()
virtual void Exec(Option_t *option="")
static const Char_t * fgkStripName
TGeoMedium * fPlastic
Air Medium.
static const Char_t * fgkRingBotName
Forward Multiplicity Detector based on Silicon wafers. This class is the driver for especially simula...
Definition: AliFMD.h:306
virtual TGeoVolume * DetectorGeometry(const AliFMDDetector *d, TGeoVolume *motherTop, TGeoVolume *motherBot, Double_t zmother, TGeoVolume *innerTop, TGeoVolume *innerBot, TGeoVolume *outerTop=0, TGeoVolume *outerBot=0)
Base class for the geometry description and parameters of the FMD sub detectors FMD1, FMD2, and FMD3.
virtual void UseAssembly(Bool_t use=kTRUE)
static const Char_t * fgkBackVName
static const Char_t * fgkLongLegName
static const Char_t * fgkFMDDName
static const Char_t * fgkFrontVName
virtual TGeoVolume * FMD1Geometry(const AliFMD1 *d, TGeoVolume *innerTop, TGeoVolume *innerBot)
Macros to do fast simulation of processes important for tuning of reconstruction Currently fast simulation of ionization digitization and cluster finder AliTPCclusterFast How to use it a which macro to use(I know it was somewhere in AliRoot but with the GIT page I dont find it anymore)
static const Char_t * fgkPCBName
virtual void SetDetailed(Bool_t use)
TGeoMedium * fC
Si Medium.
static const Char_t * fgkBackName
static const Char_t * fgkFMDDCuName
static const Char_t * fgkHCName
virtual TGeoShape * MakeXTRU(const TObjArray &verticies, Double_t thick) const
Geometry description and parameters of the FMD1 detector. The FMD1 has only one ring.
Definition: AliFMD1.h:26
Builder of FMD geometry. This class takes care of actually building the geometry using the TGeo class...
static const Char_t * fgkSectorName
static const Char_t * fgkChipName
virtual TGeoVolume * RingGeometry(const AliFMDRing *r)
static const Char_t * fgkShortLegName
virtual TGeoVolume * FMD3Geometry(const AliFMD3 *d, TGeoVolume *innerTop, TGeoVolume *innerBot, TGeoVolume *outerTop, TGeoVolume *outerBot)
static const Char_t * fgkActiveName
Steel Medium.
TGeoMedium * fChip
PCB Medium.
static const Char_t * fgkFMDDChipName
Geometry description and parameters of a ring in the FMD detector.
Definition: AliFMDRing.h:41
static const Char_t * fgkNoseName
Geometry parameters of the FMD2 detector. This has two rings.
Definition: AliFMD2.h:27
TGeoMedium * fSteel
Copper Medium.
TGeoMedium * fAir
Chip Medium.
static const Char_t * fgkIHCName
static const Char_t * fgkRingTopName
static const Char_t * fgkFMDName
Bool_t fDetailed
Active volume ID&#39;s.
TGeoMedium * fPCB
Al Medium.
AliFMDGeometryBuilder(const AliFMDGeometryBuilder &o)
TGeoMedium * fAl
C Medium.
virtual TGeoShape * HoneycombShape(Int_t id, Char_t ring, double r1, double r2, double w, double t, double c=0.3)
static const Char_t * fgkBeamName