]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSv11Hybrid.h
Added in ITS upgrade -
[u/mrichter/AliRoot.git] / ITS / AliITSv11Hybrid.h
index bef9dc611a9b060ceddce8c8e90e7555440b7be0..d529d42adfa8aac074cfbb28e8cbb38afc8d44f8 100644 (file)
 // Ludovic Gaudichet  (gaudichet@to.infn.it)
 //
 //========================================================================
+
+
+// $Id$
+
+// $Log$
+// Revision 1.7  2007/12/17 14:48:24  masera
+// Thermal shield between SPD and SDD (M. Sitta)
+//
+// Revision 1.6  2007/10/21 19:22:53  masera
+// Coding conventions
+//
+// Revision 1.5  2007/08/24 14:32:57  hristov
+// Introduction of SPD half-stave volumes, cleaning and new code (in relation to new SPD geometry) in AliITSv11Hybrid (Ludovic)
+//
+// Revision 1.4  2007/06/28 10:17:25  masera
+// Introduction of the new SSD geometry in simulation (AliITSv11Hybrid) and suppression of overlaps between old and new parts
+//
+// Revision 1.3  2007/05/08 16:57:42  masera
+// Updates concerning the geometry: versioning system, new V11hybrid version, bug fixes (B.Nilsend and L. Gaudichet
+//
+
  
 #include "AliITS.h"
+#include "AliITSInitGeometry.h"
 
+class  AliITSv11GeometrySPD;
 class  AliITSv11GeometrySDD;
+class  AliITSv11GeometrySSD;
+class  AliITSv11GeometrySupport;
+class  TGeoVolume;
+class TGeoVolumeAssembly;
 
 class AliITSv11Hybrid : public AliITS {
 
  public:
     AliITSv11Hybrid();
+    AliITSv11Hybrid(const char *title);
     AliITSv11Hybrid(const char *name, const char *title);
     virtual       ~AliITSv11Hybrid() ;
-    virtual void   BuildGeometry();
     virtual void   CreateGeometry();
     virtual void   CreateMaterials();
     virtual Int_t  IsVersion() const {// returns the ITS version number 
@@ -34,16 +61,6 @@ class AliITSv11Hybrid : public AliITS {
     virtual void   DrawModule() const;
     virtual void   StepManager();
     virtual void   AddAlignableVolumes() const;
-    virtual void   SetWriteDet(Bool_t det=kFALSE){ // 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=kFALSE){ //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; SetEUCLID();}
     virtual void   SetMinorVersion(Int_t v=2){ // Choose between existing minor versions
        fMinorVersion = v;}
     virtual void   SetThicknessDet1(Float_t v=200.){ 
@@ -70,16 +87,6 @@ class AliITSv11Hybrid : public AliITS {
     virtual void SetDensityServicesByMass(){// uses services density
        // calculation based on the Mass of the services.
        fByThick = kFALSE;}
-    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;}
     virtual Int_t GetMajorVersion() const {// return Major Version Number
        return fMajorVersion;}
     virtual Int_t GetMinorVersion() const {// return Major Version Number
@@ -105,24 +112,32 @@ class AliITSv11Hybrid : public AliITS {
 
  protected:
     void CreateOldGeometry();
-    void SetT2Lmatrix(const char *name, Double_t dAlpha, Double_t dxSign,
-                     Double_t yShift, Bool_t yFlip, Bool_t yRot180=kFALSE) const; // Set T2L matrix in TGeoPNEntries
+    void SetT2Lmatrix(Int_t uid, Double_t yShift,
+                     Bool_t yFlip, Bool_t yRot180=kFALSE) const; // Set T2L matrix in TGeoPNEntries
+    void CreateSPDThermalShield(TGeoVolume *moth);
+    TGeoVolumeAssembly *CreateSPDThermalShieldAssembly(const char *name,
+                  Double_t innerA, Double_t innerB, Double_t innerRadius,
+                  Double_t outerA, Double_t outerB, Double_t outerRadius,
+                  Double_t halflength, Double_t thickness,
+                  Double_t thicknessOmega, Double_t theta);
+    void SPDThermalShape(Double_t a, Double_t b, Double_t r, Double_t d,
+                        Double_t t, Double_t *x, Double_t *y);
+    void SPDOmegaShape(Double_t ina, Double_t inb, Double_t inr,
+                      Double_t oua, Double_t oub, Double_t our,
+                      Double_t dou, Double_t d  , Double_t t  ,
+                      Double_t *x, Double_t *y);
+    void FillSPDXtruShape(Double_t a, Double_t  b, Double_t  r,
+                         Double_t t, Double_t *x, Double_t *y);
 
  private:
     AliITSv11Hybrid(const AliITSv11Hybrid &source); // copy constructor
     AliITSv11Hybrid& operator=(const AliITSv11Hybrid &source); // assignment operator
-    void InitAliITSgeom();
+    void InitAliITSgeom() const;
 
-    // TString fEuclidGeomtery,fEuclidMaterial defined in AliModule.
-    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
     Float_t  fDet1;          // thickness of detector in SPD layer 1
     Float_t  fDet2;          // thickness of detector in SPD layer 2
     Float_t  fChip1;         // thickness of chip in SPD layer 1   
@@ -131,9 +146,13 @@ class AliITSv11Hybrid : public AliITS {
     Int_t    fFluid;          // flag to switch between water (=1) and freon (=0)
     Int_t fIDMother;          //! ITS Mother Volume id.
 
-    AliITSv11GeometrySDD *fSDDgeom;    //! SDD Geometry
+    AliITSInitGeometry fInitGeom;   //! Get access to decoding and AliITSgeom init functins
+    AliITSv11GeometrySPD *fSPDgeom; //! SPD Geometry
+    AliITSv11GeometrySDD *fSDDgeom; //! SDD Geometry
+    AliITSv11GeometrySSD *fSSDgeom; //! SSD Geometry
+    AliITSv11GeometrySupport *fSupgeom; //! Support Geometry
 
-    ClassDef(AliITSv11Hybrid,1)                          
+    ClassDef(AliITSv11Hybrid,0)                          
 };
  
 #endif