adding new QA tasks from Marta
[u/mrichter/AliRoot.git] / PWG4 / JetTasks / AliPWG4HighPtSpectra.h
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line Project.                                    *
5  * Contributors are mentioned in the code where appropriate.              *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *
11  * appear in the supporting documentation. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          *
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15
16 //-----------------------------------------------------------------------
17 // Author : Marta Verweij - UU
18 //-----------------------------------------------------------------------
19
20 #ifndef ALIPWG4HIGHPTSPECTRA_H
21 #define ALIPWG4HIGHPTSPECTRA_H
22
23 #include "AliAnalysisTask.h"
24 #include "AliCFManager.h"
25
26 class TH1I;
27 class TH1D;
28 class TFile ;
29 class AliCFManager;
30 class AliESDtrackCuts;
31 class AliESDEvent;
32
33 class AliPWG4HighPtSpectra : public AliAnalysisTask {
34   public:
35
36   enum {
37     kStepReconstructed    = 0,
38     kStepReconstructedTPCOnly = 1,
39     kStepSecondaries      = 2,
40     kStepMCtrackable      = 3,
41     kStepReconstructedMC    = 4
42   };
43
44   AliPWG4HighPtSpectra();
45   AliPWG4HighPtSpectra(const Char_t* name);
46   AliPWG4HighPtSpectra& operator= (const AliPWG4HighPtSpectra& c);
47   AliPWG4HighPtSpectra(const AliPWG4HighPtSpectra& c);
48   virtual ~AliPWG4HighPtSpectra();
49
50   // ANALYSIS FRAMEWORK STUFF to loop on data and fill output objects
51   virtual void   ConnectInputData(Option_t *);
52   virtual void   CreateOutputObjects();
53   virtual void   Exec(Option_t *option);
54   virtual void   Terminate(Option_t *);
55
56   // CORRECTION FRAMEWORK RELATED FUNCTIONS
57   void     SetCFManager(const AliCFManager* io) {fCFManager = io;}   // global correction manager
58   const AliCFManager * GetCFManager() const {return fCFManager;}           // get corr manager
59
60   //AliESDtrackCuts setters
61   void SetCuts(AliESDtrackCuts* trackCuts) {fTrackCuts = trackCuts;}
62
63   // Data types
64   Bool_t IsReadAODData()   const {return fReadAODData;}
65   void   SetReadAODData   (Bool_t flag=kTRUE) {fReadAODData=flag;}
66
67  protected:
68   Bool_t          fReadAODData ;   // flag for AOD/ESD input files
69   const AliCFManager   *fCFManager    ;  // pointer to the CF manager
70
71   AliESDEvent *fESD;    //! ESD object
72   //AliESDtrackCuts options. Must be setted in AliCFPWG4Task.C. They correspond with different steps in container.
73   AliESDtrackCuts *fTrackCuts; // trackCuts applied
74
75  private:
76
77   // Histograms
78   //Number of events
79   TList *fHistList;            // List of output histograms
80   TH1I  *fHistEventsProcessed; // simple histo for monitoring the number of events processed
81   
82   ClassDef(AliPWG4HighPtSpectra,1);
83 };
84
85 #endif