Using AliPHOSLoader instead of AliPHOSGetter
[u/mrichter/AliRoot.git] / LHC / AliLhcBeam.h
CommitLineData
11141716 1#ifndef ALILHCBEAM_H
21aa51f2 2#define ALILHCBEAM_H
11141716 3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6/* $Id$ */
21aa51f2 7
8//
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
15//
16
11141716 17#include <TNamed.h>
18#include "AliLhcMonitor.h"
19
20class AliLHC;
21
22class AliLhcBeam : public TNamed, public AliLhcMonitor
23{
24 public:
25 AliLhcBeam(AliLHC* lhc);
26 AliLhcBeam(const AliLhcBeam &beam);
27 virtual ~AliLhcBeam();
28
29 virtual void Init();
30
21aa51f2 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;}
11141716 39
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;}
47
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();
53
54
55 AliLhcBeam & operator=(const AliLhcBeam & rhs);
56
57 protected:
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
67
68 Float_t fA; // Atomic Number
69 Float_t fZ; // Charge Number
70 Float_t fEnergy; // Energy
71 Float_t fGamma; // relativistic gamma
72 //
73 Float_t* fTimeArray; // [fNmax] Time array
74 Float_t* fEmittanceArray; // [fNmax] Emittance array
75 Float_t* fEmittanceLArray; // [fNmax] Long. Emittance array
76//
77 ClassDef(AliLhcBeam,1) // LHC Beam
78};
79
80#endif
81
82
83
84
85