fCountMode(kCountAll),
fHeader(0),
fRL(0),
- fFileName(0)
+ fFileName(0),
+ fBremssInCalo(kFALSE),
+ fPi0InCalo(kFALSE) ,
+ fBremssPi0InEMCAL(kFALSE),
+ fBremssPi0InPHOS(kFALSE),
+ fBremssPi0MinPt(0),
+ fPHOSMinPhi(220.),
+ fPHOSMaxPhi(320.),
+ fPHOSEta(0.12),
+ fEMCALMinPhi(80.),
+ fEMCALMaxPhi(190.),
+ fEMCALEta(0.7)
+
{
// Default Constructor
SetNuclei(0,0);
fCountMode(kCountAll),
fHeader(0),
fRL(0),
- fFileName(0)
+ fFileName(0),
+ fBremssInCalo(kFALSE),
+ fPi0InCalo(kFALSE) ,
+ fBremssPi0InEMCAL(kFALSE),
+ fBremssPi0InPHOS(kFALSE),
+ fBremssPi0MinPt(0),
+ fPHOSMinPhi(220.),
+ fPHOSMaxPhi(320.),
+ fPHOSEta(0.12),
+ fEMCALMinPhi(80.),
+ fEMCALMaxPhi(190.),
+ fEMCALEta(0.7)
{
// default charm production at 5. 5 TeV
// semimuonic decay
fCountMode(kCountAll),
fHeader(0),
fRL(0),
- fFileName(0)
+ fFileName(0),
+ fBremssInCalo(kFALSE),
+ fPi0InCalo(kFALSE) ,
+ fBremssPi0InEMCAL(kFALSE),
+ fBremssPi0InPHOS(kFALSE),
+ fBremssPi0MinPt(0),
+ fPHOSMinPhi(220.),
+ fPHOSMaxPhi(320.),
+ fPHOSEta(0.12),
+ fEMCALMinPhi(80.),
+ fEMCALMaxPhi(190.),
+ fEMCALEta(0.7)
{
// copy constructor
Pythia.Copy(*this);
case kPyMbMSEL1:
case kPyJets:
case kPyDirectGamma:
+ case kPyLhwgMb:
break;
case kPyW:
case kPyZ:
if (fQuench) {
fPythia->InitQuenching(0., 0.1, 0.6e6, 0);
}
+ fPythia->SetPARJ(200, 0.0);
+
if (fQuench == 3) {
// Nestor's change of the splittings
fPythia->SetPARJ(200, 0.8);
}
}
+ // Select jets with bremsstrahlung or pi0 going to PHOS or EMCAL
+ if (fProcess == kPyJets && (fBremssInCalo || fPi0InCalo) ) {
+
+ Bool_t ok = kFALSE;
+
+ Int_t pdg = 0;
+ if (fBremssInCalo) pdg = 22 ; // Photon
+ else if (fPi0InCalo) pdg = 111 ; // Pi0
+
+ for (i=0; i< np; i++) {
+ TParticle* iparticle = (TParticle *) fParticles->At(i);
+ if(iparticle->GetStatusCode()==1 && iparticle->GetPdgCode()==pdg &&
+ iparticle->Pt() > fBremssPi0MinPt){
+ Float_t phi = iparticle->Phi()*180./TMath::Pi(); //Convert to degrees
+ Float_t eta =TMath::Abs(iparticle->Eta());//in calos etamin=-etamax
+ if((fBremssPi0InEMCAL && IsInEMCAL(phi,eta)) ||
+ fBremssPi0InPHOS && IsInPHOS(phi,eta))
+ ok =kTRUE;
+ }
+ }
+ if(!ok)
+ return 0;
+ }
+
if (fTriggerParticle) {
Bool_t triggered = kFALSE;
for (i = 0; i < np; i++) {
return;
}
+Bool_t AliGenPythia::IsInEMCAL(Float_t phi, Float_t eta)
+{
+ // Is particle in EMCAL acceptance?
+ // Acceptance slightly larger considered.
+ // phi in degrees, etamin=-etamax
+ if(phi > fEMCALMinPhi-0.1 && phi < fEMCALMaxPhi+0.1 &&
+ eta < fEMCALEta+0.01 )
+ return kTRUE;
+ else
+ return kFALSE;
+}
+
+Bool_t AliGenPythia::IsInPHOS(Float_t phi, Float_t eta)
+{
+ // Is particle in PHOS acceptance?
+ // Acceptance slightly larger considered.
+ // phi in degrees, etamin=-etamax
+ if(phi > fPHOSMinPhi-0.1 && phi < fPHOSMaxPhi+0.1 &&
+ eta < fPHOSEta+0.01 )
+ return kTRUE;
+ else
+ return kFALSE;
+}
+
+
+
#ifdef never
void AliGenPythia::Streamer(TBuffer &R__b)
{