ROOT logo
#ifndef ALIANALYSISTASKSEMUONSHF_H
#define ALIANALYSISTASKSEMUONSHF_H

/* Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id$ */ 

//*************************************************************************
// Class AliAnalysisTaskSEMuonsHF
// AliAnalysisTaskSE for the single muon and dimuon from HF analysis
// Author: X-M. Zhang, zhang@clermont.in2p3.fr
//                     zhangxm@iopp.ccnu.edu.cn
//*************************************************************************

#include "AliAnalysisTaskSE.h"

class TString;
class TList;
class TClonesArray;
class AliMuonsHFHeader;
class AliMuonTrackCuts;
class AliMuonPairCuts;

class AliAnalysisTaskSEMuonsHF : public AliAnalysisTaskSE {
 public:

  AliAnalysisTaskSEMuonsHF();
  AliAnalysisTaskSEMuonsHF(const char *name, const AliMuonTrackCuts& cutsMuon, const AliMuonPairCuts& cutsDimu);
  virtual ~AliAnalysisTaskSEMuonsHF();

  virtual void Init();
  virtual void LocalInit() { Init(); }
  virtual void UserCreateOutputObjects();
  virtual void UserExec(Option_t *opt);
  virtual void Terminate(Option_t *opt);
  virtual void NotifyRun();

  void SetAnaMode(Int_t mode)      { fAnaMode      = ((mode>=0 && mode<3) ? mode : 0); }
  void SetIsOutputTree(Bool_t ist) { fIsOutputTree = ist;                              }
  void SetUseMC(Bool_t isMC)       { fIsMC         = isMC;                             }

  void SetEvsHCuts(Double_t cuts[5])  const { AliMuonsHFHeader::SetSelectionCuts(cuts);   }

 private:

  AliAnalysisTaskSEMuonsHF(const AliAnalysisTaskSEMuonsHF&);
  AliAnalysisTaskSEMuonsHF& operator=(const AliAnalysisTaskSEMuonsHF&);

  Int_t fAnaMode;        // = 0, ana both single muon and dimuon
                         // = 1, ana single muon
                         // = 2, ana dimuon
  Bool_t fIsOutputTree;  // flag used to switch on/off tree output
  Bool_t fIsMC;          // flag of whether the input is MC

  AliMuonTrackCuts *fCutsMuon;  // single muon selection cuts
  AliMuonPairCuts  *fCutsDimu;  // dimuon selection cuts

  AliMuonsHFHeader *fHeader;  // output for info at ev level
  TClonesArray  *fMuonClArr;  // output clones array for single mu
  TClonesArray  *fDimuClArr;  // output clones array for dimu
  TList *fListOutput;         // output list of histos

  ClassDef(AliAnalysisTaskSEMuonsHF, 7);
};

#endif
 AliAnalysisTaskSEMuonsHF.h:1
 AliAnalysisTaskSEMuonsHF.h:2
 AliAnalysisTaskSEMuonsHF.h:3
 AliAnalysisTaskSEMuonsHF.h:4
 AliAnalysisTaskSEMuonsHF.h:5
 AliAnalysisTaskSEMuonsHF.h:6
 AliAnalysisTaskSEMuonsHF.h:7
 AliAnalysisTaskSEMuonsHF.h:8
 AliAnalysisTaskSEMuonsHF.h:9
 AliAnalysisTaskSEMuonsHF.h:10
 AliAnalysisTaskSEMuonsHF.h:11
 AliAnalysisTaskSEMuonsHF.h:12
 AliAnalysisTaskSEMuonsHF.h:13
 AliAnalysisTaskSEMuonsHF.h:14
 AliAnalysisTaskSEMuonsHF.h:15
 AliAnalysisTaskSEMuonsHF.h:16
 AliAnalysisTaskSEMuonsHF.h:17
 AliAnalysisTaskSEMuonsHF.h:18
 AliAnalysisTaskSEMuonsHF.h:19
 AliAnalysisTaskSEMuonsHF.h:20
 AliAnalysisTaskSEMuonsHF.h:21
 AliAnalysisTaskSEMuonsHF.h:22
 AliAnalysisTaskSEMuonsHF.h:23
 AliAnalysisTaskSEMuonsHF.h:24
 AliAnalysisTaskSEMuonsHF.h:25
 AliAnalysisTaskSEMuonsHF.h:26
 AliAnalysisTaskSEMuonsHF.h:27
 AliAnalysisTaskSEMuonsHF.h:28
 AliAnalysisTaskSEMuonsHF.h:29
 AliAnalysisTaskSEMuonsHF.h:30
 AliAnalysisTaskSEMuonsHF.h:31
 AliAnalysisTaskSEMuonsHF.h:32
 AliAnalysisTaskSEMuonsHF.h:33
 AliAnalysisTaskSEMuonsHF.h:34
 AliAnalysisTaskSEMuonsHF.h:35
 AliAnalysisTaskSEMuonsHF.h:36
 AliAnalysisTaskSEMuonsHF.h:37
 AliAnalysisTaskSEMuonsHF.h:38
 AliAnalysisTaskSEMuonsHF.h:39
 AliAnalysisTaskSEMuonsHF.h:40
 AliAnalysisTaskSEMuonsHF.h:41
 AliAnalysisTaskSEMuonsHF.h:42
 AliAnalysisTaskSEMuonsHF.h:43
 AliAnalysisTaskSEMuonsHF.h:44
 AliAnalysisTaskSEMuonsHF.h:45
 AliAnalysisTaskSEMuonsHF.h:46
 AliAnalysisTaskSEMuonsHF.h:47
 AliAnalysisTaskSEMuonsHF.h:48
 AliAnalysisTaskSEMuonsHF.h:49
 AliAnalysisTaskSEMuonsHF.h:50
 AliAnalysisTaskSEMuonsHF.h:51
 AliAnalysisTaskSEMuonsHF.h:52
 AliAnalysisTaskSEMuonsHF.h:53
 AliAnalysisTaskSEMuonsHF.h:54
 AliAnalysisTaskSEMuonsHF.h:55
 AliAnalysisTaskSEMuonsHF.h:56
 AliAnalysisTaskSEMuonsHF.h:57
 AliAnalysisTaskSEMuonsHF.h:58
 AliAnalysisTaskSEMuonsHF.h:59
 AliAnalysisTaskSEMuonsHF.h:60
 AliAnalysisTaskSEMuonsHF.h:61
 AliAnalysisTaskSEMuonsHF.h:62
 AliAnalysisTaskSEMuonsHF.h:63
 AliAnalysisTaskSEMuonsHF.h:64
 AliAnalysisTaskSEMuonsHF.h:65
 AliAnalysisTaskSEMuonsHF.h:66
 AliAnalysisTaskSEMuonsHF.h:67