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,
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