1 #ifndef ALIANALYSISTASKSELC2V0BACHELOR_H
2 #define ALIANALYSISTASKSELC2V0BACHELOR_H
3 /**************************************************************************
4 * Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *
6 * Author: The ALICE Off-line Project. *
7 * Contributors are mentioned in the code where appropriate. *
9 * Permission to use, copy, modify and distribute this software and its *
10 * documentation strictly for non-commercial purposes is hereby granted *
11 * without fee, provided that the above copyright notice appears in all *
12 * copies and that both the copyright notice and this permission notice *
13 * appear in the supporting documentation. The authors make no claims *
14 * about the suitability of this software for any purpose. It is *
15 * provided "as is" without express or implied warranty. *
16 **************************************************************************/
24 #include "AliAnalysisTaskSE.h"
25 #include "AliAODEvent.h"
27 #include "AliAODTrack.h"
28 #include "AliPIDResponse.h"
29 #include "AliTPCPIDResponse.h"
30 #include "AliRDHFCutsLctoV0.h"
31 #include "AliNormalizationCounter.h"
33 class AliAnalysisTaskSELc2V0bachelor : public AliAnalysisTaskSE
38 AliAnalysisTaskSELc2V0bachelor();
39 AliAnalysisTaskSELc2V0bachelor(const Char_t* name, AliRDHFCutsLctoV0* cutsA, AliRDHFCutsLctoV0* cutsB,
40 Bool_t useOnTheFly=kFALSE);
41 virtual ~AliAnalysisTaskSELc2V0bachelor();
43 // Implementation of interface methods
44 virtual void UserCreateOutputObjects();
46 virtual void LocalInit() {Init();}
47 virtual void UserExec(Option_t *option);
48 virtual void Terminate(Option_t *option);
51 void FillLc2pK0Sspectrum(AliAODRecoCascadeHF *part, Int_t isLc,
52 Int_t &nSelectedProd, AliRDHFCutsLctoV0 *cutsProd,
53 Int_t &nSelectedAnal, AliRDHFCutsLctoV0 *cutsAnal);
55 void DefineHistograms();
56 Int_t CheckOrigin(TClonesArray* arrayMC, AliAODMCParticle *mcPartCandidate) const;
58 void MakeAnalysisForLc2prK0S(AliAODVertex * vtx1,
59 TClonesArray *arrayLctopK0s,
60 TClonesArray *mcArray,
61 Int_t &nSelectedProd, AliRDHFCutsLctoV0 *cutsProd,
62 Int_t &nSelectedAnal, AliRDHFCutsLctoV0 *cutsAnal);
64 Int_t MatchToMC(AliAODRecoCascadeHF *lc2bacV0,
65 Int_t *pdgDgLc2bacV0, Int_t *pdgDgV0,
66 TClonesArray *mcArray);
68 void SearchLcDaughter(TClonesArray *arrayMC);
70 void DefineK0SHistos();
73 void SetMC(Bool_t theMCon) {fUseMCInfo = theMCon;}
74 Bool_t GetMC() const {return fUseMCInfo;}
76 void FillArmPodDistribution(AliAODv0 *vZero, TString histoTitle, TList *histoList);
78 void SetK0sAnalysis(Bool_t a) {fIsK0sAnalysis=a;}
79 Bool_t GetK0sAnalysis() const {return fIsK0sAnalysis;}
81 void SetUseOnTheFlyV0(Bool_t a) { fUseOnTheFlyV0=a; }
82 Bool_t GetUseOnTheFlyV0() { return fUseOnTheFlyV0; }
86 AliAnalysisTaskSELc2V0bachelor(const AliAnalysisTaskSELc2V0bachelor &source);
87 AliAnalysisTaskSELc2V0bachelor& operator=(const AliAnalysisTaskSELc2V0bachelor& source);
89 Bool_t fUseMCInfo; // Use MC info
90 TList *fOutput; // User output1 // general histos
91 TList *fOutputAll; // User output2 // histos without pid and cut on V0
92 TList *fOutputPIDBach; // User output3 // histos with PId on Bachelor
94 // define the histograms
95 TH1I *fCEvents; // Histogram to check selected events
96 AliPIDResponse *fPIDResponse; //! PID response object
97 Bool_t fIsK0sAnalysis; // switch between Lpi and K0sp
98 AliNormalizationCounter *fCounter; // AliNormalizationCounter on output slot 4
99 AliRDHFCutsLctoV0 *fProdCuts; // Cuts - sent to output slot 5
100 AliRDHFCutsLctoV0 *fAnalCuts; // Cuts - sent to output slot 5
101 TList *fListCuts; // list of cuts
102 Bool_t fUseOnTheFlyV0; // flag to analyze also on-the-fly V0 candidates
103 Bool_t fIsEventSelected; // flag for event selected
105 ClassDef(AliAnalysisTaskSELc2V0bachelor,2); // class for Lc->p K0