a1822c847ce64d2e95f7b506f4e3ff551b9f21db
[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 //---------------------------------------------------------------------
13
14 #include <TObject.h>
15
16 class TFile;
17 class TTree;
18 class AliJet;
19 class AliJetReader;
20 class AliJetHeader;
21 class AliJetControlPlots;
22 class AliLeading;
23
24 class AliJetFinder : public TObject 
25 {
26  public:
27   AliJetFinder();
28   virtual ~AliJetFinder();
29
30   // getters
31   virtual AliJet *GetJets() {return fJets;}
32   virtual Bool_t GetPlotMode() const {return fPlotMode;}
33   virtual TFile* GetOutputFile() {return fOut;}
34   // setters
35   virtual void SetPlotMode(Bool_t b);
36   virtual void SetOutputFile(const char *name="jets.root");
37   virtual void SetJetReader(AliJetReader* r) {fReader=r;}
38   virtual void SetJetHeader(AliJetHeader* h) {fHeader=h;}
39   // others
40   virtual void   PrintJets();
41   virtual void   Run();
42   virtual void   WriteRHeaderToFile();  
43   // the following have to be implemented for each specific finder
44   virtual void Init() {}
45   virtual void Reset() {}
46   virtual void FindJets() {}
47   virtual void FindJetsTPC(){}
48   virtual void WriteJHeaderToFile() { }
49   // some methods to allow steering from the outside
50   virtual Bool_t ProcessEvent(Long64_t entry);
51   virtual void   FinishRun();
52   virtual void   ConnectTree(TTree* tree);
53   virtual TTree* MakeTreeJ(char* name);
54   virtual void   WriteHeaders();
55   virtual void   WriteJetsToFile() {;}
56   virtual void   TestJet() {;}
57  protected:
58   AliJetFinder(const AliJetFinder& rJetFinder);
59   AliJetFinder& operator = (const AliJetFinder& rhsf);
60   TTree* fTreeJ;                 //! pointer to jet tree
61   Bool_t fPlotMode;              //! do you want control plots?
62   AliJet* fJets;                 //! pointer to jet class
63   AliJet* fGenJets;              //! pointer to generated jets
64   AliLeading*   fLeading;        //! pointer to leading particle data 
65   AliJetReader* fReader;         //  pointer to reader
66   AliJetHeader* fHeader;         //  pointer to header
67   AliJetControlPlots* fPlots;    //! pointer to control plots
68   TFile* fOut;                   //! output file
69   ClassDef(AliJetFinder,2)
70 };
71
72 #endif