Compilation on Windows/Cygwin
[u/mrichter/AliRoot.git] / PWG4 / AliAnaGamma.h
1 #ifndef ALIANAGAMMA_H
2 #define ALIANAGAMMA_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice     */
5 /* $Id$ */
6
7 /* History of cvs commits:
8  *
9  * $Log$
10  * Revision 1.4  2007/10/29 13:48:42  gustavo
11  * Corrected coding violations
12  *
13  * Revision 1.2  2007/08/17 12:40:04  schutz
14  * New analysis classes by Gustavo Conesa
15  *
16  * Revision 1.1.2.1  2007/07/26 10:32:09  schutz
17  * new analysis classes in the the new analysis framework
18  *
19  *
20  */
21
22 //_________________________________________________________________________
23 // Base class for gamma and correlation analysis
24 // It is called by the task class AliAnalysisGammaTask and it connects the input (ESD/AOD/MonteCarlo)
25 // got with AliGammaReader (produces TClonesArrays of TParticles), with the analysis classes 
26 // AliAnaGammaDirect, AliAnaGammaCorrelation ....
27 //
28 //*-- Author: Gustavo Conesa (INFN-LNF)
29
30 // --- ROOT system ---
31 #include <TParticle.h> 
32 #include <TList.h> 
33 #include <TClonesArray.h> 
34 #include <TH2F.h>
35 #include<TObject.h>
36 #include <TTree.h>
37
38 // --- AliRoot system ---
39 #include <AliLog.h>
40 #include "AliAODCaloCluster.h"
41
42 class AliGammaReader ;
43 class AliAnaGammaDirect ;
44 class AliAnaGammaCorrelation ;
45 class AliAnaGammaSelection ;
46 class AliNeutralMesonSelection ;
47 class AliAODEvent;
48
49 // --- AliRoot
50 class AliAnaGamma : public TObject {
51
52 public: 
53   
54   AliAnaGamma() ; // default ctor
55   AliAnaGamma(const AliAnaGamma & g) ; // cpy ctor
56   AliAnaGamma & operator = (const AliAnaGamma & g) ;//cpy assignment
57   virtual ~AliAnaGamma() ; //virtual dtor
58
59   enum Anatype {kPrompt, kCorrelation};
60
61   //Setter and getters
62   TList * GetOutputContainer()      const {return fOutputContainer ; }
63
64   Int_t GetAnalysisType() const {return fAnaType ; }
65   void SetAnalysisType(Int_t ana ){  fAnaType = ana ; }
66
67   TString GetCalorimeter() const {return fCalorimeter ; }
68   void SetCalorimeter(TString calo) {if (calo == "PHOS" || calo == "EMCAL") fCalorimeter = calo ;
69     else AliFatal("Wrong calorimeter name") ; }
70
71   TObject * GetData() const {return fData ; }
72   TObject * GetKine() const {return fKine ;}
73   void SetData(TObject * data) {fData = data ; }
74   void SetKine(TObject * kine) {fKine = kine ; }
75
76   AliGammaReader * GetReader() const {return fReader ; }
77   void SetReader(AliGammaReader * reader) { fReader = reader ; }
78
79   AliAnaGammaDirect * GetGammaDirect() const { return fGammaDirect ; }
80   AliAnaGammaCorrelation * GetGammaCorrelation() const { return fGammaCorrelation  ;}
81   AliAnaGammaSelection * GetGammaSelection() const { return fGammaSelection ;}
82   AliNeutralMesonSelection * GetNeutralMesonSelection() const { return fNeutralMesonSelection  ; }
83
84   void SetGammaDirect(AliAnaGammaDirect * dg) { fGammaDirect = dg ; }
85   void SetGammaCorrelation(AliAnaGammaCorrelation * gc) { fGammaCorrelation = gc ;}
86   void SetGammaSelection(AliAnaGammaSelection * gs) { fGammaSelection = gs ;}
87   void SetNeutralMesonSelection(AliNeutralMesonSelection * nms) { fNeutralMesonSelection = nms ; }
88
89   //AOD stuff  
90   void   AddCluster(AliAODCaloCluster p);
91   void   ConnectAOD(AliAODEvent* aod);
92   void   FillAODs(TClonesArray * plPHOS, TClonesArray * plEMCAL);
93
94   //Others
95   void Init();
96   void InitParameters();
97
98   void MakeAnalysis(TClonesArray * plCalo, TClonesArray * plNe, TClonesArray * plCTS, TClonesArray *plParton, TClonesArray * plPrimCalo)  ;  
99
100   void Print(const Option_t * opt) const;
101
102   Bool_t ProcessEvent() ;
103
104  private:
105   
106   //General Data members
107   TList  *fOutputContainer ; // output data container
108   Int_t      fAnaType; //Analysis type to be done
109   TString fCalorimeter; //Prompt photon detector
110   TObject * fData ; //! ESD
111   TObject * fKine ; //! Stack
112   AliGammaReader *      fReader ; // Pointer to reader 
113   AliAnaGammaDirect *   fGammaDirect ; // Pointer to prompt gamma algorithm 
114   AliAnaGammaCorrelation *   fGammaCorrelation ; // Pointer to gamma correlation algorithm
115   AliAnaGammaSelection *   fGammaSelection ; // Pointer to gamma selection algorithm
116   AliNeutralMesonSelection *  fNeutralMesonSelection ; // Pointer to pair selection for pi0 identification.
117   TClonesArray* fAODclusters;        //! reconstructed jets
118   Int_t         fNAODclusters;       //! number of reconstructed jets
119
120   ClassDef(AliAnaGamma,1)
121 } ;
122  
123
124 #endif //ALIANAGAMMA_H
125
126
127