]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TDPMjet/AliGenDPMjet.h
add histograms depending on the track type, mainly for hybrids
[u/mrichter/AliRoot.git] / TDPMjet / AliGenDPMjet.h
CommitLineData
1a52e0ed 1#ifndef ALIGENDPMJET_H
2#define ALIGENDPMJET_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6// Generator using DPMJET as an external generator
7// The main DPMJET options are accessable for the user through this interface.
8
9#include "AliGenMC.h"
e67e0fb7 10#include "TDPMjet.h"
7cbda79e 11#include "AliGenDPMjetEventHeader.h"
1a52e0ed 12#include <TString.h>
13#include <TArrayI.h>
14
15class TDPMjet;
16class TArrayI;
17class TParticle;
18class TClonesArray;
19class TGraph;
9dcc0beb 20class AliGenEventHeader;
21class AliStack;
22class AliRunLoader;
23class AliGenDPMjetEventHeader;
24
25
1a52e0ed 26
27class AliGenDPMjet : public AliGenMC
28{
29
30 public:
31 AliGenDPMjet();
32 AliGenDPMjet(Int_t npart);
ba758f5a 33 AliGenDPMjet(const AliGenDPMjet &Dpmjet);
1a52e0ed 34 virtual ~AliGenDPMjet();
35 virtual void Generate();
36 virtual void Init();
4e5c2fd7 37 virtual void FinishRun();
7cbda79e 38 virtual void SetEnergyCMS(Float_t energy = 14000.) {fEnergyCMS = energy;}
39 virtual void SetProjectileBeamEnergy(Float_t benergy = 7000.) {fBeamEn = benergy;}
9dcc0beb 40 virtual void SetImpactParameterRange(Float_t bmin=0., Float_t bmax=1.)
1a52e0ed 41 {fMinImpactParam=bmin; fMaxImpactParam=bmax;}
e67e0fb7 42 virtual void SetProcess(DpmProcess_t iproc) {fProcess = iproc;}
1a52e0ed 43 virtual void SetCentral(Int_t icentr=-2) {fICentr = icentr;}
1a52e0ed 44 virtual void SetFlavor(Int_t flag=0) {fFlavor = flag;}
1a52e0ed 45 virtual void SetSelectAll(Int_t flag=0) {fSelectAll = flag;}
46 virtual void SetSpectators(Int_t spects=1) {fSpectators = spects;}
47 virtual void SetBoostLHC(Int_t flag=0) {fLHC = flag;}
f97d4a8e 48 virtual void SetPi0Decay(Int_t iPi0) {fPi0Decay = iPi0;}
717765ce 49 virtual void SetDecayAll(Int_t iDec) {fDecayAll = iDec;}
1a52e0ed 50 virtual void GetImpactParameterRange(Float_t& bmin, Float_t& bmax)
51 {bmin = fMinImpactParam; bmax = fMaxImpactParam;}
ba758f5a 52 virtual Int_t GetSpectators() {return fSpectators;}
53 virtual Int_t GetFlavor() {return fFlavor;}
1a52e0ed 54
1a52e0ed 55 virtual void SetGenImpPar(Float_t bValue) {fGenImpPar=bValue;}
56 virtual Float_t GetGenImpPar() {return fGenImpPar;}
3b50c39e 57 virtual void SetTriggerChargedMultiplicity(Int_t multiplicity,
58 Float_t etamax = 0, Float_t ptmin = -1.)
59 {fTriggerMultiplicity = multiplicity; fTriggerMultiplicityEta = etamax;
60 fTriggerMultiplicityPtMin = ptmin;}
61
1a52e0ed 62 AliGenDPMjet & operator=(const AliGenDPMjet & rhs);
7cbda79e 63 //void AddHeader(AliGenEventHeader* header);
1a52e0ed 64
19896767 65 void SetTuneForDiff(Bool_t a=kTRUE) {fkTuneForDiff=a;}
66
5fed2e29 67 virtual void SetFragmentProd(Bool_t val) {fFragmentation = val;}
7cbda79e 68 virtual Bool_t ProvidesCollisionGeometry() const {return kTRUE;}
5fed2e29 69
1a52e0ed 70 protected:
7cbda79e 71 Bool_t SelectFlavor(Int_t pid);
72 void MakeHeader();
1a52e0ed 73
74 protected:
1a52e0ed 75 Float_t fBeamEn; // beam energy
1a52e0ed 76 Float_t fMinImpactParam; // minimum impact parameter
77 Float_t fMaxImpactParam; // maximum impact parameter
78 Int_t fICentr; // Flag to force central production
1a52e0ed 79 Int_t fSelectAll; // Flag to write the full event
80 Int_t fFlavor; // Selected particle flavor 4: charm+beauty 5: beauty
81 Int_t fTrials; // Number of trials
1a52e0ed 82 Int_t fSpectators; // put spectators on stack
83 Int_t fSpecn; // Num. of spectator neutrons
84 Int_t fSpecp; // Num. of spectator protons
85 TDPMjet *fDPMjet; // DPMjet
1a52e0ed 86 Int_t fNoGammas; // Don't write gammas if flag "on"
87 Int_t fLHC; // Assume LHC as lab frame
f97d4a8e 88 Int_t fPi0Decay; // Flag for pi0 decays
717765ce 89 Int_t fDecayAll; // Flag to switch on long-lived particle decays
1a52e0ed 90 Float_t fGenImpPar; // GeneratedImpactParameter
e67e0fb7 91 DpmProcess_t fProcess; // Process type
3b50c39e 92 // Multiplicity Trigger
93 Int_t fTriggerMultiplicity; // Triggered multiplicity
94 Float_t fTriggerMultiplicityEta; // Triggered multiplicity eta cut
95 Float_t fTriggerMultiplicityPtMin; // Triggered multiplicity min pt
96
19896767 97 Bool_t fkTuneForDiff; // Phojet tune
98 Int_t fProcDiff;
5fed2e29 99
100 Bool_t fFragmentation; // Allows evaporation and fragments production
7cbda79e 101 AliGenDPMjetEventHeader fHeader; // MC header
19896767 102
1a52e0ed 103 private:
104 // adjust the weight from kinematic cuts
105 void AdjustWeights();
106 // check seleted daughters
107 Bool_t DaughtersSelection(TParticle* iparticle);
108 // check if stable
109 Bool_t Stable(TParticle* particle);
19896767 110
111 Bool_t CheckDiffraction();
c5dfa3e4 112 Bool_t GetWeightsDiffraction(Double_t M, Double_t &Mmin, Double_t &Mmax,
113 Double_t &wSD, Double_t &wDD, Double_t &wND);
19896767 114
7cbda79e 115 ClassDef(AliGenDPMjet,6) // AliGenerator interface to DPMJET
1a52e0ed 116};
117#endif
118
119
120
121
122