+ // sigma
+ if(fSelectedParticles&kGenSigma0){
+ AliGenParam * gensigma=0;
+ Char_t nameSigma[10];
+ snprintf(nameSigma,10, "Sigma0");
+ gensigma = new AliGenParam(fNPart, new AliGenEMlib(), AliGenEMlib::kSigma0, "DUMMY");
+ gensigma->SetYRange(fYMin, fYMax);
+
+ AddSource2Generator(nameSigma,gensigma);
+ TF1 *fPtSigma = gensigma->GetPt();
+ #if ROOT_VERSION_CODE < ROOT_VERSION(5,99,0)
+ fYieldArray[kSigma0] = fPtSigma->Integral(fPtMin,fPtMax,(Double_t*)0,1.e-6);
+ #else
+ fYieldArray[kSigma0] = fPtSigma->Integral(fPtMin,fPtMax,1.e-6);
+ #endif
+ }
+
+ // k0short
+ if(fSelectedParticles&kGenK0s){
+ AliGenParam * genkzeroshort=0;
+ Char_t nameK0short[10];
+ snprintf(nameK0short, 10, "K0short");
+ genkzeroshort = new AliGenParam(fNPart, new AliGenEMlib(), AliGenEMlib::kK0s, "DUMMY");
+ genkzeroshort->SetYRange(fYMin, fYMax);
+ AddSource2Generator(nameK0short,genkzeroshort);
+ TF1 *fPtK0short = genkzeroshort->GetPt();
+ #if ROOT_VERSION_CODE >= ROOT_VERSION(5,99,0)
+ fYieldArray[kK0s] = fPtK0short->Integral(fPtMin,fPtMax,1.e-6);
+ #else
+ fYieldArray[kK0s] = fPtK0short->Integral(fPtMin,fPtMax,(Double_t*)0,1.e-6);
+ #endif
+ }
+
+ // Delta++
+ if(fSelectedParticles&kGenDeltaPlPl){
+ AliGenParam * genkdeltaPlPl=0;
+ Char_t nameDeltaPlPl[10];
+ snprintf(nameDeltaPlPl, 10, "DeltaPlPl");
+ genkdeltaPlPl = new AliGenParam(fNPart, new AliGenEMlib(), AliGenEMlib::kDeltaPlPl, "DUMMY");
+ genkdeltaPlPl->SetYRange(fYMin, fYMax);
+ AddSource2Generator(nameDeltaPlPl,genkdeltaPlPl);
+ TF1 *fPtDeltaPlPl = genkdeltaPlPl->GetPt();
+ #if ROOT_VERSION_CODE >= ROOT_VERSION(5,99,0)
+ fYieldArray[kDeltaPlPl] = fPtDeltaPlPl->Integral(fPtMin,fPtMax,1.e-6);
+ #else
+ fYieldArray[kDeltaPlPl] = fPtDeltaPlPl->Integral(fPtMin,fPtMax,(Double_t*)0,1.e-6);
+ #endif
+ }
+
+ // Delta+
+ if(fSelectedParticles&kGenDeltaPl){
+ AliGenParam * genkdeltaPl=0;
+ Char_t nameDeltaPl[10];
+ snprintf(nameDeltaPl, 10, "DeltaPl");
+ genkdeltaPl = new AliGenParam(fNPart, new AliGenEMlib(), AliGenEMlib::kDeltaPl, "DUMMY");
+ genkdeltaPl->SetYRange(fYMin, fYMax);
+ AddSource2Generator(nameDeltaPl,genkdeltaPl);
+ TF1 *fPtDeltaPl = genkdeltaPl->GetPt();
+ #if ROOT_VERSION_CODE >= ROOT_VERSION(5,99,0)
+ fYieldArray[kDeltaPl] = fPtDeltaPl->Integral(fPtMin,fPtMax,1.e-6);
+ #else
+ fYieldArray[kDeltaPl] = fPtDeltaPl->Integral(fPtMin,fPtMax,(Double_t*)0,1.e-6);
+ #endif
+ }
+
+ // Delta-
+ if(fSelectedParticles&kGenDeltaMi){
+ AliGenParam * genkdeltaMi=0;
+ Char_t nameDeltaMi[10];
+ snprintf(nameDeltaMi, 10, "DeltaMi");
+ genkdeltaMi = new AliGenParam(fNPart, new AliGenEMlib(), AliGenEMlib::kDeltaMi, "DUMMY");
+ genkdeltaMi->SetYRange(fYMin, fYMax);
+ AddSource2Generator(nameDeltaMi,genkdeltaMi);
+ TF1 *fPtDeltaMi = genkdeltaMi->GetPt();
+ #if ROOT_VERSION_CODE >= ROOT_VERSION(5,99,0)
+ fYieldArray[kDeltaMi] = fPtDeltaMi->Integral(fPtMin,fPtMax,1.e-6);
+ #else
+ fYieldArray[kDeltaMi] = fPtDeltaMi->Integral(fPtMin,fPtMax,(Double_t*)0,1.e-6);
+ #endif
+ }
+
+ // Delta0
+ if(fSelectedParticles&kGenDeltaZero){
+ AliGenParam * genkdeltaZero=0;
+ Char_t nameDeltaZero[10];
+ snprintf(nameDeltaZero, 10, "DeltaZero");
+ genkdeltaZero = new AliGenParam(fNPart, new AliGenEMlib(), AliGenEMlib::kDeltaZero, "DUMMY");
+ genkdeltaZero->SetYRange(fYMin, fYMax);
+ AddSource2Generator(nameDeltaZero,genkdeltaZero);
+ TF1 *fPtDeltaZero = genkdeltaZero->GetPt();
+ #if ROOT_VERSION_CODE >= ROOT_VERSION(5,99,0)
+ fYieldArray[kDeltaZero] = fPtDeltaZero->Integral(fPtMin,fPtMax,1.e-6);
+ #else
+ fYieldArray[kDeltaZero] = fPtDeltaZero->Integral(fPtMin,fPtMax,(Double_t*)0,1.e-6);
+ #endif
+ }
+
+ // rho+
+ if(fSelectedParticles&kGenRhoPl){
+ AliGenParam * genkrhoPl=0;
+ Char_t nameRhoPl[10];
+ snprintf(nameRhoPl, 10, "RhoPl");
+ genkrhoPl = new AliGenParam(fNPart, new AliGenEMlib(), AliGenEMlib::kRhoPl, "DUMMY");
+ genkrhoPl->SetYRange(fYMin, fYMax);
+ AddSource2Generator(nameRhoPl,genkrhoPl);
+ TF1 *fPtRhoPl = genkrhoPl->GetPt();
+ #if ROOT_VERSION_CODE >= ROOT_VERSION(5,99,0)
+ fYieldArray[kRhoPl] = fPtRhoPl->Integral(fPtMin,fPtMax,1.e-6);
+ #else
+ fYieldArray[kRhoPl] = fPtRhoPl->Integral(fPtMin,fPtMax,(Double_t*)0,1.e-6);
+ #endif
+ }
+
+ // rho-
+ if(fSelectedParticles&kGenRhoMi){
+ AliGenParam * genkrhoMi=0;
+ Char_t nameRhoMi[10];
+ snprintf(nameRhoMi, 10, "RhoMi");
+ genkrhoMi = new AliGenParam(fNPart, new AliGenEMlib(), AliGenEMlib::kRhoMi, "DUMMY");
+ genkrhoMi->SetYRange(fYMin, fYMax);
+ AddSource2Generator(nameRhoMi,genkrhoMi);
+ TF1 *fPtRhoMi = genkrhoMi->GetPt();
+ #if ROOT_VERSION_CODE >= ROOT_VERSION(5,99,0)
+ fYieldArray[kRhoMi] = fPtRhoMi->Integral(fPtMin,fPtMax,1.e-6);
+ #else
+ fYieldArray[kRhoMi] = fPtRhoMi->Integral(fPtMin,fPtMax,(Double_t*)0,1.e-6);
+ #endif
+ }
+
+ // K0*
+ if(fSelectedParticles&kGenK0star){
+ AliGenParam * genkK0star=0;
+ Char_t nameK0star[10];
+ snprintf(nameK0star, 10, "K0star");
+ genkK0star = new AliGenParam(fNPart, new AliGenEMlib(), AliGenEMlib::kK0star, "DUMMY");
+ genkK0star->SetYRange(fYMin, fYMax);
+ AddSource2Generator(nameK0star,genkK0star);
+ TF1 *fPtK0star = genkK0star->GetPt();
+ #if ROOT_VERSION_CODE >= ROOT_VERSION(5,99,0)
+ fYieldArray[kK0star] = fPtK0star->Integral(fPtMin,fPtMax,1.e-6);
+ #else
+ fYieldArray[kK0star] = fPtK0star->Integral(fPtMin,fPtMax,(Double_t*)0,1.e-6);
+ #endif
+ }
+
+ // direct gamma
+ if(fDecayMode!=kGammaEM) return;
+
+ if(fSelectedParticles&kGenDirectRealGamma){
+ AliGenParam *genDirectRealG=0;
+ Char_t nameDirectRealG[10];
+ snprintf(nameDirectRealG,10,"DirectRealGamma");
+ // NOTE: the additional factors are set back to one as they are not the same for photons and electrons
+ genDirectRealG = new AliGenParam(fNPart, new AliGenEMlib(), AliGenEMlib::kDirectRealGamma, "DUMMY");
+ genDirectRealG->SetYRange(fYMin, fYMax);
+ AddSource2Generator(nameDirectRealG,genDirectRealG);
+ TF1 *fPtDirectRealG = genDirectRealG->GetPt();
+ #if ROOT_VERSION_CODE >= ROOT_VERSION(5,99,0)
+ fYieldArray[kDirectRealGamma] = fPtDirectRealG->Integral(fPtMin,fPtMax,1.e-6);
+ #else
+ fYieldArray[kDirectRealGamma] = fPtDirectRealG->Integral(fPtMin,fPtMax,(Double_t *)0,1.e-6);
+ #endif
+ }
+
+ if(fSelectedParticles&kGenDirectVirtGamma){
+ TDatabasePDG::Instance()->AddParticle("DirectVirtGamma","DirectVirtGamma",0,true,0,0,"GaugeBoson",220000);
+ AliGenParam *genDirectVirtG=0;
+ Char_t nameDirectVirtG[10];
+ snprintf(nameDirectVirtG,10,"DirectVirtGamma");
+ // NOTE: the additional factors are set back to one as they are not the same for photons and electrons
+ genDirectVirtG = new AliGenParam(fNPart, new AliGenEMlib(), AliGenEMlib::kDirectVirtGamma, "DUMMY");
+ genDirectVirtG->SetYRange(fYMin, fYMax);
+ AddSource2Generator(nameDirectVirtG,genDirectVirtG);
+ TF1 *fPtDirectVirtG = genDirectVirtG->GetPt();
+ #if ROOT_VERSION_CODE >= ROOT_VERSION(5,99,0)
+ fYieldArray[kDirectVirtGamma] = fPtDirectVirtG->Integral(fPtMin,fPtMax,1.e-6);
+ #else
+ fYieldArray[kDirectVirtGamma] = fPtDirectVirtG->Integral(fPtMin,fPtMax,(Double_t *)0,1.e-6);
+ #endif
+ }