o add Reset function to CalPad and CalROC o Add functionality to AliTPCdataQA - Reset...
[u/mrichter/AliRoot.git] / MUON / AliMUONTrackerDataHistogrammer.h
1 #ifndef ALIMUONTRACKERDATAHISTOGRAMMER_H
2 #define ALIMUONTRACKERDATAHISTOGRAMMER_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice                               */
6
7 // $Id$
8
9 /// \ingroup graphics
10 /// \class AliMUONTrackerDataHistogrammer
11 /// \brief Make histograms from VTrackerData and VPainter objects.
12 /// 
13 // author Laurent Aphecetche, Subatech
14
15 #ifndef ROOT_TObject
16 #  include "TObject.h"
17 #endif
18
19 class AliMUONVPainter;
20 class AliMUONVTrackerData;
21 class AliMUONSparseHisto;
22 class TH1;
23
24 class AliMUONTrackerDataHistogrammer : public TObject
25 {
26 public:
27   AliMUONTrackerDataHistogrammer(const AliMUONVTrackerData& data, 
28                                  Int_t externalDim,
29                                  Int_t internalDim=-1);
30   virtual ~AliMUONTrackerDataHistogrammer();
31   
32   static TH1* CreateHisto(const AliMUONVPainter& painter, 
33                           Int_t externalDim,
34                           Int_t internalDim);
35
36   TH1* CreateChannelHisto(Int_t detElemId, Int_t manuId, 
37                           Int_t manuChannel) const;
38     
39   /// Whether we are working with internal dimensions or external ones.
40   Bool_t IsInternalMode() const { return fInternalDim >=0; }
41   
42 private:
43
44   TH1* CreateManuHisto(Int_t detElemId, Int_t manuId, Int_t nbins, Double_t xmin, Double_t xmax) const;
45   
46   TH1* CreateHisto(const char* basename, Int_t nbins, Double_t xmin, Double_t xmax) const;
47   
48   void GetDataRange(const TObjArray& manuList, Double_t& xmin, Double_t& xmax) const;
49   
50   void Add(TH1& h, const AliMUONSparseHisto& sh) const;
51   
52   void AddBusPatchHisto(TH1& h, Int_t busPatchId) const;
53   
54   void AddDEHisto(TH1& h, Int_t detElemId) const;
55   
56   void AddManuHisto(TH1& h, Int_t detElemId, Int_t manuId) const;
57   
58 private:
59   const AliMUONVTrackerData& fkData; ///< data we'll histogram 
60   Int_t fExternalDim; ///< (external) dimension we'll histogram
61   Int_t fInternalDim; ///< (internal) dimension we'll make histogram for
62   
63   ClassDef(AliMUONTrackerDataHistogrammer,2) // Make histograms from VTrackerData
64 };
65
66 #endif