]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EMCAL/AliEMCALGeneratorFactory.h
Size of data member arrays corrected
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALGeneratorFactory.h
1 #ifndef ALIEMCALGENERATORFACTORY_H
2 #define ALIEMCALGENERATORFACTORY_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 //  Class for generator factory which used in production for EMCAL.
10 //  Based on Config.C file 
11 //*-- Author: Aleksei Pavlinov (WSU)
12 #include <TObject.h>
13 #include <TMath.h>
14 #include "AliPDG.h"
15 // 23-aug-04 for kGamma and kPi0
16 #include <TPDGCode.h>
17
18 class AliGenerator;
19 class AliGenHijing;
20 class AliGenPythia;
21 class AliGenBox;
22 class TString;
23
24 enum PprRunFact_t 
25 {
26     kTest50,
27     kParam_8000,   kParam_4000,  kParam_2000, 
28     kHijing_cent1, kHijing_cent2, 
29     kHijing_per1,  kHijing_per2, kHijing_per3, kHijing_per4,  kHijing_per5,
30     kHijing_jj25,  kHijing_jj50, kHijing_jj75, kHijing_jj100, kHijing_jj125, 
31     kHijing_gj25,  kHijing_gj50, kHijing_gj75, kHijing_gj100, kHijing_gj125, 
32     kJetPlusBg,    kGammaPlusBg, 
33     kParam_8000_Ecal, kParam_4000_Ecal, 
34     kJets_50,       kJets_75,      kJets_100,      kJets_200,
35     kJets_100RadOn, 
36     kGammaJets_50,  kGammaJets_75, kGammaJets_100, kGammaJets_200,
37     kGammaJets_250, kGammaJets_300,
38     kGammaGun, kGammaBox,
39     kGammaBoxOne, kPi0BoxOne 
40 };
41
42 enum PprRadFact_t
43 { // Concern only HIJING 
44     kGluonRadiation, kNoGluonRadiation
45 };
46
47 class AliEMCALGeneratorFactory : public TObject{
48
49  public:
50   explicit AliEMCALGeneratorFactory
51   (PprRunFact_t run=kJets_50, PprRadFact_t rad = kGluonRadiation);
52   explicit AliEMCALGeneratorFactory(PprRunFact_t run, Float_t p);
53   AliGenHijing* HijingStandard();
54   AliGenPythia* PythiaJets(Float_t energy);
55   AliGenPythia* PythiaGamma(Float_t energy);
56   AliGenBox*    OneParticleWithFixedEnergy(Int_t type=kGamma, Float_t p=1.0);
57
58   AliGenerator* GetGenerator() {return fGenerator;}
59   AliGenerator* GetBgGenerator() {return fBgGenerator;}
60   AliGenerator* GetSignalGenerator() {return fSignalGenerator;}
61   PprRunFact_t  GetRunType()   {return fRunType;}
62   PprRadFact_t  GetRadiation() {return fRadiation;}
63  
64   TString*      GetComment() {return fComment;}
65   static Float_t EtaToTheta(Float_t arg) {return (180./TMath::Pi())*2.*atan(exp(-arg));}
66
67 protected:
68   AliGenerator* fGenerator;        //! 
69   AliGenerator* fBgGenerator;      //! 
70   AliGenerator* fSignalGenerator;  //! 
71   PprRunFact_t  fRunType;
72   PprRadFact_t  fRadiation;
73   Float_t       fMomentum;
74   TString      *fComment;          //!
75
76   ClassDef(AliEMCALGeneratorFactory,1) // Generator Factory for EMCAL production
77
78 };
79 #endif // ALIEMCALGENERATORFACTORY_H