LCOV - code coverage report
Current view: top level - ACORDE/ACORDEbase - AliGenACORDE.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 14 7.1 %
Date: 2016-06-14 17:26:59 Functions: 1 21 4.8 %

          Line data    Source code
       1             : #ifndef ALIGENACORDE_H
       2             : #define ALIGENACORDE_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             : #include "AliGenerator.h"
       9             : #include "AliACORDEConstants.h"
      10             : 
      11             : class TClonesArray;
      12             : class TF1;
      13             : 
      14             : class AliGenACORDE : public AliGenerator {
      15             :  public:
      16             :   AliGenACORDE();
      17             :   AliGenACORDE(Int_t npart);
      18             :   virtual ~AliGenACORDE();
      19             : 
      20             :   virtual void Init();
      21             :   virtual void Generate();
      22           0 :   virtual void SetPart(Int_t part) {fIpart = part;}
      23             : 
      24           0 :   void SetMode(ECRMode mode) {fCRMode = mode;}
      25           0 :   const TString*  GetMode() const {return fCRModeName;}
      26             : 
      27           0 :   void SetZenithalAngleRange(Float_t min,Float_t max=0) {fZenithMin=min;fZenithMax=max;}
      28           0 :   void SetAzimuthalAngleRange(Float_t min, Float_t max=0) {fAzimuthMin=min;fAzimuthMax=max;}
      29             : 
      30             :   void SetGridRange(Int_t nx,Float_t xwidth, Int_t nz, Float_t zwidth);
      31           0 :   Float_t GetMomentumResolution() const {return fPResolution;}
      32             : 
      33           0 :   void SetMomentumDistrubutionFunction(TF1 *func) {fMomentumDist=func;}
      34           0 :   void SetZenithalDistributionFunction(TF1 *func) {fZenithDist = func;}
      35           0 :   void SetMomentumResolution(Float_t res=1.) {fPResolution=res;}
      36             : 
      37             :   Float_t GetMomentum() const;
      38             :   Float_t GetZenithAngle(Float_t mom) const;
      39             : 
      40             : 
      41           0 :   void SetNumberOfParticles(Int_t nParticles) {fNParticles = nParticles;}
      42             : 
      43             :   // The following methods are for testing pourpuses
      44           0 :   TF1* GetMomentumDistibution() const {return fMomentumDist;}
      45           0 :   TF1* GetUnfoldedDistribution() const {return fUnfoldedMomentumDist;}
      46             : 
      47           0 :   TClonesArray* GetArray() const {return fPDist;}
      48             : 
      49             :  protected:
      50             :   void InitApWeightFactors();
      51             :   void InitMomentumGeneration();
      52             :   void InitZenithalAngleGeneration();
      53             :   void GenerateOneMuonBundle();
      54             :   void GenerateOneSingleMuon(Bool_t withFlatMomentum=kFALSE);
      55             : 
      56             :  private:
      57             :   AliGenACORDE(const AliGenACORDE& gen);
      58             :   AliGenACORDE& operator= (const AliGenACORDE& gen);
      59             : 
      60             :   Int_t    fIpart;              //! Particle type.
      61             :   ECRMode  fCRMode;             //! Cosmic muons generation method flag
      62             :   TString* fCRModeName;         //! Cosmic muons generation mode name
      63             : 
      64             :   Float_t  fXwidth;             //! X width of the grid
      65             :   Int_t    fNx;                 //! Number of divisions in x
      66             :   Float_t  fZwidth;             //! Z widht of the  grid
      67             :   Int_t    fNz;                 //! Number of divisions in z
      68             :   Bool_t   fMuonGrid;           //! Flag for method (Muon-bundles) checkout
      69             : 
      70             :   Float_t  fZenithMin;          //! Minimum zenithal angle.
      71             :   Float_t  fZenithMax;          //! Maximum zenithal angle.
      72             : 
      73             :   Float_t  fAzimuthMin;         //! Minimum azimuthal angle.
      74             :   Float_t  fAzimuthMax;         //! Maximum azimuthal angle.
      75             : 
      76             :   Float_t  fPRange;             //! Cosmic muon momentum range width in GeVs.
      77             :   Float_t  fPResolution;        //! Momentum resolution in GeVs.
      78             : 
      79             :   TArrayF* fAp;                 //! a(p) correction factors for the ang. dist.
      80             : 
      81             :   TF1*     fMomentumDist;       //! Function to generate the momentum dist.
      82             :   TF1*     fUnfoldedMomentumDist; //!
      83             :   TF1*     fZenithDist;         //! Function to generate the zenith angle dist.
      84             : 
      85             :   TClonesArray* fPDist;         //! Array of fZenithDist, to be used by a(p).
      86             : 
      87             :   Int_t fNParticles;            //! Fixed number of particles per event
      88             : 
      89          12 :   ClassDef(AliGenACORDE, 1) // Generator for AliACORDE class
      90             : };
      91             : 
      92             : typedef AliGenACORDE AliGenCRT; // for backward compatibility
      93             : 
      94             : #endif // ALIGENACORDE_H

Generated by: LCOV version 1.11