ROOT logo
#ifndef ALIESDSKINTASK_H
#define ALIESDSKINTASK_H

// $Id$

#include "AliPhysicsSelectionTask.h"
#include "AliESDtrack.h"

class TTree;
class AliESDEvent;
class AliESDtrackCuts;

class AliEsdSkimTask : public AliAnalysisTaskSE {
 public:
  AliEsdSkimTask(const char *opt=0);

  void UserExec(Option_t *opt);
  void UserCreateOutputObjects();
  void SetCheckCond(Int_t c)       { fCheckCond     = c; }
  void SetCuts(AliESDtrackCuts *c) { fCuts          = c; }
  void SetDoCent(Bool_t b)         { fDoCent        = b; }
  void SetDoClus(Bool_t b)         { fDoClus        = b; }
  void SetDoEmC(Bool_t b)          { fDoEmCs        = b; }
  void SetDoEmT(Bool_t b)          { fDoEmT         = b; }
  void SetDoFmd(Bool_t b)          { fDoFmd         = b; }
  void SetDoMiniTracks(Bool_t b)   { fDoMiniTracks  = b; }
  void SetDoMult(Bool_t b)         { fDoMult        = b; }
  void SetDoMuonTracks(Bool_t b)   { fDoMuonTracks  = b; }
  void SetDoPhC(Bool_t b)          { fDoPCs         = b; }
  void SetDoPhT(Bool_t b)          { fDoPT          = b; }
  void SetDoPicoTracks(Bool_t b)   { fDoPicoTracks  = b; }
  void SetDoPileup(Bool_t b)       { fDoPileup      = b; }
  void SetDoPriV(Bool_t b)         { fDoPriv        = b; }
  void SetDoRP(Bool_t b)           { fDoRP          = b; }
  void SetDoSaveBytes(Bool_t b)    { fDoSaveBytes   = b; }
  void SetDoSpdV(Bool_t b)         { fDoSPDv        = b; }
  void SetDoT0(Bool_t b)           { fDoT0          = b; }
  void SetDoTof(Bool_t b)          { fDoTof         = b; }
  void SetDoTpcV(Bool_t b)         { fDoTPCv        = b; }
  void SetDoTracks(Bool_t b)       { fDoTracks      = b; }
  void SetDoV0(Bool_t b)           { fDoV0          = b; }
  void SetDoZdc(Bool_t b)          { fDoZDC         = b; }
  void SetEmcNames(const char *n)  { fEmcNames      = n; }
  void SetEmcalClusOnly(Bool_t b)  { fEmcalClusOnly = b; }
  void SetPhosClusOnly(Bool_t b)   { fPhosClusOnly  = b; }
  void SetRemoveCP(Bool_t b)       { fRemoveCP      = b; }
  void SetResetCov(Bool_t b)       { fResetCov      = b; }
  void SetTracks(const char *n)    { fTracks        = n; }

 protected:
  AliESDEvent     *fEvent;        //!esd event
  TTree           *fTree;         //!tree
  AliESDtrackCuts *fCuts;         // track cuts
  Bool_t           fDoZDC;        // do zdc
  Bool_t           fDoV0;         // do vzero
  Bool_t           fDoT0;         // do tzero
  Bool_t           fDoTPCv;       // do tpc vertex
  Bool_t           fDoSPDv;       // do spd vertex
  Bool_t           fDoPriv;       // do primary vertex
  Bool_t           fDoEmCs;       // do emcal cells
  Bool_t           fDoPCs;        // do phos cells
  Bool_t           fDoEmT;        // do emcal trigger
  Bool_t           fDoPT;         // do phos trigger
  Bool_t           fDoTracks;     // do tracks
  Bool_t           fDoFmd;        // do fmd
  Bool_t           fDoMult;       // do mult
  Bool_t           fDoTof;        // do TOF
  Bool_t           fDoPileup;     // do pileup
  Bool_t           fDoClus;       // do clusters
  Bool_t           fDoMuonTracks; // do muon tracks
  TString          fEmcNames;     // name of clusters
  Bool_t           fDoMiniTracks; // strip down tracks
  TString          fTracks;       // name of tracks (e.g. tracks propagated to EMCAL surface)
  Bool_t           fPhosClusOnly; // if true then only store PHOS clusters
  Bool_t           fEmcalClusOnly;// if true then only store EMCAL clusters
  Bool_t           fDoSaveBytes;  // if true then trim down some of the stored objects (mult, fmd)
  Bool_t           fDoCent;       // do centrality
  Bool_t           fDoRP;         // do reaction plane
  Bool_t           fRemoveCP;     // if false then keep constrained parameters (only reset covariance)
  Bool_t           fResetCov;     // if true reset covariance matrix of track
  Bool_t           fDoPicoTracks; // if true then do pico tracks
  Int_t            fCheckCond;    // if !=0 check certain conditions before event is accepted

 private:
  AliEsdSkimTask(const AliEsdSkimTask&);            // not implemented
  AliEsdSkimTask &operator=(const AliEsdSkimTask&); // not implemented

 ClassDef(AliEsdSkimTask, 5); // Esd trimming and skimming task
};
#endif
 AliEsdSkimTask.h:1
 AliEsdSkimTask.h:2
 AliEsdSkimTask.h:3
 AliEsdSkimTask.h:4
 AliEsdSkimTask.h:5
 AliEsdSkimTask.h:6
 AliEsdSkimTask.h:7
 AliEsdSkimTask.h:8
 AliEsdSkimTask.h:9
 AliEsdSkimTask.h:10
 AliEsdSkimTask.h:11
 AliEsdSkimTask.h:12
 AliEsdSkimTask.h:13
 AliEsdSkimTask.h:14
 AliEsdSkimTask.h:15
 AliEsdSkimTask.h:16
 AliEsdSkimTask.h:17
 AliEsdSkimTask.h:18
 AliEsdSkimTask.h:19
 AliEsdSkimTask.h:20
 AliEsdSkimTask.h:21
 AliEsdSkimTask.h:22
 AliEsdSkimTask.h:23
 AliEsdSkimTask.h:24
 AliEsdSkimTask.h:25
 AliEsdSkimTask.h:26
 AliEsdSkimTask.h:27
 AliEsdSkimTask.h:28
 AliEsdSkimTask.h:29
 AliEsdSkimTask.h:30
 AliEsdSkimTask.h:31
 AliEsdSkimTask.h:32
 AliEsdSkimTask.h:33
 AliEsdSkimTask.h:34
 AliEsdSkimTask.h:35
 AliEsdSkimTask.h:36
 AliEsdSkimTask.h:37
 AliEsdSkimTask.h:38
 AliEsdSkimTask.h:39
 AliEsdSkimTask.h:40
 AliEsdSkimTask.h:41
 AliEsdSkimTask.h:42
 AliEsdSkimTask.h:43
 AliEsdSkimTask.h:44
 AliEsdSkimTask.h:45
 AliEsdSkimTask.h:46
 AliEsdSkimTask.h:47
 AliEsdSkimTask.h:48
 AliEsdSkimTask.h:49
 AliEsdSkimTask.h:50
 AliEsdSkimTask.h:51
 AliEsdSkimTask.h:52
 AliEsdSkimTask.h:53
 AliEsdSkimTask.h:54
 AliEsdSkimTask.h:55
 AliEsdSkimTask.h:56
 AliEsdSkimTask.h:57
 AliEsdSkimTask.h:58
 AliEsdSkimTask.h:59
 AliEsdSkimTask.h:60
 AliEsdSkimTask.h:61
 AliEsdSkimTask.h:62
 AliEsdSkimTask.h:63
 AliEsdSkimTask.h:64
 AliEsdSkimTask.h:65
 AliEsdSkimTask.h:66
 AliEsdSkimTask.h:67
 AliEsdSkimTask.h:68
 AliEsdSkimTask.h:69
 AliEsdSkimTask.h:70
 AliEsdSkimTask.h:71
 AliEsdSkimTask.h:72
 AliEsdSkimTask.h:73
 AliEsdSkimTask.h:74
 AliEsdSkimTask.h:75
 AliEsdSkimTask.h:76
 AliEsdSkimTask.h:77
 AliEsdSkimTask.h:78
 AliEsdSkimTask.h:79
 AliEsdSkimTask.h:80
 AliEsdSkimTask.h:81
 AliEsdSkimTask.h:82
 AliEsdSkimTask.h:83
 AliEsdSkimTask.h:84
 AliEsdSkimTask.h:85
 AliEsdSkimTask.h:86
 AliEsdSkimTask.h:87
 AliEsdSkimTask.h:88
 AliEsdSkimTask.h:89
 AliEsdSkimTask.h:90