]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetHadEPpid.h
added more efficiency parameters
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / UserTasks / AliAnalysisTaskEmcalJetHadEPpid.h
index 7e30864c0c5cc66dd6312cdb2db24d167e85d23e..0198065f4698b2a270eb1c1b8458083ffa4e9250 100644 (file)
@@ -21,6 +21,7 @@ class AliAODEvent;
 class AliEMCALGeometry;
 class AliEMCALRecoUtils;
 class AliESDtrack;
+class AliESDtrackCuts;
 
 // container classes
 class AliJetContainer;
@@ -37,6 +38,7 @@ class AliClusterContainer;
 #include <TMath.h>
 #include <TRandom3.h>
 #include <AliLog.h>
+#include "AliESDtrackCuts.h"
 
 // Local Rho includes
 #include "AliAnalysisTaskLocalRho.h"
@@ -56,11 +58,11 @@ class AliAnalysisTaskEmcalJetHadEPpid : public AliAnalysisTaskEmcalJet {
 
   virtual void            UserCreateOutputObjects();
   // THnSparse Setup
-  virtual THnSparse*      NewTHnSparseD(const char* name, UInt_t entries);
+  virtual THnSparse*      NewTHnSparseF(const char* name, UInt_t entries);
   virtual void            GetDimParams(Int_t iEntry,TString &label, Int_t &nbins, Double_t &xmin, Double_t &xmax);
-  virtual THnSparse*      NewTHnSparseDPID(const char* name, UInt_t entries);
+  virtual THnSparse*      NewTHnSparseFPID(const char* name, UInt_t entries);
   virtual void            GetDimParamsPID(Int_t iEntry,TString &label, Int_t &nbins, Double_t &xmin, Double_t &xmax);
-  virtual THnSparse*      NewTHnSparseDCorr(const char* name, UInt_t entries);
+  virtual THnSparse*      NewTHnSparseFCorr(const char* name, UInt_t entries);
   virtual void            GetDimParamsCorr(Int_t iEntry,TString &label, Int_t &nbins, Double_t &xmin, Double_t &xmax);
 
   // set a bun of histogram switches up
@@ -78,15 +80,26 @@ class AliAnalysisTaskEmcalJetHadEPpid : public AliAnalysisTaskEmcalJet {
   void                    SetdoPID(Bool_t p)                    { doPID = p; }   // do PID switch
   void                                           SetdoPIDtrackBIAS(Bool_t PIDbias)     { doPIDtrackBIAS = PIDbias; } // do PID track bias switch
 
+  // esd track cuts setters
+  void SetTrackCuts(AliESDtrackCuts *cuts)                      { fesdTrackCuts = cuts; }
+
   // give comments setter
   void                                   SetdoComments(Bool_t comm)                    { doComments = comm; } // give comment switch
 
+  // setter switch for flavour jet analysis
+  void                                           SetFlavourJetAnalysis(Bool_t flj)     { doFlavourJetAnalysis = flj; } // set on flavour jet analysis
+  virtual void                   SetJETFlavourTag(Int_t fltag)        { fJetFlavTag = fltag; } // set manual tag #
+
+  // setter for beamtype (needed for UserCreateObjects section)
+  virtual void                   SetCollType(BeamType bm) { fBeam = bm; } // set beamtype 
+
   // getters
-  TString                GetLocalRhoName() const               {return fLocalRhoName; }
+  TString                        GetLocalRhoName() const               {return fLocalRhoName; }
 
   // set names of some objects
   virtual void            SetLocalRhoName(const char *ln)       { fLocalRhoName = ln; }
   virtual void            SetTracksName(const char *tn)         { fTracksName = tn; }
+  virtual void                   SetTracksNameME(const char *MEtn)     { fTracksNameME = MEtn; }
   virtual void            SetJetsName(const char *jn)           { fJetsName = jn; }
 
   // bias and cuts - setters
@@ -105,6 +118,17 @@ class AliAnalysisTaskEmcalJetHadEPpid : public AliAnalysisTaskEmcalJet {
   // event mixing - setters
   virtual void            SetEventMixing(Int_t yesno)             { fDoEventMixing=yesno; }
   virtual void           SetMixingTracks(Int_t tracks)            { fMixingTracks = tracks; }
+  virtual void            SetNMixedTr(Int_t nmt)               { fNMIXtracks = nmt; }
+  virtual void            SetNMixedEvt(Int_t nme)              { fNMIXevents = nme; }
+
+  // event trigger/mixed selection - setters
+  virtual void            SetTriggerEventType(UInt_t te)       { fTriggerEventType = te; }
+  virtual void            SetMixedEventType(UInt_t me)         { fMixingEventType = me; }
+  virtual void            SetCentBinSize(Int_t centbins)       { fCentBinSize = centbins; }
+
+  // set efficiency correction
+  void                    SetDoEffCorr(Int_t effcorr)          { fDoEffCorr = effcorr; }
+  virtual void            SetEffCorrFunc(Double_t efffunc)     { fEffFunctionCorr = efffunc; }
 
   // jet container - setters
   void SetContainerAllJets(Int_t c)         { fContainerAllJets      = c;}
@@ -124,6 +148,11 @@ protected:
   virtual Int_t          GetpTtrackBin(Double_t pt) const;   // track pt bins
   virtual Int_t          GetzVertexBin(Double_t zVtx) const; // zVertex bin
   void                   SetfHistPIDcounterLabels(TH1* fHistPID) const;  // PID counter
+  void                              SetfHistQAcounterLabels(TH1* h) const; // QA counter
+  void                   SetfHistEvtSelQALabels(TH1* h) const; // Event Selection Counter
+  //virtual Int_t                       AcceptFlavourJet(AliEmcalJet *jet, Int_t NUM, Int_t NUM2, Int_t NUM3); // flavour jet acceptor
+  virtual Int_t                         AcceptFlavourJet(AliEmcalJet *jet, Int_t NUM); // flavour jet acceptor
+  Double_t               EffCorrection(Double_t trkETA, Double_t trkPT, Int_t effswitch) const; // efficiency correction function
 
   // parameters of detector to cut on for event
   Double_t               fPhimin;                  // phi min
@@ -138,9 +167,23 @@ protected:
   Double_t                              fJetRad;                                  // jet radius
   Double_t                              fConstituentCut;          // jet constituent cut
 
+  // esd track cuts
+  AliESDtrackCuts       *fesdTrackCuts;                           // esdTrackCuts
+
   // event mixing
   Int_t                         fDoEventMixing;
   Int_t                         fMixingTracks;
+  Int_t          fNMIXtracks;
+  Int_t          fNMIXevents;
+  Int_t          fCentBinSize; // centrality bin size of mixed event pools
+
+  // event selection types
+  UInt_t         fTriggerEventType;
+  UInt_t         fMixingEventType;
+
+  // efficiency correction
+  Int_t    fDoEffCorr;
+  Double_t       fEffFunctionCorr;
 
   // switches for plots
   Bool_t                doPlotGlobalRho;
@@ -162,11 +205,19 @@ protected:
   // do comment switch
   Bool_t                doComments;
 
+  // do flavour jet analysis switch, and set flavour jet tag
+  Bool_t            doFlavourJetAnalysis;
+  Int_t                         fJetFlavTag;
+
+  // beam type
+  BeamType fBeam;
+
   // local rho value
   Double_t              fLocalRhoVal;
 
   // object names
   TString               fTracksName;
+  TString               fTracksNameME;
   TString               fJetsName;
 
   // event counter
@@ -178,8 +229,8 @@ protected:
   Bool_t                isPItof, isKtof, isPtof;
 
   // event pool
-  TObjArray*               CloneAndReduceTrackList(TObjArray* tracks);
-  AliEventPoolManager   *fPoolMgr;  // event pool Manager object
+  TObjArray                *CloneAndReduceTrackList(TObjArray* tracks);
+  AliEventPoolManager   *fPoolMgr;//!  // event pool Manager object
 
   // PID
   AliPIDResponse       *fPIDResponse;   // PID response object
@@ -187,14 +238,23 @@ protected:
 
  private:
   // needed for PID, track objects
-  AliESDEvent       *fESD;          // ESD object
-  AliAODEvent      *fAOD;                // AOD object
+  AliESDEvent       *fESD;//!         // ESD object
+  AliAODEvent      *fAOD;//!             // AOD object
+  AliVEvent            *fVevent;//!      // Vevent object
+
+  TH1F                             *fHistEventQA;//!
+  TH1F                  *fHistEventSelectionQA;//!
+
+  TH2F                  *fHistCentZvertGA;//!
+  TH2F                  *fHistCentZvertJE;//!
+  TH2F                  *fHistCentZvertMB;//!
+  TH2F                  *fHistCentZvertAny;//!
 
-  TH2F                  *fHistTPCdEdX;
-  TH2F                 *fHistITSsignal;
-//  TH2F                   *fHistTOFsignal;
+  TH2F                  *fHistTPCdEdX;//!
+  TH2F                 *fHistITSsignal;//!
+//  TH2F                   *fHistTOFsignal;//!
 
-  TH2F                  *fHistRhovsCent; //!
+  TH2F                  *fHistRhovsCent;//!
   TH2F                  *fHistNjetvsCent;//! number of jets versus Centrality
   TH2F                  *fHistJetPtvsTrackPt[6];//!
   TH2F                  *fHistRawJetPtvsTrackPt[6];//!
@@ -206,66 +266,67 @@ protected:
   TH1F                                 *fHistJetPtcorrGlRho[6];//!
   TH2F                  *fHistJetPtvsdEP[6];//!
   TH2F                  *fHistJetPtvsdEPBias[6];//!
-  TH2F                  *fHistRhovsdEP[6]; //!
+  TH2F                  *fHistRhovsdEP[6];//!
   TH3F                  *fHistJetEtaPhiPt[6];//!
   TH3F                  *fHistJetEtaPhiPtBias[6];//!
   TH2F                  *fHistJetPtArea[6];//!
   TH2F                  *fHistJetPtAreaBias[6];//!
-  TH2F                  *fHistJetPtNcon[6]; //!
-  TH2F                  *fHistJetPtNconBias[6]; //!
-  TH2F                  *fHistJetPtNconCh[6]; //!
-  TH2F                  *fHistJetPtNconBiasCh[6]; //!
-  TH2F                  *fHistJetPtNconEm[6]; //!
-  TH2F                  *fHistJetPtNconBiasEm[6]; //!
-  TH1F                     *fHistJetHaddPhiINcent[6];
-  TH1F                         *fHistJetHaddPhiOUTcent[6];
-  TH1F                         *fHistJetHaddPhiMIDcent[6];
-
-  TH1                   *fHistCentrality;
-  TH1                   *fHistZvtx;
-  TH1                   *fHistMult;
-  TH1                          *fHistJetPhi;
-  TH1                      *fHistTrackPhi;
-  TH1                      *fHistJetHaddPhiIN;
-  TH1                          *fHistJetHaddPhiOUT;
-  TH1                          *fHistJetHaddPhiMID;
-  TH1                                  *fHistJetHaddPhiBias;
-  TH1                                  *fHistJetHaddPhiINBias;
-  TH1                                  *fHistJetHaddPhiOUTBias;
-  TH1                                  *fHistJetHaddPhiMIDBias;
-
-  TH1                   *fHistMEdPHI; // phi distrubtion of mixed events
-  TH1                                  *fHistTrackPtallcent;
-
-  TH2                   *fHistJetEtaPhi;  
-  TH2                   *fHistTrackEtaPhi[4][7];
-  TH1                          *fHistJetHadbindPhi[9]; 
-  TH1                                  *fHistJetHadbindPhiIN[9]; 
-  TH1                                  *fHistJetHadbindPhiMID[9]; 
-  TH1                          *fHistJetHadbindPhiOUT[9]; 
-  TH2                   *fHistJetHEtaPhi;
-
-  TH1                   *fHistJetPt[6];
-  TH1                   *fHistJetPtBias[6];
-  TH1                   *fHistJetPtTT[6];
-  TH2                   *fHistAreavsRawPt[6];
-  TH2                   *fHistJetH[6][5][3];
-  TH2                   *fHistJetHBias[6][5][3];
-  TH2                   *fHistJetHTT[6][5][3];
-  TH1F                                 *fHistJetHdPHI[11];
-  TH2F                                 *fHistJetHdETAdPHI[11];
-  TH2F                  *fHistSEphieta; // single events phi-eta distributions
-  TH2F                  *fHistMEphieta; // mixed events phi-eta distributions
-  TH1F                                 *fHistJetHaddPHI;
+  TH2F                  *fHistJetPtNcon[6];//!
+  TH2F                  *fHistJetPtNconBias[6];//!
+  TH2F                  *fHistJetPtNconCh[6];//!
+  TH2F                  *fHistJetPtNconBiasCh[6];//!
+  TH2F                  *fHistJetPtNconEm[6];//!
+  TH2F                  *fHistJetPtNconBiasEm[6];//!
+  TH1F                     *fHistJetHaddPhiINcent[6];//!
+  TH1F                         *fHistJetHaddPhiOUTcent[6];//!
+  TH1F                         *fHistJetHaddPhiMIDcent[6];//!
+
+  TH1                   *fHistCentrality;//!
+  TH1                   *fHistZvtx;//!
+  TH1                   *fHistMult;//!
+  TH1                          *fHistJetPhi;//!
+  TH1                      *fHistTrackPhi;//!
+  TH1                   *fHistLocalRhoJetpt;//!
+  TH1                      *fHistJetHaddPhiIN;//!
+  TH1                          *fHistJetHaddPhiOUT;//!
+  TH1                          *fHistJetHaddPhiMID;//!
+  TH1                                  *fHistJetHaddPhiBias;//!
+  TH1                                  *fHistJetHaddPhiINBias;//!
+  TH1                                  *fHistJetHaddPhiOUTBias;//!
+  TH1                                  *fHistJetHaddPhiMIDBias;//!
+
+  TH1                   *fHistMEdPHI;//! // phi distrubtion of mixed events
+  TH1                                  *fHistTrackPtallcent;//!
+
+  TH2                   *fHistJetEtaPhi;//!  
+  TH2                   *fHistTrackEtaPhi[4][7];//!
+  TH1                          *fHistJetHadbindPhi[9];//! 
+  TH1                                  *fHistJetHadbindPhiIN[9];//! 
+  TH1                                  *fHistJetHadbindPhiMID[9];//! 
+  TH1                          *fHistJetHadbindPhiOUT[9];//! 
+  TH2                   *fHistJetHEtaPhi;//!
+
+  TH1                   *fHistJetPt[6];//!
+  TH1                   *fHistJetPtBias[6];//!
+  TH1                   *fHistJetPtTT[6];//!
+  TH2                   *fHistAreavsRawPt[6];//!
+  TH2                   *fHistJetH[6][5][3];//!
+  TH2                   *fHistJetHBias[6][5][3];//!
+  TH2                   *fHistJetHTT[6][5][3];//!
+  TH1F                                 *fHistJetHdPHI[11];//!
+  TH2F                                 *fHistJetHdETAdPHI[11];//!
+  TH2F                  *fHistSEphieta;//! // single events phi-eta distributions
+  TH2F                  *fHistMEphieta;//! // mixed events phi-eta distributions
+  TH1F                                 *fHistJetHaddPHI;//!
 
   // PID status histo's
-  TH1                                  *fHistPID;
+  TH1                                  *fHistPID;//!
 
   // THn Sparse's
-  THnSparse             *fhnPID;          // PID sparse
-  THnSparse             *fhnMixedEvents;  // mixed events matrix
-  THnSparse             *fhnJH;           // jet hadron events matrix
-  THnSparse                            *fhnCorr;                 // sparse to get # jet triggers
+  THnSparse             *fhnPID;//!          // PID sparse
+  THnSparse             *fhnMixedEvents;//!  // mixed events matrix
+  THnSparse             *fhnJH;//!           // jet hadron events matrix
+  THnSparse                            *fhnCorr;//!              // sparse to get # jet triggers
 
   // container objects
   AliJetContainer            *fJetsCont;                   //!Jets