3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
9 // Class that holds all parameters about an LHC beam.
10 // The parameters can change with time.
11 // A monitor can be set that stores the time distribution of
12 // emittance and number of particles per bunch.
13 // Author: Andreas Morsch
14 // andreas.morsch@cern.ch
18 #include "AliLhcMonitor.h"
22 class AliLhcBeam : public TNamed, public AliLhcMonitor
25 AliLhcBeam(AliLHC* lhc);
26 AliLhcBeam(const AliLhcBeam &beam);
27 virtual ~AliLhcBeam();
31 virtual Float_t N() const {return fN;}
32 virtual Float_t A() const {return fA;}
33 virtual Float_t Z() const {return fZ;}
34 virtual Float_t Emittance() const {return fEmittance;}
35 virtual Float_t Energy() const {return fEnergy;}
36 virtual Float_t Gamma() const {return fGamma;}
37 virtual Float_t LongEmittance() const {return fEmittanceL;}
38 virtual Float_t EnergySpread() const {return fEnergySpread;}
40 virtual void SetParticle(Float_t a, Float_t z) {fA = a; fZ = z;}
41 virtual void SetN(Float_t n) {fN = n;}
42 virtual void SetAccelerator(AliLHC* acc) {fAccelerator = acc;}
43 virtual void SetEnergy(Float_t e) {fEnergy = e;}
44 virtual void SetNEmittance(Float_t e) {fNEmittance = e;}
45 virtual void SetLongEmittance(Float_t e) {fEmittanceL = e;}
46 virtual void SetEnergySpread(Float_t b) {fEnergySpread = b;}
48 virtual void RemoveParticles(Float_t loss);
49 virtual void IncreaseEmittance(Float_t de, Float_t del);
50 virtual void SetMonitor(Int_t n);
51 virtual void Record();
52 virtual void DrawPlots();
55 AliLhcBeam & operator=(const AliLhcBeam & rhs);
58 AliLHC* fAccelerator; // Accelerator
59 Float_t fN; // Number of Particles
60 Float_t fN0; // Initial Number of Particles
61 Float_t fNEmittance; // Normalized Emittance
62 Float_t fEmittance; // Emittance
63 Float_t fEmittance0; // Initial Emittance
64 Float_t fEmittanceL; // Longitudinal Emittance
65 Float_t fEmittanceL0; // Longitudinal Emittance
66 Float_t fEnergySpread; // Energy Spread
68 Float_t fA; // Atomic Number
69 Float_t fZ; // Charge Number
70 Float_t fEnergy; // Energy
71 Float_t fGamma; // relativistic gamma
73 Float_t* fTimeArray; // [fNmax] Time array
74 Float_t* fEmittanceArray; // [fNmax] Emittance array
75 Float_t* fEmittanceLArray; // [fNmax] Long. Emittance array
77 ClassDef(AliLhcBeam,1) // LHC Beam