class AliGenEventHeader;
class AliStack;
class AliRunLoader;
+class TObjArray;
class AliGenPythia : public AliGenMC
{
virtual void SetEventListRange(Int_t eventFirst=-1, Int_t eventLast=-1);
// Select process type
virtual void SetProcess(Process_t proc = kPyCharm) {fProcess = proc;}
+ virtual void SetTune(Int_t itune) {fItune = itune;}
// Select structure function
virtual void SetStrucFunc(StrucFunc_t func = kCTEQ5L) {fStrucFunc = func;}
virtual void SetPi0InEMCAL(Bool_t b) {fCheckEMCAL = b; fPi0InCalo = b;}
virtual void SetPi0InPHOS(Bool_t b) {fCheckPHOS = b; fPi0InCalo = b;}
virtual void SetPhotonInEMCAL(Bool_t b) {fCheckEMCAL = b; fPhotonInCalo = b;}
+ virtual void SetElectronInEMCAL(Bool_t b) {fEleInEMCAL = b;}
virtual void SetPhotonInPHOS(Bool_t b) {fCheckPHOS = b; fPhotonInCalo = b;}
// Trigger on a minimum multiplicity
- virtual void SetTriggerChargedMultiplicity(Int_t multiplicity, Float_t etamax = 0) {fTriggerMultiplicity = multiplicity; fTriggerMultiplicityEta = etamax; }
+ virtual void SetTriggerChargedMultiplicity(Int_t multiplicity, Float_t etamax = 0, Float_t ptmin = -1.)
+ {fTriggerMultiplicity = multiplicity; fTriggerMultiplicityEta = etamax;
+ fTriggerMultiplicityPtMin = ptmin;}
virtual void SetPhotonInPHOSeta(Bool_t b) {fCheckPHOSeta = b; fPhotonInCalo = b;}
virtual void SetFragPhotonOrPi0MinPt(Float_t pt) {fFragPhotonOrPi0MinPt = pt;}
virtual void SetPhotonMinPt(Float_t pt) {fPhotonMinPt = pt;}
+ virtual void SetElectronMinPt(Float_t pt) {fElectronMinPt = pt;}
// Trigger and rotate event
void RotatePhi(Int_t iphcand, Bool_t& okdd);
// Trigger on a single particle
//
// Quenching
//
- // Set quenching mode 0 = no, 1 = AM, 2 = IL
+ // Set quenching mode 0 = no, 1 = AM, 2 = IL, 3 = NA, 4 = ACS
virtual void SetQuench(Int_t flag = 0) {fQuench = flag;}
+ // Set transport coefficient.
+ void SetQhat(Float_t qhat) {fQhat = qhat;}
+ //Set initial medium length.
+ void SetLength(Float_t length) {fLength = length;}
+
virtual void SetHadronisation(Int_t flag = 1) {fHadronisation = flag;}
- virtual void SetReadFromFile(const Text_t *filname) {fFileName = filname; fReadFromFile = 1;}
+ virtual void SetPatchOmegaDalitz(Int_t flag = 1) {fPatchOmegaDalitz = flag;}
+ virtual void SetReadFromFile(const Text_t *filname) {fkFileName = filname; fReadFromFile = 1;}
//
// Pile-up
Float_t thresh = 0., Float_t etseed = 4.,
Float_t minet = 10., Float_t r = 1.);
- void LoadEvent(AliStack* stack, Int_t flag = 0, Int_t reHadr = 0);
+ void LoadEvent(AliStack* stack, Int_t flag = 0, Int_t reHadr = 0);
+ void LoadEvent(TObjArray* stack, Int_t flag = 0, Int_t reHadr = 0);
// Getters
virtual Process_t GetProcess() const {return fProcess;}
virtual StrucFunc_t GetStrucFunc() const {return fStrucFunc;}
void MakeHeader();
void GeneratePileup();
Process_t fProcess; //Process type
+ Int_t fItune; // Pythia tune > 6.4
StrucFunc_t fStrucFunc; //Structure Function
Float_t fKineBias; //!Bias from kinematic selection
Int_t fTrials; //!Number of trials for current event
Int_t fGinit; //initial state gluon radiation
Int_t fGfinal; //final state gluon radiation
Int_t fHadronisation; //hadronisation
+ Bool_t fPatchOmegaDalitz; //flag for omega dalitz decay patch
Int_t fNpartons; //Number of partons before hadronisation
Int_t fReadFromFile; //read partons from file
Int_t fQuench; //Flag for quenching
+ Float_t fQhat; //Transport coefficient (GeV^2/fm)
+ Float_t fLength; //Medium length (fm)
+ Float_t fImpact; //Impact parameter for quenching simulation (q-pythia)
Float_t fPtKick; //Transverse momentum kick
Bool_t fFullEvent; //!Write Full event if true
AliDecayer *fDecayer; //!Pointer to the decayer instance
Int_t fNucPdf; // Nuclear pdf 0: EKS98 1: EPS08
Int_t fTriggerParticle; // Trigger on this particle ...
Float_t fTriggerEta; // .. within |eta| < fTriggerEta
- Int_t fTriggerMultiplicity; // Trigger on events with a minimum charged multiplicity
- Float_t fTriggerMultiplicityEta; // in a given eta range
+ Int_t fTriggerMultiplicity; // Trigger on events with a minimum charged multiplicity
+ Float_t fTriggerMultiplicityEta; // in a given eta range
+ Float_t fTriggerMultiplicityPtMin; // above this pT
CountMode_t fCountMode; // Options for counting when the event will be finished.
// fCountMode = kCountAll --> All particles that end up in the
// stack are counted
AliGenPythiaEventHeader* fHeader; //! Event header
AliRunLoader* fRL; //! Run Loader
- const Text_t* fFileName; //! Name of file to read from
+ const Text_t* fkFileName; //! Name of file to read from
Bool_t fFragPhotonInCalo; // Option to ask for Fragmentation Photon in calorimeters acceptance
Bool_t fPi0InCalo; // Option to ask for Pi0 in calorimeters acceptance
Bool_t fPhotonInCalo; // Option to ask for Decay Photon in calorimeter acceptance
+ Bool_t fEleInEMCAL; // Option to ask for Electron in EMCAL acceptance
Bool_t fCheckEMCAL; // Option to ask for FragPhoton or Pi0 in calorimeters EMCAL acceptance
Bool_t fCheckPHOS; // Option to ask for FragPhoton or Pi0 in calorimeters PHOS acceptance
Bool_t fCheckPHOSeta; // Option to ask for PHOS eta acceptance
Float_t fFragPhotonOrPi0MinPt; // Minimum momentum of Fragmentation Photon or Pi0
Float_t fPhotonMinPt; // Minimum momentum of Photon
+ Float_t fElectronMinPt; // Minimum momentum of Electron
//Calorimeters eta-phi acceptance
Float_t fPHOSMinPhi; // Minimum phi PHOS
Float_t fPHOSMaxPhi; // Maximum phi PHOS
Float_t fEMCALMinPhi; // Minimum phi EMCAL
Float_t fEMCALMaxPhi; // Maximum phi EMCAL
Float_t fEMCALEta; // Maximum eta EMCAL
-
private:
AliGenPythia(const AliGenPythia &Pythia);
AliGenPythia & operator=(const AliGenPythia & rhs);
- ClassDef(AliGenPythia,8) // AliGenerator interface to Pythia
+ ClassDef(AliGenPythia, 10) // AliGenerator interface to Pythia
};
#endif