Line data Source code
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 0 : 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 0 : 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 12 : ClassDef(AliMUONTrackerDataHistogrammer,2) // Make histograms from VTrackerData
64 : };
65 :
66 : #endif
|