]> git.uio.no Git - u/mrichter/AliRoot.git/blame - EMCAL/AliEMCALGeneratorFactory.h
Additiona data members for the time bins and material budget (M.Ivanov)
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALGeneratorFactory.h
CommitLineData
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
18class AliGenerator;
19class AliGenHijing;
20class AliGenPythia;
21class AliGenBox;
22class TString;
23
24enum 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
42enum PprRadFact_t
43{ // Concern only HIJING
44 kGluonRadiation, kNoGluonRadiation
45};
46
47class 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
67protected:
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