]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGDQ/dielectron/AliDielectronHFhelper.h
-update HFhelper for newly merged arrays
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / AliDielectronHFhelper.h
1 #ifndef ALIDIELECTRONHFHELPER_H
2 #define ALIDIELECTRONHFHELPER_H
3 /* Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 //#############################################################
7 //#                                                           #
8 //#             Class AliDielectronHFhelper                   #
9 //#       Dielectron Histogram Framework helper               #
10 //#                                                           #
11 //#  Authors:                                                 #
12 //#   Julian    Book,     Uni Ffm / Julian.Book@cern.ch       #
13 //#                                                           #
14 //#############################################################
15
16
17
18 #include <TNamed.h>
19 #include <TVectorD.h>
20
21 #include "AliDielectronVarManager.h"
22
23 class AliDielectronHFhelper : public TNamed {
24 public:
25   enum ECollectType { kSE=0, kME, kMEOS, kROT, kAll };
26   enum { kMaxCuts=20 };
27
28   //AliDielectronHFhelper();
29   AliDielectronHFhelper(const char* filename, const char* container);
30
31   virtual ~AliDielectronHFhelper();
32   void SetHFArray(const char* filename, const char* container);
33
34   void SetRangeUser(const char *varname, Double_t min, Double_t max, Bool_t leg=kFALSE);
35   void SetRangeUser(AliDielectronVarManager::ValueTypes type, Double_t min, Double_t max, Bool_t leg=kFALSE);
36   void UnsetRangeUser(const char* varname, Bool_t leg=kFALSE);
37   void UnsetRangeUser(AliDielectronVarManager::ValueTypes type, Bool_t leg=kFALSE);
38
39   // getter functions
40   Int_t GetNSteps() const {return fMainArr->GetEntries(); }
41
42   TObjArray* CollectHistos(AliDielectronVarManager::ValueTypes varx,
43                            AliDielectronVarManager::ValueTypes vary=AliDielectronVarManager::kNMaxValues,
44                            AliDielectronVarManager::ValueTypes varz=AliDielectronVarManager::kNMaxValues)
45   { return CollectProfiles("hist",varx,vary,varz); }
46   TObjArray* CollectProfiles(TString option,
47                              AliDielectronVarManager::ValueTypes varx,
48                              AliDielectronVarManager::ValueTypes vary=AliDielectronVarManager::kNMaxValues,
49                              AliDielectronVarManager::ValueTypes varz=AliDielectronVarManager::kNMaxValues,
50                              AliDielectronVarManager::ValueTypes vart=AliDielectronVarManager::kNMaxValues);
51
52   TObject* GetObject(const char *step, TObjArray *histArr=0x0);
53   TObject* FindObjects(TObjArray *histos);
54   TObject* Merge(TObjArray *arr);
55
56   void CheckCuts(TObjArray *arr);
57   virtual void Print(const Option_t* option ="") const ;
58   void PrintCuts();
59
60 private:
61   TObjArray *fMainArr;         // main array of pair types or sources
62   TObjArray *fCutVars;         // array for cut variables
63   TVectorD fCutLowLimits;      // vector to store the lower cut limits
64   TVectorD fCutUpLimits;       // vector to store the upper cut limits
65
66   AliDielectronHFhelper(const AliDielectronHFhelper &c);
67   AliDielectronHFhelper &operator=(const AliDielectronHFhelper &c);
68
69   ClassDef(AliDielectronHFhelper,1)                   // HF  helper class
70 };
71
72 //
73 // Inline functions
74 //
75 #endif
76