ROOT logo
#ifndef ALIANALYSISTASKMUONCOLLISIONMULTIPLICITY_H
#define ALIANALYSISTASKMUONCOLLISIONMULTIPLICITY_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/// \ingroup base
/// \class AliAnalysisTaskMultiplicity
/// \compute the number of Muons tracks as a function of the SPD tracklets multiplicity
/// Author Matthieu LENHARDT - SUBATECH, Nantes

#include "AliAnalysisTaskSE.h"

class AliAODEvent;
class AliESDEvent;
class AliAODTrack;
class AliESDMuonTrack;
class AliAODDimuon;
class TList;
class TArrayD;

class AliAnalysisTaskMuonCollisionMultiplicity : public AliAnalysisTaskSE
{
 public:
  AliAnalysisTaskMuonCollisionMultiplicity();
  AliAnalysisTaskMuonCollisionMultiplicity(const AliAnalysisTaskMuonCollisionMultiplicity& rhs);
  AliAnalysisTaskMuonCollisionMultiplicity& operator=(const AliAnalysisTaskMuonCollisionMultiplicity&);
  AliAnalysisTaskMuonCollisionMultiplicity(const Char_t* name);
  virtual ~AliAnalysisTaskMuonCollisionMultiplicity();
  
  // Implementation of interface methods
  virtual void UserCreateOutputObjects();
  virtual void UserExec(Option_t *option);
  virtual void Terminate(Option_t *option);
  virtual void NotifyRun();
  virtual void FinishTaskOutput();
  
  
  Double_t GetEtaCut()            {return fEtaCut;};        // Get the eta cut for the multiplicity estimation
  void SetEtaCut(Double_t etaCut) {fEtaCut = etaCut;};      // Set the eta cut for the multiplicity estimation
  
 private:
  
  Bool_t fIsInit;              //< Is the class initialized?
  
  AliAODEvent *fAOD;                  //!< AOD Event
  AliESDEvent *fESD;                  //!< ESD Event

  Double_t fEtaCut;                  //< Cut on the eta cut of the SPD tracklets

  Int_t fTrackletMultiplicity;       //< SPD tracklets multiplicity in the current event

  TList *fTriggerList;               //< list of all trigger histos
  TList *fSingleMuonList;            //< List of all single muons histos 
  TList *fDimuonList;                //< List of all dimuons histos
  TList *fMonteCarloList;            //< List of all histos containing MC info


  void Init();
  Bool_t CheckEventAOD();
  Bool_t CheckEventESD();
  void ComputeMultiplicity();
  Bool_t IsUsableMuon(AliAODTrack *track);
  Bool_t IsUsableMuon(AliESDMuonTrack *track);
  void FillHistosAOD(Int_t triggerClass);
  void FillHistosESD(Int_t triggerClass);
  void FillHistosMC();

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