ROOT logo
#ifndef ALIEMCALTRIGGERBINNINGCOMPONENT_H
#define ALIEMCALTRIGGERBINNINGCOMPONENT_H
/* Copyright(c) 1998-2014, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

// Author: Markus Fasel
#include <TArrayD.h>
#include <TNamed.h>

class TObjArray;

namespace EMCalTriggerPtAnalysis {

class AliEMCalTriggerBinningDimension : public TNamed{
public:
  AliEMCalTriggerBinningDimension():
    TNamed(),
    fBinning()
  {}
  AliEMCalTriggerBinningDimension(const char *name):
    TNamed(name, ""),
    fBinning()
  {}
  AliEMCalTriggerBinningDimension(const char *name, int nbins, double *binning):
    TNamed(name, ""),
    fBinning(nbins+1, binning)
  {}
  AliEMCalTriggerBinningDimension(const char *name, const TArrayD &binning):
    TNamed(name, ""),
    fBinning(binning.GetSize(), binning.GetArray())
  {}
  ~AliEMCalTriggerBinningDimension() {}

  void Set(int nbins, double *binning) { fBinning.Set(nbins+1, binning); }
  void Set(const TArrayD &binning) { fBinning = binning; }
  const double *GetBinLimits() const { return fBinning.GetArray(); }
  int GetNumberOfBins() const { return fBinning.GetSize() - 1; }
  virtual void Print(Option_t *option="") const;

private:
  TArrayD fBinning;             // Bin limits

  ClassDef(AliEMCalTriggerBinningDimension, 1);
};

class AliEMCalTriggerBinningComponent: public TObject {
public:
  AliEMCalTriggerBinningComponent();
  AliEMCalTriggerBinningComponent(const AliEMCalTriggerBinningComponent &ref);
  AliEMCalTriggerBinningComponent &operator=(const AliEMCalTriggerBinningComponent &ref);
  virtual ~AliEMCalTriggerBinningComponent();

  AliEMCalTriggerBinningDimension *GetBinning(const char *name) const;
  void SetBinning(const char *dimname, int nbins, double *binning);
  void SetBinning(const char *dimname, const TArrayD &binning);

private:
  TObjArray       *fDimensions;           // List of binnings (dimensions)

  ClassDef(AliEMCalTriggerBinningComponent, 1);
};

} /* namespace EMCalTriggerPtAnalysis */

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