,fInvestigatePHOS(0)
,fInvestigatePiKP(0)
,fRequireITSHits(0)
+ ,fBaryonEnhancement(0)
,fPtSmearer(0)
{
}
float myEt = Et(simPart);
if(track->Charge()>0){ FillHisto2D(Form("EtReconstructed%sIdentifiedProton",cutName->Data()),track->Pt(),track->Eta(),myEt);}
else{ FillHisto2D(Form("EtReconstructed%sIdentifiedAntiProton",cutName->Data()),track->Pt(),track->Eta(),myEt);}
+ if(fBaryonEnhancement){
+ myEt = myEt*ProtonBaryonEnhancement(track->Pt());
+ if(track->Charge()>0){ FillHisto2D(Form("EtReconstructed%sIdentifiedProtonEnhanced",cutName->Data()),track->Pt(),track->Eta(),myEt);}
+ else{ FillHisto2D(Form("EtReconstructed%sIdentifiedAntiProtonEnhanced",cutName->Data()),track->Pt(),track->Eta(),myEt);}
+ }
FillHisto2D(Form("dEdxProton%s",cutName->Data()),track->P(),dEdx,1.0);
}
if(isKaon){
FillHisto2D(Form("EtReconstructed%sUnidentifiedAssumingPion",cutName->Data()),track->Pt(),track->Eta(),myEtPi);
FillHisto2D(Form("EtReconstructed%sUnidentified",cutName->Data()),track->Pt(),track->Eta(),myEt);
FillHisto2D(Form("EtNReconstructed%sUnidentified",cutName->Data()),track->Pt(),track->Eta(),1.0);
+ if(pdgCode == fgPiPlusCode||pdgCode == fgPiMinusCode){
+ FillHisto2D(Form("EtReconstructed%sUnidentifiedPionAssumingPion",cutName->Data()),track->Pt(),track->Eta(),myEtPi);
+ FillHisto2D(Form("EtNReconstructed%sUnidentifiedPion",cutName->Data()),track->Pt(),track->Eta(),1.0);
+ }
+ if(pdgCode == fgKPlusCode||pdgCode == fgKMinusCode){
+ FillHisto2D(Form("EtReconstructed%sUnidentifiedKaonAssumingPion",cutName->Data()),track->Pt(),track->Eta(),myEtPi);
+ FillHisto2D(Form("EtNReconstructed%sUnidentifiedKaon",cutName->Data()),track->Pt(),track->Eta(),1.0);
+ }
+ if(pdgCode == fgProtonCode||pdgCode == fgAntiProtonCode){
+ FillHisto2D(Form("EtReconstructed%sUnidentifiedProtonAssumingPion",cutName->Data()),track->Pt(),track->Eta(),myEtPi);
+ FillHisto2D(Form("EtNReconstructed%sUnidentifiedProton",cutName->Data()),track->Pt(),track->Eta(),1.0);
+ if(fBaryonEnhancement){
+ myEt = myEt*ProtonBaryonEnhancement(track->Pt());
+ FillHisto2D(Form("EtReconstructed%sUnidentifiedProtonAssumingPionEnhanced",cutName->Data()),track->Pt(),track->Eta(),myEtPi);
+ FillHisto2D(Form("EtNReconstructed%sUnidentifiedProtonEnhanced",cutName->Data()),track->Pt(),track->Eta(),1.0);
+ }
+ }
}
FillHisto2D(Form("dEdxUnidentified%s",cutName->Data()),track->P(),dEdx,1.0);
FillHisto1D(Form("UnidentifiedPIDs%s",cutName->Data()),mypid,1);
FillHisto2D(Form("EtReconstructed%sChargedHadronAssumingPion",cutName->Data()),simPart->Pt(),simPart->Eta(),myEtPi);
FillHisto2D(Form("EtReconstructed%sProtonAssumingPion",cutName->Data()),simPart->Pt(),simPart->Eta(),myEtPi);
filled = true;
+
+ if(fBaryonEnhancement){
+ float enhancement = ProtonBaryonEnhancement(track->Pt());
+ FillHisto2D(Form("EtReconstructed%sProtonEnhanced",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt*enhancement);
+ FillHisto2D(Form("EtNReconstructed%sProtonEnhanced",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt*enhancement);
+ FillHisto2D(Form("EtReconstructed%sProtonAssumingPionEnhanced",cutName->Data()),simPart->Pt(),simPart->Eta(),myEtPi*enhancement);
+ }
+
}
if(pdgCode == fgAntiProtonCode){
float myEt = Et(simPart);
FillHisto2D(Form("EtReconstructed%sChargedHadronAssumingPion",cutName->Data()),simPart->Pt(),simPart->Eta(),myEtPi);
FillHisto2D(Form("EtReconstructed%sAntiProtonAssumingPion",cutName->Data()),simPart->Pt(),simPart->Eta(),myEtPi);
filled = true;
+ if(fBaryonEnhancement){
+ float enhancement = ProtonBaryonEnhancement(track->Pt());
+ FillHisto2D(Form("EtReconstructed%sAntiProtonEnhanced",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt*enhancement);
+ FillHisto2D(Form("EtNReconstructed%sAntiProtonEnhanced",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt*enhancement);
+ FillHisto2D(Form("EtReconstructed%sAntiProtonAssumingPionEnhanced",cutName->Data()),simPart->Pt(),simPart->Eta(),myEtPi*enhancement);
+ }
}
if(pdgCode == fgEPlusCode){
float myEt = Et(simPart);
float myEt = Et(simPart);
FillHisto2D(Form("EtReconstructed%sLambdaDaughters",cutName->Data()),track->Pt(),track->Eta(),myEt);
Float_t weight = LambdaWeight(mom->Pt());
+ if(fBaryonEnhancement){
+ float enhancement = ProtonBaryonEnhancement(track->Pt());
+ weight = weight*enhancement;
+ }
FillHisto2D(Form("EtReconstructed%sLambdaDaughtersReweighted",cutName->Data()),track->Pt(),track->Eta(),myEt*weight);
}
if(pdgCode == fgAntiLambdaCode){
float myEt = Et(simPart);
FillHisto2D(Form("EtReconstructed%sAntiLambdaDaughters",cutName->Data()),track->Pt(),track->Eta(),myEt);
Float_t weight = AntiLambdaWeight(mom->Pt());
+ if(fBaryonEnhancement){
+ float enhancement = ProtonBaryonEnhancement(track->Pt());
+ weight = weight*enhancement;
+ }
FillHisto2D(Form("EtReconstructed%sAntiLambdaDaughtersReweighted",cutName->Data()),track->Pt(),track->Eta(),myEt*weight);
}
if(pdgCode == fgK0SCode){
FillHisto2D("EtSimulatedChargedHadronAssumingPtTPCCut",part->Pt(),part->Eta(),myEtTPC);
FillHisto2D("EtSimulatedChargedHadronAssumingPtITSCut",part->Pt(),part->Eta(),myEtITS);
filled = true;
+ if(fBaryonEnhancement){
+ float enhancement = ProtonBaryonEnhancement(part->Pt());
+ FillHisto2D("EtSimulatedProtonEnhanced",part->Pt(),part->Eta(),myEt*enhancement);
+ FillHisto2D("EtNSimulatedProtonEnhanced",part->Pt(),part->Eta(),1.0*enhancement);
+ FillHisto2D("EtSimulatedProtonAssumingPionEnhanced",part->Pt(),part->Eta(),myEtPi*enhancement);
+ }
}
if(pdgCode == fgAntiProtonCode){
float myEt = Et(part);
FillHisto2D("EtSimulatedChargedHadronAssumingPtTPCCut",part->Pt(),part->Eta(),myEtTPC);
FillHisto2D("EtSimulatedChargedHadronAssumingPtITSCut",part->Pt(),part->Eta(),myEtITS);
filled = true;
+ if(fBaryonEnhancement){
+ float enhancement = ProtonBaryonEnhancement(part->Pt());
+ FillHisto2D("EtSimulatedAntiProtonEnhanced",part->Pt(),part->Eta(),myEt*enhancement);
+ FillHisto2D("EtNSimulatedAntiProtonEnhanced",part->Pt(),part->Eta(),1.0*enhancement);
+ FillHisto2D("EtSimulatedAntiProtonAssumingPionEnhanced",part->Pt(),part->Eta(),myEtPi*enhancement);
+ }
}
//============Other hadrons===================================
FillHisto2D("EtSimulatedLambda",part->Pt(),part->Eta(),myEt);
FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
Float_t weight = LambdaWeight(part->Pt());
+ if(fBaryonEnhancement){
+ float enhancement = ProtonBaryonEnhancement(part->Pt());
+ weight = weight*enhancement;
+ }
FillHisto2D("EtSimulatedLambdaReweighted",part->Pt(),part->Eta(),myEt*weight);
Int_t ndaughters = part->GetNDaughters();
for(Int_t idaughter = 0;idaughter<ndaughters;idaughter++){
FillHisto2D("EtSimulatedAntiLambda",part->Pt(),part->Eta(),myEt);
FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
Float_t weight = AntiLambdaWeight(part->Pt());
+ if(fBaryonEnhancement){
+ float enhancement = ProtonBaryonEnhancement(part->Pt());
+ weight = weight*enhancement;
+ }
FillHisto2D("EtSimulatedAntiLambdaReweighted",part->Pt(),part->Eta(),myEt*weight);
Int_t ndaughters = part->GetNDaughters();
for(Int_t idaughter = 0;idaughter<ndaughters;idaughter++){
CreateEtaPtHisto2D("EtSimulatedKPlus","Simulated E_{T} from K^{+}");
CreateEtaPtHisto2D("EtSimulatedKMinus","Simulated E_{T} from K^{-}");
CreateEtaPtHisto2D("EtSimulatedProton","Simulated E_{T} from p");
- CreateEtaPtHisto2D("EtSimulatedAntiProton","Simulated E_{T} from #bar{p}");
+ CreateEtaPtHisto2D("EtSimulatedAntiProton","Simulated E_{T} from #bar{p}");//Both baryon enhancement and strangeness rescaling
+ if(fBaryonEnhancement){
+ CreateEtaPtHisto2D("EtSimulatedProtonEnhanced","Simulated E_{T} from p");
+ CreateEtaPtHisto2D("EtSimulatedAntiProtonEnhanced","Simulated E_{T} from #bar{p}");
+ }
CreateEtaPtHisto2D("EtSimulatedChargedHadron","Simulated E_{T} from charged hadrons");
CreateEtaPtHisto2D(TString("EtNSimulatedPiPlus"),TString("Number of Simulated #pi^{+}"));
CreateEtaPtHisto2D("EtNSimulatedPiMinus","Number of simulated #pi^{-}");
CreateEtaPtHisto2D("EtNSimulatedKMinus","Number of simulated K^{-}");
CreateEtaPtHisto2D("EtNSimulatedProton","Number of simulated p");
CreateEtaPtHisto2D("EtNSimulatedAntiProton","Number of simulated #bar{p}");
+ if(fBaryonEnhancement){
+ CreateEtaPtHisto2D("EtNSimulatedProtonEnhanced","Number of simulated p");
+ CreateEtaPtHisto2D("EtNSimulatedAntiProtonEnhanced","Number of simulated #bar{p}");
+ }
CreateEtaPtHisto2D("EtNSimulatedChargedHadron","Number of simulated charged hadrons");
CreateEtaPtHisto2D("EtSimulatedChargedHadronAssumingNoPt","Simulated E_{T} from charged hadrons assuming p_{T}=0");
CreateEtaPtHisto2D("EtSimulatedChargedHadronAssumingPtTPCCut","Simulated E_{T} from charged hadrons assuming p_{T}=0.15");
CreateEtaPtHisto2D("EtSimulatedKMinusAssumingPion","Simulated E_{T} from K^{-} assuming #pi mass");
CreateEtaPtHisto2D("EtSimulatedProtonAssumingPion","Simulated E_{T} from p assuming #pi mass");
CreateEtaPtHisto2D("EtSimulatedAntiProtonAssumingPion","Simulated E_{T} from #bar{p} assuming #pi mass");
+ if(fBaryonEnhancement){
+ CreateEtaPtHisto2D("EtSimulatedProtonAssumingPionEnhanced","Simulated E_{T} from p assuming #pi mass");
+ CreateEtaPtHisto2D("EtSimulatedAntiProtonAssumingPionEnhanced","Simulated E_{T} from #bar{p} assuming #pi mass");
+ }
CreateEtaPtHisto2D("EtSimulatedLambda","Simulated E_{T} from #Lambda");
CreateEtaPtHisto2D("EtSimulatedAntiLambda","Simulated E_{T} from #bar{#Lambda}");
CreateEtaPtHisto2D("EtSimulatedK0S","Simulated E_{T} from K^{0}_{S}");
CreateEtaPtHisto2D("EtSimulatedK0L","Simulated E_{T} from K^{0}_{L}");
- CreateEtaPtHisto2D("EtSimulatedLambdaReweighted","Simulated E_{T} from #Lambda");
+ CreateEtaPtHisto2D("EtSimulatedLambdaReweighted","Simulated E_{T} from #Lambda");//These will also be used for baryon enhancement
CreateEtaPtHisto2D("EtSimulatedAntiLambdaReweighted","Simulated E_{T} from #bar{#Lambda}");
CreateEtaPtHisto2D("EtSimulatedK0SReweighted","Simulated E_{T} from K^{0}_{S}");
CreateEtaPtHisto2D("EtSimulatedK0LReweighted","Simulated E_{T} from K^{0}_{L}");
CreateEtaPtHisto2D(Form("EtReconstructed%sIdentifiedKMinus",cutName->Data()),"Reconstructed E_{T} from identified K^{-}");
CreateEtaPtHisto2D(Form("EtReconstructed%sIdentifiedProton",cutName->Data()),"Reconstructed E_{T} from identified p");
CreateEtaPtHisto2D(Form("EtReconstructed%sIdentifiedAntiProton",cutName->Data()),"Reconstructed E_{T} from identified #bar{p}");
+ if(fBaryonEnhancement){
+ CreateEtaPtHisto2D(Form("EtReconstructed%sIdentifiedProtonEnhanced",cutName->Data()),"Reconstructed E_{T} from identified p");
+ CreateEtaPtHisto2D(Form("EtReconstructed%sIdentifiedAntiProtonEnhanced",cutName->Data()),"Reconstructed E_{T} from identified #bar{p}");
+ }
CreateEtaPtHisto2D(Form("EtNReconstructed%sUnidentified",cutName->Data()),"Number of Reconstructed unidentified particles");
CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedAssumingPion",cutName->Data()),"Reconstructed E_{T} from unidentified particles assuming pion mass");
+
+ CreateEtaPtHisto2D(Form("EtNReconstructed%sUnidentifiedKaon",cutName->Data()),"Number of Reconstructed unidentified kaons particles");
+ CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedKaonAssumingPion",cutName->Data()),"Reconstructed E_{T} from unidentified kaons particles assuming pion mass");
+ CreateEtaPtHisto2D(Form("EtNReconstructed%sUnidentifiedProton",cutName->Data()),"Number of Reconstructed unidentified proton particles");
+ CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedProtonAssumingPion",cutName->Data()),"Reconstructed E_{T} from unidentified proton particles assuming pion mass");
+ if(fBaryonEnhancement){
+ CreateEtaPtHisto2D(Form("EtNReconstructed%sUnidentifiedProtonEnhanced",cutName->Data()),"Number of Reconstructed unidentified proton particles");
+ CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedProtonAssumingPionEnhanced",cutName->Data()),"Reconstructed E_{T} from unidentified proton particles assuming pion mass");
+ }
+ CreateEtaPtHisto2D(Form("EtNReconstructed%sUnidentifiedPion",cutName->Data()),"Number of Reconstructed unidentified pions particles");
+ CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedPionAssumingPion",cutName->Data()),"Reconstructed E_{T} from unidentified pions particles assuming pion mass");
+
CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentified",cutName->Data()),"Reconstructed E_{T} from unidentified particles using real mass");
CreateEtaPtHisto2D(Form("EtReconstructed%sMisidentifiedElectrons",cutName->Data()),"Reconstructed E_{T} from misidentified electrons");
CreateEtaPtHisto2D(Form("EtReconstructed%sKMinus",cutName->Data()),"Reconstructed E_{T} from K^{-}");
CreateEtaPtHisto2D(Form("EtReconstructed%sProton",cutName->Data()),"Reconstructed E_{T} from p");
CreateEtaPtHisto2D(Form("EtReconstructed%sAntiProton",cutName->Data()),"Reconstructed E_{T} from #bar{p}");
+ if(fBaryonEnhancement){
+ CreateEtaPtHisto2D(Form("EtReconstructed%sProtonEnhanced",cutName->Data()),"Reconstructed E_{T} from p");
+ CreateEtaPtHisto2D(Form("EtReconstructed%sAntiProtonEnhanced",cutName->Data()),"Reconstructed E_{T} from #bar{p}");
+ }
CreateEtaPtHisto2D(Form("EtReconstructed%sChargedHadron",cutName->Data()),"Reconstructed E_{T} from charged hadrons");
CreateEtaPtHisto2D(Form("EtNReconstructed%sPiPlus",cutName->Data()),"Reconstructed E_{T} from #pi^{+}");
CreateEtaPtHisto2D(Form("EtNReconstructed%sPiMinus",cutName->Data()),"Reconstructed E_{T} from #pi^{-}");
CreateEtaPtHisto2D(Form("EtNReconstructed%sKMinus",cutName->Data()),"Reconstructed E_{T} from K^{-}");
CreateEtaPtHisto2D(Form("EtNReconstructed%sProton",cutName->Data()),"Reconstructed E_{T} from p");
CreateEtaPtHisto2D(Form("EtNReconstructed%sAntiProton",cutName->Data()),"Reconstructed E_{T} from #bar{p}");
+ if(fBaryonEnhancement){
+ CreateEtaPtHisto2D(Form("EtNReconstructed%sProtonEnhanced",cutName->Data()),"Reconstructed E_{T} from p");
+ CreateEtaPtHisto2D(Form("EtNReconstructed%sAntiProtonEnhanced",cutName->Data()),"Reconstructed E_{T} from #bar{p}");
+ }
CreateEtaPtHisto2D(Form("EtNReconstructed%sChargedHadron",cutName->Data()),"Reconstructed E_{T} from charged hadrons");
CreateEtaPtHisto2D(Form("EtReconstructed%sChargedHadronAssumingPion",cutName->Data()),"Reconstructed E_{T} from charged hadrons assuming they are all pions");
CreateEtaPtHisto2D(Form("EtReconstructed%sKMinusAssumingPion",cutName->Data()),"Reconstructed E_{T} from K^{-} assuming #pi mass");
CreateEtaPtHisto2D(Form("EtReconstructed%sProtonAssumingPion",cutName->Data()),"Reconstructed E_{T} from p assuming #pi mass");
CreateEtaPtHisto2D(Form("EtReconstructed%sAntiProtonAssumingPion",cutName->Data()),"Reconstructed E_{T} from #bar{p} assuming #pi mass");
+ if(fBaryonEnhancement){
+ CreateEtaPtHisto2D(Form("EtReconstructed%sProtonAssumingPionEnhanced",cutName->Data()),"Reconstructed E_{T} from p assuming #pi mass");
+ CreateEtaPtHisto2D(Form("EtReconstructed%sAntiProtonAssumingPionEnhanced",cutName->Data()),"Reconstructed E_{T} from #bar{p} assuming #pi mass");
+ }
CreateEtaPtHisto2D(Form("EtReconstructed%sEPlus",cutName->Data()),"Reconstructed E_{T} from e^{+}");
CreateEtaPtHisto2D(Form("EtReconstructed%sEMinus",cutName->Data()),"Reconstructed E_{T} from e^{-}");
Float_t minEt = 0.0;
Float_t maxEt = 100.0;
+ if(fDataSet==20100) maxEt=5000.0;
Int_t nbinsEt = 100;
char histoname[200];
char histotitle[200];
// #include <TSystem.h>
// #include "TStopwatch.h"
-Float_t CorrNeutral(float ptcut, char *prodname, char *shortprodname, bool TPC, char *infilename, bool hadronic = false, float etacut = 0.7);
-TH1D *GetHistoCorrNeutral(float cut, char *name, int mycase, bool eta, int color, int marker, char *infilename, bool hadronic = false);
+Float_t CorrNeutral(float ptcut, char *prodname, char *shortprodname, bool ispp = true, bool forSim = true, bool TPC, char *infilename, bool hadronic = false, float etacut = 0.7);
+TH1D *GetHistoCorrNeutral(float cut, char *name, bool ispp, bool forSim, int mycase, bool eta, int color, int marker, char *infilename, bool hadronic = false);
-Float_t CorrPtCut(float ptcut, char *prodname = "Enter Production Name", char *shortprodname = "EnterProductionName", char *filename="Et.ESD.new.sim.merged.root");
-TH1D *GetHistoCorrPtCut(float ptcut = 0.15, char *name, char *filename);
+Float_t CorrPtCut(float ptcut, char *prodname = "Enter Production Name", char *shortprodname = "EnterProductionName", char *filename="Et.ESD.new.sim.merged.root", bool ispp = true, bool forSim = true);
+TH1D *GetHistoCorrPtCut(float ptcut = 0.15, char *name, char *filename, bool ispp = true, bool forSim = true);
-TH1D *GetHistoCorrNotID(float etacut,char *name, bool TPC, char *infilename, bool eta);
-TH1D *CorrNotID(float etacut,char *name, char *prodname, char *shortprodname, bool TPC, char *infilename);
-Float_t CorrNotIDConst(float ptcut, float etacut,char *name, char *prodname, char *shortprodname, bool TPC, char *infilename);
+TH1D *GetHistoCorrNotID(float etacut,char *name, bool TPC, char *infilename, bool eta, bool ispp = true, bool forSim = true);
+TH1D *CorrNotID(float etacut,char *name, char *prodname, char *shortprodname, bool TPC, char *infilename, bool ispp = true, bool forSim = true);
+Float_t CorrNotIDConst(float ptcut, float etacut,char *name, char *prodname, char *shortprodname, bool TPC, char *infilename, bool ispp, bool forSim);
-TH1D *GetHistoNoID(float etacut, char *name, char *infilename, bool eta, bool TPC);
-TH1D *CorrNoID(float etacut,char *name, char *prodname, char *shortprodname, char *infilename);
-Float_t CorrNoIDConst(float etacut, float ptcut,char *name, char *prodname, char *shortprodname, char *infilename);
+TH1D *GetHistoNoID(float etacut, char *name, char *infilename, bool eta, bool TPC, bool ispp, bool forSim);
+TH1D *CorrNoID(float etacut,char *name, char *prodname, char *shortprodname, char *infilename, bool ispp, bool forSim);
+Float_t CorrNoIDConst(float etacut, float ptcut,char *name, char *prodname, char *shortprodname, char *infilename, bool ispp, bool forSim);
TH1D* bayneseffdiv(TH1D* numerator, TH1D* denominator,Char_t* name);
-TH1D *GetHistoEfficiency(float cut, char *name, int mycase, int color, int marker,bool TPC, char *infilename);
+TH1D *GetHistoEfficiency(float cut, char *name, int mycase, int color, int marker,bool TPC, bool ITS, char *infilename);
void CorrEfficiencyPlots(bool TPC, char *prodname, char *shortprodname, char *infilename);
-TH1D *GetHistoCorrBkgd(float etacut,char *name, bool TPC, char *infilename);
-void CorrBkgdPlots(char *prodname, char *shortprodname, bool TPC, char *infilename);
+TH1D *GetHistoCorrBkgd(float etacut,char *name, bool TPC, char *infilename,bool ispp,bool forSim);
+void CorrBkgdPlots(char *prodname, char *shortprodname, bool TPC, char *infilename,bool ispp,bool forSim);
//===========================================================================================
-void GetCorrections(char *prodname = "Enter Production Name", char *shortprodname = "EnterProductionName", bool TPC = true, char *infilename="Et.ESD.new.sim.merged.root"){
+void GetCorrections(char *prodname = "Enter Production Name", char *shortprodname = "EnterProductionName", bool ispp = true, bool forSim = true, bool TPC = true, char *infilename="Et.ESD.new.sim.merged.root"){
TStopwatch timer;
timer.Start();
gSystem->Load("libTree.so");
gROOT->ProcessLine(".L AliAnalysisHadEtCorrections.cxx+g");
char outfilename[200];
- sprintf(outfilename,"corrections.%s.root",shortprodname);
+ char *sim = "ForData";
+ if(forSim) sim = "ForSimulations";
+ char *system = "PbPb";
+ if(ispp) system = "pp";
+ sprintf(outfilename,"corrections.%s.%s.%s.root",shortprodname,system,sim);
TFile *outfile = new TFile(outfilename,"RECREATE");
AliAnalysisHadEtCorrections *hadCorrectionEMCAL = new AliAnalysisHadEtCorrections();
hadCorrectionEMCAL->SetName("hadCorrectionEMCAL");
hadCorrectionEMCAL->SetAcceptanceCorrectionEMCAL(360.0/60.0);
float ptcut = 0.1;
- float neutralCorr = CorrNeutral(ptcut,prodname,shortprodname,TPC,infilename,false,etacut);
+ float neutralCorr = CorrNeutral(ptcut,prodname,shortprodname,ispp,forSim,TPC,infilename,false,etacut);
hadCorrectionEMCAL->SetNeutralCorrection(neutralCorr);
cout<<"Warning: Setting neutral correction error bars to STAR value of +/-2%. Use for development purposes only!"<<endl;
hadCorrectionEMCAL->SetNeutralCorrectionLowBound(neutralCorr*0.98);
hadCorrectionEMCAL->SetNeutralCorrectionHighBound(neutralCorr*1.02);
- float hadronicCorr = CorrNeutral(ptcut,prodname,shortprodname,TPC,infilename,true,etacut);
+ float hadronicCorr = CorrNeutral(ptcut,prodname,shortprodname,ispp,forSim,TPC,infilename,true,etacut);
hadCorrectionEMCAL->SetNotHadronicCorrection(hadronicCorr);
cout<<"Warning: Setting hadronic correction error bars to value of +/-2%. Use for development purposes only!"<<endl;
hadCorrectionEMCAL->SetNotHadronicCorrectionLowBound(neutralCorr*0.98);
hadCorrectionEMCAL->SetNotHadronicCorrectionHighBound(neutralCorr*1.02);
- float ptcutITS = CorrPtCut(0.1,prodname,shortprodname,infilename);
+ float ptcutITS = CorrPtCut(0.1,prodname,shortprodname,infilename,ispp,forSim);
hadCorrectionEMCAL->SetpTCutCorrectionITS(ptcutITS);
- float ptcutTPC = CorrPtCut(0.15,prodname,shortprodname,infilename);
+ float ptcutTPC = CorrPtCut(0.15,prodname,shortprodname,infilename,ispp,forSim);
hadCorrectionEMCAL->SetpTCutCorrectionTPC(ptcutTPC);
cout<<"Setting ITS pt cut corr to "<<ptcutITS<<endl;
cout<<"Setting TPC pt cut corr to "<<ptcutTPC<<endl;
hadCorrectionEMCAL->SetpTCutCorrectionITSHighBound(ptcutITS*1.03);
hadCorrectionEMCAL->SetpTCutCorrectionTPCHighBound(ptcutTPC*1.03);
- TH1D *NotIDTPC = CorrNotID(etacut,"CorrNotIDEMCALTPC",prodname,shortprodname,true,infilename);
- TH1D *NotIDITS = CorrNotID(etacut,"CorrNotIDEMCALITS",prodname,shortprodname,false,infilename);
+ TH1D *NotIDTPC = CorrNotID(etacut,"CorrNotIDEMCALTPC",prodname,shortprodname,true,infilename,ispp,forSim);
+ TH1D *NotIDITS = CorrNotID(etacut,"CorrNotIDEMCALITS",prodname,shortprodname,false,infilename,ispp,forSim);
hadCorrectionEMCAL->SetNotIDCorrectionTPC(NotIDTPC);
hadCorrectionEMCAL->SetNotIDCorrectionITS(NotIDITS);
- Float_t NotIDConstTPC = CorrNotIDConst(0.15,etacut,"CorrNotIDEMCALTPC2",prodname,shortprodname,true,infilename);
- Float_t NotIDConstITS = CorrNotIDConst(0.10,etacut,"CorrNotIDEMCALTPC2",prodname,shortprodname,true,infilename);
+ Float_t NotIDConstTPC = CorrNotIDConst(0.15,etacut,"CorrNotIDEMCALTPC2",prodname,shortprodname,true,infilename,ispp,forSim);
+ Float_t NotIDConstITS = CorrNotIDConst(0.10,etacut,"CorrNotIDEMCALTPC2",prodname,shortprodname,true,infilename,ispp,forSim);
hadCorrectionEMCAL->SetNotIDConstCorrectionTPC(1.0/NotIDConstTPC);
hadCorrectionEMCAL->SetNotIDConstCorrectionITS(1.0/NotIDConstITS);
cout<<"Setting constant PID corrections to "<<NotIDConstTPC<<" and "<<NotIDConstITS<<endl;
hadCorrectionEMCAL->SetNotIDConstCorrectionITSHighBound(1./NotIDConstITS*1.01);
- TH1D *NoID = CorrNoID(etacut,"CorrNoIDEMCAL",prodname,shortprodname,infilename);
+ TH1D *NoID = CorrNoID(etacut,"CorrNoIDEMCAL",prodname,shortprodname,infilename,ispp,forSim);
hadCorrectionEMCAL->SetNotIDCorrectionNoPID(NoID);
- Float_t NoIDTPC = CorrNoIDConst(etacut,0.15,"CorrNoIDEMCAL2",prodname,shortprodname,infilename);
- Float_t NoIDITS = CorrNoIDConst(etacut,0.1,"CorrNoIDEMCAL2",prodname,shortprodname,infilename);
+ Float_t NoIDTPC = CorrNoIDConst(etacut,0.15,"CorrNoIDEMCAL2",prodname,shortprodname,infilename,ispp,forSim);
+ Float_t NoIDITS = CorrNoIDConst(etacut,0.1,"CorrNoIDEMCAL2",prodname,shortprodname,infilename,ispp,forSim);
cout<<"Setting constant PID corrections with no PID to "<<NoIDTPC<<" and "<<NoIDITS<<endl;
hadCorrectionEMCAL->SetNotIDConstCorrectionTPCNoID(1./NoIDTPC);
hadCorrectionEMCAL->SetNotIDConstCorrectionITSNoID(1./NoIDITS);
hadCorrectionEMCAL->SetNotIDConstCorrectionTPCNoIDHighBound(1./NoIDTPC*1.01);
hadCorrectionEMCAL->SetNotIDConstCorrectionITSNoIDHighBound(1./NoIDITS*1.01);
- TH1D *efficiencyPionTPC = GetHistoEfficiency(etacut,"hEfficiencyPionTPC",1,1,20,true,infilename);
+ TH1D *efficiencyPionTPC = GetHistoEfficiency(etacut,"hEfficiencyPionTPC",1,1,20,true,true,infilename);
hadCorrectionEMCAL->SetEfficiencyPionTPC(efficiencyPionTPC);
if(!efficiencyPionTPC){cerr<<"NOOOOOOOOOOOOOOOOOO!! We have failed you, Christine!"<<endl;}
// else{
// return;
// }
- TH1D *efficiencyKaonTPC = GetHistoEfficiency(etacut,"hEfficiencyKaonTPC",2,1,20,true,infilename);
+ TH1D *efficiencyKaonTPC = GetHistoEfficiency(etacut,"hEfficiencyKaonTPC",2,1,20,true,true,infilename);
if(!efficiencyKaonTPC){cerr<<"NOOOOOOOOOOOOOOOOOO!! We have failed you, Christine!"<<endl;}
hadCorrectionEMCAL->SetEfficiencyKaonTPC(efficiencyKaonTPC);
- TH1D *efficiencyProtonTPC = GetHistoEfficiency(etacut,"hEfficiencyProtonTPC",3,1,20,true,infilename);
+ TH1D *efficiencyProtonTPC = GetHistoEfficiency(etacut,"hEfficiencyProtonTPC",3,1,20,true,true,infilename);
hadCorrectionEMCAL->SetEfficiencyProtonTPC(efficiencyProtonTPC);
- TH1D *efficiencyHadronTPC = GetHistoEfficiency(etacut,"hEfficiencyHadronTPC",0,1,20,true,infilename);
+ TH1D *efficiencyHadronTPC = GetHistoEfficiency(etacut,"hEfficiencyHadronTPC",0,1,20,true,true,infilename);
hadCorrectionEMCAL->SetEfficiencyHadronTPC(efficiencyHadronTPC);
- TH1D *efficiencyPionITS = GetHistoEfficiency(etacut,"hEfficiencyPionITS",1,1,20,false,infilename);
+ TH1D *efficiencyPionITS = GetHistoEfficiency(etacut,"hEfficiencyPionITS",1,1,20,false,true,infilename);
hadCorrectionEMCAL->SetEfficiencyPionITS(efficiencyPionITS);
- TH1D *efficiencyKaonITS = GetHistoEfficiency(etacut,"hEfficiencyKaonITS",2,1,20,false,infilename);
+ TH1D *efficiencyKaonITS = GetHistoEfficiency(etacut,"hEfficiencyKaonITS",2,1,20,false,true,infilename);
hadCorrectionEMCAL->SetEfficiencyKaonITS(efficiencyKaonITS);
- TH1D *efficiencyProtonITS = GetHistoEfficiency(etacut,"hEfficiencyProtonITS",3,1,20,false,infilename);
+ TH1D *efficiencyProtonITS = GetHistoEfficiency(etacut,"hEfficiencyProtonITS",3,1,20,false,true,infilename);
hadCorrectionEMCAL->SetEfficiencyProtonITS(efficiencyProtonITS);
- TH1D *efficiencyHadronITS = GetHistoEfficiency(etacut,"hEfficiencyHadronITS",0,1,20,false,infilename);
+ TH1D *efficiencyHadronITS = GetHistoEfficiency(etacut,"hEfficiencyHadronITS",0,1,20,false,true,infilename);
hadCorrectionEMCAL->SetEfficiencyHadronITS(efficiencyHadronITS);
//CorrEfficiencyPlots(true,prodname,shortprodname,infilename);
//CorrEfficiencyPlots(false,prodname,shortprodname,infilename);
hadCorrectionEMCAL->GetEfficiencyHadronTPC()->Draw();
- TH1D *backgroundTPC = GetHistoCorrBkgd(etacut,"hBackgroundTPC",true,infilename);
- TH1D *backgroundITS = GetHistoCorrBkgd(etacut,"hBackgroundITS",false,infilename);
+ TH1D *backgroundTPC = GetHistoCorrBkgd(etacut,"hBackgroundTPC",true,infilename,ispp,forSim);
+ TH1D *backgroundITS = GetHistoCorrBkgd(etacut,"hBackgroundITS",false,infilename,ispp,forSim);
hadCorrectionEMCAL->SetBackgroundCorrectionTPC(backgroundTPC);
hadCorrectionEMCAL->SetBackgroundCorrectionITS(backgroundITS);
- CorrBkgdPlots(prodname,shortprodname,true,infilename);
- CorrBkgdPlots(prodname,shortprodname,false,infilename);
+ CorrBkgdPlots(prodname,shortprodname,true,infilename,ispp,forSim);
+ CorrBkgdPlots(prodname,shortprodname,false,infilename,ispp,forSim);
outfile->cd();
hadCorrectionEMCAL->Write();
hadCorrectionPHOS->SetAcceptanceCorrectionEMCAL(360.0/60.0);
float ptcut = 0.1;
- float neutralCorr = CorrNeutral(ptcut,prodname,shortprodname,TPC,infilename,false,etacut);
+ float neutralCorr = CorrNeutral(ptcut,prodname,shortprodname,ispp,forSim,TPC,infilename,false,etacut);
hadCorrectionPHOS->SetNeutralCorrection(neutralCorr);
cout<<"Warning: Setting neutral correction error bars to STAR value of +/-2%. Use for development purposes only!"<<endl;
hadCorrectionPHOS->SetNeutralCorrectionLowBound(neutralCorr*0.98);
hadCorrectionPHOS->SetNeutralCorrectionHighBound(neutralCorr*1.02);
- float hadronicCorr = CorrNeutral(ptcut,prodname,shortprodname,TPC,infilename,true,etacut);
+ float hadronicCorr = CorrNeutral(ptcut,prodname,shortprodname,ispp,forSim,TPC,infilename,true,etacut);
hadCorrectionPHOS->SetNotHadronicCorrection(hadronicCorr);
cout<<"Warning: Setting hadronic correction error bars to value of +/-2%. Use for development purposes only!"<<endl;
hadCorrectionPHOS->SetNotHadronicCorrectionLowBound(neutralCorr*0.98);
hadCorrectionPHOS->SetNotHadronicCorrectionHighBound(neutralCorr*1.02);
- float ptcutITS = CorrPtCut(0.1,prodname,shortprodname,infilename);
+ float ptcutITS = CorrPtCut(0.1,prodname,shortprodname,infilename,ispp,forSim);
hadCorrectionPHOS->SetpTCutCorrectionITS(ptcutITS);
- float ptcutTPC = CorrPtCut(0.15,prodname,shortprodname,infilename);
+ float ptcutTPC = CorrPtCut(0.15,prodname,shortprodname,infilename,ispp,forSim);
hadCorrectionPHOS->SetpTCutCorrectionTPC(ptcutTPC);
cout<<"Warning: Setting pt cut correction error bars to STAR value of +/-3%. Use for development purposes only!"<<endl;
hadCorrectionPHOS->SetpTCutCorrectionITSLowBound(ptcutITS*0.97);
hadCorrectionPHOS->SetpTCutCorrectionITSHighBound(ptcutITS*1.03);
hadCorrectionPHOS->SetpTCutCorrectionTPCHighBound(ptcutTPC*1.03);
- TH1D *NotIDTPC = CorrNotID(etacut,"CorrNotIDPHOSTPC",prodname,shortprodname,true,infilename);
- TH1D *NotIDITS = CorrNotID(etacut,"CorrNotIDPHOSITS",prodname,shortprodname,false,infilename);
+ TH1D *NotIDTPC = CorrNotID(etacut,"CorrNotIDPHOSTPC",prodname,shortprodname,true,infilename,ispp,forSim);
+ TH1D *NotIDITS = CorrNotID(etacut,"CorrNotIDPHOSITS",prodname,shortprodname,false,infilename,ispp,forSim);
hadCorrectionPHOS->SetNotIDCorrectionTPC(NotIDTPC);
hadCorrectionPHOS->SetNotIDCorrectionITS(NotIDITS);
- Float_t NotIDConstTPC = CorrNotIDConst(0.15,etacut,"CorrNotIDPHOSTPC2",prodname,shortprodname,true,infilename);
- Float_t NotIDConstITS = CorrNotIDConst(0.10,etacut,"CorrNotIDPHOSTPC2",prodname,shortprodname,true,infilename);
+ Float_t NotIDConstTPC = CorrNotIDConst(0.15,etacut,"CorrNotIDPHOSTPC2",prodname,shortprodname,true,infilename,ispp,forSim);
+ Float_t NotIDConstITS = CorrNotIDConst(0.10,etacut,"CorrNotIDPHOSTPC2",prodname,shortprodname,true,infilename,ispp,forSim);
hadCorrectionPHOS->SetNotIDConstCorrectionTPC(1./NotIDConstTPC);
hadCorrectionPHOS->SetNotIDConstCorrectionITS(1./NotIDConstITS);
cout<<"Warning: Setting systematic errors on constant correction from unidentified particles at 1%! For testing and development purposes only!"<<endl;
hadCorrectionPHOS->SetNotIDConstCorrectionITSHighBound(1./NotIDConstITS*1.01);
- TH1D *NoID = CorrNoID(etacut,"CorrNoIDPHOS",prodname,shortprodname,infilename);
+ TH1D *NoID = CorrNoID(etacut,"CorrNoIDPHOS",prodname,shortprodname,infilename,ispp,forSim);
hadCorrectionPHOS->SetNotIDCorrectionNoPID(NoID);
- Float_t NoIDTPC = CorrNoIDConst(etacut,0.15,"CorrNoIDPHOS2",prodname,shortprodname,infilename);
- Float_t NoIDITS = CorrNoIDConst(etacut,0.1,"CorrNoIDPHOS2",prodname,shortprodname,infilename);
+ Float_t NoIDTPC = CorrNoIDConst(etacut,0.15,"CorrNoIDPHOS2",prodname,shortprodname,infilename,ispp,forSim);
+ Float_t NoIDITS = CorrNoIDConst(etacut,0.1,"CorrNoIDPHOS2",prodname,shortprodname,infilename,ispp,forSim);
cout<<"Setting constant PID corrections with no PID to "<<NoIDTPC<<" and "<<NoIDITS<<endl;
hadCorrectionPHOS->SetNotIDConstCorrectionTPCNoID(1./NoIDTPC);
hadCorrectionPHOS->SetNotIDConstCorrectionITSNoID(1./NoIDITS);
hadCorrectionPHOS->SetNotIDConstCorrectionTPCNoIDHighBound(1./NoIDTPC*1.01);
hadCorrectionPHOS->SetNotIDConstCorrectionITSNoIDHighBound(1./NoIDITS*1.01);
- TH1D *efficiencyPionTPC = GetHistoEfficiency(etacut,"hEfficiencyPionTPC",1,1,20,true,infilename);
- TH1D *efficiencyKaonTPC = GetHistoEfficiency(etacut,"hEfficiencyKaonTPC",2,1,20,true,infilename);
- TH1D *efficiencyProtonTPC = GetHistoEfficiency(etacut,"hEfficiencyProtonTPC",3,1,20,true,infilename);
- TH1D *efficiencyHadronTPC = GetHistoEfficiency(etacut,"hEfficiencyHadronTPC",0,1,20,true,infilename);
- TH1D *efficiencyPionITS = GetHistoEfficiency(etacut,"hEfficiencyPionITS",1,1,20,false,infilename);
- TH1D *efficiencyKaonITS = GetHistoEfficiency(etacut,"hEfficiencyKaonITS",2,1,20,false,infilename);
- TH1D *efficiencyProtonITS = GetHistoEfficiency(etacut,"hEfficiencyProtonITS",3,1,20,false,infilename);
- TH1D *efficiencyHadronITS = GetHistoEfficiency(etacut,"hEfficiencyHadronITS",0,1,20,false,infilename);
+ TH1D *efficiencyPionTPC = GetHistoEfficiency(etacut,"hEfficiencyPionTPC",1,1,20,true,true,infilename);
+ TH1D *efficiencyKaonTPC = GetHistoEfficiency(etacut,"hEfficiencyKaonTPC",2,1,20,true,true,infilename);
+ TH1D *efficiencyProtonTPC = GetHistoEfficiency(etacut,"hEfficiencyProtonTPC",3,1,20,true,true,infilename);
+ TH1D *efficiencyHadronTPC = GetHistoEfficiency(etacut,"hEfficiencyHadronTPC",0,1,20,true,true,infilename);
+ TH1D *efficiencyPionITS = GetHistoEfficiency(etacut,"hEfficiencyPionITS",1,1,20,false,true,infilename);
+ TH1D *efficiencyKaonITS = GetHistoEfficiency(etacut,"hEfficiencyKaonITS",2,1,20,false,true,infilename);
+ TH1D *efficiencyProtonITS = GetHistoEfficiency(etacut,"hEfficiencyProtonITS",3,1,20,false,true,infilename);
+ TH1D *efficiencyHadronITS = GetHistoEfficiency(etacut,"hEfficiencyHadronITS",0,1,20,false,true,infilename);
//CorrEfficiencyPlots(true,prodname,shortprodname,infilename);
//CorrEfficiencyPlots(false,prodname,shortprodname,infilename);
hadCorrectionPHOS->SetEfficiencyPionTPC(efficiencyPionTPC);
hadCorrectionPHOS->SetEfficiencyProtonITS(efficiencyProtonITS);
hadCorrectionPHOS->SetEfficiencyHadronITS(efficiencyHadronITS);
- TH1D *backgroundTPC = GetHistoCorrBkgd(etacut,"hBackgroundTPC",true,infilename);
- TH1D *backgroundITS = GetHistoCorrBkgd(etacut,"hBackgroundITS",false,infilename);
+ TH1D *backgroundTPC = GetHistoCorrBkgd(etacut,"hBackgroundTPC",true,infilename,ispp,forSim);
+ TH1D *backgroundITS = GetHistoCorrBkgd(etacut,"hBackgroundITS",false,infilename,ispp,forSim);
hadCorrectionPHOS->SetBackgroundCorrectionTPC(backgroundTPC);
hadCorrectionPHOS->SetBackgroundCorrectionITS(backgroundITS);
- CorrBkgdPlots(prodname,shortprodname,true,infilename);
- CorrBkgdPlots(prodname,shortprodname,false,infilename);
+ CorrBkgdPlots(prodname,shortprodname,true,infilename,ispp,forSim);
+ CorrBkgdPlots(prodname,shortprodname,false,infilename,ispp,forSim);
//Write the output
outfile->cd();
outfile->Write();
outfile->Close();
+ TFile *junk = new TFile("junk.root","RECREATE");
+ efficiencyPionTPC->Write();
+ junk->Write();
+ junk->Close();
+
timer.Stop();
timer.Print();
}
//==================================CorrNeutral==============================================
-Float_t CorrNeutral(float ptcut, char *prodname, char *shortprodname, bool TPC, char *infilename, bool hadronic, float etacut){
+Float_t CorrNeutral(float ptcut, char *prodname, char *shortprodname, bool ispp, bool forSim, bool TPC, char *infilename, bool hadronic, float etacut){
gStyle->SetOptTitle(0);
gStyle->SetOptStat(0);
gStyle->SetOptFit(0);
int colortotal = 1;
int casetotal = 4;
if(hadronic) casetotal = 8;
- TH1D *total = GetHistoCorrNeutral(ptcut,histoname,casetotal,false,colortotal,phosmarker,infilename,hadronic);
+ TH1D *total = GetHistoCorrNeutral(ptcut,histoname,ispp,forSim,casetotal,false,colortotal,phosmarker,infilename,hadronic);
int colorallneutral = 2;
- TH1D *allneutral = GetHistoCorrNeutral(ptcut,"allneutral",3,false,colorallneutral,phosmarker,infilename,hadronic);
+ TH1D *allneutral = GetHistoCorrNeutral(ptcut,"allneutral",ispp,forSim,3,false,colorallneutral,phosmarker,infilename,hadronic);
int colorchargedsecondary = TColor::kViolet-3;
- TH1D *chargedsecondary = GetHistoCorrNeutral(ptcut,"chargedsecondary",2,false,colorchargedsecondary,phosmarker,infilename,hadronic);
+ TH1D *chargedsecondary = GetHistoCorrNeutral(ptcut,"chargedsecondary",ispp,forSim,2,false,colorchargedsecondary,phosmarker,infilename,hadronic);
int colorneutralUndet = 4;
- TH1D *neutralUndet = GetHistoCorrNeutral(ptcut,"neutralUndet",1,false,colorneutralUndet,phosmarker,infilename,hadronic);
+ TH1D *neutralUndet = GetHistoCorrNeutral(ptcut,"neutralUndet",ispp,forSim,1,false,colorneutralUndet,phosmarker,infilename,hadronic);
int colorv0 = TColor::kGreen+2;
- TH1D *v0 = GetHistoCorrNeutral(ptcut,"v0",0,false,colorv0,phosmarker,infilename,hadronic);
+ TH1D *v0 = GetHistoCorrNeutral(ptcut,"v0",ispp,forSim,0,false,colorv0,phosmarker,infilename,hadronic);
int colorem = TColor::kCyan;
- TH1D *em = GetHistoCorrNeutral(ptcut,"em",9,false,colorem,phosmarker,infilename,hadronic);
+ TH1D *em = GetHistoCorrNeutral(ptcut,"em",ispp,forSim,9,false,colorem,phosmarker,infilename,hadronic);
TF1 *func = new TF1("func","[0]",-.7,.7);
func->SetParameter(0,0.2);
return 1.0/(1.0-corr);
}
-TH1D *GetHistoCorrNeutral(float cut, char *name, int mycase, bool eta, int color, int marker, char *infilename, bool hadronic){
+TH1D *GetHistoCorrNeutral(float cut, char *name, bool ispp, bool forSim, int mycase, bool eta, int color, int marker, char *infilename, bool hadronic){
TFile *file = new TFile(infilename);
TList *list = file->FindObject("out2");
+ char *reweightname = "";
+ if(!forSim) reweightname = "Reweighted";
TH2F *numeratorParent;
switch(mycase){
case 0:
- numeratorParent= (TH2F*)((TH2F*) out2->FindObject("EtSimulatedLambda"))->Clone("v0");
- numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiLambda"));
- numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedK0S"));
+ numeratorParent= (TH2F*)((TH2F*) out2->FindObject(Form("EtSimulatedLambda%s",reweightname)))->Clone("v0");
+ numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedAntiLambda%s",reweightname)));
+ numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedK0S%s",reweightname)));
break;
case 1:
- numeratorParent = (TH2F*)((TH2F*) out2->FindObject("EtSimulatedK0L"))->Clone("Knnbar");
+ numeratorParent = (TH2F*)((TH2F*) out2->FindObject(Form("EtSimulatedK0L%s",reweightname)))->Clone("Knnbar");
numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedNeutron"));
numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiNeutron"));
break;
numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiXi0"));
break;
case 3:
- numeratorParent= (TH2F*)((TH2F*) out2->FindObject("EtSimulatedLambda"))->Clone("allneutral");
- numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiLambda"));
- numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedK0S"));
- numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedK0L"));
+ numeratorParent= (TH2F*)((TH2F*) out2->FindObject(Form("EtSimulatedLambda%s",reweightname)))->Clone("allneutral");
+ numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedAntiLambda%s",reweightname)));
+ numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedK0S%s",reweightname)));
+ numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedK0L%s",reweightname)));
numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedNeutron"));
numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiNeutron"));
break;
case 4:
- numeratorParent= (TH2F*)((TH2F*) out2->FindObject("EtSimulatedLambda"))->Clone("allneutral");
- numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiLambda"));
- numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedK0S"));
- numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedK0L"));
+ numeratorParent= (TH2F*)((TH2F*) out2->FindObject(Form("EtSimulatedLambda%s",reweightname)))->Clone("allneutral");
+ numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedAntiLambda%s",reweightname)));
+ numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedK0S%s",reweightname)));
+ numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedK0L%s",reweightname)));
numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedNeutron"));
numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiNeutron"));
numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedOmega"));
numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiSigma"));
break;
case 8:
- numeratorParent= (TH2F*)((TH2F*) out2->FindObject("EtSimulatedLambda"))->Clone("allneutral");
- numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiLambda"));
- numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedK0S"));
- numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedK0L"));
+ numeratorParent= (TH2F*)((TH2F*) out2->FindObject(Form("EtSimulatedLambda%s",reweightname)))->Clone("allneutral");
+ numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedAntiLambda%s",reweightname)));
+ numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedK0S%s",reweightname)));
+ numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedK0L%s",reweightname)));
numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedNeutron"));
numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiNeutron"));
numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedOmega"));
}
TH2F *allhad;
- allhad=(TH2F*) ((TH2F*) out2->FindObject("EtSimulatedAllHadron"))->Clone("id");
+ //allhad=(TH2F*) ((TH2F*) out2->FindObject("EtSimulatedAllHadron"))->Clone("id");
+ allhad=(TH2F*) ((TH2F*) out2->FindObject("EtSimulatedPiPlus"))->Clone("id");
+ allhad->Add((TH2F*) out2->FindObject("EtSimulatedPiMinus"));
+ allhad->Add((TH2F*) out2->FindObject("EtSimulatedKMinus"));
+ allhad->Add((TH2F*) out2->FindObject("EtSimulatedKPlus"));
+ allhad->Add((TH2F*) out2->FindObject("EtSimulatedProton"));
+ allhad->Add((TH2F*) out2->FindObject("EtSimulatedAntiProton"));
+ allhad->Add((TH2F*) out2->FindObject(Form("EtSimulatedLambda%s",reweightname)));
+ allhad->Add((TH2F*) out2->FindObject(Form("EtSimulatedAntiLambda%s",reweightname)));
+ allhad->Add((TH2F*) out2->FindObject(Form("EtSimulatedK0S%s",reweightname)));
+ allhad->Add((TH2F*) out2->FindObject(Form("EtSimulatedK0L%s",reweightname)));
+ allhad->Add((TH2F*) out2->FindObject("EtSimulatedNeutron"));
+ allhad->Add((TH2F*) out2->FindObject("EtSimulatedAntiNeutron"));
+ allhad->Add((TH2F*) out2->FindObject("EtSimulatedEPlus"));
+ allhad->Add((TH2F*) out2->FindObject("EtSimulatedEMinus"));
+ allhad->Add((TH2F*) out2->FindObject("EtSimulatedOmega"));
+ allhad->Add((TH2F*) out2->FindObject("EtSimulatedAntiOmega"));
+ allhad->Add((TH2F*) out2->FindObject("EtSimulatedXi"));
+ allhad->Add((TH2F*) out2->FindObject("EtSimulatedAntiXi"));
+ allhad->Add((TH2F*) out2->FindObject("EtSimulatedSigma"));
+ allhad->Add((TH2F*) out2->FindObject("EtSimulatedAntiSigma"));
+ allhad->Add((TH2F*) out2->FindObject("EtSimulatedXi0"));
+ allhad->Add((TH2F*) out2->FindObject("EtSimulatedAntiXi0"));
+
if(hadronic){//if we are getting the correction for the hadronic only case...
allhad->Add((TH2F*) out2->FindObject("EtSimulatedGamma"));
allhad->Add((TH2F*) out2->FindObject("EtSimulatedEta"));
allhad->Add((TH2F*) out2->FindObject("EtSimulatedEMinus"));
}
- //numeratorParent->Sumw2();
- //allhad->Sumw2();
TH1D *denominator;
TH1D *numerator;
if(eta){
}
//===============================CorrPtCut=========================================
-TH1D *GetHistoCorrPtCut(float ptcut, char *name, char *filename){
+TH1D *GetHistoCorrPtCut(float ptcut, char *name, char *filename, bool ispp, bool forSim){
TFile *file = new TFile(filename);
TList *list = file->FindObject("out2");
TH2F *allhad = ((TH2F*) out2->FindObject("EtSimulatedAllHadron"))->Clone("allhad");
}
-Float_t CorrPtCut(float ptcut, char *prodname, char *shortprodname, char *filename){
+Float_t CorrPtCut(float ptcut, char *prodname, char *shortprodname, char *filename, bool ispp, bool forSim){
gStyle->SetOptTitle(0);
gStyle->SetOptStat(0);
//==================================CorrNotID=================================================
-TH1D *GetHistoCorrNotID(float etacut,char *name, bool TPC, char *infilename, bool eta){
+TH1D *GetHistoCorrNotID(float etacut,char *name, bool TPC, char *infilename, bool eta, bool ispp, bool forSim){
TFile *file = new TFile(infilename);
TList *list = file->FindObject("out2");
char *myname = "ITS";
}
-TH1D *CorrNotID(float etacut,char *name, char *prodname, char *shortprodname, bool TPC, char *infilename){
+TH1D *CorrNotID(float etacut,char *name, char *prodname, char *shortprodname, bool TPC, char *infilename, bool ispp, bool forSim){
gStyle->SetOptTitle(0);
gStyle->SetOptStat(0);
gStyle->SetOptFit(0);
c->SetFrameFillColor(0);
c->SetFrameBorderMode(0);
- TH1D *PHOS = GetHistoCorrNotID(etacut,name,TPC,infilename,true);
+ TH1D *PHOS = GetHistoCorrNotID(etacut,name,TPC,infilename,true,ispp,forSim);
PHOS->SetMarkerColor(2);
PHOS->SetLineColor(2);
PHOS->SetAxisRange(0.0,4);
return PHOS;
}
-Float_t CorrNotIDConst(float ptcut, float etacut,char *name, char *prodname, char *shortprodname, bool TPC, char *infilename){
+Float_t CorrNotIDConst(float ptcut, float etacut,char *name, char *prodname, char *shortprodname, bool TPC, char *infilename, bool ispp, bool forSim){
gStyle->SetOptTitle(0);
gStyle->SetOptStat(0);
gStyle->SetOptFit(0);
c->SetFrameFillColor(0);
c->SetFrameBorderMode(0);
- TH1D *PHOS = GetHistoCorrNotID(ptcut,name,TPC,infilename,false);
+ TH1D *PHOS = GetHistoCorrNotID(ptcut,name,TPC,infilename,false,ispp,forSim);
PHOS->SetMarkerColor(2);
PHOS->SetLineColor(2);
PHOS->SetMaximum(1.01);
}
//==================================CorrNoID=================================================
-TH1D *GetHistoNoID(float etacut, char *name, char *infilename, bool eta, bool TPC){
+TH1D *GetHistoNoID(float etacut, char *name, char *infilename, bool eta, bool TPC, bool ispp, bool forSim){
TFile *file = new TFile(infilename);
char *myname = "ITS";
if(TPC) myname = "TPC";
}
-TH1D *CorrNoID(float etacut,char *name, char *prodname, char *shortprodname, char *infilename){
+TH1D *CorrNoID(float etacut,char *name, char *prodname, char *shortprodname, char *infilename, bool ispp, bool forSim){
gStyle->SetOptTitle(0);
gStyle->SetOptStat(0);
gStyle->SetOptFit(0);
c->SetFrameFillColor(0);
c->SetFrameBorderMode(0);
- TH1D *PHOS = GetHistoNoID(etacut,name,infilename,true,true);
+ TH1D *PHOS = GetHistoNoID(etacut,name,infilename,true,true,ispp,forSim);
PHOS->SetMarkerColor(2);
PHOS->SetLineColor(2);
PHOS->SetAxisRange(0.0,4);
}
-Float_t CorrNoIDConst(float etacut, float ptcut,char *name, char *prodname, char *shortprodname, char *infilename){
+Float_t CorrNoIDConst(float etacut, float ptcut,char *name, char *prodname, char *shortprodname, char *infilename, bool ispp, bool forSim){
gStyle->SetOptTitle(0);
gStyle->SetOptStat(0);
gStyle->SetOptFit(0);
bool TPC = true;
if(ptcut<.15) TPC = false;
- TH1D *PHOS = GetHistoNoID(ptcut,name,infilename,false,TPC);
+ TH1D *PHOS = GetHistoNoID(ptcut,name,infilename,false,TPC,ispp,forSim);
TF1 *func = new TF1("func","[0]",-etacut,etacut);
PHOS->Fit(func,"","",-etacut,etacut);
PHOS->SetMarkerColor(2);
-TH1D *GetHistoEfficiency(float cut, char *name, int mycase, int color, int marker,bool TPC, char *infilename){
+TH1D *GetHistoEfficiency(float cut, char *name, int mycase, int color, int marker,bool TPC,bool ITS, char *infilename){
bool eta = true;
TFile *file = new TFile(infilename);
TList *list = file->FindObject("out2");
char *myname = "ITS";
- if(TPC) myname = "TPC";
+ if(TPC&&!ITS) myname = "TPC";
+ if(TPC&&ITS) myname = "TPCITS";
+ cout<<"Using tracks from "<<myname<<" for efficiency"<<endl;
TH2F *numeratorParent;
switch(mycase){
case 0:
}
void CorrEfficiencyPlots(bool TPC, char *prodname, char *shortprodname, char *infilename){
-
+ bool ITS = true;
gStyle->SetOptTitle(0);
gStyle->SetOptStat(0);
gStyle->SetOptFit(0);
int emcalmarker = 24;
float ptcut1 = 0.05;
float ptcut2 = 0.1;
- TH1D *PHOStotal = GetHistoEfficiency(0.12,"PHOStotal",0,colortotal,phosmarker,TPC,infilename);
- TH1D *PHOSpi = GetHistoEfficiency(0.12,"PHOSpi",1,colorpi,phosmarker,TPC,infilename);
- TH1D *PHOSp = GetHistoEfficiency(0.12,"PHOSp",2,colork,phosmarker,TPC,infilename);
- TH1D *PHOSk = GetHistoEfficiency(0.12,"PHOSk",3,colorp,phosmarker,TPC,infilename);
+ TH1D *PHOStotal = GetHistoEfficiency(0.12,"PHOStotal",0,colortotal,phosmarker,TPC,ITS,infilename);
+ TH1D *PHOSpi = GetHistoEfficiency(0.12,"PHOSpi",1,colorpi,phosmarker,TPC,ITS,infilename);
+ TH1D *PHOSp = GetHistoEfficiency(0.12,"PHOSp",2,colork,phosmarker,TPC,ITS,infilename);
+ TH1D *PHOSk = GetHistoEfficiency(0.12,"PHOSk",3,colorp,phosmarker,TPC,ITS,infilename);
if(!TPC){PHOStotal->GetXaxis()->SetRange(PHOStotal->GetXaxis()->FindBin(0.05),PHOStotal->GetXaxis()->FindBin(1.0));}
else{PHOStotal->GetXaxis()->SetRange(PHOStotal->GetXaxis()->FindBin(0.15),PHOStotal->GetXaxis()->FindBin(3.0));}
PHOStotal->SetMinimum(0.0);
PHOSpi->Draw("same");
PHOSp->Draw("same");
PHOSk->Draw("same");
- TH1D *EMCALtotal = GetHistoEfficiency(0.7,"EMCALtotal",0,colortotal,emcalmarker,TPC,infilename);
- TH1D *EMCALpi = GetHistoEfficiency(0.7,"EMCALpi",1,colorpi,emcalmarker,TPC,infilename);
- TH1D *EMCALp = GetHistoEfficiency(0.7,"EMCALp",2,colork,emcalmarker,TPC,infilename);
- TH1D *EMCALk = GetHistoEfficiency(0.7,"EMCALk",3,colorp,emcalmarker,TPC,infilename);
+ TH1D *EMCALtotal = GetHistoEfficiency(0.7,"EMCALtotal",0,colortotal,emcalmarker,TPC,ITS,infilename);
+ TH1D *EMCALpi = GetHistoEfficiency(0.7,"EMCALpi",1,colorpi,emcalmarker,TPC,ITS,infilename);
+ TH1D *EMCALp = GetHistoEfficiency(0.7,"EMCALp",2,colork,emcalmarker,TPC,ITS,infilename);
+ TH1D *EMCALk = GetHistoEfficiency(0.7,"EMCALk",3,colorp,emcalmarker,TPC,ITS,infilename);
EMCALtotal->Draw("same");
EMCALpi->Draw("same");
EMCALp->Draw("same");
char epsname[100];
char pngname[100];
if(TPC){
- sprintf(epsname,"pics/%s/CorrEfficiencyTPC.eps",shortprodname);
- sprintf(pngname,"pics/%s/CorrEfficiencyTPC.png",shortprodname);
+ if(ITS){
+ sprintf(epsname,"pics/%s/CorrEfficiencyITSTPC.eps",shortprodname);
+ sprintf(pngname,"pics/%s/CorrEfficiencyITSTPC.png",shortprodname);
+ }
+ else{
+ sprintf(epsname,"pics/%s/CorrEfficiencyTPC.eps",shortprodname);
+ sprintf(pngname,"pics/%s/CorrEfficiencyTPC.png",shortprodname);
+ }
}
else{
sprintf(epsname,"pics/%s/CorrEfficiencyITS.eps",shortprodname);
}
//==================================CorrBkgd=================================================
-TH1D *GetHistoCorrBkgd(float etacut,char *name, bool TPC, char *infilename){
+TH1D *GetHistoCorrBkgd(float etacut,char *name, bool TPC, char *infilename,bool ispp,bool forSim){
TFile *file = new TFile(infilename);
TList *list = file->FindObject("out2");
+ char *reweightname = "";
+ if(!forSim) reweightname = "Reweighted";
char *myname = "ITS";
if(TPC) myname = "TPC";
TH2F *signal = ((TH2F*) out2->FindObject(Form("EtReconstructed%sIdentifiedPiPlus",myname)))->Clone("signal");
//Et of all unidentified hadrons (plus hadrons identified as pions) calculated assuming their true mass
TH2F *bkgd = ((TH2F*) out2->FindObject(Form("EtReconstructed%sMisidentifiedElectrons",myname)))->Clone("bkgd");
- bkgd->Add((TH2F*) out2->FindObject(Form("EtReconstructed%sLambdaDaughters",myname)));
- bkgd->Add((TH2F*) out2->FindObject(Form("EtReconstructed%sAntiLambdaDaughters",myname)));
- bkgd->Add((TH2F*) out2->FindObject(Form("EtReconstructed%sK0SDaughters",myname)));
+ bkgd->Add((TH2F*) out2->FindObject(Form("EtReconstructed%sLambdaDaughters%s",myname,reweightname)));
+ bkgd->Add((TH2F*) out2->FindObject(Form("EtReconstructed%sAntiLambdaDaughters%s",myname,reweightname)));
+ bkgd->Add((TH2F*) out2->FindObject(Form("EtReconstructed%sK0SDaughters%s",myname,reweightname)));
bkgd->Add((TH2F*) out2->FindObject(Form("EtReconstructed%sXiDaughters",myname)));
bkgd->Add((TH2F*) out2->FindObject(Form("EtReconstructed%sAntiXiDaughters",myname)));
bkgd->Add((TH2F*) out2->FindObject(Form("EtReconstructed%sOmegaDaughters",myname)));
}
-void CorrBkgdPlots(char *prodname, char *shortprodname, bool TPC, char *infilename){
+void CorrBkgdPlots(char *prodname, char *shortprodname, bool TPC, char *infilename,bool ispp,bool forSim){
gStyle->SetOptTitle(0);
gStyle->SetOptStat(0);
gStyle->SetOptFit(0);
c->SetFrameFillColor(0);
c->SetFrameBorderMode(0);
- TH1D *PHOS = GetHistoCorrBkgd(0.12,"PHOS2",TPC,infilename);
- TH1D *EMCAL = GetHistoCorrBkgd(0.7,"EMCAL2",TPC,infilename);
+ TH1D *PHOS = GetHistoCorrBkgd(0.12,"PHOS2",TPC,infilename,ispp,forSim);
+ TH1D *EMCAL = GetHistoCorrBkgd(0.7,"EMCAL2",TPC,infilename,ispp,forSim);
PHOS->SetMarkerColor(2);
EMCAL->SetMarkerColor(4);
PHOS->SetLineColor(2);