Updated version.
[u/mrichter/AliRoot.git] / EVGEN / AliGenHaloProtvino.h
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                               */
5
6 /* $Id $ */
7
8
9 #include "AliGenerator.h"
10 #include <TString.h>
11
12 // Read background particles from a boundary source
13 // Very specialized generator to simulate background from beam halo.
14 // Author: andreas.morsch@cern.ch
15
16 class AliGenHaloProtvino : public AliGenerator
17 {
18 public:
19     enum constants{kY1Day0, kY1Day70, kY2D0, kY2D10, kY3D90, kLHCPR674Startup, kLHCPR674Conditioned};
20     AliGenHaloProtvino();
21     AliGenHaloProtvino(Int_t npart);
22     virtual ~AliGenHaloProtvino();
23     virtual void Init();
24     virtual void SetFileName(TString filename) {fFileName=TString(filename);}
25     virtual void Generate();
26     virtual Float_t GasPressureWeight(Float_t zPrimary);
27     virtual void SetSide(Int_t flag = 1) {fSide = flag;}
28     virtual void SetNskip(Int_t nskip) {fNskip = nskip;}
29     virtual void SetRunPeriod(Int_t t = kY3D90) {fRunPeriod = t;}
30     virtual void SetTimePerEvent(Float_t t = 1.e-4) {fTimePerEvent = t;}
31     virtual void Draw(Option_t * opt="");
32
33 protected:
34   FILE*    fFile;                       // ! Pointer to file
35   TString  fFileName;                   //   Choose the file
36   Int_t    fSide;                       //   Muon arm side (1) / Castor side (-1)
37   Int_t    fRunPeriod;                  //   LHC Running Period
38   Float_t  fTimePerEvent;               //   Time corresponding to one event [s]
39   Int_t    fNskip;                      //   Number of entries to skip
40   Float_t* fZ1;                         // ! z-positions for gas pressure tables
41   Float_t* fZ2;                         // ! z-positions for gas pressure tables 
42   Float_t* fG1;                         // ! gas pressures
43   Float_t* fG2;                         // ! gas pressures
44   Int_t    fGPASize;                    // ! Size of arrays
45  private:
46   AliGenHaloProtvino(const AliGenHaloProtvino &HaloProtvino);
47   AliGenHaloProtvino & operator=(const AliGenHaloProtvino & rhs);
48
49   ClassDef(AliGenHaloProtvino,1)        //   LHC background boundary source (Protvino Group results)
50       
51
52 };
53 #endif
54
55
56
57
58
59