Connection to tree in Notify() seems to be safer.
[u/mrichter/AliRoot.git] / FMD / AliFMDAnaESD.h
1 // -*- mode: C++ -*-
2 #ifndef ALIFMDANAESD_H
3 #define ALIFMDANAESD_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights
5  * reserved. 
6  *
7  * Latest changes by Christian Holm Christensen <cholm@nbi.dk>
8  *
9  * See cxx source for full Copyright notice                               
10  */
11 //____________________________________________________________________
12 //
13 // Utility class for analysing ESD data. 
14 // This class does sharing and background correction 
15 //
16 #include <AliFMDInput.h>
17 class AliFMDAnaRing;
18 // #include "AliFMDAnaRing.h"
19 class TBrowser;
20
21 /** Base class for analysing FMD ESD data */
22 class AliFMDAnaESD : public AliFMDInput 
23 {
24 public:
25   /** Constructor 
26       @param lower cut. */
27   AliFMDAnaESD();
28   /** Destructor */
29   virtual ~AliFMDAnaESD() {}
30   /** Called at beginning of run 
31       @return @c false on error */
32   virtual Bool_t Init();
33   /** Begining of event
34       @param ev Event number
35       @return @c false on error */
36   virtual Bool_t Begin(Int_t ev);
37   /** Loop over all ESD data, and call ProcessESD for each entry.
38       @return  @c false on error  */
39   virtual Bool_t ProcessESDs();
40   /** Fill for analysis */
41   virtual void Fill(Float_t /*phi*/, Float_t /*eta*/, Float_t /*mult*/) {}
42   /** Called at the end of event
43       @return @c false in case of errors */
44   virtual Bool_t End();
45   /** Called at the end of run 
46       @return @c false in case of errors */
47   virtual Bool_t Finish();
48   /** Browse this object */
49   virtual void Browse(TBrowser* b);
50   /** This is a folder */ 
51   virtual Bool_t IsFolder() const { return kTRUE; }
52 protected:
53   AliFMDAnaESD(const AliFMDAnaESD& o) 
54     : AliFMDInput(o), 
55       fNEvents(o.fNEvents)
56   {
57     for (size_t i = 0; i < 4; i++) fRing[i] = o.fRing[i];
58   }
59   AliFMDAnaESD& operator=(const AliFMDAnaESD& o) 
60   {
61     for (size_t i = 0; i < 4; i++) fRing[i] = o.fRing[i];
62     fNEvents = o.fNEvents;
63     return *this;
64   }
65   /** Add a ring 
66       @param ring Ring object */
67   virtual void AddRing(AliFMDAnaRing* ring);
68   /** Find a ring index
69       @param det  Detector number 
70       @param ring Ring id
71       @return Index of ring object */
72   virtual Int_t FindRing(UShort_t det, Char_t ring) const;
73   /** Ring objects */ 
74   AliFMDAnaRing* fRing[5];
75   /** Number of events */
76   ULong_t fNEvents;
77   ClassDef(AliFMDAnaESD,0) // Base class for analysing FMD ESD
78 };
79
80 #endif
81 //
82 // EOF
83 //
84
85