]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/AliITSv11GeometrySPD.h
Adding router nr in dcs configuration file and removing ClassDef macro in AliITSOnlin...
[u/mrichter/AliRoot.git] / ITS / AliITSv11GeometrySPD.h
CommitLineData
db486a6e 1#ifndef ALIITSV11GEOMETRYSPD_H
2#define ALIITSV11GEOMETRYSPD_H
592651e2 3
4/*
59da35b6 5 * Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved.
592651e2 6 * See cxx source for full Copyright notice.
7 */
db486a6e 8
59da35b6 9
a53658c6 10
543b7370 11/*
592651e2 12 * $Id$
543b7370 13 */
592651e2 14
59da35b6 15//
16// Implementation of the SPD v11 central geometry.
17// Contains also:
18// - the materials/media used for its volumes;
19// - settings for the related transport parameters (GEANT3 types for the moment).
20//
a53658c6 21#include <TGeoManager.h>
22#include <TVirtualMC.h>
db486a6e 23#include <AliITSv11Geometry.h>
a53658c6 24
db486a6e 25class TGeoVolume;
26
592651e2 27class AliITSv11GeometrySPD : public AliITSv11Geometry
28{
29public:
30 AliITSv11GeometrySPD() : AliITSv11Geometry() {};
31 AliITSv11GeometrySPD(Int_t debug) : AliITSv11Geometry(debug) {}; // set explicitly debug level
32 virtual ~AliITSv11GeometrySPD() {};
33
34 /* Settings */
35
36 // define/create materials
59da35b6 37 virtual Int_t CreateSPDCentralMaterials(Int_t &medOffset, Int_t &matOffset) const;
38 // set SPD Central, GEANT3 type, tracking parameters
39 virtual void InitSPDCentral(Int_t offset,TVirtualMC *mc=gMC) const;
592651e2 40
41 /* Monitoring */
42
43 // creates standard figures for the documentation of this class
44 virtual void CreateFigure0(const Char_t *filepath = "", const Char_t *type = "gif", TGeoManager *mgr=gGeoManager);
45
46 /* Member functions which create pieces of the geometry */
47
48 // a single ladder (= 1 detector + 5 chips)
49 TGeoVolume* CreateLadder(Int_t layer, Double_t &width, Double_t &height, Double_t &thickness, TGeoManager *mgr = gGeoManager);
50 // the grounding foil (splitted in two components)
51 TGeoVolume* CreateGroundingFoilSingle(Bool_t kapLayer, Double_t &len, Double_t &wid, Double_t &thick, TGeoManager *mgr = gGeoManager);
52 TGeoVolume* CreateGroundingFoil(Double_t &thickness, TGeoManager *mgr = gGeoManager);
53 // the MCM (incomplete: missing the internal chips)
59da35b6 54 TGeoVolume* CreateMCMBase(TGeoManager *mgr = gGeoManager) const;
592651e2 55 TGeoVolume* CreateMCMCoverBorder(TGeoManager *mgr = gGeoManager);
56 TGeoVolume* CreateMCMCoverTop(TGeoManager *mgr = gGeoManager);
57 // the Pixel Bus & extenders
58 TGeoVolumeAssembly* CreatePixelBusAndExtensions(Bool_t zpos = kTRUE, TGeoManager *mgr = gGeoManager);
59 // the thin part of a stave (grounding + ladders)
60 TGeoVolume *CreateStaveBase(Int_t layer, Double_t &width, Double_t &height, Double_t &thickness, TGeoManager *mgr=gGeoManager);
61 // the whole stave, including the thick parts (MCM cover, pixel bus & extensions)
62 TGeoVolumeAssembly* CreateStave(Int_t layer, Double_t &thickness, TGeoManager *mgr);
63 // displacement of staves on the carbon fiber sector
64 virtual void StavesInSector(TGeoVolume *moth, TGeoManager *mgr=gGeoManager);
65 // the complete Carbon Fiber sector (support + staves)
66 virtual void CarbonFiberSector(TGeoVolume *moth, Double_t &xAAtubeCenter0, Double_t &yAAtubeCenter0, TGeoManager *mgr=gGeoManager);
67 // the whole SPD barrel
68 virtual void SPDSector(TGeoVolume *moth, TGeoManager *mgr=gGeoManager);
69
70private:
71
72 // NOTE:
73 // all of the member functions which define a component of the final SPD
74 // will need to be defined as private once the design is fixed and does not
75 // need any longer to be checked and debugged.
76
77 // Computes shape of the SPD Sector given specific inputs (internal use only)
78 void SPDsectorShape(Int_t n, const Double_t *xc, const Double_t *yc, const Double_t *r,
79 const Double_t *ths, const Double_t *the, Int_t npr,
80 Int_t &m, Double_t **xp, Double_t **yp);
81
82 // computes a point o a line parallel to a given direction
83 // and with a fixed distance from it (internal use only)
84 void ParallelPosition(Double_t dist1, Double_t dist2, Double_t phi, Double_t &x, Double_t &y);
85
86 ClassDef(AliITSv11GeometrySPD,1) // ITS v11 Centeral SPD geometry
db486a6e 87};
88
89#endif