]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGDQ/dielectron/AliDielectronHFhelper.h
including switch to set on/off iso-track core removal, cleaning and bug fix
[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 { kMaxCuts=20 };
26
27   //AliDielectronHFhelper();
28   AliDielectronHFhelper(const char* filename, const char* container);
29
30   virtual ~AliDielectronHFhelper();
31   void SetHFArray(const char* filename, const char* container);
32
33   void SetRangeUser(const char *varname, Double_t min, Double_t max, Bool_t leg=kFALSE);
34   void SetRangeUser(AliDielectronVarManager::ValueTypes type, Double_t min, Double_t max, Bool_t leg=kFALSE);
35   void UnsetRangeUser(const char* varname, Bool_t leg=kFALSE);
36   void UnsetRangeUser(AliDielectronVarManager::ValueTypes type, Bool_t leg=kFALSE);
37
38   // getter functions
39   Int_t GetNSteps() const {return fMainArr->GetEntries(); }
40
41   TObjArray* CollectHistos(AliDielectronVarManager::ValueTypes varx,
42                            AliDielectronVarManager::ValueTypes vary=AliDielectronVarManager::kNMaxValues,
43                            AliDielectronVarManager::ValueTypes varz=AliDielectronVarManager::kNMaxValues,
44                            AliDielectronVarManager::ValueTypes varw=AliDielectronVarManager::kNMaxValues)
45   { return CollectProfiles("hist",varx,vary,varz,varw); }
46   TObjArray* CollectHistos(TString option,
47                            AliDielectronVarManager::ValueTypes varx,
48                            AliDielectronVarManager::ValueTypes vary=AliDielectronVarManager::kNMaxValues,
49                            AliDielectronVarManager::ValueTypes varz=AliDielectronVarManager::kNMaxValues,
50                            AliDielectronVarManager::ValueTypes varw=AliDielectronVarManager::kNMaxValues)
51   { return CollectProfiles(Form("%s:hist",option.Data()),varx,vary,varz,varw); }
52   TObjArray* CollectProfiles(TString option,
53                              AliDielectronVarManager::ValueTypes varx,
54                              AliDielectronVarManager::ValueTypes vary=AliDielectronVarManager::kNMaxValues,
55                              AliDielectronVarManager::ValueTypes varz=AliDielectronVarManager::kNMaxValues,
56                              AliDielectronVarManager::ValueTypes vart=AliDielectronVarManager::kNMaxValues);
57
58   TObjArray* FindObjects(TObjArray *histos);
59   TObjArray* Merge(TObjArray *arr);
60
61   void CheckCuts(TObjArray *arr);
62   virtual void Print(const Option_t* option ="") const ;
63   void PrintCuts();
64
65 private:
66   TObjArray *fMainArr;         // main array of pair types or sources
67   TObjArray *fCutVars;         // array for cut variables
68   TVectorD fCutLowLimits;      // vector to store the lower cut limits
69   TVectorD fCutUpLimits;       // vector to store the upper cut limits
70
71   AliDielectronHFhelper(const AliDielectronHFhelper &c);
72   AliDielectronHFhelper &operator=(const AliDielectronHFhelper &c);
73
74   ClassDef(AliDielectronHFhelper,1)                   // HF  helper class
75 };
76
77 //
78 // Inline functions
79 //
80 #endif
81