]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskSAQA.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / UserTasks / AliAnalysisTaskSAQA.h
index 0ca0ef157a054be4141fbb6e7fd5fed6cf5ef413..e1250c8427da549ba1a4db305c03cbd55b4c3224 100644 (file)
@@ -6,6 +6,8 @@
 class TH1;
 class TH2;
 class TH3;
+class THnSparse;
+class AliVVZERO;
 
 #include "AliAnalysisTaskEmcalJet.h"
 
@@ -16,73 +18,84 @@ class AliAnalysisTaskSAQA : public AliAnalysisTaskEmcalJet {
   virtual ~AliAnalysisTaskSAQA();
 
   void                        UserCreateOutputObjects();
-  void                        Terminate(Option_t *option);
 
   void                        SetCellEnergyCut(Float_t cut)                        { fCellEnergyCut      = cut        ; }
   void                        SetParticleLevel(Bool_t s)                           { fParticleLevel      = s          ; }
   void                        SetMC(Bool_t m)                                      { fIsMC               = m          ; }
+  void                        SetAdditionalCentEst(const char* meth2, const char* meth3="") { fCentMethod2 = meth2; fCentMethod3 = meth3; }
+  void                        SetDoV0QA(Int_t b)                                   { fDoV0QA             = b          ; }
+  void                        SetDoEPQA(Int_t b)                                   { fDoEPQA             = b          ; }
+  void                        SetMaxCellsInCluster(Int_t b)                        { fMaxCellsInCluster  = b          ; }
+  void                        SetDoLeadingObjectPosition(Int_t b)                  { fDoLeadingObjectPosition = b     ; }
 
  protected:
 
+  void                        AllocateHistogramArrays()                                     ;
+  void                        ExecOnce()                                                    ;
   Bool_t                      FillHistograms()                                              ;
+  void                        FillEventQAHisto(Float_t cent, Float_t cent2, Float_t cent3, Float_t v0a, Float_t v0c, Float_t ep, Float_t rho, 
+                                              Int_t ntracks, Int_t nclusters, Int_t ncells, Int_t njets, 
+                                              Float_t maxTrackPt, Float_t maxTrackEta, Float_t maxTrackPhi,
+                                              Float_t maxClusterE, Float_t maxClusterEta, Float_t maxClusterPhi,
+                                              Float_t maxJetPt, Float_t maxJetEta, Float_t maxJetPhi);
   Bool_t                      RetrieveEventObjects()                                        ;
-  Int_t                       DoCellLoop(Float_t &sum, Float_t &sum_cut)                    ;
-  Float_t                     DoTrackLoop()                                                 ;
-  Float_t                     DoClusterLoop()                                               ;
-  void                        DoJetLoop()                                                   ;
+  Int_t                       DoCellLoop(Float_t &sum)                    ;
+  Int_t                       DoTrackLoop(Float_t &sum, AliVParticle* &leading)             ;
+  Int_t                       DoClusterLoop(Float_t &sum, AliVCluster* &leading)            ;
+  Int_t                       DoJetLoop(AliEmcalJet* &leading)                              ;
   Double_t                    GetFcross(AliVCluster *cluster, AliVCaloCells *cells)         ;
 
   Float_t                     fCellEnergyCut;            // Energy cell cut
   Bool_t                      fParticleLevel;            // Set particle level analysis
   Bool_t                      fIsMC;                     // Trigger, MC analysis
-  Int_t                       fNclusters;                //!Number of accepted clusters in the event
-  Int_t                       fNtracks;                  //!Number of accepted tracks in the event
-  Int_t                       fNjets;                    //!Number of accepted jets in the event
+  TString                     fCentMethod2;              // Centrality method 2
+  TString                     fCentMethod3;              // Centrality method 3
+  Int_t                       fDoV0QA;                   // Add V0 QA histograms
+  Int_t                       fDoEPQA;                   // Add event plane QA histograms
+  Int_t                       fDoLeadingObjectPosition;  // Add axis for leading object position (eta-phi)
+  Int_t                       fMaxCellsInCluster;        // Maximum number (approx) of cells in a cluster
+  Double_t                    fCent2;                    //!Event centrality with method 2
+  Double_t                    fCent3;                    //!Event centrality with method 3
+  AliVVZERO                  *fVZERO;                    //!Event V0 object
+  Double_t                    fV0ATotMult;               //!Event V0A total multiplicity
+  Double_t                    fV0CTotMult;               //!Event V0C total multiplicity
  
   // General histograms
-  TH2                        *fHistTracksCent;           //!Number of tracks vs. centrality
-  TH2                        *fHistClusCent;             //!Number of clusters vs. centrality
-  TH2                        *fHistJetsCent;             //!Number of jets vs. centrality
-  TH2                        *fHistClusTracks;           //!Number of clusters vs. number of tracks
-  TH2                        *fHistJetsParts;            //!Number of jets vs. number of particles (tracks+clusters)
-  TH2                        *fHistCellsCent;            //!Number of cells vs. centrality
-  TH2                        *fHistCellsTracks;          //!Number of cells vs. number of tracks
+  THnSparse                  *fHistEventQA;              //!Event-wise QA observables
 
   // Tracks
-  TH1                        *fHistTrNegativeLabels;     //!Percentage of negative label tracks
-  TH1                        *fHistTrZeroLabels;         //!Percentage of tracks with label=0
-  TH3                        *fHistTrPhiEtaPt[4][4];     //!Phi-Eta-Pt distribution of tracks
-  TH3                        *fHistTrPhiEtaPtZeroLab[4]; //!Phi-Eta-Pt distribution of tracks with label=0
-  TH2                        *fHistTrEmcPhiEta[4];       //!Phi-Eta emcal propagated distribution of tracks
-  TH1                        *fHistTrEmcPt[4];           //!Phi-Eta emcal propagated distribution of tracks
-  TH2                        *fHistTrPhiEtaNonProp[4];   //!Phi-Eta distribution of non emcal propagated tracks
-  TH2                        *fHistDeltaEtaPt[4];        //!Eta-EtaProp vs. Pt
-  TH2                        *fHistDeltaPhiPt[4];        //!Phi-PhiProp vs. Pt
-  TH2                        *fHistDeltaPtvsPt[4];       //!Pt-PtProp vs. Pt
+  TH1                       **fHistTrNegativeLabels;  //!Percentage of negative label tracks
+  TH1                       **fHistTrZeroLabels;      //!Percentage of tracks with label=0
+  TH3                      ***fHistTrPhiEtaPt;        //!Phi-Eta-Pt distribution of tracks
+  TH2                       **fHistTrPhiEtaZeroLab;   //!Phi-Eta distribution of tracks with label=0
+  TH1                       **fHistTrPtZeroLab;       //!Pt distribution of tracks with label=0
+  TH2                       **fHistTrEmcPhiEta;       //!Phi-Eta emcal propagated distribution of tracks
+  TH1                       **fHistTrEmcPt;           //!Pt emcal propagated distribution of tracks
+  TH2                       **fHistTrPhiEtaNonProp;   //!Phi-Eta distribution of non emcal propagated tracks
+  TH1                       **fHistTrPtNonProp;       //!Pt distribution of non emcal propagated tracks
+  TH2                       **fHistDeltaEtaPt;        //!Eta-EtaProp vs. Pt
+  TH2                       **fHistDeltaPhiPt;        //!Phi-PhiProp vs. Pt
+  TH2                       **fHistDeltaPtvsPt;       //!Pt-PtProp vs. Pt
 
   // Clusters
-  TH3                        *fHistClusPhiEtaEnergy[4];  //!Phi-Eta-Energy distribution of clusters
-  TH2                        *fHistNCellsEnergy;         //!Number of cells vs. energy of cluster
-  TH2                        *fHistFcrossEnergy;         //!Fcross vs. energy of cluster
-  TH2                        *fHistClusTimeEnergy;       //!Time vs. energy of cluster
-  TH1                        *fHistClusMCEnergyFraction[4];//!MC energy fraction (embedding)
-
-  // Jets
-  TH3                        *fHistJetsPhiEtaPt[4];      //!Phi-Eta distribution of jets
-  TH2                        *fHistJetsPtArea[4];        //!Pt vs. area of jets
+  TH3                       **fHistClusPhiEtaEnergy;       //!Phi-Eta-Energy distribution of clusters
+  TH2                       **fHistClusDeltaPhiEPEnergy;   //!DeltaPhi EP vs Energy of clusters
+  TH2                       **fHistNCellsEnergy;           //!Number of cells vs. energy of cluster
+  TH2                       **fHistFcrossEnergy;           //!Fcross vs. energy of cluster
+  TH2                       **fHistClusTimeEnergy;         //!Time vs. energy of cluster
+  TH1                       **fHistClusMCEnergyFraction;   //!MC energy fraction (embedding)
 
   // EMCAL Cells
-  TH2                        *fHistCellsAbsIdEnergy;    //!Energy spectrum of cells
+  TH2                       **fHistCellsAbsIdEnergy;  //!Energy spectrum of cells
 
-  // Had corr QA
-  TH2                        *fHistChVSneCells;          //!Charged vs. neutral (cells) energy
-  TH2                        *fHistChVSneClus;           //!Charged vs. neutral (clusters) energy
-  TH2                        *fHistChVSneCorrCells;      //!Charged vs. neutral (corrected cells) energy
+  // Jets
+  TH2                       **fHistJetsPhiEta;        //!Phi-Eta distribution of jets
+  TH2                       **fHistJetsPtArea;        //!Pt vs. area of jets
 
  private:
   AliAnalysisTaskSAQA(const AliAnalysisTaskSAQA&);            // not implemented
   AliAnalysisTaskSAQA &operator=(const AliAnalysisTaskSAQA&); // not implemented
 
-  ClassDef(AliAnalysisTaskSAQA, 18) // Quality task for Emcal analysis
+  ClassDef(AliAnalysisTaskSAQA, 23) // Quality task for Emcal analysis
 };
 #endif