ROOT logo
#ifndef ALIANALYSISTASKEMCALHIGHMULTTRIGGER_H
#define ALIANALYSISTASKEMCALHIGHMULTTRIGGER_H

// $Id$

class TH1;
class TH2;
class TH3;

#include "AliAnalysisTaskEmcalJet.h"

class AliAnalysisTaskEmcalHighMultTrigger : public AliAnalysisTaskEmcalJet {
 public:

  AliAnalysisTaskEmcalHighMultTrigger();
  AliAnalysisTaskEmcalHighMultTrigger(const char *name);
  virtual ~AliAnalysisTaskEmcalHighMultTrigger();

  void                        UserCreateOutputObjects();
  void                        Terminate(Option_t *option);

  //Setters
  void                        SetNExcludeLeadingPatches(Int_t n)  { fNExLP             = n; }
  void                        SetTruncateThreshold(Double_t t)    { fTruncateThreshold = t; }

 protected:
  void                        ExecOnce();
  Bool_t                      FillHistograms()   ;
  Bool_t                      Run()              ;
  
 private:
  Int_t                       fNExLP;                  //nr of leading patched to exclude from estimate
  Int_t                       fNAccPatches;            //nr of accepted patches
  Double_t                    fMedianEnergy;           //median event energy
  Double_t                    fMedianEnergyExLP;       //median event energy
  Double_t                    fSumEnergy;              //summed energy
  Double_t                    fSumEnergyExLP;          //summed energy
  Double_t                    fTruncatedMean;          //truncated mean
  Double_t                    fTruncateThreshold;      //threshold used for truncating

  //Histograms
  TH3F                       *fHistPatchEtaPhiE;              //! patch eta vs phi (center of patch) vs energy
  TH1F                       *fHistEnergyMedian;              //! median energy in EMCal
  TH1F                       *fHistEnergyMedianExLP;          //! median energy in EMCal exclucing N leading patches
  TH1F                       *fHistEnergySum;                 //! total energy in EMCal
  TH1F                       *fHistEnergySumExLP;             //! total energy in EMCal exclucing N leading patches
  TH1F                       *fHistTruncatedMean;             //! truncated mean in EMCal

  TH1F                       *fHistTracks;                    //! N hybrid tracks
  TH1F                       *fHistTracklets;                 //! Ntracklets
  TH1F                       *fHistV0MultSum;                 //! V0A+V0C multiplicity

  TH2F                       *fHistEnergyMedianEst[3];        //! median energy in EMCal vs mult estimator
  TH2F                       *fHistEnergyMedianExLPEst[3];    //! median energy in EMCal excluding N leading patches vs mult estimator
  TH2F                       *fHistEnergySumEst[3];           //! total energy in EMCal vs mult estimator
  TH2F                       *fHistEnergySumExLPEst[3];       //! total energy in EMCal excluding N leading patches vs mult estimator
  TH2F                       *fHistEnergySumAvgEst[3];        //! avg energy in EMCal vs mult estimator
  TH2F                       *fHistEnergySumAvgExLPEst[3];    //! avg energy in EMCal excluding N leading patches vs mult estimator
  TH2F                       *fHistTruncatedMeanEst[3];       //! truncated mean in EMCal vs mult estimator

  TH2F                       *fHistTracksTracklets;           //! Ntracks vs Ntracklets
  TH2F                       *fHistTracksV0MultSum;           //! Ntracks vs V0A+V0C
  TH3F                       *fHistSPDTrkClsSum;              //! correlation between SPD clusters and tracklets and total energy in EMCal
  TH3F                       *fHistSPDTrkClsSumExLP;          //! correlation between SPD clusters and tracklets and total energy in EMCal
  TH3F                       *fHistSPDTrkClsMedian;           //! correlation between SPD clusters and tracklets and median energy in EMCal
  TH3F                       *fHistSPDTrkClsMedianExLP;       //! correlation between SPD clusters and tracklets and median energy in EMCal
  TH3F                       *fHistSPDTrkClsTruncMean;        //! correlation between SPD clusters and tracklets and truncated mean in EMCal

  AliAnalysisTaskEmcalHighMultTrigger(const AliAnalysisTaskEmcalHighMultTrigger&);            // not implemented
  AliAnalysisTaskEmcalHighMultTrigger &operator=(const AliAnalysisTaskEmcalHighMultTrigger&); // not implemented

  ClassDef(AliAnalysisTaskEmcalHighMultTrigger, 4) // high multiplicity pp trigger analysis task
};
#endif
 AliAnalysisTaskEmcalHighMultTrigger.h:1
 AliAnalysisTaskEmcalHighMultTrigger.h:2
 AliAnalysisTaskEmcalHighMultTrigger.h:3
 AliAnalysisTaskEmcalHighMultTrigger.h:4
 AliAnalysisTaskEmcalHighMultTrigger.h:5
 AliAnalysisTaskEmcalHighMultTrigger.h:6
 AliAnalysisTaskEmcalHighMultTrigger.h:7
 AliAnalysisTaskEmcalHighMultTrigger.h:8
 AliAnalysisTaskEmcalHighMultTrigger.h:9
 AliAnalysisTaskEmcalHighMultTrigger.h:10
 AliAnalysisTaskEmcalHighMultTrigger.h:11
 AliAnalysisTaskEmcalHighMultTrigger.h:12
 AliAnalysisTaskEmcalHighMultTrigger.h:13
 AliAnalysisTaskEmcalHighMultTrigger.h:14
 AliAnalysisTaskEmcalHighMultTrigger.h:15
 AliAnalysisTaskEmcalHighMultTrigger.h:16
 AliAnalysisTaskEmcalHighMultTrigger.h:17
 AliAnalysisTaskEmcalHighMultTrigger.h:18
 AliAnalysisTaskEmcalHighMultTrigger.h:19
 AliAnalysisTaskEmcalHighMultTrigger.h:20
 AliAnalysisTaskEmcalHighMultTrigger.h:21
 AliAnalysisTaskEmcalHighMultTrigger.h:22
 AliAnalysisTaskEmcalHighMultTrigger.h:23
 AliAnalysisTaskEmcalHighMultTrigger.h:24
 AliAnalysisTaskEmcalHighMultTrigger.h:25
 AliAnalysisTaskEmcalHighMultTrigger.h:26
 AliAnalysisTaskEmcalHighMultTrigger.h:27
 AliAnalysisTaskEmcalHighMultTrigger.h:28
 AliAnalysisTaskEmcalHighMultTrigger.h:29
 AliAnalysisTaskEmcalHighMultTrigger.h:30
 AliAnalysisTaskEmcalHighMultTrigger.h:31
 AliAnalysisTaskEmcalHighMultTrigger.h:32
 AliAnalysisTaskEmcalHighMultTrigger.h:33
 AliAnalysisTaskEmcalHighMultTrigger.h:34
 AliAnalysisTaskEmcalHighMultTrigger.h:35
 AliAnalysisTaskEmcalHighMultTrigger.h:36
 AliAnalysisTaskEmcalHighMultTrigger.h:37
 AliAnalysisTaskEmcalHighMultTrigger.h:38
 AliAnalysisTaskEmcalHighMultTrigger.h:39
 AliAnalysisTaskEmcalHighMultTrigger.h:40
 AliAnalysisTaskEmcalHighMultTrigger.h:41
 AliAnalysisTaskEmcalHighMultTrigger.h:42
 AliAnalysisTaskEmcalHighMultTrigger.h:43
 AliAnalysisTaskEmcalHighMultTrigger.h:44
 AliAnalysisTaskEmcalHighMultTrigger.h:45
 AliAnalysisTaskEmcalHighMultTrigger.h:46
 AliAnalysisTaskEmcalHighMultTrigger.h:47
 AliAnalysisTaskEmcalHighMultTrigger.h:48
 AliAnalysisTaskEmcalHighMultTrigger.h:49
 AliAnalysisTaskEmcalHighMultTrigger.h:50
 AliAnalysisTaskEmcalHighMultTrigger.h:51
 AliAnalysisTaskEmcalHighMultTrigger.h:52
 AliAnalysisTaskEmcalHighMultTrigger.h:53
 AliAnalysisTaskEmcalHighMultTrigger.h:54
 AliAnalysisTaskEmcalHighMultTrigger.h:55
 AliAnalysisTaskEmcalHighMultTrigger.h:56
 AliAnalysisTaskEmcalHighMultTrigger.h:57
 AliAnalysisTaskEmcalHighMultTrigger.h:58
 AliAnalysisTaskEmcalHighMultTrigger.h:59
 AliAnalysisTaskEmcalHighMultTrigger.h:60
 AliAnalysisTaskEmcalHighMultTrigger.h:61
 AliAnalysisTaskEmcalHighMultTrigger.h:62
 AliAnalysisTaskEmcalHighMultTrigger.h:63
 AliAnalysisTaskEmcalHighMultTrigger.h:64
 AliAnalysisTaskEmcalHighMultTrigger.h:65
 AliAnalysisTaskEmcalHighMultTrigger.h:66
 AliAnalysisTaskEmcalHighMultTrigger.h:67
 AliAnalysisTaskEmcalHighMultTrigger.h:68
 AliAnalysisTaskEmcalHighMultTrigger.h:69
 AliAnalysisTaskEmcalHighMultTrigger.h:70
 AliAnalysisTaskEmcalHighMultTrigger.h:71
 AliAnalysisTaskEmcalHighMultTrigger.h:72
 AliAnalysisTaskEmcalHighMultTrigger.h:73
 AliAnalysisTaskEmcalHighMultTrigger.h:74