ROOT logo
#ifndef ALIGENHALO_H
#define ALIGENHALO_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id$ */


#include "AliGenerator.h"
#include <TString.h>

// 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:
    enum constants{kY1Day0, kY1Day70, kY2D0, kY2D10, kY3D90, kLHCPR674Startup, kLHCPR674Conditioned};
    AliGenHalo();
    AliGenHalo(Int_t npart);
    virtual ~AliGenHalo();
    virtual void Init();
    virtual void SetFileName(TString filename) {fFileName=TString(filename);}
    virtual void Generate();
    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:
    virtual void  SkipEvents();
    virtual Int_t ReadNextParticle();
 protected:
    FILE*    fFile;                       // ! Pointer to file
    TString  fFileName;                   //   Choose the file
    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






 AliGenHalo.h:1
 AliGenHalo.h:2
 AliGenHalo.h:3
 AliGenHalo.h:4
 AliGenHalo.h:5
 AliGenHalo.h:6
 AliGenHalo.h:7
 AliGenHalo.h:8
 AliGenHalo.h:9
 AliGenHalo.h:10
 AliGenHalo.h:11
 AliGenHalo.h:12
 AliGenHalo.h:13
 AliGenHalo.h:14
 AliGenHalo.h:15
 AliGenHalo.h:16
 AliGenHalo.h:17
 AliGenHalo.h:18
 AliGenHalo.h:19
 AliGenHalo.h:20
 AliGenHalo.h:21
 AliGenHalo.h:22
 AliGenHalo.h:23
 AliGenHalo.h:24
 AliGenHalo.h:25
 AliGenHalo.h:26
 AliGenHalo.h:27
 AliGenHalo.h:28
 AliGenHalo.h:29
 AliGenHalo.h:30
 AliGenHalo.h:31
 AliGenHalo.h:32
 AliGenHalo.h:33
 AliGenHalo.h:34
 AliGenHalo.h:35
 AliGenHalo.h:36
 AliGenHalo.h:37
 AliGenHalo.h:38
 AliGenHalo.h:39
 AliGenHalo.h:40
 AliGenHalo.h:41
 AliGenHalo.h:42
 AliGenHalo.h:43
 AliGenHalo.h:44
 AliGenHalo.h:45
 AliGenHalo.h:46
 AliGenHalo.h:47
 AliGenHalo.h:48
 AliGenHalo.h:49
 AliGenHalo.h:50
 AliGenHalo.h:51
 AliGenHalo.h:52
 AliGenHalo.h:53
 AliGenHalo.h:54
 AliGenHalo.h:55
 AliGenHalo.h:56
 AliGenHalo.h:57
 AliGenHalo.h:58
 AliGenHalo.h:59
 AliGenHalo.h:60
 AliGenHalo.h:61
 AliGenHalo.h:62
 AliGenHalo.h:63
 AliGenHalo.h:64
 AliGenHalo.h:65
 AliGenHalo.h:66
 AliGenHalo.h:67
 AliGenHalo.h:68
 AliGenHalo.h:69
 AliGenHalo.h:70
 AliGenHalo.h:71
 AliGenHalo.h:72
 AliGenHalo.h:73
 AliGenHalo.h:74
 AliGenHalo.h:75
 AliGenHalo.h:76