#include "THnSparse.h"
#include "TList.h"
-#include "AliAnalysisTask.h"
+#include "AliPID.h"
+#include "AliAnalysisTaskSE.h"
#include "AliAnalysisManager.h"
#include "AliAnalysisDataContainer.h"
class AliAnalysisManager;
class AliAnalysisDataContainer;
class AliESDtrackCuts;
+class AliMCEventHandler;
+class AliStack;
class TChain;
-class AliAnalysisTaskV0QA : public AliAnalysisTask {
+class AliAnalysisTaskV0QA : public AliAnalysisTaskSE {
public:
// AliAnalysisTaskV0QA() : AliAnalysisTask(), fESD(0), fChain(0) {}
- AliAnalysisTaskV0QA(const char *name);
+ AliAnalysisTaskV0QA();
+ AliAnalysisTaskV0QA(const char *name);
+
virtual ~AliAnalysisTaskV0QA();
- virtual void ConnectInputData(Option_t *);
- virtual void CreateOutputObjects();
- virtual void Exec(Option_t *option);
+ virtual void UserCreateOutputObjects();
+ virtual void UserExec(Option_t *option);
virtual void Terminate(Option_t *);
void InspectListOfChargedParticles();
//////////////////////////////////
Int_t fnEv; // Number of event to analyse
+ Int_t fgDim; // Dimension of the THnSparse
Int_t fnConvGamGeant; // number of conversions in mc
- Int_t * fgConvGamGeantIndex; //index of conversions in mc
- Int_t * feNegConvGamGeantIndex; //index of e- from conversions in mc
- Int_t * fePosConvGamGeantIndex; //index of e+ from conversions in mc
- Float_t * feNegConvGamGeantLength; // length of the e- from conv
- Float_t * fePosConvGamGeantLength; // length of the e+ from conv
+ Int_t * fgConvGamGeantIndex; //[fgDim] index of conversions in mc
+ Int_t * feNegConvGamGeantIndex; //[fgDim] index of e- from conversions in mc
+ Int_t * fePosConvGamGeantIndex; //[fgDim] index of e+ from conversions in mc
+ Float_t * feNegConvGamGeantLength; //[fgDim] length of the e- from conv
+ Float_t * fePosConvGamGeantLength; //[fgDim] length of the e+ from conv
+
+ Int_t * feNegConvGamSingleRecIndex; //[fgDim] index of e- from conversions reconstructed single
+ Int_t * fePosConvGamSingleRecIndex; //[fgDim] index of e+ from conversions reconstructed single
+ Int_t * feNegConvGamV0RecIndex; //[fgDim] index of e- from conversions reconstructed in V0
+ Int_t * fePosConvGamV0RecIndex; //[fgDim] index of e- from conversions reconstructed in V0
+ Int_t * fConvGamV0RecIndexPos; //[fgDim] index of V0 from conversions reconstructed
+ Int_t * fConvGamV0RecIndexNeg; //[fgDim] index of V0 from conversions reconstructed
- Int_t * feNegConvGamSingleRecIndex; //index of e- from conversions reconstructed single
- Int_t * fePosConvGamSingleRecIndex; //index of e+ from conversions reconstructed single
- Int_t * feNegConvGamV0RecIndex; //index of e- from conversions reconstructed in V0
- Int_t * fePosConvGamV0RecIndex; //index of e- from conversions reconstructed in V0
- Int_t * fConvGamV0RecIndexPos; //index of V0 from conversions reconstructed
- Int_t * fConvGamV0RecIndexNeg; //index of V0 from conversions reconstructed
- Int_t fgDim; // Dimension of the THnSparse
// Lambda
Int_t fnDecayLGeant; // number of Lambda in mc
- Int_t * flDecayLGeantIndex; // index of Lambda in MC
- Int_t * fpiNegDecayLGeantIndex; // index of pi- from L in MC
- Int_t * fpPosDecayLGeantIndex; // index of proton from L in MC
- Float_t * fpiNegDecayLGeantLength; // length of the pi- from MC
- Float_t * fpPosDecayLGeantLength; // length of the proton from MC
+ Int_t * flDecayLGeantIndex; //[fgDim] index of Lambda in MC
+ Int_t * fpiNegDecayLGeantIndex; //[fgDim] index of pi- from L in MC
+ Int_t * fpPosDecayLGeantIndex; //[fgDim] index of proton from L in MC
+ Float_t * fpiNegDecayLGeantLength; //[fgDim] length of the pi- from MC
+ Float_t * fpPosDecayLGeantLength; //[fgDim] length of the proton from MC
- Int_t * fpiNegDecayLSingleRecIndex; // index of pi- from L reconstr. single
- Int_t * fpPosDecayLSingleRecIndex; // index of proton from L reconstr. single
- Int_t * fpiNegDecayLV0RecIndex; // index of pi- from L reconstr. V0
- Int_t * fpPosDecayLV0RecIndex; // index of proton from L reconstr. V0
- Int_t * fDecayLV0RecIndexPos; // index of pi- from L reconstr. V0
- Int_t * fDecayLV0RecIndexNeg; // index of proton from L reconstr.
+ Int_t * fpiNegDecayLSingleRecIndex; //[fgDim] index of pi- from L reconstr. single
+ Int_t * fpPosDecayLSingleRecIndex; //[fgDim] index of proton from L reconstr. single
+ Int_t * fpiNegDecayLV0RecIndex; //[fgDim] index of pi- from L reconstr. V0
+ Int_t * fpPosDecayLV0RecIndex; //[fgDim] index of proton from L reconstr. V0
+ Int_t * fDecayLV0RecIndexPos; //[fgDim] index of pi- from L reconstr. V0
+ Int_t * fDecayLV0RecIndexNeg; //[fgDim] index of proton from L reconstr.
// AntiLambda
Int_t fnDecayALGeant; // number of Lambdabar in mc
- Int_t * falDecayALGeantIndex; // index of Lambdabar in MC
- Int_t * fpiPosDecayALGeantIndex; // index of pi+ from AL in MC
- Int_t * fapNegDecayALGeantIndex; // index of antiproton from AL in MC
- Float_t * fpiPosDecayALGeantLength; // Length of pi+ in MC
- Float_t * fapNegDecayALGeantLength; // Length of antiproton in MC
+ Int_t * falDecayALGeantIndex; //[fgDim] index of Lambdabar in MC
+ Int_t * fpiPosDecayALGeantIndex; //[fgDim] index of pi+ from AL in MC
+ Int_t * fapNegDecayALGeantIndex; //[fgDim] index of antiproton from AL in MC
+ Float_t * fpiPosDecayALGeantLength; //[fgDim] Length of pi+ in MC
+ Float_t * fapNegDecayALGeantLength; //[fgDim] Length of antiproton in MC
- Int_t * fpiPosDecayALSingleRecIndex; // index of pi+ from AL reconstr. single
- Int_t * fapNegDecayALSingleRecIndex; // index of antiproton from AL reconstr. single
- Int_t * fpiPosDecayALV0RecIndex; // index of pi+ from AL reconstr. V0
- Int_t * fapNegDecayALV0RecIndex; // index of antiproton from AL reconstr. V0
- Int_t * fDecayALV0RecIndexPos; // index of pi+ V0
- Int_t * fDecayALV0RecIndexNeg; // index of antiproton V0
+ Int_t * fpiPosDecayALSingleRecIndex; //[fgDim] index of pi+ from AL reconstr. single
+ Int_t * fapNegDecayALSingleRecIndex; //[fgDim] index of antiproton from AL reconstr. single
+ Int_t * fpiPosDecayALV0RecIndex; //[fgDim] index of pi+ from AL reconstr. V0
+ Int_t * fapNegDecayALV0RecIndex; //[fgDim] index of antiproton from AL reconstr. V0
+ Int_t * fDecayALV0RecIndexPos; //[fgDim] index of pi+ V0
+ Int_t * fDecayALV0RecIndexNeg; //[fgDim] index of antiproton V0
// K0S
Int_t fnDecayK0Geant; // number of K0s in mc
- Int_t * fK0DecayK0GeantIndex; // index of K0S in MC
- Int_t * fpiNegDecayK0GeantIndex; // index of pi- from K0s in MC
- Int_t * fpiPosDecayK0GeantIndex; // index of pi+ from K0s in MC
- Float_t * fpiNegDecayK0GeantLength; // length of the pi- from K0s in MC
- Float_t * fpiPosDecayK0GeantLength; // length of the pi+ from K0s in MC
-
- Int_t * fpiNegDecayK0SingleRecIndex; // index of pi- from K0S reconstr. single
- Int_t * fpiPosDecayK0SingleRecIndex; // index of pi+ from K0S reconstr. single
- Int_t * fpiNegDecayK0V0RecIndex; // index of pi- from K0S reconstr. V0
- Int_t * fpiPosDecayK0V0RecIndex; // index of pi+ from K0S reconstr. V0
- Int_t * fDecayK0V0RecIndexPos; // index of pi+ V0
- Int_t * fDecayK0V0RecIndexNeg; // index of pi- V0
+ Int_t * fK0DecayK0GeantIndex; //[fgDim] index of K0S in MC
+ Int_t * fpiNegDecayK0GeantIndex; //[fgDim] index of pi- from K0s in MC
+ Int_t * fpiPosDecayK0GeantIndex; //[fgDim] index of pi+ from K0s in MC
+ Float_t * fpiNegDecayK0GeantLength; //[fgDim] length of the pi- from K0s in MC
+ Float_t * fpiPosDecayK0GeantLength; //[fgDim] length of the pi+ from K0s in MC
+
+ Int_t * fpiNegDecayK0SingleRecIndex; //[fgDim] index of pi- from K0S reconstr. single
+ Int_t * fpiPosDecayK0SingleRecIndex; //[fgDim] index of pi+ from K0S reconstr. single
+ Int_t * fpiNegDecayK0V0RecIndex; //[fgDim] index of pi- from K0S reconstr. V0
+ Int_t * fpiPosDecayK0V0RecIndex; //[fgDim] index of pi+ from K0S reconstr. V0
+ Int_t * fDecayK0V0RecIndexPos; //[fgDim] index of pi+ V0
+ Int_t * fDecayK0V0RecIndexNeg; //[fgDim] index of pi- V0
Int_t fpiPosK0Index; //
Int_t fpiNegK0Index; //
Double_t fprobabilityPos[AliPID::kSPECIES];
Double_t fprobabilityNeg[AliPID::kSPECIES];
- Double_t * fValueL; // values to THnSparse for L
- Double_t * fValueAL; // values to THnSparse for AL
- Double_t * fValueK0; // values to THnSparse for K0
- Double_t * fValueV0; // values to THnSparse for Gamma
-
- Double_t * fxminV0; // min value to THnSparse
- Double_t * fxmaxV0; // max value to THnSparse
- Int_t * fbinsV0; // number of bins to THnSparse
Int_t fDim; // number of dimensions THnSparse
+ Double_t * fValueL; //[fDim] values to THnSparse for L
+ Double_t * fValueAL; //[fDim] values to THnSparse for AL
+ Double_t * fValueK0; //[fDim] values to THnSparse for K0
+ Double_t * fValueV0; //[fDim] values to THnSparse for Gamma
+
+ Double_t * fxminV0; //[fDim] min value to THnSparse
+ Double_t * fxmaxV0; //[fDim] max value to THnSparse
+ Int_t * fbinsV0; //[fDim] number of bins to THnSparse
+