LCOV - code coverage report
Current view: top level - EVGEN - AliGenEMCocktail.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 16 6.2 %
Date: 2016-06-14 17:26:59 Functions: 1 23 4.3 %

          Line data    Source code
       1             : #ifndef ALIGENEMCOCKTAIL_H
       2             : #define ALIGENEMCOCKTAIL_H
       3             : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
       4             :  * See cxx source for full Copyright notice                               */
       5             : 
       6             : //
       7             : // Class to create the cocktail for physics with electrons, di-electrons,
       8             : // and photons from the decay of the following sources:
       9             : // pizero, eta, rho, omega, etaprime, phi
      10             : //
      11             : 
      12             : #include "AliGenCocktail.h"
      13             : #include "AliGenEMlib.h"
      14             : #include "AliDecayer.h"
      15             : #include "AliGenParam.h"
      16             : 
      17             : 
      18             : class AliGenCocktailEntry;
      19             : 
      20             : class AliGenEMCocktail : public AliGenCocktail
      21             : {
      22             : public:
      23             : 
      24             :   AliGenEMCocktail();
      25             :   enum GeneratorIndex_t { kPizero=0, kEta, kRho0, kOmega, kEtaprime, kPhi, kJpsi, kSigma0, kK0s, kDeltaPlPl, kDeltaPl, kDeltaMi, kDeltaZero, kRhoPl, kRhoMi, kK0star, kDirectRealGamma, kDirectVirtGamma, kGENs };
      26             :   enum ParticleGenerator_t { kGenPizero = 0x00001, kGenEta = 0x00002, kGenRho0 = 0x00004, kGenOmega = 0x00008, 
      27             :                              kGenEtaprime = 0x00010, kGenPhi = 0x00020, kGenJpsi = 0x00040, 
      28             :                              kGenDirectRealGamma = 0x00100, kGenDirectVirtGamma = 0x00200, kGenSigma0 = 0x00400, kGenK0s = 0x00800,
      29             :                              kGenDeltaPlPl = 0x01000, kGenDeltaPl = 0x02000, kGenDeltaMi = 0x04000, kGenDeltaZero = 0x08000, 
      30             :                              kGenRhoPl = 0x10000, kGenRhoMi = 0x20000, kGenK0star = 0x40000,  
      31             :                              kGenHadrons = 0x0007f, kGenGammas = 0x00300 };
      32             : 
      33             :   virtual ~AliGenEMCocktail();    
      34             :   virtual void Init();
      35             :   virtual void CreateCocktail();
      36             :   virtual void Generate();    
      37           0 :   Float_t GetDecayMode()                 const  { return fDecayMode   ;}
      38           0 :   Float_t GetWeightingMode()             const  { return fWeightingMode  ;}
      39           0 :   void    SetDecayer(AliDecayer* const decayer)      { fDecayer = decayer  ;}
      40           0 :   void    SetDecayMode(Decay_t decay)         { fDecayMode = decay  ;}
      41           0 :   void    SetWeightingMode(Weighting_t weight)      { fWeightingMode = weight ;}
      42           0 :   void    SetNPart(Int_t npart){ fNPart = npart; }
      43           0 :   void    SetPtParamPi0(AliGenEMlib::PtParamSetPi0_t PtSelect)  { fPtSelectPi0 = PtSelect ;}
      44           0 :   void    SetPtParamEta(AliGenEMlib::PtParamSetEta_t PtSelect)  { fPtSelectEta = PtSelect ;}
      45           0 :   void    SetPtParamOmega(AliGenEMlib::PtParamSetOmega_t PtSelect) { fPtSelectOmega = PtSelect ;}
      46           0 :   void    SetPtParamPhi(AliGenEMlib::PtParamSetPhi_t PtSelect)  { fPtSelectPhi = PtSelect ;}
      47           0 :   void    SetCollisionSystem(AliGenEMlib::CollisionSystem_t col)  { fCollisionSystem = col ;}
      48           0 :   void    SetCentrality(AliGenEMlib::Centrality_t cent)    { fCentrality = cent  ;}
      49           0 :   void    SetV2Systematic(AliGenEMlib::v2Sys_t v2sys)     { fV2Systematic = v2sys  ;}
      50           0 :   void    SetForceGammaConversion(Bool_t force=kTRUE)     { fForceConv=force   ;}
      51             :   void    SetHeaviestHadron(ParticleGenerator_t part);
      52             :     
      53             :   //***********************************************************************************************
      54             :   // This function allows to select the particle which should be procude based on 1 Integer value
      55             :   // this integer value is then bitwise compare to the values in SelectParticle
      56             :   // Examples: 
      57             :   // a) you would like to switch on: pi0, eta, rho0, omega, eta', phi, jpsi, sigma0 and all deltas
      58             :   //    implies you want the binary number: 00 1111 0100 0111 1111 = 
      59             :   //   which translates 62591_10 (in decimal) and F47F_16 (in hexadecimal)
      60             :   // b) you would like to switch on: pi0, eta, rho0, omega, eta', phi, sigma0 and 
      61             :   //    implies you want the binary number: 00 0000 0100 0011 1111 = 
      62             :   //   which translates 1087_10 (in decimal) and 43F_16 (in hexadecimal)
      63             :   // c) you would like to switch on: pi0, eta, rho0, omega, eta', phi, sigma0 and all deltas
      64             :   //    implies you want the binary number: 00 1111 0100 0011 1111 = 
      65             :   //   which translates 62527_10 (in decimal) and F43F_16 (in hexadecimal)
      66             :   // d) you would like to switch on: pi0, eta, rho0, omega, eta', phi
      67             :   //    implies you want the binary number: 00 0000 0000 0011 1111 = 
      68             :   //   which translates 63_10 (in decimal) and 3F_16 (in hexadecimal)
      69             :   //***********************************************************************************************
      70           0 :   void    SelectMotherParticles(UInt_t part)       { fSelectedParticles=part ;}
      71             : 
      72             : private:
      73             :   AliGenEMCocktail(const AliGenEMCocktail &cocktail); 
      74             :   AliGenEMCocktail & operator=(const AliGenEMCocktail &cocktail); 
      75             : 
      76             :   void AddSource2Generator(Char_t *nameReso, AliGenParam* const genReso);
      77             :   
      78             :   AliDecayer*      fDecayer;        // External decayer
      79             :   Decay_t       fDecayMode;    // decay mode in which resonances are forced to decay, default: kAll
      80             :   Weighting_t      fWeightingMode;  // weighting mode: kAnalog or kNonAnalog
      81             :   
      82             :   Int_t          fNPart;             // multiplicity of each source per event
      83             :   Double_t       fYieldArray[kGENs]; // array of dN/dy for each source
      84             : 
      85             :   AliGenEMlib::CollisionSystem_t  fCollisionSystem;   // selected collision system
      86             :   AliGenEMlib::PtParamSetPi0_t  fPtSelectPi0;   // selected pT parameterization for pi0
      87             :   AliGenEMlib::PtParamSetEta_t  fPtSelectEta;   // selected pT parameterization for eta
      88             :   AliGenEMlib::PtParamSetOmega_t  fPtSelectOmega;  // selected pT parameterization for omega
      89             :   AliGenEMlib::PtParamSetPhi_t  fPtSelectPhi;   // selected pT parameterization for phi
      90             :   AliGenEMlib::Centrality_t   fCentrality;   // selected centrality
      91             :   AliGenEMlib::v2Sys_t    fV2Systematic;   // selected systematic error for v2 parameters
      92             : 
      93             :   Bool_t        fForceConv;   // select whether you want to force all gammas to convert imidediately
      94             :   UInt_t        fSelectedParticles; // which particles to simulate, allows to switch on and off 32 different particles
      95             : 
      96             : 
      97             : 
      98           6 :   ClassDef(AliGenEMCocktail,2)       // cocktail for EM physics
      99             : };
     100             : 
     101             : #endif
     102             : 
     103             : 
     104             : 

Generated by: LCOV version 1.11