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 */
5 /// @file AliHLTEveCalo.h
6 /// @author Svein Lindal
7 /// @brief Base class for the HLT eve calorimeter display elements
10 #ifndef ALIHLTEVECALO_H
11 #define ALIHLTEVECALO_H
13 #include "AliHLTEveBase.h"
16 class AliHLTCaloClusterReader;
18 class AliESDCaloCluster;
20 class TEveElementList;
22 class AliHLTHOMERBlockDesc;
26 class AliHLTEveCalo : public AliHLTEveBase {
31 AliHLTEveCalo(Int_t nm, TString name);
36 void ProcessBlock(AliHLTHOMERBlockDesc * block);
38 /** inherited from AliHLTEveBase */
39 void UpdateElements();
41 /** inherited from AliHLTEveBase */
45 void ProcessEvent(AliESDEvent * event);
50 /* Process ESD event block */
51 void ProcessEsdBlock(AliHLTHOMERBlockDesc * block);
54 /** Create the elementlist */
55 virtual void CreateElementList() = 0;
57 /** Add clusters boxset to eve display */
58 virtual void AddClusters(Float_t * pos, Int_t module, Float_t energy) = 0;
60 /** Add digits boxset to eve display */
61 virtual void AddDigits(UShort_t fX, UShort_t fZ, Int_t module, Float_t energy) = 0;
64 virtual void ProcessESDCluster(AliESDCaloCluster * cluster) = 0;
67 /** Process clusters block */
68 void ProcessClusters(AliHLTHOMERBlockDesc * block);
70 /** Process digits block */
71 void ProcessDigits(AliHLTHOMERBlockDesc * block);
73 /** Process histogram block */
74 void ProcessHistogram(AliHLTHOMERBlockDesc * block );
77 /** Process and draw histograms */
78 void AddHistogramsToCanvas(AliHLTHOMERBlockDesc * block, TCanvas * canvas, Int_t &cdCount );
81 Int_t GetPadNumber(TString name);
83 virtual Int_t GetClusters (AliESDEvent * event, TRefArray * clusters) = 0;
85 TEveBoxSet * fBoxSetDigits; //Boxset for clusters and digist
86 TEveBoxSet * fBoxSetClusters; //Boxset for clusters and digist
88 const Int_t fNModules; //Number of modules in calorimeter
91 TRefArray * fClustersArray;
96 /** default constructor prohibited */
98 /** copy constructor prohibited */
99 AliHLTEveCalo(const AliHLTEveCalo&);
100 /** assignment operator prohibited */
101 AliHLTEveCalo& operator = (const AliHLTEveCalo &);
103 void DrawInvMassHistogram(TH1F * histo);
105 TString fName; //PHOS or EMCAL
106 TString * fPadTitles;
107 TCanvas * fInvMassCanvas;
108 AliHLTCaloClusterReader * fClusterReader;
111 ClassDef(AliHLTEveCalo, 0);