fPHOSEta(0.13),
fEMCALMinPhi(79.),
fEMCALMaxPhi(191.),
- fEMCALEta(0.71)
-
+ fEMCALEta(0.71),
+ fItune(-1)
{
// Default Constructor
fEnergyCMS = 5500.;
fPHOSEta(0.13),
fEMCALMinPhi(79.),
fEMCALMaxPhi(191.),
- fEMCALEta(0.71)
+ fEMCALEta(0.71),
+ fItune(-1)
{
// default charm production at 5. 5 TeV
// semimuonic decay
fRL = 0x0;
}
//
- fPythia->ProcInit(fProcess, fEnergyCMS, fStrucFunc);
+ fPythia->ProcInit(fProcess, fEnergyCMS, fStrucFunc, fItune);
// Forward Paramters to the AliPythia object
fDecayer->SetForceDecay(fForceDecay);
// Switch off Heavy Flavors on request
fParentSelect[0] = 431;
fFlavorSelect = 4;
break;
+ case kPyLambdacppMNR:
+ fParentSelect[0] = 4122;
+ fFlavorSelect = 4;
+ break;
case kPyBeauty:
+ case kPyBeautyJets:
case kPyBeautyPbPbMNR:
case kPyBeautypPbMNR:
case kPyBeautyppMNR:
case kPyJpsi:
fParentSelect[0] = 443;
break;
+ case kPyMbAtlasTuneMC09:
case kPyMbDefault:
case kPyMb:
case kPyMbWithDirectPhoton:
break;
case kPyW:
case kPyZ:
+ case kPyMBRSingleDiffraction:
+ case kPyMBRDoubleDiffraction:
+ case kPyMBRCentralDiffraction:
break;
}
//
fDecayer->ForceDecay();
- Float_t polar[3] = {0,0,0};
- Float_t origin[3] = {0,0,0};
- Float_t p[4];
+ Double_t polar[3] = {0,0,0};
+ Double_t origin[3] = {0,0,0};
+ Double_t p[4];
// converts from mm/c to s
const Float_t kconv=0.001/2.999792458e8;
//
}
fNpartons = fPythia->GetNumberOfParticles();
} else {
- printf("Loading Event %d\n",AliRunLoader::GetRunLoader()->GetEventNumber());
- fRL->GetEvent(AliRunLoader::GetRunLoader()->GetEventNumber());
+ printf("Loading Event %d\n",AliRunLoader::Instance()->GetEventNumber());
+ fRL->GetEvent(AliRunLoader::Instance()->GetEventNumber());
fPythia->SetNumberOfParticles(0);
fPythia->LoadEvent(fRL->Stack(), 0 , 1);
fPythia->EditEventList(21);
origin[1] = fVertex[1]+iparticle->Vy()/10; // [cm]
origin[2] = fVertex[2]+iparticle->Vz()/10; // [cm]
- Float_t tof = kconv*iparticle->T();
+ Float_t tof = fTime + kconv*iparticle->T();
Int_t ipa = (fPythia->Version() == 6) ? (iparticle->GetFirstMother() - 1) :(iparticle->GetFirstMother()) ;
Int_t iparent = (ipa > -1) ? pParent[ipa] : -1;
}
}
}
- if(!ok)
- return 0;
+ if(!ok){
+ delete [] pParent;
+ return 0;
+ }
}
if(!okd && iphcand != -1) // execute rotation in phi
RotatePhi(iphcand,okd);
- if(!okd)
- return 0;
+ if(!okd) {
+ delete[] pParent;
+ return 0;
+ }
}
if (fTriggerParticle) {
if(mi<0) continue;
mother = (TParticle*)fParticles.At(mi);
mpdg=TMath::Abs(mother->GetPdgCode());
- mpdgUpperFamily=(mpdg>1000 ? mpdg-1000 : mpdg-100); // keep e from c from b
+ mpdgUpperFamily=(mpdg>1000 ? mpdg+1000 : mpdg+100); // keep e from c from b
if ( ParentSelected(mpdg) ||
(fFlavorSelect==5 && ParentSelected(mpdgUpperFamily))) {
if (KinematicSelection(partCheck,1)) {
origin[1] = fVertex[1]+iparticle->Vy()/10; // [cm]
origin[2] = fVertex[2]+iparticle->Vz()/10; // [cm]
- Float_t tof = fEventTime + kconv * iparticle->T();
+ Float_t tof = fTime + fEventTime + kconv * iparticle->T();
PushTrack(fTrackIt*trackIt, iparent, kf,
p[0], p[1], p[2], p[3],
//
// Special Treatment to store color-flow
//
+ /*
if (ks == 3 || ks == 13 || ks == 14) {
TParticle* particle = 0;
if (fStack) {
particle = fStack->Particle(nt);
} else {
- particle = gAlice->Stack()->Particle(nt);
+ particle = AliRunLoader::Instance()->Stack()->Particle(nt);
}
-// particle->SetFirstDaughter(fPythia->GetK(2, i));
-// particle->SetLastDaughter(fPythia->GetK(3, i));
+ particle->SetFirstDaughter(fPythia->GetK(2, i));
+ particle->SetLastDaughter(fPythia->GetK(3, i));
}
-
+ */
KeepTrack(nt);
pParent[i] = nt;
SetHighWaterMark(nt);
//
// Event Vertex
fHeader->SetPrimaryVertex(fVertex);
-
+ fHeader->SetInteractionTime(fTime+fEventTime);
//
// Number of primaries
fHeader->SetNProduced(fNprimaries);
// Store quenching parameters
//
if (fQuench){
- Double_t z[4];
- Double_t xp, yp;
+ Double_t z[4] = {0.};
+ Double_t xp = 0.;
+ Double_t yp = 0.;
if (fQuench == 1) {
// Pythia::Quench()
fPythia->GetQuenchingParameters(xp, yp, z);
fHeader = 0x0;
}
-Bool_t AliGenPythiaPlus::CheckTrigger(TParticle* jet1, TParticle* jet2)
+Bool_t AliGenPythiaPlus::CheckTrigger(const TParticle* jet1, const TParticle* jet2)
{
// Check the kinematic trigger condition
//
-Bool_t AliGenPythiaPlus::IsInEMCAL(Float_t phi, Float_t eta)
+Bool_t AliGenPythiaPlus::IsInEMCAL(Float_t phi, Float_t eta) const
{
// Is particle in EMCAL acceptance?
// phi in degrees, etamin=-etamax
return kFALSE;
}
-Bool_t AliGenPythiaPlus::IsInPHOS(Float_t phi, Float_t eta)
+Bool_t AliGenPythiaPlus::IsInPHOS(Float_t phi, Float_t eta) const
{
// Is particle in PHOS acceptance?
// Acceptance slightly larger considered.