ROOT logo
#ifndef ALIANALYSISTASKCHECKHFMCPROD
#define ALIANALYSISTASKCHECKHFMCPROD

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

/* $Id$ */ 

//*************************************************************************
// Class AliAnalysisTaskCheckHFMCProd
// AliAnalysisTask to check MC production at ESD+Kine level
// 
//
// Author: F. Prino, prino@to.infn.it
//          
//*************************************************************************

class TList;
class TNtuple;
class TH1F;
class TH2F;
class TH3F;
class TTree;
class TString;
class AliESDEvent;
class AliESDfriend;
class AliStack;
class AliESDtrackCuts;

#include "AliAnalysisTaskSE.h"

class AliAnalysisTaskCheckHFMCProd : public AliAnalysisTaskSE {

 public:
  
  AliAnalysisTaskCheckHFMCProd();
  virtual ~AliAnalysisTaskCheckHFMCProd();

  virtual void   UserExec(Option_t *option);
  virtual void   UserCreateOutputObjects();
  virtual void   Terminate(Option_t *option);

  Int_t CheckLcDecay(Int_t labLc, AliStack* stack) const;
  void SetSearchUpToQuark(Bool_t opt){fSearchUpToQuark=opt;};


  void SetReadMC(Bool_t opt) {fReadMC=opt;}
  void SetpPb() {fSystem=2;}
  void SetPbPb() {fSystem=1;}
  void Setpp() {fSystem=0;}

 private:

  AliAnalysisTaskCheckHFMCProd(const AliAnalysisTaskCheckHFMCProd &source);
  AliAnalysisTaskCheckHFMCProd& operator=(const AliAnalysisTaskCheckHFMCProd &source);
  
  TList* fOutput;          //! list of output histos
  TH1F* fHistoNEvents;     //! histo with N of events  

  TH1F* fHistoPhysPrim;     //! histo of n. of physical primaries in |eta|<0.5
  TH1F* fHistoTracks;       //! histo with number of ESD tracks
  TH1F* fHistoSelTracks;    //! histo with number of TPC+ITS refit ESD tracks
  TH1F* fHistoTracklets;    //! histo with number of SPD tracklets
  TH1F* fHistoTrackletsEta1;//! histo with number of SPD tracklets in |eta|<1
  TH1F* fHistoPtPhysPrim;   //! histo of pt distribution of phys primaries
  TH1F* fHistoEtaPhysPrim;  //! histo of eta distribution of physical primaries
  
  TH1F* fHistoSPD3DVtxX;     //! histo with distr. of x coord. of SPD3D vertex
  TH1F* fHistoSPD3DVtxY;     //! histo with distr. of y coord. of SPD3D vertex
  TH1F* fHistoSPD3DVtxZ;     //! histo with distr. of z coord. of SPD3D vertex

  TH1F* fHistoSPDZVtxX;     //! histo with distr. of x coord. of SPDZ vertex
  TH1F* fHistoSPDZVtxY;     //! histo with distr. of y coord. of SPDZ vertex
  TH1F* fHistoSPDZVtxZ;     //! histo with distr. of z coord. of SPDZ vertex

  TH1F* fHistoTRKVtxX;     //! histo with distr. of x coord. of TRK vertex
  TH1F* fHistoTRKVtxY;     //! histo with distr. of y coord. of TRK vertex
  TH1F* fHistoTRKVtxZ;     //! histo with distr. of z coord. of TRK vertex

  TH2F* fHistoNcharmed;   //! histo of D mesons vs. dN/dy
  TH2F* fHistoNbVsNc;     //! histo of n. b quarks vs. n c. quarks

  TH2F*  fHistBYPtAllDecay[5];   //! histo of y vs. pt from prompt B0, B+, B*, Bs, Lb
  TH2F*  fHistYPtAllDecay[5];   //! histo of y vs. pt from prompt D0, D+, D*, Ds, Lc, no selection on decay channel  
  TH2F*  fHistYPtPromptAllDecay[5];   //! histo of y vs. pt from prompt D0, D+, D*, Ds, Lc, no selection on decay channel  
  TH2F*  fHistYPtFeeddownAllDecay[5];   //! histo of y vs. pt from prompt D0, D+, D*, Ds, Lc, no selection on decay channel
  TH2F*  fHistYPtPrompt[5];   //! histo of y vs. pt from prompt D0, D+, D*, Ds, Lc
  TH2F*  fHistYPtFeeddown[5]; //! histo of y vs. pt from feeddown D0, D+, D*, Ds, Lc
  TH2F* fHistYPtD0byDecChannel[2]; //! histo of y vs. pt for D0->Kpi and D0->Kpipipi
  TH2F* fHistYPtDplusbyDecChannel[3]; //! histo of y vs. pt for D+->Kpipi and D+->K0*pi
  TH2F* fHistYPtDsbyDecChannel[2]; //! histo of y vs. pt for Ds->phipi and Ds->K0*K
  TH1F* fHistOriginPrompt;    //! histo of D production point (prompt)
  TH1F* fHistOriginFeeddown;  //! histo of D production point (feeddown)
  TH1F* fHistMotherID;        //! histo of mother ID
  TH1F* fHistDSpecies;          //! histo of D hadron species
  TH1F* fHistBSpecies;          //! histo of B hadron species
  TH1F* fHistLcDecayChan;      //! histo of Lc decay modes
  TH2F* fHistNcollHFtype;      //! histo of B hadron species
  TH3F* fHistEtaPhiPtGenEle;   //! histo of generated electrons
  TH3F* fHistEtaPhiPtGenPi;   //! histo of generated pions
  TH3F* fHistEtaPhiPtGenK;   //! histo of generated kaons
  TH3F* fHistEtaPhiPtGenPro;   //! histo of generated protons
  TH3F* fHistEtaPhiPtRecEle;   //! histo of generated electrons
  TH3F* fHistEtaPhiPtRecPi;   //! histo of generated pions
  TH3F* fHistEtaPhiPtRecK;   //! histo of generated kaons
  TH3F* fHistEtaPhiPtRecPro;   //! histo of generated protons
  Bool_t fSearchUpToQuark; // c/b separation using quarks
  Int_t fSystem;         // 0=pp, 1=PbPb, 2=pPb
  AliESDtrackCuts *fESDtrackCuts; // track selection
  Bool_t fReadMC;

  ClassDef(AliAnalysisTaskCheckHFMCProd,7);
};


#endif
 AliAnalysisTaskCheckHFMCProd.h:1
 AliAnalysisTaskCheckHFMCProd.h:2
 AliAnalysisTaskCheckHFMCProd.h:3
 AliAnalysisTaskCheckHFMCProd.h:4
 AliAnalysisTaskCheckHFMCProd.h:5
 AliAnalysisTaskCheckHFMCProd.h:6
 AliAnalysisTaskCheckHFMCProd.h:7
 AliAnalysisTaskCheckHFMCProd.h:8
 AliAnalysisTaskCheckHFMCProd.h:9
 AliAnalysisTaskCheckHFMCProd.h:10
 AliAnalysisTaskCheckHFMCProd.h:11
 AliAnalysisTaskCheckHFMCProd.h:12
 AliAnalysisTaskCheckHFMCProd.h:13
 AliAnalysisTaskCheckHFMCProd.h:14
 AliAnalysisTaskCheckHFMCProd.h:15
 AliAnalysisTaskCheckHFMCProd.h:16
 AliAnalysisTaskCheckHFMCProd.h:17
 AliAnalysisTaskCheckHFMCProd.h:18
 AliAnalysisTaskCheckHFMCProd.h:19
 AliAnalysisTaskCheckHFMCProd.h:20
 AliAnalysisTaskCheckHFMCProd.h:21
 AliAnalysisTaskCheckHFMCProd.h:22
 AliAnalysisTaskCheckHFMCProd.h:23
 AliAnalysisTaskCheckHFMCProd.h:24
 AliAnalysisTaskCheckHFMCProd.h:25
 AliAnalysisTaskCheckHFMCProd.h:26
 AliAnalysisTaskCheckHFMCProd.h:27
 AliAnalysisTaskCheckHFMCProd.h:28
 AliAnalysisTaskCheckHFMCProd.h:29
 AliAnalysisTaskCheckHFMCProd.h:30
 AliAnalysisTaskCheckHFMCProd.h:31
 AliAnalysisTaskCheckHFMCProd.h:32
 AliAnalysisTaskCheckHFMCProd.h:33
 AliAnalysisTaskCheckHFMCProd.h:34
 AliAnalysisTaskCheckHFMCProd.h:35
 AliAnalysisTaskCheckHFMCProd.h:36
 AliAnalysisTaskCheckHFMCProd.h:37
 AliAnalysisTaskCheckHFMCProd.h:38
 AliAnalysisTaskCheckHFMCProd.h:39
 AliAnalysisTaskCheckHFMCProd.h:40
 AliAnalysisTaskCheckHFMCProd.h:41
 AliAnalysisTaskCheckHFMCProd.h:42
 AliAnalysisTaskCheckHFMCProd.h:43
 AliAnalysisTaskCheckHFMCProd.h:44
 AliAnalysisTaskCheckHFMCProd.h:45
 AliAnalysisTaskCheckHFMCProd.h:46
 AliAnalysisTaskCheckHFMCProd.h:47
 AliAnalysisTaskCheckHFMCProd.h:48
 AliAnalysisTaskCheckHFMCProd.h:49
 AliAnalysisTaskCheckHFMCProd.h:50
 AliAnalysisTaskCheckHFMCProd.h:51
 AliAnalysisTaskCheckHFMCProd.h:52
 AliAnalysisTaskCheckHFMCProd.h:53
 AliAnalysisTaskCheckHFMCProd.h:54
 AliAnalysisTaskCheckHFMCProd.h:55
 AliAnalysisTaskCheckHFMCProd.h:56
 AliAnalysisTaskCheckHFMCProd.h:57
 AliAnalysisTaskCheckHFMCProd.h:58
 AliAnalysisTaskCheckHFMCProd.h:59
 AliAnalysisTaskCheckHFMCProd.h:60
 AliAnalysisTaskCheckHFMCProd.h:61
 AliAnalysisTaskCheckHFMCProd.h:62
 AliAnalysisTaskCheckHFMCProd.h:63
 AliAnalysisTaskCheckHFMCProd.h:64
 AliAnalysisTaskCheckHFMCProd.h:65
 AliAnalysisTaskCheckHFMCProd.h:66
 AliAnalysisTaskCheckHFMCProd.h:67
 AliAnalysisTaskCheckHFMCProd.h:68
 AliAnalysisTaskCheckHFMCProd.h:69
 AliAnalysisTaskCheckHFMCProd.h:70
 AliAnalysisTaskCheckHFMCProd.h:71
 AliAnalysisTaskCheckHFMCProd.h:72
 AliAnalysisTaskCheckHFMCProd.h:73
 AliAnalysisTaskCheckHFMCProd.h:74
 AliAnalysisTaskCheckHFMCProd.h:75
 AliAnalysisTaskCheckHFMCProd.h:76
 AliAnalysisTaskCheckHFMCProd.h:77
 AliAnalysisTaskCheckHFMCProd.h:78
 AliAnalysisTaskCheckHFMCProd.h:79
 AliAnalysisTaskCheckHFMCProd.h:80
 AliAnalysisTaskCheckHFMCProd.h:81
 AliAnalysisTaskCheckHFMCProd.h:82
 AliAnalysisTaskCheckHFMCProd.h:83
 AliAnalysisTaskCheckHFMCProd.h:84
 AliAnalysisTaskCheckHFMCProd.h:85
 AliAnalysisTaskCheckHFMCProd.h:86
 AliAnalysisTaskCheckHFMCProd.h:87
 AliAnalysisTaskCheckHFMCProd.h:88
 AliAnalysisTaskCheckHFMCProd.h:89
 AliAnalysisTaskCheckHFMCProd.h:90
 AliAnalysisTaskCheckHFMCProd.h:91
 AliAnalysisTaskCheckHFMCProd.h:92
 AliAnalysisTaskCheckHFMCProd.h:93
 AliAnalysisTaskCheckHFMCProd.h:94
 AliAnalysisTaskCheckHFMCProd.h:95
 AliAnalysisTaskCheckHFMCProd.h:96
 AliAnalysisTaskCheckHFMCProd.h:97
 AliAnalysisTaskCheckHFMCProd.h:98
 AliAnalysisTaskCheckHFMCProd.h:99
 AliAnalysisTaskCheckHFMCProd.h:100
 AliAnalysisTaskCheckHFMCProd.h:101
 AliAnalysisTaskCheckHFMCProd.h:102
 AliAnalysisTaskCheckHFMCProd.h:103
 AliAnalysisTaskCheckHFMCProd.h:104
 AliAnalysisTaskCheckHFMCProd.h:105
 AliAnalysisTaskCheckHFMCProd.h:106
 AliAnalysisTaskCheckHFMCProd.h:107
 AliAnalysisTaskCheckHFMCProd.h:108
 AliAnalysisTaskCheckHFMCProd.h:109
 AliAnalysisTaskCheckHFMCProd.h:110
 AliAnalysisTaskCheckHFMCProd.h:111
 AliAnalysisTaskCheckHFMCProd.h:112
 AliAnalysisTaskCheckHFMCProd.h:113
 AliAnalysisTaskCheckHFMCProd.h:114
 AliAnalysisTaskCheckHFMCProd.h:115
 AliAnalysisTaskCheckHFMCProd.h:116