]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGGA/EMCALJetTasks/AliHadCorrTask.h
name of task
[u/mrichter/AliRoot.git] / PWGGA / EMCALJetTasks / AliHadCorrTask.h
index e9c1e7fb6f4af70179d62b1e09675ba313766776..bbd5ec29486e647074fff3181201db69a5c0ff20 100644 (file)
@@ -5,62 +5,65 @@
 
 class TClonesArray;
 class TList;
-class TH1;
-class TH2;
+class TH1F;
+class TH2F;
+class AliEmcalParticle;
+class TString;
 
-#include "AliAnalysisTaskSE.h"
+#include "AliAnalysisTaskEmcal.h"
+
+class AliHadCorrTask : public AliAnalysisTaskEmcal {
 
-class AliHadCorrTask : public AliAnalysisTaskSE {
  public:
   AliHadCorrTask();
-  AliHadCorrTask(const char *name); 
+  AliHadCorrTask(const char *name, Bool_t histo=kFALSE); 
   virtual ~AliHadCorrTask();
 
-  void         UserCreateOutputObjects();
-  void         UserExec(Option_t *option);
-  void         Terminate(Option_t *option);
+  void                   UserCreateOutputObjects();
 
-  void         SetClusName(const char *n)            { fCaloName    = n;   }
-  void         SetEtaMatch(Double_t eta)             { fEtaMatch    = eta; }
-  void         SetHadCorr(Double_t c)                { fHadCorr     = c;   }
-  void         SetMinPt(Double_t min)                { fMinPt       = min; }
-  void         SetOutClusName(const char *n)         { fOutCaloName = n;   }
-  void         SetPhiMatch(Double_t phi)             { fPhiMatch    = phi; }
-  void         SetTracksName(const char *n)          { fTracksName  = n;   }
-  void         SetTrackClus(Int_t c)                 { fDoTrackClus    = c; }
+  void                   SetEexcl(Double_t Emin)                 { fEexclCell      = Emin ; }
+  void                   SetEtaMatch(Double_t eta)               { fEtaMatch       = eta  ; }
+  void                   SetHadCorr(Double_t c)                  { fHadCorr        = c    ; }
+  void                   SetOutClusName(const char *n)           { fOutCaloName    = n    ; }
+  void                   SetPhiMatch(Double_t phi)               { fPhiMatch       = phi  ; }
+  void                   SetTrackClus(Int_t c)                   { fDoTrackClus    = c    ; }
 
  protected:
-  Int_t        GetCentBin(Double_t cent) const;
-  Int_t        GetMomBin(Double_t pt)    const;
+  Double_t               ApplyHadCorrOneTrack(AliEmcalParticle *emccluster, Double_t hadCorr);
+  Double_t               ApplyHadCorrAllTracks(AliEmcalParticle *emccluster, Double_t hadCorr);
+  void                   DoMatchedTracksLoop(AliEmcalParticle *emccluster, Double_t &totalTrkP, Int_t &Nmatches);
+  Double_t               GetEtaSigma(Int_t pbin)                   const;
+  Int_t                  GetMomBin(Double_t pt)                    const;
+  Double_t               GetPhiMean(Int_t pbin, Int_t centbin)     const;
+  Double_t               GetPhiSigma(Int_t pbin, Int_t centbin)    const;
+  virtual Bool_t         Run()                                          ;
 
-  TString                fTracksName;             // name of track collection
-  TString                fCaloName;               // name of calo cluster collection
-  TString                fOutCaloName;            // name of output clusters
-  Double_t               fPhiMatch;               // phi match value (pp=0.050)
-  Double_t               fEtaMatch;               // eta match value (pp=0.025)
-  Int_t                  fDoTrackClus;            //loop over tracks first
-  Double_t               fHadCorr;                // hadronic correction (fraction)
-  Double_t               fMinPt;                  // minimum pt (on tracks and clusters)
-  TClonesArray          *fOutClusters;            //!output cluster collection
-  TList                 *fOutputList;             //!output list
-  TH2                   *fHistMatchEtaPhi[8][9];  //!output histograms
-  TH2                   *fHistMatchEvsP[4];       //!output histograms
-  TH2                   *fHistMatchdRvsEP[4];     //!output histograms
-  TH1                   *fHistNclusvsCent;        //!output histograms
-  TH1                   *fHistNclusMatchvsCent;   //!output histograms
-  TH1                   *fHistEbefore;            //!output histograms
-  TH1                   *fHistEafter;             //!output histograms
-  TH2                   *fHistEoPCent;            //!output histograms
-  TH2                   *fHistNMatchCent;         //!output histograms
-  TH2                   *fHistNMatchCent_trk;     //!output histograms
-  TH1                   *fHistEsubPch[4][3];      //!output histograms
-  TH2                   *fHistEsubPchRat[4][3];   //!output histograms
-  TH1                   *fHistCentrality;         //!output histograms
+  TString                fOutCaloName;               // name of output clusters
+  Double_t               fPhiMatch;                  // phi match value (pp=0.050)
+  Double_t               fEtaMatch;                  // eta match value (pp=0.025)
+  Int_t                  fDoTrackClus;               // loop over tracks first
+  Double_t               fHadCorr;                   // hadronic correction (fraction)
+  Double_t               fEexclCell;                 // energy/cell that we cannot subtract from the clusters
+  TClonesArray          *fOutClusters;               //!output cluster collection
+  TH2F                  *fHistMatchEtaPhi[8][9][2];  //!output histograms
+  TH2F                  *fHistMatchEvsP[4];          //!output histograms
+  TH2F                  *fHistNMatchEnergy[4];       //!output histograms
+  TH2F                  *fHistNCellsEnergy[8][4];    //!output histograms
+  TH2F                  *fHistMatchdRvsEP[4];        //!output histograms
+  TH1F                  *fHistNclusvsCent;           //!output histograms
+  TH1F                  *fHistNclusMatchvsCent;      //!output histograms
+  TH1F                  *fHistEbefore;               //!output histograms
+  TH1F                  *fHistEafter;                //!output histograms
+  TH2F                  *fHistEoPCent;               //!output histograms
+  TH2F                  *fHistNMatchCent;            //!output histograms
+  TH1F                  *fHistEsubPch[8];            //!output histograms
+  TH2F                  *fHistEsubPchRat[8];         //!output histograms
+  TH1F                  *fHistCentrality;            //!output histograms
 
  private:
   AliHadCorrTask(const AliHadCorrTask&);            // not implemented
   AliHadCorrTask &operator=(const AliHadCorrTask&); // not implemented
 
-  ClassDef(AliHadCorrTask, 5) // Hadronic correction task
+  ClassDef(AliHadCorrTask, 10) // Hadronic correction task
 };
 #endif