3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
9 // Class for a simple description of the LHC.
10 // The LHC is described by two beams,
11 // the interaction regions and the
12 // beam loss processes.
13 // Run paramters can be set in order to simulate the time evolution
14 // of emittance, number of particles per bunch and luminosity.
15 // Author: Andreas Morsch
16 // andreas.morsch@cern.ch
20 #include <TObjArray.h>
27 class AliLHC : public TObject
31 AliLHC(const AliLHC &lhc);
34 virtual void AddIRegion(AliLhcIRegion *region);
35 virtual void AddProcess(AliLhcProcess *process);
36 virtual void SetBeams(AliLhcBeam* beam1, AliLhcBeam* beam2);
37 virtual void SetTime(Float_t dt, Float_t tmax)
38 {fTimeStep = dt; fTimeMax = tmax;}
39 virtual void SetFillingTime(Float_t t) {fFillingTime = t;}
40 virtual void SetSetUpTime(Float_t t) {fSetUpTime = t;}
42 virtual void SetRadius(Float_t r) {fRadius = r;}
43 virtual void SetAverageBeta(Float_t b) {fAverageBeta = b;}
44 virtual void SetAverageDisp(Float_t b) {fAverageDisp = b;}
46 virtual Float_t Radius() const {return fRadius;}
47 virtual Float_t AverageBeta() const {return fAverageBeta;}
48 virtual Float_t AverageDisp() const {return fAverageDisp;}
49 virtual Float_t SetUpTime() const {return fSetUpTime;}
50 virtual Float_t FillingTime() const {return fFillingTime;}
53 virtual AliLhcBeam* Beam(Int_t i)
54 {return (AliLhcBeam*) (*fBeams)[i];}
55 virtual TList* IRegions() const {return fIRegions;}
57 virtual void EvolveTime();
58 virtual void Evaluate();
59 virtual Float_t Time() const {return fTime;}
60 virtual Float_t TimeStep() const {return fTimeStep;}
61 virtual Float_t* TimeA() const {return fTimeA;}
62 virtual Int_t Nt() const {return fNt;}
64 AliLHC & operator=(const AliLHC & rhs);
67 Int_t fNRegions; // Number of IR
68 Int_t fNProcesses; // Number of processes
69 TList* fIRegions; // List of intercation regions
70 TList* fProcesses; // Beam processes
71 TObjArray* fBeams; // Lhc beams
72 Float_t fRadius; // Radius (cm)
73 Float_t fAverageBeta; // Average beta (cm)
74 Float_t fAverageDisp; // Average dispersion (cm)
76 Int_t fNt; // Number of time steps
77 Int_t fNmax; // Max. Number of time steps
79 Float_t fTime; // Current time
80 Float_t* fTimeA; // [fNmax] Current time
81 Float_t fTimeStep; // Current time step
82 Float_t fTimeMax; // Maximal time
84 Float_t fFillingTime; // Filling Time
85 Float_t fSetUpTime; // Set-up time
87 ClassDef(AliLHC,1) // LHC manager class