ROOT logo
#ifndef AliAnalysisTaskExtractV0pPb_H
#define AliAnalysisTaskExtractV0pPb_H

/**************************************************************************
 * 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.                  *
 **************************************************************************/

//-----------------------------------------------------------------
//      AliAnalysisTaskExtractV0pPb class
//      ------------------------------
//
//    Please see cxx file for more details.   
//             
//-----------------------------------------------------------------

// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//
// --- This version: 23rd March 2012 
//
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

class TList;
class TH1F;
class TH2F;
class TH3F;
class TVector3;
class THnSparse;

class AliESDpid;
class AliESDtrackCuts;
class AliAnalysisUtils;
class AliESDEvent;
class AliPhysicsSelection;
class AliCFContainer;

//#include "TString.h"
//#include "AliESDtrackCuts.h"
#include "AliAnalysisTaskSE.h"

class AliAnalysisTaskExtractV0pPb : public AliAnalysisTaskSE {
 public:
	AliAnalysisTaskExtractV0pPb();
	AliAnalysisTaskExtractV0pPb(const char *name);
	virtual ~AliAnalysisTaskExtractV0pPb();
	
	virtual void	 UserCreateOutputObjects();
	virtual void	 UserExec(Option_t *option);
	virtual void	 Terminate(Option_t *);

//---------------------------------------------------------------------------------------
//   Minimalistic Setters for configuration of task: pPb version, V0A
//---------------------------------------------------------------------------------------
  
  void SetTPCdEdxSelection ( Bool_t lTPCdEdxSelection = kTRUE ) { fTPCdEdxSelection = lTPCdEdxSelection; }
  
 private:
				// Note : In ROOT, "//!" means "do not stream the data from Master node to Worker node" ...
				// your data member object is created on the worker nodes and streaming is not needed.
				// http://root.cern.ch/download/doc/11InputOutput.pdf, page 14
	TList	*fListHistV0;	//! List of output objects
	TTree	*fTree;				//! Output Tree filled with V0 candidates
	TTree	*fTreeEvents;	//! Output Tree filled with Events

  AliPIDResponse *fPIDResponse;     // PID response object
  
  //Objects Controlling Task Behaviour 
  
  //Extra selections
  Bool_t fTPCdEdxSelection; //Configuration to apply extra TPC dE/dx selection for better filling of tree

  //Variables for Tree
	Float_t fTreeVariableChi2V0;         //!
	Float_t fTreeVariableDcaV0Daughters; //!
	Float_t fTreeVariableDcaV0ToPrimVertex; //!
	Float_t fTreeVariableDcaPosToPrimVertex; //!
	Float_t fTreeVariableDcaNegToPrimVertex; //!
	Float_t fTreeVariableDCAV0ToPrimVertex; //!
	Float_t fTreeVariableV0CosineOfPointingAngle; //!
	Float_t fTreeVariableV0Radius; //!
	Float_t fTreeVariablePt; //!
	Float_t fTreeVariableRapK0Short; //!
	Float_t fTreeVariableRapLambda; //!
	Float_t fTreeVariableInvMassK0s; //!
	Float_t fTreeVariableInvMassLambda; //!
	Float_t fTreeVariableInvMassAntiLambda; //!
	Float_t fTreeVariableAlphaV0; //!
	Float_t fTreeVariablePtArmV0;//!
	Float_t fTreeVariableNegTotMomentum; //!	
	Float_t fTreeVariablePosTotMomentum; //!
	Float_t fTreeVariableNegdEdxSig; //!
	Float_t fTreeVariablePosdEdxSig; //!
	Float_t fTreeVariableNegEta; //!
	Float_t fTreeVariablePosEta; //!

	Float_t fTreeVariableNSigmasPosProton; //!
	Float_t fTreeVariableNSigmasPosPion; //! 
	Float_t fTreeVariableNSigmasNegProton; //!
	Float_t fTreeVariableNSigmasNegPion; //! 
	
	Float_t fTreeVariableDistOverTotMom;//!
	Int_t   fTreeVariableLeastNbrCrossedRows;//!
	Float_t fTreeVariableLeastRatioCrossedRowsOverFindable;//!
  //This is only V0A centrality
	Float_t fTreeVariableCentrality ;//! 

  //Variables for Event Tree
  Float_t fTreeEventsCentrality; //!
 
//Note: TDistOverTotMom needs a mass hypothesis to be converted to proper decaylength.

//---------------------------------------------------------------------------------------  

  //V0A Centrality Distributions
	TH1F    *fHistCentralityProcessed;  //! All processed
	TH1F    *fHistCentralityTrigEvt;    //! Those selected by PS / Trigger
	TH1F    *fHistCentralityHasVtx;     //! Those that have a well-established vertex
	TH1F    *fHistCentralityVtxZ;			  //! Those whose vertex falls within |z|<10cm 


   AliAnalysisTaskExtractV0pPb(const AliAnalysisTaskExtractV0pPb&);            // not implemented
   AliAnalysisTaskExtractV0pPb& operator=(const AliAnalysisTaskExtractV0pPb&); // not implemented
  
   ClassDef(AliAnalysisTaskExtractV0pPb, 11);
};

#endif

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