A coarse implementation of the support cylinders (Mario)
authorbelikov <Iouri.Belikov@cern.ch>
Tue, 15 Jul 2014 13:39:13 +0000 (15:39 +0200)
committerbelikov <Iouri.Belikov@cern.ch>
Tue, 15 Jul 2014 13:39:13 +0000 (15:39 +0200)
ITS/UPGRADE/AliITSUv1.cxx
ITS/UPGRADE/AliITSUv1.h

index d63857f..a5a715b 100644 (file)
@@ -421,10 +421,51 @@ void AliITSUv1::CreateGeometry() {
     }
     fUpGeom[j]->CreateLayer(dest);
   }
+  CreateSuppCyl(kTRUE,wrapVols[0]);
+  CreateSuppCyl(kFALSE,wrapVols[2]);
+
   delete[] wrapVols; // delete pointer only, not the volumes
   //
 }
 
+//____________________________________________________________
+//Service Barrel
+void AliITSUv1::CreateSuppCyl(const Bool_t innerBarrel,TGeoVolume *dest,const TGeoManager *mgr){
+  // Creates the Service Barrel (as a simple cylinder) for IB and OB
+  // Inputs:
+  //         innerBarrel : if true, build IB service barrel, otherwise for OB
+  //         dest        : the mother volume holding the service barrel
+  //         mgr         : the gGeoManager pointer (used to get the material)
+  //
+
+  Double_t rminIB =  4.7;
+  Double_t rminOB = 43.4;
+  Double_t zLenOB ;
+  Double_t cInt        = 0.22; //dimensioni cilindro di supporto interno
+  Double_t cExt        = 1.00; //dimensioni cilindro di supporto esterno
+//  Double_t phi1   =  180;
+//  Double_t phi2   =  360;
+
+
+  TGeoMedium *medCarbonFleece = mgr->GetMedium("ITS_CarbonFleece$");
+
+  if (innerBarrel){
+    zLenOB=((TGeoTube*)(dest->GetShape()))->GetDz();
+//    TGeoTube*ibSuppSh = new TGeoTubeSeg(rminIB,rminIB+cInt,zLenOB,phi1,phi2);
+    TGeoTube*ibSuppSh = new TGeoTube(rminIB,rminIB+cInt,zLenOB);
+    TGeoVolume *ibSupp = new TGeoVolume("ibSuppCyl",ibSuppSh,medCarbonFleece);
+    dest->AddNode(ibSupp,1);
+  }
+  else {
+    zLenOB=((TGeoTube*)(dest->GetShape()))->GetDz();
+    TGeoTube*obSuppSh=new TGeoTube(rminOB,rminOB+cExt,zLenOB);
+    TGeoVolume *obSupp=new TGeoVolume("obSuppCyl",obSuppSh,medCarbonFleece);
+    dest->AddNode(obSupp,1);
+  }
+
+  return;
+}
+
 //______________________________________________________________________
 void AliITSUv1::CreateMaterials() {
   // Create ITS materials
index a257cfd..9cc8fb7 100644 (file)
@@ -51,6 +51,7 @@ class AliITSUv1 : public AliITSU {
   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 nunit, Double_t lthick=0.,Double_t dthick=0.,UInt_t detType=0, Int_t buildFlag=0);