Line data Source code
1 : #ifndef ALIGENHALO_H
2 : #define ALIGENHALO_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 :
8 :
9 : #include "AliGenerator.h"
10 : #include <TString.h>
11 :
12 : // Read beam halo background particles from a boundary source
13 : // Boundary source is in the LHCb format
14 : // http://www.hep.manchester.ac.uk/u/robert/LHC_backgrounds/Note-MIBStudies.pdf
15 : // and has been provided by Robert Appleby
16 : // Author: andreas.morsch@cern.ch
17 :
18 : class AliGenHalo : public AliGenerator
19 : {
20 : public:
21 : enum constants{kY1Day0, kY1Day70, kY2D0, kY2D10, kY3D90, kLHCPR674Startup, kLHCPR674Conditioned};
22 : AliGenHalo();
23 : AliGenHalo(Int_t npart);
24 : virtual ~AliGenHalo();
25 : virtual void Init();
26 0 : virtual void SetFileName(TString filename) {fFileName=TString(filename);}
27 : virtual void Generate();
28 : virtual Float_t GasPressureWeight(Float_t zPrimary);
29 0 : virtual void SetSide(Int_t flag = 1) {fSide = flag;}
30 0 : virtual void SetNskip(Int_t nskip) {fNskip = nskip;}
31 0 : virtual void SetRunPeriod(Int_t t = kY3D90) {fRunPeriod = t;}
32 0 : virtual void SetTimePerEvent(Float_t t = 1.e-4) {fTimePerEvent = t;}
33 : virtual void Draw(Option_t * opt="");
34 : virtual void CountEvents();
35 : private:
36 : virtual void SkipEvents();
37 : virtual Int_t ReadNextParticle();
38 : protected:
39 : FILE* fFile; // ! Pointer to file
40 : TString fFileName; // Choose the file
41 : Int_t fSide; // Muon arm side (1) / Castor side (-1)
42 : Int_t fRunPeriod; // LHC Running Period
43 : Float_t fTimePerEvent; // Time corresponding to one event [s]
44 : Int_t fNskip; // Number of entries to skip
45 : Float_t* fZ1; // ! z-positions for gas pressure tables
46 : Float_t* fZ2; // ! z-positions for gas pressure tables
47 : Float_t* fG1; // ! gas pressures
48 : Float_t* fG2; // ! gas pressures
49 : Int_t fGPASize; // ! Size of arrays
50 : Int_t fLossID; // ! unique loss ID
51 : Int_t fLossA; // ! atomic number of scatterer
52 : Int_t fPdg; // ! pdg code
53 : Float_t fLossT0; // ! relative time
54 : Float_t fLossZ; // ! scaterring position
55 : Float_t fLossW; // ! weight of proton loss
56 : Float_t fXS; // ! x-position on scoring plane
57 : Float_t fYS; // ! y-position on scoring plane
58 : Float_t fZS; // ! z-position on scoring plane
59 : Float_t fDX; // ! direction cosine x
60 : Float_t fDY; // ! direction cosine y
61 : Float_t fEkin; // ! kinetic energy
62 : Float_t fTS; // ! relative arrival time
63 : Float_t fWS; // ! weight
64 : private:
65 : AliGenHalo(const AliGenHalo &Halo);
66 : AliGenHalo & operator=(const AliGenHalo & rhs);
67 :
68 6 : ClassDef(AliGenHalo,1) // LHC beam halo boundary source
69 : };
70 : #endif
71 :
72 :
73 :
74 :
75 :
76 :
|