]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGLF/totEt/AliAnalysisHadEtReconstructed.cxx
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGLF / totEt / AliAnalysisHadEtReconstructed.cxx
index bb5ded2174b09840c61289915a51f1d01b05ac1a..17b823ec02061cf41f4b02116a2144db84cbddc8 100644 (file)
@@ -116,9 +116,11 @@ Int_t AliAnalysisHadEtReconstructed::AnalyseEvent(AliVEvent* ev, Int_t eventtype
   fCentBin= -1;
   fGoodEvent = kTRUE;//for p+p collisions if we made it this far we have a good event
   if(fDataSet==20100||fDataSet==2011){//If this is Pb+Pb or pPb
-    AliCentrality *centrality = realEvent->GetCentrality();
-    if(fNCentBins<21) fCentBin= centrality->GetCentralityClass10(fCentralityMethod);
-    else{ fCentBin= centrality->GetCentralityClass5(fCentralityMethod);}
+//     AliCentrality *centrality = realEvent->GetCentrality();
+//     if(fNCentBins<21) fCentBin= centrality->GetCentralityClass10(fCentralityMethod);
+//     else{ fCentBin= centrality->GetCentralityClass5(fCentralityMethod);}
+    AliCentrality *centrality =  realEvent->GetCentrality();
+    fCentBin = GetCentralityBin(fNCentBins, centrality);
     if(fCentBin ==-1){
       if(fDataSet==2013){
        fCentBin = 19;//For pPb we don't want to throw these events out but there is no CB 19
@@ -129,8 +131,8 @@ Int_t AliAnalysisHadEtReconstructed::AnalyseEvent(AliVEvent* ev, Int_t eventtype
     }
   }
   //for PID
-  AliESDpid *pID = new AliESDpid();
-  pID->MakePID(realEvent);
+//   AliESDpid *pID = new AliESDpid();
+//   pID->MakePID(realEvent);
   TString *strTPC = new TString("TPC");
   TString *strITS = new TString("ITS");
   TString *strTPCITS = new TString("TPCITS");
@@ -170,6 +172,7 @@ Int_t AliAnalysisHadEtReconstructed::AnalyseEvent(AliVEvent* ev, Int_t eventtype
        else{
          if(TMath::Abs(track->Eta())>fCorrections->GetEtaCut()) continue;
          Float_t nSigmaPion,nSigmaProton,nSigmaKaon,nSigmaElectron;
+         Float_t nSigmaPionUnsigned,nSigmaProtonUnsigned,nSigmaKaonUnsigned,nSigmaElectronUnsigned;
 //       pID->MakeTPCPID(track);
 //       pID->MakeITSPID(track);
          //if(!fPIDResponse) cout<<"Uh-oh!  No PID Response!"<<endl;
@@ -177,7 +180,12 @@ Int_t AliAnalysisHadEtReconstructed::AnalyseEvent(AliVEvent* ev, Int_t eventtype
            nSigmaPion = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(track, AliPID::kPion)); 
            nSigmaProton = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(track, AliPID::kProton)); 
            nSigmaKaon =TMath::Abs( fPIDResponse->NumberOfSigmasTPC(track, AliPID::kKaon)); 
-           nSigmaElectron =TMath::Abs( fPIDResponse->NumberOfSigmasTPC(track, AliPID::kElectron)); 
+           nSigmaElectron =TMath::Abs( fPIDResponse->NumberOfSigmasTPC(track, AliPID::kElectron));
+
+           nSigmaPionUnsigned = fPIDResponse->NumberOfSigmasTPC(track, AliPID::kPion); 
+           nSigmaProtonUnsigned = fPIDResponse->NumberOfSigmasTPC(track, AliPID::kProton); 
+           nSigmaKaonUnsigned = fPIDResponse->NumberOfSigmasTPC(track, AliPID::kKaon); 
+           nSigmaElectronUnsigned = fPIDResponse->NumberOfSigmasTPC(track, AliPID::kElectron); 
 
 //         nSigmaPion = TMath::Abs(pID->NumberOfSigmasTPC(track,AliPID::kPion));
 //         nSigmaProton = TMath::Abs(pID->NumberOfSigmasTPC(track,AliPID::kProton));
@@ -189,6 +197,11 @@ Int_t AliAnalysisHadEtReconstructed::AnalyseEvent(AliVEvent* ev, Int_t eventtype
            nSigmaProton = TMath::Abs(fPIDResponse->NumberOfSigmasITS(track, AliPID::kProton)); 
            nSigmaKaon = TMath::Abs(fPIDResponse->NumberOfSigmasITS(track, AliPID::kKaon)); 
            nSigmaElectron = TMath::Abs(fPIDResponse->NumberOfSigmasITS(track, AliPID::kElectron)); 
+
+           nSigmaPionUnsigned = fPIDResponse->NumberOfSigmasITS(track, AliPID::kPion); 
+           nSigmaProtonUnsigned = fPIDResponse->NumberOfSigmasITS(track, AliPID::kProton); 
+           nSigmaKaonUnsigned = fPIDResponse->NumberOfSigmasITS(track, AliPID::kKaon); 
+           nSigmaElectronUnsigned = fPIDResponse->NumberOfSigmasITS(track, AliPID::kElectron); 
 //         nSigmaPion = TMath::Abs(pID->NumberOfSigmasITS(track,AliPID::kPion));
 //         nSigmaProton = TMath::Abs(pID->NumberOfSigmasITS(track,AliPID::kProton));
 //         nSigmaKaon = TMath::Abs(pID->NumberOfSigmasITS(track,AliPID::kKaon));
@@ -204,6 +217,11 @@ Int_t AliAnalysisHadEtReconstructed::AnalyseEvent(AliVEvent* ev, Int_t eventtype
          bool isKaon = (nSigmaPion>3.0 && nSigmaProton>3.0 && nSigmaKaon<3.0 && track->Pt()<0.45);
          bool isProton = (nSigmaPion>3.0 && nSigmaProton<3.0 && nSigmaKaon>3.0 && track->Pt()<0.9);
 
+         FillHisto2D(Form("dEdxDataNSigmaPionAll%s",cutName->Data()),track->P(),nSigmaPionUnsigned,1.0);
+         FillHisto2D(Form("dEdxDataNSigmaKaonAll%s",cutName->Data()),track->P(),nSigmaKaonUnsigned,1.0);
+         FillHisto2D(Form("dEdxDataNSigmaProtonAll%s",cutName->Data()),track->P(),nSigmaProtonUnsigned,1.0);
+         FillHisto2D(Form("dEdxDataNSigmaElectronAll%s",cutName->Data()),track->P(),nSigmaElectronUnsigned,1.0);
+         
          bool unidentified = (!isProton && !isKaon && !isElectron && !isPion);
          if(cutset==1){//ITS dE/dx identification requires tighter cuts on the tracks and we don't gain much from that so we won't do it
            unidentified = true;
@@ -254,6 +272,7 @@ Int_t AliAnalysisHadEtReconstructed::AnalyseEvent(AliVEvent* ev, Int_t eventtype
 
          if(isPion){
            FillHisto2D(Form("dEdxDataPion%s",cutName->Data()),track->P(),dEdx,1.0);
+           FillHisto2D(Form("dEdxDataNSigmaPion%s",cutName->Data()),track->P(),nSigmaPionUnsigned,1.0);
            et = Et(track->P(),track->Theta(),fgPiPlusCode,track->Charge());
            if(cutset==0){corrEff = fCorrections->GetTPCEfficiencyCorrectionPion(track->Pt(),fCentBin);}
            etpartialcorrected = et*corrBkgd*corrEff*corrNotID;
@@ -269,6 +288,7 @@ Int_t AliAnalysisHadEtReconstructed::AnalyseEvent(AliVEvent* ev, Int_t eventtype
          }
          if(isKaon){
            FillHisto2D(Form("dEdxDataKaon%s",cutName->Data()),track->P(),dEdx,1.0);
+           FillHisto2D(Form("dEdxDataNSigmaKaon%s",cutName->Data()),track->P(),nSigmaKaonUnsigned,1.0);
            et = Et(track->P(),track->Theta(),fgKPlusCode,track->Charge());
            if(cutset==0){corrEff = fCorrections->GetTPCEfficiencyCorrectionKaon(track->Pt(),fCentBin);}
            etpartialcorrected = et*corrBkgd*corrEff*corrNotID;
@@ -285,6 +305,7 @@ Int_t AliAnalysisHadEtReconstructed::AnalyseEvent(AliVEvent* ev, Int_t eventtype
          }
          if(isProton){
            FillHisto2D(Form("dEdxDataProton%s",cutName->Data()),track->P(),dEdx,1.0);
+           FillHisto2D(Form("dEdxDataNSigmaProton%s",cutName->Data()),track->P(),nSigmaProtonUnsigned,1.0);
            et = Et(track->P(),track->Theta(),fgProtonCode,track->Charge());
            if(cutset==0){corrEff = fCorrections->GetTPCEfficiencyCorrectionProton(track->Pt(),fCentBin);}
            etpartialcorrected = et*corrBkgd*corrEff*corrNotID;
@@ -301,6 +322,7 @@ Int_t AliAnalysisHadEtReconstructed::AnalyseEvent(AliVEvent* ev, Int_t eventtype
          }
          if(isElectron){
            FillHisto2D(Form("dEdxDataElectron%s",cutName->Data()),track->P(),dEdx,1.0);
+           FillHisto2D(Form("dEdxDataNSigmaElectron%s",cutName->Data()),track->P(),nSigmaElectronUnsigned,1.0);
          }
          if(unidentified){
            if(isPion) cerr<<"I should not be here!!  AliAnalysisHadEtReconstructed 273"<<endl; 
@@ -337,7 +359,9 @@ Int_t AliAnalysisHadEtReconstructed::AnalyseEvent(AliVEvent* ev, Int_t eventtype
     doublediff = (Int_t) AliPWG0Helper::kDD;
     singlediff = (Int_t) AliPWG0Helper::kSD;
   }
-  if(eventtype == nondiff && fGoodEvent){
+//  cout<<"event type "<<eventtype<<" nondiff event type "<<nondiff<<" data set "<<fDataSet<<" good event "<<fGoodEvent<<endl;
+  if((eventtype == nondiff|| fDataSet==20100 || fDataSet==2011)  && fGoodEvent){
+    //cout<<"Filling "<<endl;
     FillHisto1D("RecoHadEtFullAcceptanceTPCND",GetCorrectedHadEtFullAcceptanceTPC(),1.0);
     FillHisto1D("RecoPiKPEtFullAcceptanceTPCND",GetCorrectedPiKPEtFullAcceptanceTPC(),1.0);
     FillHisto1D("RecoTotEtFullAcceptanceTPCND",GetCorrectedTotEtFullAcceptanceTPC(),1.0);
@@ -450,7 +474,7 @@ Int_t AliAnalysisHadEtReconstructed::AnalyseEvent(AliVEvent* ev, Int_t eventtype
       FillHisto1D(Form("RecoRawEtFullAcceptanceITSCB%i",fCentBin),GetRawEtFullAcceptanceITS(),1.0);
     }
   }
-  delete pID;
+//   delete pID;
   delete strTPC;
   delete strITS;
   delete strTPCITS;
@@ -624,6 +648,7 @@ void AliAnalysisHadEtReconstructed::ResetEventValues(){//resetting event by even
   }
 }
 void AliAnalysisHadEtReconstructed::CreateHistograms(){//Creating histograms and adding them to the output TList
+  Float_t maxCentbinRange = fNCentBins+0.5;
 
   AliAnalysisManager *man=AliAnalysisManager::GetAnalysisManager();
   if (!man) {
@@ -645,6 +670,10 @@ void AliAnalysisHadEtReconstructed::CreateHistograms(){//Creating histograms and
   //TString *strTPC = new TString("TPC");
   TString *strITS = new TString("ITS");
   TString *strTPCITS = new TString("TPCITS");
+  Float_t minNSigma = -4;
+  Float_t maxNSigma = 4;
+  Float_t maxPtdEdxNSigma = 1.0;
+
   for(Int_t i=0;i<2;i++){
     TString *cutName = NULL;
     Float_t maxPtdEdx = 10;
@@ -707,6 +736,19 @@ void AliAnalysisHadEtReconstructed::CreateHistograms(){//Creating histograms and
     CreateHisto2D(Form("dEdxDataProton%s",cutName->Data()),"dE/dx for p(#bar{p})","momentum (GeV/c)","dE/dx",400,0.0,maxPtdEdx,200,mindEdx,maxdEdx);
     CreateHisto2D(Form("dEdxDataElectron%s",cutName->Data()),"dE/dx for e^{#pm}","momentum (GeV/c)","dE/dx",400,0.0,maxPtdEdx,200,mindEdx,maxdEdx);
     CreateHisto2D(Form("dEdxDataUnidentified%s",cutName->Data()),"dE/dx for unidentified particles","momentum (GeV/c)","dE/dx",400,0.0,maxPtdEdx,200,mindEdx,maxdEdx);
+
+
+    CreateHisto2D(Form("dEdxDataNSigmaPion%s",cutName->Data()),"N_{#sigma} dE/dx for PID'd #pi^{#pm}","momentum (GeV/c)","N_{#sigma} dE/dx",50,0.0,maxPtdEdxNSigma,100,minNSigma,maxNSigma);
+    CreateHisto2D(Form("dEdxDataNSigmaKaon%s",cutName->Data()),"N_{#sigma} dE/dx for PID'd K^{#pm}","momentum (GeV/c)","N_{#sigma} dE/dx",50,0.0,maxPtdEdxNSigma,100,minNSigma,maxNSigma);
+    CreateHisto2D(Form("dEdxDataNSigmaProton%s",cutName->Data()),"N_{#sigma} dE/dx for PID'd p(#bar{p})","momentum (GeV/c)","N_{#sigma} dE/dx",50,0.0,maxPtdEdxNSigma,100,minNSigma,maxNSigma);
+    CreateHisto2D(Form("dEdxDataNSigmaElectron%s",cutName->Data()),"N_{#sigma} dE/dx for e^{#pm}","momentum (GeV/c)","N_{#sigma} dE/dx",50,0.0,maxPtdEdxNSigma,100,minNSigma,maxNSigma);
+
+    CreateHisto2D(Form("dEdxDataNSigmaPionAll%s",cutName->Data()),"N_{#sigma} dE/dx for #pi^{#pm} for all","momentum (GeV/c)","N_{#sigma} dE/dx",50,0.0,maxPtdEdxNSigma,100,minNSigma,maxNSigma);
+    CreateHisto2D(Form("dEdxDataNSigmaKaonAll%s",cutName->Data()),"N_{#sigma} dE/dx for K^{#pm} for all","momentum (GeV/c)","N_{#sigma} dE/dx",50,0.0,maxPtdEdxNSigma,100,minNSigma,maxNSigma);
+    CreateHisto2D(Form("dEdxDataNSigmaProtonAll%s",cutName->Data()),"N_{#sigma} dE/dx for p(#bar{p}) for all","momentum (GeV/c)","N_{#sigma} dE/dx",50,0.0,maxPtdEdxNSigma,100,minNSigma,maxNSigma);
+    CreateHisto2D(Form("dEdxDataNSigmaElectronAll%s",cutName->Data()),"N_{#sigma} dE/dx for e^{#pm} for all","momentum (GeV/c)","N_{#sigma} dE/dx",50,0.0,maxPtdEdxNSigma,100,minNSigma,maxNSigma);
+
+
   }
 
   Float_t minEt = 0.0;
@@ -835,15 +877,15 @@ void AliAnalysisHadEtReconstructed::CreateHistograms(){//Creating histograms and
 
   //Cross checks that corrections are applied correctly
   if(fDataSet==20100 || fDataSet==2011){
-    CreateHisto2D("fbkgdVsCentralityBin","f_{bkgd} vs centrality bin","centrality bin","f_{bkgd}",21,-1.5,19.5,200,0.7,1.05);//
-    CreateHisto2D("feffPionVsCentralityBin","Pion efficiency vs centrality bin","centrality bin","pion efficiency",21,-1.5,19.5,200,0,1.2);//
-    CreateHisto2D("feffHadronVsCentralityBin","Hadron efficiency vs centrality bin","centrality bin","hadron efficiency",21,-1.5,19.5,200,0,1.2);//
-    CreateHisto2D("feffKaonVsCentralityBin","Kaon efficiency vs centrality bin","centrality bin","kaon efficiency",21,-1.5,19.5,200,0,1.2);//
-    CreateHisto2D("feffProtonVsCentralityBin","Proton efficiency vs centrality bin","centrality bin","proton efficiency",21,-1.5,19.5,200,0,1.2);//
-    CreateHisto2D("fnotIDVsCentralityBin","f_{notID} vs centrality bin","centrality bin","f_{notID}",21,-1.5,19.5,50,0.95,1.05);//
-    CreateHisto2D("fpTcutVsCentralityBin","f_{pTcut} vs centrality bin","centrality bin","f_{pTcut}",21,-1.5,19.5,50,0.95,1.05);
-    CreateHisto2D("fneutralVsCentralityBin","f_{neutral} vs centrality bin","centrality bin","f_{neutral}",21,-1.5,19.5,50,0.5,1.00);
-    CreateHisto2D("ConstantCorrectionsVsCentralityBin","constant corrections vs centrality bin","centrality bin","constant corrections",21,-1.5,19.5,50,0.5,1.00);
+    CreateHisto2D("fbkgdVsCentralityBin","f_{bkgd} vs centrality bin","centrality bin","f_{bkgd}",fNCentBins,-1.5,maxCentbinRange,200,0.7,1.05);//
+    CreateHisto2D("feffPionVsCentralityBin","Pion efficiency vs centrality bin","centrality bin","pion efficiency",fNCentBins,-1.5,maxCentbinRange,200,0,1.2);//
+    CreateHisto2D("feffHadronVsCentralityBin","Hadron efficiency vs centrality bin","centrality bin","hadron efficiency",fNCentBins,-1.5,maxCentbinRange,200,0,1.2);//
+    CreateHisto2D("feffKaonVsCentralityBin","Kaon efficiency vs centrality bin","centrality bin","kaon efficiency",fNCentBins,-1.5,maxCentbinRange,200,0,1.2);//
+    CreateHisto2D("feffProtonVsCentralityBin","Proton efficiency vs centrality bin","centrality bin","proton efficiency",fNCentBins,-1.5,maxCentbinRange,200,0,1.2);//
+    CreateHisto2D("fnotIDVsCentralityBin","f_{notID} vs centrality bin","centrality bin","f_{notID}",fNCentBins,-1.5,maxCentbinRange,50,0.95,1.05);//
+    CreateHisto2D("fpTcutVsCentralityBin","f_{pTcut} vs centrality bin","centrality bin","f_{pTcut}",fNCentBins,-1.5,maxCentbinRange,50,0.95,1.05);
+    CreateHisto2D("fneutralVsCentralityBin","f_{neutral} vs centrality bin","centrality bin","f_{neutral}",fNCentBins,-1.5,maxCentbinRange,50,0.5,1.00);
+    CreateHisto2D("ConstantCorrectionsVsCentralityBin","constant corrections vs centrality bin","centrality bin","constant corrections",fNCentBins,-1.5,maxCentbinRange,50,0.5,1.00);
   }
 
   delete sTPC;