3mm overlap corrected
[u/mrichter/AliRoot.git] / STRUCT / AliPIPEupgrade.h
1 #ifndef ALIPIPEUPGRADE_H
2 #define ALIPIPEUPGRADE_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id: AliPIPEupgrade.h 55648 2012-04-10 10:59:00Z cvetan $*/
7
8 /////////////////////////////////////////////////////////
9 // ALICE beam pipe geometry                            //
10 // This version uses TGeo.                             //
11 // Author:                                             //
12 // Andreas Morsch                                      //
13 // e-mail: andreas.morsch@cern.ch                      // 
14 /////////////////////////////////////////////////////////
15  
16 #include "AliPIPE.h"
17 class TGeoPcon;
18 class TGeoVolume;
19
20
21 class AliPIPEupgrade : public AliPIPE {
22     
23  public:
24   enum constants {kC=6, kAlu=9, kInox=19, kGetter=20, kBe=5, kVac=16,
25                   kAir=15, kAlBe=21, kPA = 22};
26   
27   AliPIPEupgrade(Bool_t coneIsBe=0, Float_t ro=1.8, Float_t width=0.08, Float_t hlength=61.52);
28   AliPIPEupgrade(const char *name, const char *title, 
29                  Bool_t coneIsBe=0, Float_t ro=1.8, Float_t width=0.08, Float_t hlength=61.52);
30   AliPIPEupgrade(Option_t *opt);
31   // virtual       ~AliPIPEupgrade() {}
32   virtual void   CreateGeometry();
33   virtual void   CreateMaterials();
34   virtual Int_t  IsVersion() const {return 0;}
35   virtual void   SetBeamBackgroundSimulation() {fBeamBackground = kTRUE;}
36   virtual void   AddAlignableVolumes() const;
37   
38   Float_t GetRmin() {return fIpPipeRo-fIpPipeWidth; }
39   Float_t GetRmax() {return fIpPipeRo; }
40   Float_t GetWidth(){return fIpPipeWidth; }
41   Float_t GetDz()   {return fIpHLength; } 
42           
43  protected:
44   virtual TGeoPcon*   MakeMotherFromTemplate(const TGeoPcon* shape, Int_t imin = -1, Int_t imax = -1, Float_t r0 = 0., Int_t nz =-1);
45   virtual TGeoPcon*   MakeInsulationFromTemplate(TGeoPcon* shape);
46   virtual TGeoVolume* MakeBellow(const char* ext, Int_t nc, Float_t rMin, Float_t rMax, Float_t dU, Float_t rPlie, Float_t dPlie);
47   Bool_t  fBeamBackground; // Flag for beam background simulations
48   
49   Bool_t  fConeIsBe;         // Flag for Material of the "long cone", can be set to Be (std is Alu)
50   Float_t fIpPipeRo;         // outer diameter of the beampipe around the IP
51   Float_t fIpPipeWidth;      // width of the beampipe around the IP
52   Float_t fIpHLength;        // half length of the beampipe around the IP // FixMe: up to now, hardcoded to 57.25cm
53  
54   ClassDef(AliPIPEupgrade, 1)  // Class for PIPE version using TGeo
55 };
56  
57 #endif
58