ROOT logo
#ifndef ALIPIPEUPGRADE_H
#define ALIPIPEUPGRADE_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id: AliPIPEupgrade.h 55648 2012-04-10 10:59:00Z cvetan $*/

/////////////////////////////////////////////////////////
// ALICE beam pipe geometry                            //
// This version uses TGeo.                             //
// Author:                                             //
// Andreas Morsch                                      //
// e-mail: andreas.morsch@cern.ch                      // 
/////////////////////////////////////////////////////////
 
#include "AliPIPE.h"
class TGeoPcon;
class TGeoVolume;


class AliPIPEupgrade : public AliPIPE {
    
 public:
  enum constants {kC=6, kAlu=9, kInox=19, kGetter=20, kBe=5, kVac=16,
		  kAir=15, kAlBe=21, kPA = 22};
  
  AliPIPEupgrade(Float_t ro=-1, Float_t thick=-1);
  AliPIPEupgrade(const char *name, const char *title, 
		 Float_t ro=-1, Float_t thick=-1);
  AliPIPEupgrade(Option_t *opt);
  // virtual       ~AliPIPEupgrade() {}
  virtual void   CreateGeometry();
  virtual void   CreateMaterials();
  virtual Int_t  IsVersion() const {return 0;}
  virtual void   SetBeamBackgroundSimulation() {fBeamBackground = kTRUE;}
  virtual void   AddAlignableVolumes() const;
  
  Float_t GetRmin() {return fBePipeRmax-fBePipeThick; }
  Float_t GetRmax() {return fBePipeRmax; }
  Float_t GetWidth(){return fBePipeThick; }
  Float_t GetDz()   {return fIpHLength; } 
	  
 protected:
  virtual TGeoPcon*   MakeMotherFromTemplate(const TGeoPcon* shape, Int_t imin = -1, Int_t imax = -1, Float_t r0 = 0., Int_t nz =-1);
  virtual TGeoPcon*   MakeInsulationFromTemplate(TGeoPcon* shape);
  virtual TGeoVolume* MakeBellow(const char* ext, Int_t nc, Float_t rMin, Float_t rMax, Float_t dU, Float_t rPlie, Float_t dPlie);
  virtual TGeoVolume* MakeBellowCside(const char* ext, Int_t nc, Float_t rMin, Float_t rMax, Float_t rPlie, Float_t dPlie);

  Bool_t  fBeamBackground; // Flag for beam background simulations
  Bool_t  fConeIsBe;         // Flag for Material of the "long cone", can be set to Be (std is Alu)
  Float_t fBePipeRmax;       // outer diameter of the Be section
  Float_t fBePipeThick;      // Be section thickness 
  Float_t fIpHLength;        // half length of the beampipe around the IP // FixMe: up to now, hardcoded to 57.25cm
 
  ClassDef(AliPIPEupgrade, 2)  // Class for PIPE version using TGeo
};
 
#endif
 
 AliPIPEupgrade.h:1
 AliPIPEupgrade.h:2
 AliPIPEupgrade.h:3
 AliPIPEupgrade.h:4
 AliPIPEupgrade.h:5
 AliPIPEupgrade.h:6
 AliPIPEupgrade.h:7
 AliPIPEupgrade.h:8
 AliPIPEupgrade.h:9
 AliPIPEupgrade.h:10
 AliPIPEupgrade.h:11
 AliPIPEupgrade.h:12
 AliPIPEupgrade.h:13
 AliPIPEupgrade.h:14
 AliPIPEupgrade.h:15
 AliPIPEupgrade.h:16
 AliPIPEupgrade.h:17
 AliPIPEupgrade.h:18
 AliPIPEupgrade.h:19
 AliPIPEupgrade.h:20
 AliPIPEupgrade.h:21
 AliPIPEupgrade.h:22
 AliPIPEupgrade.h:23
 AliPIPEupgrade.h:24
 AliPIPEupgrade.h:25
 AliPIPEupgrade.h:26
 AliPIPEupgrade.h:27
 AliPIPEupgrade.h:28
 AliPIPEupgrade.h:29
 AliPIPEupgrade.h:30
 AliPIPEupgrade.h:31
 AliPIPEupgrade.h:32
 AliPIPEupgrade.h:33
 AliPIPEupgrade.h:34
 AliPIPEupgrade.h:35
 AliPIPEupgrade.h:36
 AliPIPEupgrade.h:37
 AliPIPEupgrade.h:38
 AliPIPEupgrade.h:39
 AliPIPEupgrade.h:40
 AliPIPEupgrade.h:41
 AliPIPEupgrade.h:42
 AliPIPEupgrade.h:43
 AliPIPEupgrade.h:44
 AliPIPEupgrade.h:45
 AliPIPEupgrade.h:46
 AliPIPEupgrade.h:47
 AliPIPEupgrade.h:48
 AliPIPEupgrade.h:49
 AliPIPEupgrade.h:50
 AliPIPEupgrade.h:51
 AliPIPEupgrade.h:52
 AliPIPEupgrade.h:53
 AliPIPEupgrade.h:54
 AliPIPEupgrade.h:55
 AliPIPEupgrade.h:56
 AliPIPEupgrade.h:57
 AliPIPEupgrade.h:58
 AliPIPEupgrade.h:59