]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Adding monitor for double counts in PID selection
authormchojnac <Marek.Chojnacki@cern.ch>
Thu, 10 Jul 2014 15:17:49 +0000 (17:17 +0200)
committermchojnac <Marek.Chojnacki@cern.ch>
Thu, 10 Jul 2014 15:21:25 +0000 (17:21 +0200)
PWGLF/SPECTRA/PiKaPr/TestAOD/AliAnalysisTaskSpectraBoth.cxx
PWGLF/SPECTRA/PiKaPr/TestAOD/AliSpectraBothHistoManager.cxx
PWGLF/SPECTRA/PiKaPr/TestAOD/AliSpectraBothHistoManager.h
PWGLF/SPECTRA/PiKaPr/TestAOD/HistogramNamesBoth.cxx
PWGLF/SPECTRA/PiKaPr/TestAOD/HistogramsBoth.h

index 1a87c75b3a955ab0de8218cddb66b05884fc82de..e9888440ca1eecae9b323dd1c73908b02298ed48 100644 (file)
@@ -59,8 +59,7 @@ using namespace std;
 ClassImp(AliAnalysisTaskSpectraBoth)
 
 //________________________________________________________________________
-AliAnalysisTaskSpectraBoth::AliAnalysisTaskSpectraBoth(const char *name) : AliAnalysisTaskSE(name), fAOD(0), fHistMan(0), fTrackCuts(0), fEventCuts(0),  fPID(0), fIsMC(0), fNRebin(0),fUseMinSigma(0),fCuts(0),fdotheMCLoopAfterEventCuts(0),
-fmakePIDQAhisto(1),fMotherWDPDGcode(-1)
+AliAnalysisTaskSpectraBoth::AliAnalysisTaskSpectraBoth(const char *name) : AliAnalysisTaskSE(name), fAOD(0), fHistMan(0), fTrackCuts(0), fEventCuts(0),  fPID(0), fIsMC(0), fNRebin(0),fUseMinSigma(0),fCuts(0),fdotheMCLoopAfterEventCuts(0),fmakePIDQAhisto(1),fMotherWDPDGcode(-1)
 
 {
   // Default constructor
@@ -267,6 +266,7 @@ void AliAnalysisTaskSpectraBoth::UserExec(Option_t *)
                fHistMan->GetPtHistogram(kHistPtRec)->Fill(track->Pt(),dca);  // PT histo
                // get identity and charge
                Bool_t rec[3]={false,false,false};
+               Bool_t sel[3]={false,false,false};
                Int_t idRec  = fPID->GetParticleSpecie(fHistMan,track, fTrackCuts,rec);
                for(int irec=kSpPion;irec<kNSpecies;irec++)
                {
@@ -293,6 +293,7 @@ void AliAnalysisTaskSpectraBoth::UserExec(Option_t *)
                                fTrackCuts->GetHistoDCAzQA()->Fill(idRec,track->Pt(),dcaz);
                                fTrackCuts->GetHistoNclustersQA()->Fill(idRec,track->Pt(),ncls);
                                fTrackCuts->GetHistochi2perNDFQA()->Fill(idRec,track->Pt(),chi2perndf);
+                               sel[idRec]=true;
                        }
                        //can't put a continue because we still have to fill allcharged primaries, done later
                
@@ -397,7 +398,7 @@ void AliAnalysisTaskSpectraBoth::UserExec(Option_t *)
                                 if(!fTrackCuts->CheckYCut ((BothParticleSpecies_t)idRec)) continue;
                  
                  // Get true ID
-                 
+                                       
                  
                                 if (idRec == idGen) fHistMan->GetHistogram2D(kHistPtRecTrue,  idGen, charge)->Fill(track->Pt(),dca); 
                  
@@ -445,6 +446,15 @@ void AliAnalysisTaskSpectraBoth::UserExec(Option_t *)
                  
                        }//end if(arrayMC)
                }
+               if(sel[0]&&sel[1]&&sel[2])//pi+k+p
+                       fHistMan->GetPtHistogram("hHistDoubleCounts")->Fill(track->Pt(),0);
+               else if(sel[0]&&sel[1]) //pi+k
+                       fHistMan->GetPtHistogram("hHistDoubleCounts")->Fill(track->Pt(),1);
+               else if(sel[0]&&sel[2]) //pi+k
+                       fHistMan->GetPtHistogram("hHistDoubleCounts")->Fill(track->Pt(),2);
+               else if(sel[1]&&sel[2]) //p+k
+                       fHistMan->GetPtHistogram("hHistDoubleCounts")->Fill(track->Pt(),3);
+
        
        
        } // end loop on tracks
index ad47e0c08d26d3c33e91e11e25e7bdc0efae32fa..28962beadccc06526ed12eabcdfcf5f2939355fd 100644 (file)
@@ -73,6 +73,7 @@ AliSpectraBothHistoManager::AliSpectraBothHistoManager(const char *name,Int_t nr
       if (ihist > kNPtRecAllChHist && ihist <= kNHistPID && pidqa) BookPIDHistogram(kHistNameBoth[ihist]);  // PID histos
       if (ihist > kNHistPID && ihist <= kNHistNSig && pidqa) BookNSigHistogram(kHistNameBoth[ihist]);  // NSigmaSep histos
       if(ihist==kHistGenMulvsRawMul) BookGenMulvsRawMulHistogram(kHistNameBoth[ihist]); 
+      if(ihist==kHistDoubleCounts)BookDoubleCountsHistogram(kHistNameBoth[ihist]); 
     }
    
   TH1::AddDirectory(oldStatus);
@@ -390,5 +391,29 @@ TH2* AliSpectraBothHistoManager::GetHistogram2D(UInt_t histoType, UInt_t particl
   // returns histo based on ids, casting it to TH2*
   return (TH2*) GetHistogram1D(histoType,particleType,charge);
 
+}
+//______________________________________________________________________________________________________
+ TH2F*   AliSpectraBothHistoManager::BookDoubleCountsHistogram(const char * name)
+{
+  // Return a pt histogram with predefined binning, set the ID and add it to the output list
+  AliInfo(Form("Booking  Double Counts histogram %s", name));
+  const Double_t templBins[] = {0.05,0.1,0.12,0.14,0.16,0.18,0.20,0.25,0.30,0.35,0.4,0.45,0.5,0.55,0.6,0.65,0.7,0.75,0.8,0.85,0.9,0.95,1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2.0,2.1,2.2,2.3,2.4,2.5,2.6,2.7,2.8,2.9,3.0,3.2,3.4,3.6,3.8,4.0,4.2,4.4,4.6,4.8,5.0};
+  Int_t nbinsTempl=52;
+   
+  TH2F * hist = new TH2F(name,"Histogram of double counts",nbinsTempl,templBins,4,-0.5,3.5);
+  hist->GetXaxis()->SetTitle("P_{T} (GeV / c)");
+  hist->GetYaxis()->SetTitle("type of doubles");
+  hist->GetYaxis()->SetBinLabel(1,"#pi+K+p");
+  hist->GetYaxis()->SetBinLabel(2,"#pi+K");
+  hist->GetYaxis()->SetBinLabel(3,"#pi+p");
+  hist->GetYaxis()->SetBinLabel(4,"K+p");
+
+  hist->SetMarkerStyle(kFullCircle);
+  hist->Sumw2();
+  fOutputList->Add(hist);
+   
+  return hist;
+
 
 }
+
index 25e44e9632c067aa859219a2982f9752c80b0dc8..b87c67b6af8f49840a4e5c2db015ad2279c4d972 100644 (file)
@@ -81,7 +81,8 @@ public:
    TH2F*   BookPIDHistogram(const char * name);
    TH2F*   BookNSigHistogram(const char * name);
    TH2F*   BookGenMulvsRawMulHistogram(const char * name);
-   
+   TH2F*   BookDoubleCountsHistogram(const char * name);
+
    TH1F*   GetPtHistogram1D(const char * name,Double_t minDCA,Double_t maxDCA);
    TH1F*   GetDCAHistogram1D(const char * name,Double_t minPt,Double_t maxPt);
    TH2*     GetHistogram(UInt_t id)      {      return (TH2*) fOutputList->At(id);   }
@@ -118,7 +119,7 @@ private:
    AliSpectraBothHistoManager(const AliSpectraBothHistoManager&);
    AliSpectraBothHistoManager& operator=(const AliSpectraBothHistoManager&);
 
-   ClassDef(AliSpectraBothHistoManager, 1);
+   ClassDef(AliSpectraBothHistoManager, 2);
 
 };
 #endif
index 24ccd6e1b67c2ba231391e7c28d48c91b68bdf88..ae493e52b601708c7c0afa8a3062634f179bea3b 100644 (file)
@@ -86,4 +86,5 @@ const char * AliSpectraNameSpaceBoth::kHistNameBoth[kNHist] =
      "hHistNSigKaonPtTPCTOF",
      "hHistNSigProtonPtTPCTOF",
      "hHistGenMulvsRawMul",
+     "hHistDoubleCounts"       
    };
index 41bb20cff941cb32c6b847a4f0688aebf9ddc55e..b8f606a87c99eee19460c1e2bcc29aec94cb75f5 100644 (file)
@@ -125,6 +125,8 @@ namespace AliSpectraNameSpaceBoth
       kNHistNSig=kHistNSigProtonPtTPCTOF,    
       
       kHistGenMulvsRawMul,
+
+      kHistDoubleCounts,                       
                                 
       kNHist,                                   // Total number of histos
    };  // Type of events plotted in Pt Histogram