From: morsch Date: Thu, 6 Nov 2014 15:28:01 +0000 (+0100) Subject: 1) decouple the rapidity cut used in AliGenPythia to select the events with c or... X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=commitdiff_plain;h=d8850d4fad07fda3662c412e8a4850b9a4008838;hp=660f7d6806ba57d295059e40dc7e89c719e74bf3 1) decouple the rapidity cut used in AliGenPythia to select the events with c or b quarks from the one used in AliGenMC::KinematicSelectio to select the particles that are written in the stack. 2) propagate the title of the generator (which can be set in the config) to the GenEventHeader, so that it can be read at the analysis level. Francesco Prino --- diff --git a/PYTHIA6/AliGenPythia.cxx b/PYTHIA6/AliGenPythia.cxx index f2a4023d2c3..5ad46d20b2d 100644 --- a/PYTHIA6/AliGenPythia.cxx +++ b/PYTHIA6/AliGenPythia.cxx @@ -109,6 +109,9 @@ AliGenPythia::AliGenPythia(): fEtaMaxGamma(20.), fPhiMinGamma(0.), fPhiMaxGamma(2. * TMath::Pi()), + fUseYCutHQ(kFALSE), + fYMinHQ(-20.), + fYMaxHQ(20.), fPycellEtaMax(2.), fPycellNEta(274), fPycellNPhi(432), @@ -232,6 +235,9 @@ AliGenPythia::AliGenPythia(Int_t npart) fEtaMaxGamma(20.), fPhiMinGamma(0.), fPhiMaxGamma(2. * TMath::Pi()), + fUseYCutHQ(kFALSE), + fYMinHQ(-20.), + fYMaxHQ(20.), fPycellEtaMax(2.), fPycellNEta(274), fPycellNPhi(432), @@ -1128,7 +1134,8 @@ Int_t AliGenPythia::GenerateMB() if(pdg>0) { theQ=kTRUE; } else { theQbar=kTRUE; } y = 0.5*TMath::Log((partCheck->Energy()+partCheck->Pz()+1.e-13)/ (partCheck->Energy()-partCheck->Pz()+1.e-13)); - if(y>fYMin && yfYMinHQ && yfYMin && ySetTitle(GetTitle()); // // Event type if(fProcDiff>0){ diff --git a/PYTHIA6/AliGenPythia.h b/PYTHIA6/AliGenPythia.h index 48867a72fb8..01d05d1e97c 100644 --- a/PYTHIA6/AliGenPythia.h +++ b/PYTHIA6/AliGenPythia.h @@ -96,6 +96,10 @@ class AliGenPythia : public AliGenMC // Phi range for gamma trigger virtual void SetGammaPhiRange(Float_t phimin = 0., Float_t phimax = 360.) {fPhiMinGamma = TMath::Pi()*phimin/180.; fPhiMaxGamma = TMath::Pi()*phimax/180.;} + // Y range for heavy quark trigger + virtual void SetHeavyQuarkYRange(Float_t ymin=-20., Float_t ymax=20.){ + fYMinHQ = ymin; fYMaxHQ=ymax; fUseYCutHQ=kTRUE; + } // Select events with fragmentation photon, decay photon, pi0 or eta going to PHOS or EMCAL and central barrel virtual Bool_t TriggerOnSelectedParticles(Int_t np); @@ -325,6 +329,9 @@ class AliGenPythia : public AliGenMC Float_t fEtaMaxGamma; // Maximum eta of triggered gamma Float_t fPhiMinGamma; // Minimum phi of triggered gamma Float_t fPhiMaxGamma; // Maximum phi of triggered gamma + Bool_t fUseYCutHQ; // siwtch for using y cut for heavy quarks + Float_t fYMinHQ; // Minimum y of triggered heavy quarks + Float_t fYMaxHQ; // Maximum y of triggered heavy quarks Float_t fPycellEtaMax; // Max. eta for Pycell Int_t fPycellNEta; // Number of eta bins for Pycell Int_t fPycellNPhi; // Number of phi bins for Pycell @@ -404,7 +411,7 @@ class AliGenPythia : public AliGenMC Bool_t GetWeightsDiffraction(Double_t M, Double_t &Mmin, Double_t &Mmax, Double_t &wSD, Double_t &wDD, Double_t &wND); - ClassDef(AliGenPythia, 14) // AliGenerator interface to Pythia + ClassDef(AliGenPythia, 15) // AliGenerator interface to Pythia }; #endif diff --git a/PYTHIA6/AliGenPythiaPlus.cxx b/PYTHIA6/AliGenPythiaPlus.cxx index 0f91b97fcce..76b6fce9fd9 100644 --- a/PYTHIA6/AliGenPythiaPlus.cxx +++ b/PYTHIA6/AliGenPythiaPlus.cxx @@ -92,6 +92,9 @@ AliGenPythiaPlus::AliGenPythiaPlus(): fEtaMaxGamma(20.), fPhiMinGamma(0.), fPhiMaxGamma(2. * TMath::Pi()), + fUseYCutHQ(kFALSE), + fYMinHQ(-20.), + fYMaxHQ(20.), fPycellEtaMax(2.), fPycellNEta(274), fPycellNPhi(432), @@ -180,6 +183,9 @@ AliGenPythiaPlus::AliGenPythiaPlus(AliPythiaBase* pythia) fEtaMaxGamma(20.), fPhiMinGamma(0.), fPhiMaxGamma(2. * TMath::Pi()), + fUseYCutHQ(kFALSE), + fYMinHQ(-20.), + fYMaxHQ(20.), fPycellEtaMax(2.), fPycellNEta(274), fPycellNPhi(432), @@ -949,7 +955,8 @@ Int_t AliGenPythiaPlus::GenerateMB() if(pdg>0) { theQ=kTRUE; } else { theQbar=kTRUE; } y = 0.5*TMath::Log((partCheck->Energy()+partCheck->Pz()+1.e-13)/ (partCheck->Energy()-partCheck->Pz()+1.e-13)); - if(y>fYMin && yfYMinHQ && yfYMin && ySetTitle(GetTitle()); + // // Event type ((AliGenPythiaEventHeader*) fHeader)->SetProcessType(fPythia->ProcessCode()); diff --git a/PYTHIA6/AliGenPythiaPlus.h b/PYTHIA6/AliGenPythiaPlus.h index 6f7bc8f6b2f..d8df7ff85b0 100644 --- a/PYTHIA6/AliGenPythiaPlus.h +++ b/PYTHIA6/AliGenPythiaPlus.h @@ -163,6 +163,11 @@ class AliGenPythiaPlus : public AliGenMC {etamin = fEtaMinGamma; etamax = fEtaMaxGamma;} virtual void GetGammaPhiRange(Float_t& phimin, Float_t& phimax) const {phimin = fPhiMinGamma*180./TMath::Pi(); phimax = fPhiMaxGamma*180./TMath::Pi();} + // Y range for heavy quark trigger + virtual void SetHeavyQuarkYRange(Float_t ymin=-20., Float_t ymax=20.){ + fYMinHQ = ymin; fYMaxHQ=ymax; fUseYCutHQ=kTRUE; + } + // Bool_t IsInEMCAL(Float_t phi, Float_t eta) const; Bool_t IsInPHOS(Float_t phi, Float_t eta) const; @@ -223,6 +228,9 @@ class AliGenPythiaPlus : public AliGenMC Float_t fEtaMaxGamma; // Maximum eta of triggered gamma Float_t fPhiMinGamma; // Minimum phi of triggered gamma Float_t fPhiMaxGamma; // Maximum phi of triggered gamma + Bool_t fUseYCutHQ; // siwtch for using y cut for heavy quarks + Float_t fYMinHQ; // Minimum y of triggered heavy quarks + Float_t fYMaxHQ; // Maximum y of triggered heavy quarks Float_t fPycellEtaMax; // Max. eta for Pycell Int_t fPycellNEta; // Number of eta bins for Pycell Int_t fPycellNPhi; // Number of phi bins for Pycell @@ -276,7 +284,7 @@ class AliGenPythiaPlus : public AliGenMC AliGenPythiaPlus(const AliGenPythiaPlus &Pythia); AliGenPythiaPlus & operator=(const AliGenPythiaPlus & rhs); - ClassDef(AliGenPythiaPlus, 2) // AliGenerator interface to Pythia + ClassDef(AliGenPythiaPlus, 3) // AliGenerator interface to Pythia }; #endif