Possibility to keep only D mesons that have a c or b quark as a grandmother (Francesc...
[u/mrichter/AliRoot.git] / PWG3 / hfe / AliAnalysisTaskCheckV0tenderII.h
1 #ifndef ALIANALYSISTASKCHECKV0TENDERII_H
2 #define ALIANALYSISTASKCHECKV0TENDERII_H
3
4 /**************************************************************************
5 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
6 *                                                                        *
7 * Author: The ALICE Off-line Project.                                    *
8 * Contributors are mentioned in the code where appropriate.              *
9 *                                                                        *
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 **************************************************************************/
18
19 /* $Id$ */ 
20
21 //
22 // Task for perfomance studies of V0 selection code
23 // More information can be found in the source file
24 //
25 #ifndef ALIANALYSISTASKSE_H
26 #include "AliAnalysisTaskSE.h"
27 #endif
28
29 class TH1F;
30 class TList;
31 class AliHFEcollection;
32 class AliESDv0KineCuts;
33 class AliKFVertex;
34
35 class AliAnalysisTaskCheckV0tenderII : public AliAnalysisTaskSE{
36  public:
37    enum{ // Reconstructed V0
38       kRecoGamma = 0,
39       kRecoK0 = 1,
40       kRecoLambda = 2,
41       kRecoALambda = 3
42       
43       };
44   enum{ // Identified Daughter particles
45     kRecoElectron = 0,
46       kRecoPionK0 = 1,
47       kRecoPionL = 2,
48       kRecoProton = 3
49       };
50
51   AliAnalysisTaskCheckV0tenderII();
52   AliAnalysisTaskCheckV0tenderII(const Char_t *name);
53   ~AliAnalysisTaskCheckV0tenderII();
54   
55   virtual void UserCreateOutputObjects();
56   virtual void UserExec(Option_t *);
57   virtual void Terminate(Option_t *);
58  
59   
60   void ProcessV0s();
61   void ProcessDaughters(AliESDv0 * const v0);
62   void ProcessV0sMC(AliESDv0 * const v0);
63   void ProcessDaughtersMC(AliESDv0 * const v0);
64   void ProcessBackground(AliESDv0 * const v0);
65
66  private:
67   AliAnalysisTaskCheckV0tenderII(const AliAnalysisTaskCheckV0tenderII &ref);
68   AliAnalysisTaskCheckV0tenderII &operator=(const AliAnalysisTaskCheckV0tenderII &ref);
69
70   Float_t MassV0(AliESDv0 * const v0, Int_t id);
71   Bool_t  CheckSigns(AliESDv0 * const v0);
72
73   Int_t   PDGtoPIDv0(Int_t pdgV0) const;
74   Int_t   PDGtoPID(Int_t pdg) const;  
75   
76   void    ResetPDGcodes();
77   
78   TList              *fOutput;        //! Container for output histos
79   AliHFEcollection   *fColl;          //! collection of Data output
80   AliHFEcollection   *fCollMC;        //! collection of MC output
81   AliESDv0KineCuts   *fV0cuts;        //! standalone V0 selection class
82   AliKFVertex        *fPrimaryVertex; //! primary vertex of the current event
83
84   Int_t               fpdgV0;  // PDG code of the reconstructed V0
85   Int_t               fpdgP;   // PDG code of the positive daughter (sign corrected)
86   Int_t               fpdgN;   // PDG code of the negative daughter (sign coreccted)
87   
88   TH1 *fEvents;              //! Number of Events
89
90   ClassDef(AliAnalysisTaskCheckV0tenderII, 1)
91
92 };
93
94
95 #endif