]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/UserTasks/AliEMCalTriggerBinningComponent.h
More refactoring of the task
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / UserTasks / AliEMCalTriggerBinningComponent.h
1 #ifndef ALIEMCALTRIGGERBINNINGCOMPONENT_H
2 #define ALIEMCALTRIGGERBINNINGCOMPONENT_H
3 /* Copyright(c) 1998-2014, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 // Author: Markus Fasel
7 #include <TArrayD.h>
8 #include <TNamed.h>
9
10 class TObjArray;
11
12 namespace EMCalTriggerPtAnalysis {
13
14 class AliEMCalTriggerBinningDimension : public TNamed{
15 public:
16   AliEMCalTriggerBinningDimension():
17     TNamed(),
18     fBinning()
19   {}
20   AliEMCalTriggerBinningDimension(const char *name):
21     TNamed(name, ""),
22     fBinning()
23   {}
24   AliEMCalTriggerBinningDimension(const char *name, int nbins, double *binning):
25     TNamed(name, ""),
26     fBinning(nbins+1, binning)
27   {}
28   AliEMCalTriggerBinningDimension(const char *name, const TArrayD &binning):
29     TNamed(name, ""),
30     fBinning(binning.GetSize()-1, binning.GetArray())
31   {}
32   ~AliEMCalTriggerBinningDimension() {}
33
34   void Set(int nbins, double *binning) { fBinning.Set(nbins+1, binning); }
35   void Set(const TArrayD &binning) { fBinning = binning; }
36   const double *GetBinLimits() const { return fBinning.GetArray(); }
37   int GetNumberOfBins() const { return fBinning.GetSize(); }
38
39 private:
40   TArrayD fBinning;             // Bin limits
41
42   ClassDef(AliEMCalTriggerBinningDimension, 1);
43 };
44
45 class AliEMCalTriggerBinningComponent: public TObject {
46 public:
47   AliEMCalTriggerBinningComponent();
48   AliEMCalTriggerBinningComponent(const AliEMCalTriggerBinningComponent &ref);
49   AliEMCalTriggerBinningComponent &operator=(const AliEMCalTriggerBinningComponent &ref);
50   virtual ~AliEMCalTriggerBinningComponent();
51
52   AliEMCalTriggerBinningDimension *GetBinning(const char *name) const;
53   void SetBinning(const char *dimname, int nbins, double *binning);
54   void SetBinning(const char *dimname, const TArrayD &binning);
55
56 private:
57   TObjArray       *fDimensions;           // List of binnings (dimensions)
58
59   ClassDef(AliEMCalTriggerBinningComponent, 1);
60 };
61
62 } /* namespace EMCalTriggerPtAnalysis */
63
64 #endif /* ALIEMCALTRIGGERBINNINGCOMPONENT_H */