]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGHF/vertexingHF/AliAnalysisTaskSELc2V0bachelor.h
adding checks and debugging information
[u/mrichter/AliRoot.git] / PWGHF / vertexingHF / AliAnalysisTaskSELc2V0bachelor.h
1 #ifndef ALIANALYSISTASKSELC2V0BACHELOR_H
2 #define ALIANALYSISTASKSELC2V0BACHELOR_H
3 /**************************************************************************
4  * Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *
5  *                                                                        *
6  * Author: The ALICE Off-line Project.                                    *
7  * Contributors are mentioned in the code where appropriate.              *
8  *                                                                        *
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  **************************************************************************/
17
18 /* $Id$ */ 
19
20 #include <TH2F.h>
21 #include "TROOT.h"
22 #include "TSystem.h"
23
24 #include "AliAnalysisTaskSE.h"
25 #include "AliAODEvent.h"
26 #include "AliPID.h"
27 #include "AliAODTrack.h"
28 #include "AliPIDResponse.h"
29 #include "AliTPCPIDResponse.h"
30 #include "AliRDHFCutsLctoV0.h"
31 #include "AliNormalizationCounter.h"
32
33 class AliAnalysisTaskSELc2V0bachelor : public AliAnalysisTaskSE 
34 {
35   
36  public:
37   
38   AliAnalysisTaskSELc2V0bachelor();
39   AliAnalysisTaskSELc2V0bachelor(const Char_t* name, AliRDHFCutsLctoV0* cutsA, AliRDHFCutsLctoV0* cutsB,
40                                  Bool_t useOnTheFly=kFALSE);
41   virtual ~AliAnalysisTaskSELc2V0bachelor();
42
43   // Implementation of interface methods  
44   virtual void UserCreateOutputObjects();
45   virtual void Init();
46   virtual void LocalInit() {Init();}
47   virtual void UserExec(Option_t *option);
48   virtual void Terminate(Option_t *option);
49  
50   // histos
51   void FillLc2pK0Sspectrum(AliAODRecoCascadeHF *part, Int_t isLc,
52                            Int_t &nSelectedProd, AliRDHFCutsLctoV0 *cutsProd,
53                            Int_t &nSelectedAnal, AliRDHFCutsLctoV0 *cutsAnal);
54
55   void DefineHistograms();
56   Int_t CheckOrigin(TClonesArray* arrayMC, AliAODMCParticle *mcPartCandidate) const;
57
58   void MakeAnalysisForLc2prK0S(AliAODVertex * vtx1,
59                                TClonesArray *arrayLctopK0s,
60                                TClonesArray *mcArray,
61                                Int_t &nSelectedProd, AliRDHFCutsLctoV0 *cutsProd,
62                                Int_t &nSelectedAnal, AliRDHFCutsLctoV0 *cutsAnal);
63  
64   Int_t MatchToMC(AliAODRecoCascadeHF *lc2bacV0,
65                   Int_t *pdgDgLc2bacV0, Int_t *pdgDgV0,
66                   TClonesArray *mcArray);
67
68   void SearchLcDaughter(TClonesArray *arrayMC);
69
70   void DefineK0SHistos();
71
72   // set MC usage
73   void SetMC(Bool_t theMCon) {fUseMCInfo = theMCon;}
74   Bool_t GetMC() const {return fUseMCInfo;}
75
76   void FillArmPodDistribution(AliAODv0 *vZero, TString histoTitle, TList *histoList);
77
78   void SetK0sAnalysis(Bool_t a) {fIsK0sAnalysis=a;}
79   Bool_t GetK0sAnalysis() const {return fIsK0sAnalysis;}
80
81   void SetUseOnTheFlyV0(Bool_t a) { fUseOnTheFlyV0=a; }
82   Bool_t GetUseOnTheFlyV0() { return fUseOnTheFlyV0; }
83
84  private:
85   
86   AliAnalysisTaskSELc2V0bachelor(const AliAnalysisTaskSELc2V0bachelor &source);
87   AliAnalysisTaskSELc2V0bachelor& operator=(const AliAnalysisTaskSELc2V0bachelor& source); 
88   
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
93
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
104
105   ClassDef(AliAnalysisTaskSELc2V0bachelor,2); // class for Lc->p K0
106 };
107
108 #endif
109