ROOT logo
#ifndef ALIANALYSISTASKMUONCUTS_H
#define ALIANALYSISTASKMUONCUTS_H

/* $Id: AliAnalysisTaskMuonCuts.h 47782 2011-02-24 18:37:31Z martinez $ */ 

// Class for muon pxDCA cuts tuning
// 
//  Author Diego Stocco

#include "AliVAnalysisMuon.h"
#include "TArrayD.h"

class TObjArray;
class AliMergeableCollection;
class TString;
class TAxis;
class AliVParticle;
class AliAODEvent;

class AliAnalysisTaskMuonCuts : public AliVAnalysisMuon {
 public:
  AliAnalysisTaskMuonCuts();
  AliAnalysisTaskMuonCuts(const char *name, const AliMuonTrackCuts& cuts);
  virtual ~AliAnalysisTaskMuonCuts();

  virtual void   Terminate(Option_t *option);

  void MyUserCreateOutputObjects();
  void ProcessEvent(TString physSel, const TObjArray& selectTrigClasses, TString centrality);

  enum {
    kThetaAbs23,
    kThetaAbs310,
    kNthetaAbs
  };

  void SetSigmaCuts(Int_t nSigmaCuts = -1, Double_t* sigmaCuts = 0x0);

 private:

  AliAnalysisTaskMuonCuts(const AliAnalysisTaskMuonCuts&);
  AliAnalysisTaskMuonCuts& operator=(const AliAnalysisTaskMuonCuts&);

  // Histograms to extract average DCA position
  enum {
    kDCAxVsP,      ///< DCA_x vs momentum
    kDCAyVsP,      ///< DCA_y vs momentum
    kPdcaVsP,      ///< p x DCA vs momentum (binning for fit)
    kPDCAVsPCheck, ///< p x DCA vs momentum (check beam gas)
    kDCAVsPCheck,  ///< DCA vs momentum
    kChiProbVsP,   ///< Chi square probability vs momentum
    kSigmaVsPt,    ///< pt distribution for different p x DCA sigma cuts
    kSigmaVsEta,   ///< eta distribution for different p x DCA sigma cuts
    kNhistoTypes   ///< Number of histograms
  };

  TString GetHistoName(Int_t histoTypeIndex, Int_t thetaAbsIndex, Int_t srcIndex);

  TObjArray* fHistoTypeKeys;   ///< Base histogram name
  TObjArray* fThetaAbsKeys;    ///< Name of theta at absorber end
  TArrayD fSigmaCuts;          ///< List of sigma cuts

  ClassDef(AliAnalysisTaskMuonCuts, 1); // Single muon analysis
};

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