ROOT logo
#ifndef ALIMUONTRACKERDATAHISTOGRAMMER_H
#define ALIMUONTRACKERDATAHISTOGRAMMER_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice                               */

// $Id$

/// \ingroup graphics
/// \class AliMUONTrackerDataHistogrammer
/// \brief Make histograms from VTrackerData and VPainter objects.
/// 
// author Laurent Aphecetche, Subatech

#ifndef ROOT_TObject
#  include "TObject.h"
#endif

class AliMUONVPainter;
class AliMUONVTrackerData;
class AliMUONSparseHisto;
class TH1;

class AliMUONTrackerDataHistogrammer : public TObject
{
public:
  AliMUONTrackerDataHistogrammer(const AliMUONVTrackerData& data, 
                                 Int_t externalDim,
                                 Int_t internalDim=-1);
  virtual ~AliMUONTrackerDataHistogrammer();
  
  static TH1* CreateHisto(const AliMUONVPainter& painter, 
                          Int_t externalDim,
                          Int_t internalDim);

  TH1* CreateChannelHisto(Int_t detElemId, Int_t manuId, 
                          Int_t manuChannel) const;
    
  /// Whether we are working with internal dimensions or external ones.
  Bool_t IsInternalMode() const { return fInternalDim >=0; }
  
private:

  TH1* CreateManuHisto(Int_t detElemId, Int_t manuId, Int_t nbins, Double_t xmin, Double_t xmax) const;
  
  TH1* CreateHisto(const char* basename, Int_t nbins, Double_t xmin, Double_t xmax) const;
  
  void GetDataRange(const TObjArray& manuList, Double_t& xmin, Double_t& xmax) const;
  
  void Add(TH1& h, const AliMUONSparseHisto& sh) const;
  
  void AddBusPatchHisto(TH1& h, Int_t busPatchId) const;
  
  void AddDEHisto(TH1& h, Int_t detElemId) const;
  
  void AddManuHisto(TH1& h, Int_t detElemId, Int_t manuId) const;
  
private:
  const AliMUONVTrackerData& fkData; ///< data we'll histogram 
  Int_t fExternalDim; ///< (external) dimension we'll histogram
  Int_t fInternalDim; ///< (internal) dimension we'll make histogram for
  
  ClassDef(AliMUONTrackerDataHistogrammer,2) // Make histograms from VTrackerData
};

#endif
 AliMUONTrackerDataHistogrammer.h:1
 AliMUONTrackerDataHistogrammer.h:2
 AliMUONTrackerDataHistogrammer.h:3
 AliMUONTrackerDataHistogrammer.h:4
 AliMUONTrackerDataHistogrammer.h:5
 AliMUONTrackerDataHistogrammer.h:6
 AliMUONTrackerDataHistogrammer.h:7
 AliMUONTrackerDataHistogrammer.h:8
 AliMUONTrackerDataHistogrammer.h:9
 AliMUONTrackerDataHistogrammer.h:10
 AliMUONTrackerDataHistogrammer.h:11
 AliMUONTrackerDataHistogrammer.h:12
 AliMUONTrackerDataHistogrammer.h:13
 AliMUONTrackerDataHistogrammer.h:14
 AliMUONTrackerDataHistogrammer.h:15
 AliMUONTrackerDataHistogrammer.h:16
 AliMUONTrackerDataHistogrammer.h:17
 AliMUONTrackerDataHistogrammer.h:18
 AliMUONTrackerDataHistogrammer.h:19
 AliMUONTrackerDataHistogrammer.h:20
 AliMUONTrackerDataHistogrammer.h:21
 AliMUONTrackerDataHistogrammer.h:22
 AliMUONTrackerDataHistogrammer.h:23
 AliMUONTrackerDataHistogrammer.h:24
 AliMUONTrackerDataHistogrammer.h:25
 AliMUONTrackerDataHistogrammer.h:26
 AliMUONTrackerDataHistogrammer.h:27
 AliMUONTrackerDataHistogrammer.h:28
 AliMUONTrackerDataHistogrammer.h:29
 AliMUONTrackerDataHistogrammer.h:30
 AliMUONTrackerDataHistogrammer.h:31
 AliMUONTrackerDataHistogrammer.h:32
 AliMUONTrackerDataHistogrammer.h:33
 AliMUONTrackerDataHistogrammer.h:34
 AliMUONTrackerDataHistogrammer.h:35
 AliMUONTrackerDataHistogrammer.h:36
 AliMUONTrackerDataHistogrammer.h:37
 AliMUONTrackerDataHistogrammer.h:38
 AliMUONTrackerDataHistogrammer.h:39
 AliMUONTrackerDataHistogrammer.h:40
 AliMUONTrackerDataHistogrammer.h:41
 AliMUONTrackerDataHistogrammer.h:42
 AliMUONTrackerDataHistogrammer.h:43
 AliMUONTrackerDataHistogrammer.h:44
 AliMUONTrackerDataHistogrammer.h:45
 AliMUONTrackerDataHistogrammer.h:46
 AliMUONTrackerDataHistogrammer.h:47
 AliMUONTrackerDataHistogrammer.h:48
 AliMUONTrackerDataHistogrammer.h:49
 AliMUONTrackerDataHistogrammer.h:50
 AliMUONTrackerDataHistogrammer.h:51
 AliMUONTrackerDataHistogrammer.h:52
 AliMUONTrackerDataHistogrammer.h:53
 AliMUONTrackerDataHistogrammer.h:54
 AliMUONTrackerDataHistogrammer.h:55
 AliMUONTrackerDataHistogrammer.h:56
 AliMUONTrackerDataHistogrammer.h:57
 AliMUONTrackerDataHistogrammer.h:58
 AliMUONTrackerDataHistogrammer.h:59
 AliMUONTrackerDataHistogrammer.h:60
 AliMUONTrackerDataHistogrammer.h:61
 AliMUONTrackerDataHistogrammer.h:62
 AliMUONTrackerDataHistogrammer.h:63
 AliMUONTrackerDataHistogrammer.h:64
 AliMUONTrackerDataHistogrammer.h:65
 AliMUONTrackerDataHistogrammer.h:66