]>
Commit | Line | Data |
---|---|---|
1963b290 | 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 |