]> git.uio.no Git - u/mrichter/AliRoot.git/blob - JETAN/AliJetFinder.h
Updates needed for full jet reconstruction (charged + emcal) [Magali Estienne]
[u/mrichter/AliRoot.git] / JETAN / AliJetFinder.h
1 #ifndef ALIJETFINDER_H
2 #define ALIJETFINDER_H
3  
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6  
7 //---------------------------------------------------------------------
8 // Jet finder base class
9 // manages the search for jets 
10 // Authors: jgcn@mda.cinvestav.mx
11 //          andreas.morsch@cern.ch
12 //          magali.estienne@subatech.in2p3.fr
13 //---------------------------------------------------------------------
14
15 #include <TObject.h>
16 #include "AliAODJet.h"
17 #include "AliJetReader.h"
18
19 class TFile;
20 class TChain;
21 class AliJet;
22 class AliJetHeader;
23 class AliJetControlPlots;
24 class AliLeading;
25 class AliAODJet;
26 class AliAODEvent;
27
28 class AliJetFinder : public TObject 
29 {
30  public:
31   AliJetFinder();
32   virtual ~AliJetFinder();
33
34   // getters
35   virtual AliJetReader *GetReader() {return fReader;}
36   virtual AliJetHeader *GetHeader() {return fHeader;}
37   virtual AliJet       *GetJets() {return fJets;}
38   virtual Bool_t        GetPlotMode() const {return fPlotMode;}
39   virtual TFile        *GetOutputFile() {return fOut;}
40   // setters
41   virtual void          SetPlotMode(Bool_t b);
42   virtual void          SetOutputFile(const char *name="jets.root");
43   virtual void          SetJetReader(AliJetReader* r) {fReader=r;}
44   virtual void          SetJetHeader(AliJetHeader* h) {fHeader=h;}
45   // others
46   virtual void          AddJet(AliAODJet jet);
47   virtual void          PrintJets();
48   virtual void          Run();
49   virtual void          WriteRHeaderToFile();  
50   // the following have to be implemented for each specific finder
51   virtual void          Init() {}
52   virtual void          InitTask(TChain* /*tree*/) {}
53   virtual void          Reset() {fNAODjets = 0;}
54   virtual void          FindJets() {}
55   virtual void          FindJetsC(){}
56   virtual void          WriteJHeaderToFile() { }
57   // some methods to allow steering from the outside
58   virtual Bool_t        ProcessEvent();
59   virtual Bool_t        ProcessEvent2();
60   virtual void          FinishRun();
61   virtual void          ConnectTree(TTree* tree, TObject* data);
62   virtual void          ConnectAOD(AliAODEvent* aod);
63   virtual void          ConnectAODNonStd(AliAODEvent* aod,const char* bname);
64   virtual TTree         *MakeTreeJ(char* name);
65   virtual void          WriteHeaders();
66   virtual void          WriteJetsToFile() {;}
67   virtual void          TestJet() {;}
68
69  protected:
70   AliJetFinder(const AliJetFinder& rJetFinder);
71   AliJetFinder& operator = (const AliJetFinder& rhsf);
72   TTree* fTreeJ;                 //! pointer to jet tree
73   Bool_t fPlotMode;              //! do you want control plots?
74   AliJet* fJets;                 //! pointer to jet class
75   AliJet* fGenJets;              //! pointer to generated jets
76   AliLeading*   fLeading;        //! pointer to leading particle data 
77   AliJetReader* fReader;         //  pointer to reader
78   AliJetHeader* fHeader;         //  pointer to header
79   TClonesArray* fAODjets;        //! reconstructed jets
80   Int_t         fNAODjets;       //! number of reconstructed jets
81   AliJetControlPlots* fPlots;    //! pointer to control plots
82   TFile* fOut;                   //! output file
83
84   ClassDef(AliJetFinder,2)
85 };
86
87 #endif