]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/UPGRADE/AliITSUv1.h
A coarse implementation of the support cylinders (Mario)
[u/mrichter/AliRoot.git] / ITS / UPGRADE / AliITSUv1.h
index cad621988071185fb9bb7271578ff258eeb2fb00..9cc8fb745bc2cfd58b871cc150a853d057028609 100644 (file)
@@ -40,16 +40,23 @@ class AliITSUv1 : public AliITSU {
   
 
   AliITSUv1();
-  AliITSUv1(const char *title, const Int_t nlay);
+  AliITSUv1(const char *title, Int_t nlay);
   virtual       ~AliITSUv1() ;
   virtual void   SetNWrapVolumes(Int_t n);
   virtual void   AddAlignableVolumes() const;
+  void           AddAlignableVolumesLayer(int lr, TString& parent,Int_t &lastUID) const;
+  void           AddAlignableVolumesStave(int lr, int st, TString& parent,Int_t &lastUID) const;
+  void           AddAlignableVolumesHalfStave(int lr, int st, int sst, TString& parent,Int_t &lastUID) const;
+  void           AddAlignableVolumesModule(int lr, int st, int sst, int md, TString& parent,Int_t &lastUID) const;
+  void           AddAlignableVolumesChip(int lr, int st, int sst, int md, int ch, TString& parent,Int_t &lastUID) const;
+
   virtual void   CreateGeometry();
+         void   CreateSuppCyl(const Bool_t innerBarrel,TGeoVolume *dest,const TGeoManager *mgr=gGeoManager);
   virtual void   CreateMaterials();
   virtual void   DefineLayer(Int_t nlay,Double_t phi0,Double_t r,Double_t zlen,Int_t nstav,
-                            Int_t nmod, Double_t lthick=0.,Double_t dthick=0.,UInt_t detType=0, Int_t buildFlag=0);
+                            Int_t nunit, Double_t lthick=0.,Double_t dthick=0.,UInt_t detType=0, Int_t buildFlag=0);
   virtual void   DefineLayerTurbo(Int_t nlay,Double_t phi0,Double_t r,Double_t zlen,Int_t nstav,
-                                 Int_t nmod,Double_t width,Double_t tilt,
+                                 Int_t nunit,Double_t width,Double_t tilt,
                                  Double_t lthick = 0.,Double_t dthick = 0.,UInt_t detType=0, Int_t buildFlag=0);
   virtual void   GetLayerParameters(Int_t nlay, Double_t &phi0,Double_t &r, Double_t &zlen,
                                    Int_t &nstav, Int_t &nmod,
@@ -73,24 +80,25 @@ class AliITSUv1 : public AliITSU {
   AliITSUv1(const AliITSUv1 &source); // copy constructor
   AliITSUv1& operator=(const AliITSUv1 &source); // assignment operator
 
-  TGeoVolume* CreateWrapperVolume(const Int_t nLay);
+  TGeoVolume* CreateWrapperVolume(Int_t nLay);
 
   //
   Int_t     fNWrapVol;       // number of wrapper volumes
   Double_t* fWrapRMin;       // min radius of wrapper volume
   Double_t* fWrapRMax;       // max radius of wrapper volume
   Double_t* fWrapZSpan;      // Z span of wrapper volume
+  Int_t*    fLay2WrapV;      // id of wrapper layer to which layer belongs (-1 if not wrapped)
   Bool_t   *fLayTurbo;       // True for "turbo" layers
   Double_t *fLayPhi0;        // Vector of layer's 1st stave phi in lab
   Double_t *fLayRadii;       // Vector of layer radii
   Double_t *fLayZLength;     // Vector of layer length along Z
   Int_t    *fStavPerLay;     // Vector of number of staves per layer
-  Int_t    *fModPerStav;     // Vector of number of chips per stave
-  Double_t *fStaThick;       // Vector of stave thicknesses
-  Double_t *fStaWidth;       // Vector of stave width (only used for turbo)
-  Double_t *fStaTilt;        // Vector of stave tilt (only used for turbo)
+  Int_t    *fUnitPerStave;   // Vector of number of "units" per stave
+  Double_t *fStaveThick;     // Vector of stave thicknesses
+  Double_t *fStaveWidth;     // Vector of stave width (only used for turbo)
+  Double_t *fStaveTilt;      // Vector of stave tilt (only used for turbo)
   Double_t *fDetThick;       // Vector of detector thicknesses
-  UInt_t   *fChipTypeID;      // Vector of detector type id
+  UInt_t   *fChipTypeID;     // Vector of detector type id
   Int_t    *fBuildLevel;     // Vector of Material Budget Studies
   //  
   AliITSUv1Layer **fUpGeom; //! Geometry