1 #ifndef ALIGENHALOPROTVINO_H
2 #define ALIGENHALOPROTVINO_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
9 #include "AliGenerator.h"
12 // Read background particles from a boundary source
13 // Very specialized generator to simulate background from beam halo.
14 // Author: andreas.morsch@cern.ch
16 class AliGenHaloProtvino : public AliGenerator
19 enum constants{kY1Day0, kY1Day70, kY2D0, kY2D10, kY3D90, kLHCPR674Startup, kLHCPR674Conditioned};
21 AliGenHaloProtvino(Int_t npart);
22 AliGenHaloProtvino(const AliGenHaloProtvino &HaloProtvino);
23 virtual ~AliGenHaloProtvino();
25 virtual void SetFileName(TString filename) {fFileName=TString(filename);}
26 virtual void Generate();
27 virtual Float_t GasPressureWeight(Float_t zPrimary);
28 virtual void SetSide(Int_t flag = 1) {fSide = flag;}
29 virtual void SetNskip(Int_t nskip) {fNskip = nskip;}
30 virtual void SetRunPeriod(Int_t t = kY3D90) {fRunPeriod = t;}
31 virtual void SetTimePerEvent(Float_t t = 1.e-4) {fTimePerEvent = t;}
32 virtual void Draw(Option_t * opt="");
33 AliGenHaloProtvino & operator=(const AliGenHaloProtvino & rhs);
36 FILE* fFile; // ! Pointer to file
37 TString fFileName; // Choose the file
38 Int_t fSide; // Muon arm side (1) / Castor side (-1)
39 Int_t fRunPeriod; // LHC Running Period
40 Float_t fTimePerEvent; // Time corresponding to one event [s]
41 Int_t fNskip; // Number of entries to skip
42 Float_t* fZ1; // ! z-positions for gas pressure tables
43 Float_t* fZ2; // ! z-positions for gas pressure tables
44 Float_t* fG1; // ! gas pressures
45 Float_t* fG2; // ! gas pressures
46 Int_t fGPASize; // ! Size of arrays
48 void Copy(TObject&) const;
49 ClassDef(AliGenHaloProtvino,1) // LHC background boundary source (Protvino Group results)