ROOT logo
/**************************************************************************
* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
*                                                                        *
* Author: The ALICE Off-line Project.                                    *
* Contributors are mentioned in the code where appropriate.              *
*                                                                        *
* Permission to use, copy, modify and distribute this software and its   *
* documentation strictly for non-commercial purposes is hereby granted   *
* without fee, provided that the above copyright notice appears in all   *
* copies and that both the copyright notice and this permission notice   *
* appear in the supporting documentation. The authors make no claims     *
* about the suitability of this software for any purpose. It is          *
* provided "as is" without express or implied warranty.                  *
**************************************************************************/
//
// Flow task class for the ALICE HFE group
//
//
#ifndef ALIANALYSISTASKHFEQA_H
#define ALIANALYSISTASKHFEQA_H


#ifndef ALIANALYSISTASKSE_H
#include "AliAnalysisTaskSE.h"
#endif

#ifndef ROOT_TString
#include <TString.h>
#endif

#ifndef ROOT_TBits
#include <TBits.h>
#endif


class TList;
class AliHFEcuts;
class AliHFEpid;
class AliHFEpidQAmanager;
class AliAODMCHeader;
class TClonesArray;
class TH1F;


class AliAnalysisTaskHFEQA: public AliAnalysisTaskSE {
public:

  typedef enum{
    kpp = 0,
    kpPb = 1,
    kPbPb = 2
  } ESystem_t;
  

  AliAnalysisTaskHFEQA();
  AliAnalysisTaskHFEQA(const char *name);
  AliAnalysisTaskHFEQA(const AliAnalysisTaskHFEQA &ref);
  AliAnalysisTaskHFEQA& operator=(const AliAnalysisTaskHFEQA &ref);
  virtual void Copy(TObject &o) const;
  virtual ~AliAnalysisTaskHFEQA();
  
  virtual void  UserExec(Option_t */*option*/);
  virtual void  UserCreateOutputObjects();

  void SetDoTPConly(Bool_t tpconlydo)   { fTPConlydo = tpconlydo; };
  void SetDoTRDonly(Bool_t trdonlydo)   { fTRDonlydo = trdonlydo; };
  void SetDoTOFTPC(Bool_t toftpcdo)   { fTOFTPCdo = toftpcdo; };
  void SetDoTPCTRD(Bool_t tpctrddo)   { fTPCTRDdo = tpctrddo; };
  void SetDoTPCEMCal(Bool_t tpcemcaldo)   { fTPCEMCaldo = tpcemcaldo; };
  void SetAODAnalysis(Bool_t aodAnalysis)   { fAODAnalysis = aodAnalysis; };
  void SetCentralityEstimator(const char *estimator) { fCentralityEstimator = estimator; }
  void SetppAnalysis(){
    fCollisionSystem.SetBitNumber(kpPb, kFALSE); 
    fCollisionSystem.SetBitNumber(kPbPb, kFALSE); 
    fCollisionSystem.SetBitNumber(kpp, kTRUE); 
  }
  void SetpPbAnalysis() {
    fCollisionSystem.SetBitNumber(kpp, kFALSE); 
    fCollisionSystem.SetBitNumber(kPbPb, kFALSE); 
    fCollisionSystem.SetBitNumber(kpPb, kTRUE); 
  }
  void SetPbPbAnalysis() { 
    fCollisionSystem.SetBitNumber(kpp, kFALSE); 
    fCollisionSystem.SetBitNumber(kpPb, kFALSE); 
    fCollisionSystem.SetBitNumber(kPbPb, kTRUE); 
  };
  Bool_t Ispp() const { return fCollisionSystem.TestBitNumber(kpp); }
  Bool_t IsPbPb() const { return fCollisionSystem.TestBitNumber(kPbPb); }
  Bool_t IspPb() const { return fCollisionSystem.TestBitNumber(kpPb); }
  
  AliHFEpid *GetPIDTPConly() const { return fPIDTPConly; }
  AliHFEpid *GetPIDTRDonly() const { return fPIDTRDonly; }
  AliHFEpid *GetPIDTOFTPC() const { return fPIDTOFTPC; }
  AliHFEpid *GetPIDTPCTRD() const { return fPIDTPCTRD; }
  AliHFEpid *GetPIDTPCEMCal() const { return fPIDTPCEMCal; }
  AliHFEpidQAmanager *GetPIDQAManagerTRDonly() const { return fPIDqaTRDonly; }
  AliHFEpidQAmanager *GetPIDQAManagerTOFTPC() const { return fPIDqaTOFTPC; }
  AliHFEpidQAmanager *GetPIDQAManagerTPCTRD() const { return fPIDqaTPCTRD; }
  AliHFEpidQAmanager *GetPIDQAManagerTPCEMCal() const { return fPIDqaTPCEMCal; }
 

  void SetHFECuts(AliHFEcuts * const cuts) { fHFECuts = cuts; };
 
 private:
  TList     *fListHist;         //! TH list
  Bool_t    fAODAnalysis;       // AOD analysis
  AliAODMCHeader *fAODMCHeader;         // ! MC info AOD
  TClonesArray *fAODArrayMCInfo;        // ! MC info particle AOD
 
  // Cuts for HFE
  AliHFEcuts *fHFECuts;                   // HFE cuts
  AliHFEpid  *fPIDTPConly;                // PID cuts 
  AliHFEpid  *fPIDTRDonly;                // PID cuts 
  AliHFEpid  *fPIDTOFTPC;                 // PID cuts TOF-TPC only
  AliHFEpid  *fPIDTPCTRD;                 // PID cuts TPC-TRD 
  AliHFEpid  *fPIDTPCEMCal;                 // PID cuts TPC-EMCal 
  AliHFEpidQAmanager *fPIDqaTRDonly;       // QA Manager TOF TPC
  AliHFEpidQAmanager *fPIDqaTOFTPC;       // QA Manager TOF TPC
  AliHFEpidQAmanager *fPIDqaTPCTRD;       // QA Manager TPC TRD
  AliHFEpidQAmanager *fPIDqaTPCEMCal;       // QA Manager TPC EMCal
  TString fCentralityEstimator;         // Centrality Estimator
  TBits fCollisionSystem;              // Collision System;

  // Histo yields
  TH1F *fNbEvent;                      // Number of events
  TH1F *fTPConly;                      // TPC only electron yield
  TH1F *fTOFTPC;                      // TOF TPC  electron yield
  TH1F *fTPCTRD;                      // TPC TRD  electron yield
  TH1F *fTPCEMCal;                      // TPC EMCal electron yield

  // Do PID or not
  Bool_t fTPConlydo;                   // Do TPC only PID
  Bool_t fTRDonlydo;                   // Do TRD only PID
  Bool_t fTOFTPCdo;                    // Do TOF TPC 
  Bool_t fTPCTRDdo;                    // Do TPC TRD 
  Bool_t fTPCEMCaldo;                    // Do TPC EMCal 

  
  // Debuging Cuts step by step all centrality together: pt, step (6)
  //THnSparseF *fTrackingCuts; //! Tracking Cuts

  
  
  ClassDef(AliAnalysisTaskHFEQA, 3); // analysisclass
};

#endif
 AliAnalysisTaskHFEQA.h:1
 AliAnalysisTaskHFEQA.h:2
 AliAnalysisTaskHFEQA.h:3
 AliAnalysisTaskHFEQA.h:4
 AliAnalysisTaskHFEQA.h:5
 AliAnalysisTaskHFEQA.h:6
 AliAnalysisTaskHFEQA.h:7
 AliAnalysisTaskHFEQA.h:8
 AliAnalysisTaskHFEQA.h:9
 AliAnalysisTaskHFEQA.h:10
 AliAnalysisTaskHFEQA.h:11
 AliAnalysisTaskHFEQA.h:12
 AliAnalysisTaskHFEQA.h:13
 AliAnalysisTaskHFEQA.h:14
 AliAnalysisTaskHFEQA.h:15
 AliAnalysisTaskHFEQA.h:16
 AliAnalysisTaskHFEQA.h:17
 AliAnalysisTaskHFEQA.h:18
 AliAnalysisTaskHFEQA.h:19
 AliAnalysisTaskHFEQA.h:20
 AliAnalysisTaskHFEQA.h:21
 AliAnalysisTaskHFEQA.h:22
 AliAnalysisTaskHFEQA.h:23
 AliAnalysisTaskHFEQA.h:24
 AliAnalysisTaskHFEQA.h:25
 AliAnalysisTaskHFEQA.h:26
 AliAnalysisTaskHFEQA.h:27
 AliAnalysisTaskHFEQA.h:28
 AliAnalysisTaskHFEQA.h:29
 AliAnalysisTaskHFEQA.h:30
 AliAnalysisTaskHFEQA.h:31
 AliAnalysisTaskHFEQA.h:32
 AliAnalysisTaskHFEQA.h:33
 AliAnalysisTaskHFEQA.h:34
 AliAnalysisTaskHFEQA.h:35
 AliAnalysisTaskHFEQA.h:36
 AliAnalysisTaskHFEQA.h:37
 AliAnalysisTaskHFEQA.h:38
 AliAnalysisTaskHFEQA.h:39
 AliAnalysisTaskHFEQA.h:40
 AliAnalysisTaskHFEQA.h:41
 AliAnalysisTaskHFEQA.h:42
 AliAnalysisTaskHFEQA.h:43
 AliAnalysisTaskHFEQA.h:44
 AliAnalysisTaskHFEQA.h:45
 AliAnalysisTaskHFEQA.h:46
 AliAnalysisTaskHFEQA.h:47
 AliAnalysisTaskHFEQA.h:48
 AliAnalysisTaskHFEQA.h:49
 AliAnalysisTaskHFEQA.h:50
 AliAnalysisTaskHFEQA.h:51
 AliAnalysisTaskHFEQA.h:52
 AliAnalysisTaskHFEQA.h:53
 AliAnalysisTaskHFEQA.h:54
 AliAnalysisTaskHFEQA.h:55
 AliAnalysisTaskHFEQA.h:56
 AliAnalysisTaskHFEQA.h:57
 AliAnalysisTaskHFEQA.h:58
 AliAnalysisTaskHFEQA.h:59
 AliAnalysisTaskHFEQA.h:60
 AliAnalysisTaskHFEQA.h:61
 AliAnalysisTaskHFEQA.h:62
 AliAnalysisTaskHFEQA.h:63
 AliAnalysisTaskHFEQA.h:64
 AliAnalysisTaskHFEQA.h:65
 AliAnalysisTaskHFEQA.h:66
 AliAnalysisTaskHFEQA.h:67
 AliAnalysisTaskHFEQA.h:68
 AliAnalysisTaskHFEQA.h:69
 AliAnalysisTaskHFEQA.h:70
 AliAnalysisTaskHFEQA.h:71
 AliAnalysisTaskHFEQA.h:72
 AliAnalysisTaskHFEQA.h:73
 AliAnalysisTaskHFEQA.h:74
 AliAnalysisTaskHFEQA.h:75
 AliAnalysisTaskHFEQA.h:76
 AliAnalysisTaskHFEQA.h:77
 AliAnalysisTaskHFEQA.h:78
 AliAnalysisTaskHFEQA.h:79
 AliAnalysisTaskHFEQA.h:80
 AliAnalysisTaskHFEQA.h:81
 AliAnalysisTaskHFEQA.h:82
 AliAnalysisTaskHFEQA.h:83
 AliAnalysisTaskHFEQA.h:84
 AliAnalysisTaskHFEQA.h:85
 AliAnalysisTaskHFEQA.h:86
 AliAnalysisTaskHFEQA.h:87
 AliAnalysisTaskHFEQA.h:88
 AliAnalysisTaskHFEQA.h:89
 AliAnalysisTaskHFEQA.h:90
 AliAnalysisTaskHFEQA.h:91
 AliAnalysisTaskHFEQA.h:92
 AliAnalysisTaskHFEQA.h:93
 AliAnalysisTaskHFEQA.h:94
 AliAnalysisTaskHFEQA.h:95
 AliAnalysisTaskHFEQA.h:96
 AliAnalysisTaskHFEQA.h:97
 AliAnalysisTaskHFEQA.h:98
 AliAnalysisTaskHFEQA.h:99
 AliAnalysisTaskHFEQA.h:100
 AliAnalysisTaskHFEQA.h:101
 AliAnalysisTaskHFEQA.h:102
 AliAnalysisTaskHFEQA.h:103
 AliAnalysisTaskHFEQA.h:104
 AliAnalysisTaskHFEQA.h:105
 AliAnalysisTaskHFEQA.h:106
 AliAnalysisTaskHFEQA.h:107
 AliAnalysisTaskHFEQA.h:108
 AliAnalysisTaskHFEQA.h:109
 AliAnalysisTaskHFEQA.h:110
 AliAnalysisTaskHFEQA.h:111
 AliAnalysisTaskHFEQA.h:112
 AliAnalysisTaskHFEQA.h:113
 AliAnalysisTaskHFEQA.h:114
 AliAnalysisTaskHFEQA.h:115
 AliAnalysisTaskHFEQA.h:116
 AliAnalysisTaskHFEQA.h:117
 AliAnalysisTaskHFEQA.h:118
 AliAnalysisTaskHFEQA.h:119
 AliAnalysisTaskHFEQA.h:120
 AliAnalysisTaskHFEQA.h:121
 AliAnalysisTaskHFEQA.h:122
 AliAnalysisTaskHFEQA.h:123
 AliAnalysisTaskHFEQA.h:124
 AliAnalysisTaskHFEQA.h:125
 AliAnalysisTaskHFEQA.h:126
 AliAnalysisTaskHFEQA.h:127
 AliAnalysisTaskHFEQA.h:128
 AliAnalysisTaskHFEQA.h:129
 AliAnalysisTaskHFEQA.h:130
 AliAnalysisTaskHFEQA.h:131
 AliAnalysisTaskHFEQA.h:132
 AliAnalysisTaskHFEQA.h:133
 AliAnalysisTaskHFEQA.h:134
 AliAnalysisTaskHFEQA.h:135
 AliAnalysisTaskHFEQA.h:136
 AliAnalysisTaskHFEQA.h:137
 AliAnalysisTaskHFEQA.h:138
 AliAnalysisTaskHFEQA.h:139
 AliAnalysisTaskHFEQA.h:140
 AliAnalysisTaskHFEQA.h:141
 AliAnalysisTaskHFEQA.h:142
 AliAnalysisTaskHFEQA.h:143
 AliAnalysisTaskHFEQA.h:144
 AliAnalysisTaskHFEQA.h:145
 AliAnalysisTaskHFEQA.h:146
 AliAnalysisTaskHFEQA.h:147