]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Update (Chiara)
authordainese <dainese@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 9 Feb 2011 23:18:39 +0000 (23:18 +0000)
committerdainese <dainese@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 9 Feb 2011 23:18:39 +0000 (23:18 +0000)
PWG3/vertexingHF/AliAnalysisTaskSEHFQA.cxx
PWG3/vertexingHF/macros/AddTaskHFQA.C
PWG3/vertexingHF/macros/DrawQAoutput.C

index d9d9165b650308939943f15f58bd937aa44a6b7c..4d0b5f665baa11136d863e07a545b235026de0b8 100644 (file)
@@ -306,7 +306,7 @@ void AliAnalysisTaskSEHFQA::UserCreateOutputObjects()
   fOutputPID->Add(hTOFsigPid3sigPion);
   fOutputPID->Add(hTOFsigPid3sigKaon);
   fOutputPID->Add(hTOFsigPid3sigProton);
- fOutputPID->Add(hTPCsigvsp);
 fOutputPID->Add(hTPCsigvsp);
   fOutputPID->Add(hTPCsigvspAC);
   fOutputPID->Add(hTPCsigmaK);
   fOutputPID->Add(hTPCsigmaPion);
@@ -385,6 +385,9 @@ void AliAnalysisTaskSEHFQA::UserCreateOutputObjects()
     fOutputCheckCentrality->Add(hNtrackletsOut);
     fOutputCheckCentrality->Add(hMultIn);
     fOutputCheckCentrality->Add(hMultOut);
+
+    PostData(6,fOutputCheckCentrality);
+  
   } else{
     hname="hNtracklets";
     TH1F* hNtracklets=new TH1F(hname.Data(),"Number of tracklets;ntracklets;Entries",5000,-0.5,4999.5);
@@ -401,7 +404,6 @@ void AliAnalysisTaskSEHFQA::UserCreateOutputObjects()
   PostData(3,fOutputTrack);
   PostData(4,fCuts);
   PostData(5,fOutputCounters);
-  PostData(6,fOutputCheckCentrality);
 }
 
 //___________________________________________________________________________
@@ -417,7 +419,7 @@ void AliAnalysisTaskSEHFQA::UserExec(Option_t */*option*/)
   PostData(3,fOutputTrack);
   PostData(4,fCuts);
   PostData(5,fOutputCounters);
-  PostData(6,fOutputCheckCentrality);
+  if(fCuts->GetUseCentrality()) PostData(6,fOutputCheckCentrality);
 
   TClonesArray *arrayProng =0;
   Int_t pdg=0;
@@ -595,7 +597,7 @@ void AliAnalysisTaskSEHFQA::UserExec(Option_t */*option*/)
   if(!aod) {delete [] pdgdaughters;return;}
   // fix for temporary bug in ESDfilter 
   // the AODs with null vertex pointer didn't pass the PhysSel
-  if(!aod->GetPrimaryVertex() || TMath::Abs(aod->GetMagneticField())<0.001) {    delete [] pdgdaughters;return;}
+  if(!aod->GetPrimaryVertex() || TMath::Abs(aod->GetMagneticField())<0.001) return;
 
   // count event
   fNEntries->Fill(0); 
@@ -610,34 +612,42 @@ void AliAnalysisTaskSEHFQA::UserExec(Option_t */*option*/)
   TString trigclass=aod->GetFiredTriggerClasses();
   if(trigclass.Contains("C0SMH-B-NOPF-ALLNOTRD") || trigclass.Contains("C0SMH-B-NOPF-ALL")) fNEntries->Fill(5);
 
-
+  Bool_t evSelbyCentrality=kTRUE,evSelected=kTRUE;
   //select event
   if(!fCuts->IsEventSelected(aod)) {
-    // rejected for pileup
-    if(fCuts->GetWhyRejection()==1) fNEntries->Fill(1);
-    delete [] pdgdaughters;
-    return;
+    evSelected=kFALSE;
+    if(fCuts->GetWhyRejection()==1) fNEntries->Fill(1); // rejected for pileup
+    if(fCuts->GetWhyRejection()==2) evSelbyCentrality=kFALSE; //rejected by centrality
   }
+  if(evSelected || (!evSelected && !evSelbyCentrality)){ //events selected or not selected because of vtx
+    if(fCuts->GetUseCentrality()){
+      Int_t runNumber = aod->GetRunNumber();
+      Int_t stdCent = (Int_t)(fCuts->GetCentrality(aod)+0.5);
+      Int_t secondCent = (Int_t)(fCuts->GetCentrality(aod,fEstimator)+0.5);
+      Int_t mincent=stdCent-stdCent%10;
+      ((AliCounterCollection*)fOutputCounters->FindObject("stdEstimator"))->Count(Form("centralityclass:%d_%d/Run:%d",mincent,mincent+10,runNumber));
+      mincent=secondCent-secondCent%10;
+      ((AliCounterCollection*)fOutputCounters->FindObject("secondEstimator"))->Count(Form("centralityclass:%d_%d/Run:%d",mincent,mincent+10,runNumber));
+
+      if(stdCent<fCuts->GetMinCentrality() || stdCent>fCuts->GetMaxCentrality()){
+       ((TH1F*)fOutputCheckCentrality->FindObject("hNtrackletsOut"))->Fill(aod->GetTracklets()->GetNumberOfTracklets());
+       ((TH1F*)fOutputCheckCentrality->FindObject("hMultOut"))->Fill(aod->GetHeader()->GetRefMultiplicity());
+      }else{
+       ((TH1F*)fOutputCheckCentrality->FindObject("hNtrackletsIn"))->Fill(aod->GetTracklets()->GetNumberOfTracklets());
+       ((TH1F*)fOutputCheckCentrality->FindObject("hMultIn"))->Fill(aod->GetHeader()->GetRefMultiplicity());
+      }
 
-  if(fCuts->GetUseCentrality()){
-    Int_t runNumber = aod->GetRunNumber();
-    Int_t stdCent = (Int_t)(fCuts->GetCentrality(aod)+0.5);
-    Int_t secondCent = (Int_t)(fCuts->GetCentrality(aod,fEstimator)+0.5);
-    Int_t mincent=stdCent-stdCent%10;
-    ((AliCounterCollection*)fOutputCounters->FindObject("stdEstimator"))->Count(Form("centralityclass:%d_%d/Run:%d",mincent,mincent+10,runNumber));
-    mincent=secondCent-secondCent%10;
-    ((AliCounterCollection*)fOutputCounters->FindObject("secondEstimator"))->Count(Form("centralityclass:%d_%d/Run:%d",mincent,mincent+10,runNumber));
-
-    if(stdCent<fCuts->GetMinCentrality() || stdCent>fCuts->GetMaxCentrality()){
-      ((TH1F*)fOutputCheckCentrality->FindObject("hNtrackletsOut"))->Fill(aod->GetTracklets()->GetNumberOfTracklets());
-      ((TH1F*)fOutputCheckCentrality->FindObject("hMultOut"))->Fill(aod->GetHeader()->GetRefMultiplicity());
-    }else{
-      ((TH1F*)fOutputCheckCentrality->FindObject("hNtrackletsIn"))->Fill(aod->GetTracklets()->GetNumberOfTracklets());
-      ((TH1F*)fOutputCheckCentrality->FindObject("hMultIn"))->Fill(aod->GetHeader()->GetRefMultiplicity());
+      PostData(6,fOutputCheckCentrality);
+
+    } else{
+      ((TH1F*)fOutputTrack->FindObject("hNtracklets"))->Fill(aod->GetTracklets()->GetNumberOfTracklets());
+      ((TH1F*)fOutputTrack->FindObject("hMult"))->Fill(aod->GetHeader()->GetRefMultiplicity());
     }
-  } else{
-    ((TH1F*)fOutputTrack->FindObject("hNtracklets"))->Fill(aod->GetTracklets()->GetNumberOfTracklets());
-    ((TH1F*)fOutputTrack->FindObject("hMult"))->Fill(aod->GetHeader()->GetRefMultiplicity());
+  }
+
+  if(!evSelected) {
+    delete [] pdgdaughters;
+    return; //discard all events not selected (vtx and/or centrality)
   }
 
   Int_t ntracks=0;
@@ -720,7 +730,7 @@ void AliAnalysisTaskSEHFQA::UserExec(Option_t */*option*/)
       //if (pidHF->IsKaonRaw(track, "TOF"))
       ((TH2F*)fOutputPID->FindObject("hTPCsigmaK"))->Fill(TPCp,tpcres->GetNumberOfSigmas(TPCp,TPCsignal,track->GetTPCNcls(),AliPID::kKaon));
       //if (pidHF->IsPionRaw(track, "TOF"))
-         ((TH2F*)fOutputPID->FindObject("hTPCsigmaPion"))->Fill(TPCp,tpcres->GetNumberOfSigmas(TPCp,TPCsignal,track->GetTPCNcls(),AliPID::kPion));
+      ((TH2F*)fOutputPID->FindObject("hTPCsigmaPion"))->Fill(TPCp,tpcres->GetNumberOfSigmas(TPCp,TPCsignal,track->GetTPCNcls(),AliPID::kPion));
       //if (pidHF->IsProtonRaw(track,"TOF"))
       ((TH2F*)fOutputPID->FindObject("hTPCsigmaProton"))->Fill(TPCp,tpcres->GetNumberOfSigmas(TPCp,TPCsignal,track->GetTPCNcls(),AliPID::kProton));
       delete tpcres;
@@ -829,7 +839,8 @@ void AliAnalysisTaskSEHFQA::UserExec(Option_t */*option*/)
   PostData(3,fOutputTrack);
   PostData(4,fCuts);
   PostData(5,fOutputCounters);
-  PostData(6,fOutputCheckCentrality);
+  //Post data 6 done in case of centrality on
+
 }
 
 //____________________________________________________________________________
index a9116cf5c147beb076885463740c51a5f9ed2bcf..a6a2585d1c533eebbc2418ddf557062b4abe29b6 100644 (file)
@@ -27,7 +27,7 @@ AliAnalysisTaskSEHFQA* AddTaskHFQA(AliAnalysisTaskSEHFQA::DecChannel ch,TString
     cutsobjname="AnalysisCuts";
     if(stdcuts) {
       analysiscuts = new AliRDHFCutsDplustoKpipi();
-      analysiscuts->SetStandardCutsPbPb2010();
+      analysiscuts->SetStandardCutsPP2010();
     }
     else analysiscuts = (AliRDHFCutsDplustoKpipi*)filecuts->Get(cutsobjname);
     suffix="Dplus";
@@ -36,7 +36,7 @@ AliAnalysisTaskSEHFQA* AddTaskHFQA(AliAnalysisTaskSEHFQA::DecChannel ch,TString
     cutsobjname="D0toKpiCuts";
     if(stdcuts) {
       analysiscuts = new AliRDHFCutsD0toKpi();
-      analysiscuts->SetStandardCutsPbPb2010();
+      analysiscuts->SetStandardCutsPP2010();
     }
     else analysiscuts = (AliRDHFCutsD0toKpi*)filecuts->Get(cutsobjname);
     suffix="D0";
index ee99d30ce52c2743103517c3d71dca135db10ab9..80ddd65c3af7537cbf0315c5353d4f7599ccf507 100644 (file)
@@ -10,6 +10,8 @@
 #include <TLegend.h>
 #include <TPaveText.h>
 #include <TStyle.h>
+#include <TClass.h>
+#include <AliCounterCollection.h>
 
 //read the file and take list and stat
 
@@ -90,77 +92,81 @@ void DrawOutputTrack(TString partname="D0",TString textleg="",TString path="./")
   hstat->Draw("htext0");
   cst->SaveAs(Form("%s%s.png",hstat->GetName(),textleg.Data()));
 
-  /*
-  TCanvas* citscls=new TCanvas("citscls","ITS clusters");
-  citscls->SetGridy();
-  TCanvas* cspdcls=new TCanvas("cspdcls","SPD clusters");
-  cspdcls->SetGridy();
-  TCanvas* cngoodtr=new TCanvas("cngoodtr","Good tracks per event");
-  TCanvas* cptgoodtr=new TCanvas("cptgoodtr","Pt distribution good tracks");
-  TCanvas* cd0=new TCanvas("cd0","Impact parameter distribution (track selected)");
-
-
-
-  TString hname="hnClsITS";
-  TH1F* hnClsITS=(TH1F*)list->FindObject(hname);
-  if(!hnClsITS){
-    cout<<hname<<" not found"<<endl;
-  }else{
-    citscls->cd();
-    hnClsITS->Draw();
-    citscls->SaveAs(Form("%s%s.png",hname.Data(),textleg.Data()));
-  }
 
-  hname="hnClsSPD";
-  TH1F* hnClsSPD=(TH1F*)list->FindObject(hname);
-  if(!hnClsSPD){
-    cout<<hname<<" not found"<<endl;
-  }else{
-    cspdcls->cd();
-    hnClsSPD->Draw();
-    cspdcls->SaveAs(Form("%s%s.png",hname.Data(),textleg.Data()));
-  }
+}
 
-  hname="hdistrGoodTr";
-  TH1F* hngoodtr=(TH1F*)list->FindObject(hname);
-  if(!hngoodtr){
-    cout<<hname<<" not found"<<endl;
-  }else{
-    cngoodtr->cd();
-    hngoodtr->Draw();
-    cngoodtr->SaveAs(Form("%s%s.png",hname.Data(),textleg.Data()));
-  }
+//draw "pid related" histograms (list "outputPID")
+void DrawOutputPID(TString partname="D0",TString textleg="",TString path="./"){
+  gStyle->SetCanvasColor(0);
+  gStyle->SetTitleFillColor(0);
+  gStyle->SetStatColor(0);
+  gStyle->SetPalette(1);
+
+  TString listname="outputPid";
+
+  TList* list;
+  TH1F * hstat;
 
-  hname="hptGoodTr";
-  TH1F* hptgoodtr=(TH1F*)list->FindObject(hname);
-  if(!hptgoodtr){
-    cout<<hname<<" not found"<<endl;
-  }else{
-    cptgoodtr->cd();
-    hptgoodtr->Draw();
-    cptgoodtr->SaveAs(Form("%s%s.png",hname.Data(),textleg.Data()));
+  Bool_t isRead=ReadFile(list,hstat,listname,partname,path);
+  if(!isRead) return;
+  if(!list || !hstat){
+    cout<<":-( null pointers..."<<endl;
+    return;
   }
 
-  hname="hd0";
-  TH1F* hd0=(TH1F*)list->FindObject(hname);
-  if(!hd0){
-    cout<<hname<<" not found"<<endl;
-  }else{
-    cd0->cd();
-    hd0->Draw();
-    cd0->SaveAs(Form("%s%s.png",hname.Data(),textleg.Data()));
+  for(Int_t i=0;i<list->GetEntries();i++){
+    TClass* objtype=list->At(i)->IsA();
+    TString tpname=objtype->GetName();
+
+    if(tpname=="TH1F"){
+      TH1F* h=(TH1F*)list->At(i);
+
+      if(!h){
+       cout<<"Histogram "<<i<<" not found"<<endl;
+       continue;
+      }
+      //h->Scale(1./h->Integral("width"));
+      TCanvas* c=new TCanvas(Form("c%s",h->GetName()),h->GetName());
+      c->SetLogz();
+      c->cd();
+      h->Draw();
+    
+      //write
+      c->SaveAs(Form("%s.png",h->GetName()));
+      TFile* fout=new TFile(Form("%s.root",h->GetName()),"recreate");
+      fout->cd();
+      c->Write();
+    }
+  
+    if(tpname=="TH2F"){
+      TH2F* h=(TH2F*)list->At(i);
+      
+      if(!h){
+       cout<<"Histogram "<<i<<" not found"<<endl;
+       continue;
+      }
+      h->Scale(1./h->Integral("width"));
+      TCanvas* c=new TCanvas(Form("c%s",h->GetName()),h->GetName());
+      c->SetLogz();
+      c->cd();
+      
+      h->Draw("colz");
+      //write
+      c->SaveAs(Form("%s.png",h->GetName()));
+      TFile* fout=new TFile(Form("%s.root",h->GetName()),"recreate");
+      fout->cd();
+      c->Write();
+    }
   }
-  */
 }
 
-//draw "pid related" histograms (list "outputPID")
-void DrawOutputPID(TString partname="D0",TString textleg="",TString path="./"){
+void DrawOutputCentrality(TString partname="D0",TString textleg="",TString path="./"){
   gStyle->SetCanvasColor(0);
   gStyle->SetTitleFillColor(0);
   gStyle->SetStatColor(0);
   gStyle->SetPalette(1);
 
-  TString listname="outputPid";
+  TString listname="outputCentrCheck";
 
   TList* list;
   TH1F * hstat;
@@ -171,7 +177,7 @@ void DrawOutputPID(TString partname="D0",TString textleg="",TString path="./"){
     cout<<":-( null pointers..."<<endl;
     return;
   }
-
+  
   for(Int_t i=0;i<list->GetEntries();i++){
     TH1F* h=(TH1F*)list->At(i);
     if(!h){
@@ -180,8 +186,70 @@ void DrawOutputPID(TString partname="D0",TString textleg="",TString path="./"){
     }
     TCanvas* c=new TCanvas(Form("c%s",h->GetName()),h->GetName());
     c->cd();
-    if(i<3)h->Draw();
-    else h->Draw("colz");
+    c->SetGrid();
+    h->Draw();
+    c->SaveAs(Form("%s%s.png",c->GetName(),textleg.Data()));
+  }
+  
+  TCanvas* cst=new TCanvas("cst","Stat");
+  cst->SetGridy();
+  cst->cd();
+  hstat->Draw("htext0");
+  cst->SaveAs(Form("%s%s.png",hstat->GetName(),textleg.Data()));
+  
+  listname="countersCentrality";
+
+  isRead=ReadFile(list,hstat,listname,partname,path);
+  if(!isRead) return;
+  if(!list || !hstat){
+    cout<<":-( null pointers..."<<endl;
+    return;
+  }
+  for(Int_t i=0;i<list->GetEntries();i++){
+    AliCounterCollection* coll=(AliCounterCollection*)list->At(i);
+    
+    coll->SortRubric("run");//sort by run number
+    //coll->PrintKeyWords();
+    Int_t ncentr=10;//check this
+    TH1F* h020=0x0;
+    TH1F* h2080=0x0;
+    TCanvas *ccent=new TCanvas(Form("ccent%s",coll->GetName()),Form("Centrality vs Run (%s)",coll->GetName()),1400,800);
+    ccent->Divide(5,3);
+
+    for(Int_t ic=0;ic<ncentr;ic++){
+
+      TH1F* h=(TH1F*)coll->Get("run",Form("centralityclass:%d_%d",ic*10,ic*10+10));
+      h->SetName(Form("h%d%d",i,ic));
+      if(ic>=0 && ic<=1){ //0-20
+       if(!h020) {
+         h020=(TH1F*)h->Clone(Form("h020%s",coll->GetName()));
+         h020->SetTitle(Form("Centrality 0-20 %s",coll->GetName()));
+       }
+       else h020->Add(h);
+      }
+      if(ic>=2 && ic<=7){ //20-80
+       if(!h2080) {
+         h2080=(TH1F*)h->Clone(Form("h2080%s",coll->GetName()));
+         h2080->SetTitle(Form("Centrality 20-80 %s",coll->GetName()));
+       }
+       else h2080->Add(h);
+      }
+
+      ccent->cd(ic+1);
+      h->DrawClone();
+      // ccent->cd(1);
+      // h->SetLineColor(ic+1);
+      // if(ic==0)h->DrawClone();
+      // else h->DrawClone("sames");
+    }
+
+    ccent->cd(ncentr+1);
+    h020->DrawClone();
+
+    ccent->cd(ncentr+2);
+    h2080->DrawClone();
+
+    ccent->SaveAs(Form("%s%s.png",ccent->GetName(),textleg.Data()));
   }
 
 }