]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/EVE/AliHLTEveCalo.h
- adding class for merging histograms from different components
[u/mrichter/AliRoot.git] / HLT / EVE / AliHLTEveCalo.h
1 /* This file is property of and copyright by the ALICE HLT Project        *
2  * ALICE Experiment at CERN, All rights reserved.                         *
3  * See cxx source for full Copyright notice                               */
4
5 /// @file   AliHLTEveCalo.h
6 /// @author Svein Lindal
7 /// @brief  Base class for the HLT eve calorimeter display elements
8
9
10 #ifndef ALIHLTEVECALO_H
11 #define ALIHLTEVECALO_H
12
13 #include "AliHLTEveBase.h"
14 #include "TString.h"
15
16 class AliESDEvent;
17 class AliESDCaloCluster;
18 class TRefArray;
19 class TEveElementList;
20 class TEveBoxSet;
21 class AliHLTHOMERBlockDesc;
22 class TH1F;
23
24
25 class AliHLTEveCalo : public AliHLTEveBase {
26
27 public:
28   
29   /** Constructor  **/
30   AliHLTEveCalo(Int_t nm, TString name);
31
32   /** Destructor **/
33  ~AliHLTEveCalo();
34   
35   void ProcessBlock(AliHLTHOMERBlockDesc * block);
36
37   /** inherited from AliHLTEveBase */
38   void UpdateElements();
39   
40   /** inherited from AliHLTEveBase */
41   void ResetElements();
42
43   /// Process esd event
44   void ProcessEvent(AliESDEvent * event);
45
46
47 protected :
48
49   /* Process ESD event block */
50   void ProcessEsdBlock(AliHLTHOMERBlockDesc * block);
51   
52
53   /** Create the elementlist */
54   virtual void CreateElementList() = 0;
55   
56   /** Add clusters boxset to eve display */
57   virtual void AddClusters(Float_t * pos, Int_t module, Float_t energy) = 0;
58
59   /** Add digits boxset to eve display */
60   virtual void AddDigits(UShort_t fX, UShort_t fZ, Int_t module, Float_t energy) = 0;
61
62   
63   virtual void ProcessESDCluster(AliESDCaloCluster * cluster)  = 0;
64
65
66   /** Process clusters block */
67   void ProcessClusters(AliHLTHOMERBlockDesc * block);
68   
69   /** Process digits block */
70   void ProcessDigits(AliHLTHOMERBlockDesc * block);
71
72   /** Process histogram block */
73   void ProcessHistogram(AliHLTHOMERBlockDesc * block );
74
75   
76   /** Process and draw histograms */
77   void AddHistogramsToCanvas(AliHLTHOMERBlockDesc * block, TCanvas * canvas, Int_t &cdCount );  
78   
79
80   Int_t GetPadNumber(TString name);  
81
82   virtual Int_t GetClusters (AliESDEvent * event, TRefArray * clusters) = 0;
83
84   TEveBoxSet * fBoxSetDigits;            //Boxset for clusters and digist
85   TEveBoxSet * fBoxSetClusters;            //Boxset for clusters and digist
86
87   const Int_t fNModules;          //Number of modules in calorimeter
88
89
90   TRefArray * fClustersArray;
91
92
93 private:
94   
95   /** default constructor prohibited */
96   AliHLTEveCalo();
97   /** copy constructor prohibited */
98   AliHLTEveCalo(const AliHLTEveCalo&);
99   /** assignment operator prohibited */
100   AliHLTEveCalo& operator = (const AliHLTEveCalo &);
101
102   void DrawInvMassHistogram(TH1F * histo);
103
104   TString fName;  //PHOS or EMCAL
105  
106   TString * fPadTitles;
107
108
109   TCanvas * fInvMassCanvas;
110
111
112   ClassDef(AliHLTEveCalo, 0);
113 };
114
115 #endif