#ifndef ALIITSV11_H
#define ALIITSV11_H
-/* Copyright(c) 2007-2008, ALICE Experiment at CERN, All rights reserved. *
+/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-//************************************************************************
+
+//========================================================================
//
// Inner Traking System geometry v11
//
// Based on ROOT geometrical modeler
//
-// B. Nilsen, L. Gaudichet
-//************************************************************************
-#include "AliITSInitGeometry.h"
+// B. Nilsen, L. Gaudichet, M. Sitta
+//
+//========================================================================
+
+
+// $Id:
+
+// $Log$
+// Revision 1.1 2011/06/10 14:48:24 masera
+// First version from v11Hybrid to v11 (M. Sitta)
+//
+
#include "AliITS.h"
-class AliITSv11GeometrySPD;
-class AliITSv11GeometrySDD;
-class AliITSv11GeometrySSD;
-class AliITSv11GeometrySupport;
+#include "AliITSInitGeometry.h"
+
+class AliITSv11GeometrySPD;
+class AliITSv11GeometrySDD;
+class AliITSv11GeometrySSD;
+class AliITSv11GeometrySupport;
+class TGeoVolume;
+class TGeoVolumeAssembly;
class AliITSv11 : public AliITS {
public:
AliITSv11();
+ AliITSv11(const char *title);
AliITSv11(const char *name, const char *title);
- AliITSv11(Int_t debugITS, Int_t debugSPD = 0, Int_t debugSDD = 0,
- Int_t debugSSD = 0, Int_t debugSUP = 0);
virtual ~AliITSv11() ;
- virtual void BuildGeometry();
+
+ virtual void AddAlignableVolumes() const;
virtual void CreateGeometry();
virtual void CreateMaterials();
+
+ virtual AliITSv11GeometrySPD* GetSPDGeometry(){return fSPDgeom;}
+ virtual AliITSv11GeometrySDD* GetSDDGeometry(){return fSDDgeom;}
+ virtual AliITSv11GeometrySSD* GetSSDGeometry(){return fSSDgeom;}
+ virtual AliITSv11GeometrySupport* GetSupGeometry(){return fSupgeom;}
+
+ virtual Int_t IsVersion() const {// returns the ITS version number
+ return 11;}
virtual void Init();
virtual void SetDefaults();
- virtual void DrawModule() const;
virtual void StepManager();
- //virtual AliITSv11GeometrySPD* GetSPDGeometry(){return fSPDgeom;}
- virtual AliITSv11GeometrySDD* GetSDDGeometry(){return fSDDgeom;}
- //virtual AliITSv11GeometrySupport* GetSupGeometry(){return fSupgeom;}
- virtual Int_t IsVersion() const { return kv11;} // ITS version number
- virtual Int_t GetMajorVersion() const {// return Major Version Number
- return fMajorVersion;}
- virtual Int_t GetMinorVersion() const {// return Major Version Number
- return fMinorVersion;}
-
-
- virtual void SetWriteDet(Bool_t det=kTRUE){ // set .det write
- fGeomDetOut = det;}
- virtual void SetWriteDet(const char *f){ // set write file
- strncpy(fWrite,f,60);fGeomDetOut = kTRUE;}
- virtual void SetReadDet(Bool_t det=kTRUE){ //set .det read
- fGeomDetIn = det;}
- virtual void SetReadDet(const char *f){ // set read file
- strncpy(fRead,f,60);fGeomDetIn = kTRUE;}
- virtual void SetEUCLIDFileName(const char *f){ // set write file
- fEuclidGeometry=f;fEuclidOut = kTRUE;}
- virtual void SetMinorVersion(Int_t v=0){ // Choose between existing minor versions
- fMinorVersion = v;}
-
virtual void SetDensityServicesByThickness(){// uses services density
// calculation based on the thickness of the services.
fByThick = kTRUE;}
virtual void SetDensityServicesByMass(){// uses services density
// calculation based on the Mass of the services.
fByThick = kFALSE;}
- virtual Bool_t GetEUCLID() const {return fEuclidOut;}// returns value Euclid flag.
- virtual const char *GetEULIIDFileName() const{ // return .euc file name
- return fEuclidGeometry.Data();}
- virtual Bool_t GetWriteDet() const { // returns value GeomDetOut flag.
- return fGeomDetOut;}
- virtual Bool_t GetReadDet() const { // returns value GeomDetIn flag.
- return fGeomDetIn;}
- virtual char *GetReadDetFileName(){ // return .det read file name
- if(fRead[0]!='\0') return fRead; else return fEuclidGeomDet;}
- virtual char *GetWriteDetFileName(){ // return .det write file name
- if(fWrite[0]!='\0') return fWrite; else return fEuclidGeomDet;}
+ protected:
+ void SetT2Lmatrix(Int_t uid, Double_t yShift,
+ Bool_t yFlip, Bool_t yRot180=kFALSE) const; // Set T2L matrix in TGeoPNEntries
+
private:
- AliITSv11(const AliITSv11 &source); // copy constructor
+ AliITSv11(const AliITSv11 &source); // copy constructor
AliITSv11& operator=(const AliITSv11 &source); // assignment operator
- //void InitAliITSgeom();
- Bool_t fGeomDetOut; // Flag to write .det file out
- Bool_t fGeomDetIn; // Flag to read .det file or directly from Geat.
Bool_t fByThick; // Flag to use services materials by thickness
- // ture, or mass false.
- Int_t fMajorVersion; // Major version number == IsVersion
- Int_t fMinorVersion; // Minor version number
- char fEuclidGeomDet[60];// file where detector transormation are define.
- char fRead[60]; //! file name to read .det file
- char fWrite[60]; //! file name to write .det file
- AliITSv11GeometrySPD *fSPDgeom; //SPD Geometry
- AliITSv11GeometrySDD *fSDDgeom; //! SDD Geometry
- AliITSv11GeometrySSD *fSSDgeom; //SSD Geometry
- AliITSv11GeometrySupport *fSupgeom; //Support Geometry
- AliITSInitGeometry fIgm; //! Geometry initlization object
-
- ClassDef(AliITSv11,1) // ITS version 11
+ // ture, or mass false.
+ Int_t fIDMother; //! ITS Mother Volume id.
+
+ AliITSInitGeometry fInitGeom; //! Get access to decoding and AliITSgeom init functions
+ AliITSv11GeometrySPD *fSPDgeom; //! SPD Geometry
+ AliITSv11GeometrySDD *fSDDgeom; //! SDD Geometry
+ AliITSv11GeometrySSD *fSSDgeom; //! SSD Geometry
+ AliITSv11GeometrySupport *fSupgeom; //! Support Geometry
+
+ ClassDef(AliITSv11,4) // ITS version 11
};
#endif