fHeader(0),
fRL(0),
fFileName(0),
- fBremssInCalo(kFALSE),
+ fFragPhotonInCalo(kFALSE),
fPi0InCalo(kFALSE) ,
- fBremssPi0InEMCAL(kFALSE),
- fBremssPi0InPHOS(kFALSE),
- fBremssPi0MinPt(0),
- fPHOSMinPhi(220.),
- fPHOSMaxPhi(320.),
- fPHOSEta(0.12),
- fEMCALMinPhi(80.),
- fEMCALMaxPhi(190.),
- fEMCALEta(0.7)
+ fCheckEMCAL(kFALSE),
+ fCheckPHOS(kFALSE),
+ fFragPhotonOrPi0MinPt(0),
+ fPHOSMinPhi(219.),
+ fPHOSMaxPhi(321.),
+ fPHOSEta(0.13),
+ fEMCALMinPhi(79.),
+ fEMCALMaxPhi(191.),
+ fEMCALEta(0.71)
{
// Default Constructor
fHeader(0),
fRL(0),
fFileName(0),
- fBremssInCalo(kFALSE),
+ fFragPhotonInCalo(kFALSE),
fPi0InCalo(kFALSE) ,
- fBremssPi0InEMCAL(kFALSE),
- fBremssPi0InPHOS(kFALSE),
- fBremssPi0MinPt(0),
- fPHOSMinPhi(220.),
- fPHOSMaxPhi(320.),
- fPHOSEta(0.12),
- fEMCALMinPhi(80.),
- fEMCALMaxPhi(190.),
- fEMCALEta(0.7)
+ fCheckEMCAL(kFALSE),
+ fCheckPHOS(kFALSE),
+ fFragPhotonOrPi0MinPt(0),
+ fPHOSMinPhi(219.),
+ fPHOSMaxPhi(321.),
+ fPHOSEta(0.13),
+ fEMCALMinPhi(79.),
+ fEMCALMaxPhi(191.),
+ fEMCALEta(0.71)
{
// default charm production at 5. 5 TeV
// semimuonic decay
fHeader(0),
fRL(0),
fFileName(0),
- fBremssInCalo(kFALSE),
+ fFragPhotonInCalo(kFALSE),
fPi0InCalo(kFALSE) ,
- fBremssPi0InEMCAL(kFALSE),
- fBremssPi0InPHOS(kFALSE),
- fBremssPi0MinPt(0),
- fPHOSMinPhi(220.),
- fPHOSMaxPhi(320.),
- fPHOSEta(0.12),
- fEMCALMinPhi(80.),
- fEMCALMaxPhi(190.),
- fEMCALEta(0.7)
+ fCheckEMCAL(kFALSE),
+ fCheckPHOS(kFALSE),
+ fFragPhotonOrPi0MinPt(0),
+ fPHOSMinPhi(219.),
+ fPHOSMaxPhi(321.),
+ fPHOSEta(0.13),
+ fEMCALMinPhi(79.),
+ fEMCALMaxPhi(191.),
+ fEMCALEta(0.71)
{
// copy constructor
Pythia.Copy(*this);
}
}
- // Select jets with bremsstrahlung or pi0 going to PHOS or EMCAL
- if (fProcess == kPyJets && (fBremssInCalo || fPi0InCalo) ) {
+ // Select jets with fragmentation photon or pi0 going to PHOS or EMCAL
+ if (fProcess == kPyJets && (fFragPhotonInCalo || fPi0InCalo) ) {
Bool_t ok = kFALSE;
Int_t pdg = 0;
- if (fBremssInCalo) pdg = 22 ; // Photon
+ if (fFragPhotonInCalo) 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;
+ iparticle->Pt() > fFragPhotonOrPi0MinPt){
+ if(pdg == 111 ||
+ (pdg == 22 && iparticle->GetFirstMother() != 11))//No photon from hadron decay
+ {
+ Float_t phi = iparticle->Phi()*180./TMath::Pi(); //Convert to degrees
+ Float_t eta =TMath::Abs(iparticle->Eta());//in calos etamin=-etamax
+ if((fCheckEMCAL && IsInEMCAL(phi,eta)) ||
+ (fCheckPHOS && IsInPHOS(phi,eta)) )
+ ok =kTRUE;
+ }
}
}
if(!ok)
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 )
+ if(phi > fEMCALMinPhi && phi < fEMCALMaxPhi &&
+ eta < fEMCALEta )
return kTRUE;
else
return kFALSE;
// 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 )
+ if(phi > fPHOSMinPhi && phi < fPHOSMaxPhi &&
+ eta < fPHOSEta )
return kTRUE;
else
return kFALSE;