]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/AliAnaGamma.h
Made ready for the analysis train
[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.2  2007/08/17 12:40:04  schutz
11  * New analysis classes by Gustavo Conesa
12  *
13  * Revision 1.1.2.1  2007/07/26 10:32:09  schutz
14  * new analysis classes in the the new analysis framework
15  *
16  *
17  */
18
19 //_________________________________________________________________________
20 // Base class for prompt gamma and correlation analysis
21 //*-- Author: Gustavo Conesa (INFN-LNF)
22
23 // --- ROOT system ---
24 #include <TParticle.h> 
25 #include <TList.h> 
26 #include <TClonesArray.h> 
27 #include <TH2F.h>
28 #include<TObject.h>
29 #include <TTree.h>
30
31 // --- AliRoot system ---
32 #include <AliLog.h>
33 #include "AliAODCaloCluster.h"
34
35 class AliGammaReader ;
36 class AliAnaGammaDirect ;
37 class AliAnaGammaCorrelation ;
38 class AliAnaGammaJetLeadCone ;
39 class AliNeutralMesonSelection ;
40 class AliAODEvent;
41
42 // --- AliRoot
43 class AliAnaGamma : public TObject {
44
45 public: 
46   
47   AliAnaGamma() ; // default ctor
48   AliAnaGamma(const AliAnaGamma & g) ; // cpy ctor
49   AliAnaGamma & operator = (const AliAnaGamma & g) ;//cpy assignment
50   virtual ~AliAnaGamma() ; //virtual dtor
51
52   enum anatype_t {kPrompt, kCorrelation};
53
54   //Setter and getters
55   TList * GetOutputContainer()      const {return fOutputContainer ; }
56
57   Int_t GetAnalysisType(){  return fAnaType ; }
58   void SetAnalysisType(Int_t ana ){  fAnaType = ana ; }
59
60   TString GetCalorimeter() {return fCalorimeter ; }
61   void SetCalorimeter(TString calo) {if (calo == "PHOS" || calo == "EMCAL") fCalorimeter = calo ;
62     else AliFatal("Wrong calorimeter name") ; }
63
64   TObject * GetData() {return fData ; }
65   TObject * GetKine() {return fKine ;}
66   void SetData(TObject * data) {fData = data ; }
67   void SetKine(TObject * kine) {fKine = kine ; }
68
69   AliGammaReader * GetReader() {return fReader ; }
70   void SetReader(AliGammaReader * reader) { fReader = reader ; }
71
72   void SetGammaDirect(AliAnaGammaDirect * dg) { fGammaDirect = dg ; }
73   void SetGammaCorrelation(AliAnaGammaCorrelation * gc) { fGammaCorrelation = gc ;}
74   void SetNeutralMesonSelection(AliNeutralMesonSelection * nms) { fNeutralMesonSelection = nms ; }
75
76   //AOD stuff  
77   void   AddCluster(AliAODCaloCluster p);
78   void   ConnectAOD(AliAODEvent* aod);
79   void   FillAODs(TClonesArray * plPHOS, TClonesArray * plEMCAL);
80
81   //Others
82   void Init();
83   void InitParameters();
84
85   void MakeAnalysis(TClonesArray * plCalo, TClonesArray * plNe, TClonesArray * plCTS, TClonesArray *plParton, TClonesArray * plPrimCalo)  ;  
86
87   void Print(const Option_t * opt) const;
88
89   Bool_t ProcessEvent(Long64_t entry) ;
90
91  private:
92   
93   //General Data members
94   TList  *fOutputContainer ; //! output data container
95   Int_t      fAnaType; //Analysis type to be done
96   TString fCalorimeter; //Prompt photon detector
97   TObject * fData ; //! ESD
98   TObject * fKine ; //! Stack
99   AliGammaReader *      fReader ; //! Pointer to reader 
100   AliAnaGammaDirect *   fGammaDirect ; //! Pointer to prompt gamma algorithm 
101   AliAnaGammaCorrelation *   fGammaCorrelation ; //! Pointer to gamma correlation algorithm
102   AliNeutralMesonSelection *  fNeutralMesonSelection ; //! Pointer to pair selection for pi0 identification.
103   TClonesArray* fAODclusters;        //! reconstructed jets
104   Int_t         fNAODclusters;       //! number of reconstructed jets
105
106   ClassDef(AliAnaGamma,1)
107 } ;
108  
109
110 #endif //ALIANAGAMMA_H
111
112
113