From a6f44de585d8c07a7758654cd03f5c0790b4ab0a Mon Sep 17 00:00:00 2001 From: gconesab Date: Wed, 12 Nov 2008 09:09:17 +0000 Subject: [PATCH 1/1] bugs corrected --- .../AliAnalysisTaskGammaConversion.cxx | 85 ++++--- .../PartCorr/AliGammaConversionHistograms.cxx | 235 +++--------------- PWG4/PartCorr/AliGammaConversionHistograms.h | 9 +- PWG4/PartCorr/AliV0Reader.cxx | 11 +- PWG4/PartCorr/AliV0Reader.h | 12 +- PWG4/macros/ConfigGammaConversion.C | 152 +++++------ 6 files changed, 187 insertions(+), 317 deletions(-) diff --git a/PWG4/PartCorr/AliAnalysisTaskGammaConversion.cxx b/PWG4/PartCorr/AliAnalysisTaskGammaConversion.cxx index ff6d6fdec7e..f6edf1f412e 100644 --- a/PWG4/PartCorr/AliAnalysisTaskGammaConversion.cxx +++ b/PWG4/PartCorr/AliAnalysisTaskGammaConversion.cxx @@ -124,6 +124,7 @@ AliAnalysisTaskGammaConversion::~AliAnalysisTaskGammaConversion() void AliAnalysisTaskGammaConversion::Init() { // Initialization + AliLog::SetGlobalLogLevel(AliLog::kError); } @@ -216,10 +217,26 @@ void AliAnalysisTaskGammaConversion::ProcessMCData(){ fHistograms->FillHistogram("MC_Gamma_Phi", tmpPhi); //adding the conversion points from all gammas with e+e- daughters - if(particle->GetNDaughters() == 2){ - TParticle* daughter0 = (TParticle*)fStack->Particle(particle->GetFirstDaughter()); - TParticle* daughter1 = (TParticle*)fStack->Particle(particle->GetLastDaughter()); + if(particle->GetNDaughters() >= 2){ + TParticle* daughter0 = NULL; + TParticle* daughter1 = NULL; + for(Int_t daughterIndex=particle->GetFirstDaughter();daughterIndex<=particle->GetLastDaughter();daughterIndex++){ + TParticle *tmpDaughter = fStack->Particle(daughterIndex); + if(tmpDaughter->GetUniqueID() == 5){ + if(tmpDaughter->GetPdgCode() == 11){ + daughter0 = tmpDaughter; + } + else if(tmpDaughter->GetPdgCode() == -11){ + daughter1 = tmpDaughter; + } + } + } + + if(daughter0 == NULL || daughter1 == NULL){ // means we do not have two daughters from pair production + continue; + } + if(daughter0->R()>fV0Reader->GetMaxRCut() || daughter1->R()>fV0Reader->GetMaxRCut()){ continue; } @@ -244,24 +261,24 @@ void AliAnalysisTaskGammaConversion::ProcessMCData(){ fHistograms->FillHistogram(nameMCMappingR, particle->Eta()); TString nameMCMappingPhiInR=""; - nameMCMappingPhiInR.Form("MC_EP_Mapping_Phi_vs_R_R-%02d",rBin); - fHistograms->FillHistogram(nameMCMappingPhiInR, daughter0->R(), tmpPhi); + nameMCMappingPhiInR.Form("MC_EP_Mapping_Phi_R-%02d",rBin); + fHistograms->FillHistogram(nameMCMappingPhiInR, tmpPhi); //end mapping fHistograms->FillHistogram("MC_EP_R",daughter0->R()); fHistograms->FillHistogram("MC_EP_ZR",daughter0->Vz(),daughter0->R()); fHistograms->FillHistogram("MC_EP_XY",daughter0->Vx(),daughter0->Vy()); fHistograms->FillHistogram("MC_EP_OpeningAngle",GetMCOpeningAngle(daughter0, daughter1)); - } - } - } + }// end if((daughter0->GetPdgCode() == -11 && daughter1->GetPdgCode()) == 11 ||....... approx 20 lines above + }// end if(particle->GetNDaughters() >= 2){ + } // end if( fStack->Particle(particle->GetMother(0))->GetPdgCode() != 22 ) if( fStack->Particle(particle->GetMother(0))->GetPdgCode()==10441 ||//chic0 fStack->Particle(particle->GetMother(0))->GetPdgCode()==20443 ||//psi2S fStack->Particle(particle->GetMother(0))->GetPdgCode()==445 //chic2 - ){ + ){ fMCGammaChic.push_back(particle); - } - } + } + }// end if(particle->GetMother(0)>-1) else{//means we have a primary particle fHistograms->FillHistogram("MC_DirectGamma_Energy",particle->Energy()); fHistograms->FillHistogram("MC_DirectGamma_Pt", particle->Pt()); @@ -282,9 +299,8 @@ void AliAnalysisTaskGammaConversion::ProcessMCData(){ } } - - } - } + }// end else + }// end if (particle->GetPdgCode()== 22){ else if (TMath::Abs(particle->GetPdgCode())== 11){ // Means we have an electron or a positron if(particle->GetMother(0)>-1){ // means we have a mother if( fStack->Particle(particle->GetMother(0))->GetPdgCode()==22 ){ // Means we have a gamma mother @@ -302,7 +318,7 @@ void AliAnalysisTaskGammaConversion::ProcessMCData(){ } } } - } + } // end else if (TMath::Abs(particle->GetPdgCode())== 11) else if(particle->GetNDaughters() == 2){ TParticle* daughter0 = (TParticle*)fStack->Particle(particle->GetFirstDaughter()); @@ -322,7 +338,7 @@ void AliAnalysisTaskGammaConversion::ProcessMCData(){ fHistograms->FillHistogram("MC_Pi0_Secondaries_Energy", particle->Energy()); fHistograms->FillHistogram("MC_Pi0_Secondaries_R", particle->R()); fHistograms->FillHistogram("MC_Pi0_Secondaries_ZR", particle->Vz(),particle->R()); - fHistograms->FillHistogram("MC_Pi0_Secondaries_OpeningAngle_Gamma", GetMCOpeningAngle(daughter0,daughter1)); + fHistograms->FillHistogram("MC_Pi0_Secondaries_GammaDaughter_OpeningAngle", GetMCOpeningAngle(daughter0,daughter1)); fHistograms->FillHistogram("MC_Pi0_Secondaries_XY", particle->Vx(),particle->Vy());//only fill from one daughter to avoid multiple filling } else{ @@ -333,7 +349,7 @@ void AliAnalysisTaskGammaConversion::ProcessMCData(){ fHistograms->FillHistogram("MC_Pi0_Energy", particle->Energy()); fHistograms->FillHistogram("MC_Pi0_R", particle->R()); fHistograms->FillHistogram("MC_Pi0_ZR", particle->Vz(),particle->R()); - fHistograms->FillHistogram("MC_Pi0_OpeningAngle_Gamma", GetMCOpeningAngle(daughter0,daughter1)); + fHistograms->FillHistogram("MC_Pi0_GammaDaughter_OpeningAngle", GetMCOpeningAngle(daughter0,daughter1)); fHistograms->FillHistogram("MC_Pi0_XY", particle->Vx(), particle->Vy());//only fill from one daughter to avoid multiple filling } } @@ -345,7 +361,7 @@ void AliAnalysisTaskGammaConversion::ProcessMCData(){ fHistograms->FillHistogram("MC_Eta_Energy", particle->Energy()); fHistograms->FillHistogram("MC_Eta_R", particle->R()); fHistograms->FillHistogram("MC_Eta_ZR", particle->Vz(),particle->R()); - fHistograms->FillHistogram("MC_Eta_OpeningAngle_Gamma", GetMCOpeningAngle(daughter0,daughter1)); + fHistograms->FillHistogram("MC_Eta_GammaDaughter_OpeningAngle", GetMCOpeningAngle(daughter0,daughter1)); fHistograms->FillHistogram("MC_Eta_XY", particle->Vx(), particle->Vy());//only fill from one daughter to avoid multiple filling } @@ -360,9 +376,9 @@ void AliAnalysisTaskGammaConversion::ProcessMCData(){ fHistograms->FillHistogram("MC_Match_Gamma_Eta", particle->Eta()); fHistograms->FillHistogram("MC_Match_Gamma_Phi",tmpPhi); } - } - } -} + }// end else if(particle->GetNDaughters() == 2) + }// end for (Int_t iTracks = 0; iTracks < fStack->GetNtrack(); iTracks++) +} // end ProcessMCData void AliAnalysisTaskGammaConversion::ProcessV0s(){ // see header file for documentation @@ -411,8 +427,8 @@ void AliAnalysisTaskGammaConversion::ProcessV0s(){ fHistograms->FillHistogram(nameESDMappingR, fV0Reader->GetZ(), motherCandidateEta); TString nameESDMappingPhiInR=""; - nameESDMappingPhiInR.Form("ESD_EP_Mapping_Phi_vs_R_R-%02d",rBin); - fHistograms->FillHistogram(nameESDMappingPhiInR, fV0Reader->GetXYRadius(), fV0Reader->GetMotherCandidatePhi()); + nameESDMappingPhiInR.Form("ESD_EP_Mapping_Phi_R-%02d",rBin); + fHistograms->FillHistogram(nameESDMappingPhiInR, fV0Reader->GetMotherCandidatePhi()); // end mapping fKFReconstructedGammas.push_back(*fV0Reader->GetMotherCandidateKFCombination()); @@ -422,13 +438,13 @@ void AliAnalysisTaskGammaConversion::ProcessV0s(){ if(fV0Reader->HasSameMCMother() == kFALSE){ continue; } - + TParticle * negativeMC = (TParticle*)fV0Reader->GetNegativeMCParticle(); TParticle * positiveMC = (TParticle*)fV0Reader->GetPositiveMCParticle(); + if(negativeMC->GetPdgCode()!=11 || positiveMC->GetPdgCode()!=-11){ continue; } - if(fV0Reader->GetMotherMCParticle()->GetPdgCode() == 22){ fHistograms->FillHistogram("ESD_Match_Gamma_XY", fV0Reader->GetX(),fV0Reader->GetY()); fHistograms->FillHistogram("ESD_Match_Gamma_OpeningAngle", fV0Reader->GetOpeningAngle()); @@ -469,7 +485,7 @@ void AliAnalysisTaskGammaConversion::ProcessV0s(){ if(fV0Reader->GetNegativeMCParticle()->R() != 0){ resdR = ((fV0Reader->GetXYRadius() - fV0Reader->GetNegativeMCParticle()->R())/fV0Reader->GetNegativeMCParticle()->R())*100; } - fHistograms->FillHistogram("Resolutiond_R", fV0Reader->GetNegativeMCParticle()->R(), resdR); + fHistograms->FillHistogram("Resolution_dR", fV0Reader->GetNegativeMCParticle()->R(), resdR); fHistograms->FillHistogram("Resolution_MC_R", fV0Reader->GetNegativeMCParticle()->R()); fHistograms->FillHistogram("Resolution_ESD_R", fV0Reader->GetXYRadius()); fHistograms->FillHistogram("Resolution_dR_dPt", resdR, resdPt); @@ -497,8 +513,7 @@ void AliAnalysisTaskGammaConversion::ProcessGammasForNeutralMesonAnalysis(){ twoGammaCandidate->GetMass(massTwoGammaCandidate,widthTwoGammaCandidate); if(twoGammaCandidate->GetNDF()>0){ chi2TwoGammaCandidate = twoGammaCandidate->GetChi2()/twoGammaCandidate->GetNDF(); - // if(chi2TwoGammaCandidate>0 && chi2TwoGammaCandidate0 && chi2TwoGammaCandidate<10000){//TODO find this out see line above + if(chi2TwoGammaCandidate>0 && chi2TwoGammaCandidateGetChi2CutMeson()){ TVector3 vectorTwoGammaCandidate(twoGammaCandidate->Px(),twoGammaCandidate->Py(),twoGammaCandidate->Pz()); @@ -510,7 +525,7 @@ void AliAnalysisTaskGammaConversion::ProcessGammasForNeutralMesonAnalysis(){ Double_t radiusTwoGammaCandidate = TMath::Sqrt(tmpX*tmpX + tmpY*tmpY); - fHistograms->FillHistogram("ESD_TwoGammaCombination_OpeningAngleGamma", openingAngleTwoGammaCandidate); + fHistograms->FillHistogram("ESD_TwoGammaCombination_GammaDaughter_OpeningAngle", openingAngleTwoGammaCandidate); fHistograms->FillHistogram("ESD_TwoGammaCombination_Energy", twoGammaCandidate->GetE()); fHistograms->FillHistogram("ESD_TwoGammaCombination_Pt", sqrt(twoGammaCandidate->GetPx()*twoGammaCandidate->GetPx()+twoGammaCandidate->GetPy()*twoGammaCandidate->GetPy())); fHistograms->FillHistogram("ESD_TwoGammaCombination_Eta", vectorTwoGammaCandidate.Eta()); @@ -518,14 +533,13 @@ void AliAnalysisTaskGammaConversion::ProcessGammasForNeutralMesonAnalysis(){ fHistograms->FillHistogram("ESD_TwoGammaCombination_Mass", massTwoGammaCandidate); fHistograms->FillHistogram("ESD_TwoGammaCombination_R", radiusTwoGammaCandidate); fHistograms->FillHistogram("ESD_TwoGammaCombination_ZR", tmpY, radiusTwoGammaCandidate); - fHistograms->FillHistogram("ESD_TwoGammaCombination_XY", tmpX, tmpY); - fHistograms->FillHistogram("InvMass_vs_Pt__Spectra",massTwoGammaCandidate ,sqrt(twoGammaCandidate->GetPx()*twoGammaCandidate->GetPx()+twoGammaCandidate->GetPy()*twoGammaCandidate->GetPy())); + fHistograms->FillHistogram("ESD_TwoGammaCombination_XY", tmpX, tmpY); + fHistograms->FillHistogram("InvMass_vs_Pt_Spectra",massTwoGammaCandidate ,sqrt(twoGammaCandidate->GetPx()*twoGammaCandidate->GetPx()+twoGammaCandidate->GetPy()*twoGammaCandidate->GetPy())); } } delete twoGammaCandidate; } } - } void AliAnalysisTaskGammaConversion::CalculateBackground(){ @@ -546,8 +560,7 @@ void AliAnalysisTaskGammaConversion::CalculateBackground(){ backgroundCandidate->GetMass(massBG,widthBG); if(backgroundCandidate->GetNDF()>0){ chi2BG = backgroundCandidate->GetChi2()/backgroundCandidate->GetNDF(); - // if(chi2Pi0>0 && chi2Pi00 && chi2BGGetChi2Cut()){//TODO find this out see line above + if(chi2BG>0 && chi2BGGetChi2CutMeson()){ TVector3 vectorBGCandidate(backgroundCandidate->Px(),backgroundCandidate->Py(),backgroundCandidate->Pz()); @@ -568,6 +581,7 @@ void AliAnalysisTaskGammaConversion::CalculateBackground(){ fHistograms->FillHistogram("ESD_Background_R", radiusBG); fHistograms->FillHistogram("ESD_Background_ZR", tmpY, radiusBG); fHistograms->FillHistogram("ESD_Background_XY", tmpX, tmpY); + fHistograms->FillHistogram("Background_InvMass_vs_Pt_Spectra",massBG,sqrt(backgroundCandidate->GetPx()*backgroundCandidate->GetPx()+backgroundCandidate->GetPy()*backgroundCandidate->GetPy())); } } delete backgroundCandidate; @@ -593,7 +607,7 @@ void AliAnalysisTaskGammaConversion::UserCreateOutputObjects() fOutputContainer = new TList(); } fHistograms->GetOutputContainer(fOutputContainer); - fOutputContainer->SetName(GetName()) ; + fOutputContainer->SetName(GetName()); } Double_t AliAnalysisTaskGammaConversion::GetMCOpeningAngle(TParticle* daughter0, TParticle* daughter1) const{ @@ -602,4 +616,3 @@ Double_t AliAnalysisTaskGammaConversion::GetMCOpeningAngle(TParticle* daughter0, TVector3 v3D1(daughter1->Px(),daughter1->Py(),daughter1->Pz()); return v3D0.Angle(v3D1); } - diff --git a/PWG4/PartCorr/AliGammaConversionHistograms.cxx b/PWG4/PartCorr/AliGammaConversionHistograms.cxx index cd9f6ee47ee..08ada546385 100644 --- a/PWG4/PartCorr/AliGammaConversionHistograms.cxx +++ b/PWG4/PartCorr/AliGammaConversionHistograms.cxx @@ -42,7 +42,8 @@ AliGammaConversionHistograms::AliGammaConversionHistograms() : fDeltaR(0.), fMinPhi(0.), fMaxPhi(0.), - fDeltaPhi(0.) + fDeltaPhi(0.), + fMappingContainer(NULL) { // see header file for documenation } @@ -57,7 +58,8 @@ AliGammaConversionHistograms::AliGammaConversionHistograms(const AliGammaConvers fDeltaR(original.fDeltaR), fMinPhi(original.fMinPhi), fMaxPhi(original.fMaxPhi), - fDeltaPhi(original.fDeltaPhi) + fDeltaPhi(original.fDeltaPhi), + fMappingContainer(original.fMappingContainer) { //see header file for documentation } @@ -101,7 +103,7 @@ void AliGammaConversionHistograms::FillHistogram(TString histogramName, Double_t tmp->Fill(xValue); } else{ - cout<<"Histogram does not exist"<Fill(xValue, yValue); } else{ - cout<<"Histogram does not exist"<GetString().Data()<GetString(); + if(histogramString.Contains("Mapping")){// means it should be put in the mapping folder + if(fMappingContainer == NULL){ + fMappingContainer = new TList(); + fMappingContainer->SetName("Mapping histograms"); + } + if(fMappingContainer != NULL){ + fMappingContainer->Add((TH1*)fHistogramMap->GetValue(histogramString.Data())); + } + } fOutputContainer->Add((TH1*)fHistogramMap->GetValue(histogramString.Data())); histogramName = NULL; - } - } - - //remember mapping stuff!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - - /* - TList* fMappingContainer = new TList(); - fMappingContainer->SetName("Mapping Histograms"); - - if(fMCEPR != NULL){ fOutputContainer->Add(fMCEPR);} - if(fMCEPZR != NULL){ fOutputContainer->Add(fMCEPZR);} - if(fMCEPXY != NULL){ fOutputContainer->Add(fMCEPXY);} - if(fMCEPOpeningAngle != NULL){ fOutputContainer->Add(fMCEPOpeningAngle);} - - if(fMCEEnergy != NULL){ fOutputContainer->Add(fMCEEnergy);} - if(fMCEPt != NULL){ fOutputContainer->Add(fMCEPt);} - if(fMCEEta != NULL){ fOutputContainer->Add(fMCEEta);} - if(fMCEPhi != NULL){ fOutputContainer->Add(fMCEPhi);} - - if(fMCPEnergy != NULL){ fOutputContainer->Add(fMCPEnergy);} - if(fMCPPt != NULL){ fOutputContainer->Add(fMCPPt);} - if(fMCPEta != NULL){ fOutputContainer->Add(fMCPEta);} - if(fMCPPhi != NULL){ fOutputContainer->Add(fMCPPhi);} - - if(fMCGammaEnergy != NULL){ fOutputContainer->Add(fMCGammaEnergy);} - if(fMCGammaPt != NULL){ fOutputContainer->Add(fMCGammaPt);} - if(fMCGammaEta != NULL){ fOutputContainer->Add(fMCGammaEta);} - if(fMCGammaPhi != NULL){ fOutputContainer->Add(fMCGammaPhi);} - - if(fMCDirectGammaEnergy != NULL){ fOutputContainer->Add(fMCDirectGammaEnergy);} - if(fMCDirectGammaPt != NULL){ fOutputContainer->Add(fMCDirectGammaPt);} - if(fMCDirectGammaEta != NULL){ fOutputContainer->Add(fMCDirectGammaEta);} - if(fMCDirectGammaPhi != NULL){ fOutputContainer->Add(fMCDirectGammaPhi);} - - //mapping - for(UInt_t i=0;iAdd(fMCMapping[i][j]);} - } + } // end while + // fOutputContainer->Add(fMappingContainer); } - for(UInt_t i=0;iAdd(fMCMappingPhi[i]);} - } - for(UInt_t i=0;iAdd(fMCMappingR[i]);} - } - if(fMCMatchGammaEta != NULL){ fOutputContainer->Add(fMCMatchGammaEta);} - if(fMCMatchGammaPhi != NULL){ fOutputContainer->Add(fMCMatchGammaPhi);} - if(fMCMatchGammaPt != NULL){ fOutputContainer->Add(fMCMatchGammaPt);} - if(fMCMatchGammaEnergy != NULL){ fOutputContainer->Add(fMCMatchGammaEnergy);} - if(fMCMatchGammaMass != NULL){ fOutputContainer->Add(fMCMatchGammaMass);} - if(fMCMatchGammaOpeningAngle != NULL){ fOutputContainer->Add(fMCMatchGammaOpeningAngle);} - if(fMCMatchGammaR != NULL){ fOutputContainer->Add(fMCMatchGammaR);} - if(fMCMatchGammaZR != NULL){ fOutputContainer->Add(fMCMatchGammaZR);} - if(fMCMatchGammaXY != NULL){ fOutputContainer->Add(fMCMatchGammaXY);} - - if(fMCPi0Eta != NULL){ fOutputContainer->Add(fMCPi0Eta);} - if(fMCPi0Phi != NULL){ fOutputContainer->Add(fMCPi0Phi);} - if(fMCPi0Pt != NULL){ fOutputContainer->Add(fMCPi0Pt);} - if(fMCPi0Energy != NULL){ fOutputContainer->Add(fMCPi0Energy);} - if(fMCPi0Mass != NULL){ fOutputContainer->Add(fMCPi0Mass);} - if(fMCPi0OpeningAngleGamma != NULL){ fOutputContainer->Add(fMCPi0OpeningAngleGamma);} - if(fMCPi0R != NULL){ fOutputContainer->Add(fMCPi0R);} - if(fMCPi0ZR != NULL){ fOutputContainer->Add(fMCPi0ZR);} - if(fMCPi0XY != NULL){ fOutputContainer->Add(fMCPi0XY);} - if(fMCPi0SecondariesXY != NULL){ fOutputContainer->Add(fMCPi0SecondariesXY);} - - if(fMCEtaEta != NULL){ fOutputContainer->Add(fMCEtaEta);} - if(fMCEtaPhi != NULL){ fOutputContainer->Add(fMCEtaPhi);} - if(fMCEtaPt != NULL){ fOutputContainer->Add(fMCEtaPt);} - if(fMCEtaEnergy != NULL){ fOutputContainer->Add(fMCEtaEnergy);} - if(fMCEtaMass != NULL){ fOutputContainer->Add(fMCEtaMass);} - if(fMCEtaOpeningAngleGamma != NULL){ fOutputContainer->Add(fMCEtaOpeningAngleGamma);} - if(fMCEtaR != NULL){ fOutputContainer->Add(fMCEtaR);} - if(fMCEtaZR != NULL){ fOutputContainer->Add(fMCEtaZR);} - if(fMCEtaXY != NULL){ fOutputContainer->Add(fMCEtaXY);} - - // Histograms from esd tracks - if(fESDEPR != NULL){ fOutputContainer->Add(fESDEPR);} - if(fESDEPZR != NULL){ fOutputContainer->Add(fESDEPZR);} - if(fESDEPXY != NULL){ fOutputContainer->Add(fESDEPXY);} - if(fESDEPOpeningAngle != NULL){ fOutputContainer->Add(fESDEPOpeningAngle);} - - if(fESDEEnergy != NULL){ fOutputContainer->Add(fESDEEnergy);} - if(fESDEPt != NULL){ fOutputContainer->Add(fESDEPt);} - if(fESDEEta != NULL){ fOutputContainer->Add(fESDEEta);} - if(fESDEPhi != NULL){ fOutputContainer->Add(fESDEPhi);} - - if(fESDPEnergy != NULL){ fOutputContainer->Add(fESDPEnergy);} - if(fESDPPt != NULL){ fOutputContainer->Add(fESDPPt);} - if(fESDPEta != NULL){ fOutputContainer->Add(fESDPEta);} - if(fESDPPhi != NULL){ fOutputContainer->Add(fESDPPhi);} - - if(fESDGammaEnergy != NULL){ fOutputContainer->Add(fESDGammaEnergy);} - if(fESDGammaPt != NULL){ fOutputContainer->Add(fESDGammaPt);} - if(fESDGammaEta != NULL){ fOutputContainer->Add(fESDGammaEta);} - if(fESDGammaPhi != NULL){ fOutputContainer->Add(fESDGammaPhi);} - - //mapping - for(UInt_t i=0;iAdd(fESDMapping[i][j]);} - } - } - for(UInt_t i=0;iAdd(fESDMappingPhi[i]);} - } - for(UInt_t i=0;iAdd(fESDMappingR[i]);} - } - - fOutputContainer->Add(fMappingContainer); - - if(fESDMatchGammaOpeningAngle != NULL){ fOutputContainer->Add(fESDMatchGammaOpeningAngle);} - if(fESDMatchGammaEnergy != NULL){ fOutputContainer->Add(fESDMatchGammaEnergy);} - if(fESDMatchGammaPt != NULL){ fOutputContainer->Add(fESDMatchGammaPt);} - if(fESDMatchGammaEta != NULL){ fOutputContainer->Add(fESDMatchGammaEta);} - if(fESDMatchGammaPhi != NULL){ fOutputContainer->Add(fESDMatchGammaPhi);} - if(fESDMatchGammaMass != NULL){ fOutputContainer->Add(fESDMatchGammaMass);} - if(fESDMatchGammaWidth != NULL){ fOutputContainer->Add(fESDMatchGammaWidth);} - if(fESDMatchGammaChi2 != NULL){ fOutputContainer->Add(fESDMatchGammaChi2);} - if(fESDMatchGammaNDF != NULL){ fOutputContainer->Add(fESDMatchGammaNDF);} - if(fESDMatchGammaR != NULL){ fOutputContainer->Add(fESDMatchGammaR);} - if(fESDMatchGammaZR != NULL){ fOutputContainer->Add(fESDMatchGammaZR);} - if(fESDMatchGammaXY != NULL){ fOutputContainer->Add(fESDMatchGammaXY);} - - if(fESDPi0OpeningAngleGamma != NULL){ fOutputContainer->Add(fESDPi0OpeningAngleGamma);} - if(fESDPi0Energy != NULL){ fOutputContainer->Add(fESDPi0Energy);} - if(fESDPi0Pt != NULL){ fOutputContainer->Add(fESDPi0Pt);} - if(fESDPi0Eta != NULL){ fOutputContainer->Add(fESDPi0Eta);} - if(fESDPi0Phi != NULL){ fOutputContainer->Add(fESDPi0Phi);} - if(fESDPi0Mass != NULL){ fOutputContainer->Add(fESDPi0Mass);} - if(fESDPi0R != NULL){ fOutputContainer->Add(fESDPi0R);} - if(fESDPi0ZR != NULL){ fOutputContainer->Add(fESDPi0ZR);} - if(fESDPi0XY != NULL){ fOutputContainer->Add(fESDPi0XY);} - - if(fESDEtaOpeningAngleGamma != NULL){ fOutputContainer->Add(fESDEtaOpeningAngleGamma);} - if(fESDEtaEnergy != NULL){ fOutputContainer->Add(fESDEtaEnergy);} - if(fESDEtaPt != NULL){ fOutputContainer->Add(fESDEtaPt);} - if(fESDEtaEta != NULL){ fOutputContainer->Add(fESDEtaEta);} - if(fESDEtaPhi != NULL){ fOutputContainer->Add(fESDEtaPhi);} - if(fESDEtaMass != NULL){ fOutputContainer->Add(fESDEtaMass);} - if(fESDEtaR != NULL){ fOutputContainer->Add(fESDEtaR);} - if(fESDEtaZR != NULL){ fOutputContainer->Add(fESDEtaZR);} - if(fESDEtaXY != NULL){ fOutputContainer->Add(fESDEtaXY);} - - if(fESDBackgroundOpeningAngleGamma != NULL){ fOutputContainer->Add(fESDBackgroundOpeningAngleGamma);} - if(fESDBackgroundEnergy != NULL){ fOutputContainer->Add(fESDBackgroundEnergy);} - if(fESDBackgroundPt != NULL){ fOutputContainer->Add(fESDBackgroundPt);} - if(fESDBackgroundEta != NULL){ fOutputContainer->Add(fESDBackgroundEta);} - if(fESDBackgroundPhi != NULL){ fOutputContainer->Add(fESDBackgroundPhi);} - if(fESDBackgroundMass != NULL){ fOutputContainer->Add(fESDBackgroundMass);} - if(fESDBackgroundR != NULL){ fOutputContainer->Add(fESDBackgroundR);} - if(fESDBackgroundZR != NULL){ fOutputContainer->Add(fESDBackgroundZR);} - if(fESDBackgroundXY != NULL){ fOutputContainer->Add(fESDBackgroundXY);} - - if(fResolutiondPt != NULL){ fOutputContainer->Add(fResolutiondPt);} - if(fResolutiondR != NULL){ fOutputContainer->Add(fResolutiondR);} - if(fResolutiondZ != NULL){ fOutputContainer->Add(fResolutiondZ);} - if(fResolutiondRdPt != NULL){ fOutputContainer->Add(fResolutiondRdPt);} - if(fResolutionMCPt != NULL){ fOutputContainer->Add(fResolutionMCPt);} - if(fResolutionMCR != NULL){ fOutputContainer->Add(fResolutionMCR);} - if(fResolutionMCZ != NULL){ fOutputContainer->Add(fResolutionMCZ);} - if(fResolutionESDPt != NULL){ fOutputContainer->Add(fResolutionESDPt);} - if(fResolutionESDR != NULL){ fOutputContainer->Add(fResolutionESDR);} - if(fResolutionESDZ != NULL){ fOutputContainer->Add(fResolutionESDZ);} - - if(fNumberOfV0s != NULL){fOutputContainer->Add(fNumberOfV0s);} - if(fNumberOfSurvivingV0s != NULL){fOutputContainer->Add(fNumberOfSurvivingV0s);} - if(fV0MassDebugCut1 != NULL){fOutputContainer->Add(fV0MassDebugCut1);} - if(fV0MassDebugCut2 != NULL){fOutputContainer->Add(fV0MassDebugCut2);} - if(fV0MassDebugCut3 != NULL){fOutputContainer->Add(fV0MassDebugCut3);} - if(fV0MassDebugCut4 != NULL){fOutputContainer->Add(fV0MassDebugCut4);} - if(fV0MassDebugCut5 != NULL){fOutputContainer->Add(fV0MassDebugCut5);} - if(fV0MassDebugCut6 != NULL){fOutputContainer->Add(fV0MassDebugCut6);} - if(fV0MassDebugCut7 != NULL){fOutputContainer->Add(fV0MassDebugCut7);} - if(fV0MassDebugCut8 != NULL){fOutputContainer->Add(fV0MassDebugCut8);} - - return fOutputContainer; -*/ } Int_t AliGammaConversionHistograms::GetRBin(Double_t radius) const{ @@ -365,6 +196,9 @@ void AliGammaConversionHistograms::AddMappingHistograms(Int_t nPhiIndex, Int_t n for(Int_t r =0; r -//#include "TList.h" -//#include "TMap.h" class TMap; class TList; @@ -33,7 +29,7 @@ class AliGammaConversionHistograms{ // TList * GetOutputContainer(); - void GetOutputContainer(TList *fOutputContainer) const; + void GetOutputContainer(TList *fOutputContainer); Int_t GetRBin(Double_t radius) const; Int_t GetPhiBin(Double_t phi) const; @@ -73,6 +69,9 @@ class AliGammaConversionHistograms{ Double_t fMinPhi; Double_t fMaxPhi; Double_t fDeltaPhi; + + TList * fMappingContainer; + ClassDef(AliGammaConversionHistograms,1) } ; diff --git a/PWG4/PartCorr/AliV0Reader.cxx b/PWG4/PartCorr/AliV0Reader.cxx index 6c9291d670b..7e39f1f54e6 100644 --- a/PWG4/PartCorr/AliV0Reader.cxx +++ b/PWG4/PartCorr/AliV0Reader.cxx @@ -77,7 +77,8 @@ ClassImp(AliV0Reader) fMaxR(10000),// 100 meter(outside of ALICE) fEtaCut(0.), fPtCut(0.), - fChi2Cut(0.), + fChi2CutConversion(0.), + fChi2CutMeson(0.), fPIDProbabilityCutNegativeParticle(0), fPIDProbabilityCutPositiveParticle(0), fXVertexCut(0.), @@ -126,7 +127,8 @@ AliV0Reader::AliV0Reader(const AliV0Reader & original) : fMaxR(original.fMaxR), fEtaCut(original.fEtaCut), fPtCut(original.fPtCut), - fChi2Cut(original.fChi2Cut), + fChi2CutConversion(original.fChi2CutConversion), + fChi2CutMeson(original.fChi2CutMeson), fPIDProbabilityCutNegativeParticle(original.fPIDProbabilityCutNegativeParticle), fPIDProbabilityCutPositiveParticle(original.fPIDProbabilityCutPositiveParticle), fXVertexCut(original.fXVertexCut), @@ -231,7 +233,7 @@ Bool_t AliV0Reader::NextV0(){ continue; } Double_t chi2V0 = fCurrentMotherKFCandidate->GetChi2()/fCurrentMotherKFCandidate->GetNDF(); - if(chi2V0 > fChi2Cut || chi2V0 <=0){ + if(chi2V0 > fChi2CutConversion || chi2V0 <=0){ fCurrentV0IndexNumber++; fHistograms->FillHistogram("V0MassDebugCut6",GetMotherCandidateMass()); continue; @@ -332,10 +334,11 @@ void AliV0Reader::UpdateV0Information(){ fMotherCandidateLorentzVector->SetXYZM(fMotherCandidateLorentzVector->Px() ,fMotherCandidateLorentzVector->Py(),fMotherCandidateLorentzVector->Pz(),0.); } - if(fDoMC){ + if(fDoMC == kTRUE){ fNegativeMCParticle = fMCStack->Particle(TMath::Abs(fESDEvent->GetTrack(fCurrentV0->GetNindex())->GetLabel())); fPositiveMCParticle = fMCStack->Particle(TMath::Abs(fESDEvent->GetTrack(fCurrentV0->GetPindex())->GetLabel())); } + fCurrentEventGoodV0s.push_back(*fCurrentMotherKFCandidate); } Bool_t AliV0Reader::HasSameMCMother(){ diff --git a/PWG4/PartCorr/AliV0Reader.h b/PWG4/PartCorr/AliV0Reader.h index 94f1d3f691e..41a3ab9bd2e 100644 --- a/PWG4/PartCorr/AliV0Reader.h +++ b/PWG4/PartCorr/AliV0Reader.h @@ -212,12 +212,14 @@ class AliV0Reader : public TObject { Double_t GetMaxRCut() const{return fMaxR;} Double_t GetEtaCut() const{return fEtaCut;} Double_t GetPtCut() const{return fPtCut;} - Double_t GetChi2Cut() const{return fChi2Cut;} + Double_t GetChi2CutConversion() const{return fChi2CutConversion;} + Double_t GetChi2CutMeson() const{return fChi2CutMeson;} void SetMaxRCut(Double_t maxR){fMaxR=maxR;} void SetEtaCut(Double_t etaCut){fEtaCut=etaCut;} void SetPtCut(Double_t ptCut){fPtCut=ptCut;} - void SetChi2Cut(Double_t chi2){fChi2Cut=chi2;} + void SetChi2CutConversion(Double_t chi2){fChi2CutConversion=chi2;} + void SetChi2CutMeson(Double_t chi2){fChi2CutMeson=chi2;} void SetXVertexCut(Double_t xVtx){fCurrentXValue=xVtx;} void SetYVertexCut(Double_t yVtx){fCurrentYValue=yVtx;} @@ -226,6 +228,9 @@ class AliV0Reader : public TObject { void SetPIDProbabilityNegativeParticle(Double_t pidProb){fPIDProbabilityCutNegativeParticle=pidProb;} void SetPIDProbabilityPositiveParticle(Double_t pidProb){fPIDProbabilityCutPositiveParticle=pidProb;} void SetSigmaMass(Double_t sigmaMass){fNSigmaMass=sigmaMass;} + + void SetDoMCTruth(Bool_t doMC){fDoMC = doMC;} + void UpdateV0Information(); void SetHistograms(AliGammaConversionHistograms *histograms){fHistograms=histograms;} @@ -278,7 +283,8 @@ class AliV0Reader : public TObject { Double_t fMaxR; Double_t fEtaCut; Double_t fPtCut; - Double_t fChi2Cut; + Double_t fChi2CutConversion; + Double_t fChi2CutMeson; Double_t fPIDProbabilityCutNegativeParticle; Double_t fPIDProbabilityCutPositiveParticle; Double_t fXVertexCut; diff --git a/PWG4/macros/ConfigGammaConversion.C b/PWG4/macros/ConfigGammaConversion.C index d2fb671f549..7b1d10198f4 100644 --- a/PWG4/macros/ConfigGammaConversion.C +++ b/PWG4/macros/ConfigGammaConversion.C @@ -11,6 +11,8 @@ Bool_t useESDTrack = kFALSE; Bool_t calculateBackground = kTRUE; +Int_t numberOfFilesToAnalyze=100; + /** ---------------------------------- define cuts here ------------------------------------*/ Int_t pidOfNegativeTrack=11; @@ -19,7 +21,8 @@ Int_t pidOfPositiveTrack=-11; Double_t maxRCut = 200.; Double_t etaCut = 1.2; Double_t ptCut = 0.1; -Double_t chi2Cut = 20.; +Double_t chi2CutConversion = 20.; +Double_t chi2CutMeson = 20.; Double_t xVertexCut = 0.; Double_t yVertexCut = 0.; @@ -59,8 +62,8 @@ Double_t maxPhi = TMath::Pi(); /** ------------------- define which histograms to plot here --------------------------------*/ /** NB: to change the bin numbers, see below the histogram flags */ Bool_t plotMCEPR = kTRUE; -Bool_t plotMCEPZR = kTRUE; -Bool_t plotMCEPXY = kTRUE; +Bool_t plotMCEPZR = kTRUE; +Bool_t plotMCEPXY = kTRUE; Bool_t plotMCEPOpeningAngle = kTRUE; Bool_t plotMCEEnergy = kTRUE; @@ -83,15 +86,15 @@ Bool_t plotMCDirectGammaPt = kTRUE; Bool_t plotMCDirectGammaEta = kTRUE; Bool_t plotMCDirectGammaPhi = kTRUE; -Bool_t plotMCMatchGammaEta = kTRUE; -Bool_t plotMCMatchGammaPhi = kTRUE; -Bool_t plotMCMatchGammaPt = kTRUE; -Bool_t plotMCMatchGammaEnergy = kTRUE; -Bool_t plotMCMatchGammaMass = kTRUE; -Bool_t plotMCMatchGammaOpeningAngle = kTRUE; -Bool_t plotMCMatchGammaR = kTRUE; -Bool_t plotMCMatchGammaZR = kTRUE; -Bool_t plotMCMatchGammaXY = kTRUE; +Bool_t plotMCMatchGammaEta = kTRUE; +Bool_t plotMCMatchGammaPhi = kTRUE; +Bool_t plotMCMatchGammaPt = kTRUE; +Bool_t plotMCMatchGammaEnergy = kTRUE; +Bool_t plotMCMatchGammaMass = kTRUE; +Bool_t plotMCMatchGammaOpeningAngle = kTRUE; +Bool_t plotMCMatchGammaR = kTRUE; +Bool_t plotMCMatchGammaZR = kTRUE; +Bool_t plotMCMatchGammaXY = kTRUE; Bool_t plotMCPi0Eta = kTRUE; Bool_t plotMCPi0Phi = kTRUE; @@ -100,8 +103,8 @@ Bool_t plotMCPi0Energy = kTRUE; Bool_t plotMCPi0Mass = kTRUE; Bool_t plotMCPi0OpeningAngle = kTRUE; Bool_t plotMCPi0R = kTRUE; -Bool_t plotMCPi0ZR = kTRUE; -Bool_t plotMCPi0XY = kTRUE; +Bool_t plotMCPi0ZR = kTRUE; +Bool_t plotMCPi0XY = kTRUE; Bool_t plotMCEtaEta = kTRUE; Bool_t plotMCEtaPhi = kTRUE; @@ -110,13 +113,13 @@ Bool_t plotMCEtaEnergy = kTRUE; Bool_t plotMCEtaMass = kTRUE; Bool_t plotMCEtaOpeningAngleGamma = kTRUE; Bool_t plotMCEtaR = kTRUE; -Bool_t plotMCEtaZR = kTRUE; -Bool_t plotMCEtaXY = kTRUE; +Bool_t plotMCEtaZR = kTRUE; +Bool_t plotMCEtaXY = kTRUE; // Histograms from esd tracks Bool_t plotESDEPR = kTRUE; -Bool_t plotESDEPZR = kTRUE; -Bool_t plotESDEPXY = kTRUE; +Bool_t plotESDEPZR = kTRUE; +Bool_t plotESDEPXY = kTRUE; Bool_t plotESDEPOpeningAngle = kTRUE; Bool_t plotESDEEnergy = kTRUE; @@ -135,28 +138,28 @@ Bool_t plotESDGammaPt = kTRUE; Bool_t plotESDGammaEta = kTRUE; Bool_t plotESDGammaPhi = kTRUE; -Bool_t plotESDMatchGammaOpeningAngle = kTRUE; -Bool_t plotESDMatchGammaEnergy = kTRUE; -Bool_t plotESDMatchGammaPt = kTRUE; -Bool_t plotESDMatchGammaEta = kTRUE; -Bool_t plotESDMatchGammaPhi = kTRUE; -Bool_t plotESDMatchGammaMass = kTRUE; -Bool_t plotESDMatchGammaWidth = kTRUE; -Bool_t plotESDMatchGammaChi2 = kTRUE; -Bool_t plotESDMatchGammaNDF = kTRUE; -Bool_t plotESDMatchGammaR = kTRUE; -Bool_t plotESDMatchGammaZR = kTRUE; -Bool_t plotESDMatchGammaXY = kTRUE; +Bool_t plotESDMatchGammaOpeningAngle = kTRUE; +Bool_t plotESDMatchGammaEnergy = kTRUE; +Bool_t plotESDMatchGammaPt = kTRUE; +Bool_t plotESDMatchGammaEta = kTRUE; +Bool_t plotESDMatchGammaPhi = kTRUE; +Bool_t plotESDMatchGammaMass = kTRUE; +Bool_t plotESDMatchGammaWidth = kTRUE; +Bool_t plotESDMatchGammaChi2 = kTRUE; +Bool_t plotESDMatchGammaNDF = kTRUE; +Bool_t plotESDMatchGammaR = kTRUE; +Bool_t plotESDMatchGammaZR = kTRUE; +Bool_t plotESDMatchGammaXY = kTRUE; Bool_t plotESDTwoGammaCombinationOpeningAngleGamma = kTRUE; -Bool_t plotESDTwoGammaCombinationEnergy = kTRUE; -Bool_t plotESDTwoGammaCombinationPt = kTRUE; -Bool_t plotESDTwoGammaCombinationEta = kTRUE; -Bool_t plotESDTwoGammaCombinationPhi = kTRUE; -Bool_t plotESDTwoGammaCombinationMass = kTRUE; -Bool_t plotESDTwoGammaCombinationR = kTRUE; -Bool_t plotESDTwoGammaCombinationZR = kTRUE; -Bool_t plotESDTwoGammaCombinationXY = kTRUE; +Bool_t plotESDTwoGammaCombinationEnergy = kTRUE; +Bool_t plotESDTwoGammaCombinationPt = kTRUE; +Bool_t plotESDTwoGammaCombinationEta = kTRUE; +Bool_t plotESDTwoGammaCombinationPhi = kTRUE; +Bool_t plotESDTwoGammaCombinationMass = kTRUE; +Bool_t plotESDTwoGammaCombinationR = kTRUE; +Bool_t plotESDTwoGammaCombinationZR = kTRUE; +Bool_t plotESDTwoGammaCombinationXY = kTRUE; Bool_t plotESDBackgroundOpeningAngleGamma = kTRUE; Bool_t plotESDBackgroundEnergy = kTRUE; @@ -165,14 +168,14 @@ Bool_t plotESDBackgroundEta = kTRUE; Bool_t plotESDBackgroundPhi = kTRUE; Bool_t plotESDBackgroundMass = kTRUE; Bool_t plotESDBackgroundR = kTRUE; -Bool_t plotESDBackgroundZR = kTRUE; -Bool_t plotESDBackgroundXY = kTRUE; +Bool_t plotESDBackgroundZR = kTRUE; +Bool_t plotESDBackgroundXY = kTRUE; -Bool_t plotMapping = kTRUE; +Bool_t plotMapping = kTRUE; -Bool_t plotResolutiondPt = kTRUE; -Bool_t plotResolutiondR = kTRUE; -Bool_t plotResolutiondZ = kTRUE; +Bool_t plotResolutiondPt = kTRUE; +Bool_t plotResolutiondR = kTRUE; +Bool_t plotResolutiondZ = kTRUE; Bool_t plotResolutiondRdPt = kTRUE; @@ -184,21 +187,21 @@ Bool_t plotResolutionESDPt = kTRUE; Bool_t plotResolutionESDR = kTRUE; Bool_t plotResolutionESDZ = kTRUE; -Bool_t plotNumberOfV0s = kTRUE; -Bool_t plotNumberOfSurvivingV0s = kTRUE; +Bool_t plotNumberOfV0s = kTRUE; +Bool_t plotNumberOfSurvivingV0s = kTRUE; // debug histograms -Bool_t plotV0MassDebugCut1 = kTRUE; -Bool_t plotV0MassDebugCut2 = kTRUE; -Bool_t plotV0MassDebugCut3 = kTRUE; -Bool_t plotV0MassDebugCut4 = kTRUE; -Bool_t plotV0MassDebugCut5 = kTRUE; -Bool_t plotV0MassDebugCut6 = kTRUE; -Bool_t plotV0MassDebugCut7 = kTRUE; -Bool_t plotV0MassDebugCut8 = kTRUE; +Bool_t plotV0MassDebugCut1 = kTRUE; +Bool_t plotV0MassDebugCut2 = kTRUE; +Bool_t plotV0MassDebugCut3 = kTRUE; +Bool_t plotV0MassDebugCut4 = kTRUE; +Bool_t plotV0MassDebugCut5 = kTRUE; +Bool_t plotV0MassDebugCut6 = kTRUE; +Bool_t plotV0MassDebugCut7 = kTRUE; +Bool_t plotV0MassDebugCut8 = kTRUE; -Bool_t plotPi0Spectra = kTRUE; -Bool_t plotEtaSpectra = kTRUE; +Bool_t plotPi0Spectra = kTRUE; +Bool_t plotEtaSpectra = kTRUE; /** ----------------- end define which histograms to plot here -------------------------------*/ @@ -401,9 +404,9 @@ void ConfigGammaConversion(const char *chainName, const char *sample, int limit if(plotMCMatchGammaEnergy == kTRUE){ histograms->AddHistogram("MC_Match_Gamma_Energy" ,"" , nXBinsEnergy, firstXBinEnergy, lastXBinEnergy, "", "");} if(plotMCMatchGammaMass == kTRUE){ histograms->AddHistogram("MC_Match_Gamma_Mass" ,"" , nXBinsGammaMass, firstXBinGammaMass, lastXBinGammaMass, "", "");} if(plotMCMatchGammaOpeningAngle == kTRUE){ histograms->AddHistogram("MC_Match_Gamma_OpeningAngle" ,"" , nXBinsOpeningAngle, firstXBinOpeningAngle, lastXBinOpeningAngle, "", "");} - if(plotMCMatchGammaR == kTRUE){ histograms->AddHistogram("MC_Match_GammaR" ,"" , nXBinsR, firstXBinR, lastXBinR, "", "");} - if(plotMCMatchGammaZR == kTRUE){ histograms->AddHistogram("MC_Match_GammaZR" ,"" , nXBinsZR, firstXBinZR, lastXBinZR, nYBinsZR, firstYBinZR, lastYBinZR, "", "");} - if(plotMCMatchGammaXY == kTRUE){ histograms->AddHistogram("MC_Match_GammaXY" ,"" , nXBinsXY, firstXBinXY, lastXBinXY, nYBinsXY, firstYBinXY, lastYBinXY, "", "");} + if(plotMCMatchGammaR == kTRUE){ histograms->AddHistogram("MC_Match_Gamma_R" ,"" , nXBinsR, firstXBinR, lastXBinR, "", "");} + if(plotMCMatchGammaZR == kTRUE){ histograms->AddHistogram("MC_Match_Gamma_ZR" ,"" , nXBinsZR, firstXBinZR, lastXBinZR, nYBinsZR, firstYBinZR, lastYBinZR, "", "");} + if(plotMCMatchGammaXY == kTRUE){ histograms->AddHistogram("MC_Match_Gamma_XY" ,"" , nXBinsXY, firstXBinXY, lastXBinXY, nYBinsXY, firstYBinXY, lastYBinXY, "", "");} if(plotMCPi0Eta == kTRUE){ histograms->AddHistogram("MC_Pi0_Eta" ,"" , nXBinsEta, firstXBinEta, lastXBinEta, "", "");} if(plotMCPi0Phi == kTRUE){ histograms->AddHistogram("MC_Pi0_Phi" ,"" , nXBinsPhi, firstXBinPhi, lastXBinPhi, "", "");} @@ -415,6 +418,16 @@ void ConfigGammaConversion(const char *chainName, const char *sample, int limit if(plotMCPi0ZR == kTRUE){ histograms->AddHistogram("MC_Pi0_ZR" ,"" , nXBinsZR, firstXBinZR, lastXBinZR, nYBinsZR, firstYBinZR, lastYBinZR, "", "");} if(plotMCPi0XY == kTRUE){ histograms->AddHistogram("MC_Pi0_XY" ,"" , nXBinsXY, firstXBinXY, lastXBinXY, nYBinsXY, firstYBinXY, lastYBinXY, "", "");} + if(plotMCPi0Eta == kTRUE){ histograms->AddHistogram("MC_Pi0_Secondaries_Eta" ,"" , nXBinsEta, firstXBinEta, lastXBinEta, "", "");} + if(plotMCPi0Phi == kTRUE){ histograms->AddHistogram("MC_Pi0_Secondaries_Phi" ,"" , nXBinsPhi, firstXBinPhi, lastXBinPhi, "", "");} + if(plotMCPi0Pt == kTRUE){ histograms->AddHistogram("MC_Pi0_Secondaries_Pt" ,"" , nXBinsPt, firstXBinPt, lastXBinPt, "", "");} + if(plotMCPi0Energy == kTRUE){ histograms->AddHistogram("MC_Pi0_Secondaries_Energy" ,"" , nXBinsEnergy, firstXBinEnergy, lastXBinEnergy, "", "");} + if(plotMCPi0Mass == kTRUE){ histograms->AddHistogram("MC_Pi0_Secondaries_Mass" ,"" , nXBinsPi0Mass, firstXBinPi0Mass, lastXBinPi0Mass, "", "");} + if(plotMCPi0OpeningAngle == kTRUE){ histograms->AddHistogram("MC_Pi0_Secondaries_GammaDaughter_OpeningAngle" ,"" , nXBinsOpeningAngle, firstXBinOpeningAngle, lastXBinOpeningAngle, "", "");} + if(plotMCPi0R == kTRUE){ histograms->AddHistogram("MC_Pi0_Secondaries_R" ,"" , nXBinsR, firstXBinR, lastXBinR, "", "");} + if(plotMCPi0ZR == kTRUE){ histograms->AddHistogram("MC_Pi0_Secondaries_ZR" ,"" , nXBinsZR, firstXBinZR, lastXBinZR, nYBinsZR, firstYBinZR, lastYBinZR, "", "");} + if(plotMCPi0XY == kTRUE){ histograms->AddHistogram("MC_Pi0_Secondaries_XY" ,"" , nXBinsXY, firstXBinXY, lastXBinXY, nYBinsXY, firstYBinXY, lastYBinXY, "", "");} + if(plotMCEtaEta == kTRUE){ histograms->AddHistogram("MC_Eta_Eta" ,"" , nXBinsEta, firstXBinEta, lastXBinEta, "", "");} if(plotMCEtaPhi == kTRUE){ histograms->AddHistogram("MC_Eta_Phi" ,"" , nXBinsPhi, firstXBinPhi, lastXBinPhi, "", "");} if(plotMCEtaPt == kTRUE){ histograms->AddHistogram("MC_Eta_Pt" ,"" , nXBinsPt, firstXBinPt, lastXBinPt, "", "");} @@ -469,17 +482,6 @@ void ConfigGammaConversion(const char *chainName, const char *sample, int limit if(plotESDTwoGammaCombinationZR == kTRUE){ histograms->AddHistogram("ESD_TwoGammaCombination_ZR" ,"" , nXBinsZR, firstXBinZR, lastXBinZR, nYBinsZR, firstYBinZR, lastYBinZR, "", "");} if(plotESDTwoGammaCombinationXY == kTRUE){ histograms->AddHistogram("ESD_TwoGammaCombination_XY" ,"" , nXBinsXY, firstXBinXY, lastXBinXY, nYBinsXY, firstYBinXY, lastYBinXY, "", "");} - /* - if(plotESDEtaOpeningAngleGamma == kTRUE){ histograms->AddHistogram("ESD_Eta_GammaDaughter_OpeningAngle" ,"" , nXBinsOpeningAngle, firstXBinOpeningAngle, lastXBinOpeningAngle, "", "");} - if(plotESDEtaEnergy == kTRUE){ histograms->AddHistogram("ESD_Eta_Energy" ,"" , nXBinsEnergy, firstXBinEnergy, lastXBinEnergy, "", "");} - if(plotESDEtaPt == kTRUE){ histograms->AddHistogram("ESD_Eta_Pt" ,"" , nXBinsPt, firstXBinPt, lastXBinPt, "", "");} - if(plotESDEtaEta == kTRUE){ histograms->AddHistogram("ESD_Eta_Eta" ,"" , nXBinsEta, firstXBinEta, lastXBinEta, "", "");} - if(plotESDEtaPhi == kTRUE){ histograms->AddHistogram("ESD_Eta_Phi" ,"" , nXBinsPhi, firstXBinPhi, lastXBinPhi, "", "");} - if(plotESDEtaMass == kTRUE){ histograms->AddHistogram("ESD_Eta_Mass" ,"" , nXBinsEtaMass, firstXBinEtaMass, lastXBinEtaMass, "", "");} - if(plotESDEtaR == kTRUE){ histograms->AddHistogram("ESD_Eta_R" ,"" , nXBinsR, firstXBinR, lastXBinR, "", "");} - if(plotESDEtaZR == kTRUE){ histograms->AddHistogram("ESD_Eta_ZR" ,"" , nXBinsZR, firstXBinZR, lastXBinZR, nYBinsZR, firstYBinZR, lastYBinZR, "", "");} - if(plotESDEtaXY == kTRUE){ histograms->AddHistogram("ESD_Eta_XY" ,"" , nXBinsXY, firstXBinXY, lastXBinXY, nYBinsXY, firstYBinXY, lastYBinXY, "", "");} - */ if(plotESDBackgroundOpeningAngleGamma == kTRUE){ histograms->AddHistogram("ESD_Background_GammaDaughter_OpeningAngle" ,"" , nXBinsOpeningAngle, firstXBinOpeningAngle, lastXBinOpeningAngle, "", "");} if(plotESDBackgroundEnergy == kTRUE){ histograms->AddHistogram("ESD_Background_Energy" ,"" , nXBinsEnergy, firstXBinEnergy, lastXBinEnergy, "", "");} if(plotESDBackgroundPt == kTRUE){ histograms->AddHistogram("ESD_Background_Pt" ,"" , nXBinsPt, firstXBinPt, lastXBinPt, "", "");} @@ -523,7 +525,9 @@ void ConfigGammaConversion(const char *chainName, const char *sample, int limit if(plotV0MassDebugCut8 == kTRUE){histograms->AddHistogram("V0MassDebugCut8" ,"debug8" , nXBinsGammaMass, firstXBinGammaMass, lastXBinGammaMass,"","");} - if(plotPi0Spectra == kTRUE){histograms->AddHistogram("InvMass_vs_Pt__Spectra" ,"Inv mass vs Pt" , nXBinsSpectra, firstXBinSpectra, lastXBinSpectra,nYBinsSpectra, firstYBinSpectra, lastYBinSpectra,"InvMass [GeV]","Pt [GeV]");} + if(plotPi0Spectra == kTRUE){histograms->AddHistogram("InvMass_vs_Pt_Spectra" ,"Invariant Mass vs Pt" , nXBinsSpectra, firstXBinSpectra, lastXBinSpectra,nYBinsSpectra, firstYBinSpectra, lastYBinSpectra,"InvMass [GeV]","Pt [GeV]");} + + if(plotPi0Spectra == kTRUE && calculateBackground == kTRUE){histograms->AddHistogram("Background_InvMass_vs_Pt_Spectra" ,"Background Invariant Mass vs Pt" , nXBinsSpectra, firstXBinSpectra, lastXBinSpectra,nYBinsSpectra, firstYBinSpectra, lastYBinSpectra,"InvMass [GeV]","Pt [GeV]");} @@ -585,13 +589,15 @@ void ConfigGammaConversion(const char *chainName, const char *sample, int limit v0Reader->SetMaxRCut(maxRCut); v0Reader->SetEtaCut(etaCut); v0Reader->SetPtCut(ptCut); - v0Reader->SetChi2Cut(chi2Cut); + v0Reader->SetChi2CutConversion(chi2CutConversion); + v0Reader->SetChi2CutMeson(chi2CutMeson); v0Reader->SetPIDProbability(probElectron); v0Reader->SetXVertexCut(xVertexCut); v0Reader->SetYVertexCut(yVertexCut); v0Reader->SetZVertexCut(zVertexCut); v0Reader->SetSigmaMass(sigmaCutGammaMass); v0Reader->SetUseImprovedVertex(useImprovedVertex); + v0Reader->SetDoMCTruth(doMCTruth); // Create the GammaConversionTask AliAnalysisTaskGammaConversion *gammaconversion = new AliAnalysisTaskGammaConversion("GammaConversionTask"); @@ -629,7 +635,7 @@ void ConfigGammaConversion(const char *chainName, const char *sample, int limit mgr->ConnectOutput(gammaconversion, 0, coutput1); mgr->ConnectOutput(gammaconversion, 1, coutput2); - TChain* chain= CreateESDChain(sample); + TChain* chain= CreateESDChain(sample,numberOfFilesToAnalyze); mgr->InitAnalysis(); -- 2.39.3