+++ /dev/null
-/**************************************************************************
- * 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. *
- **************************************************************************/
-
-// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-//
-// Modified version of AliAnalysisTaskCheckCascade.cxx.
-// This is a 'hybrid' output version, in that it uses a classic TTree
-// ROOT object to store the candidates, plus a couple of histograms filled on
-// a per-event basis for storing variables too numerous to put in a tree.
-//
-// --- Adapted to look for lambdas as well, using code from
-// AliAnalysisTaskCheckPerformanceStrange.cxx
-//
-// --- Algorithm Description
-// 1. Loop over primaries in stack to acquire generated charged Xi
-// 2. Loop over stack to find Cascades, fill TH3Fs "PrimRawPt"s for Efficiency
-// 3. Perform Physics Selection
-// 4. Perform Primary Vertex |z|<10cm selection
-// 5. Perform Primary Vertex NoTPCOnly vertexing selection (>0 contrib.)
-// 6. Perform Pileup Rejection
-// 7. Analysis Loops:
-// 7a. Fill TH3Fs "PrimAnalysisPt" for control purposes only
-//
-// Please Report Any Bugs!
-//
-// --- David Dobrigkeit Chinellato
-// (david.chinellato@gmail.com)
-//
-// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-class TTree;
-class TParticle;
-class TVector3;
-
-//class AliMCEventHandler;
-//class AliMCEvent;
-//class AliStack;
-
-class AliESDVertex;
-class AliAODVertex;
-class AliESDv0;
-class AliAODv0;
-
-#include <Riostream.h>
-#include "TList.h"
-#include "TH1.h"
-#include "TH2.h"
-#include "TH3.h"
-#include "TFile.h"
-#include "THnSparse.h"
-#include "TVector3.h"
-#include "TCanvas.h"
-#include "TMath.h"
-#include "TLegend.h"
-#include "AliLog.h"
-
-#include "AliESDEvent.h"
-#include "AliAODEvent.h"
-#include "AliLightV0vertexer.h"
-#include "AliLightCascadeVertexer.h"
-#include "AliESDpid.h"
-#include "AliESDtrack.h"
-#include "AliESDtrackCuts.h"
-#include "AliInputEventHandler.h"
-#include "AliAnalysisManager.h"
-#include "AliMCEventHandler.h"
-#include "AliMCEvent.h"
-#include "AliStack.h"
-
-#include "AliCFContainer.h"
-#include "AliMultiplicity.h"
-#include "AliAODMCParticle.h"
-#include "AliESDcascade.h"
-#include "AliAODcascade.h"
-#include "AliESDUtils.h"
-#include "AliAnalysisUtils.h"
-#include "AliGenEventHeader.h"
-
-#include "AliAnalysisTaskExtractPerformanceCascade.h"
-
-using std::cout;
-using std::endl;
-
-ClassImp(AliAnalysisTaskExtractPerformanceCascade)
-
-AliAnalysisTaskExtractPerformanceCascade::AliAnalysisTaskExtractPerformanceCascade()
- : AliAnalysisTaskSE(), fListHist(0), fTreeCascade(0), fPIDResponse(0), fESDtrackCuts(0), fUtils(0),
- fkIsNuclear ( kFALSE ),
- fkSwitchINT7 ( kFALSE ),
- fpArapidityShift ( 0.465 ),
- fCentralityEstimator("V0M"),
- fkpAVertexSelection( kFALSE ),
- fEtaRefMult ( 0.5 ),
- fkRunVertexers ( kFALSE ),
- fkCheckSwapping( kFALSE ),
-fkSelectCentrality (kFALSE),
-fCentSel_Low(0.0),
-fCentSel_High(0.0),
-fLowPtCutoff(0.0),
-//------------------------------------------------
-// Tree Variables
-//------------------------------------------------
-
- fTreeCascVarCharge(0),
- fTreeCascVarMassAsXi(0),
- fTreeCascVarMassAsOmega(0),
- fTreeCascVarPt(0),
- fTreeCascVarPtMC(0),
- fTreeCascVarRapMC(0),
- fTreeCascVarRapXi(0),
- fTreeCascVarRapOmega(0),
- fTreeCascVarNegEta(0),
- fTreeCascVarPosEta(0),
- fTreeCascVarBachEta(0),
- fTreeCascVarDCACascDaughters(0),
- fTreeCascVarDCABachToPrimVtx(0),
- fTreeCascVarDCAV0Daughters(0),
- fTreeCascVarDCAV0ToPrimVtx(0),
- fTreeCascVarDCAPosToPrimVtx(0),
- fTreeCascVarDCANegToPrimVtx(0),
- fTreeCascVarCascCosPointingAngle(0),
- fTreeCascVarCascRadius(0),
- fTreeCascVarV0Mass(0),
- fTreeCascVarV0CosPointingAngle(0),
- fTreeCascVarV0CosPointingAngleSpecial(0),
- fTreeCascVarV0Radius(0),
- fTreeCascVarLeastNbrClusters(0),
- fTreeCascVarMultiplicity(0),
- fTreeCascVarMultiplicityV0A(0),
- fTreeCascVarMultiplicityZNA(0),
- fTreeCascVarMultiplicityTRK(0),
- fTreeCascVarMultiplicitySPD(0),
- fTreeCascVarMultiplicityMC(0),
- fTreeCascVarDistOverTotMom(0),
- fTreeCascVarIsPhysicalPrimary(0),
- fTreeCascVarPID(0),
- fTreeCascVarPIDSwapped(0),
- fTreeCascVarPIDBachelor(0),
- fTreeCascVarPIDNegative(0),
- fTreeCascVarPIDPositive(0),
- fTreeCascVarBachTransMom(0),
- fTreeCascVarPosTransMom(0),
- fTreeCascVarNegTransMom(0),
- fTreeCascVarPosTransMomMC(0),
- fTreeCascVarNegTransMomMC(0),
- fTreeCascVarNegNSigmaPion(0),
- fTreeCascVarNegNSigmaProton(0),
- fTreeCascVarPosNSigmaPion(0),
- fTreeCascVarPosNSigmaProton(0),
- fTreeCascVarBachNSigmaPion(0),
- fTreeCascVarBachNSigmaKaon(0),
-
- fTreeCascVarkITSRefitBachelor(0),
- fTreeCascVarkITSRefitNegative(0),
- fTreeCascVarkITSRefitPositive(0),
-
- fTreeCascVarNegClusters(0),
- fTreeCascVarPosClusters(0),
- fTreeCascVarBachClusters(0),
- fTreeCascVarNegSharedClusters(0),
- fTreeCascVarPosSharedClusters(0),
- fTreeCascVarBachSharedClusters(0),
-
- fTreeCascVarEvHasXiMinus(0),
- fTreeCascVarEvHasXiPlus(0),
- fTreeCascVarEvHasOmegaMinus(0),
- fTreeCascVarEvHasOmegaPlus(0),
- fTreeCascVarEvHasLambda(0),
- fTreeCascVarEvHasAntiLambda(0),
-
- fTreeCascVarEvHasLowPtXiMinus(0),
- fTreeCascVarEvHasLowPtXiPlus(0),
- fTreeCascVarEvHasLowPtOmegaMinus(0),
- fTreeCascVarEvHasLowPtOmegaPlus(0),
- fTreeCascVarEvHasLowPtLambda(0),
- fTreeCascVarEvHasLowPtAntiLambda(0),
-
- fTreeCascVarEvHasVeryLowPtXiMinus(0),
- fTreeCascVarEvHasVeryLowPtXiPlus(0),
- fTreeCascVarEvHasVeryLowPtOmegaMinus(0),
- fTreeCascVarEvHasVeryLowPtOmegaPlus(0),
- fTreeCascVarEvHasVeryLowPtLambda(0),
- fTreeCascVarEvHasVeryLowPtAntiLambda(0),
-
- fTreeCascVarBadCascadeJai(0),
- fTreeCascVarDeltaDCA(0),
-
-//------------------------------------------------
-// HISTOGRAMS
-// --- Filled on an Event-by-event basis
-//------------------------------------------------
- fHistV0MultiplicityBeforeTrigSel(0),
- fHistV0MultiplicityForTrigEvt(0),
- fHistV0MultiplicityForSelEvt(0),
- fHistV0MultiplicityForSelEvtNoTPCOnly(0),
- fHistV0MultiplicityForSelEvtNoTPCOnlyNoPileup(0),
- fHistMultiplicityBeforeTrigSel(0),
- fHistMultiplicityForTrigEvt(0),
- fHistMultiplicity(0),
- fHistMultiplicityNoTPCOnly(0),
- fHistMultiplicityNoTPCOnlyNoPileup(0),
-
-//V0A Centrality
-fHistMultiplicityV0ABeforeTrigSel(0),
-fHistMultiplicityV0AForTrigEvt(0),
-fHistMultiplicityV0A(0),
-fHistMultiplicityV0ANoTPCOnly(0),
-fHistMultiplicityV0ANoTPCOnlyNoPileup(0),
-
-//ZNA Centrality
-fHistMultiplicityZNABeforeTrigSel(0),
-fHistMultiplicityZNAForTrigEvt(0),
-fHistMultiplicityZNA(0),
-fHistMultiplicityZNANoTPCOnly(0),
-fHistMultiplicityZNANoTPCOnlyNoPileup(0),
-
-//TRK Centrality
-fHistMultiplicityTRKBeforeTrigSel(0),
-fHistMultiplicityTRKForTrigEvt(0),
-fHistMultiplicityTRK(0),
-fHistMultiplicityTRKNoTPCOnly(0),
-fHistMultiplicityTRKNoTPCOnlyNoPileup(0),
-
-//SPD Centrality
-fHistMultiplicitySPDBeforeTrigSel(0),
-fHistMultiplicitySPDForTrigEvt(0),
-fHistMultiplicitySPD(0),
-fHistMultiplicitySPDNoTPCOnly(0),
-fHistMultiplicitySPDNoTPCOnlyNoPileup(0),
-
-
-//------------------------------------------------
-// PARTICLE HISTOGRAMS
-// --- Filled on a Particle-by-Particle basis
-//------------------------------------------------
- f3dHistGenPtVsYVsMultXiMinus(0),
- f3dHistGenPtVsYVsMultXiPlus(0),
- f3dHistGenPtVsYVsMultOmegaMinus(0),
- f3dHistGenPtVsYVsMultOmegaPlus(0),
- f3dHistGenSelectedPtVsYVsMultXiMinus(0),
- f3dHistGenSelectedPtVsYVsMultXiPlus(0),
- f3dHistGenSelectedPtVsYVsMultOmegaMinus(0),
- f3dHistGenSelectedPtVsYVsMultOmegaPlus(0),
- f3dHistGenPtVsYCMSVsMultXiMinus(0),
- f3dHistGenPtVsYCMSVsMultXiPlus(0),
- f3dHistGenPtVsYCMSVsMultOmegaMinus(0),
- f3dHistGenPtVsYCMSVsMultOmegaPlus(0),
- f3dHistGenSelectedPtVsYCMSVsMultXiMinus(0),
- f3dHistGenSelectedPtVsYCMSVsMultXiPlus(0),
- f3dHistGenSelectedPtVsYCMSVsMultOmegaMinus(0),
- f3dHistGenSelectedPtVsYCMSVsMultOmegaPlus(0),
-
-//MC Mult
-
-f3dHistGenPtVsYVsMultMCXiMinus(0),
-f3dHistGenPtVsYVsMultMCXiPlus(0),
-f3dHistGenPtVsYVsMultMCOmegaMinus(0),
-f3dHistGenPtVsYVsMultMCOmegaPlus(0),
-f3dHistGenSelectedPtVsYVsMultMCXiMinus(0),
-f3dHistGenSelectedPtVsYVsMultMCXiPlus(0),
-f3dHistGenSelectedPtVsYVsMultMCOmegaMinus(0),
-f3dHistGenSelectedPtVsYVsMultMCOmegaPlus(0),
-f3dHistGenPtVsYCMSVsMultMCXiMinus(0),
-f3dHistGenPtVsYCMSVsMultMCXiPlus(0),
-f3dHistGenPtVsYCMSVsMultMCOmegaMinus(0),
-f3dHistGenPtVsYCMSVsMultMCOmegaPlus(0),
-f3dHistGenSelectedPtVsYCMSVsMultMCXiMinus(0),
-f3dHistGenSelectedPtVsYCMSVsMultMCXiPlus(0),
-f3dHistGenSelectedPtVsYCMSVsMultMCOmegaMinus(0),
-f3dHistGenSelectedPtVsYCMSVsMultMCOmegaPlus(0),
-
-//V0A
-
-f3dHistGenPtVsYVsMultV0AXiMinus(0),
-f3dHistGenPtVsYVsMultV0AXiPlus(0),
-f3dHistGenPtVsYVsMultV0AOmegaMinus(0),
-f3dHistGenPtVsYVsMultV0AOmegaPlus(0),
-f3dHistGenSelectedPtVsYVsMultV0AXiMinus(0),
-f3dHistGenSelectedPtVsYVsMultV0AXiPlus(0),
-f3dHistGenSelectedPtVsYVsMultV0AOmegaMinus(0),
-f3dHistGenSelectedPtVsYVsMultV0AOmegaPlus(0),
-f3dHistGenPtVsYCMSVsMultV0AXiMinus(0),
-f3dHistGenPtVsYCMSVsMultV0AXiPlus(0),
-f3dHistGenPtVsYCMSVsMultV0AOmegaMinus(0),
-f3dHistGenPtVsYCMSVsMultV0AOmegaPlus(0),
-f3dHistGenSelectedPtVsYCMSVsMultV0AXiMinus(0),
-f3dHistGenSelectedPtVsYCMSVsMultV0AXiPlus(0),
-f3dHistGenSelectedPtVsYCMSVsMultV0AOmegaMinus(0),
-f3dHistGenSelectedPtVsYCMSVsMultV0AOmegaPlus(0),
-f3dHistGenSelectedPrimPtVsYCMSVsMultV0AXiMinus(0),
-f3dHistGenSelectedPrimPtVsYCMSVsMultV0AXiPlus(0),
-f3dHistGenSelectedPrimPtVsYCMSVsMultV0AOmegaMinus(0),
-f3dHistGenSelectedPrimPtVsYCMSVsMultV0AOmegaPlus(0),
-
-//ZNA
-
-f3dHistGenPtVsYVsMultZNAXiMinus(0),
-f3dHistGenPtVsYVsMultZNAXiPlus(0),
-f3dHistGenPtVsYVsMultZNAOmegaMinus(0),
-f3dHistGenPtVsYVsMultZNAOmegaPlus(0),
-f3dHistGenSelectedPtVsYVsMultZNAXiMinus(0),
-f3dHistGenSelectedPtVsYVsMultZNAXiPlus(0),
-f3dHistGenSelectedPtVsYVsMultZNAOmegaMinus(0),
-f3dHistGenSelectedPtVsYVsMultZNAOmegaPlus(0),
-f3dHistGenPtVsYCMSVsMultZNAXiMinus(0),
-f3dHistGenPtVsYCMSVsMultZNAXiPlus(0),
-f3dHistGenPtVsYCMSVsMultZNAOmegaMinus(0),
-f3dHistGenPtVsYCMSVsMultZNAOmegaPlus(0),
-f3dHistGenSelectedPtVsYCMSVsMultZNAXiMinus(0),
-f3dHistGenSelectedPtVsYCMSVsMultZNAXiPlus(0),
-f3dHistGenSelectedPtVsYCMSVsMultZNAOmegaMinus(0),
-f3dHistGenSelectedPtVsYCMSVsMultZNAOmegaPlus(0),
-
-//TRK
-
-f3dHistGenPtVsYVsMultTRKXiMinus(0),
-f3dHistGenPtVsYVsMultTRKXiPlus(0),
-f3dHistGenPtVsYVsMultTRKOmegaMinus(0),
-f3dHistGenPtVsYVsMultTRKOmegaPlus(0),
-f3dHistGenSelectedPtVsYVsMultTRKXiMinus(0),
-f3dHistGenSelectedPtVsYVsMultTRKXiPlus(0),
-f3dHistGenSelectedPtVsYVsMultTRKOmegaMinus(0),
-f3dHistGenSelectedPtVsYVsMultTRKOmegaPlus(0),
-f3dHistGenPtVsYCMSVsMultTRKXiMinus(0),
-f3dHistGenPtVsYCMSVsMultTRKXiPlus(0),
-f3dHistGenPtVsYCMSVsMultTRKOmegaMinus(0),
-f3dHistGenPtVsYCMSVsMultTRKOmegaPlus(0),
-f3dHistGenSelectedPtVsYCMSVsMultTRKXiMinus(0),
-f3dHistGenSelectedPtVsYCMSVsMultTRKXiPlus(0),
-f3dHistGenSelectedPtVsYCMSVsMultTRKOmegaMinus(0),
-f3dHistGenSelectedPtVsYCMSVsMultTRKOmegaPlus(0),
-
-//SPD
-
-f3dHistGenPtVsYVsMultSPDXiMinus(0),
-f3dHistGenPtVsYVsMultSPDXiPlus(0),
-f3dHistGenPtVsYVsMultSPDOmegaMinus(0),
-f3dHistGenPtVsYVsMultSPDOmegaPlus(0),
-f3dHistGenSelectedPtVsYVsMultSPDXiMinus(0),
-f3dHistGenSelectedPtVsYVsMultSPDXiPlus(0),
-f3dHistGenSelectedPtVsYVsMultSPDOmegaMinus(0),
-f3dHistGenSelectedPtVsYVsMultSPDOmegaPlus(0),
-f3dHistGenPtVsYCMSVsMultSPDXiMinus(0),
-f3dHistGenPtVsYCMSVsMultSPDXiPlus(0),
-f3dHistGenPtVsYCMSVsMultSPDOmegaMinus(0),
-f3dHistGenPtVsYCMSVsMultSPDOmegaPlus(0),
-f3dHistGenSelectedPtVsYCMSVsMultSPDXiMinus(0),
-f3dHistGenSelectedPtVsYCMSVsMultSPDXiPlus(0),
-f3dHistGenSelectedPtVsYCMSVsMultSPDOmegaMinus(0),
-f3dHistGenSelectedPtVsYCMSVsMultSPDOmegaPlus(0),
-
-
- fHistPVx(0),
- fHistPVy(0),
- fHistPVz(0),
- fHistPVxAnalysis(0),
- fHistPVyAnalysis(0),
- fHistPVzAnalysis(0)
-{
- // Dummy Constructor
-}
-
-AliAnalysisTaskExtractPerformanceCascade::AliAnalysisTaskExtractPerformanceCascade(const char *name)
- : AliAnalysisTaskSE(name), fListHist(0), fTreeCascade(0), fPIDResponse(0), fESDtrackCuts(0), fUtils(0),
- fkIsNuclear ( kFALSE ),
- fkSwitchINT7 ( kFALSE ),
- fpArapidityShift ( 0.465 ),
- fCentralityEstimator("V0M"),
- fkpAVertexSelection( kFALSE ),
- fEtaRefMult ( 0.5 ),
- fkRunVertexers ( kFALSE ),
- fkCheckSwapping( kFALSE ),
-fkSelectCentrality (kFALSE),
-fCentSel_Low(0.0),
-fCentSel_High(0.0),
-fLowPtCutoff(0.0),
-//------------------------------------------------
-// Tree Variables
-//------------------------------------------------
-
- fTreeCascVarCharge(0),
- fTreeCascVarMassAsXi(0),
- fTreeCascVarMassAsOmega(0),
- fTreeCascVarPt(0),
- fTreeCascVarPtMC(0),
- fTreeCascVarRapMC(0),
- fTreeCascVarRapXi(0),
- fTreeCascVarRapOmega(0),
- fTreeCascVarNegEta(0),
- fTreeCascVarPosEta(0),
- fTreeCascVarBachEta(0),
- fTreeCascVarDCACascDaughters(0),
- fTreeCascVarDCABachToPrimVtx(0),
- fTreeCascVarDCAV0Daughters(0),
- fTreeCascVarDCAV0ToPrimVtx(0),
- fTreeCascVarDCAPosToPrimVtx(0),
- fTreeCascVarDCANegToPrimVtx(0),
- fTreeCascVarCascCosPointingAngle(0),
- fTreeCascVarCascRadius(0),
- fTreeCascVarV0Mass(0),
- fTreeCascVarV0CosPointingAngle(0),
- fTreeCascVarV0CosPointingAngleSpecial(0),
- fTreeCascVarV0Radius(0),
- fTreeCascVarLeastNbrClusters(0),
- fTreeCascVarMultiplicity(0),
- fTreeCascVarMultiplicityV0A(0),
- fTreeCascVarMultiplicityZNA(0),
- fTreeCascVarMultiplicityTRK(0),
- fTreeCascVarMultiplicitySPD(0),
- fTreeCascVarMultiplicityMC(0),
- fTreeCascVarDistOverTotMom(0),
- fTreeCascVarIsPhysicalPrimary(0),
- fTreeCascVarPID(0),
- fTreeCascVarPIDSwapped(0),
- fTreeCascVarPIDBachelor(0),
- fTreeCascVarPIDNegative(0),
- fTreeCascVarPIDPositive(0),
- fTreeCascVarBachTransMom(0),
- fTreeCascVarPosTransMom(0),
- fTreeCascVarNegTransMom(0),
- fTreeCascVarPosTransMomMC(0),
- fTreeCascVarNegTransMomMC(0),
- fTreeCascVarNegNSigmaPion(0),
- fTreeCascVarNegNSigmaProton(0),
- fTreeCascVarPosNSigmaPion(0),
- fTreeCascVarPosNSigmaProton(0),
- fTreeCascVarBachNSigmaPion(0),
- fTreeCascVarBachNSigmaKaon(0),
-
- fTreeCascVarkITSRefitBachelor(0),
- fTreeCascVarkITSRefitNegative(0),
- fTreeCascVarkITSRefitPositive(0),
-
- fTreeCascVarNegClusters(0),
- fTreeCascVarPosClusters(0),
- fTreeCascVarBachClusters(0),
- fTreeCascVarNegSharedClusters(0),
- fTreeCascVarPosSharedClusters(0),
- fTreeCascVarBachSharedClusters(0),
-
- fTreeCascVarEvHasXiMinus(0),
- fTreeCascVarEvHasXiPlus(0),
- fTreeCascVarEvHasOmegaMinus(0),
- fTreeCascVarEvHasOmegaPlus(0),
- fTreeCascVarEvHasLambda(0),
- fTreeCascVarEvHasAntiLambda(0),
-
- fTreeCascVarEvHasLowPtXiMinus(0),
- fTreeCascVarEvHasLowPtXiPlus(0),
- fTreeCascVarEvHasLowPtOmegaMinus(0),
- fTreeCascVarEvHasLowPtOmegaPlus(0),
- fTreeCascVarEvHasLowPtLambda(0),
- fTreeCascVarEvHasLowPtAntiLambda(0),
-
- fTreeCascVarEvHasVeryLowPtXiMinus(0),
- fTreeCascVarEvHasVeryLowPtXiPlus(0),
- fTreeCascVarEvHasVeryLowPtOmegaMinus(0),
- fTreeCascVarEvHasVeryLowPtOmegaPlus(0),
- fTreeCascVarEvHasVeryLowPtLambda(0),
- fTreeCascVarEvHasVeryLowPtAntiLambda(0),
-
- fTreeCascVarBadCascadeJai(0),
- fTreeCascVarDeltaDCA(0),
-
-//------------------------------------------------
-// HISTOGRAMS
-// --- Filled on an Event-by-event basis
-//------------------------------------------------
- fHistV0MultiplicityBeforeTrigSel(0),
- fHistV0MultiplicityForTrigEvt(0),
- fHistV0MultiplicityForSelEvt(0),
- fHistV0MultiplicityForSelEvtNoTPCOnly(0),
- fHistV0MultiplicityForSelEvtNoTPCOnlyNoPileup(0),
- fHistMultiplicityBeforeTrigSel(0),
- fHistMultiplicityForTrigEvt(0),
- fHistMultiplicity(0),
- fHistMultiplicityNoTPCOnly(0),
- fHistMultiplicityNoTPCOnlyNoPileup(0),
-
-//V0A Centrality
-fHistMultiplicityV0ABeforeTrigSel(0),
-fHistMultiplicityV0AForTrigEvt(0),
-fHistMultiplicityV0A(0),
-fHistMultiplicityV0ANoTPCOnly(0),
-fHistMultiplicityV0ANoTPCOnlyNoPileup(0),
-
-//ZNA Centrality
-fHistMultiplicityZNABeforeTrigSel(0),
-fHistMultiplicityZNAForTrigEvt(0),
-fHistMultiplicityZNA(0),
-fHistMultiplicityZNANoTPCOnly(0),
-fHistMultiplicityZNANoTPCOnlyNoPileup(0),
-
-//TRK Centrality
-fHistMultiplicityTRKBeforeTrigSel(0),
-fHistMultiplicityTRKForTrigEvt(0),
-fHistMultiplicityTRK(0),
-fHistMultiplicityTRKNoTPCOnly(0),
-fHistMultiplicityTRKNoTPCOnlyNoPileup(0),
-
-//SPD Centrality
-fHistMultiplicitySPDBeforeTrigSel(0),
-fHistMultiplicitySPDForTrigEvt(0),
-fHistMultiplicitySPD(0),
-fHistMultiplicitySPDNoTPCOnly(0),
-fHistMultiplicitySPDNoTPCOnlyNoPileup(0),
-
-//------------------------------------------------
-// PARTICLE HISTOGRAMS
-// --- Filled on a Particle-by-Particle basis
-//------------------------------------------------
- f3dHistGenPtVsYVsMultXiMinus(0),
- f3dHistGenPtVsYVsMultXiPlus(0),
- f3dHistGenPtVsYVsMultOmegaMinus(0),
- f3dHistGenPtVsYVsMultOmegaPlus(0),
- f3dHistGenSelectedPtVsYVsMultXiMinus(0),
- f3dHistGenSelectedPtVsYVsMultXiPlus(0),
- f3dHistGenSelectedPtVsYVsMultOmegaMinus(0),
- f3dHistGenSelectedPtVsYVsMultOmegaPlus(0),
- f3dHistGenPtVsYCMSVsMultXiMinus(0),
- f3dHistGenPtVsYCMSVsMultXiPlus(0),
- f3dHistGenPtVsYCMSVsMultOmegaMinus(0),
- f3dHistGenPtVsYCMSVsMultOmegaPlus(0),
- f3dHistGenSelectedPtVsYCMSVsMultXiMinus(0),
- f3dHistGenSelectedPtVsYCMSVsMultXiPlus(0),
- f3dHistGenSelectedPtVsYCMSVsMultOmegaMinus(0),
- f3dHistGenSelectedPtVsYCMSVsMultOmegaPlus(0),
-
-//MC Mult
-
-f3dHistGenPtVsYVsMultMCXiMinus(0),
-f3dHistGenPtVsYVsMultMCXiPlus(0),
-f3dHistGenPtVsYVsMultMCOmegaMinus(0),
-f3dHistGenPtVsYVsMultMCOmegaPlus(0),
-f3dHistGenSelectedPtVsYVsMultMCXiMinus(0),
-f3dHistGenSelectedPtVsYVsMultMCXiPlus(0),
-f3dHistGenSelectedPtVsYVsMultMCOmegaMinus(0),
-f3dHistGenSelectedPtVsYVsMultMCOmegaPlus(0),
-f3dHistGenPtVsYCMSVsMultMCXiMinus(0),
-f3dHistGenPtVsYCMSVsMultMCXiPlus(0),
-f3dHistGenPtVsYCMSVsMultMCOmegaMinus(0),
-f3dHistGenPtVsYCMSVsMultMCOmegaPlus(0),
-f3dHistGenSelectedPtVsYCMSVsMultMCXiMinus(0),
-f3dHistGenSelectedPtVsYCMSVsMultMCXiPlus(0),
-f3dHistGenSelectedPtVsYCMSVsMultMCOmegaMinus(0),
-f3dHistGenSelectedPtVsYCMSVsMultMCOmegaPlus(0),
-
-//V0A
-
-f3dHistGenPtVsYVsMultV0AXiMinus(0),
-f3dHistGenPtVsYVsMultV0AXiPlus(0),
-f3dHistGenPtVsYVsMultV0AOmegaMinus(0),
-f3dHistGenPtVsYVsMultV0AOmegaPlus(0),
-f3dHistGenSelectedPtVsYVsMultV0AXiMinus(0),
-f3dHistGenSelectedPtVsYVsMultV0AXiPlus(0),
-f3dHistGenSelectedPtVsYVsMultV0AOmegaMinus(0),
-f3dHistGenSelectedPtVsYVsMultV0AOmegaPlus(0),
-f3dHistGenPtVsYCMSVsMultV0AXiMinus(0),
-f3dHistGenPtVsYCMSVsMultV0AXiPlus(0),
-f3dHistGenPtVsYCMSVsMultV0AOmegaMinus(0),
-f3dHistGenPtVsYCMSVsMultV0AOmegaPlus(0),
-f3dHistGenSelectedPtVsYCMSVsMultV0AXiMinus(0),
-f3dHistGenSelectedPtVsYCMSVsMultV0AXiPlus(0),
-f3dHistGenSelectedPtVsYCMSVsMultV0AOmegaMinus(0),
-f3dHistGenSelectedPtVsYCMSVsMultV0AOmegaPlus(0),
-f3dHistGenSelectedPrimPtVsYCMSVsMultV0AXiMinus(0),
-f3dHistGenSelectedPrimPtVsYCMSVsMultV0AXiPlus(0),
-f3dHistGenSelectedPrimPtVsYCMSVsMultV0AOmegaMinus(0),
-f3dHistGenSelectedPrimPtVsYCMSVsMultV0AOmegaPlus(0),
-
-//ZNA
-
-f3dHistGenPtVsYVsMultZNAXiMinus(0),
-f3dHistGenPtVsYVsMultZNAXiPlus(0),
-f3dHistGenPtVsYVsMultZNAOmegaMinus(0),
-f3dHistGenPtVsYVsMultZNAOmegaPlus(0),
-f3dHistGenSelectedPtVsYVsMultZNAXiMinus(0),
-f3dHistGenSelectedPtVsYVsMultZNAXiPlus(0),
-f3dHistGenSelectedPtVsYVsMultZNAOmegaMinus(0),
-f3dHistGenSelectedPtVsYVsMultZNAOmegaPlus(0),
-f3dHistGenPtVsYCMSVsMultZNAXiMinus(0),
-f3dHistGenPtVsYCMSVsMultZNAXiPlus(0),
-f3dHistGenPtVsYCMSVsMultZNAOmegaMinus(0),
-f3dHistGenPtVsYCMSVsMultZNAOmegaPlus(0),
-f3dHistGenSelectedPtVsYCMSVsMultZNAXiMinus(0),
-f3dHistGenSelectedPtVsYCMSVsMultZNAXiPlus(0),
-f3dHistGenSelectedPtVsYCMSVsMultZNAOmegaMinus(0),
-f3dHistGenSelectedPtVsYCMSVsMultZNAOmegaPlus(0),
-
-//TRK
-
-f3dHistGenPtVsYVsMultTRKXiMinus(0),
-f3dHistGenPtVsYVsMultTRKXiPlus(0),
-f3dHistGenPtVsYVsMultTRKOmegaMinus(0),
-f3dHistGenPtVsYVsMultTRKOmegaPlus(0),
-f3dHistGenSelectedPtVsYVsMultTRKXiMinus(0),
-f3dHistGenSelectedPtVsYVsMultTRKXiPlus(0),
-f3dHistGenSelectedPtVsYVsMultTRKOmegaMinus(0),
-f3dHistGenSelectedPtVsYVsMultTRKOmegaPlus(0),
-f3dHistGenPtVsYCMSVsMultTRKXiMinus(0),
-f3dHistGenPtVsYCMSVsMultTRKXiPlus(0),
-f3dHistGenPtVsYCMSVsMultTRKOmegaMinus(0),
-f3dHistGenPtVsYCMSVsMultTRKOmegaPlus(0),
-f3dHistGenSelectedPtVsYCMSVsMultTRKXiMinus(0),
-f3dHistGenSelectedPtVsYCMSVsMultTRKXiPlus(0),
-f3dHistGenSelectedPtVsYCMSVsMultTRKOmegaMinus(0),
-f3dHistGenSelectedPtVsYCMSVsMultTRKOmegaPlus(0),
-
-//SPD
-
-f3dHistGenPtVsYVsMultSPDXiMinus(0),
-f3dHistGenPtVsYVsMultSPDXiPlus(0),
-f3dHistGenPtVsYVsMultSPDOmegaMinus(0),
-f3dHistGenPtVsYVsMultSPDOmegaPlus(0),
-f3dHistGenSelectedPtVsYVsMultSPDXiMinus(0),
-f3dHistGenSelectedPtVsYVsMultSPDXiPlus(0),
-f3dHistGenSelectedPtVsYVsMultSPDOmegaMinus(0),
-f3dHistGenSelectedPtVsYVsMultSPDOmegaPlus(0),
-f3dHistGenPtVsYCMSVsMultSPDXiMinus(0),
-f3dHistGenPtVsYCMSVsMultSPDXiPlus(0),
-f3dHistGenPtVsYCMSVsMultSPDOmegaMinus(0),
-f3dHistGenPtVsYCMSVsMultSPDOmegaPlus(0),
-f3dHistGenSelectedPtVsYCMSVsMultSPDXiMinus(0),
-f3dHistGenSelectedPtVsYCMSVsMultSPDXiPlus(0),
-f3dHistGenSelectedPtVsYCMSVsMultSPDOmegaMinus(0),
-f3dHistGenSelectedPtVsYCMSVsMultSPDOmegaPlus(0),
-
-
- fHistPVx(0),
- fHistPVy(0),
- fHistPVz(0),
- fHistPVxAnalysis(0),
- fHistPVyAnalysis(0),
- fHistPVzAnalysis(0)
-{
- // Constructor
-
- //Set Variables for re-running the cascade vertexers (as done for MS paper)
-
- // New Loose : 1st step for the 7 TeV pp analysis
-
- fV0VertexerSels[0] = 33. ; // max allowed chi2
- fV0VertexerSels[1] = 0.02; // min allowed impact parameter for the 1st daughter (LHC09a4 : 0.05)
- fV0VertexerSels[2] = 0.02; // min allowed impact parameter for the 2nd daughter (LHC09a4 : 0.05)
- fV0VertexerSels[3] = 2.0 ; // max allowed DCA between the daughter tracks (LHC09a4 : 0.5)
- fV0VertexerSels[4] = 0.95; // min allowed cosine of V0's pointing angle (LHC09a4 : 0.99)
- fV0VertexerSels[5] = 1.0 ; // min radius of the fiducial volume (LHC09a4 : 0.2)
- fV0VertexerSels[6] = 200. ; // max radius of the fiducial volume (LHC09a4 : 100.0)
-
- fCascadeVertexerSels[0] = 33. ; // max allowed chi2 (same as PDC07)
- fCascadeVertexerSels[1] = 0.05 ; // min allowed V0 impact parameter (PDC07 : 0.05 / LHC09a4 : 0.025 )
- fCascadeVertexerSels[2] = 0.010; // "window" around the Lambda mass (PDC07 : 0.008 / LHC09a4 : 0.010 )
- fCascadeVertexerSels[3] = 0.03 ; // min allowed bachelor's impact parameter (PDC07 : 0.035 / LHC09a4 : 0.025 )
- fCascadeVertexerSels[4] = 2.0 ; // max allowed DCA between the V0 and the bachelor (PDC07 : 0.1 / LHC09a4 : 0.2 )
- fCascadeVertexerSels[5] = 0.95 ; // min allowed cosine of the cascade pointing angle (PDC07 : 0.9985 / LHC09a4 : 0.998 )
- fCascadeVertexerSels[6] = 0.4 ; // min radius of the fiducial volume (PDC07 : 0.9 / LHC09a4 : 0.2 )
- fCascadeVertexerSels[7] = 100. ; // max radius of the fiducial volume (PDC07 : 100 / LHC09a4 : 100 )
-
- // Output slot #0 writes into a TList container (Cascade)
- DefineOutput(1, TList::Class());
- DefineOutput(2, TTree::Class());
-}
-
-
-AliAnalysisTaskExtractPerformanceCascade::~AliAnalysisTaskExtractPerformanceCascade()
-{
-//------------------------------------------------
-// DESTRUCTOR
-//------------------------------------------------
-
- if (fListHist){
- delete fListHist;
- fListHist = 0x0;
- }
- if (fTreeCascade){
- delete fTreeCascade;
- fTreeCascade = 0x0;
- }
- //cleanup esd track cuts object too...
- if (fESDtrackCuts){
- delete fESDtrackCuts;
- fESDtrackCuts = 0x0;
- }
- if (fUtils){
- delete fUtils;
- fUtils = 0x0;
- }
-
-}
-
-//________________________________________________________________________
-void AliAnalysisTaskExtractPerformanceCascade::UserCreateOutputObjects()
-{
- OpenFile(2);
- // Called once
-
-//------------------------------------------------
-
- fTreeCascade = new TTree("fTreeCascade","CascadeCandidates");
-
-//------------------------------------------------
-// fTreeCascade Branch definitions - Cascade Tree
-//------------------------------------------------
-
-//------------------------------------------------
-// fTreeCascade Branch definitions
-//------------------------------------------------
-
-//-----------BASIC-INFO---------------------------
-/* 1*/ fTreeCascade->Branch("fTreeCascVarCharge",&fTreeCascVarCharge,"fTreeCascVarCharge/I");
-/* 2*/ fTreeCascade->Branch("fTreeCascVarMassAsXi",&fTreeCascVarMassAsXi,"fTreeCascVarMassAsXi/F");
-/* 3*/ fTreeCascade->Branch("fTreeCascVarMassAsOmega",&fTreeCascVarMassAsOmega,"fTreeCascVarMassAsOmega/F");
-/* 4*/ fTreeCascade->Branch("fTreeCascVarPt",&fTreeCascVarPt,"fTreeCascVarPt/F");
-/* 5*/ fTreeCascade->Branch("fTreeCascVarPtMC",&fTreeCascVarPtMC,"fTreeCascVarPtMC/F");
-/* 6*/ fTreeCascade->Branch("fTreeCascVarRapXi",&fTreeCascVarRapXi,"fTreeCascVarRapXi/F");
-/* 7*/ fTreeCascade->Branch("fTreeCascVarRapMC",&fTreeCascVarRapMC,"fTreeCascVarRapMC/F");
-/* 8*/ fTreeCascade->Branch("fTreeCascVarRapOmega",&fTreeCascVarRapOmega,"fTreeCascVarRapOmega/F");
-/* 9*/ fTreeCascade->Branch("fTreeCascVarNegEta",&fTreeCascVarNegEta,"fTreeCascVarNegEta/F");
-/*10*/ fTreeCascade->Branch("fTreeCascVarPosEta",&fTreeCascVarPosEta,"fTreeCascVarPosEta/F");
-/*11*/ fTreeCascade->Branch("fTreeCascVarBachEta",&fTreeCascVarBachEta,"fTreeCascVarBachEta/F");
-//-----------INFO-FOR-CUTS------------------------
-/*12*/ fTreeCascade->Branch("fTreeCascVarDCACascDaughters",&fTreeCascVarDCACascDaughters,"fTreeCascVarDCACascDaughters/F");
-/*13*/ fTreeCascade->Branch("fTreeCascVarDCABachToPrimVtx",&fTreeCascVarDCABachToPrimVtx,"fTreeCascVarDCABachToPrimVtx/F");
-/*14*/ fTreeCascade->Branch("fTreeCascVarDCAV0Daughters",&fTreeCascVarDCAV0Daughters,"fTreeCascVarDCAV0Daughters/F");
-/*15*/ fTreeCascade->Branch("fTreeCascVarDCAV0ToPrimVtx",&fTreeCascVarDCAV0ToPrimVtx,"fTreeCascVarDCAV0ToPrimVtx/F");
-/*16*/ fTreeCascade->Branch("fTreeCascVarDCAPosToPrimVtx",&fTreeCascVarDCAPosToPrimVtx,"fTreeCascVarDCAPosToPrimVtx/F");
-/*17*/ fTreeCascade->Branch("fTreeCascVarDCANegToPrimVtx",&fTreeCascVarDCANegToPrimVtx,"fTreeCascVarDCANegToPrimVtx/F");
-/*18*/ fTreeCascade->Branch("fTreeCascVarCascCosPointingAngle",&fTreeCascVarCascCosPointingAngle,"fTreeCascVarCascCosPointingAngle/F");
-/*19*/ fTreeCascade->Branch("fTreeCascVarCascRadius",&fTreeCascVarCascRadius,"fTreeCascVarCascRadius/F");
-/*20*/ fTreeCascade->Branch("fTreeCascVarV0Mass",&fTreeCascVarV0Mass,"fTreeCascVarV0Mass/F");
-/*21*/ fTreeCascade->Branch("fTreeCascVarV0CosPointingAngle",&fTreeCascVarV0CosPointingAngle,"fTreeCascVarV0CosPointingAngle/F");
-/*21*/ fTreeCascade->Branch("fTreeCascVarV0CosPointingAngleSpecial",&fTreeCascVarV0CosPointingAngleSpecial,"fTreeCascVarV0CosPointingAngleSpecial/F");
-/*22*/ fTreeCascade->Branch("fTreeCascVarV0Radius",&fTreeCascVarV0Radius,"fTreeCascVarV0Radius/F");
-/*23*/ fTreeCascade->Branch("fTreeCascVarLeastNbrClusters",&fTreeCascVarLeastNbrClusters,"fTreeCascVarLeastNbrClusters/I");
-
-/*23*/ fTreeCascade->Branch("fTreeCascVarNegClusters",&fTreeCascVarNegClusters,"fTreeCascVarNegClusters/I");
-/*23*/ fTreeCascade->Branch("fTreeCascVarPosClusters",&fTreeCascVarPosClusters,"fTreeCascVarPosClusters/I");
-/*23*/ fTreeCascade->Branch("fTreeCascVarBachClusters",&fTreeCascVarBachClusters,"fTreeCascVarBachClusters/I");
-/*23*/ fTreeCascade->Branch("fTreeCascVarNegSharedClusters",&fTreeCascVarNegSharedClusters,"fTreeCascVarNegSharedClusters/I");
-/*23*/ fTreeCascade->Branch("fTreeCascVarPosSharedClusters",&fTreeCascVarPosSharedClusters,"fTreeCascVarPosSharedClusters/I");
-/*23*/ fTreeCascade->Branch("fTreeCascVarBachSharedClusters",&fTreeCascVarBachSharedClusters,"fTreeCascVarBachSharedClusters/I");
-//-----------MULTIPLICITY-INFO--------------------
-/*24*/ fTreeCascade->Branch("fTreeCascVarMultiplicity",&fTreeCascVarMultiplicity,"fTreeCascVarMultiplicity/I");
-/*24*/ fTreeCascade->Branch("fTreeCascVarMultiplicityV0A",&fTreeCascVarMultiplicityV0A,"fTreeCascVarMultiplicityV0A/I");
-/*24*/ fTreeCascade->Branch("fTreeCascVarMultiplicityZNA",&fTreeCascVarMultiplicityZNA,"fTreeCascVarMultiplicityZNA/I");
-/*24*/ fTreeCascade->Branch("fTreeCascVarMultiplicityTRK",&fTreeCascVarMultiplicityTRK,"fTreeCascVarMultiplicityTRK/I");
-/*24*/ fTreeCascade->Branch("fTreeCascVarMultiplicitySPD",&fTreeCascVarMultiplicitySPD,"fTreeCascVarMultiplicitySPD/I");
-/*24*/ fTreeCascade->Branch("fTreeCascVarMultiplicityMC",&fTreeCascVarMultiplicityMC,"fTreeCascVarMultiplicityMC/I");
-//-----------DECAY-LENGTH-INFO--------------------
-/*25*/ fTreeCascade->Branch("fTreeCascVarDistOverTotMom",&fTreeCascVarDistOverTotMom,"fTreeCascVarDistOverTotMom/F");
-//-----------MC-PID-------------------------------
-/*25bis*/ fTreeCascade->Branch("fTreeCascVarIsPhysicalPrimary",&fTreeCascVarIsPhysicalPrimary,"fTreeCascVarIsPhysicalPrimary/I");
-/*26*/ fTreeCascade->Branch("fTreeCascVarPID",&fTreeCascVarPID,"fTreeCascVarPID/I");
-/*26*/ fTreeCascade->Branch("fTreeCascVarPIDSwapped",&fTreeCascVarPIDSwapped,"fTreeCascVarPIDSwapped/I");
-/*27*/ fTreeCascade->Branch("fTreeCascVarPIDBachelor",&fTreeCascVarPIDBachelor,"fTreeCascVarPIDBachelor/I");
-/*28*/ fTreeCascade->Branch("fTreeCascVarPIDNegative",&fTreeCascVarPIDNegative,"fTreeCascVarPIDNegative/I");
-/*29*/ fTreeCascade->Branch("fTreeCascVarPIDPositive",&fTreeCascVarPIDPositive,"fTreeCascVarPIDPositive/I");
-/*30*/ fTreeCascade->Branch("fTreeCascVarBachTransMom",&fTreeCascVarBachTransMom,"fTreeCascVarBachTransMom/F");
-/*30*/ fTreeCascade->Branch("fTreeCascVarPosTransMom",&fTreeCascVarPosTransMom,"fTreeCascVarPosTransMom/F");
-/*31*/ fTreeCascade->Branch("fTreeCascVarNegTransMom",&fTreeCascVarNegTransMom,"fTreeCascVarNegTransMom/F");
-/*32*/ fTreeCascade->Branch("fTreeCascVarPosTransMomMC",&fTreeCascVarPosTransMomMC,"fTreeCascVarPosTransMomMC/F");
-/*33*/ fTreeCascade->Branch("fTreeCascVarNegTransMomMC",&fTreeCascVarNegTransMomMC,"fTreeCascVarNegTransMomMC/F");
-//------------------------------------------------
-/*34*/ fTreeCascade->Branch("fTreeCascVarNegNSigmaPion",&fTreeCascVarNegNSigmaPion,"fTreeCascVarNegNSigmaPion/F");
-/*35*/ fTreeCascade->Branch("fTreeCascVarNegNSigmaProton",&fTreeCascVarNegNSigmaProton,"fTreeCascVarNegNSigmaProton/F");
-/*36*/ fTreeCascade->Branch("fTreeCascVarPosNSigmaPion",&fTreeCascVarPosNSigmaPion,"fTreeCascVarPosNSigmaPion/F");
-/*37*/ fTreeCascade->Branch("fTreeCascVarPosNSigmaProton",&fTreeCascVarPosNSigmaProton,"fTreeCascVarPosNSigmaProton/F");
-/*38*/ fTreeCascade->Branch("fTreeCascVarBachNSigmaPion",&fTreeCascVarBachNSigmaPion,"fTreeCascVarBachNSigmaPion/F");
-/*39*/ fTreeCascade->Branch("fTreeCascVarBachNSigmaKaon",&fTreeCascVarBachNSigmaKaon,"fTreeCascVarBachNSigmaKaon/F");
-
-/*29*/ fTreeCascade->Branch("fTreeCascVarkITSRefitBachelor",&fTreeCascVarkITSRefitBachelor,"fTreeCascVarkITSRefitBachelor/O");
-/*29*/ fTreeCascade->Branch("fTreeCascVarkITSRefitNegative",&fTreeCascVarkITSRefitNegative,"fTreeCascVarkITSRefitNegative/O");
-/*29*/ fTreeCascade->Branch("fTreeCascVarkITSRefitPositive",&fTreeCascVarkITSRefitPositive,"fTreeCascVarkITSRefitPositive/O");
-
- fTreeCascade->Branch("fTreeCascVarNegClusters",&fTreeCascVarNegClusters,"fTreeCascVarNegClusters/I");
- fTreeCascade->Branch("fTreeCascVarPosClusters",&fTreeCascVarPosClusters,"fTreeCascVarPosClusters/I");
- fTreeCascade->Branch("fTreeCascVarBachClusters",&fTreeCascVarBachClusters,"fTreeCascVarBachClusters/I");
- fTreeCascade->Branch("fTreeCascVarNegSharedClusters",&fTreeCascVarNegSharedClusters,"fTreeCascVarNegSharedClusters/I");
- fTreeCascade->Branch("fTreeCascVarPosSharedClusters",&fTreeCascVarPosSharedClusters,"fTreeCascVarPosSharedClusters/I");
- fTreeCascade->Branch("fTreeCascVarBachSharedClusters",&fTreeCascVarBachSharedClusters,"fTreeCascVarBachSharedClusters/I");
-
-/*39*/ fTreeCascade->Branch("fTreeCascVarEvHasXiMinus", &fTreeCascVarEvHasXiMinus, "fTreeCascVarEvHasXiMinus/O");
-/*39*/ fTreeCascade->Branch("fTreeCascVarEvHasXiPlus", &fTreeCascVarEvHasXiPlus, "fTreeCascVarEvHasXiPlus/O");
-/*39*/ fTreeCascade->Branch("fTreeCascVarEvHasOmegaMinus",&fTreeCascVarEvHasOmegaMinus,"fTreeCascVarEvHasOmegaMinus/O");
-/*39*/ fTreeCascade->Branch("fTreeCascVarEvHasOmegaPlus", &fTreeCascVarEvHasOmegaPlus, "fTreeCascVarEvHasOmegaPlus/O");
-/*39*/ fTreeCascade->Branch("fTreeCascVarEvHasLambda", &fTreeCascVarEvHasLambda, "fTreeCascVarEvHasLambda/O");
-/*39*/ fTreeCascade->Branch("fTreeCascVarEvHasAntiLambda",&fTreeCascVarEvHasAntiLambda,"fTreeCascVarEvHasAntiLambda/O");
-
-/*39*/ fTreeCascade->Branch("fTreeCascVarEvHasLowPtXiMinus", &fTreeCascVarEvHasLowPtXiMinus, "fTreeCascVarEvHasLowPtXiMinus/O");
-/*39*/ fTreeCascade->Branch("fTreeCascVarEvHasLowPtXiPlus", &fTreeCascVarEvHasLowPtXiPlus, "fTreeCascVarEvHasLowPtXiPlus/O");
-/*39*/ fTreeCascade->Branch("fTreeCascVarEvHasLowPtOmegaMinus",&fTreeCascVarEvHasLowPtOmegaMinus,"fTreeCascVarEvHasLowPtOmegaMinus/O");
-/*39*/ fTreeCascade->Branch("fTreeCascVarEvHasLowPtOmegaPlus", &fTreeCascVarEvHasLowPtOmegaPlus, "fTreeCascVarEvHasLowPtOmegaPlus/O");
-/*39*/ fTreeCascade->Branch("fTreeCascVarEvHasLowPtLambda", &fTreeCascVarEvHasLowPtLambda, "fTreeCascVarEvHasLowPtLambda/O");
-/*39*/ fTreeCascade->Branch("fTreeCascVarEvHasLowPtAntiLambda",&fTreeCascVarEvHasLowPtAntiLambda,"fTreeCascVarEvHasLowPtAntiLambda/O");
-
-/*39*/ fTreeCascade->Branch("fTreeCascVarEvHasVeryLowPtXiMinus", &fTreeCascVarEvHasVeryLowPtXiMinus, "fTreeCascVarEvHasVeryLowPtXiMinus/O");
-/*39*/ fTreeCascade->Branch("fTreeCascVarEvHasVeryLowPtXiPlus", &fTreeCascVarEvHasVeryLowPtXiPlus, "fTreeCascVarEvHasVeryLowPtXiPlus/O");
-/*39*/ fTreeCascade->Branch("fTreeCascVarEvHasVeryLowPtOmegaMinus",&fTreeCascVarEvHasVeryLowPtOmegaMinus,"fTreeCascVarEvHasVeryLowPtOmegaMinus/O");
-/*39*/ fTreeCascade->Branch("fTreeCascVarEvHasVeryLowPtOmegaPlus", &fTreeCascVarEvHasVeryLowPtOmegaPlus, "fTreeCascVarEvHasVeryLowPtOmegaPlus/O");
-/*39*/ fTreeCascade->Branch("fTreeCascVarEvHasVeryLowPtLambda", &fTreeCascVarEvHasVeryLowPtLambda, "fTreeCascVarEvHasVeryLowPtLambda/O");
-/*39*/ fTreeCascade->Branch("fTreeCascVarEvHasVeryLowPtAntiLambda",&fTreeCascVarEvHasVeryLowPtAntiLambda,"fTreeCascVarEvHasVeryLowPtAntiLambda/O");
-
- fTreeCascade->Branch("fTreeCascVarBadCascadeJai",&fTreeCascVarBadCascadeJai,"fTreeCascVarBadCascadeJai/O");
- fTreeCascade->Branch("fTreeCascVarDeltaDCA",&fTreeCascVarDeltaDCA,"fTreeCascVarDeltaDCA/F");
-
-//------------------------------------------------
-// Particle Identification Setup
-//------------------------------------------------
-
- AliAnalysisManager *man=AliAnalysisManager::GetAnalysisManager();
- AliInputEventHandler* inputHandler = (AliInputEventHandler*) (man->GetInputEventHandler());
- fPIDResponse = inputHandler->GetPIDResponse();
-
-// Multiplicity
-
- if(! fESDtrackCuts ){
- fESDtrackCuts = new AliESDtrackCuts();
- }
- if(! fUtils ){
- fUtils = new AliAnalysisUtils();
- }
-
-//------------------------------------------------
-// V0 Multiplicity Histograms
-//------------------------------------------------
-
- // Create histograms
- OpenFile(1);
- fListHist = new TList();
- fListHist->SetOwner(); // See http://root.cern.ch/root/html/TCollection.html#TCollection:SetOwner
-
-
- if(! fHistV0MultiplicityBeforeTrigSel) {
- fHistV0MultiplicityBeforeTrigSel = new TH1F("fHistV0MultiplicityBeforeTrigSel",
- "V0s per event (before Trig. Sel.);Nbr of V0s/Evt;Events",
- 25, 0, 25);
- fListHist->Add(fHistV0MultiplicityBeforeTrigSel);
- }
-
- if(! fHistV0MultiplicityForTrigEvt) {
- fHistV0MultiplicityForTrigEvt = new TH1F("fHistV0MultiplicityForTrigEvt",
- "V0s per event (for triggered evt);Nbr of V0s/Evt;Events",
- 25, 0, 25);
- fListHist->Add(fHistV0MultiplicityForTrigEvt);
- }
-
- if(! fHistV0MultiplicityForSelEvt) {
- fHistV0MultiplicityForSelEvt = new TH1F("fHistV0MultiplicityForSelEvt",
- "V0s per event;Nbr of V0s/Evt;Events",
- 25, 0, 25);
- fListHist->Add(fHistV0MultiplicityForSelEvt);
- }
-
- if(! fHistV0MultiplicityForSelEvtNoTPCOnly) {
- fHistV0MultiplicityForSelEvtNoTPCOnly = new TH1F("fHistV0MultiplicityForSelEvtNoTPCOnly",
- "V0s per event;Nbr of V0s/Evt;Events",
- 25, 0, 25);
- fListHist->Add(fHistV0MultiplicityForSelEvtNoTPCOnly);
- }
- if(! fHistV0MultiplicityForSelEvtNoTPCOnlyNoPileup) {
- fHistV0MultiplicityForSelEvtNoTPCOnlyNoPileup = new TH1F("fHistV0MultiplicityForSelEvtNoTPCOnlyNoPileup",
- "V0s per event;Nbr of V0s/Evt;Events",
- 25, 0, 25);
- fListHist->Add(fHistV0MultiplicityForSelEvtNoTPCOnlyNoPileup);
- }
-
-//------------------------------------------------
-// Track Multiplicity Histograms
-//------------------------------------------------
-
- if(! fHistMultiplicityBeforeTrigSel) {
- fHistMultiplicityBeforeTrigSel = new TH1F("fHistMultiplicityBeforeTrigSel",
- "Tracks per event;Nbr of Tracks;Events",
- 200, 0, 200);
- fListHist->Add(fHistMultiplicityBeforeTrigSel);
- }
- if(! fHistMultiplicityForTrigEvt) {
- fHistMultiplicityForTrigEvt = new TH1F("fHistMultiplicityForTrigEvt",
- "Tracks per event;Nbr of Tracks;Events",
- 200, 0, 200);
- fListHist->Add(fHistMultiplicityForTrigEvt);
- }
- if(! fHistMultiplicity) {
- fHistMultiplicity = new TH1F("fHistMultiplicity",
- "Tracks per event;Nbr of Tracks;Events",
- 200, 0, 200);
- fListHist->Add(fHistMultiplicity);
- }
- if(! fHistMultiplicityNoTPCOnly) {
- fHistMultiplicityNoTPCOnly = new TH1F("fHistMultiplicityNoTPCOnly",
- "Tracks per event;Nbr of Tracks;Events",
- 200, 0, 200);
- fListHist->Add(fHistMultiplicityNoTPCOnly);
- }
- if(! fHistMultiplicityNoTPCOnlyNoPileup) {
- fHistMultiplicityNoTPCOnlyNoPileup = new TH1F("fHistMultiplicityNoTPCOnlyNoPileup",
- "Tracks per event;Nbr of Tracks;Events",
- 200, 0, 200);
- fListHist->Add(fHistMultiplicityNoTPCOnlyNoPileup);
- }
-
-
- //V0A Centrality (if PbPb / pPb)
- if(! fHistMultiplicityV0ABeforeTrigSel) {
- fHistMultiplicityV0ABeforeTrigSel = new TH1F("fHistMultiplicityV0ABeforeTrigSel",
- "Centrality Distribution: V0A;V0A Centrality;Events",
- 200, 0, 200);
- fListHist->Add(fHistMultiplicityV0ABeforeTrigSel);
- }
- if(! fHistMultiplicityV0AForTrigEvt) {
- fHistMultiplicityV0AForTrigEvt = new TH1F("fHistMultiplicityV0AForTrigEvt",
- "Centrality Distribution: V0A;V0A Centrality;Events",
- 200, 0, 200);
- fListHist->Add(fHistMultiplicityV0AForTrigEvt);
- }
- if(! fHistMultiplicityV0A) {
- fHistMultiplicityV0A = new TH1F("fHistMultiplicityV0A",
- "Centrality Distribution: V0A;V0A Centrality;Events",
- 200, 0, 200);
- fListHist->Add(fHistMultiplicityV0A);
- }
- if(! fHistMultiplicityV0ANoTPCOnly) {
- fHistMultiplicityV0ANoTPCOnly = new TH1F("fHistMultiplicityV0ANoTPCOnly",
- "Centrality Distribution: V0A;V0A Centrality;Events",
- 200, 0, 200);
- fListHist->Add(fHistMultiplicityV0ANoTPCOnly);
- }
- if(! fHistMultiplicityV0ANoTPCOnlyNoPileup) {
- fHistMultiplicityV0ANoTPCOnlyNoPileup = new TH1F("fHistMultiplicityV0ANoTPCOnlyNoPileup",
- "Centrality Distribution: V0A;V0A Centrality;Events",
- 200, 0, 200);
- fListHist->Add(fHistMultiplicityV0ANoTPCOnlyNoPileup);
- }
-
- //ZNA Centrality (if PbPb / pPb)
- if(! fHistMultiplicityZNABeforeTrigSel) {
- fHistMultiplicityZNABeforeTrigSel = new TH1F("fHistMultiplicityZNABeforeTrigSel",
- "Centrality Distribution: ZNA;ZNA Centrality;Events",
- 200, 0, 200);
- fListHist->Add(fHistMultiplicityZNABeforeTrigSel);
- }
- if(! fHistMultiplicityZNAForTrigEvt) {
- fHistMultiplicityZNAForTrigEvt = new TH1F("fHistMultiplicityZNAForTrigEvt",
- "Centrality Distribution: ZNA;ZNA Centrality;Events",
- 200, 0, 200);
- fListHist->Add(fHistMultiplicityZNAForTrigEvt);
- }
- if(! fHistMultiplicityZNA) {
- fHistMultiplicityZNA = new TH1F("fHistMultiplicityZNA",
- "Centrality Distribution: ZNA;ZNA Centrality;Events",
- 200, 0, 200);
- fListHist->Add(fHistMultiplicityZNA);
- }
- if(! fHistMultiplicityZNANoTPCOnly) {
- fHistMultiplicityZNANoTPCOnly = new TH1F("fHistMultiplicityZNANoTPCOnly",
- "Centrality Distribution: ZNA;ZNA Centrality;Events",
- 200, 0, 200);
- fListHist->Add(fHistMultiplicityZNANoTPCOnly);
- }
- if(! fHistMultiplicityZNANoTPCOnlyNoPileup) {
- fHistMultiplicityZNANoTPCOnlyNoPileup = new TH1F("fHistMultiplicityZNANoTPCOnlyNoPileup",
- "Centrality Distribution: ZNA;ZNA Centrality;Events",
- 200, 0, 200);
- fListHist->Add(fHistMultiplicityZNANoTPCOnlyNoPileup);
- }
-
- //TRK Centrality (if PbPb / pPb)
- if(! fHistMultiplicityTRKBeforeTrigSel) {
- fHistMultiplicityTRKBeforeTrigSel = new TH1F("fHistMultiplicityTRKBeforeTrigSel",
- "Centrality Distribution: TRK;TRK Centrality;Events",
- 200, 0, 200);
- fListHist->Add(fHistMultiplicityTRKBeforeTrigSel);
- }
- if(! fHistMultiplicityTRKForTrigEvt) {
- fHistMultiplicityTRKForTrigEvt = new TH1F("fHistMultiplicityTRKForTrigEvt",
- "Centrality Distribution: TRK;TRK Centrality;Events",
- 200, 0, 200);
- fListHist->Add(fHistMultiplicityTRKForTrigEvt);
- }
- if(! fHistMultiplicityTRK) {
- fHistMultiplicityTRK = new TH1F("fHistMultiplicityTRK",
- "Centrality Distribution: TRK;TRK Centrality;Events",
- 200, 0, 200);
- fListHist->Add(fHistMultiplicityTRK);
- }
- if(! fHistMultiplicityTRKNoTPCOnly) {
- fHistMultiplicityTRKNoTPCOnly = new TH1F("fHistMultiplicityTRKNoTPCOnly",
- "Centrality Distribution: TRK;TRK Centrality;Events",
- 200, 0, 200);
- fListHist->Add(fHistMultiplicityTRKNoTPCOnly);
- }
- if(! fHistMultiplicityTRKNoTPCOnlyNoPileup) {
- fHistMultiplicityTRKNoTPCOnlyNoPileup = new TH1F("fHistMultiplicityTRKNoTPCOnlyNoPileup",
- "Centrality Distribution: TRK;TRK Centrality;Events",
- 200, 0, 200);
- fListHist->Add(fHistMultiplicityTRKNoTPCOnlyNoPileup);
- }
-
- //SPD Centrality (if PbPb / pPb)
- if(! fHistMultiplicitySPDBeforeTrigSel) {
- fHistMultiplicitySPDBeforeTrigSel = new TH1F("fHistMultiplicitySPDBeforeTrigSel",
- "Centrality Distribution: SPD;SPD Centrality;Events",
- 200, 0, 200);
- fListHist->Add(fHistMultiplicitySPDBeforeTrigSel);
- }
- if(! fHistMultiplicitySPDForTrigEvt) {
- fHistMultiplicitySPDForTrigEvt = new TH1F("fHistMultiplicitySPDForTrigEvt",
- "Centrality Distribution: SPD;SPD Centrality;Events",
- 200, 0, 200);
- fListHist->Add(fHistMultiplicitySPDForTrigEvt);
- }
- if(! fHistMultiplicitySPD) {
- fHistMultiplicitySPD = new TH1F("fHistMultiplicitySPD",
- "Centrality Distribution: SPD;SPD Centrality;Events",
- 200, 0, 200);
- fListHist->Add(fHistMultiplicitySPD);
- }
- if(! fHistMultiplicitySPDNoTPCOnly) {
- fHistMultiplicitySPDNoTPCOnly = new TH1F("fHistMultiplicitySPDNoTPCOnly",
- "Centrality Distribution: SPD;SPD Centrality;Events",
- 200, 0, 200);
- fListHist->Add(fHistMultiplicitySPDNoTPCOnly);
- }
- if(! fHistMultiplicitySPDNoTPCOnlyNoPileup) {
- fHistMultiplicitySPDNoTPCOnlyNoPileup = new TH1F("fHistMultiplicitySPDNoTPCOnlyNoPileup",
- "Centrality Distribution: SPD;SPD Centrality;Events",
- 200, 0, 200);
- fListHist->Add(fHistMultiplicitySPDNoTPCOnlyNoPileup);
- }
-
-
-
-
-//------------------------------------------------
-// Generated Particle Histograms
-//------------------------------------------------
-
- Int_t lCustomNBins = 200;
- Double_t lCustomPtUpperLimit = 20;
- Int_t lCustomNBinsMultiplicity = 100;
-
-//----------------------------------
-// Raw Generated (Pre-physics-selection)
-//----------------------------------
-
-//--------------------------------------------------------------------------------------
-//--- 3D Histo (Pt, Y, Multiplicity) for generated XiMinus/Plus, all generated
-
- if(! f3dHistGenPtVsYVsMultXiMinus) {
- f3dHistGenPtVsYVsMultXiMinus = new TH3F( "f3dHistGenPtVsYVsMultXiMinus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- fListHist->Add(f3dHistGenPtVsYVsMultXiMinus);
- }
- if(! f3dHistGenPtVsYVsMultXiPlus) {
- f3dHistGenPtVsYVsMultXiPlus = new TH3F( "f3dHistGenPtVsYVsMultXiPlus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- fListHist->Add(f3dHistGenPtVsYVsMultXiPlus);
- }
-//--- 3D Histo (Pt, Y, Multiplicity) for generated OmegaMinus/Plus
-
- if(! f3dHistGenPtVsYVsMultOmegaMinus) {
- f3dHistGenPtVsYVsMultOmegaMinus = new TH3F( "f3dHistGenPtVsYVsMultOmegaMinus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- fListHist->Add(f3dHistGenPtVsYVsMultOmegaMinus);
- }
- if(! f3dHistGenPtVsYVsMultOmegaPlus) {
- f3dHistGenPtVsYVsMultOmegaPlus = new TH3F( "f3dHistGenPtVsYVsMultOmegaPlus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- fListHist->Add(f3dHistGenPtVsYVsMultOmegaPlus);
- }
-
-//All generated cascades, YCMS
-
- if(! f3dHistGenPtVsYCMSVsMultXiMinus) {
- f3dHistGenPtVsYCMSVsMultXiMinus = new TH3F( "f3dHistGenPtVsYCMSVsMultXiMinus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- fListHist->Add(f3dHistGenPtVsYCMSVsMultXiMinus);
- }
- if(! f3dHistGenPtVsYCMSVsMultXiPlus) {
- f3dHistGenPtVsYCMSVsMultXiPlus = new TH3F( "f3dHistGenPtVsYCMSVsMultXiPlus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- fListHist->Add(f3dHistGenPtVsYCMSVsMultXiPlus);
- }
-//--- 3D Histo (Pt, Y, Multiplicity) for generated OmegaMinus/Plus
-
- if(! f3dHistGenPtVsYCMSVsMultOmegaMinus) {
- f3dHistGenPtVsYCMSVsMultOmegaMinus = new TH3F( "f3dHistGenPtVsYCMSVsMultOmegaMinus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- fListHist->Add(f3dHistGenPtVsYCMSVsMultOmegaMinus);
- }
- if(! f3dHistGenPtVsYCMSVsMultOmegaPlus) {
- f3dHistGenPtVsYCMSVsMultOmegaPlus = new TH3F( "f3dHistGenPtVsYCMSVsMultOmegaPlus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- fListHist->Add(f3dHistGenPtVsYCMSVsMultOmegaPlus);
- }
-
-
-//--------------------------------------------------------------------------------------
-//--- 3D Histo (Pt, Y, Multiplicity) for generated XiMinus/Plus, at selected analysis evts
-
- if(! f3dHistGenSelectedPtVsYVsMultXiMinus) {
- f3dHistGenSelectedPtVsYVsMultXiMinus = new TH3F( "f3dHistGenSelectedPtVsYVsMultXiMinus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- fListHist->Add(f3dHistGenSelectedPtVsYVsMultXiMinus);
- }
- if(! f3dHistGenSelectedPtVsYVsMultXiPlus) {
- f3dHistGenSelectedPtVsYVsMultXiPlus = new TH3F( "f3dHistGenSelectedPtVsYVsMultXiPlus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- fListHist->Add(f3dHistGenSelectedPtVsYVsMultXiPlus);
- }
-//--- 3D Histo (Pt, Y, Multiplicity) for generated OmegaMinus/Plus
-
- if(! f3dHistGenSelectedPtVsYVsMultOmegaMinus) {
- f3dHistGenSelectedPtVsYVsMultOmegaMinus = new TH3F( "f3dHistGenSelectedPtVsYVsMultOmegaMinus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- fListHist->Add(f3dHistGenSelectedPtVsYVsMultOmegaMinus);
- }
- if(! f3dHistGenSelectedPtVsYVsMultOmegaPlus) {
- f3dHistGenSelectedPtVsYVsMultOmegaPlus = new TH3F( "f3dHistGenSelectedPtVsYVsMultOmegaPlus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- fListHist->Add(f3dHistGenSelectedPtVsYVsMultOmegaPlus);
- }
-
-//ANALYSIS level Cascades, YCMS
-
-
- if(! f3dHistGenSelectedPtVsYCMSVsMultXiMinus) {
- f3dHistGenSelectedPtVsYCMSVsMultXiMinus = new TH3F( "f3dHistGenSelectedPtVsYCMSVsMultXiMinus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- fListHist->Add(f3dHistGenSelectedPtVsYCMSVsMultXiMinus);
- }
- if(! f3dHistGenSelectedPtVsYCMSVsMultXiPlus) {
- f3dHistGenSelectedPtVsYCMSVsMultXiPlus = new TH3F( "f3dHistGenSelectedPtVsYCMSVsMultXiPlus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- fListHist->Add(f3dHistGenSelectedPtVsYCMSVsMultXiPlus);
- }
-//--- 3D Histo (Pt, Y, Multiplicity) for generated OmegaMinus/Plus
-
- if(! f3dHistGenSelectedPtVsYCMSVsMultOmegaMinus) {
- f3dHistGenSelectedPtVsYCMSVsMultOmegaMinus = new TH3F( "f3dHistGenSelectedPtVsYCMSVsMultOmegaMinus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- fListHist->Add(f3dHistGenSelectedPtVsYCMSVsMultOmegaMinus);
- }
- if(! f3dHistGenSelectedPtVsYCMSVsMultOmegaPlus) {
- f3dHistGenSelectedPtVsYCMSVsMultOmegaPlus = new TH3F( "f3dHistGenSelectedPtVsYCMSVsMultOmegaPlus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- fListHist->Add(f3dHistGenSelectedPtVsYCMSVsMultOmegaPlus);
- }
-
- //======================================================================================
- //--------------------------------------------------------------------------------------
- // True Generated (For Multiplicity Unfolding)
- //--------------------------------------------------------------------------------------
- //======================================================================================
-
- //--- 3D Histo (Pt, Y, Multiplicity) for generated XiMinus/Plus, all generated
-
- if(! f3dHistGenPtVsYVsMultMCXiMinus) {
- f3dHistGenPtVsYVsMultMCXiMinus = new TH3F( "f3dHistGenPtVsYVsMultMCXiMinus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- fListHist->Add(f3dHistGenPtVsYVsMultMCXiMinus);
- }
- if(! f3dHistGenPtVsYVsMultMCXiPlus) {
- f3dHistGenPtVsYVsMultMCXiPlus = new TH3F( "f3dHistGenPtVsYVsMultMCXiPlus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- fListHist->Add(f3dHistGenPtVsYVsMultMCXiPlus);
- }
- //--- 3D Histo (Pt, Y, Multiplicity) for generated OmegaMinus/Plus
-
- if(! f3dHistGenPtVsYVsMultMCOmegaMinus) {
- f3dHistGenPtVsYVsMultMCOmegaMinus = new TH3F( "f3dHistGenPtVsYVsMultMCOmegaMinus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- fListHist->Add(f3dHistGenPtVsYVsMultMCOmegaMinus);
- }
- if(! f3dHistGenPtVsYVsMultMCOmegaPlus) {
- f3dHistGenPtVsYVsMultMCOmegaPlus = new TH3F( "f3dHistGenPtVsYVsMultMCOmegaPlus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- fListHist->Add(f3dHistGenPtVsYVsMultMCOmegaPlus);
- }
-
- //All generated cascades, YCMS
-
- if(! f3dHistGenPtVsYCMSVsMultMCXiMinus) {
- f3dHistGenPtVsYCMSVsMultMCXiMinus = new TH3F( "f3dHistGenPtVsYCMSVsMultMCXiMinus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- fListHist->Add(f3dHistGenPtVsYCMSVsMultMCXiMinus);
- }
- if(! f3dHistGenPtVsYCMSVsMultMCXiPlus) {
- f3dHistGenPtVsYCMSVsMultMCXiPlus = new TH3F( "f3dHistGenPtVsYCMSVsMultMCXiPlus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- fListHist->Add(f3dHistGenPtVsYCMSVsMultMCXiPlus);
- }
- //--- 3D Histo (Pt, Y, Multiplicity) for generated OmegaMinus/Plus
-
- if(! f3dHistGenPtVsYCMSVsMultMCOmegaMinus) {
- f3dHistGenPtVsYCMSVsMultMCOmegaMinus = new TH3F( "f3dHistGenPtVsYCMSVsMultMCOmegaMinus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- fListHist->Add(f3dHistGenPtVsYCMSVsMultMCOmegaMinus);
- }
- if(! f3dHistGenPtVsYCMSVsMultMCOmegaPlus) {
- f3dHistGenPtVsYCMSVsMultMCOmegaPlus = new TH3F( "f3dHistGenPtVsYCMSVsMultMCOmegaPlus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- fListHist->Add(f3dHistGenPtVsYCMSVsMultMCOmegaPlus);
- }
-
-
- //--------------------------------------------------------------------------------------
- //--- 3D Histo (Pt, Y, Multiplicity) for generated XiMinus/Plus, at selected analysis evts
-
- if(! f3dHistGenSelectedPtVsYVsMultMCXiMinus) {
- f3dHistGenSelectedPtVsYVsMultMCXiMinus = new TH3F( "f3dHistGenSelectedPtVsYVsMultMCXiMinus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- fListHist->Add(f3dHistGenSelectedPtVsYVsMultMCXiMinus);
- }
- if(! f3dHistGenSelectedPtVsYVsMultMCXiPlus) {
- f3dHistGenSelectedPtVsYVsMultMCXiPlus = new TH3F( "f3dHistGenSelectedPtVsYVsMultMCXiPlus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- fListHist->Add(f3dHistGenSelectedPtVsYVsMultMCXiPlus);
- }
- //--- 3D Histo (Pt, Y, Multiplicity) for generated OmegaMinus/Plus
-
- if(! f3dHistGenSelectedPtVsYVsMultMCOmegaMinus) {
- f3dHistGenSelectedPtVsYVsMultMCOmegaMinus = new TH3F( "f3dHistGenSelectedPtVsYVsMultMCOmegaMinus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- fListHist->Add(f3dHistGenSelectedPtVsYVsMultMCOmegaMinus);
- }
- if(! f3dHistGenSelectedPtVsYVsMultMCOmegaPlus) {
- f3dHistGenSelectedPtVsYVsMultMCOmegaPlus = new TH3F( "f3dHistGenSelectedPtVsYVsMultMCOmegaPlus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- fListHist->Add(f3dHistGenSelectedPtVsYVsMultMCOmegaPlus);
- }
-
- //ANALYSIS level Cascades, YCMS
-
-
- if(! f3dHistGenSelectedPtVsYCMSVsMultMCXiMinus) {
- f3dHistGenSelectedPtVsYCMSVsMultMCXiMinus = new TH3F( "f3dHistGenSelectedPtVsYCMSVsMultMCXiMinus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- fListHist->Add(f3dHistGenSelectedPtVsYCMSVsMultMCXiMinus);
- }
- if(! f3dHistGenSelectedPtVsYCMSVsMultMCXiPlus) {
- f3dHistGenSelectedPtVsYCMSVsMultMCXiPlus = new TH3F( "f3dHistGenSelectedPtVsYCMSVsMultMCXiPlus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- fListHist->Add(f3dHistGenSelectedPtVsYCMSVsMultMCXiPlus);
- }
- //--- 3D Histo (Pt, Y, Multiplicity) for generated OmegaMinus/Plus
-
- if(! f3dHistGenSelectedPtVsYCMSVsMultMCOmegaMinus) {
- f3dHistGenSelectedPtVsYCMSVsMultMCOmegaMinus = new TH3F( "f3dHistGenSelectedPtVsYCMSVsMultMCOmegaMinus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- fListHist->Add(f3dHistGenSelectedPtVsYCMSVsMultMCOmegaMinus);
- }
- if(! f3dHistGenSelectedPtVsYCMSVsMultMCOmegaPlus) {
- f3dHistGenSelectedPtVsYCMSVsMultMCOmegaPlus = new TH3F( "f3dHistGenSelectedPtVsYCMSVsMultMCOmegaPlus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- fListHist->Add(f3dHistGenSelectedPtVsYCMSVsMultMCOmegaPlus);
- }
-
- //======================================================================================
- //--------------------------------------------------------------------------------------
- // V0A
- //--------------------------------------------------------------------------------------
- //======================================================================================
-
- //--- 3D Histo (Pt, Y, Multiplicity) for generated XiMinus/Plus, all generated
-
- if(! f3dHistGenPtVsYVsMultV0AXiMinus) {
- f3dHistGenPtVsYVsMultV0AXiMinus = new TH3F( "f3dHistGenPtVsYVsMultV0AXiMinus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenPtVsYVsMultV0AXiMinus);
- }
- if(! f3dHistGenPtVsYVsMultV0AXiPlus) {
- f3dHistGenPtVsYVsMultV0AXiPlus = new TH3F( "f3dHistGenPtVsYVsMultV0AXiPlus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenPtVsYVsMultV0AXiPlus);
- }
- //--- 3D Histo (Pt, Y, Multiplicity) for generated OmegaMinus/Plus
-
- if(! f3dHistGenPtVsYVsMultV0AOmegaMinus) {
- f3dHistGenPtVsYVsMultV0AOmegaMinus = new TH3F( "f3dHistGenPtVsYVsMultV0AOmegaMinus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenPtVsYVsMultV0AOmegaMinus);
- }
- if(! f3dHistGenPtVsYVsMultV0AOmegaPlus) {
- f3dHistGenPtVsYVsMultV0AOmegaPlus = new TH3F( "f3dHistGenPtVsYVsMultV0AOmegaPlus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenPtVsYVsMultV0AOmegaPlus);
- }
-
- //All generated cascades, YCMS
-
- if(! f3dHistGenPtVsYCMSVsMultV0AXiMinus) {
- f3dHistGenPtVsYCMSVsMultV0AXiMinus = new TH3F( "f3dHistGenPtVsYCMSVsMultV0AXiMinus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenPtVsYCMSVsMultV0AXiMinus);
- }
- if(! f3dHistGenPtVsYCMSVsMultV0AXiPlus) {
- f3dHistGenPtVsYCMSVsMultV0AXiPlus = new TH3F( "f3dHistGenPtVsYCMSVsMultV0AXiPlus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenPtVsYCMSVsMultV0AXiPlus);
- }
- //--- 3D Histo (Pt, Y, Multiplicity) for generated OmegaMinus/Plus
-
- if(! f3dHistGenPtVsYCMSVsMultV0AOmegaMinus) {
- f3dHistGenPtVsYCMSVsMultV0AOmegaMinus = new TH3F( "f3dHistGenPtVsYCMSVsMultV0AOmegaMinus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenPtVsYCMSVsMultV0AOmegaMinus);
- }
- if(! f3dHistGenPtVsYCMSVsMultV0AOmegaPlus) {
- f3dHistGenPtVsYCMSVsMultV0AOmegaPlus = new TH3F( "f3dHistGenPtVsYCMSVsMultV0AOmegaPlus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenPtVsYCMSVsMultV0AOmegaPlus);
- }
-
-
- //--------------------------------------------------------------------------------------
- //--- 3D Histo (Pt, Y, Multiplicity) for generated XiMinus/Plus, at selected analysis evts
-
- if(! f3dHistGenSelectedPtVsYVsMultV0AXiMinus) {
- f3dHistGenSelectedPtVsYVsMultV0AXiMinus = new TH3F( "f3dHistGenSelectedPtVsYVsMultV0AXiMinus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenSelectedPtVsYVsMultV0AXiMinus);
- }
- if(! f3dHistGenSelectedPtVsYVsMultV0AXiPlus) {
- f3dHistGenSelectedPtVsYVsMultV0AXiPlus = new TH3F( "f3dHistGenSelectedPtVsYVsMultV0AXiPlus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenSelectedPtVsYVsMultV0AXiPlus);
- }
- //--- 3D Histo (Pt, Y, Multiplicity) for generated OmegaMinus/Plus
-
- if(! f3dHistGenSelectedPtVsYVsMultV0AOmegaMinus) {
- f3dHistGenSelectedPtVsYVsMultV0AOmegaMinus = new TH3F( "f3dHistGenSelectedPtVsYVsMultV0AOmegaMinus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenSelectedPtVsYVsMultV0AOmegaMinus);
- }
- if(! f3dHistGenSelectedPtVsYVsMultV0AOmegaPlus) {
- f3dHistGenSelectedPtVsYVsMultV0AOmegaPlus = new TH3F( "f3dHistGenSelectedPtVsYVsMultV0AOmegaPlus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenSelectedPtVsYVsMultV0AOmegaPlus);
- }
-
- //ANALYSIS level Cascades, YCMS
-
-
- if(! f3dHistGenSelectedPtVsYCMSVsMultV0AXiMinus) {
- f3dHistGenSelectedPtVsYCMSVsMultV0AXiMinus = new TH3F( "f3dHistGenSelectedPtVsYCMSVsMultV0AXiMinus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenSelectedPtVsYCMSVsMultV0AXiMinus);
- }
- if(! f3dHistGenSelectedPtVsYCMSVsMultV0AXiPlus) {
- f3dHistGenSelectedPtVsYCMSVsMultV0AXiPlus = new TH3F( "f3dHistGenSelectedPtVsYCMSVsMultV0AXiPlus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenSelectedPtVsYCMSVsMultV0AXiPlus);
- }
- //--- 3D Histo (Pt, Y, Multiplicity) for generated OmegaMinus/Plus
-
- if(! f3dHistGenSelectedPtVsYCMSVsMultV0AOmegaMinus) {
- f3dHistGenSelectedPtVsYCMSVsMultV0AOmegaMinus = new TH3F( "f3dHistGenSelectedPtVsYCMSVsMultV0AOmegaMinus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenSelectedPtVsYCMSVsMultV0AOmegaMinus);
- }
- if(! f3dHistGenSelectedPtVsYCMSVsMultV0AOmegaPlus) {
- f3dHistGenSelectedPtVsYCMSVsMultV0AOmegaPlus = new TH3F( "f3dHistGenSelectedPtVsYCMSVsMultV0AOmegaPlus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenSelectedPtVsYCMSVsMultV0AOmegaPlus);
- }
-
- //Cross-check primary selection criteria
- //Should not impact much but inspired by rumors of DPMJet issues with primary selection (?)
-
- if(! f3dHistGenSelectedPrimPtVsYCMSVsMultV0AXiMinus) {
- f3dHistGenSelectedPrimPtVsYCMSVsMultV0AXiMinus = new TH3F( "f3dHistGenSelectedPrimPtVsYCMSVsMultV0AXiMinus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenSelectedPrimPtVsYCMSVsMultV0AXiMinus);
- }
- if(! f3dHistGenSelectedPrimPtVsYCMSVsMultV0AXiPlus) {
- f3dHistGenSelectedPrimPtVsYCMSVsMultV0AXiPlus = new TH3F( "f3dHistGenSelectedPrimPtVsYCMSVsMultV0AXiPlus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenSelectedPrimPtVsYCMSVsMultV0AXiPlus);
- }
- //--- 3D Histo (Pt, Y, Multiplicity) for generated OmegaMinus/Plus
-
- if(! f3dHistGenSelectedPrimPtVsYCMSVsMultV0AOmegaMinus) {
- f3dHistGenSelectedPrimPtVsYCMSVsMultV0AOmegaMinus = new TH3F( "f3dHistGenSelectedPrimPtVsYCMSVsMultV0AOmegaMinus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenSelectedPrimPtVsYCMSVsMultV0AOmegaMinus);
- }
- if(! f3dHistGenSelectedPrimPtVsYCMSVsMultV0AOmegaPlus) {
- f3dHistGenSelectedPrimPtVsYCMSVsMultV0AOmegaPlus = new TH3F( "f3dHistGenSelectedPrimPtVsYCMSVsMultV0AOmegaPlus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenSelectedPrimPtVsYCMSVsMultV0AOmegaPlus);
- }
-
- //======================================================================================
- //--------------------------------------------------------------------------------------
- // ZNA
- //--------------------------------------------------------------------------------------
- //======================================================================================
-
- //--- 3D Histo (Pt, Y, Multiplicity) for generated XiMinus/Plus, all generated
-
- if(! f3dHistGenPtVsYVsMultZNAXiMinus) {
- f3dHistGenPtVsYVsMultZNAXiMinus = new TH3F( "f3dHistGenPtVsYVsMultZNAXiMinus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenPtVsYVsMultZNAXiMinus);
- }
- if(! f3dHistGenPtVsYVsMultZNAXiPlus) {
- f3dHistGenPtVsYVsMultZNAXiPlus = new TH3F( "f3dHistGenPtVsYVsMultZNAXiPlus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenPtVsYVsMultZNAXiPlus);
- }
- //--- 3D Histo (Pt, Y, Multiplicity) for generated OmegaMinus/Plus
-
- if(! f3dHistGenPtVsYVsMultZNAOmegaMinus) {
- f3dHistGenPtVsYVsMultZNAOmegaMinus = new TH3F( "f3dHistGenPtVsYVsMultZNAOmegaMinus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenPtVsYVsMultZNAOmegaMinus);
- }
- if(! f3dHistGenPtVsYVsMultZNAOmegaPlus) {
- f3dHistGenPtVsYVsMultZNAOmegaPlus = new TH3F( "f3dHistGenPtVsYVsMultZNAOmegaPlus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenPtVsYVsMultZNAOmegaPlus);
- }
-
- //All generated cascades, YCMS
-
- if(! f3dHistGenPtVsYCMSVsMultZNAXiMinus) {
- f3dHistGenPtVsYCMSVsMultZNAXiMinus = new TH3F( "f3dHistGenPtVsYCMSVsMultZNAXiMinus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenPtVsYCMSVsMultZNAXiMinus);
- }
- if(! f3dHistGenPtVsYCMSVsMultZNAXiPlus) {
- f3dHistGenPtVsYCMSVsMultZNAXiPlus = new TH3F( "f3dHistGenPtVsYCMSVsMultZNAXiPlus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenPtVsYCMSVsMultZNAXiPlus);
- }
- //--- 3D Histo (Pt, Y, Multiplicity) for generated OmegaMinus/Plus
-
- if(! f3dHistGenPtVsYCMSVsMultZNAOmegaMinus) {
- f3dHistGenPtVsYCMSVsMultZNAOmegaMinus = new TH3F( "f3dHistGenPtVsYCMSVsMultZNAOmegaMinus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenPtVsYCMSVsMultZNAOmegaMinus);
- }
- if(! f3dHistGenPtVsYCMSVsMultZNAOmegaPlus) {
- f3dHistGenPtVsYCMSVsMultZNAOmegaPlus = new TH3F( "f3dHistGenPtVsYCMSVsMultZNAOmegaPlus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenPtVsYCMSVsMultZNAOmegaPlus);
- }
-
-
- //--------------------------------------------------------------------------------------
- //--- 3D Histo (Pt, Y, Multiplicity) for generated XiMinus/Plus, at selected analysis evts
-
- if(! f3dHistGenSelectedPtVsYVsMultZNAXiMinus) {
- f3dHistGenSelectedPtVsYVsMultZNAXiMinus = new TH3F( "f3dHistGenSelectedPtVsYVsMultZNAXiMinus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenSelectedPtVsYVsMultZNAXiMinus);
- }
- if(! f3dHistGenSelectedPtVsYVsMultZNAXiPlus) {
- f3dHistGenSelectedPtVsYVsMultZNAXiPlus = new TH3F( "f3dHistGenSelectedPtVsYVsMultZNAXiPlus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenSelectedPtVsYVsMultZNAXiPlus);
- }
- //--- 3D Histo (Pt, Y, Multiplicity) for generated OmegaMinus/Plus
-
- if(! f3dHistGenSelectedPtVsYVsMultZNAOmegaMinus) {
- f3dHistGenSelectedPtVsYVsMultZNAOmegaMinus = new TH3F( "f3dHistGenSelectedPtVsYVsMultZNAOmegaMinus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenSelectedPtVsYVsMultZNAOmegaMinus);
- }
- if(! f3dHistGenSelectedPtVsYVsMultZNAOmegaPlus) {
- f3dHistGenSelectedPtVsYVsMultZNAOmegaPlus = new TH3F( "f3dHistGenSelectedPtVsYVsMultZNAOmegaPlus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenSelectedPtVsYVsMultZNAOmegaPlus);
- }
-
- //ANALYSIS level Cascades, YCMS
-
-
- if(! f3dHistGenSelectedPtVsYCMSVsMultZNAXiMinus) {
- f3dHistGenSelectedPtVsYCMSVsMultZNAXiMinus = new TH3F( "f3dHistGenSelectedPtVsYCMSVsMultZNAXiMinus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenSelectedPtVsYCMSVsMultZNAXiMinus);
- }
- if(! f3dHistGenSelectedPtVsYCMSVsMultZNAXiPlus) {
- f3dHistGenSelectedPtVsYCMSVsMultZNAXiPlus = new TH3F( "f3dHistGenSelectedPtVsYCMSVsMultZNAXiPlus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenSelectedPtVsYCMSVsMultZNAXiPlus);
- }
- //--- 3D Histo (Pt, Y, Multiplicity) for generated OmegaMinus/Plus
-
- if(! f3dHistGenSelectedPtVsYCMSVsMultZNAOmegaMinus) {
- f3dHistGenSelectedPtVsYCMSVsMultZNAOmegaMinus = new TH3F( "f3dHistGenSelectedPtVsYCMSVsMultZNAOmegaMinus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenSelectedPtVsYCMSVsMultZNAOmegaMinus);
- }
- if(! f3dHistGenSelectedPtVsYCMSVsMultZNAOmegaPlus) {
- f3dHistGenSelectedPtVsYCMSVsMultZNAOmegaPlus = new TH3F( "f3dHistGenSelectedPtVsYCMSVsMultZNAOmegaPlus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenSelectedPtVsYCMSVsMultZNAOmegaPlus);
- }
-
-
- //======================================================================================
- //--------------------------------------------------------------------------------------
- // TRK
- //--------------------------------------------------------------------------------------
- //======================================================================================
-
- //--- 3D Histo (Pt, Y, Multiplicity) for generated XiMinus/Plus, all generated
-
- if(! f3dHistGenPtVsYVsMultTRKXiMinus) {
- f3dHistGenPtVsYVsMultTRKXiMinus = new TH3F( "f3dHistGenPtVsYVsMultTRKXiMinus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenPtVsYVsMultTRKXiMinus);
- }
- if(! f3dHistGenPtVsYVsMultTRKXiPlus) {
- f3dHistGenPtVsYVsMultTRKXiPlus = new TH3F( "f3dHistGenPtVsYVsMultTRKXiPlus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenPtVsYVsMultTRKXiPlus);
- }
- //--- 3D Histo (Pt, Y, Multiplicity) for generated OmegaMinus/Plus
-
- if(! f3dHistGenPtVsYVsMultTRKOmegaMinus) {
- f3dHistGenPtVsYVsMultTRKOmegaMinus = new TH3F( "f3dHistGenPtVsYVsMultTRKOmegaMinus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenPtVsYVsMultTRKOmegaMinus);
- }
- if(! f3dHistGenPtVsYVsMultTRKOmegaPlus) {
- f3dHistGenPtVsYVsMultTRKOmegaPlus = new TH3F( "f3dHistGenPtVsYVsMultTRKOmegaPlus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenPtVsYVsMultTRKOmegaPlus);
- }
-
- //All generated cascades, YCMS
-
- if(! f3dHistGenPtVsYCMSVsMultTRKXiMinus) {
- f3dHistGenPtVsYCMSVsMultTRKXiMinus = new TH3F( "f3dHistGenPtVsYCMSVsMultTRKXiMinus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenPtVsYCMSVsMultTRKXiMinus);
- }
- if(! f3dHistGenPtVsYCMSVsMultTRKXiPlus) {
- f3dHistGenPtVsYCMSVsMultTRKXiPlus = new TH3F( "f3dHistGenPtVsYCMSVsMultTRKXiPlus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenPtVsYCMSVsMultTRKXiPlus);
- }
- //--- 3D Histo (Pt, Y, Multiplicity) for generated OmegaMinus/Plus
-
- if(! f3dHistGenPtVsYCMSVsMultTRKOmegaMinus) {
- f3dHistGenPtVsYCMSVsMultTRKOmegaMinus = new TH3F( "f3dHistGenPtVsYCMSVsMultTRKOmegaMinus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenPtVsYCMSVsMultTRKOmegaMinus);
- }
- if(! f3dHistGenPtVsYCMSVsMultTRKOmegaPlus) {
- f3dHistGenPtVsYCMSVsMultTRKOmegaPlus = new TH3F( "f3dHistGenPtVsYCMSVsMultTRKOmegaPlus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenPtVsYCMSVsMultTRKOmegaPlus);
- }
-
-
- //--------------------------------------------------------------------------------------
- //--- 3D Histo (Pt, Y, Multiplicity) for generated XiMinus/Plus, at selected analysis evts
-
- if(! f3dHistGenSelectedPtVsYVsMultTRKXiMinus) {
- f3dHistGenSelectedPtVsYVsMultTRKXiMinus = new TH3F( "f3dHistGenSelectedPtVsYVsMultTRKXiMinus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenSelectedPtVsYVsMultTRKXiMinus);
- }
- if(! f3dHistGenSelectedPtVsYVsMultTRKXiPlus) {
- f3dHistGenSelectedPtVsYVsMultTRKXiPlus = new TH3F( "f3dHistGenSelectedPtVsYVsMultTRKXiPlus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenSelectedPtVsYVsMultTRKXiPlus);
- }
- //--- 3D Histo (Pt, Y, Multiplicity) for generated OmegaMinus/Plus
-
- if(! f3dHistGenSelectedPtVsYVsMultTRKOmegaMinus) {
- f3dHistGenSelectedPtVsYVsMultTRKOmegaMinus = new TH3F( "f3dHistGenSelectedPtVsYVsMultTRKOmegaMinus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenSelectedPtVsYVsMultTRKOmegaMinus);
- }
- if(! f3dHistGenSelectedPtVsYVsMultTRKOmegaPlus) {
- f3dHistGenSelectedPtVsYVsMultTRKOmegaPlus = new TH3F( "f3dHistGenSelectedPtVsYVsMultTRKOmegaPlus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenSelectedPtVsYVsMultTRKOmegaPlus);
- }
-
- //ANALYSIS level Cascades, YCMS
-
-
- if(! f3dHistGenSelectedPtVsYCMSVsMultTRKXiMinus) {
- f3dHistGenSelectedPtVsYCMSVsMultTRKXiMinus = new TH3F( "f3dHistGenSelectedPtVsYCMSVsMultTRKXiMinus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenSelectedPtVsYCMSVsMultTRKXiMinus);
- }
- if(! f3dHistGenSelectedPtVsYCMSVsMultTRKXiPlus) {
- f3dHistGenSelectedPtVsYCMSVsMultTRKXiPlus = new TH3F( "f3dHistGenSelectedPtVsYCMSVsMultTRKXiPlus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenSelectedPtVsYCMSVsMultTRKXiPlus);
- }
- //--- 3D Histo (Pt, Y, Multiplicity) for generated OmegaMinus/Plus
-
- if(! f3dHistGenSelectedPtVsYCMSVsMultTRKOmegaMinus) {
- f3dHistGenSelectedPtVsYCMSVsMultTRKOmegaMinus = new TH3F( "f3dHistGenSelectedPtVsYCMSVsMultTRKOmegaMinus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenSelectedPtVsYCMSVsMultTRKOmegaMinus);
- }
- if(! f3dHistGenSelectedPtVsYCMSVsMultTRKOmegaPlus) {
- f3dHistGenSelectedPtVsYCMSVsMultTRKOmegaPlus = new TH3F( "f3dHistGenSelectedPtVsYCMSVsMultTRKOmegaPlus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenSelectedPtVsYCMSVsMultTRKOmegaPlus);
- }
-
- //======================================================================================
- //--------------------------------------------------------------------------------------
- // SPD
- //--------------------------------------------------------------------------------------
- //======================================================================================
-
- //--- 3D Histo (Pt, Y, Multiplicity) for generated XiMinus/Plus, all generated
-
- if(! f3dHistGenPtVsYVsMultSPDXiMinus) {
- f3dHistGenPtVsYVsMultSPDXiMinus = new TH3F( "f3dHistGenPtVsYVsMultSPDXiMinus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenPtVsYVsMultSPDXiMinus);
- }
- if(! f3dHistGenPtVsYVsMultSPDXiPlus) {
- f3dHistGenPtVsYVsMultSPDXiPlus = new TH3F( "f3dHistGenPtVsYVsMultSPDXiPlus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenPtVsYVsMultSPDXiPlus);
- }
- //--- 3D Histo (Pt, Y, Multiplicity) for generated OmegaMinus/Plus
-
- if(! f3dHistGenPtVsYVsMultSPDOmegaMinus) {
- f3dHistGenPtVsYVsMultSPDOmegaMinus = new TH3F( "f3dHistGenPtVsYVsMultSPDOmegaMinus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenPtVsYVsMultSPDOmegaMinus);
- }
- if(! f3dHistGenPtVsYVsMultSPDOmegaPlus) {
- f3dHistGenPtVsYVsMultSPDOmegaPlus = new TH3F( "f3dHistGenPtVsYVsMultSPDOmegaPlus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenPtVsYVsMultSPDOmegaPlus);
- }
-
- //All generated cascades, YCMS
-
- if(! f3dHistGenPtVsYCMSVsMultSPDXiMinus) {
- f3dHistGenPtVsYCMSVsMultSPDXiMinus = new TH3F( "f3dHistGenPtVsYCMSVsMultSPDXiMinus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenPtVsYCMSVsMultSPDXiMinus);
- }
- if(! f3dHistGenPtVsYCMSVsMultSPDXiPlus) {
- f3dHistGenPtVsYCMSVsMultSPDXiPlus = new TH3F( "f3dHistGenPtVsYCMSVsMultSPDXiPlus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenPtVsYCMSVsMultSPDXiPlus);
- }
- //--- 3D Histo (Pt, Y, Multiplicity) for generated OmegaMinus/Plus
-
- if(! f3dHistGenPtVsYCMSVsMultSPDOmegaMinus) {
- f3dHistGenPtVsYCMSVsMultSPDOmegaMinus = new TH3F( "f3dHistGenPtVsYCMSVsMultSPDOmegaMinus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenPtVsYCMSVsMultSPDOmegaMinus);
- }
- if(! f3dHistGenPtVsYCMSVsMultSPDOmegaPlus) {
- f3dHistGenPtVsYCMSVsMultSPDOmegaPlus = new TH3F( "f3dHistGenPtVsYCMSVsMultSPDOmegaPlus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenPtVsYCMSVsMultSPDOmegaPlus);
- }
-
-
- //--------------------------------------------------------------------------------------
- //--- 3D Histo (Pt, Y, Multiplicity) for generated XiMinus/Plus, at selected analysis evts
-
- if(! f3dHistGenSelectedPtVsYVsMultSPDXiMinus) {
- f3dHistGenSelectedPtVsYVsMultSPDXiMinus = new TH3F( "f3dHistGenSelectedPtVsYVsMultSPDXiMinus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenSelectedPtVsYVsMultSPDXiMinus);
- }
- if(! f3dHistGenSelectedPtVsYVsMultSPDXiPlus) {
- f3dHistGenSelectedPtVsYVsMultSPDXiPlus = new TH3F( "f3dHistGenSelectedPtVsYVsMultSPDXiPlus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenSelectedPtVsYVsMultSPDXiPlus);
- }
- //--- 3D Histo (Pt, Y, Multiplicity) for generated OmegaMinus/Plus
-
- if(! f3dHistGenSelectedPtVsYVsMultSPDOmegaMinus) {
- f3dHistGenSelectedPtVsYVsMultSPDOmegaMinus = new TH3F( "f3dHistGenSelectedPtVsYVsMultSPDOmegaMinus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenSelectedPtVsYVsMultSPDOmegaMinus);
- }
- if(! f3dHistGenSelectedPtVsYVsMultSPDOmegaPlus) {
- f3dHistGenSelectedPtVsYVsMultSPDOmegaPlus = new TH3F( "f3dHistGenSelectedPtVsYVsMultSPDOmegaPlus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenSelectedPtVsYVsMultSPDOmegaPlus);
- }
-
- //ANALYSIS level Cascades, YCMS
-
-
- if(! f3dHistGenSelectedPtVsYCMSVsMultSPDXiMinus) {
- f3dHistGenSelectedPtVsYCMSVsMultSPDXiMinus = new TH3F( "f3dHistGenSelectedPtVsYCMSVsMultSPDXiMinus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenSelectedPtVsYCMSVsMultSPDXiMinus);
- }
- if(! f3dHistGenSelectedPtVsYCMSVsMultSPDXiPlus) {
- f3dHistGenSelectedPtVsYCMSVsMultSPDXiPlus = new TH3F( "f3dHistGenSelectedPtVsYCMSVsMultSPDXiPlus", "Pt_{#Xi} Vs Y_{#Xi} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Xi} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenSelectedPtVsYCMSVsMultSPDXiPlus);
- }
- //--- 3D Histo (Pt, Y, Multiplicity) for generated OmegaMinus/Plus
-
- if(! f3dHistGenSelectedPtVsYCMSVsMultSPDOmegaMinus) {
- f3dHistGenSelectedPtVsYCMSVsMultSPDOmegaMinus = new TH3F( "f3dHistGenSelectedPtVsYCMSVsMultSPDOmegaMinus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenSelectedPtVsYCMSVsMultSPDOmegaMinus);
- }
- if(! f3dHistGenSelectedPtVsYCMSVsMultSPDOmegaPlus) {
- f3dHistGenSelectedPtVsYCMSVsMultSPDOmegaPlus = new TH3F( "f3dHistGenSelectedPtVsYCMSVsMultSPDOmegaPlus", "Pt_{#Omega} Vs Y_{#Omega} Vs Multiplicity; Pt_{cascade} (GeV/c); Y_{#Omega} ; Mult", lCustomNBins, 0., lCustomPtUpperLimit, 48, -1.2,1.2,lCustomNBinsMultiplicity,0,lCustomNBinsMultiplicity);
- if(fkIsNuclear) fListHist->Add(f3dHistGenSelectedPtVsYCMSVsMultSPDOmegaPlus);
- }
-
-//----------------------------------
-// Primary Vertex Position Histos
-//----------------------------------
-
- if(! fHistPVx) {
- fHistPVx = new TH1F("fHistPVx",
- "PV x position;Nbr of Evts;x",
- 2000, -0.5, 0.5);
- fListHist->Add(fHistPVx);
- }
- if(! fHistPVy) {
- fHistPVy = new TH1F("fHistPVy",
- "PV y position;Nbr of Evts;y",
- 2000, -0.5, 0.5);
- fListHist->Add(fHistPVy);
- }
- if(! fHistPVz) {
- fHistPVz = new TH1F("fHistPVz",
- "PV z position;Nbr of Evts;z",
- 400, -20, 20);
- fListHist->Add(fHistPVz);
- }
-
- if(! fHistPVxAnalysis) {
- fHistPVxAnalysis = new TH1F("fHistPVxAnalysis",
- "PV x position;Nbr of Evts;x",
- 2000, -0.5, 0.5);
- fListHist->Add(fHistPVxAnalysis);
- }
- if(! fHistPVyAnalysis) {
- fHistPVyAnalysis = new TH1F("fHistPVyAnalysis",
- "PV y position;Nbr of Evts;y",
- 2000, -0.5, 0.5);
- fListHist->Add(fHistPVyAnalysis);
- }
- if(! fHistPVzAnalysis) {
- fHistPVzAnalysis = new TH1F("fHistPVzAnalysis",
- "PV z position;Nbr of Evts;z",
- 400, -20, 20);
- fListHist->Add(fHistPVzAnalysis);
- }
-
- //List of Histograms: Normal
- PostData(1, fListHist);
-
- //TTree Object: Saved to base directory. Should cache to disk while saving.
- //(Important to avoid excessive memory usage, particularly when merging)
- PostData(2, fTreeCascade);
-
-}// end UserCreateOutputObjects
-
-
-//________________________________________________________________________
-void AliAnalysisTaskExtractPerformanceCascade::UserExec(Option_t *)
-{
- // Main loop
- // Called for each event
-
- AliESDEvent *lESDevent = 0x0;
- AliMCEvent *lMCevent = 0x0;
- AliStack *lMCstack = 0x0;
-
- Int_t lNumberOfV0s = -1;
- Double_t lTrkgPrimaryVtxPos[3] = {-100.0, -100.0, -100.0};
- Double_t lBestPrimaryVtxPos[3] = {-100.0, -100.0, -100.0};
- Double_t lMagneticField = -10.;
-
- // Connect to the InputEvent
- // After these lines, we should have an ESD/AOD event + the number of V0s in it.
-
- // Appropriate for ESD analysis!
-
- lESDevent = dynamic_cast<AliESDEvent*>( InputEvent() );
- if (!lESDevent) {
- AliWarning("ERROR: lESDevent not available \n");
- return;
- }
-
-/* --- Acquisition of exact event ID
- fTreeVariableRunNumber = lESDevent->GetRunNumber();
- fTreeVariableEventNumber =
- ( ( ((ULong64_t)lESDevent->GetPeriodNumber() ) << 36 ) |
- ( ((ULong64_t)lESDevent->GetOrbitNumber () ) << 12 ) |
- ((ULong64_t)lESDevent->GetBunchCrossNumber() ) );
-*/
- lMCevent = MCEvent();
- if (!lMCevent) {
- Printf("ERROR: Could not retrieve MC event \n");
- cout << "Name of the file with pb :" << fInputHandler->GetTree()->GetCurrentFile()->GetName() << endl;
- return;
- }
-
- lMCstack = lMCevent->Stack();
- if (!lMCstack) {
- Printf("ERROR: Could not retrieve MC stack \n");
- cout << "Name of the file with pb :" << fInputHandler->GetTree()->GetCurrentFile()->GetName() << endl;
- return;
- }
- TArrayF mcPrimaryVtx;
- AliGenEventHeader* mcHeader=lMCevent->GenEventHeader();
- if(!mcHeader) return;
- mcHeader->PrimaryVertex(mcPrimaryVtx);
-
-//------------------------------------------------
-// Multiplicity Information Acquistion
-//------------------------------------------------
-
- //REVISED multiplicity estimator after 'multiplicity day' (2011)
- Int_t lMultiplicity = -100;
- Int_t lMultiplicityV0A = -100;
- Int_t lMultiplicityZNA = -100;
- Int_t lMultiplicityTRK = -100;
- Int_t lMultiplicitySPD = -100;
-
- //testing purposes
- if(fkIsNuclear == kFALSE) lMultiplicity = fESDtrackCuts->GetReferenceMultiplicity(lESDevent, AliESDtrackCuts::kTrackletsITSTPC, fEtaRefMult );
-
- //--------- GENERATED NUMBER OF CHARGED PARTICLES
- // ---> Set Variables to Zero again
- // ---> Variable Definition
-
- Long_t lNumberOfCharged = 0;
-
- //----- Loop on Stack ----------------------------------------------------------------
- for (Int_t iCurrentLabelStack = 0; iCurrentLabelStack < (lMCstack->GetNtrack()); iCurrentLabelStack++)
- {// This is the begining of the loop on tracks
- TParticle* particleOne = lMCstack->Particle(iCurrentLabelStack);
- if(!particleOne) continue;
- if(!particleOne->GetPDG()) continue;
- Double_t lThisCharge = particleOne->GetPDG()->Charge()/3.;
- if(TMath::Abs(lThisCharge)<0.001) continue;
- if(! (lMCstack->IsPhysicalPrimary(iCurrentLabelStack)) ) continue;
-
- //Double_t gpt = particleOne -> Pt();
- Double_t geta = particleOne -> Eta();
-
- if( TMath::Abs(geta) < 0.5) lNumberOfCharged++;
- }//End of loop on tracks
- //----- End Loop on Stack ------------------------------------------------------------
-
-
- //---> If this is a nuclear collision, then go nuclear on "multiplicity" variable...
- //---> Warning: Experimental
- if(fkIsNuclear == kTRUE){
- AliCentrality* centrality;
- centrality = lESDevent->GetCentrality();
- lMultiplicity = ( ( Int_t ) ( centrality->GetCentralityPercentile( fCentralityEstimator.Data() ) ) );
- lMultiplicityV0A = ( ( Int_t ) ( centrality->GetCentralityPercentile( "V0A" ) ) );
- lMultiplicityZNA = ( ( Int_t ) ( centrality->GetCentralityPercentile( "ZNA" ) ) );
- lMultiplicityTRK = ( ( Int_t ) ( centrality->GetCentralityPercentile( "TRK" ) ) );
- lMultiplicitySPD = ( ( Int_t ) ( centrality->GetCentralityPercentile( "CL1" ) ) );
- if (centrality->GetQuality()>1) {
- PostData(1, fListHist);
- PostData(2, fTreeCascade);
- return;
- }
- }
-
- if( fkSelectCentrality ){
- if( lMultiplicity < fCentSel_Low || lMultiplicity >= fCentSel_High ){
- //Event is outside desired centrality centrality in V0M!
- PostData(1, fListHist);
- PostData(2, fTreeCascade);
- return;
- }
- }
-
-
- //Set variable for filling tree afterwards!
- //---> pp case......: GetReferenceMultiplicity
- //---> Pb-Pb case...: Centrality by V0M
-
- fTreeCascVarMultiplicity = lMultiplicity;
- fTreeCascVarMultiplicityMC = lNumberOfCharged;
- fTreeCascVarMultiplicityV0A = lMultiplicityV0A;
- fTreeCascVarMultiplicityZNA = lMultiplicityZNA;
- fTreeCascVarMultiplicityTRK = lMultiplicityTRK;
- fTreeCascVarMultiplicitySPD = lMultiplicitySPD;
-
- fHistV0MultiplicityBeforeTrigSel->Fill ( lESDevent->GetNumberOfV0s() );
- fHistMultiplicityBeforeTrigSel->Fill ( lMultiplicity );
- fHistMultiplicityV0ABeforeTrigSel->Fill ( lMultiplicityV0A );
- fHistMultiplicityZNABeforeTrigSel->Fill ( lMultiplicityZNA );
- fHistMultiplicityTRKBeforeTrigSel->Fill ( lMultiplicityTRK );
- fHistMultiplicitySPDBeforeTrigSel->Fill ( lMultiplicitySPD );
-
-//------------------------------------------------
-// MC Information Acquistion
-//------------------------------------------------
-
- Int_t iNumberOfPrimaries = -1;
- iNumberOfPrimaries = lMCstack->GetNprimary();
- if(iNumberOfPrimaries < 1) return;
-
-//------------------------------------------------
-// Variable Definition
-//------------------------------------------------
-
- Int_t lNbMCPrimary = 0;
-
- Double_t lPtCurrentPart = 0;
-
- //Int_t lComeFromSigma = 0;
-
- // current mc particle 's mother
- //Int_t iCurrentMother = 0;
- lNbMCPrimary = lMCstack->GetNprimary();
-
-//------------------------------------------------
-// Pre-Physics Selection
-//------------------------------------------------
-
-
- fTreeCascVarEvHasXiMinus = kFALSE;
- fTreeCascVarEvHasXiPlus = kFALSE;
- fTreeCascVarEvHasOmegaMinus = kFALSE;
- fTreeCascVarEvHasOmegaPlus = kFALSE;
- fTreeCascVarEvHasLambda = kFALSE;
- fTreeCascVarEvHasAntiLambda = kFALSE;
-
- fTreeCascVarEvHasLowPtXiMinus = kFALSE;
- fTreeCascVarEvHasLowPtXiPlus = kFALSE;
- fTreeCascVarEvHasLowPtOmegaMinus = kFALSE;
- fTreeCascVarEvHasLowPtOmegaPlus = kFALSE;
- fTreeCascVarEvHasLowPtLambda = kFALSE;
- fTreeCascVarEvHasLowPtAntiLambda = kFALSE;
-
- fTreeCascVarEvHasVeryLowPtXiMinus = kFALSE;
- fTreeCascVarEvHasVeryLowPtXiPlus = kFALSE;
- fTreeCascVarEvHasVeryLowPtOmegaMinus = kFALSE;
- fTreeCascVarEvHasVeryLowPtOmegaPlus = kFALSE;
- fTreeCascVarEvHasVeryLowPtLambda = kFALSE;
- fTreeCascVarEvHasVeryLowPtAntiLambda = kFALSE;
-
-
-//----- Loop on primary Xi, Omega --------------------------------------------------------------
- for (Int_t iCurrentLabelStack = 0; iCurrentLabelStack < lNbMCPrimary; iCurrentLabelStack++)
- {// This is the begining of the loop on primaries
-
- TParticle* lCurrentParticlePrimary = 0x0;
- lCurrentParticlePrimary = lMCstack->Particle( iCurrentLabelStack );
- if(!lCurrentParticlePrimary){
- Printf("Cascade loop %d - MC TParticle pointer to current stack particle = 0x0 ! Skip ...\n", iCurrentLabelStack );
- continue;
- }
-
- //Event Type Acquisition
- if(lCurrentParticlePrimary->GetPdgCode() == 3312){ if (TMath::Abs(lCurrentParticlePrimary->Eta())<1.2 && lMCstack->IsPhysicalPrimary(iCurrentLabelStack) ) fTreeCascVarEvHasXiMinus = kTRUE; }
- if(lCurrentParticlePrimary->GetPdgCode() ==-3312){ if (TMath::Abs(lCurrentParticlePrimary->Eta())<1.2 && lMCstack->IsPhysicalPrimary(iCurrentLabelStack) ) fTreeCascVarEvHasXiPlus = kTRUE; }
- if(lCurrentParticlePrimary->GetPdgCode() == 3334){ if (TMath::Abs(lCurrentParticlePrimary->Eta())<1.2 && lMCstack->IsPhysicalPrimary(iCurrentLabelStack) ) fTreeCascVarEvHasOmegaMinus = kTRUE; }
- if(lCurrentParticlePrimary->GetPdgCode() ==-3334){ if (TMath::Abs(lCurrentParticlePrimary->Eta())<1.2 && lMCstack->IsPhysicalPrimary(iCurrentLabelStack) ) fTreeCascVarEvHasOmegaPlus = kTRUE; }
- if(lCurrentParticlePrimary->GetPdgCode() == 3122){ if (TMath::Abs(lCurrentParticlePrimary->Eta())<1.2 && lMCstack->IsPhysicalPrimary(iCurrentLabelStack) ) fTreeCascVarEvHasLambda = kTRUE; }
- if(lCurrentParticlePrimary->GetPdgCode() ==-3122){ if (TMath::Abs(lCurrentParticlePrimary->Eta())<1.2 && lMCstack->IsPhysicalPrimary(iCurrentLabelStack) ) fTreeCascVarEvHasAntiLambda = kTRUE; }
-
- if(lCurrentParticlePrimary->GetPdgCode() == 3312){ if (TMath::Abs(lCurrentParticlePrimary->Eta())<1.2 && lMCstack->IsPhysicalPrimary(iCurrentLabelStack) && lCurrentParticlePrimary->Pt()<2.0) fTreeCascVarEvHasLowPtXiMinus = kTRUE; }
- if(lCurrentParticlePrimary->GetPdgCode() ==-3312){ if (TMath::Abs(lCurrentParticlePrimary->Eta())<1.2 && lMCstack->IsPhysicalPrimary(iCurrentLabelStack) && lCurrentParticlePrimary->Pt()<2.0) fTreeCascVarEvHasLowPtXiPlus = kTRUE; }
- if(lCurrentParticlePrimary->GetPdgCode() == 3334){ if (TMath::Abs(lCurrentParticlePrimary->Eta())<1.2 && lMCstack->IsPhysicalPrimary(iCurrentLabelStack) && lCurrentParticlePrimary->Pt()<2.0) fTreeCascVarEvHasLowPtOmegaMinus = kTRUE; }
- if(lCurrentParticlePrimary->GetPdgCode() ==-3334){ if (TMath::Abs(lCurrentParticlePrimary->Eta())<1.2 && lMCstack->IsPhysicalPrimary(iCurrentLabelStack) && lCurrentParticlePrimary->Pt()<2.0) fTreeCascVarEvHasLowPtOmegaPlus = kTRUE; }
- if(lCurrentParticlePrimary->GetPdgCode() == 3122){ if (TMath::Abs(lCurrentParticlePrimary->Eta())<1.2 && lMCstack->IsPhysicalPrimary(iCurrentLabelStack) && lCurrentParticlePrimary->Pt()<2.0) fTreeCascVarEvHasLowPtLambda = kTRUE; }
- if(lCurrentParticlePrimary->GetPdgCode() ==-3122){ if (TMath::Abs(lCurrentParticlePrimary->Eta())<1.2 && lMCstack->IsPhysicalPrimary(iCurrentLabelStack) && lCurrentParticlePrimary->Pt()<2.0) fTreeCascVarEvHasLowPtAntiLambda = kTRUE; }
-
- if(lCurrentParticlePrimary->GetPdgCode() == 3312){ if (TMath::Abs(lCurrentParticlePrimary->Eta())<1.2 && lMCstack->IsPhysicalPrimary(iCurrentLabelStack) && lCurrentParticlePrimary->Pt()<1.2) fTreeCascVarEvHasVeryLowPtXiMinus = kTRUE; }
- if(lCurrentParticlePrimary->GetPdgCode() ==-3312){ if (TMath::Abs(lCurrentParticlePrimary->Eta())<1.2 && lMCstack->IsPhysicalPrimary(iCurrentLabelStack) && lCurrentParticlePrimary->Pt()<1.2) fTreeCascVarEvHasVeryLowPtXiPlus = kTRUE; }
- if(lCurrentParticlePrimary->GetPdgCode() == 3334){ if (TMath::Abs(lCurrentParticlePrimary->Eta())<1.2 && lMCstack->IsPhysicalPrimary(iCurrentLabelStack) && lCurrentParticlePrimary->Pt()<1.2) fTreeCascVarEvHasVeryLowPtOmegaMinus = kTRUE; }
- if(lCurrentParticlePrimary->GetPdgCode() ==-3334){ if (TMath::Abs(lCurrentParticlePrimary->Eta())<1.2 && lMCstack->IsPhysicalPrimary(iCurrentLabelStack) && lCurrentParticlePrimary->Pt()<1.2) fTreeCascVarEvHasVeryLowPtOmegaPlus = kTRUE; }
- if(lCurrentParticlePrimary->GetPdgCode() == 3122){ if (TMath::Abs(lCurrentParticlePrimary->Eta())<1.2 && lMCstack->IsPhysicalPrimary(iCurrentLabelStack) && lCurrentParticlePrimary->Pt()<1.2) fTreeCascVarEvHasVeryLowPtLambda = kTRUE; }
- if(lCurrentParticlePrimary->GetPdgCode() ==-3122){ if (TMath::Abs(lCurrentParticlePrimary->Eta())<1.2 && lMCstack->IsPhysicalPrimary(iCurrentLabelStack) && lCurrentParticlePrimary->Pt()<1.2) fTreeCascVarEvHasVeryLowPtAntiLambda = kTRUE; }
-
- if ( TMath::Abs(lCurrentParticlePrimary->GetPdgCode()) == 3312 || TMath::Abs(lCurrentParticlePrimary->GetPdgCode()) == 3334 ) {
- Double_t lRapXiMCPrimary = -100;
- if( (lCurrentParticlePrimary->Energy() - lCurrentParticlePrimary->Pz() +1.e-13) != 0 ) {
- if ( (lCurrentParticlePrimary->Energy() + lCurrentParticlePrimary->Pz()) / (lCurrentParticlePrimary->Energy() - lCurrentParticlePrimary->Pz() +1.e-13) !=0 ){
- lRapXiMCPrimary = 0.5*TMath::Log( (lCurrentParticlePrimary->Energy() + lCurrentParticlePrimary->Pz()) / (lCurrentParticlePrimary->Energy() - lCurrentParticlePrimary->Pz() +1.e-13) );
- }
- }
-
- //=================================================================================
- // Xi Histograms
- if( lCurrentParticlePrimary->GetPdgCode() == 3312 ){
- lPtCurrentPart = lCurrentParticlePrimary->Pt();
- f3dHistGenPtVsYVsMultXiMinus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicity);
- f3dHistGenPtVsYCMSVsMultXiMinus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicity);
- //MultMC
- f3dHistGenPtVsYVsMultMCXiMinus->Fill(lPtCurrentPart, lRapXiMCPrimary, lNumberOfCharged);
- f3dHistGenPtVsYCMSVsMultMCXiMinus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lNumberOfCharged);
- //V0A
- f3dHistGenPtVsYVsMultV0AXiMinus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicityV0A);
- f3dHistGenPtVsYCMSVsMultV0AXiMinus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicityV0A);
- //ZNA
- f3dHistGenPtVsYVsMultZNAXiMinus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicityZNA);
- f3dHistGenPtVsYCMSVsMultZNAXiMinus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicityZNA);
- //TRK
- f3dHistGenPtVsYVsMultTRKXiMinus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicityTRK);
- f3dHistGenPtVsYCMSVsMultTRKXiMinus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicityTRK);
- //SPD
- f3dHistGenPtVsYVsMultSPDXiMinus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicitySPD);
- f3dHistGenPtVsYCMSVsMultSPDXiMinus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicitySPD);
- }
- if( lCurrentParticlePrimary->GetPdgCode() == -3312 ){
- lPtCurrentPart = lCurrentParticlePrimary->Pt();
- f3dHistGenPtVsYVsMultXiPlus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicity);
- f3dHistGenPtVsYCMSVsMultXiPlus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicity);
- //MultMC
- f3dHistGenPtVsYVsMultMCXiPlus->Fill(lPtCurrentPart, lRapXiMCPrimary, lNumberOfCharged);
- f3dHistGenPtVsYCMSVsMultMCXiPlus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lNumberOfCharged);
- //V0A
- f3dHistGenPtVsYVsMultV0AXiPlus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicityV0A);
- f3dHistGenPtVsYCMSVsMultV0AXiPlus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicityV0A);
- //ZNA
- f3dHistGenPtVsYVsMultZNAXiPlus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicityZNA);
- f3dHistGenPtVsYCMSVsMultZNAXiPlus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicityZNA);
- //TRK
- f3dHistGenPtVsYVsMultTRKXiPlus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicityTRK);
- f3dHistGenPtVsYCMSVsMultTRKXiPlus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicityTRK);
- //SPD
- f3dHistGenPtVsYVsMultSPDXiPlus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicitySPD);
- f3dHistGenPtVsYCMSVsMultSPDXiPlus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicitySPD);
- }
- // Omega Histograms
- if( lCurrentParticlePrimary->GetPdgCode() == 3334 ){
- lPtCurrentPart = lCurrentParticlePrimary->Pt();
- f3dHistGenPtVsYVsMultOmegaMinus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicity);
- f3dHistGenPtVsYCMSVsMultOmegaMinus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicity);
- //MultMC
- f3dHistGenPtVsYVsMultMCOmegaMinus->Fill(lPtCurrentPart, lRapXiMCPrimary, lNumberOfCharged);
- f3dHistGenPtVsYCMSVsMultMCOmegaMinus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lNumberOfCharged);
- //V0A
- f3dHistGenPtVsYVsMultV0AOmegaMinus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicityV0A);
- f3dHistGenPtVsYCMSVsMultV0AOmegaMinus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicityV0A);
- //ZNA
- f3dHistGenPtVsYVsMultZNAOmegaMinus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicityZNA);
- f3dHistGenPtVsYCMSVsMultZNAOmegaMinus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicityZNA);
- //TRK
- f3dHistGenPtVsYVsMultTRKOmegaMinus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicityTRK);
- f3dHistGenPtVsYCMSVsMultTRKOmegaMinus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicityTRK);
- //SPD
- f3dHistGenPtVsYVsMultSPDOmegaMinus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicitySPD);
- f3dHistGenPtVsYCMSVsMultSPDOmegaMinus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicitySPD);
- }
- if( lCurrentParticlePrimary->GetPdgCode() == -3334 ){
- lPtCurrentPart = lCurrentParticlePrimary->Pt();
- f3dHistGenPtVsYVsMultOmegaPlus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicity);
- f3dHistGenPtVsYCMSVsMultOmegaPlus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicity);
- //MultMC
- f3dHistGenPtVsYVsMultMCOmegaPlus->Fill(lPtCurrentPart, lRapXiMCPrimary, lNumberOfCharged);
- f3dHistGenPtVsYCMSVsMultMCOmegaPlus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lNumberOfCharged);
- //V0A
- f3dHistGenPtVsYVsMultV0AOmegaPlus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicityV0A);
- f3dHistGenPtVsYCMSVsMultV0AOmegaPlus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicityV0A);
- //ZNA
- f3dHistGenPtVsYVsMultZNAOmegaPlus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicityZNA);
- f3dHistGenPtVsYCMSVsMultZNAOmegaPlus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicityZNA);
- //TRK
- f3dHistGenPtVsYVsMultTRKOmegaPlus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicityTRK);
- f3dHistGenPtVsYCMSVsMultTRKOmegaPlus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicityTRK);
- //SPD
- f3dHistGenPtVsYVsMultSPDOmegaPlus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicitySPD);
- f3dHistGenPtVsYCMSVsMultSPDOmegaPlus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicitySPD);
- }
- }
- }
-//----- End Loop on primary Xi, Omega ----------------------------------------------------------
-
-// ---> Set Variables to Zero again
-// ---> Variable Definition
-
- lPtCurrentPart = 0;
-
-//------------------------------------------------
-// Physics Selection
-//------------------------------------------------
-
- UInt_t maskIsSelected = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
- Bool_t isSelected = 0;
- isSelected = (maskIsSelected & AliVEvent::kMB) == AliVEvent::kMB;
-
- //pA triggering: CINT7
- if( fkSwitchINT7 ) isSelected = (maskIsSelected & AliVEvent::kINT7) == AliVEvent::kINT7;
-
- //Standard Min-Bias Selection
- if ( ! isSelected ) {
- PostData(1, fListHist);
- PostData(2, fTreeCascade);
- return;
- }
-
-//------------------------------------------------
-// Rerun cascade vertexer!
-//------------------------------------------------
-
- if( fkRunVertexers ){
- lESDevent->ResetCascades();
- lESDevent->ResetV0s();
-
- AliLightV0vertexer lV0vtxer;
- AliLightCascadeVertexer lCascVtxer;
-
- lV0vtxer.SetDefaultCuts(fV0VertexerSels);
- lCascVtxer.SetDefaultCuts(fCascadeVertexerSels);
-
- lV0vtxer.Tracks2V0vertices(lESDevent);
- lCascVtxer.V0sTracks2CascadeVertices(lESDevent);
- }
-//------------------------------------------------
-// After Trigger Selection
-//------------------------------------------------
-
- lNumberOfV0s = lESDevent->GetNumberOfV0s();
-
- //Set variable for filling tree afterwards!
- fHistV0MultiplicityForTrigEvt->Fill(lNumberOfV0s);
- fHistMultiplicityForTrigEvt->Fill ( lMultiplicity );
- fHistMultiplicityV0AForTrigEvt ->Fill( lMultiplicityV0A );
- fHistMultiplicityZNAForTrigEvt ->Fill( lMultiplicityZNA );
- fHistMultiplicityTRKForTrigEvt ->Fill( lMultiplicityTRK );
- fHistMultiplicitySPDForTrigEvt ->Fill( lMultiplicitySPD );
-
-//------------------------------------------------
-// Getting: Primary Vertex + MagField Info
-//------------------------------------------------
-
- const AliESDVertex *lPrimaryTrackingESDVtx = lESDevent->GetPrimaryVertexTracks();
- // get the vtx stored in ESD found with tracks
- lPrimaryTrackingESDVtx->GetXYZ( lTrkgPrimaryVtxPos );
-
- const AliESDVertex *lPrimaryBestESDVtx = lESDevent->GetPrimaryVertex();
- // get the best primary vertex available for the event
- // As done in AliCascadeVertexer, we keep the one which is the best one available.
- // between : Tracking vertex > SPD vertex > TPC vertex > default SPD vertex
- // This one will be used for next calculations (DCA essentially)
- lPrimaryBestESDVtx->GetXYZ( lBestPrimaryVtxPos );
-
- Double_t lPrimaryVtxPosition[3];
- const AliVVertex *primaryVtx = lESDevent->GetPrimaryVertex();
- lPrimaryVtxPosition[0] = primaryVtx->GetX();
- lPrimaryVtxPosition[1] = primaryVtx->GetY();
- lPrimaryVtxPosition[2] = primaryVtx->GetZ();
- fHistPVx->Fill( lPrimaryVtxPosition[0] );
- fHistPVy->Fill( lPrimaryVtxPosition[1] );
- fHistPVz->Fill( lPrimaryVtxPosition[2] );
-
- //------------------------------------------------
- // Primary Vertex Requirements Section:
- // ---> pp and PbPb: Only requires |z|<10cm
- // ---> pPb: all requirements checked at this stage
- //------------------------------------------------
-
- //Roberto's PV selection criteria, implemented 17th April 2013
-
- /* vertex selection */
- Bool_t fHasVertex = kFALSE;
-
- const AliESDVertex *vertex = lESDevent->GetPrimaryVertexTracks();
- if (vertex->GetNContributors() < 1) {
- vertex = lESDevent->GetPrimaryVertexSPD();
- if (vertex->GetNContributors() < 1) fHasVertex = kFALSE;
- else fHasVertex = kTRUE;
- TString vtxTyp = vertex->GetTitle();
- Double_t cov[6]={0};
- vertex->GetCovarianceMatrix(cov);
- Double_t zRes = TMath::Sqrt(cov[5]);
- if (vtxTyp.Contains("vertexer:Z") && (zRes>0.25)) fHasVertex = kFALSE;
- }
- else fHasVertex = kTRUE;
-
- //Is First event in chunk rejection: Still present!
- if(fkpAVertexSelection==kTRUE && fHasVertex == kFALSE) {
- AliWarning("Pb / | PV does not satisfy selection criteria!");
- PostData(1, fListHist);
- PostData(2, fTreeCascade);
- return;
- }
-
- //Is First event in chunk rejection: Still present!
- if(fkpAVertexSelection==kTRUE && fUtils->IsFirstEventInChunk(lESDevent)) {
- AliWarning("Pb / | This is the first event in the chunk!");
- PostData(1, fListHist);
- PostData(2, fTreeCascade);
- return;
- }
-
- //17 April Fix: Always do primary vertex Z selection, after pA vertex selection from Roberto
- if(TMath::Abs(lBestPrimaryVtxPos[2]) > 10.0) {
- AliWarning("Pb / | Z position of Best Prim Vtx | > 10.0 cm ... return !");
- PostData(1, fListHist);
- PostData(2, fTreeCascade);
- return;
- }
-
- lMagneticField = lESDevent->GetMagneticField( );
- fHistV0MultiplicityForSelEvt ->Fill( lNumberOfV0s );
- fHistMultiplicity->Fill(lMultiplicity);
- fHistMultiplicityV0A->Fill(lMultiplicityV0A);
- fHistMultiplicityZNA->Fill(lMultiplicityZNA);
- fHistMultiplicityTRK->Fill(lMultiplicityTRK);
- fHistMultiplicitySPD->Fill(lMultiplicitySPD);
-
-//------------------------------------------------
-// SKIP: Events with well-established PVtx
-//------------------------------------------------
-
- const AliESDVertex *lPrimaryTrackingESDVtxCheck = lESDevent->GetPrimaryVertexTracks();
- const AliESDVertex *lPrimarySPDVtx = lESDevent->GetPrimaryVertexSPD();
- if (!lPrimarySPDVtx->GetStatus() && !lPrimaryTrackingESDVtxCheck->GetStatus() && fkpAVertexSelection==kFALSE ){
- AliWarning("Pb / No SPD prim. vertex nor prim. Tracking vertex ... return !");
- PostData(1, fListHist);
- PostData(2, fTreeCascade);
- return;
- }
- fHistV0MultiplicityForSelEvtNoTPCOnly ->Fill( lNumberOfV0s );
- fHistMultiplicityNoTPCOnly->Fill(lMultiplicity);
- fHistMultiplicityV0ANoTPCOnly->Fill(lMultiplicityV0A);
- fHistMultiplicityZNANoTPCOnly->Fill(lMultiplicityZNA);
- fHistMultiplicityTRKNoTPCOnly->Fill(lMultiplicityTRK);
- fHistMultiplicitySPDNoTPCOnly->Fill(lMultiplicitySPD);
-
-//------------------------------------------------
-// Pileup Rejection Studies
-//------------------------------------------------
-
- // FIXME : quality selection regarding pile-up rejection
- if(lESDevent->IsPileupFromSPD() && !fkIsNuclear ){// minContributors=3, minZdist=0.8, nSigmaZdist=3., nSigmaDiamXY=2., nSigmaDiamZ=5. -> see http://alisoft.cern.ch/viewvc/trunk/STEER/AliESDEvent.h?root=AliRoot&r1=41914&r2=42199&pathrev=42199
- AliWarning("Pb / This is tagged as Pileup from SPD... return !");
- PostData(1, fListHist);
- PostData(2, fTreeCascade);
- return;
- }
- fHistV0MultiplicityForSelEvtNoTPCOnlyNoPileup ->Fill( lNumberOfV0s );
- fHistMultiplicityNoTPCOnlyNoPileup->Fill(lMultiplicity);
- fHistMultiplicityV0ANoTPCOnlyNoPileup->Fill(lMultiplicityV0A);
- fHistMultiplicityZNANoTPCOnlyNoPileup->Fill(lMultiplicityZNA);
- fHistMultiplicityTRKNoTPCOnlyNoPileup->Fill(lMultiplicityTRK);
- fHistMultiplicitySPDNoTPCOnlyNoPileup->Fill(lMultiplicitySPD);
-
- //Do control histograms without the IsFromVertexerZ events, but consider them in analysis...
- if( ! (lESDevent->GetPrimaryVertex()->IsFromVertexerZ() ) ){
- fHistPVxAnalysis->Fill( lPrimaryVtxPosition[0] );
- fHistPVyAnalysis->Fill( lPrimaryVtxPosition[1] );
- fHistPVzAnalysis->Fill( lPrimaryVtxPosition[2] );
- }
-
-//------------------------------------------------
-// stack loop starts here
-//------------------------------------------------
-
-//----- Loop on primary Xi, Omega --------------------------------------------------------------
- for (Int_t iCurrentLabelStack = 0; iCurrentLabelStack < lNbMCPrimary; iCurrentLabelStack++)
- {// This is the begining of the loop on primaries
-
- TParticle* lCurrentParticlePrimary = 0x0;
- lCurrentParticlePrimary = lMCstack->Particle( iCurrentLabelStack );
- if(!lCurrentParticlePrimary){
- Printf("Cascade loop %d - MC TParticle pointer to current stack particle = 0x0 ! Skip ...\n", iCurrentLabelStack );
- continue;
- }
- if ( TMath::Abs(lCurrentParticlePrimary->GetPdgCode()) == 3312 || TMath::Abs(lCurrentParticlePrimary->GetPdgCode()) == 3334 ) {
- Double_t lRapXiMCPrimary = -100;
- if( (lCurrentParticlePrimary->Energy() - lCurrentParticlePrimary->Pz() +1.e-13) != 0 ) {
- if ( (lCurrentParticlePrimary->Energy() + lCurrentParticlePrimary->Pz()) / (lCurrentParticlePrimary->Energy() - lCurrentParticlePrimary->Pz() +1.e-13) !=0 ){
- lRapXiMCPrimary = 0.5*TMath::Log( (lCurrentParticlePrimary->Energy() + lCurrentParticlePrimary->Pz()) / (lCurrentParticlePrimary->Energy() - lCurrentParticlePrimary->Pz() +1.e-13) );
- }
- }
-
- //=================================================================================
- // Xi Histograms
- if( lCurrentParticlePrimary->GetPdgCode() == 3312 ){
- lPtCurrentPart = lCurrentParticlePrimary->Pt();
- f3dHistGenSelectedPtVsYVsMultXiMinus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicity);
- f3dHistGenSelectedPtVsYCMSVsMultXiMinus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicity);
- //MultMC
- f3dHistGenSelectedPtVsYVsMultMCXiMinus->Fill(lPtCurrentPart, lRapXiMCPrimary, lNumberOfCharged);
- f3dHistGenSelectedPtVsYCMSVsMultMCXiMinus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lNumberOfCharged);
- //V0A
- f3dHistGenSelectedPtVsYVsMultV0AXiMinus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicityV0A);
- f3dHistGenSelectedPtVsYCMSVsMultV0AXiMinus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicityV0A);
- //ZNA
- f3dHistGenSelectedPtVsYVsMultZNAXiMinus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicityZNA);
- f3dHistGenSelectedPtVsYCMSVsMultZNAXiMinus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicityZNA);
- //TRK
- f3dHistGenSelectedPtVsYVsMultTRKXiMinus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicityTRK);
- f3dHistGenSelectedPtVsYCMSVsMultTRKXiMinus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicityTRK);
- //SPD
- f3dHistGenSelectedPtVsYVsMultSPDXiMinus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicitySPD);
- f3dHistGenSelectedPtVsYCMSVsMultSPDXiMinus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicitySPD);
- }
- if( lCurrentParticlePrimary->GetPdgCode() == -3312 ){
- lPtCurrentPart = lCurrentParticlePrimary->Pt();
- f3dHistGenSelectedPtVsYVsMultXiPlus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicity);
- f3dHistGenSelectedPtVsYCMSVsMultXiPlus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicity);
- //MultMC
- f3dHistGenSelectedPtVsYVsMultMCXiPlus->Fill(lPtCurrentPart, lRapXiMCPrimary, lNumberOfCharged);
- f3dHistGenSelectedPtVsYCMSVsMultMCXiPlus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lNumberOfCharged);
- //V0A
- f3dHistGenSelectedPtVsYVsMultV0AXiPlus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicityV0A);
- f3dHistGenSelectedPtVsYCMSVsMultV0AXiPlus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicityV0A);
- //ZNA
- f3dHistGenSelectedPtVsYVsMultZNAXiPlus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicityZNA);
- f3dHistGenSelectedPtVsYCMSVsMultZNAXiPlus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicityZNA);
- //TRK
- f3dHistGenSelectedPtVsYVsMultTRKXiPlus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicityTRK);
- f3dHistGenSelectedPtVsYCMSVsMultTRKXiPlus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicityTRK);
- //SPD
- f3dHistGenSelectedPtVsYVsMultSPDXiPlus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicitySPD);
- f3dHistGenSelectedPtVsYCMSVsMultSPDXiPlus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicitySPD);
- }
- // Omega Histograms
- if( lCurrentParticlePrimary->GetPdgCode() == 3334 ){
- lPtCurrentPart = lCurrentParticlePrimary->Pt();
- f3dHistGenSelectedPtVsYVsMultOmegaMinus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicity);
- f3dHistGenSelectedPtVsYCMSVsMultOmegaMinus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicity);
- //MultMC
- f3dHistGenSelectedPtVsYVsMultMCOmegaMinus->Fill(lPtCurrentPart, lRapXiMCPrimary, lNumberOfCharged);
- f3dHistGenSelectedPtVsYCMSVsMultMCOmegaMinus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lNumberOfCharged);
- //V0A
- f3dHistGenSelectedPtVsYVsMultV0AOmegaMinus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicityV0A);
- f3dHistGenSelectedPtVsYCMSVsMultV0AOmegaMinus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicityV0A);
- //ZNA
- f3dHistGenSelectedPtVsYVsMultZNAOmegaMinus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicityZNA);
- f3dHistGenSelectedPtVsYCMSVsMultZNAOmegaMinus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicityZNA);
- //TRK
- f3dHistGenSelectedPtVsYVsMultTRKOmegaMinus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicityTRK);
- f3dHistGenSelectedPtVsYCMSVsMultTRKOmegaMinus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicityTRK);
- //SPD
- f3dHistGenSelectedPtVsYVsMultSPDOmegaMinus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicitySPD);
- f3dHistGenSelectedPtVsYCMSVsMultSPDOmegaMinus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicitySPD);
- }
- if( lCurrentParticlePrimary->GetPdgCode() == -3334 ){
- lPtCurrentPart = lCurrentParticlePrimary->Pt();
- f3dHistGenSelectedPtVsYVsMultOmegaPlus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicity);
- f3dHistGenSelectedPtVsYCMSVsMultOmegaPlus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicity);
- //MultMC
- f3dHistGenSelectedPtVsYVsMultMCOmegaPlus->Fill(lPtCurrentPart, lRapXiMCPrimary, lNumberOfCharged);
- f3dHistGenSelectedPtVsYCMSVsMultMCOmegaPlus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lNumberOfCharged);
- //V0A
- f3dHistGenSelectedPtVsYVsMultV0AOmegaPlus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicityV0A);
- f3dHistGenSelectedPtVsYCMSVsMultV0AOmegaPlus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicityV0A);
- //ZNA
- f3dHistGenSelectedPtVsYVsMultZNAOmegaPlus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicityZNA);
- f3dHistGenSelectedPtVsYCMSVsMultZNAOmegaPlus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicityZNA);
- //TRK
- f3dHistGenSelectedPtVsYVsMultTRKOmegaPlus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicityTRK);
- f3dHistGenSelectedPtVsYCMSVsMultTRKOmegaPlus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicityTRK);
- //SPD
- f3dHistGenSelectedPtVsYVsMultSPDOmegaPlus->Fill(lPtCurrentPart, lRapXiMCPrimary, lMultiplicitySPD);
- f3dHistGenSelectedPtVsYCMSVsMultSPDOmegaPlus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicitySPD);
- }
- }
- }
-//----- End Loop on primary Xi, Omega ----------------------------------------------------------
-
-
- //----- Loop on primary Xi, Omega --------------------------------------------------------------
- for (Int_t iCurrentLabelStack = 0; iCurrentLabelStack < (lMCstack->GetNtrack()); iCurrentLabelStack++)
- {// This is the begining of the loop on primaries
-
- TParticle* lCurrentParticlePrimary = 0x0;
- lCurrentParticlePrimary = lMCstack->Particle( iCurrentLabelStack );
- if(!lCurrentParticlePrimary){
- Printf("Cascade loop %d - MC TParticle pointer to current stack particle = 0x0 ! Skip ...\n", iCurrentLabelStack );
- continue;
- }
- if ( TMath::Abs(lCurrentParticlePrimary->GetPdgCode()) == 3312 || TMath::Abs(lCurrentParticlePrimary->GetPdgCode()) == 3334 ) {
- Double_t lRapXiMCPrimary = -100;
- if( (lCurrentParticlePrimary->Energy() - lCurrentParticlePrimary->Pz() +1.e-13) != 0 ) {
- if ( (lCurrentParticlePrimary->Energy() + lCurrentParticlePrimary->Pz()) / (lCurrentParticlePrimary->Energy() - lCurrentParticlePrimary->Pz() +1.e-13) !=0 ){
- lRapXiMCPrimary = 0.5*TMath::Log( (lCurrentParticlePrimary->Energy() + lCurrentParticlePrimary->Pz()) / (lCurrentParticlePrimary->Energy() - lCurrentParticlePrimary->Pz() +1.e-13) );
- }
- }
- //IsPhysicalPrimary: Cross-check with old index test
- // (cascades -> negligible difference ?... )
- if ( lMCstack->IsPhysicalPrimary(iCurrentLabelStack)!=kTRUE ) continue;
-
- //=================================================================================
- // Xi Histograms
- if( lCurrentParticlePrimary->GetPdgCode() == 3312 ){
- lPtCurrentPart = lCurrentParticlePrimary->Pt();
- f3dHistGenSelectedPrimPtVsYCMSVsMultV0AXiMinus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicityV0A);
- }
- if( lCurrentParticlePrimary->GetPdgCode() == -3312 ){
- lPtCurrentPart = lCurrentParticlePrimary->Pt();
- f3dHistGenSelectedPrimPtVsYCMSVsMultV0AXiPlus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicityV0A);
- }
- // Omega Histograms
- if( lCurrentParticlePrimary->GetPdgCode() == 3334 ){
- lPtCurrentPart = lCurrentParticlePrimary->Pt();
- f3dHistGenSelectedPrimPtVsYCMSVsMultV0AOmegaMinus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicityV0A);
- }
- if( lCurrentParticlePrimary->GetPdgCode() == -3334 ){
- lPtCurrentPart = lCurrentParticlePrimary->Pt();
- f3dHistGenSelectedPrimPtVsYCMSVsMultV0AOmegaPlus->Fill(lPtCurrentPart, lRapXiMCPrimary+fpArapidityShift, lMultiplicityV0A);
- }
- }
- }
- //----- End Loop on primary Xi, Omega ----------------------------------------------------------
-
-
-//------------------------------------------------
-// MAIN CASCADE LOOP STARTS HERE
-//------------------------------------------------
-// Code Credit: Antonin Maire (thanks^100)
-// ---> This is an adaptation
-
- Long_t ncascades = 0;
- ncascades = lESDevent->GetNumberOfCascades();
-
-
- for (Int_t iXi = 0; iXi < ncascades; iXi++){
- //------------------------------------------------
- // Initializations
- //------------------------------------------------
- //Double_t lTrkgPrimaryVtxRadius3D = -500.0;
- //Double_t lBestPrimaryVtxRadius3D = -500.0;
-
- // - 1st part of initialisation : variables needed to store AliESDCascade data members
- Double_t lEffMassXi = 0. ;
- //Double_t lChi2Xi = -1. ;
- Double_t lDcaXiDaughters = -1. ;
- Double_t lXiCosineOfPointingAngle = -1. ;
- Double_t lPosXi[3] = { -1000.0, -1000.0, -1000.0 };
- Double_t lXiRadius = -1000. ;
-
- // - 2nd part of initialisation : Nbr of clusters within TPC for the 3 daughter cascade tracks
- Int_t lPosTPCClusters = -1; // For ESD only ...//FIXME : wait for availability in AOD
- Int_t lNegTPCClusters = -1; // For ESD only ...
- Int_t lBachTPCClusters = -1; // For ESD only ...
-
- // - 3rd part of initialisation : about V0 part in cascades
- Double_t lInvMassLambdaAsCascDghter = 0.;
- //Double_t lV0Chi2Xi = -1. ;
- Double_t lDcaV0DaughtersXi = -1.;
-
- Double_t lDcaBachToPrimVertexXi = -1., lDcaV0ToPrimVertexXi = -1.;
- Double_t lDcaPosToPrimVertexXi = -1.;
- Double_t lDcaNegToPrimVertexXi = -1.;
- Double_t lV0CosineOfPointingAngleXi = -1. ;
- Double_t lV0CosineOfPointingAngleXiSpecial = -1. ;
- Double_t lPosV0Xi[3] = { -1000. , -1000., -1000. }; // Position of VO coming from cascade
- Double_t lV0RadiusXi = -1000.0;
- Double_t lV0quality = 0.;
-
- // - 4th part of initialisation : Effective masses
- Double_t lInvMassXiMinus = 0.;
- Double_t lInvMassXiPlus = 0.;
- Double_t lInvMassOmegaMinus = 0.;
- Double_t lInvMassOmegaPlus = 0.;
-
- // - 6th part of initialisation : extra info for QA
- Double_t lXiMomX = 0. , lXiMomY = 0., lXiMomZ = 0.;
- Double_t lXiTransvMom = 0. ;
- Double_t lXiTransvMomMC= 0. ;
- Double_t lXiTotMom = 0. ;
-
- Double_t lBachMomX = 0., lBachMomY = 0., lBachMomZ = 0.;
- //Double_t lBachTransvMom = 0.;
- //Double_t lBachTotMom = 0.;
-
- fTreeCascVarNegNSigmaPion = -100;
- fTreeCascVarNegNSigmaProton = -100;
- fTreeCascVarPosNSigmaPion = -100;
- fTreeCascVarPosNSigmaProton = -100;
- fTreeCascVarBachNSigmaPion = -100;
- fTreeCascVarBachNSigmaKaon = -100;
-
- Short_t lChargeXi = -2;
- //Double_t lV0toXiCosineOfPointingAngle = 0. ;
-
- Double_t lRapXi = -20.0, lRapOmega = -20.0, lRapMC = -20.0; // lEta = -20.0, lTheta = 360., lPhi = 720. ;
- //Double_t lAlphaXi = -200., lPtArmXi = -200.0;
-
- // -------------------------------------
- // II.ESD - Calculation Part dedicated to Xi vertices (ESD)
-
- AliESDcascade *xi = lESDevent->GetCascade(iXi);
- if (!xi) continue;
-
-
- // - II.Step 1 : around primary vertex
- //-------------
- //lTrkgPrimaryVtxRadius3D = TMath::Sqrt( lTrkgPrimaryVtxPos[0] * lTrkgPrimaryVtxPos[0] +
- // lTrkgPrimaryVtxPos[1] * lTrkgPrimaryVtxPos[1] +
- // lTrkgPrimaryVtxPos[2] * lTrkgPrimaryVtxPos[2] );
-
- //lBestPrimaryVtxRadius3D = TMath::Sqrt( lBestPrimaryVtxPos[0] * lBestPrimaryVtxPos[0] +
- // lBestPrimaryVtxPos[1] * lBestPrimaryVtxPos[1] +
- // lBestPrimaryVtxPos[2] * lBestPrimaryVtxPos[2] );
-
- // - II.Step 2 : Assigning the necessary variables for specific AliESDcascade data members (ESD)
- //-------------
- lV0quality = 0.;
- xi->ChangeMassHypothesis(lV0quality , 3312); // default working hypothesis : cascade = Xi- decay
-
- lEffMassXi = xi->GetEffMassXi();
- //lChi2Xi = xi->GetChi2Xi();
- lDcaXiDaughters = xi->GetDcaXiDaughters();
- lXiCosineOfPointingAngle = xi->GetCascadeCosineOfPointingAngle( lBestPrimaryVtxPos[0],
- lBestPrimaryVtxPos[1],
- lBestPrimaryVtxPos[2] );
- // Take care : the best available vertex should be used (like in AliCascadeVertexer)
-
- xi->GetXYZcascade( lPosXi[0], lPosXi[1], lPosXi[2] );
- lXiRadius = TMath::Sqrt( lPosXi[0]*lPosXi[0] + lPosXi[1]*lPosXi[1] );
-
- // - II.Step 3 : around the tracks : Bach + V0 (ESD)
- // ~ Necessary variables for ESDcascade data members coming from the ESDv0 part (inheritance)
- //-------------
-
- UInt_t lIdxPosXi = (UInt_t) TMath::Abs( xi->GetPindex() );
- UInt_t lIdxNegXi = (UInt_t) TMath::Abs( xi->GetNindex() );
- UInt_t lBachIdx = (UInt_t) TMath::Abs( xi->GetBindex() );
- // Care track label can be negative in MC production (linked with the track quality)
- // However = normally, not the case for track index ...
-
- // FIXME : rejection of a double use of a daughter track (nothing but just a crosscheck of what is done in the cascade vertexer)
- if(lBachIdx == lIdxNegXi) {
- AliWarning("Pb / Idx(Bach. track) = Idx(Neg. track) ... continue!"); continue;
- }
- if(lBachIdx == lIdxPosXi) {
- AliWarning("Pb / Idx(Bach. track) = Idx(Pos. track) ... continue!"); continue;
- }
-
- AliESDtrack *pTrackXi = lESDevent->GetTrack( lIdxPosXi );
- AliESDtrack *nTrackXi = lESDevent->GetTrack( lIdxNegXi );
- AliESDtrack *bachTrackXi = lESDevent->GetTrack( lBachIdx );
-
- if (!pTrackXi || !nTrackXi || !bachTrackXi ) {
- AliWarning("ERROR: Could not retrieve one of the 3 ESD daughter tracks of the cascade ...");
- continue;
- }
-
- fTreeCascVarPosEta = pTrackXi->Eta();
- fTreeCascVarNegEta = nTrackXi->Eta();
- fTreeCascVarBachEta = bachTrackXi->Eta();
-
- //Save shared clusters information
- fTreeCascVarNegSharedClusters = nTrackXi->GetTPCnclsS(0,159);
- fTreeCascVarPosSharedClusters = pTrackXi->GetTPCnclsS(0,159);
- fTreeCascVarBachSharedClusters = bachTrackXi->GetTPCnclsS(0,159);
-
- Double_t lBMom[3], lNMom[3], lPMom[3];
- xi->GetBPxPyPz( lBMom[0], lBMom[1], lBMom[2] );
- xi->GetPPxPyPz( lPMom[0], lPMom[1], lPMom[2] );
- xi->GetNPxPyPz( lNMom[0], lNMom[1], lNMom[2] );
-
- fTreeCascVarBachTransMom = TMath::Sqrt( lBMom[0]*lBMom[0] + lBMom[1]*lBMom[1] );
- fTreeCascVarPosTransMom = TMath::Sqrt( lPMom[0]*lPMom[0] + lPMom[1]*lPMom[1] );
- fTreeCascVarNegTransMom = TMath::Sqrt( lNMom[0]*lNMom[0] + lNMom[1]*lNMom[1] );
-
- //------------------------------------------------
- // TPC dEdx information
- //------------------------------------------------
- fTreeCascVarNegNSigmaPion = fPIDResponse->NumberOfSigmasTPC( nTrackXi, AliPID::kPion );
- fTreeCascVarNegNSigmaProton = fPIDResponse->NumberOfSigmasTPC( nTrackXi, AliPID::kProton );
- fTreeCascVarPosNSigmaPion = fPIDResponse->NumberOfSigmasTPC( pTrackXi, AliPID::kPion );
- fTreeCascVarPosNSigmaProton = fPIDResponse->NumberOfSigmasTPC( pTrackXi, AliPID::kProton );
- fTreeCascVarBachNSigmaPion = fPIDResponse->NumberOfSigmasTPC( bachTrackXi, AliPID::kPion );
- fTreeCascVarBachNSigmaKaon = fPIDResponse->NumberOfSigmasTPC( bachTrackXi, AliPID::kKaon );
-
- //------------------------------------------------
- // TPC Number of clusters info
- // --- modified to save the smallest number
- // --- of TPC clusters for the 3 tracks
- //------------------------------------------------
-
- lPosTPCClusters = pTrackXi->GetTPCNcls();
- lNegTPCClusters = nTrackXi->GetTPCNcls();
- lBachTPCClusters = bachTrackXi->GetTPCNcls();
-
- fTreeCascVarNegClusters = lNegTPCClusters;
- fTreeCascVarPosClusters = lPosTPCClusters;
- fTreeCascVarBachClusters = lBachTPCClusters;
-
- fTreeCascVarkITSRefitBachelor = kTRUE;
- fTreeCascVarkITSRefitNegative = kTRUE;
- fTreeCascVarkITSRefitPositive = kTRUE;
-
- // 1 - Poor quality related to TPCrefit
- ULong_t pStatus = pTrackXi->GetStatus();
- ULong_t nStatus = nTrackXi->GetStatus();
- ULong_t bachStatus = bachTrackXi->GetStatus();
- if ((pStatus&AliESDtrack::kTPCrefit) == 0) { /*AliWarning("Pb / V0 Pos. track has no TPCrefit ... continue!"); */continue; }
- if ((nStatus&AliESDtrack::kTPCrefit) == 0) { /*AliWarning("Pb / V0 Neg. track has no TPCrefit ... continue!"); */continue; }
- if ((bachStatus&AliESDtrack::kTPCrefit) == 0) { /*AliWarning("Pb / Bach. track has no TPCrefit ... continue!"); */continue; }
-
- //Extra Debug Information: booleans for ITS refit
- if ((pStatus&AliESDtrack::kITSrefit) == 0) { fTreeCascVarkITSRefitPositive = kFALSE; }
- if ((nStatus&AliESDtrack::kITSrefit) == 0) { fTreeCascVarkITSRefitNegative = kFALSE; }
- if ((bachStatus&AliESDtrack::kITSrefit) == 0) { fTreeCascVarkITSRefitBachelor = kFALSE; }
-
- // 2 - Poor quality related to TPC clusters: lowest cut of 70 clusters
- if(lPosTPCClusters < 70) { /*AliWarning("Pb / V0 Pos. track has less than 70 TPC clusters ... continue!"); */continue; }
- if(lNegTPCClusters < 70) { /*AliWarning("Pb / V0 Neg. track has less than 70 TPC clusters ... continue!"); */continue; }
- if(lBachTPCClusters < 70) { /*AliWarning("Pb / Bach. track has less than 70 TPC clusters ... continue!"); */continue; }
- Int_t leastnumberofclusters = 1000;
- if( lPosTPCClusters < leastnumberofclusters ) leastnumberofclusters = lPosTPCClusters;
- if( lNegTPCClusters < leastnumberofclusters ) leastnumberofclusters = lNegTPCClusters;
- if( lBachTPCClusters < leastnumberofclusters ) leastnumberofclusters = lBachTPCClusters;
-
- lInvMassLambdaAsCascDghter = xi->GetEffMass();
- // This value shouldn't change, whatever the working hyp. is : Xi-, Xi+, Omega-, Omega+
- lDcaV0DaughtersXi = xi->GetDcaV0Daughters();
- //lV0Chi2Xi = xi->GetChi2V0();
-
- lV0CosineOfPointingAngleXi = xi->GetV0CosineOfPointingAngle( lBestPrimaryVtxPos[0],
- lBestPrimaryVtxPos[1],
- lBestPrimaryVtxPos[2] );
- //Modification to check cosPA of v0 wrt to cascade vertex
- lV0CosineOfPointingAngleXiSpecial = xi->GetV0CosineOfPointingAngle( lPosXi[0],
- lPosXi[1],
- lPosXi[2] );
-
- lDcaV0ToPrimVertexXi = xi->GetD( lBestPrimaryVtxPos[0],
- lBestPrimaryVtxPos[1],
- lBestPrimaryVtxPos[2] );
-
- lDcaBachToPrimVertexXi = TMath::Abs( bachTrackXi->GetD( lBestPrimaryVtxPos[0],
- lBestPrimaryVtxPos[1],
- lMagneticField ) );
- // Note : AliExternalTrackParam::GetD returns an algebraic value ...
-
- xi->GetXYZ( lPosV0Xi[0], lPosV0Xi[1], lPosV0Xi[2] );
- lV0RadiusXi = TMath::Sqrt( lPosV0Xi[0]*lPosV0Xi[0] + lPosV0Xi[1]*lPosV0Xi[1] );
-
- lDcaPosToPrimVertexXi = TMath::Abs( pTrackXi ->GetD( lBestPrimaryVtxPos[0],
- lBestPrimaryVtxPos[1],
- lMagneticField ) );
-
- lDcaNegToPrimVertexXi = TMath::Abs( nTrackXi ->GetD( lBestPrimaryVtxPos[0],
- lBestPrimaryVtxPos[1],
- lMagneticField ) );
-
- // - II.Step 4 : around effective masses (ESD)
- // ~ change mass hypotheses to cover all the possibilities : Xi-/+, Omega -/+
-
- if( bachTrackXi->Charge() < 0 ) {
- lV0quality = 0.;
- xi->ChangeMassHypothesis(lV0quality , 3312);
- // Calculate the effective mass of the Xi- candidate.
- // pdg code 3312 = Xi-
- lInvMassXiMinus = xi->GetEffMassXi();
-
- lV0quality = 0.;
- xi->ChangeMassHypothesis(lV0quality , 3334);
- // Calculate the effective mass of the Xi- candidate.
- // pdg code 3334 = Omega-
- lInvMassOmegaMinus = xi->GetEffMassXi();
-
- lV0quality = 0.;
- xi->ChangeMassHypothesis(lV0quality , 3312); // Back to default hyp.
- }// end if negative bachelor
-
-
- if( bachTrackXi->Charge() > 0 ){
- lV0quality = 0.;
- xi->ChangeMassHypothesis(lV0quality , -3312);
- // Calculate the effective mass of the Xi+ candidate.
- // pdg code -3312 = Xi+
- lInvMassXiPlus = xi->GetEffMassXi();
-
- lV0quality = 0.;
- xi->ChangeMassHypothesis(lV0quality , -3334);
- // Calculate the effective mass of the Xi+ candidate.
- // pdg code -3334 = Omega+
- lInvMassOmegaPlus = xi->GetEffMassXi();
-
- lV0quality = 0.;
- xi->ChangeMassHypothesis(lV0quality , -3312); // Back to "default" hyp.
- }// end if positive bachelor
- // - II.Step 6 : extra info for QA (ESD)
- // miscellaneous pieces of info that may help regarding data quality assessment.
- //-------------
-
- xi->GetPxPyPz( lXiMomX, lXiMomY, lXiMomZ );
- lXiTransvMom = TMath::Sqrt( lXiMomX*lXiMomX + lXiMomY*lXiMomY );
- lXiTotMom = TMath::Sqrt( lXiMomX*lXiMomX + lXiMomY*lXiMomY + lXiMomZ*lXiMomZ );
-
- xi->GetBPxPyPz( lBachMomX, lBachMomY, lBachMomZ );
- //lBachTransvMom = TMath::Sqrt( lBachMomX*lBachMomX + lBachMomY*lBachMomY );
- //lBachTotMom = TMath::Sqrt( lBachMomX*lBachMomX + lBachMomY*lBachMomY + lBachMomZ*lBachMomZ );
-
- lChargeXi = xi->Charge();
-
- //lV0toXiCosineOfPointingAngle = xi->GetV0CosineOfPointingAngle( lPosXi[0], lPosXi[1], lPosXi[2] );
-
- lRapXi = xi->RapXi();
- lRapOmega = xi->RapOmega();
- //lEta = xi->Eta();
- //lTheta = xi->Theta() *180.0/TMath::Pi();
- //lPhi = xi->Phi() *180.0/TMath::Pi();
- //lAlphaXi = xi->AlphaXi();
- //lPtArmXi = xi->PtArmXi();
-
-//------------------------------------------------
-// Associate Cascade Candidates to Monte Carlo!
-//------------------------------------------------
-
-//Warning: Not using Continues... Need to fill tree later!
-
- Int_t lPDGCodeCascade = 0;
-
- Int_t lPID_BachMother = 0;
- Int_t lPID_NegMother = 0;
- Int_t lPID_PosMother = 0;
- fTreeCascVarIsPhysicalPrimary = 0; // 0: not defined, any candidate may have this
-
- fTreeCascVarPIDPositive = 0;
- fTreeCascVarPIDNegative = 0;
- fTreeCascVarPIDBachelor = 0;
-
-
- if(fDebug > 5)
- cout << "MC EventNumber : " << lMCevent->Header()->GetEvent()
- << " / MC event Number in Run : " << lMCevent->Header()->GetEventNrInRun() << endl;
-
- // - Step 4.1 : level of the V0 daughters
-
-//----------------------------------------
-// Regular MC ASSOCIATION STARTS HERE
-//----------------------------------------
-
- Int_t lblPosV0Dghter = (Int_t) TMath::Abs( pTrackXi->GetLabel() );
- // Abs value = needed ! question of quality track association ...
- Int_t lblNegV0Dghter = (Int_t) TMath::Abs( nTrackXi->GetLabel() );
- Int_t lblBach = (Int_t) TMath::Abs( bachTrackXi->GetLabel() );
-
- TParticle* mcPosV0Dghter = lMCstack->Particle( lblPosV0Dghter );
- TParticle* mcNegV0Dghter = lMCstack->Particle( lblNegV0Dghter );
- TParticle* mcBach = lMCstack->Particle( lblBach );
-
- fTreeCascVarPosTransMomMC = mcPosV0Dghter->Pt();
- fTreeCascVarNegTransMomMC = mcNegV0Dghter->Pt();
-
- fTreeCascVarPIDPositive = mcPosV0Dghter -> GetPdgCode();
- fTreeCascVarPIDNegative = mcNegV0Dghter -> GetPdgCode();
- fTreeCascVarPIDBachelor = mcBach->GetPdgCode();
-
- // - Step 4.2 : level of the Xi daughters
-
- Int_t lblMotherPosV0Dghter = mcPosV0Dghter->GetFirstMother() ;
- Int_t lblMotherNegV0Dghter = mcNegV0Dghter->GetFirstMother();
-
- //Rather uncivilized: Open brackets for each 'continue'
- if(! (lblMotherPosV0Dghter != lblMotherNegV0Dghter) ) { // same mother
- if(! (lblMotherPosV0Dghter < 0) ) { // mother != primary (!= -1)
- if(! (lblMotherNegV0Dghter < 0) ) {
-
- // mothers = Lambda candidate ... a priori
-
- TParticle* mcMotherPosV0Dghter = lMCstack->Particle( lblMotherPosV0Dghter );
- TParticle* mcMotherNegV0Dghter = lMCstack->Particle( lblMotherNegV0Dghter );
-
- // - Step 4.3 : level of Xi candidate
-
- Int_t lblGdMotherPosV0Dghter = mcMotherPosV0Dghter->GetFirstMother() ;
- Int_t lblGdMotherNegV0Dghter = mcMotherNegV0Dghter->GetFirstMother() ;
-
- if(! (lblGdMotherPosV0Dghter != lblGdMotherNegV0Dghter) ) {
- if(! (lblGdMotherPosV0Dghter < 0) ) { // primary lambda ...
- if(! (lblGdMotherNegV0Dghter < 0) ) { // primary lambda ...
-
- // Gd mothers = Xi candidate ... a priori
-
- TParticle* mcGdMotherPosV0Dghter = lMCstack->Particle( lblGdMotherPosV0Dghter );
- TParticle* mcGdMotherNegV0Dghter = lMCstack->Particle( lblGdMotherNegV0Dghter );
-
- Int_t lblMotherBach = (Int_t) TMath::Abs( mcBach->GetFirstMother() );
-
- // if( lblMotherBach != lblGdMotherPosV0Dghter ) continue; //same mother for bach and V0 daughters
- if(!(lblMotherBach != lblGdMotherPosV0Dghter)) { //same mother for bach and V0 daughters
-
- TParticle* mcMotherBach = lMCstack->Particle( lblMotherBach );
-
- lPID_BachMother = mcMotherBach->GetPdgCode();
- lPID_NegMother = mcGdMotherPosV0Dghter->GetPdgCode();
- lPID_PosMother = mcGdMotherNegV0Dghter->GetPdgCode();
-
- if(lPID_BachMother==lPID_NegMother && lPID_BachMother==lPID_PosMother){
- lPDGCodeCascade = lPID_BachMother;
- lXiTransvMomMC = mcMotherBach->Pt();
- if( lMCstack->IsPhysicalPrimary (lblMotherBach) ) fTreeCascVarIsPhysicalPrimary = 1; //Is Primary!
- if( lMCstack->IsSecondaryFromWeakDecay(lblMotherBach) ) fTreeCascVarIsPhysicalPrimary = 2; //Weak Decay!
- if( lMCstack->IsSecondaryFromMaterial (lblMotherBach) ) fTreeCascVarIsPhysicalPrimary = 3; //From Material!
- if ( (mcMotherBach->Energy() + mcMotherBach->Pz()) / (mcMotherBach->Energy() - mcMotherBach->Pz() +1.e-13) !=0 ){
- lRapMC = 0.5*TMath::Log( (mcMotherBach->Energy() + mcMotherBach->Pz()) / (mcMotherBach->Energy() - mcMotherBach->Pz() +1.e-13) );
- }
- }
-
- }}}}}}} //Ends all conditionals above...
-
-//----------------------------------------
-// Regular MC ASSOCIATION ENDS HERE
-//----------------------------------------
-
-//----------------------------------------
-// Swapped MC Association Starts Here
-//----------------------------------------
-
- fTreeCascVarPIDSwapped = 0; //Nothing
- if ( fkCheckSwapping ) { //on/off switch if not needed or otherwise broken
-
- Int_t lPID_BachMotherSwapped = 0;
- Int_t lPID_NegMotherSwapped = 0;
- Int_t lPID_PosMotherSwapped = 0;
-
- Int_t lblPosV0DghterSwapped = (Int_t) TMath::Abs( pTrackXi->GetLabel() );
- // Abs value = needed ! question of quality track association ...
- Int_t lblNegV0DghterSwapped = (Int_t) TMath::Abs( nTrackXi->GetLabel() );
- Int_t lblBachSwapped = (Int_t) TMath::Abs( bachTrackXi->GetLabel() );
-
- //This is SWAPPED association: swap like-sign particles
- TParticle* mcPosV0DghterSwapped = 0x0;
- TParticle* mcNegV0DghterSwapped = 0x0;
- TParticle* mcBachSwapped = 0x0;
-
- //Swapping Case 1: XiMinus/OmegaMinus swapped: exchange negative V0 daughter with bachelor
- if( lChargeXi == -1 ){
- mcPosV0DghterSwapped = lMCstack->Particle( lblPosV0DghterSwapped );
- mcNegV0DghterSwapped = lMCstack->Particle( lblBachSwapped );
- mcBachSwapped = lMCstack->Particle( lblNegV0DghterSwapped );
- }
- //Swapping Case 2: XiPlus/OmegaPlus swapped: exchange positive V0 daughter with bachelor
- if( lChargeXi == 1 ){
- mcPosV0DghterSwapped = lMCstack->Particle( lblBachSwapped );
- mcNegV0DghterSwapped = lMCstack->Particle( lblNegV0DghterSwapped );
- mcBachSwapped = lMCstack->Particle( lblPosV0DghterSwapped );
- }
-
- //fTreeCascVarPosTransMomMC = mcPosV0Dghter->Pt();
- //fTreeCascVarNegTransMomMC = mcNegV0Dghter->Pt();
-
- //fTreeCascVarPIDPositive = mcPosV0Dghter -> GetPdgCode();
- //fTreeCascVarPIDNegative = mcNegV0Dghter -> GetPdgCode();
- //fTreeCascVarPIDBachelor = mcBach->GetPdgCode();
-
- // - Step 4.2 : level of the Xi daughters
-
- Int_t lblMotherPosV0DghterSwapped = mcPosV0DghterSwapped->GetFirstMother() ;
- Int_t lblMotherNegV0DghterSwapped = mcNegV0DghterSwapped->GetFirstMother();
-
- //Rather uncivilized: Open brackets for each 'continue'
- if(! (lblMotherPosV0DghterSwapped != lblMotherNegV0DghterSwapped) ) { // same mother
- if(! (lblMotherPosV0DghterSwapped < 0) ) { // mother != primary (!= -1)
- if(! (lblMotherNegV0DghterSwapped < 0) ) {
-
- // mothers = Lambda candidate ... a priori
-
- TParticle* mcMotherPosV0DghterSwapped = lMCstack->Particle( lblMotherPosV0DghterSwapped );
- TParticle* mcMotherNegV0DghterSwapped = lMCstack->Particle( lblMotherNegV0DghterSwapped );
-
- // - Step 4.3 : level of Xi candidate
-
- Int_t lblGdMotherPosV0DghterSwapped = mcMotherPosV0DghterSwapped->GetFirstMother() ;
- Int_t lblGdMotherNegV0DghterSwapped = mcMotherNegV0DghterSwapped->GetFirstMother() ;
-
- if(! (lblGdMotherPosV0DghterSwapped != lblGdMotherNegV0DghterSwapped) ) {
- if(! (lblGdMotherPosV0DghterSwapped < 0) ) { // primary lambda ...
- if(! (lblGdMotherNegV0DghterSwapped < 0) ) { // primary lambda ...
-
- // Gd mothers = Xi candidate ... a priori
-
- TParticle* mcGdMotherPosV0DghterSwapped = lMCstack->Particle( lblGdMotherPosV0DghterSwapped );
- TParticle* mcGdMotherNegV0DghterSwapped = lMCstack->Particle( lblGdMotherNegV0DghterSwapped );
-
- Int_t lblMotherBachSwapped = (Int_t) TMath::Abs( mcBachSwapped->GetFirstMother() );
-
- // if( lblMotherBach != lblGdMotherPosV0Dghter ) continue; //same mother for bach and V0 daughters
- if(!(lblMotherBachSwapped != lblGdMotherPosV0DghterSwapped)) { //same mother for bach and V0 daughters
-
- TParticle* mcMotherBachSwapped = lMCstack->Particle( lblMotherBachSwapped );
-
- lPID_BachMotherSwapped = mcMotherBachSwapped->GetPdgCode();
- lPID_NegMotherSwapped = mcGdMotherPosV0DghterSwapped->GetPdgCode();
- lPID_PosMotherSwapped = mcGdMotherNegV0DghterSwapped->GetPdgCode();
-
- if(lPID_BachMotherSwapped==lPID_NegMotherSwapped && lPID_BachMotherSwapped==lPID_PosMotherSwapped){
- fTreeCascVarPIDSwapped = lPID_BachMotherSwapped; //there!
- }
-
- }}}}}}} //Ends all conditionals above...
-
- }
-//----------------------------------------
-// Swapped MC ASSOCIATION ENDS HERE
-//----------------------------------------
-
- //------------------------------------------------
- // Jai Salzwedel's femto-cut: better V0 exists
- //------------------------------------------------
-
- fTreeCascVarBadCascadeJai = kFALSE;
- fTreeCascVarDeltaDCA = -100;
- Float_t DCAV0DaughtersDiff = -100;
- for (Int_t iv0=0; iv0<lESDevent->GetNumberOfV0s(); iv0++) {
- AliESDv0 *v0 = lESDevent->GetV0(iv0);
- UInt_t posV0TrackIdx = (UInt_t) v0->GetPindex();
- UInt_t negV0TrackIdx = (UInt_t) v0->GetNindex();
- if ((posV0TrackIdx == lIdxPosXi) && (negV0TrackIdx == lIdxNegXi)) continue;
- // if both tracks are the same ones as the cascades V0 daughter tracks, then the V0 belongs to the cascade being analysed; so avoid it
- if ((posV0TrackIdx == lIdxPosXi) || (negV0TrackIdx == lIdxNegXi)) {
- DCAV0DaughtersDiff = lDcaV0DaughtersXi - v0->GetDcaV0Daughters();
- if( fTreeCascVarDeltaDCA < DCAV0DaughtersDiff ) fTreeCascVarDeltaDCA = DCAV0DaughtersDiff;
- if ( lDcaV0DaughtersXi > v0->GetDcaV0Daughters() ) { // DCA comparison criterion
- fTreeCascVarBadCascadeJai = kTRUE;
- } //end DCA comparison
- } // end shares a daughter check
- } //end V0 loop
-
- //------------------------------------------------
- // Set Variables for adding to tree
- //------------------------------------------------
-
-/* 1*/ fTreeCascVarCharge = lChargeXi;
-/* 2*/ if(lInvMassXiMinus!=0) fTreeCascVarMassAsXi = lInvMassXiMinus;
-/* 2*/ if(lInvMassXiPlus!=0) fTreeCascVarMassAsXi = lInvMassXiPlus;
-/* 3*/ if(lInvMassOmegaMinus!=0) fTreeCascVarMassAsOmega = lInvMassOmegaMinus;
-/* 3*/ if(lInvMassOmegaPlus!=0) fTreeCascVarMassAsOmega = lInvMassOmegaPlus;
-/* 4*/ fTreeCascVarPt = lXiTransvMom;
-/* 4*/ fTreeCascVarPtMC = lXiTransvMomMC;
-/* 5*/ fTreeCascVarRapXi = lRapXi ;
-/* 5*/ fTreeCascVarRapMC = lRapMC ;
-/* 6*/ fTreeCascVarRapOmega = lRapOmega ;
-/* 7*/ fTreeCascVarDCACascDaughters = lDcaXiDaughters;
-/* 8*/ fTreeCascVarDCABachToPrimVtx = lDcaBachToPrimVertexXi;
-/* 9*/ fTreeCascVarDCAV0Daughters = lDcaV0DaughtersXi;
-/*10*/ fTreeCascVarDCAV0ToPrimVtx = lDcaV0ToPrimVertexXi;
-/*11*/ fTreeCascVarDCAPosToPrimVtx = lDcaPosToPrimVertexXi;
-/*12*/ fTreeCascVarDCANegToPrimVtx = lDcaNegToPrimVertexXi;
-/*13*/ fTreeCascVarCascCosPointingAngle = lXiCosineOfPointingAngle;
-/*14*/ fTreeCascVarCascRadius = lXiRadius;
-/*15*/ fTreeCascVarV0Mass = lInvMassLambdaAsCascDghter;
-/*16*/ fTreeCascVarV0CosPointingAngle = lV0CosineOfPointingAngleXi;
-/*16*/ fTreeCascVarV0CosPointingAngleSpecial = lV0CosineOfPointingAngleXiSpecial;
-/*17*/ fTreeCascVarV0Radius = lV0RadiusXi;
-/*20*/ fTreeCascVarLeastNbrClusters = leastnumberofclusters;
-/*21*/ fTreeCascVarMultiplicity = lMultiplicity; //multiplicity, whatever that may be
-
-/*23*/ fTreeCascVarDistOverTotMom = TMath::Sqrt(
- TMath::Power( lPosXi[0] - lBestPrimaryVtxPos[0] , 2) +
- TMath::Power( lPosXi[1] - lBestPrimaryVtxPos[1] , 2) +
- TMath::Power( lPosXi[2] - lBestPrimaryVtxPos[2] , 2)
- );
-/*23*/ fTreeCascVarDistOverTotMom /= (lXiTotMom+1e-13);
-/*24*/ //Not specified here, it has been set already (TRunNumber)
-/*25*/ fTreeCascVarPID = lPDGCodeCascade;
-
-//------------------------------------------------
-// Fill Tree!
-//------------------------------------------------
-
-// The conditional is meant to decrease excessive
-// memory usage! Be careful when loosening the
-// cut!
-
- //Xi Mass window: 150MeV wide
- //Omega mass window: 150MeV wide
-
- if( (fTreeCascVarMassAsXi<1.32+0.075&&fTreeCascVarMassAsXi>1.32-0.075) ||
- (fTreeCascVarMassAsOmega<1.68+0.075&&fTreeCascVarMassAsOmega>1.68-0.075) ){
-
- if( !fkIsNuclear ) fTreeCascade->Fill();
- if( fkIsNuclear ){
- //Extra selections in case this is a nuclear collision...
- if (TMath::Abs(fTreeCascVarNegEta) < 0.8 &&
- TMath::Abs(fTreeCascVarPosEta) < 0.8 &&
- TMath::Abs(fTreeCascVarBachEta) < 0.8 &&
- fTreeCascVarPt > fLowPtCutoff){ //beware ptMC and ptreco differences
- fTreeCascade->Fill();
- }
- }
- }
-
-//------------------------------------------------
-// Fill tree over.
-//------------------------------------------------
-
- }// end of the Cascade loop (ESD or AOD)
-
- // Post output data.
- PostData(1, fListHist);
- PostData(2, fTreeCascade);
-}
-
-//________________________________________________________________________
-void AliAnalysisTaskExtractPerformanceCascade::Terminate(Option_t *)
-{
- // Draw result to the screen
- // Called once at the end of the query
-
- TList *cRetrievedList = 0x0;
- cRetrievedList = (TList*)GetOutputData(1);
- if(!cRetrievedList){
- Printf("ERROR - AliAnalysisTaskExtractCascade : ouput data container list not available\n");
- return;
- }
-
- fHistV0MultiplicityForTrigEvt = dynamic_cast<TH1F*> ( cRetrievedList->FindObject("fHistV0MultiplicityForTrigEvt") );
- if (!fHistV0MultiplicityForTrigEvt) {
- Printf("ERROR - AliAnalysisTaskExtractCascade : fHistV0MultiplicityForTrigEvt not available");
- return;
- }
-
- TCanvas *canCheck = new TCanvas("AliAnalysisTaskExtractCascade","V0 Multiplicity",10,10,510,510);
- canCheck->cd(1)->SetLogy();
-
- fHistV0MultiplicityForTrigEvt->SetMarkerStyle(22);
- fHistV0MultiplicityForTrigEvt->DrawCopy("E");
-}
-
-//----------------------------------------------------------------------------
-
-Double_t AliAnalysisTaskExtractPerformanceCascade::MyRapidity(Double_t rE, Double_t rPz) const
-{
- // Local calculation for rapidity
- Double_t ReturnValue = -100;
- if( (rE-rPz+1.e-13) != 0 && (rE+rPz) != 0 ){
- ReturnValue = 0.5*TMath::Log((rE+rPz)/(rE-rPz+1.e-13));
- }
- return ReturnValue;
-}