fTriggerEta(0.9),
fTriggerMultiplicity(0),
fTriggerMultiplicityEta(0),
+ fTriggerMultiplicityPtMin(0),
fCountMode(kCountAll),
fHeader(0),
fRL(0),
{
// Default Constructor
fEnergyCMS = 5500.;
- SetNuclei(0,0);
if (!AliPythiaRndm::GetPythiaRandom())
AliPythiaRndm::SetPythiaRandom(GetRandom());
}
fTriggerEta(0.9),
fTriggerMultiplicity(0),
fTriggerMultiplicityEta(0),
+ fTriggerMultiplicityPtMin(0),
fCountMode(kCountAll),
fHeader(0),
fRL(0),
// Set random number generator
if (!AliPythiaRndm::GetPythiaRandom())
AliPythiaRndm::SetPythiaRandom(GetRandom());
- SetNuclei(0,0);
}
AliGenPythia::~AliGenPythia()
fParentSelect[0] = 443;
break;
case kPyMbDefault:
+ case kPyMbAtlasTuneMC09:
case kPyMb:
case kPyMbWithDirectPhoton:
case kPyMbNonDiffr:
}
fTrials++;
fPythia->ImportParticles(&fParticles,"All");
- Boost();
+ if (TMath::Abs(fDyBoost) > 1.e-4) Boost();
//
//
//
Int_t nTkbles = 0; // Trackable particles
if (fProcess != kPyMbDefault &&
fProcess != kPyMb &&
+ fProcess != kPyMbAtlasTuneMC09 &&
fProcess != kPyMbWithDirectPhoton &&
fProcess != kPyJets &&
fProcess != kPyDirectGamma &&
Int_t* pParent = new Int_t[np];
for (i=0; i< np; i++) pParent[i] = -1;
- //
- //TO BE CHECKED: Should we require this for Beauty Jets?
- //
- if (fProcess == kPyJets || fProcess == kPyDirectGamma || fProcess == kPyBeautyJets) {
+ if (fProcess == kPyJets || fProcess == kPyDirectGamma || fProcess == kPyBeautyJets || fProcess == kPyBeautyppMNRwmi) {
TParticle* jet1 = (TParticle *) fParticles.At(6);
TParticle* jet2 = (TParticle *) fParticles.At(7);
if (!CheckTrigger(jet1, jet2)) {
Int_t pdg = 0;
if (fFragPhotonInCalo) pdg = 22 ; // Photon
- else if (fPi0InCalo) pdg = 111 ; // Pi0
+ else if (fPi0InCalo) pdg = 111 ; // Pi0
for (i=0; i< np; i++) {
TParticle* iparticle = (TParticle *) fParticles.At(i);
return 0;
AliDebug(5,Form("Found an electron jet (pt,eta,phi) = (%f,%f,%f)",pt,eta,phi));
}
-
// Check for minimum multiplicity
if (fTriggerMultiplicity > 0) {
Int_t multiplicity = 0;
Int_t statusCode = iparticle->GetStatusCode();
// Initial state particle
- if (statusCode > 20)
- continue;
-
- // skip quarks and gluons
- Int_t pdgCode = TMath::Abs(iparticle->GetPdgCode());
- if (pdgCode <= 10 || pdgCode == 21)
+ if (statusCode != 1)
continue;
-
+ // eta cut
if (fTriggerMultiplicityEta > 0 && TMath::Abs(iparticle->Eta()) > fTriggerMultiplicityEta)
continue;
-
+ // pt cut
+ if (iparticle->Pt() < fTriggerMultiplicityPtMin)
+ continue;
+
TParticlePDG* pdgPart = iparticle->GetPDG();
if (pdgPart && pdgPart->Charge() == 0)
continue;
delete [] pParent;
return 0;
}
-
- Printf("Triggered on event with multiplicity of %d > %d", multiplicity, fTriggerMultiplicity);
+ Printf("Triggered on event with multiplicity of %d >= %d", multiplicity, fTriggerMultiplicity);
}
// Select events with a photon pt > min pt going to PHOS eta acceptance or exactly PHOS eta phi
// Check if there is a ccbar or bbbar pair with at least one of the two
// in fYMin < y < fYMax
- //
- // TO BE CHECKED: Should we require this for beauty jets?
- //
+
if (fProcess == kPyCharmppMNRwmi || fProcess == kPyBeautyppMNRwmi || fProcess == kPyBeautyJets) {
TParticle *partCheck;
TParticle *mother;
fProcess == kPyZ ||
fProcess == kPyMbDefault ||
fProcess == kPyMb ||
+ fProcess == kPyMbAtlasTuneMC09 ||
fProcess == kPyMbWithDirectPhoton ||
fProcess == kPyMbNonDiffr)
&& (fCutOnChild == 1) ) {
Int_t km = iparticle->GetFirstMother();
if ((ks == 1 && kf!=0 && KinematicSelection(iparticle, 0)) ||
(ks != 1) ||
- //
- //TO BE CHECKED: Should we require this for beauty jets?
- //
((fProcess == kPyJets || fProcess == kPyBeautyJets) && ks == 21 && km == 0 && i>1)) {
nc++;
if (ks == 1) trackIt = 1;
// Jets that have triggered
//Need to store jets for b-jet studies too!
- if (fProcess == kPyJets || fProcess == kPyDirectGamma || fProcess == kPyBeautyJets)
+ if (fProcess == kPyJets || fProcess == kPyDirectGamma || fProcess == kPyBeautyJets || fProcess == kPyBeautyppMNRwmi)
{
Int_t ntrig, njet;
Float_t jets[4][10];
pdg[1] = jet2->GetPdgCode();
Bool_t triggered = kFALSE;
- //
- //TO BE CHECKED: If we call this method for kPyBeautyJets, we need it here
- //
- if (fProcess == kPyJets || fProcess == kPyBeautyJets) {
+ if (fProcess == kPyJets || fProcess == kPyBeautyJets || fProcess == kPyBeautyppMNRwmi) {
Int_t njets = 0;
Int_t ntrig = 0;
Float_t jets[4][10];