]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGDQ/dielectron/AliDielectronHFhelper.h
Merge branch 'TPCdev' of https://git.cern.ch/reps/AliRoot into TPCdev
[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                            AliDielectronVarManager::ValueTypes varw=AliDielectronVarManager::kNMaxValues)
46   { return CollectProfiles("hist",varx,vary,varz,varw); }
47   TObjArray* CollectHistos(TString option,
48                            AliDielectronVarManager::ValueTypes varx,
49                            AliDielectronVarManager::ValueTypes vary=AliDielectronVarManager::kNMaxValues,
50                            AliDielectronVarManager::ValueTypes varz=AliDielectronVarManager::kNMaxValues,
51                            AliDielectronVarManager::ValueTypes varw=AliDielectronVarManager::kNMaxValues)
52   { return CollectProfiles(Form("%s:hist",option.Data()),varx,vary,varz,varw); }
53   TObjArray* CollectProfiles(TString option,
54                              AliDielectronVarManager::ValueTypes varx,
55                              AliDielectronVarManager::ValueTypes vary=AliDielectronVarManager::kNMaxValues,
56                              AliDielectronVarManager::ValueTypes varz=AliDielectronVarManager::kNMaxValues,
57                              AliDielectronVarManager::ValueTypes vart=AliDielectronVarManager::kNMaxValues);
58
59   TObject* GetObject(const char *step, TObjArray *histArr=0x0);
60   TObject* FindObjects(TObjArray *histos);
61   TObject* Merge(TObjArray *arr);
62
63   void CheckCuts(TObjArray *arr);
64   virtual void Print(const Option_t* option ="") const ;
65   void PrintCuts();
66
67 private:
68   TObjArray *fMainArr;         // main array of pair types or sources
69   TObjArray *fCutVars;         // array for cut variables
70   TVectorD fCutLowLimits;      // vector to store the lower cut limits
71   TVectorD fCutUpLimits;       // vector to store the upper cut limits
72
73   AliDielectronHFhelper(const AliDielectronHFhelper &c);
74   AliDielectronHFhelper &operator=(const AliDielectronHFhelper &c);
75
76   ClassDef(AliDielectronHFhelper,1)                   // HF  helper class
77 };
78
79 //
80 // Inline functions
81 //
82 #endif
83