1 #ifndef ALIANALYSISTASKEXTRACTV0AOD_H
2 #define ALIANALYSISTASKEXTRACTV0AOD_H
4 /**************************************************************************
5 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
7 * Author: The ALICE Off-line Project. *
8 * Contributors are mentioned in the code where appropriate. *
10 * Permission to use, copy, modify and distribute this software and its *
11 * documentation strictly for non-commercial purposes is hereby granted *
12 * without fee, provided that the above copyright notice appears in all *
13 * copies and that both the copyright notice and this permission notice *
14 * appear in the supporting documentation. The authors make no claims *
15 * about the suitability of this software for any purpose. It is *
16 * provided "as is" without express or implied warranty. *
17 **************************************************************************/
19 //-----------------------------------------------------------------
20 // AliAnalysisTaskExtractV0AOD class
21 // ---------------------------------
23 // Please see cxx file for more details.
25 //-----------------------------------------------------------------
27 // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
29 // --- This version: 23rd March 2012
31 // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
41 class AliESDtrackCuts;
44 class AliPhysicsSelection;
47 //#include "TString.h"
48 //#include "AliESDtrackCuts.h"
49 #include "AliAnalysisTaskSE.h"
51 class AliAnalysisTaskExtractV0AOD : public AliAnalysisTaskSE {
53 AliAnalysisTaskExtractV0AOD();
54 AliAnalysisTaskExtractV0AOD(const char *name);
55 virtual ~AliAnalysisTaskExtractV0AOD();
57 virtual void UserCreateOutputObjects();
58 virtual void UserExec(Option_t *option);
59 virtual void Terminate(Option_t *);
60 void CheckChargeV0(AliESDv0 *thisv0);
62 void SetIsNuclear (Bool_t lIsNuclear = kTRUE ) { fkIsNuclear = lIsNuclear; }
63 void SetIsLowEnergyPP (Bool_t lLowEnergyPP = kTRUE ) { fkLowEnergyPP = lLowEnergyPP; }
64 void SetUseOnTheFly (Bool_t lUseOnTheFly = kTRUE ) { fkUseOnTheFly = lUseOnTheFly; }
65 void SetTriggerMask (TString lTriggerMask = "kMB" ) { fTriggerMask = lTriggerMask; }
68 // Note : In ROOT, "//!" means "do not stream the data from Master node to Worker node" ...
69 // your data member object is created on the worker nodes and streaming is not needed.
70 // http://root.cern.ch/download/doc/11InputOutput.pdf, page 14
71 TList *fListHistV0; //! List of output objects
72 TTree *fTree; //! Output Tree
74 AliPIDResponse *fPIDResponse; // PID response object
76 //Objects Controlling Task Behaviour
78 Bool_t fkIsNuclear; // if true, replace multiplicity est. by centrality (default FALSE)
79 Bool_t fkLowEnergyPP; // if true, skip FASTOnly (default FALSE)
80 Bool_t fkUseOnTheFly; // if true, will use On-the-fly V0s instead of Offline V0s (default FALSE)
82 TString fTriggerMask; // Selected trigger mask (kMB, kINT7, kINT8, kAnyINT)
85 Float_t fTreeVariableChi2V0; //!
86 Float_t fTreeVariableDcaV0Daughters; //!
87 Float_t fTreeVariableDcaV0ToPrimVertex; //!
88 Float_t fTreeVariableDcaPosToPrimVertex; //!
89 Float_t fTreeVariableDcaNegToPrimVertex; //!
90 Float_t fTreeVariableV0CosineOfPointingAngle; //!
91 Float_t fTreeVariableV0Radius; //!
92 Float_t fTreeVariablePt; //!
93 Float_t fTreeVariableRapK0Short; //!
94 Float_t fTreeVariableRapLambda; //!
95 Float_t fTreeVariableInvMassK0s; //!
96 Float_t fTreeVariableInvMassLambda; //!
97 Float_t fTreeVariableInvMassAntiLambda; //!
98 Float_t fTreeVariableAlphaV0; //!
99 Float_t fTreeVariablePtArmV0;//!
100 Float_t fTreeVariableNegTotMomentum; //!
101 Float_t fTreeVariablePosTotMomentum; //!
102 Float_t fTreeVariableNegdEdxSig; //!
103 Float_t fTreeVariablePosdEdxSig; //!
104 Float_t fTreeVariableNegEta; //!
105 Float_t fTreeVariablePosEta; //!
107 Float_t fTreeVariableNSigmasPosProton; //!
108 Float_t fTreeVariableNSigmasPosPion; //!
109 Float_t fTreeVariableNSigmasNegProton; //!
110 Float_t fTreeVariableNSigmasNegPion; //!
112 Float_t fTreeVariableDistOverTotMom;//!
113 Int_t fTreeVariableLeastNbrCrossedRows;//!
114 Float_t fTreeVariableLeastRatioCrossedRowsOverFindable;//!
115 Int_t fTreeVariableMultiplicity ;//!
117 Int_t fTreeVariableRunNumber; //!
118 ULong64_t fTreeVariableEventNumber; //!
121 //Note: TDistOverTotMom needs a mass hypothesis to be converted to proper decaylength.
123 TH1F *fHistV0MultiplicityBeforeTrigSel; //! V0 multiplicity distribution
124 TH1F *fHistV0MultiplicityForTrigEvt; //! V0 multiplicity distribution
125 TH1F *fHistV0MultiplicityForSelEvt; //! V0 multiplicity distribution
126 TH1F *fHistV0MultiplicityForSelEvtNoTPCOnly; //! V0 multiplicity distribution
127 TH1F *fHistV0MultiplicityForSelEvtNoTPCOnlyNoPileup;//! V0 multiplicity distribution
129 TH1F *fHistMultiplicityBeforeTrigSel; //! multiplicity distribution
130 TH1F *fHistMultiplicityForTrigEvt; //! multiplicity distribution
131 TH1F *fHistMultiplicity; //! multiplicity distribution
132 TH1F *fHistMultiplicityNoTPCOnly; //! multiplicity distribution
133 TH1F *fHistMultiplicityNoTPCOnlyNoPileup; //! multiplicity distribution
135 TH1F *fHistPVx; //! multiplicity distribution
136 TH1F *fHistPVy; //! multiplicity distribution
137 TH1F *fHistPVz; //! multiplicity distribution
138 TH1F *fHistPVxAnalysis; //! multiplicity distribution
139 TH1F *fHistPVyAnalysis; //! multiplicity distribution
140 TH1F *fHistPVzAnalysis; //! multiplicity distribution
141 TH1F *fHistSwappedV0Counter; //! Swapped V0 Counter
143 AliAnalysisTaskExtractV0AOD(const AliAnalysisTaskExtractV0AOD&); // not implemented
144 AliAnalysisTaskExtractV0AOD& operator=(const AliAnalysisTaskExtractV0AOD&); // not implemented
146 ClassDef(AliAnalysisTaskExtractV0AOD, 11);