Cleaned up some CC violations
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALJetMicroDst.h
1 #ifndef ALIEMCALJETMICRODST_H
2 #define ALIEMCALJETMICRODST_H
3 /* Copyright(c) 1998-2002, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice     */
5
6 /* $Id$ */
7
8 //_________________________________________________________________________
9 //                  
10 //*-- Author: Aleksei Pavlinov (WSU)
11 #include <TNamed.h>
12 class TFile;
13 class TTree;
14 class TH1;
15 class TH1F;
16 class TH2F;
17 class TH2;
18
19 class AliGenHijingEventHeader;
20 class AliRun;
21 class AliEMCALJetFinder;
22 class TVector3;
23 class TBrowser;
24
25 class AliEMCALJetMicroDst: public TNamed {
26
27
28   public:
29   AliEMCALJetMicroDst(char *name="jetMicroDst",
30   char *tit="jet Micro Dst for preparation of proposal");
31   virtual ~AliEMCALJetMicroDst();
32   Bool_t  Create(TFile *file);
33   Bool_t  Create(const char  *fname);
34   void    Fill(AliRun *run=0, AliEMCALJetFinder* jetFinder=0, Int_t modeFilling=0);
35   void    FillPartons(AliGenHijingEventHeader *header);
36   void    FillPartons();
37   void    FillJets(AliEMCALJetFinder* jetFinder);
38   void    FillEtForEMCAL(AliEMCALJetFinder* jetFinder);
39   void    FillEtForGrid(AliEMCALJetFinder* jetFinder);
40   void    FillArrays(TH2* hid, Int_t &n, Int_t *id, Float_t *et);
41   void    FillChargeParticles(AliEMCALJetFinder* jetFinder);  
42   
43   void    FillJetsControl(); // 18-jan-2003
44
45   Bool_t  Open(const Int_t mode=1) {return Open(DefineName(mode));}  // *MENU* 
46   Bool_t  Open(const char  *fname);                                  // *MENU* 
47   const Char_t* DefineName(const Int_t mode=1);                      // *MENU*
48   Bool_t  Initialize(TFile *file);
49   void    Print(Option_t* option="") const;                          // *MENU* 
50   Int_t   GetEntry(Int_t entry);
51   void    Test();
52   Int_t   GetNpart() {return fnpart;}
53   Bool_t  GetParton(Int_t i, Float_t& pt, Float_t& eta, Float_t& phi);
54   Bool_t  GetParton(Int_t i, TVector3& vec);
55   Int_t   GetNjet() {return fnjet;} 
56   Bool_t  GetJet(Int_t i,Int_t mode, Float_t& pt,Float_t& eta,Float_t& phi);
57   Bool_t  GetJet(Int_t i,Int_t mode, TVector3& vec);
58   static  void FillVector(Float_t pt, Float_t eta, Float_t phi, TVector3& vec);
59   void    GetEtaPhi(Int_t id, Double_t &eta, Double_t &phi);
60   TVector3& GetCellVector(Int_t i);
61   TVector3& GetGridVector(Int_t i);
62   // 13-apr-2003
63   Double_t GetSumInCone(TVector3 &jet, Int_t nc, Float_t *et,Float_t *eta,Float_t *phi, Double_t cellEtCut, Double_t rJet);
64   Double_t GetEmcalEtInCone(TVector3 &jet, Double_t cellEtCut=0.0, Double_t rJet=0.5);
65   Double_t GetTpcPtInCone(TVector3 &jet, Double_t cellEtCut=0.0, Double_t rJet=0.5);
66   Double_t GetSum(Int_t n, Float_t *ar, Double_t cut=0.0);
67   Double_t GetSumEmcal(Double_t cut=0.0) {return GetSum(fncell, fetcell, cut);}
68   Double_t GetSumTpc(Double_t cut=0.0) {return GetSum(fnchp, fppt, cut);}
69
70   void    SetDebug(Int_t flag) {fDebug = flag;}
71   Float_t GetDebug() const  {return fDebug;}
72
73   TTree* GetTree() {return fTree;}
74   TFile* GetFile() {return fFile;}
75   void   Close();
76
77   Bool_t  IsPythiaDst();
78   virtual Bool_t  IsFolder() const;
79   virtual void Browse(TBrowser* b);
80
81   static TList *MoveHistsToList(char* name="List of Hist", Bool_t putToBrowser=kTRUE);
82   private:
83   
84   Float_t fpphi[20000]; //[nchp]
85   Int_t   fDebug;       // debug flag
86   TFile*  fFile;        // filename
87   TTree*  fTree;        // Tree pointer
88   TString fName;        // name
89   TList*  fListHist;    //!
90   TString fFileName;    // for convenience
91
92   Float_t fdecone;   //! for EMCAL
93   Float_t fptcone;   //! for ch.particles 
94   // For partons after hard scattering
95   Int_t   fnpart;       //npartons
96   Float_t fxpt[4];  //[npart]
97   Float_t fxeta[4]; //[npart]
98   Float_t fxphi[4]; //[npart]
99   // Jet 
100   Int_t   fnjet;        // number of jets
101   Float_t fjet[10];   //[njet]
102   Float_t fjetal[10]; //[njet]
103   Float_t fjphil[10]; //[njet]
104   Float_t fjetaw[10]; //[njet]
105   Float_t fjphiw[10]; //[njet]
106   // Charge particle in jet ??
107   // eT in EMCAL itself - 24-jan-2003
108   Int_t   fncell;         // 96*144 =13824 
109   Int_t   fidcell[13824]; //[ncell]
110   Float_t fetcell[13824]; //[ncell] : de = det*sf
111   // eT in EMCAL grid for jet finder 
112   Int_t   fngrid;         // 96*144 =13824 
113   Int_t   fidgrid[13824]; //[ngrid]
114   Float_t fetgrid[13824]; //[ngrid]
115   // charge particle which hit to EMCAL - 28-jan-2003
116   Int_t   fnchp;        //number of charged particles
117   Int_t   fpid[20000];  //[nchp]
118   Float_t fppt[20000];  //[nchp]
119   Float_t fpeta[20000]; //[nchp]
120   TH1F*  hPtPart; //hist
121   TH1F*  hNJet; //hist
122   TH1F*  hPtJet;        //hist
123   TH2F*  hEtaPhiPart;   //hist
124   TH2F*  hEtaPhiJet;    //hist
125   TH1F*  hNcell;        //hist
126   TH1F*   hCellId;      //hist
127   TH1F*   hCellEt;      //hist
128         
129   TH1F*   hSumEt;       //hist
130   TH1F*  hNgrid;        //hist
131   TH1F*   hGridId;      //hist
132   TH1F*  hGridEt;       //hist
133   TH1F* hSumEtGrForJF;  //hist
134
135
136   ClassDef(AliEMCALJetMicroDst,2) // Micro Dst for jet analysis
137 };
138
139 #endif // AliEMCALJETMICRODST_H
140 /*
141 What to do
142 1. Common info about event
143  */