]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Updates in track selection histos (Andrea Festanti)
authorfprino <fprino@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 15 May 2013 21:28:15 +0000 (21:28 +0000)
committerfprino <fprino@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 15 May 2013 21:28:15 +0000 (21:28 +0000)
PWGHF/vertexingHF/AliAnalysisTaskSEHFQA.cxx
PWGHF/vertexingHF/AliAnalysisTaskSEHFQA.h
PWGHF/vertexingHF/macros/AddTaskHFQA.C

index ab674d3d6f48c6cb3f0e3236665c20f2b34a8e29..285e66dc20cd8136139aaa01105357a12e8c9496 100644 (file)
@@ -92,7 +92,8 @@ AliAnalysisTaskSEHFQA::AliAnalysisTaskSEHFQA():AliAnalysisTaskSE(),
   fReadMC(kFALSE),
   fSimpleMode(kFALSE),
   fUseSelectionBit(kTRUE),
-  fOnOff()
+  fOnOff(),
+  fFillDistrTrackEffChecks(kFALSE)
 {
   //default constructor
   fOnOff[0]=kTRUE;
@@ -120,7 +121,8 @@ AliAnalysisTaskSEHFQA::AliAnalysisTaskSEHFQA(const char *name, AliAnalysisTaskSE
   fReadMC(kFALSE),
   fSimpleMode(kFALSE),
   fUseSelectionBit(kTRUE),
-  fOnOff()
+  fOnOff(),
+  fFillDistrTrackEffChecks(kFALSE)
 {
   //constructor
 
@@ -498,96 +500,128 @@ void AliAnalysisTaskSEHFQA::UserCreateOutputObjects()
     TH1F* hd0TracksTPCITSSPDany=new TH1F(hname.Data(),"Impact parameter (rphi) distribution of AOD tracks TPC+ITScuts+SPDany; d_{0rphi}[cm];Entries",200,-0.5,0.5);
 
 
-    hname="hPtDaughters";
-    TH1F *hPtDaughters=new TH1F(hname.Data(),"p_{T} distributions of the daughter tracks;p_{T} [GeV/c];Entries",200,0.,20.);
+    if(fFillDistrTrackEffChecks){
+      hname="hPtDaughters";
+      TH1F *hPtDaughters=new TH1F(hname.Data(),"p_{T} distributions of the daughter tracks;p_{T} [GeV/c];Entries",100,0.,10.);
     
-    hname="hPhiDaughters";
-    TH1F *hPhiDaughters=new TH1F(hname.Data(),"#phi distribution of the daughter tracks;#phi [rad];Entries",100,0.,2*(TMath::Pi()));
+      hname="hPhiDaughters";
+      TH1F *hPhiDaughters=new TH1F(hname.Data(),"#phi distribution of the daughter tracks;#phi [rad];Entries",100,0.,2*(TMath::Pi()));
     
-    hname="hEtaDaughters";
-    TH1F *hEtaDaughters=new TH1F(hname.Data(),"#eta distribution of the daughter tracks;#eta;Entries",100,-1.,1.);
+      hname="hEtaDaughters";
+      TH1F *hEtaDaughters=new TH1F(hname.Data(),"#eta distribution of the daughter tracks;#eta;Entries",80,-2.,2.);
     
-    hname="hEtavsPhiDaughters";
-    TH2F *hEtavsPhiDaughters=new TH2F(hname.Data(),"#eta vs #phi distribution of the daughter tracks;#phi;#eta",100,0.,2*(TMath::Pi()),100,-1.,1.);
+      hname="hEtavsPhiDaughters";
+      TH2F *hEtavsPhiDaughters=new TH2F(hname.Data(),"#eta vs #phi distribution of the daughter tracks;#phi;#eta",100,0.,2*(TMath::Pi()),80,-2.,2.);
     
-    hname="hNTPCclsvsPtDaughters";
-    TH2F *hNTPCclsvsPtDaughters=new TH2F(hname.Data(),"N TPC clusters vs p_{T} distribution of the daughter tracks;p_{T} [GeV/c];N TPC cls",200,0.,20,100,0.,200.);
+      hname="hNTPCclsvsPtDaughters";
+      TH2F *hNTPCclsvsPtDaughters=new TH2F(hname.Data(),"N TPC clusters vs p_{T} distribution of the daughter tracks;p_{T} [GeV/c];N TPC cls",100,0.,10.,80,-0.5,160.5);
     
-    hname="hNTPCclsvsPhiDaughters";
-    TH2F *hNTPCclsvsPhiDaughters=new TH2F(hname.Data(),"N TPC clusters vs #phi distribution of the daughter tracks;#phi [rad];N TPC cls",100,0.,2*(TMath::Pi()),100,0.,200.);
-    hname="hNTPCclsvsEtaDaughters";
-    TH2F *hNTPCclsvsEtaDaughters=new TH2F(hname.Data(),"N TPC clusters vs #eta distribution of the daughter tracks;#eta;N TPC cls",100,-1.,1.,100,0.,200.);
+      hname="hNTPCclsvsPhiDaughters";
+      TH2F *hNTPCclsvsPhiDaughters=new TH2F(hname.Data(),"N TPC clusters vs #phi distribution of the daughter tracks;#phi [rad];N TPC cls",100,0.,2*(TMath::Pi()),80,-0.5,160.5);
+      hname="hNTPCclsvsEtaDaughters";
+      TH2F *hNTPCclsvsEtaDaughters=new TH2F(hname.Data(),"N TPC clusters vs #eta distribution of the daughter tracks;#eta;N TPC cls",80,-2.,2.,80,-0.5,160.5);
  
-    hname="hRatioCRowsOverFclsvsPtDaughters";
-    TH2F *hRatioCRowsOverFclsvsPtDaughters=new TH2F(hname.Data(),"CrossedRows/FindableClusters vs p_{T} distribution of the daughter tracks;p_{T} [GeV/c];CRows/FCls",200,0.,20,100,0.,1.);
+      hname="hRatioCRowsOverFclsvsPtDaughters";
+      TH2F *hRatioCRowsOverFclsvsPtDaughters=new TH2F(hname.Data(),"CrossedRows/FindableClusters vs p_{T} distribution of the daughter tracks;p_{T} [GeV/c];CRows/FCls",100,0.,10,100,0.,1.);
    
-    hname="hRatioCRowsOverFclsvsPhiDaughters";
-    TH2F *hRatioCRowsOverFclsvsPhiDaughters=new TH2F(hname.Data(),"CrossedRows/FindableClusters vs #phi distribution of the daughter tracks;#phi [rad];CRows/FCls",100,0.,2*(TMath::Pi()),100,0.,1.);
+      hname="hRatioCRowsOverFclsvsPhiDaughters";
+      TH2F *hRatioCRowsOverFclsvsPhiDaughters=new TH2F(hname.Data(),"CrossedRows/FindableClusters vs #phi distribution of the daughter tracks;#phi [rad];CRows/FCls",100,0.,2*(TMath::Pi()),100,0.,1.);
     
-    hname="hRatioCRowsOverFclsvsEtaDaughters";
-    TH2F *hRatioCRowsOverFclsvsEtaDaughters=new TH2F(hname.Data(),"CrossedRows/FindableClusters vs #eta distribution of the daughter tracks;#eta;CRows/FCls",100,-1.,1.,100,0.,1.);
+      hname="hRatioCRowsOverFclsvsEtaDaughters";
+      TH2F *hRatioCRowsOverFclsvsEtaDaughters=new TH2F(hname.Data(),"CrossedRows/FindableClusters vs #eta distribution of the daughter tracks;#eta;CRows/FCls",80,-2.,2.,100,0.,1.);
     
-    hname="hNITSclsvsPtDaughters";
-    TH2F *hNITSclsvsPtDaughters=new TH2F(hname.Data(),"N ITS clusters vs p_{T} distribution of the daughter tracks;p_{T} [GeV/c];N ITS cls",200,0.,20,7,0.,7.);
+      hname="hNITSclsvsPtDaughters";
+      TH2F *hNITSclsvsPtDaughters=new TH2F(hname.Data(),"N ITS clusters vs p_{T} distribution of the daughter tracks;p_{T} [GeV/c];N ITS cls",100,0.,10,7,-0.5,6.5);
     
-    hname="hNITSclsvsPhiDaughters";
-    TH2F *hNITSclsvsPhiDaughters=new TH2F(hname.Data(),"N ITS clusters vs #phi distribution of the daughter tracks;#phi [rad];N TPC cls",100,0.,2*(TMath::Pi()),7,0.,7.);
+      hname="hNITSclsvsPhiDaughters";
+      TH2F *hNITSclsvsPhiDaughters=new TH2F(hname.Data(),"N ITS clusters vs #phi distribution of the daughter tracks;#phi [rad];N ITS cls",100,0.,2*(TMath::Pi()),7,-0.5,6.5);
     
-    hname="hNITSclsvsEtaDaughters";
-    TH2F *hNITSclsvsEtaDaughters=new TH2F(hname.Data(),"N ITS clusters vs #eta distribution of the daughter tracks;#eta;N TPC cls",100,-1.,1.,7,0.,7.);
+      hname="hNITSclsvsEtaDaughters";
+      TH2F *hNITSclsvsEtaDaughters=new TH2F(hname.Data(),"N ITS clusters vs #eta distribution of the daughter tracks;#eta;N ITS cls",80,-2.,2.,7,-0.5,6.5);
     
-    hname="hSPDclsDaughters";
-    TH1I *hSPDclsDaughters = new TH1I(hname.Data(),"N SPD points distrubution; ;Entries",4,0,4);
-    hSPDclsDaughters->GetXaxis()->SetBinLabel(1, "no SPD");
-    hSPDclsDaughters->GetXaxis()->SetBinLabel(2, "kOnlyFirst");
-    hSPDclsDaughters->GetXaxis()->SetBinLabel(3, "kOnlySecond");
-    hSPDclsDaughters->GetXaxis()->SetBinLabel(4, "kBoth");
-
-    hname="hPtAllTracks";
-    TH1F *hPtAllTracks=new TH1F(hname.Data(),"p_{T} distributions of the AOD tracks (ID>0);p_{T} [GeV/c];Entries",200,0.,20.);
+      hname="hSPDclsDaughters";
+      TH1I *hSPDclsDaughters = new TH1I(hname.Data(),"N SPD points distrubution; ;Entries",4,0,4);
+      hSPDclsDaughters->GetXaxis()->SetBinLabel(1, "no SPD");
+      hSPDclsDaughters->GetXaxis()->SetBinLabel(2, "kOnlyFirst");
+      hSPDclsDaughters->GetXaxis()->SetBinLabel(3, "kOnlySecond");
+      hSPDclsDaughters->GetXaxis()->SetBinLabel(4, "kBoth");
+
+      hname="hPtAllTracks";
+      TH1F *hPtAllTracks=new TH1F(hname.Data(),"p_{T} distributions of the AOD tracks (ID>0);p_{T} [GeV/c];Entries",100,0.,10.);
     
-    hname="hPhiAllTracks";
-    TH1F *hPhiAllTracks=new TH1F(hname.Data(),"#phi distribution of the AOD tracks (ID>0);#phi [rad];Entries",100,0.,2*(TMath::Pi()));
+      hname="hPhiAllTracks";
+      TH1F *hPhiAllTracks=new TH1F(hname.Data(),"#phi distribution of the AOD tracks (ID>0);#phi [rad];Entries",100,0.,2*(TMath::Pi()));
     
-    hname="hEtaAllTracks";
-    TH1F *hEtaAllTracks=new TH1F(hname.Data(),"#eta distribution of the AOD tracks (ID>0);#eta;Entries",100,-1.,1.);
+      hname="hEtaAllTracks";
+      TH1F *hEtaAllTracks=new TH1F(hname.Data(),"#eta distribution of the AOD tracks (ID>0);#eta;Entries",80,-2.,2.);
     
-    hname="hEtavsPhiAllTracks";
-    TH2F *hEtavsPhiAllTracks=new TH2F(hname.Data(),"#eta vs #phi distribution of the AOD tracks (ID>0);#phi;#eta",100,0.,2*(TMath::Pi()),100,-1.,1.);
+      hname="hEtavsPhiAllTracks";
+      TH2F *hEtavsPhiAllTracks=new TH2F(hname.Data(),"#eta vs #phi distribution of the AOD tracks (ID>0);#phi;#eta",100,0.,2*(TMath::Pi()),80,-2.,2.);
     
-    hname="hNTPCclsvsPtAllTracks";
-    TH2F *hNTPCclsvsPtAllTracks=new TH2F(hname.Data(),"N TPC clusters vs p_{T} distribution of the AOD tracks (ID>0);p_{T} [GeV/c];N TPC cls",200,0.,20,100,0.,200.);
+      hname="hNTPCclsvsPtAllTracks";
+      TH2F *hNTPCclsvsPtAllTracks=new TH2F(hname.Data(),"N TPC clusters vs p_{T} distribution of the AOD tracks (ID>0);p_{T} [GeV/c];N TPC cls",100,0.,10,80,-0.5,160.5);
     
-    hname="hNTPCclsvsPhiAllTracks";
-    TH2F *hNTPCclsvsPhiAllTracks=new TH2F(hname.Data(),"N TPC clusters vs #phi distribution of the AOD tracks (ID>0);#phi [rad];N TPC cls",100,0.,2*(TMath::Pi()),100,0.,200.);
-    hname="hNTPCclsvsEtaAllTracks";
-    TH2F *hNTPCclsvsEtaAllTracks=new TH2F(hname.Data(),"N TPC clusters vs #eta distribution of the AOD tracks (ID>0);#eta;N TPC cls",100,-1.,1.,100,0.,200.);
+      hname="hNTPCclsvsPhiAllTracks";
+      TH2F *hNTPCclsvsPhiAllTracks=new TH2F(hname.Data(),"N TPC clusters vs #phi distribution of the AOD tracks (ID>0);#phi [rad];N TPC cls",100,0.,2*(TMath::Pi()),80,-0.5,160.5);
+      hname="hNTPCclsvsEtaAllTracks";
+      TH2F *hNTPCclsvsEtaAllTracks=new TH2F(hname.Data(),"N TPC clusters vs #eta distribution of the AOD tracks (ID>0);#eta;N TPC cls",80,-2.,2.,80,-0.5,160.5);
  
-    hname="hRatioCRowsOverFclsvsPtAllTracks";
-    TH2F *hRatioCRowsOverFclsvsPtAllTracks=new TH2F(hname.Data(),"CrossedRows/FindableClusters vs p_{T} distribution of the AOD tracks (ID>0);p_{T} [GeV/c];CRows/FCls",200,0.,20,100,0.,1.);
+      hname="hRatioCRowsOverFclsvsPtAllTracks";
+      TH2F *hRatioCRowsOverFclsvsPtAllTracks=new TH2F(hname.Data(),"CrossedRows/FindableClusters vs p_{T} distribution of the AOD tracks (ID>0);p_{T} [GeV/c];CRows/FCls",100,0.,10,100,0.,1.);
    
-    hname="hRatioCRowsOverFclsvsPhiAllTracks";
-    TH2F *hRatioCRowsOverFclsvsPhiAllTracks=new TH2F(hname.Data(),"CrossedRows/FindableClusters vs #phi distribution of the AOD tracks (ID>0);#phi [rad];CRows/FCls",100,0.,2*(TMath::Pi()),100,0.,1.);
+      hname="hRatioCRowsOverFclsvsPhiAllTracks";
+      TH2F *hRatioCRowsOverFclsvsPhiAllTracks=new TH2F(hname.Data(),"CrossedRows/FindableClusters vs #phi distribution of the AOD tracks (ID>0);#phi [rad];CRows/FCls",100,0.,2*(TMath::Pi()),100,0.,1.);
     
-    hname="hRatioCRowsOverFclsvsEtaAllTracks";
-    TH2F *hRatioCRowsOverFclsvsEtaAllTracks=new TH2F(hname.Data(),"CrossedRows/FindableClusters vs #eta distribution of the AOD tracks (ID>0);#eta;CRows/FCls",100,-1.,1.,100,0.,1.);
+      hname="hRatioCRowsOverFclsvsEtaAllTracks";
+      TH2F *hRatioCRowsOverFclsvsEtaAllTracks=new TH2F(hname.Data(),"CrossedRows/FindableClusters vs #eta distribution of the AOD tracks (ID>0);#eta;CRows/FCls",80,-2.,2.,100,0.,1.);
     
-    hname="hNITSclsvsPtAllTracks";
-    TH2F *hNITSclsvsPtAllTracks=new TH2F(hname.Data(),"N ITS clusters vs p_{T} distribution of the AOD tracks (ID>0);p_{T} [GeV/c];N ITS cls",200,0.,20,7,0.,7.);
+      hname="hNITSclsvsPtAllTracks";
+      TH2F *hNITSclsvsPtAllTracks=new TH2F(hname.Data(),"N ITS clusters vs p_{T} distribution of the AOD tracks (ID>0);p_{T} [GeV/c];N ITS cls",100,0.,10,7,-0.5,6.5);
     
-    hname="hNITSclsvsPhiAllTracks";
-    TH2F *hNITSclsvsPhiAllTracks=new TH2F(hname.Data(),"N ITS clusters vs #phi distribution of the AOD tracks (ID>0);#phi [rad];N TPC cls",100,0.,2*(TMath::Pi()),7,0.,7.);
+      hname="hNITSclsvsPhiAllTracks";
+      TH2F *hNITSclsvsPhiAllTracks=new TH2F(hname.Data(),"N ITS clusters vs #phi distribution of the AOD tracks (ID>0);#phi [rad];N ITS cls",100,0.,2*(TMath::Pi()),7,-0.5,6.5);
     
-    hname="hNITSclsvsEtaAllTracks";
-    TH2F *hNITSclsvsEtaAllTracks=new TH2F(hname.Data(),"N ITS clusters vs #eta distribution of the AOD tracks (ID>0);#eta;N TPC cls",100,-1.,1.,7,0.,7.);
+      hname="hNITSclsvsEtaAllTracks";
+      TH2F *hNITSclsvsEtaAllTracks=new TH2F(hname.Data(),"N ITS clusters vs #eta distribution of the AOD tracks (ID>0);#eta;N ITS cls",80,-2.,2.,7,-0.5,6.5);
     
-    hname="hSPDclsAllTracks";
-    TH1I *hSPDclsAllTracks = new TH1I(hname.Data(),"N SPD points distrubution AOD tracks (ID>0); ;Entries",4,0,4);
-    hSPDclsAllTracks->GetXaxis()->SetBinLabel(1, "no SPD");
-    hSPDclsAllTracks->GetXaxis()->SetBinLabel(2, "kOnlyFirst");
-    hSPDclsAllTracks->GetXaxis()->SetBinLabel(3, "kOnlySecond");
-    hSPDclsAllTracks->GetXaxis()->SetBinLabel(4, "kBoth");
+      hname="hSPDclsAllTracks";
+      TH1I *hSPDclsAllTracks = new TH1I(hname.Data(),"N SPD points distrubution AOD tracks (ID>0); ;Entries",4,0,4);
+      hSPDclsAllTracks->GetXaxis()->SetBinLabel(1, "no SPD");
+      hSPDclsAllTracks->GetXaxis()->SetBinLabel(2, "kOnlyFirst");
+      hSPDclsAllTracks->GetXaxis()->SetBinLabel(3, "kOnlySecond");
+      hSPDclsAllTracks->GetXaxis()->SetBinLabel(4, "kBoth");
+
+      fOutputTrack->Add(hPtDaughters);
+      fOutputTrack->Add(hPhiDaughters);
+      fOutputTrack->Add(hEtaDaughters);
+      fOutputTrack->Add(hEtavsPhiDaughters);
+      fOutputTrack->Add(hNTPCclsvsPtDaughters);
+      fOutputTrack->Add(hNTPCclsvsPhiDaughters);
+      fOutputTrack->Add(hNTPCclsvsEtaDaughters);
+      fOutputTrack->Add(hRatioCRowsOverFclsvsPtDaughters);
+      fOutputTrack->Add(hRatioCRowsOverFclsvsPhiDaughters);
+      fOutputTrack->Add(hRatioCRowsOverFclsvsEtaDaughters);
+      fOutputTrack->Add(hNITSclsvsPtDaughters);
+      fOutputTrack->Add(hNITSclsvsPhiDaughters);
+      fOutputTrack->Add(hNITSclsvsEtaDaughters);
+      fOutputTrack->Add(hSPDclsDaughters);
+      fOutputTrack->Add(hPtAllTracks);
+      fOutputTrack->Add(hPhiAllTracks);
+      fOutputTrack->Add(hEtaAllTracks);
+      fOutputTrack->Add(hEtavsPhiAllTracks);
+      fOutputTrack->Add(hNTPCclsvsPtAllTracks);
+      fOutputTrack->Add(hNTPCclsvsPhiAllTracks);
+      fOutputTrack->Add(hNTPCclsvsEtaAllTracks);
+      fOutputTrack->Add(hRatioCRowsOverFclsvsPtAllTracks);
+      fOutputTrack->Add(hRatioCRowsOverFclsvsPhiAllTracks);
+      fOutputTrack->Add(hRatioCRowsOverFclsvsEtaAllTracks);
+      fOutputTrack->Add(hNITSclsvsPtAllTracks);
+      fOutputTrack->Add(hNITSclsvsPhiAllTracks);
+      fOutputTrack->Add(hNITSclsvsEtaAllTracks);
+      fOutputTrack->Add(hSPDclsAllTracks);
 
+    }
+    
     fOutputTrack->Add(hnClsITS);
     fOutputTrack->Add(hnClsITSselTr);
     fOutputTrack->Add(hnClsITSSA);
@@ -603,34 +637,7 @@ void AliAnalysisTaskSEHFQA::UserCreateOutputObjects()
     fOutputTrack->Add(hd0TracksTPCITSSPDany);
     fOutputTrack->Add(hd0dau);
     fOutputTrack->Add(hd0zdau);
-    fOutputTrack->Add(hPtDaughters);
-    fOutputTrack->Add(hPhiDaughters);
-    fOutputTrack->Add(hEtaDaughters);
-    fOutputTrack->Add(hEtavsPhiDaughters);
-    fOutputTrack->Add(hNTPCclsvsPtDaughters);
-    fOutputTrack->Add(hNTPCclsvsPhiDaughters);
-    fOutputTrack->Add(hNTPCclsvsEtaDaughters);
-    fOutputTrack->Add(hRatioCRowsOverFclsvsPtDaughters);
-    fOutputTrack->Add(hRatioCRowsOverFclsvsPhiDaughters);
-    fOutputTrack->Add(hRatioCRowsOverFclsvsEtaDaughters);
-    fOutputTrack->Add(hNITSclsvsPtDaughters);
-    fOutputTrack->Add(hNITSclsvsPhiDaughters);
-    fOutputTrack->Add(hNITSclsvsEtaDaughters);
-    fOutputTrack->Add(hSPDclsDaughters);
-    fOutputTrack->Add(hPtAllTracks);
-    fOutputTrack->Add(hPhiAllTracks);
-    fOutputTrack->Add(hEtaAllTracks);
-    fOutputTrack->Add(hEtavsPhiAllTracks);
-    fOutputTrack->Add(hNTPCclsvsPtAllTracks);
-    fOutputTrack->Add(hNTPCclsvsPhiAllTracks);
-    fOutputTrack->Add(hNTPCclsvsEtaAllTracks);
-    fOutputTrack->Add(hRatioCRowsOverFclsvsPtAllTracks);
-    fOutputTrack->Add(hRatioCRowsOverFclsvsPhiAllTracks);
-    fOutputTrack->Add(hRatioCRowsOverFclsvsEtaAllTracks);
-    fOutputTrack->Add(hNITSclsvsPtAllTracks);
-    fOutputTrack->Add(hNITSclsvsPhiAllTracks);
-    fOutputTrack->Add(hNITSclsvsEtaAllTracks);
-    fOutputTrack->Add(hSPDclsAllTracks);
+    
 
     if(fReadMC){
       hname="hdistrFakeTr";
@@ -1495,30 +1502,6 @@ void AliAnalysisTaskSEHFQA::UserExec(Option_t */*option*/)
          ((TH1F*)fOutputTrack->FindObject("hd0TracksTPCITSSPDany"))->Fill(d0z0[0]);
        }
       }
-
-      ((TH1F*)fOutputTrack->FindObject("hPtAllTracks"))->Fill(track->Pt());
-      ((TH1F*)fOutputTrack->FindObject("hPhiAllTracks"))->Fill(track->Phi());
-      ((TH1F*)fOutputTrack->FindObject("hEtaAllTracks"))->Fill(track->Eta());
-      ((TH2F*)fOutputTrack->FindObject("hEtavsPhiAllTracks"))->Fill(track->Phi(),track->Eta());
-      ((TH2F*)fOutputTrack->FindObject("hNTPCclsvsPtAllTracks"))->Fill(track->Pt(),track->GetTPCNcls());
-      ((TH2F*)fOutputTrack->FindObject("hNTPCclsvsPhiAllTracks"))->Fill(track->Phi(),track->GetTPCNcls());
-      ((TH2F*)fOutputTrack->FindObject("hNTPCclsvsEtaAllTracks"))->Fill(track->Eta(),track->GetTPCNcls());
-      ((TH2F*)fOutputTrack->FindObject("hRatioCRowsOverFclsvsPtAllTracks"))->Fill(track->Pt(),ratioCrossedRowsOverFindableClustersTPC);
-      ((TH2F*)fOutputTrack->FindObject("hRatioCRowsOverFclsvsPhiAllTracks"))->Fill(track->Phi(),ratioCrossedRowsOverFindableClustersTPC);
-      ((TH2F*)fOutputTrack->FindObject("hRatioCRowsOverFclsvsEtaAllTracks"))->Fill(track->Eta(),ratioCrossedRowsOverFindableClustersTPC);
-     
-      if(!(track->HasPointOnITSLayer(0)) && !(track->HasPointOnITSLayer(1))){ //no SPD points
-       ((TH1I*)fOutputTrack->FindObject("hSPDclsAllTracks"))->Fill(0);
-      } 
-      if(track->HasPointOnITSLayer(0) && !(track->HasPointOnITSLayer(1))){ //kOnlyFirst
-       ((TH1I*)fOutputTrack->FindObject("hSPDclsAllTracks"))->Fill(1);
-      } 
-      if(!(track->HasPointOnITSLayer(0)) && track->HasPointOnITSLayer(1)){ //kOnlySecond
-       ((TH1I*)fOutputTrack->FindObject("hSPDclsAllTracks"))->Fill(2);
-      }
-      if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1)){ //kBoth
-       ((TH1I*)fOutputTrack->FindObject("hSPDclsAllTracks"))->Fill(3);
-      } 
       
       AliAODPid *pid = track->GetDetPid();
       if(!pid && fDebug>1) cout<<"No AliAODPid found"<<endl;
@@ -1659,9 +1642,37 @@ void AliAnalysisTaskSEHFQA::UserExec(Option_t */*option*/)
        ((TH1F*)fOutputTrack->FindObject("hnClsITS"))->Fill(nclsTot);
        ((TH1F*)fOutputTrack->FindObject("hnClsSPD"))->Fill(nclsSPD);
 
-       ((TH2F*)fOutputTrack->FindObject("hNITSclsvsPtAllTracks"))->Fill(track->Pt(), nclsTot);
-       ((TH2F*)fOutputTrack->FindObject("hNITSclsvsPhiAllTracks"))->Fill(track->Phi(), nclsTot);
-       ((TH2F*)fOutputTrack->FindObject("hNITSclsvsEtaAllTracks"))->Fill(track->Eta(), nclsTot);
+       if(fFillDistrTrackEffChecks && track->GetStatus()&AliESDtrack::kITSrefit &&
+          track->GetStatus()&AliESDtrack::kTPCrefit){
+
+         ((TH1F*)fOutputTrack->FindObject("hPtAllTracks"))->Fill(track->Pt());
+         ((TH1F*)fOutputTrack->FindObject("hPhiAllTracks"))->Fill(track->Phi());
+         ((TH1F*)fOutputTrack->FindObject("hEtaAllTracks"))->Fill(track->Eta());
+         ((TH2F*)fOutputTrack->FindObject("hEtavsPhiAllTracks"))->Fill(track->Phi(),track->Eta());
+         ((TH2F*)fOutputTrack->FindObject("hNTPCclsvsPtAllTracks"))->Fill(track->Pt(),track->GetTPCNcls());
+         ((TH2F*)fOutputTrack->FindObject("hNTPCclsvsPhiAllTracks"))->Fill(track->Phi(),track->GetTPCNcls());
+         ((TH2F*)fOutputTrack->FindObject("hNTPCclsvsEtaAllTracks"))->Fill(track->Eta(),track->GetTPCNcls());
+         ((TH2F*)fOutputTrack->FindObject("hRatioCRowsOverFclsvsPtAllTracks"))->Fill(track->Pt(),ratioCrossedRowsOverFindableClustersTPC);
+         ((TH2F*)fOutputTrack->FindObject("hRatioCRowsOverFclsvsPhiAllTracks"))->Fill(track->Phi(),ratioCrossedRowsOverFindableClustersTPC);
+         ((TH2F*)fOutputTrack->FindObject("hRatioCRowsOverFclsvsEtaAllTracks"))->Fill(track->Eta(),ratioCrossedRowsOverFindableClustersTPC);
+         
+         if(!(track->HasPointOnITSLayer(0)) && !(track->HasPointOnITSLayer(1))){ //no SPD points
+           ((TH1I*)fOutputTrack->FindObject("hSPDclsAllTracks"))->Fill(0);
+         } 
+         if(track->HasPointOnITSLayer(0) && !(track->HasPointOnITSLayer(1))){ //kOnlyFirst
+           ((TH1I*)fOutputTrack->FindObject("hSPDclsAllTracks"))->Fill(1);
+         } 
+         if(!(track->HasPointOnITSLayer(0)) && track->HasPointOnITSLayer(1)){ //kOnlySecond
+           ((TH1I*)fOutputTrack->FindObject("hSPDclsAllTracks"))->Fill(2);
+         }
+         if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1)){ //kBoth
+           ((TH1I*)fOutputTrack->FindObject("hSPDclsAllTracks"))->Fill(3);
+         } 
+         ((TH2F*)fOutputTrack->FindObject("hNITSclsvsPtAllTracks"))->Fill(track->Pt(), nclsTot);
+         ((TH2F*)fOutputTrack->FindObject("hNITSclsvsPhiAllTracks"))->Fill(track->Phi(), nclsTot);
+         ((TH2F*)fOutputTrack->FindObject("hNITSclsvsEtaAllTracks"))->Fill(track->Eta(), nclsTot);
+
+         }
 
        if(track->Pt()>0.3 &&
           TMath::Abs(track->Eta())<0.8 &&
@@ -1809,39 +1820,47 @@ void AliAnalysisTaskSEHFQA::UserExec(Option_t */*option*/)
            if (fCuts->IsSelected(d,AliRDHFCuts::kAll,aod) && fOnOff[1]){
              fNEntries->Fill(3); //candidates passing analysis cuts
 
-           ((TH1F*)fOutputTrack->FindObject("hPtDaughters"))->Fill(track->Pt());
-           ((TH1F*)fOutputTrack->FindObject("hPhiDaughters"))->Fill(track->Phi());
-           ((TH1F*)fOutputTrack->FindObject("hEtaDaughters"))->Fill(track->Eta());
-           ((TH2F*)fOutputTrack->FindObject("hEtavsPhiDaughters"))->Fill(track->Phi(),track->Eta());
-
-           ((TH2F*)fOutputTrack->FindObject("hNTPCclsvsPtDaughters"))->Fill(track->Pt(),track->GetTPCNcls());
-           ((TH2F*)fOutputTrack->FindObject("hNTPCclsvsPhiDaughters"))->Fill(track->Phi(),track->GetTPCNcls());
-           ((TH2F*)fOutputTrack->FindObject("hNTPCclsvsEtaDaughters"))->Fill(track->Eta(),track->GetTPCNcls());
-           Double_t nTPCCrossedRows = track->GetTPCClusterInfo(2,1);
-           Double_t ratioCrossedRowsOverFcls = (nTPCCrossedRows)/(track->GetTPCNclsF());
-           ((TH2F*)fOutputTrack->FindObject("hRatioCRowsOverFclsvsPtDaughters"))->Fill(track->Pt(),ratioCrossedRowsOverFcls);
-           ((TH2F*)fOutputTrack->FindObject("hRatioCRowsOverFclsvsPhiDaughters"))->Fill(track->Phi(),ratioCrossedRowsOverFcls);
-           ((TH2F*)fOutputTrack->FindObject("hRatioCRowsOverFclsvsEtaDaughters"))->Fill(track->Eta(),ratioCrossedRowsOverFcls);
-           
-           Int_t nPointsITS = 0;
-           for (Int_t il=0; il<6; il++){ 
-             if(track->HasPointOnITSLayer(il)) nPointsITS++;
-           }
-           ((TH2F*)fOutputTrack->FindObject("hNITSclsvsPtDaughters"))->Fill(track->Pt(), nPointsITS);
-           ((TH2F*)fOutputTrack->FindObject("hNITSclsvsPhiDaughters"))->Fill(track->Phi(), nPointsITS);
-           ((TH2F*)fOutputTrack->FindObject("hNITSclsvsEtaDaughters"))->Fill(track->Eta(), nPointsITS);
-           if(!(track->HasPointOnITSLayer(0)) && !(track->HasPointOnITSLayer(1))){ //no SPD points
-             ((TH1I*)fOutputTrack->FindObject("hSPDclsDaughters"))->Fill(0);
-           } 
-           if(track->HasPointOnITSLayer(0) && !(track->HasPointOnITSLayer(1))){ //kOnlyFirst
-             ((TH1I*)fOutputTrack->FindObject("hSPDclsDaughters"))->Fill(1);
-           } 
-           if(!(track->HasPointOnITSLayer(0)) && track->HasPointOnITSLayer(1)){ //kOnlySecond
-             ((TH1I*)fOutputTrack->FindObject("hSPDclsDaughters"))->Fill(2);
-           }
-           if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1)){ //kBoth
-             ((TH1I*)fOutputTrack->FindObject("hSPDclsDaughters"))->Fill(3);
-           } 
+             if(fFillDistrTrackEffChecks){
+               Int_t nITScls = 0;
+               Int_t nSPDcls = 0;
+               Double_t nTPCCrossedRows = track->GetTPCClusterInfo(2,1);
+               Double_t ratioCrossedRowsOverFcls = (nTPCCrossedRows)/(track->GetTPCNclsF());
+               for(Int_t l=0;l<6;l++) {
+                 if(TESTBIT(track->GetITSClusterMap(),l)) {
+                   nITScls++; if(l<2) nSPDcls++;
+                 }
+               }
+
+               ((TH1F*)fOutputTrack->FindObject("hPtDaughters"))->Fill(track->Pt());
+               ((TH1F*)fOutputTrack->FindObject("hPhiDaughters"))->Fill(track->Phi());
+               ((TH1F*)fOutputTrack->FindObject("hEtaDaughters"))->Fill(track->Eta());
+               ((TH2F*)fOutputTrack->FindObject("hEtavsPhiDaughters"))->Fill(track->Phi(),track->Eta());
+               
+               ((TH2F*)fOutputTrack->FindObject("hNTPCclsvsPtDaughters"))->Fill(track->Pt(),track->GetTPCNcls());
+               ((TH2F*)fOutputTrack->FindObject("hNTPCclsvsPhiDaughters"))->Fill(track->Phi(),track->GetTPCNcls());
+               ((TH2F*)fOutputTrack->FindObject("hNTPCclsvsEtaDaughters"))->Fill(track->Eta(),track->GetTPCNcls());
+               
+               ((TH2F*)fOutputTrack->FindObject("hRatioCRowsOverFclsvsPtDaughters"))->Fill(track->Pt(),ratioCrossedRowsOverFcls);
+               ((TH2F*)fOutputTrack->FindObject("hRatioCRowsOverFclsvsPhiDaughters"))->Fill(track->Phi(),ratioCrossedRowsOverFcls);
+               ((TH2F*)fOutputTrack->FindObject("hRatioCRowsOverFclsvsEtaDaughters"))->Fill(track->Eta(),ratioCrossedRowsOverFcls);
+              
+               ((TH2F*)fOutputTrack->FindObject("hNITSclsvsPtDaughters"))->Fill(track->Pt(), nITScls);
+               ((TH2F*)fOutputTrack->FindObject("hNITSclsvsPhiDaughters"))->Fill(track->Phi(), nITScls);
+               ((TH2F*)fOutputTrack->FindObject("hNITSclsvsEtaDaughters"))->Fill(track->Eta(), nITScls);
+               if(!(track->HasPointOnITSLayer(0)) && !(track->HasPointOnITSLayer(1))){ //no SPD points
+                 ((TH1I*)fOutputTrack->FindObject("hSPDclsDaughters"))->Fill(0);
+               } 
+               if(track->HasPointOnITSLayer(0) && !(track->HasPointOnITSLayer(1))){ //kOnlyFirst
+                 ((TH1I*)fOutputTrack->FindObject("hSPDclsDaughters"))->Fill(1);
+               } 
+               if(!(track->HasPointOnITSLayer(0)) && track->HasPointOnITSLayer(1)){ //kOnlySecond
+                 ((TH1I*)fOutputTrack->FindObject("hSPDclsDaughters"))->Fill(2);
+               }
+               if(track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1)){ //kBoth
+                 ((TH1I*)fOutputTrack->FindObject("hSPDclsDaughters"))->Fill(3);
+               } 
+             }
+            
            
            AliAODPid *pid = track->GetDetPid();
              if(pid){
index 7a0f7b03d87a99e163e78967c2b99fb3e20d47a4..ccf613913df8f1dceebbae5e4dc5e2570a700e80 100644 (file)
@@ -51,6 +51,7 @@ class AliAnalysisTaskSEHFQA : public AliAnalysisTaskSE
   void SetFlowObsOn(Bool_t flowobson=kTRUE){fOnOff[4]=flowobson;}
   void SetUseSelectionBit(Bool_t selectionbiton=kTRUE){fUseSelectionBit=selectionbiton;}
   void SetSecondCentralityEstimator(AliRDHFCuts::ECentrality est){fEstimator = est;}
+  void SetFillDistributionsForTrackEffChecks(Bool_t filldistrtrackeffcheckson=kFALSE){fFillDistrTrackEffChecks = filldistrtrackeffcheckson;}
 
   //getters
   AliRDHFCuts* GetCutObject() const {return fCuts;}
@@ -62,6 +63,7 @@ class AliAnalysisTaskSEHFQA : public AliAnalysisTaskSE
   Bool_t GetFlowObsStatus() const {return fOnOff[4];}
   Bool_t GetUseSelectionBit() const {return fUseSelectionBit;}
   AliRDHFCuts::ECentrality GetSecondCentralityEstimator()const {return fEstimator;}
+  Bool_t GetFillDistributionsForTrackEffChecks()const {return fFillDistrTrackEffChecks;}
 
  private:
   AliAnalysisTaskSEHFQA(const AliAnalysisTaskSEHFQA &source);
@@ -84,8 +86,9 @@ class AliAnalysisTaskSEHFQA : public AliAnalysisTaskSE
  Bool_t fSimpleMode;       // if true, don't do candidates (much faster in PbPb)
  Bool_t fUseSelectionBit;  // flag to use or not the selection bit
  Bool_t fOnOff[5];         // on-off the QA on tracks (0), PID (1), centrality (2), event selection -- default is {kTRUE,kTRUE,kTRUE,kTRUE}
+ Bool_t fFillDistrTrackEffChecks;
 
- ClassDef(AliAnalysisTaskSEHFQA,8); //AnalysisTaskSE for the quality assurance of HF in hadrons
+ ClassDef(AliAnalysisTaskSEHFQA,9); //AnalysisTaskSE for the quality assurance of HF in hadrons
 
 };
 
index 0322cd49b334fd538e45cc3dc7dfdfe091c8bb1f..7b10d422fd1a5972f71b618e25b5c78e58b149dd 100644 (file)
@@ -1,4 +1,4 @@
-AliAnalysisTaskSEHFQA* AddTaskHFQA(AliAnalysisTaskSEHFQA::DecChannel ch,TString filecutsname="",Bool_t readMC=kFALSE, Bool_t simplemode=kFALSE, Int_t system=1 /*0=pp, 1=PbPb*/, TString finDirname="",Bool_t trackon=kTRUE,Bool_t pidon=kTRUE,Bool_t centralityon=kTRUE, Bool_t eventselon=kTRUE, Bool_t flowobson=kFALSE){
+AliAnalysisTaskSEHFQA* AddTaskHFQA(AliAnalysisTaskSEHFQA::DecChannel ch,TString filecutsname="",Bool_t readMC=kFALSE, Bool_t simplemode=kFALSE, Int_t system=1 /*0=pp, 1=PbPb*/, TString finDirname="",Bool_t trackon=kTRUE,Bool_t pidon=kTRUE,Bool_t centralityon=kTRUE, Bool_t eventselon=kTRUE, Bool_t flowobson=kFALSE, Bool_t filldistribforeffcheckson=kFALSE){
   //
   // Test macro for the AliAnalysisTaskSE for HF mesons quality assurance
   //Author: C.Bianchin chiara.bianchin@pd.infn.it
@@ -148,6 +148,7 @@ AliAnalysisTaskSEHFQA* AddTaskHFQA(AliAnalysisTaskSEHFQA::DecChannel ch,TString
   taskQA->SetCentralityOn(centralityon);
   taskQA->SetEvSelectionOn(eventselon);
   taskQA->SetFlowObsOn(flowobson);
+  taskQA->SetFillDistributionsForTrackEffChecks(filldistribforeffcheckson);
   mgr->AddTask(taskQA);
 
   //