Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / ITS / AliITSv11.h
CommitLineData
2b680d9b 1#ifndef ALIITSV11_H
2#define ALIITSV11_H
717cdf18 3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2b680d9b 4 * See cxx source for full Copyright notice */
717cdf18 5
6//========================================================================
effd7456 7//
8// Inner Traking System geometry v11
9//
10// Based on ROOT geometrical modeler
11//
717cdf18 12// B. Nilsen, L. Gaudichet, M. Sitta
13//
14//========================================================================
15
16
17// $Id:
18
19// $Log$
20// Revision 1.1 2011/06/10 14:48:24 masera
21// First version from v11Hybrid to v11 (M. Sitta)
22//
23
2b680d9b 24#include "AliITS.h"
717cdf18 25#include "AliITSInitGeometry.h"
26
27class AliITSv11GeometrySPD;
28class AliITSv11GeometrySDD;
29class AliITSv11GeometrySSD;
30class AliITSv11GeometrySupport;
31class TGeoVolume;
32class TGeoVolumeAssembly;
b7943f00 33
2b680d9b 34class AliITSv11 : public AliITS {
35
36 public:
37 AliITSv11();
717cdf18 38 AliITSv11(const char *title);
b78b741f 39 AliITSv11(const char *name, const char *title);
b7943f00 40 virtual ~AliITSv11() ;
717cdf18 41
42 virtual void AddAlignableVolumes() const;
2b680d9b 43 virtual void CreateGeometry();
44 virtual void CreateMaterials();
717cdf18 45
46 virtual AliITSv11GeometrySPD* GetSPDGeometry(){return fSPDgeom;}
47 virtual AliITSv11GeometrySDD* GetSDDGeometry(){return fSDDgeom;}
48 virtual AliITSv11GeometrySSD* GetSSDGeometry(){return fSSDgeom;}
49 virtual AliITSv11GeometrySupport* GetSupGeometry(){return fSupgeom;}
50
51 virtual Int_t IsVersion() const {// returns the ITS version number
52 return 11;}
2b680d9b 53 virtual void Init();
54 virtual void SetDefaults();
2b680d9b 55 virtual void StepManager();
b7943f00 56 virtual void SetDensityServicesByThickness(){// uses services density
57 // calculation based on the thickness of the services.
58 fByThick = kTRUE;}
59 virtual void SetDensityServicesByMass(){// uses services density
60 // calculation based on the Mass of the services.
61 fByThick = kFALSE;}
d583ec69 62
717cdf18 63
64 protected:
65 void SetT2Lmatrix(Int_t uid, Double_t yShift,
66 Bool_t yFlip, Bool_t yRot180=kFALSE) const; // Set T2L matrix in TGeoPNEntries
b7943f00 67
68 private:
717cdf18 69 AliITSv11(const AliITSv11 &source); // copy constructor
e939a978 70 AliITSv11& operator=(const AliITSv11 &source); // assignment operator
2b680d9b 71
012f0f4c 72 Bool_t fByThick; // Flag to use services materials by thickness
717cdf18 73 // ture, or mass false.
717cdf18 74 Int_t fIDMother; //! ITS Mother Volume id.
75
76 AliITSInitGeometry fInitGeom; //! Get access to decoding and AliITSgeom init functions
77 AliITSv11GeometrySPD *fSPDgeom; //! SPD Geometry
78 AliITSv11GeometrySDD *fSDDgeom; //! SDD Geometry
79 AliITSv11GeometrySSD *fSSDgeom; //! SSD Geometry
80 AliITSv11GeometrySupport *fSupgeom; //! Support Geometry
2b680d9b 81
d583ec69 82 ClassDef(AliITSv11,4) // ITS version 11
2b680d9b 83};
84
85#endif