]>
Commit | Line | Data |
---|---|---|
e36044d6 | 1 | #ifndef ALIGENMC_H |
2 | #define ALIGENMC_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 | #include "AliGenerator.h" | |
10 | #include "AliDecayer.h" | |
11 | #include <TArrayI.h> | |
12 | ||
13 | class TParticle; | |
14 | ||
15 | class AliGenMC : public AliGenerator | |
16 | { | |
17 | public: | |
18 | AliGenMC(); | |
19 | AliGenMC(Int_t npart); | |
20 | AliGenMC(const AliGenMC &MC); | |
21 | virtual ~AliGenMC(); | |
22 | void Init(); | |
a0609231 | 23 | virtual void SetForceDecay(Decay_t decay = kAll) {fForceDecay = decay;} |
e36044d6 | 24 | AliGenMC & operator=(const AliGenMC & rhs); |
25 | virtual void SetCutOnChild(Int_t flag = 0) {fCutOnChild = flag;} | |
26 | virtual void SetChildMomentumRange(Float_t pmin = 0, Float_t pmax = 1.e10) | |
27 | {fChildPMin = pmin; fChildPMax = pmax;} | |
28 | virtual void SetChildPtRange(Float_t ptmin = 0, Float_t ptmax = 20.) | |
29 | {fChildPtMin = ptmin; fChildPtMax = ptmax;} | |
30 | virtual void SetChildPhiRange(Float_t phimin = -180., Float_t phimax = 180) | |
31 | {fChildPhiMin = TMath::Pi()*phimin/180; | |
32 | fChildPhiMax = TMath::Pi()*phimax/180;} | |
33 | virtual void SetChildThetaRange(Float_t thetamin = 0, Float_t thetamax = 180) | |
34 | {fChildThetaMin = TMath::Pi()*thetamin/180; | |
35 | fChildThetaMax = TMath::Pi()*thetamax/180;} | |
36 | virtual void SetChildYRange(Float_t ymin = -12, Float_t ymax = 12) | |
37 | {fChildYMin = ymin; | |
38 | fChildYMax = ymax;} | |
39 | ||
40 | protected: | |
41 | // check if particle is selected as parent particle | |
42 | Bool_t ParentSelected(Int_t ip); | |
43 | // check if particle is selected as child particle | |
44 | Bool_t ChildSelected(Int_t ip); | |
45 | // all kinematic selection cuts go here | |
46 | Bool_t KinematicSelection(TParticle *particle, Int_t flag); | |
47 | Int_t CheckPDGCode(Int_t pdgcode); | |
48 | ||
49 | protected: | |
50 | TArrayI fParentSelect; // Parent particles to be selected | |
51 | TArrayI fChildSelect; // Decay products to be selected | |
52 | Int_t fCutOnChild; // Cuts on decay products (children) are enabled/disabled | |
53 | Float_t fChildPtMin; // Children minimum pT | |
54 | Float_t fChildPtMax; // Children maximum pT | |
55 | Float_t fChildPMin; // Children minimum p | |
56 | Float_t fChildPMax; // Children maximum p | |
57 | Float_t fChildPhiMin; // Children minimum phi | |
58 | Float_t fChildPhiMax; // Children maximum phi | |
59 | Float_t fChildThetaMin; // Children minimum theta | |
60 | Float_t fChildThetaMax; // Children maximum theta | |
61 | Float_t fChildYMin; // Children minimum y | |
62 | Float_t fChildYMax; // Children maximum y | |
63 | Decay_t fForceDecay; // Decay channel forced | |
b80a8e41 | 64 | ClassDef(AliGenMC,2) // AliGenerator implementation for generators using MC methods |
e36044d6 | 65 | }; |
66 | #endif | |
67 | ||
68 | ||
69 | ||
70 | ||
71 |