]> git.uio.no Git - u/mrichter/AliRoot.git/blob - LHC/AliLhcBeam.h
Using TMath::Pi() instead of kPI
[u/mrichter/AliRoot.git] / LHC / AliLhcBeam.h
1 #ifndef ALILHCBEAM_H
2 #define ALILHCBAEM_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7 #include <TNamed.h>
8 #include "AliLhcMonitor.h"
9
10 class AliLHC;
11
12 class AliLhcBeam : public TNamed, public AliLhcMonitor
13 {
14  public:
15     AliLhcBeam(AliLHC* lhc);
16     AliLhcBeam(const AliLhcBeam &beam);
17     virtual ~AliLhcBeam();
18     
19     virtual void Init();
20     
21     virtual Float_t N() {return fN;}
22     virtual Float_t A() {return fA;}
23     virtual Float_t Z() {return fZ;}
24     virtual Float_t Emittance()   {return fEmittance;}
25     virtual Float_t Energy()      {return fEnergy;}
26     virtual Float_t Gamma()       {return fGamma;}
27     virtual Float_t LongEmittance() {return fEmittanceL;}
28     virtual Float_t EnergySpread() {return fEnergySpread;}
29
30     virtual void  SetParticle(Float_t a, Float_t z) {fA = a; fZ = z;}
31     virtual void  SetN(Float_t n) {fN = n;}         
32     virtual void  SetAccelerator(AliLHC* acc) {fAccelerator = acc;}
33     virtual void  SetEnergy(Float_t  e) {fEnergy = e;}
34     virtual void  SetNEmittance(Float_t  e) {fNEmittance = e;}
35     virtual void  SetLongEmittance(Float_t  e) {fEmittanceL = e;}
36     virtual void  SetEnergySpread(Float_t b) {fEnergySpread = b;}    
37     
38     virtual void  RemoveParticles(Float_t loss);
39     virtual void  IncreaseEmittance(Float_t de, Float_t del);
40     virtual void  SetMonitor(Int_t n);
41     virtual void  Record();
42     virtual void  DrawPlots();
43
44
45     AliLhcBeam & operator=(const AliLhcBeam & rhs);
46     
47  protected:
48     AliLHC* fAccelerator;         // Accelerator
49     Float_t fN;                   // Number of Particles
50     Float_t fN0;                  // Initial Number of Particles
51     Float_t fNEmittance;          // Normalized Emittance
52     Float_t fEmittance;           // Emittance
53     Float_t fEmittance0;          // Initial Emittance
54     Float_t fEmittanceL;          // Longitudinal Emittance
55     Float_t fEmittanceL0;         // Longitudinal Emittance
56     Float_t fEnergySpread;        // Energy Spread
57
58     Float_t fA;                   // Atomic Number
59     Float_t fZ;                   // Charge Number 
60     Float_t fEnergy;              // Energy   
61     Float_t fGamma;               // relativistic gamma 
62     //
63     Float_t* fTimeArray;          // [fNmax] Time array
64     Float_t* fEmittanceArray;     // [fNmax] Emittance array
65     Float_t* fEmittanceLArray;    // [fNmax] Long. Emittance array      
66 //
67     ClassDef(AliLhcBeam,1) // LHC Beam
68 };
69
70 #endif
71
72
73
74
75