X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=blobdiff_plain;f=EVGEN%2FAliGenHalo.h;h=c7c8379790ae7b3725c6464d9c70a06c95a23597;hp=4b9a3a056f225b3aece8b73017f8f04f4fdde754;hb=8c1efaa8b5e81781a37970057894972165de48fa;hpb=198bb1c7ab5437cd36dc37692d7ad850220b43fd diff --git a/EVGEN/AliGenHalo.h b/EVGEN/AliGenHalo.h index 4b9a3a056f2..c7c8379790a 100644 --- a/EVGEN/AliGenHalo.h +++ b/EVGEN/AliGenHalo.h @@ -9,27 +9,63 @@ #include "AliGenerator.h" #include -// Read background particles from a boundary source -// Very specialized generator to simulate background from beam halo. +// Read beam halo background particles from a boundary source +// Boundary source is in the LHCb format +// http://www.hep.manchester.ac.uk/u/robert/LHC_backgrounds/Note-MIBStudies.pdf +// and has been provided by Robert Appleby // Author: andreas.morsch@cern.ch class AliGenHalo : public AliGenerator { - public: +public: + enum constants{kY1Day0, kY1Day70, kY2D0, kY2D10, kY3D90, kLHCPR674Startup, kLHCPR674Conditioned}; AliGenHalo(); AliGenHalo(Int_t npart); - AliGenHalo(const AliGenHalo &Halo); virtual ~AliGenHalo(); virtual void Init(); virtual void SetFileName(TString filename) {fFileName=TString(filename);} virtual void Generate(); - AliGenHalo & operator=(const AliGenHalo & rhs); + virtual Float_t GasPressureWeight(Float_t zPrimary); + virtual void SetSide(Int_t flag = 1) {fSide = flag;} + virtual void SetNskip(Int_t nskip) {fNskip = nskip;} + virtual void SetRunPeriod(Int_t t = kY3D90) {fRunPeriod = t;} + virtual void SetTimePerEvent(Float_t t = 1.e-4) {fTimePerEvent = t;} + virtual void Draw(Option_t * opt=""); + virtual void CountEvents(); private: - void Copy(AliGenHalo &Halo) const; + virtual void SkipEvents(); + virtual Int_t ReadNextParticle(); protected: - FILE *fp; // ! Pointer to file + FILE* fFile; // ! Pointer to file TString fFileName; // Choose the file - ClassDef(AliGenHalo,1) // LHC background boundary source (MARS input) + Int_t fSide; // Muon arm side (1) / Castor side (-1) + Int_t fRunPeriod; // LHC Running Period + Float_t fTimePerEvent; // Time corresponding to one event [s] + Int_t fNskip; // Number of entries to skip + Float_t* fZ1; // ! z-positions for gas pressure tables + Float_t* fZ2; // ! z-positions for gas pressure tables + Float_t* fG1; // ! gas pressures + Float_t* fG2; // ! gas pressures + Int_t fGPASize; // ! Size of arrays + Int_t fLossID; // ! unique loss ID + Int_t fLossA; // ! atomic number of scatterer + Int_t fPdg; // ! pdg code + Float_t fLossT0; // ! relative time + Float_t fLossZ; // ! scaterring position + Float_t fLossW; // ! weight of proton loss + Float_t fXS; // ! x-position on scoring plane + Float_t fYS; // ! y-position on scoring plane + Float_t fZS; // ! z-position on scoring plane + Float_t fDX; // ! direction cosine x + Float_t fDY; // ! direction cosine y + Float_t fEkin; // ! kinetic energy + Float_t fTS; // ! relative arrival time + Float_t fWS; // ! weight + private: + AliGenHalo(const AliGenHalo &Halo); + AliGenHalo & operator=(const AliGenHalo & rhs); + + ClassDef(AliGenHalo,1) // LHC beam halo boundary source }; #endif