ROOT logo
#ifndef ALIANALYSISTASKCHECKCASCADE_H
#define ALIANALYSISTASKCHECKCASCADE_H

/*  See cxx source for full Copyright notice */

//-----------------------------------------------------------------
//                 AliAnalysisTaskCheckCascade class
//            (AliAnalysisTaskCheckCascade)
//            This task has four roles :
//              1. QAing the Cascades from ESD and AOD
//                 Origin:  AliAnalysisTaskESDCheckV0 by B.H. Nov2007, hippolyt@in2p3.fr
//              2. Prepare the plots which stand as raw material for yield extraction (wi/wo PID)
//              3. Supply an AliCFContainer meant to define the optimised topological selections
//              4. Rough azimuthal correlation study (Eta, Phi)
//            Adapted to Cascade : A.Maire Mar2008, antonin.maire@ires.in2p3.fr
//            Modified :           A.Maire Mar2010, antonin.maire@ires.in2p3.fr
//-----------------------------------------------------------------

class TList;
class TH1F;
class TH2F;
class TH3F;
class TVector3;
#include "THnSparse.h"
 
class AliESDpid;
class AliESDEvent;
class AliESDtrackCuts;
class AliCFContainer;


#include "TString.h"

#include "AliAnalysisTaskSE.h"

class AliAnalysisTaskCheckCascade : public AliAnalysisTaskSE {
 public:
  AliAnalysisTaskCheckCascade();
  AliAnalysisTaskCheckCascade(const char *name);
  virtual ~AliAnalysisTaskCheckCascade();
  
  virtual void   UserCreateOutputObjects();
  virtual void   UserExec(Option_t *option);
	  void   DoAngularCorrelation(const Char_t   *lCascType, 
				            Double_t  lInvMassCascade, 
				      const Int_t    *lArrTrackID,
				            TVector3 &lTVect3MomXi, 
				            Double_t  lEtaXi,
                                            Double_t  lRapCascade);
  virtual Int_t  DoESDTrackWithTPCrefitMultiplicity(const AliESDEvent *lESDevent);
  
  virtual void   Terminate(Option_t *);
  
  void SetCollidingSystems           (Short_t collidingSystems          = 0    ) { fCollidingSystems = collidingSystems;}
  void SetAnalysisType               (const char* analysisType          = "ESD") { fAnalysisType     = analysisType;}
  void SetTriggerMaskType            (const char* triggerMaskType       = "kMB") { fTriggerMaskType  = triggerMaskType;}
  void SetRelaunchV0CascVertexers    (Bool_t rerunV0CascVertexers       = 0    ) { fkRerunV0CascVertexers         =  rerunV0CascVertexers;      }
  void SetQualityCutZprimVtxPos      (Bool_t qualityCutZprimVtxPos      = kTRUE) { fkQualityCutZprimVtxPos        =  qualityCutZprimVtxPos;     }
  void SetRejectEventPileUp          (Bool_t rejectPileUp               = kTRUE) { fkRejectEventPileUp            =  rejectPileUp;              }
  void SetQualityCutNoTPConlyPrimVtx (Bool_t qualityCutNoTPConlyPrimVtx = kTRUE) { fkQualityCutNoTPConlyPrimVtx   =  qualityCutNoTPConlyPrimVtx;}
  void SetQualityCutTPCrefit         (Bool_t qualityCutTPCrefit         = kTRUE) { fkQualityCutTPCrefit           =  qualityCutTPCrefit;        }
  void SetQualityCut80TPCcls         (Bool_t qualityCut80TPCcls         = kTRUE) { fkQualityCut80TPCcls           =  qualityCut80TPCcls;        }
  void SetAlephParamFor1PadTPCCluster(Bool_t onePadTPCCluster           = kTRUE) { fkIsDataRecoWith1PadTPCCluster = onePadTPCCluster ;          }
  void SetExtraSelections            (Bool_t extraSelections            = 0    ) { fkExtraSelections              =  extraSelections;           }
  void SetAngularCorrelationType     (const char* correlationType       = "TrigLeadingTrck-AssoCasc") {fAngularCorrelationType = correlationType; }


 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


        TString         fAnalysisType;                  // "ESD" or "AOD" analysis type
        TString         fTriggerMaskType;               // type of trigger to use in UserExec : AliVEvent::kMB or kHighMult ?
        Short_t         fCollidingSystems;              // 0 = pp collisions or 1 = AA collisions

        AliESDpid       *fESDpid;                       // Tool data member to manage the TPC Bethe-Bloch info
        AliESDtrackCuts *fESDtrackCuts;                 // ESD track cuts used for primary track definition
        //TPaveText       *fPaveTextBookKeeping;          // TString to store all the relevant info necessary for book keeping (v0 cuts, cascade cuts, quality cuts, ...)

        Bool_t          fkRerunV0CascVertexers;         // Boolean : kTRUE = relaunch both V0 + Cascade vertexers
        Bool_t          fkQualityCutZprimVtxPos;        // Boolean : kTRUE = cut on the prim.vtx  z-position
        Bool_t          fkRejectEventPileUp;            // Boolean : kTRUE = enable the rejection of events tagged as pile-up by SPD (AliESDEvent::IsPileupFromSPD)
        Bool_t          fkQualityCutNoTPConlyPrimVtx;   // Boolean : kTRUE = prim vtx should be SPD or Tracking vertex
        Bool_t          fkQualityCutTPCrefit;           // Boolean : kTRUE = ask for TPCrefit for the 3 daughter tracks
        Bool_t          fkQualityCut80TPCcls;           // Boolean : kTRUE = ask for 80 TPC clusters for each daughter track
        Bool_t          fkIsDataRecoWith1PadTPCCluster; // Boolean : kTRUE = data reconstructed with the "one pad cluster" algo in TPC (important for the ALEPH param for TPC PID)
        Bool_t          fkExtraSelections;              // Boolean : kTRUE = apply tighter selections, before starting the analysis
        TString         fAngularCorrelationType;        // type of correlation to compute : "TrigAnyCasc-AssoAnyPrim", "TrigCascLeading-AssoAnyPrim", "TrigLeadingTrck-AssoCasc"
        
        Double_t        fAlephParameters[5];            // Array to store the 5 param values for the TPC Bethe-Bloch parametrisation
        Double_t        fV0Sels[7];                     // Array to store the 7 values for the different selections V0 related (if fkRerunV0CascVertexers)
        Double_t        fCascSels[8];                   // Array to store the 8 values for the different selections Casc. related (if fkRerunV0CascVertexers)


             TList      *fListHistCascade;              //! List of Cascade histograms
        
        // - General histos (filled before the trigger selection)
        TH1F    *fHistCascadeMultiplicityBeforeTrigSel; //! Cascade multiplicity distribution
         
        // - General histos (filled for any triggered event)
        TH1F    *fHistCascadeMultiplicityForTrigEvt;              //! Cascade multiplicity distribution
        TH1F    *fHistTrackMultiplicityForTrigEvt;                //! Track multiplicity distribution (without any cut = include ITS stand-alone + global tracks)
        TH1F    *fHistTPCrefitTrackMultiplicityForTrigEvt;        //! Track multiplicity distribution for tracks with TPCrefit
        TH1F    *fHistPrimaryTrackMultiplicityForTrigEvt;         //! Track multiplicity distribution for the primary tracks (See fESDtrackCuts)
        TH1F    *fHistEstimateITSTPCMultiplicityForTrigEvt;       //! (ITS+TPC tracks + SPD tracklets) multiplicity estimation from Ruben's work
        
        // - General histos (filled for any triggered event + (|z(prim. vtx)| < 10 cm ) )
        TH1F    *fHistCascadeMultiplicityForTrigEvtAndZprimVtx;   //! Cascade multiplicity distribution
        
        // - General histos (filled for any triggered event + (|z(prim. vtx)| < 10 cm ) + after pile-up rejection from SPD )
        TH1F    *fHistCascadeMultiplicityForTrigEvtNonPiledUpAndZprimVtx;   //! Cascade multiplicity distribution

        // - General histos (filled for events selected in this analysis (|z(prim. vtx)| < 10 cm + prim vtx = SPD or Tracking) )
        TH1F    *fHistCascadeMultiplicityForSelEvt;     //! Cascade multiplicity distribution
        TH1F    *fHistPosBestPrimaryVtxXForSelEvt;      //! (best) primary vertex position distribution in x 
        TH1F    *fHistPosBestPrimaryVtxYForSelEvt;      //! (best) primary vertex position distribution in y
        TH1F    *fHistPosBestPrimaryVtxZForSelEvt;      //! (best) primary vertex position distribution in z
        
        
        

        // - Characteristics for event with >1 cascade : Track Multiplicity, TPC clusters + Prim. vertex positions
        TH1F	*fHistTPCrefitTrackMultiplicityForCascadeEvt;   //! TPCrefit Track multiplicity distribution for event with >1 cascade candidate (NB: after quality sel. within the task)
        TH1F    *fHistPrimaryTrackMultiplicityForCascadeEvt;    //! Track multiplicity distribution for the primary tracks for event with >1 cascade candidate (See fESDtrackCuts)

        TH1F    *fHistPosV0TPCClusters;                 //! TPC clusters distribution for Positive V0 daughter track
        TH1F    *fHistNegV0TPCClusters;                 //! TPC clusters distribution for Negative V0 daughter track
        TH1F    *fHistBachTPCClusters;                  //! TPC clusters distribution for Bachelor             track

        TH1F    *fHistVtxStatus;                        //! Is there a tracking vertex in the cascade event ?

                // Vtx coming from the full tracking, for events containing at least a cascade
        TH1F    *fHistPosTrkgPrimaryVtxXForCascadeEvt;  //! primary vertex position distribution in x 
        TH1F    *fHistPosTrkgPrimaryVtxYForCascadeEvt;  //! primary vertex position distribution in y
        TH1F    *fHistPosTrkgPrimaryVtxZForCascadeEvt;  //! primary vertex position distribution in z
        TH1F    *fHistTrkgPrimaryVtxRadius;             //! primary vertex (3D) radius distribution 

                // Best primary Vtx available, for events containing at least a cascade
        TH1F    *fHistPosBestPrimaryVtxXForCascadeEvt;  //! (best) primary vertex position distribution in x 
        TH1F    *fHistPosBestPrimaryVtxYForCascadeEvt;  //! (best) primary vertex position distribution in y
        TH1F    *fHistPosBestPrimaryVtxZForCascadeEvt;  //! (best) primary vertex position distribution in z
        TH1F    *fHistBestPrimaryVtxRadius;             //! (best) primary vertex radius distribution 

                // Correlation Best Vtx / Full Tracking Vtx
        TH2F    *f2dHistTrkgPrimVtxVsBestPrimVtx;       //!  Radius of prim. Vtx from tracks Vs Radius of best Prim. Vtx


// PART 1 : Adavanced QA
// - Typical histos on the variables used for the selection of cascades
        TH1F    *fHistEffMassXi;      			//! reconstructed cascade effective mass
        TH1F    *fHistChi2Xi;         			//! chi2 value
        TH1F    *fHistDcaXiDaughters; 			//! dca between Xi's daughters
        TH1F    *fHistDcaBachToPrimVertex;		//! dca of the bachelor track to primary vertex
        TH1F    *fHistXiCosineOfPointingAngle;		//! cosine of Xi pointing angle in a cascade
        TH1F    *fHistXiRadius;                         //! (transverse) radius of the cascade vertex 
		
	// - Histos about ~ the "V0 selection part" of the cascade,  coming by inheritance from AliESDv0
	TH1F	*fHistMassLambdaAsCascDghter;		//! Test Invariant Mass of Lambda coming from Cascade
	TH1F	*fHistV0Chi2Xi;				//! V0 chi2 distribution, for the V0 associated to a cascade
	TH1F	*fHistDcaV0DaughtersXi;			//! Dca between V0 daughters, for the V0 associated to a cascade
	TH1F	*fHistDcaV0ToPrimVertexXi;		//! Dca of V0 to primary vertex, for the V0 associated to a cascade	
	TH1F	*fHistV0CosineOfPointingAngleXi;	//! Cosine of V0 pointing angle, for the V0 associated to a cascade
	TH1F	*fHistV0RadiusXi;			//! V0 (transverse) distance distribution, for the V0 associated to a cascade

	TH1F	*fHistDcaPosToPrimVertexXi;		//! Dca of V0 positive daughter to primary vertex, for the V0 associated to a cascade
	TH1F	*fHistDcaNegToPrimVertexXi;		//! Dca of V0 negative daughter to primary vertex, for the V0 associated to a cascade
	

	// - Effective mass histos for cascades.
	TH1F	*fHistMassXiMinus;			//! reconstructed cascade effective mass, under Xi- hyp.
	TH1F	*fHistMassXiPlus;			//! reconstructed cascade effective mass, under Xi+ hyp.
	TH1F	*fHistMassOmegaMinus;			//! reconstructed cascade effective mass, under Omega- hyp.
	TH1F	*fHistMassOmegaPlus;			//! reconstructed cascade effective mass, under Omega+ hyp.
	
	TH1F	*fHistMassWithCombPIDXiMinus;		//! reconstructed Xi- effective mass, with bach. comb PID
	TH1F	*fHistMassWithCombPIDXiPlus;		//! reconstructed Xi+ effective mass, with bach. comb PID
	TH1F	*fHistMassWithCombPIDOmegaMinus;	//! reconstructed Omega- effective mass, with bach. comb PID
	TH1F	*fHistMassWithCombPIDOmegaPlus;		//! reconstructed Omega+ effective mass, with bach. comb PID

	// - Complements for QA
        TH1F	*fHistXiTransvMom;                      //! Xi transverse momentum, around the mass peak of Xi-/+ 
	TH1F	*fHistXiTotMom;                         //! Xi momentum norm, around the mass peak of Xi-/+
	
	TH1F	*fHistBachTransvMomXi;                  //! bachelor transverse momentum, for cand. around the mass peak of Xi-/+
	TH1F	*fHistBachTotMomXi;                     //! bachelor momentum norm, for cand. around the mass peak of Xi-/+

	TH1F	*fHistChargeXi;				//! Charge sign of the cascade candidate
	TH1F	*fHistV0toXiCosineOfPointingAngle;	//! Cos. of Pointing angle between the V0 mom and the Xi-V0 vtx line
  
	TH1F	*fHistRapXi;                            //! rapidity of Xi candidates, around the mass peak of Xi-/+
	TH1F	*fHistRapOmega;                         //! rapidity of Omega candidates, around the mass peak of Omega-/+
	TH1F	*fHistEtaXi;                            //! eta distrib. of all the cascade candidates, around the mass peak of Xi-/+
	TH1F	*fHistThetaXi;                          //! theta distrib. of all the cascade candidates, around the mass peak of Xi-/+
	TH1F	*fHistPhiXi;                            //! phi distrib. of all the cascade candidates, around the mass peak of Xi-/+
        
        TH1F    *fHistcTauXiMinus;                      //! lifetime c.Tau, around the mass peak of Xi-
        TH1F    *fHistcTauXiPlus;                       //! lifetime c.Tau, around the mass peak of Xi+
        TH1F    *fHistcTauOmegaMinus;                   //! lifetime c.Tau, around the mass peak of Omega-
        TH1F    *fHistcTauOmegaPlus;                    //! lifetime c.Tau, around the mass peak of Omega+
	
	TH2F	*f2dHistArmenteros;			//! alpha(casc. cand.) Vs PtArm(casc. cand.)
	
	TH2F	*f2dHistEffMassLambdaVsEffMassXiMinus;	//! Xi- Eff mass Vs V0 Eff mass, under Xi- hyp.
	TH2F	*f2dHistEffMassXiVsEffMassOmegaMinus;	//! Xi- Eff mass Vs Omega- Eff mass, for negative cascades
	TH2F	*f2dHistEffMassLambdaVsEffMassXiPlus;	//! Xi+ Eff mass Vs V0 Eff mass, under Xi+ hyp.
	TH2F	*f2dHistEffMassXiVsEffMassOmegaPlus;	//! Xi+ Eff mass Vs Omega+ Eff mass, for positive cascades
	
	TH2F	*f2dHistXiRadiusVsEffMassXiMinus;	//! transv. casc. decay radius Vs Xi- Eff mass, under Xi- hyp.
	TH2F	*f2dHistXiRadiusVsEffMassXiPlus;	//! transv. casc. decay radius Vs Xi+ Eff mass, under Xi+ hyp.
	TH2F	*f2dHistXiRadiusVsEffMassOmegaMinus;	//! transv. casc. decay radius Vs Omega- Eff mass, under Omega- hyp.
	TH2F	*f2dHistXiRadiusVsEffMassOmegaPlus;	//! transv. casc. decay radius Vs Omega+ Eff mass, under Omega+ hyp.
        
        TH2F    *f2dHistTPCdEdxOfCascDghters;           //! TPC Bethe-Bloch curve, populated with the cascade daughters
	
	
	// PART 2 : TH3F needed for pt spectrum and yield extraction
	// Without any PID
	TH3F	*f3dHistXiPtVsEffMassVsYXiMinus;        //! casc. transv. momemtum Vs Xi- Eff mass Vs Y
	TH3F	*f3dHistXiPtVsEffMassVsYXiPlus;         //! casc. transv. momemtum Vs Xi+ Eff mass Vs Y
	TH3F	*f3dHistXiPtVsEffMassVsYOmegaMinus;     //! casc. transv. momemtum Vs Omega- Eff mass Vs Y
	TH3F	*f3dHistXiPtVsEffMassVsYOmegaPlus;      //! casc. transv. momemtum Vs Omega+ Eff mass Vs Y
	
	// Compilation of all PID plots (3D = casc. transv. momemtum Vs Casc Eff mass Vs Y), stored into an AliCFContainer
	AliCFContainer  *fCFContCascadePIDXiMinus;      //! for Xi-   : Container to store any 3D histos with the different PID flavours
	AliCFContainer  *fCFContCascadePIDXiPlus;       //! for Xi+   : Container to store any 3D histos with the different PID flavours
	AliCFContainer  *fCFContCascadePIDOmegaMinus;   //! for Omega-: Container to store any 3D histos with the different PID flavours
	AliCFContainer  *fCFContCascadePIDOmegaPlus;    //! for Omega+: Container to store any 3D histos with the different PID flavours
	
	
	
	// PART 3 : Towards the optimisation of topological selections / systematics
	AliCFContainer  *fCFContCascadeCuts;            //! Container meant to store all the relevant distributions corresponding to the cut variables
	
	
	// PART 4 :  Azimuthal correlation study
	THnSparseF	*fHnSpAngularCorrXiMinus;	//! Delta Phi(Casc,any trck) Vs Delta Eta(Casc,any trck) Vs Casc Pt Vs Pt of the tracks Vs Eff Mass
	THnSparseF	*fHnSpAngularCorrXiPlus;	//! Delta Phi(Casc,any trck) Vs Delta Eta(Casc,any trck) Vs Casc Pt Vs Pt of the tracks Vs Eff Mass
	THnSparseF	*fHnSpAngularCorrOmegaMinus;	//! Delta Phi(Casc,any trck) Vs Delta Eta(Casc,any trck) Vs Casc Pt Vs Pt of the tracks Vs Eff Mass
	THnSparseF	*fHnSpAngularCorrOmegaPlus;	//! Delta Phi(Casc,any trck) Vs Delta Eta(Casc,any trck) Vs Casc Pt Vs Pt of the tracks Vs Eff Mass


  AliAnalysisTaskCheckCascade(const AliAnalysisTaskCheckCascade&);            // not implemented
  AliAnalysisTaskCheckCascade& operator=(const AliAnalysisTaskCheckCascade&); // not implemented
  
  ClassDef(AliAnalysisTaskCheckCascade, 13);
};

#endif
 AliAnalysisTaskCheckCascade.h:1
 AliAnalysisTaskCheckCascade.h:2
 AliAnalysisTaskCheckCascade.h:3
 AliAnalysisTaskCheckCascade.h:4
 AliAnalysisTaskCheckCascade.h:5
 AliAnalysisTaskCheckCascade.h:6
 AliAnalysisTaskCheckCascade.h:7
 AliAnalysisTaskCheckCascade.h:8
 AliAnalysisTaskCheckCascade.h:9
 AliAnalysisTaskCheckCascade.h:10
 AliAnalysisTaskCheckCascade.h:11
 AliAnalysisTaskCheckCascade.h:12
 AliAnalysisTaskCheckCascade.h:13
 AliAnalysisTaskCheckCascade.h:14
 AliAnalysisTaskCheckCascade.h:15
 AliAnalysisTaskCheckCascade.h:16
 AliAnalysisTaskCheckCascade.h:17
 AliAnalysisTaskCheckCascade.h:18
 AliAnalysisTaskCheckCascade.h:19
 AliAnalysisTaskCheckCascade.h:20
 AliAnalysisTaskCheckCascade.h:21
 AliAnalysisTaskCheckCascade.h:22
 AliAnalysisTaskCheckCascade.h:23
 AliAnalysisTaskCheckCascade.h:24
 AliAnalysisTaskCheckCascade.h:25
 AliAnalysisTaskCheckCascade.h:26
 AliAnalysisTaskCheckCascade.h:27
 AliAnalysisTaskCheckCascade.h:28
 AliAnalysisTaskCheckCascade.h:29
 AliAnalysisTaskCheckCascade.h:30
 AliAnalysisTaskCheckCascade.h:31
 AliAnalysisTaskCheckCascade.h:32
 AliAnalysisTaskCheckCascade.h:33
 AliAnalysisTaskCheckCascade.h:34
 AliAnalysisTaskCheckCascade.h:35
 AliAnalysisTaskCheckCascade.h:36
 AliAnalysisTaskCheckCascade.h:37
 AliAnalysisTaskCheckCascade.h:38
 AliAnalysisTaskCheckCascade.h:39
 AliAnalysisTaskCheckCascade.h:40
 AliAnalysisTaskCheckCascade.h:41
 AliAnalysisTaskCheckCascade.h:42
 AliAnalysisTaskCheckCascade.h:43
 AliAnalysisTaskCheckCascade.h:44
 AliAnalysisTaskCheckCascade.h:45
 AliAnalysisTaskCheckCascade.h:46
 AliAnalysisTaskCheckCascade.h:47
 AliAnalysisTaskCheckCascade.h:48
 AliAnalysisTaskCheckCascade.h:49
 AliAnalysisTaskCheckCascade.h:50
 AliAnalysisTaskCheckCascade.h:51
 AliAnalysisTaskCheckCascade.h:52
 AliAnalysisTaskCheckCascade.h:53
 AliAnalysisTaskCheckCascade.h:54
 AliAnalysisTaskCheckCascade.h:55
 AliAnalysisTaskCheckCascade.h:56
 AliAnalysisTaskCheckCascade.h:57
 AliAnalysisTaskCheckCascade.h:58
 AliAnalysisTaskCheckCascade.h:59
 AliAnalysisTaskCheckCascade.h:60
 AliAnalysisTaskCheckCascade.h:61
 AliAnalysisTaskCheckCascade.h:62
 AliAnalysisTaskCheckCascade.h:63
 AliAnalysisTaskCheckCascade.h:64
 AliAnalysisTaskCheckCascade.h:65
 AliAnalysisTaskCheckCascade.h:66
 AliAnalysisTaskCheckCascade.h:67
 AliAnalysisTaskCheckCascade.h:68
 AliAnalysisTaskCheckCascade.h:69
 AliAnalysisTaskCheckCascade.h:70
 AliAnalysisTaskCheckCascade.h:71
 AliAnalysisTaskCheckCascade.h:72
 AliAnalysisTaskCheckCascade.h:73
 AliAnalysisTaskCheckCascade.h:74
 AliAnalysisTaskCheckCascade.h:75
 AliAnalysisTaskCheckCascade.h:76
 AliAnalysisTaskCheckCascade.h:77
 AliAnalysisTaskCheckCascade.h:78
 AliAnalysisTaskCheckCascade.h:79
 AliAnalysisTaskCheckCascade.h:80
 AliAnalysisTaskCheckCascade.h:81
 AliAnalysisTaskCheckCascade.h:82
 AliAnalysisTaskCheckCascade.h:83
 AliAnalysisTaskCheckCascade.h:84
 AliAnalysisTaskCheckCascade.h:85
 AliAnalysisTaskCheckCascade.h:86
 AliAnalysisTaskCheckCascade.h:87
 AliAnalysisTaskCheckCascade.h:88
 AliAnalysisTaskCheckCascade.h:89
 AliAnalysisTaskCheckCascade.h:90
 AliAnalysisTaskCheckCascade.h:91
 AliAnalysisTaskCheckCascade.h:92
 AliAnalysisTaskCheckCascade.h:93
 AliAnalysisTaskCheckCascade.h:94
 AliAnalysisTaskCheckCascade.h:95
 AliAnalysisTaskCheckCascade.h:96
 AliAnalysisTaskCheckCascade.h:97
 AliAnalysisTaskCheckCascade.h:98
 AliAnalysisTaskCheckCascade.h:99
 AliAnalysisTaskCheckCascade.h:100
 AliAnalysisTaskCheckCascade.h:101
 AliAnalysisTaskCheckCascade.h:102
 AliAnalysisTaskCheckCascade.h:103
 AliAnalysisTaskCheckCascade.h:104
 AliAnalysisTaskCheckCascade.h:105
 AliAnalysisTaskCheckCascade.h:106
 AliAnalysisTaskCheckCascade.h:107
 AliAnalysisTaskCheckCascade.h:108
 AliAnalysisTaskCheckCascade.h:109
 AliAnalysisTaskCheckCascade.h:110
 AliAnalysisTaskCheckCascade.h:111
 AliAnalysisTaskCheckCascade.h:112
 AliAnalysisTaskCheckCascade.h:113
 AliAnalysisTaskCheckCascade.h:114
 AliAnalysisTaskCheckCascade.h:115
 AliAnalysisTaskCheckCascade.h:116
 AliAnalysisTaskCheckCascade.h:117
 AliAnalysisTaskCheckCascade.h:118
 AliAnalysisTaskCheckCascade.h:119
 AliAnalysisTaskCheckCascade.h:120
 AliAnalysisTaskCheckCascade.h:121
 AliAnalysisTaskCheckCascade.h:122
 AliAnalysisTaskCheckCascade.h:123
 AliAnalysisTaskCheckCascade.h:124
 AliAnalysisTaskCheckCascade.h:125
 AliAnalysisTaskCheckCascade.h:126
 AliAnalysisTaskCheckCascade.h:127
 AliAnalysisTaskCheckCascade.h:128
 AliAnalysisTaskCheckCascade.h:129
 AliAnalysisTaskCheckCascade.h:130
 AliAnalysisTaskCheckCascade.h:131
 AliAnalysisTaskCheckCascade.h:132
 AliAnalysisTaskCheckCascade.h:133
 AliAnalysisTaskCheckCascade.h:134
 AliAnalysisTaskCheckCascade.h:135
 AliAnalysisTaskCheckCascade.h:136
 AliAnalysisTaskCheckCascade.h:137
 AliAnalysisTaskCheckCascade.h:138
 AliAnalysisTaskCheckCascade.h:139
 AliAnalysisTaskCheckCascade.h:140
 AliAnalysisTaskCheckCascade.h:141
 AliAnalysisTaskCheckCascade.h:142
 AliAnalysisTaskCheckCascade.h:143
 AliAnalysisTaskCheckCascade.h:144
 AliAnalysisTaskCheckCascade.h:145
 AliAnalysisTaskCheckCascade.h:146
 AliAnalysisTaskCheckCascade.h:147
 AliAnalysisTaskCheckCascade.h:148
 AliAnalysisTaskCheckCascade.h:149
 AliAnalysisTaskCheckCascade.h:150
 AliAnalysisTaskCheckCascade.h:151
 AliAnalysisTaskCheckCascade.h:152
 AliAnalysisTaskCheckCascade.h:153
 AliAnalysisTaskCheckCascade.h:154
 AliAnalysisTaskCheckCascade.h:155
 AliAnalysisTaskCheckCascade.h:156
 AliAnalysisTaskCheckCascade.h:157
 AliAnalysisTaskCheckCascade.h:158
 AliAnalysisTaskCheckCascade.h:159
 AliAnalysisTaskCheckCascade.h:160
 AliAnalysisTaskCheckCascade.h:161
 AliAnalysisTaskCheckCascade.h:162
 AliAnalysisTaskCheckCascade.h:163
 AliAnalysisTaskCheckCascade.h:164
 AliAnalysisTaskCheckCascade.h:165
 AliAnalysisTaskCheckCascade.h:166
 AliAnalysisTaskCheckCascade.h:167
 AliAnalysisTaskCheckCascade.h:168
 AliAnalysisTaskCheckCascade.h:169
 AliAnalysisTaskCheckCascade.h:170
 AliAnalysisTaskCheckCascade.h:171
 AliAnalysisTaskCheckCascade.h:172
 AliAnalysisTaskCheckCascade.h:173
 AliAnalysisTaskCheckCascade.h:174
 AliAnalysisTaskCheckCascade.h:175
 AliAnalysisTaskCheckCascade.h:176
 AliAnalysisTaskCheckCascade.h:177
 AliAnalysisTaskCheckCascade.h:178
 AliAnalysisTaskCheckCascade.h:179
 AliAnalysisTaskCheckCascade.h:180
 AliAnalysisTaskCheckCascade.h:181
 AliAnalysisTaskCheckCascade.h:182
 AliAnalysisTaskCheckCascade.h:183
 AliAnalysisTaskCheckCascade.h:184
 AliAnalysisTaskCheckCascade.h:185
 AliAnalysisTaskCheckCascade.h:186
 AliAnalysisTaskCheckCascade.h:187
 AliAnalysisTaskCheckCascade.h:188
 AliAnalysisTaskCheckCascade.h:189
 AliAnalysisTaskCheckCascade.h:190
 AliAnalysisTaskCheckCascade.h:191
 AliAnalysisTaskCheckCascade.h:192
 AliAnalysisTaskCheckCascade.h:193
 AliAnalysisTaskCheckCascade.h:194
 AliAnalysisTaskCheckCascade.h:195
 AliAnalysisTaskCheckCascade.h:196
 AliAnalysisTaskCheckCascade.h:197
 AliAnalysisTaskCheckCascade.h:198
 AliAnalysisTaskCheckCascade.h:199
 AliAnalysisTaskCheckCascade.h:200
 AliAnalysisTaskCheckCascade.h:201
 AliAnalysisTaskCheckCascade.h:202
 AliAnalysisTaskCheckCascade.h:203
 AliAnalysisTaskCheckCascade.h:204
 AliAnalysisTaskCheckCascade.h:205
 AliAnalysisTaskCheckCascade.h:206
 AliAnalysisTaskCheckCascade.h:207
 AliAnalysisTaskCheckCascade.h:208
 AliAnalysisTaskCheckCascade.h:209
 AliAnalysisTaskCheckCascade.h:210
 AliAnalysisTaskCheckCascade.h:211
 AliAnalysisTaskCheckCascade.h:212
 AliAnalysisTaskCheckCascade.h:213
 AliAnalysisTaskCheckCascade.h:214
 AliAnalysisTaskCheckCascade.h:215
 AliAnalysisTaskCheckCascade.h:216
 AliAnalysisTaskCheckCascade.h:217
 AliAnalysisTaskCheckCascade.h:218
 AliAnalysisTaskCheckCascade.h:219
 AliAnalysisTaskCheckCascade.h:220
 AliAnalysisTaskCheckCascade.h:221
 AliAnalysisTaskCheckCascade.h:222
 AliAnalysisTaskCheckCascade.h:223
 AliAnalysisTaskCheckCascade.h:224
 AliAnalysisTaskCheckCascade.h:225
 AliAnalysisTaskCheckCascade.h:226
 AliAnalysisTaskCheckCascade.h:227
 AliAnalysisTaskCheckCascade.h:228
 AliAnalysisTaskCheckCascade.h:229
 AliAnalysisTaskCheckCascade.h:230
 AliAnalysisTaskCheckCascade.h:231
 AliAnalysisTaskCheckCascade.h:232
 AliAnalysisTaskCheckCascade.h:233
 AliAnalysisTaskCheckCascade.h:234
 AliAnalysisTaskCheckCascade.h:235
 AliAnalysisTaskCheckCascade.h:236
 AliAnalysisTaskCheckCascade.h:237
 AliAnalysisTaskCheckCascade.h:238
 AliAnalysisTaskCheckCascade.h:239
 AliAnalysisTaskCheckCascade.h:240
 AliAnalysisTaskCheckCascade.h:241
 AliAnalysisTaskCheckCascade.h:242
 AliAnalysisTaskCheckCascade.h:243
 AliAnalysisTaskCheckCascade.h:244
 AliAnalysisTaskCheckCascade.h:245
 AliAnalysisTaskCheckCascade.h:246
 AliAnalysisTaskCheckCascade.h:247
 AliAnalysisTaskCheckCascade.h:248
 AliAnalysisTaskCheckCascade.h:249
 AliAnalysisTaskCheckCascade.h:250