X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=blobdiff_plain;f=EVGEN%2FAliGenHijing.h;h=8e6c5194c2601575ca50a78f51feff7f5026deb8;hp=23e4c89618681eeef4576329b324207a1fc480d9;hb=55d6adcfb40857429f7150fc95d8ff335f3ab19f;hpb=110410f98d64a34fdfe8596db8e65756d1f5b499 diff --git a/EVGEN/AliGenHijing.h b/EVGEN/AliGenHijing.h index 23e4c896186..8e6c5194c26 100644 --- a/EVGEN/AliGenHijing.h +++ b/EVGEN/AliGenHijing.h @@ -5,16 +5,21 @@ /* $Id$ */ +// Generator using HIJING as an external generator +// The main HIJING options are accessable for the user through this interface. +// andreas.morsch@cern.ch -#include "AliGenerator.h" -#include "GenTypeDefs.h" -#include +#include "AliGenMC.h" +#include #include +class THijing; class TArrayI; class TParticle; +class TClonesArray; +class TGraph; -class AliGenHijing : public AliGenerator +class AliGenHijing : public AliGenMC { enum {kNoTrigger, kHardProcesses, kDirectPhotons}; @@ -27,12 +32,15 @@ class AliGenHijing : public AliGenerator virtual void Init(); // set centre of mass energy virtual void SetEnergyCMS(Float_t energy=5500) {fEnergyCMS=energy;} - virtual void SetReferenceFrame(char* frame="CMS ") {fFrame=frame;} - virtual void SetProjectile(char* proj="A ", Int_t a=208, Int_t z=97) + virtual void SetReferenceFrame(TString frame="CMS") + {fFrame=frame;} + virtual void SetProjectile(TString proj="A", + Int_t a=208, Int_t z=82) {fProjectile = proj; fAProjectile = a; fZProjectile = z;} - virtual void SetTarget(char* tar="A ", Int_t a=208, Int_t z=97) + virtual void SetTarget(TString tar="A", + Int_t a=208, Int_t z=82) {fTarget = tar; fATarget = a; fZTarget =z;} @@ -45,55 +53,57 @@ class AliGenHijing : public AliGenerator virtual void SetShadowing(Int_t flag=1) {fShadowing = flag;} virtual void SetDecaysOff(Int_t flag=1) {fDecaysOff = flag;} virtual void SetTrigger(Int_t flag=kNoTrigger) {fTrigger = flag;} + virtual void SetFlavor(Int_t flag=0) {fFlavor = flag;} virtual void SetEvaluate(Int_t flag=0) {fEvaluate = flag;} virtual void SetSelectAll(Int_t flag=0) {fSelectAll = flag;} - AliGenHijing & operator=(const AliGenHijing & rhs); + virtual void SetSpectators(Int_t spects=1) {fSpectators = spects;} + AliGenHijing & operator=(const AliGenHijing & rhs); // Physics Routines virtual void EvaluateCrossSections(); - - + virtual TGraph* CrossSection() {return fDsigmaDb;} + virtual TGraph* BinaryCollisions() {return fDnDb;} + protected: + Bool_t SelectFlavor(Int_t pid); + void MakeHeader(); + protected: - char *fFrame; // Reference frame - char *fProjectile; // Projectile - char *fTarget; // Target - Int_t fAProjectile; // Projectile A - Int_t fZProjectile; // Projectile Z - Int_t fATarget; // Target A - Int_t fZTarget; // Target Z + TString fFrame; // Reference frame + TString fProjectile; // Projectile + TString fTarget; // Target + Int_t fAProjectile; // Projectile A + Int_t fZProjectile; // Projectile Z + Int_t fATarget; // Target A + Int_t fZTarget; // Target Z Float_t fMinImpactParam; // minimum impact parameter Float_t fMaxImpactParam; // maximum impact parameter - Int_t fKeep; // Flag to keep full event information - Int_t fQuench; // Flag to switch on jet quenching - Int_t fShadowing; // Flag to switch on voclear effects on parton distribution function - Int_t fDecaysOff; // Flag to turn off decays of pi0, K_s, D, Lambda, sigma - Int_t fTrigger; // Trigger type - Int_t fEvaluate; // Evaluate total and partial cross-sections - Int_t fSelectAll; // Flag to write the full event - - Process_t fProcess; // Process type - StrucFunc_t fStrucFunc; // Structure Function - Decay_t fForceDecay; // Decay channel are forced - Float_t fEnergyCMS; // Centre of mass energy - Float_t fKineBias; // Bias from kinematic selection - Int_t fTrials; // Number of trials - TArrayI fParentSelect; // Parent particles to be selected - TArrayI fChildSelect; // Decay products to be selected - Float_t fXsection; // Cross-section - THijing *fHijing; // Hijing - Float_t fPtHardMin; // lower pT-hard cut - Float_t fPtHardMax; // higher pT-hard cut - + Int_t fKeep; // Flag to keep full event information + Int_t fQuench; // Flag to switch on jet quenching + Int_t fShadowing; // Flag to switch on voclear effects on parton distribution function + Int_t fDecaysOff; // Flag to turn off decays of pi0, K_s, D, Lambda, sigma + Int_t fTrigger; // Trigger type + Int_t fEvaluate; // Evaluate total and partial cross-sections + Int_t fSelectAll; // Flag to write the full event + Int_t fFlavor; // Selected particle flavor 4: charm+beauty 5: beauty + Float_t fEnergyCMS; // Centre of mass energy + Float_t fKineBias; // Bias from kinematic selection + Int_t fTrials; // Number of trials + TArrayI fParentSelect; // Parent particles to be selected + TArrayI fChildSelect; // Decay products to be selected + Float_t fXsection; // Cross-section + THijing *fHijing; // Hijing + Float_t fPtHardMin; // lower pT-hard cut + Float_t fPtHardMax; // higher pT-hard cut + Int_t fSpectators; // put spectators on stack + TGraph* fDsigmaDb; // dSigma/db for the system + TGraph* fDnDb; // dNBinaryCollisions/db private: - // check if particle is selected as parent particle - Bool_t ParentSelected(Int_t ip); - // check if particle is selected as child particle - Bool_t ChildSelected(Int_t ip); - // all kinematic selection cuts go here - Bool_t KinematicSelection(TParticle *particle); // adjust the weight from kinematic cuts void AdjustWeights(); // check seleted daughters Bool_t DaughtersSelection(TParticle* iparticle, TClonesArray* particles); + // check if stable + Bool_t Stable(TParticle* particle); + ClassDef(AliGenHijing,1) // AliGenerator interface to Hijing }; #endif