]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGDQ/dielectron/AliDielectronHF.h
removing commit, compile error
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / AliDielectronHF.h
1 #ifndef ALIDIELECTRONHF_H
2 #define ALIDIELECTRONHF_H
3
4 /* Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 //#############################################################
8 //#                                                           # 
9 //#         Class AliDielectronHF                     #
10 //#                                                           #
11 //#  Authors:                                                 #
12 //#   Julian Book, Uni-Frankfurt / Julian.Book@cern.ch        #
13 //#                                                           #
14 //#############################################################
15
16 #include <TNamed.h>
17 #include <TObjArray.h>
18
19 #include "AliDielectronVarManager.h"
20
21 class AliDielectronHF : public TNamed {
22 public:
23   enum { kMaxCuts=20 };
24   enum EBinType {
25     kStdBin=0,
26     kBinToMax,
27     kBinFromMin,
28     kSymBin
29   };
30   enum EPairType {
31     kOSonly=0,  kOSandLS, kOSandROT, kOSandMIX, kAll
32   };
33
34   AliDielectronHF();
35   AliDielectronHF(const char*name, const char* title);
36
37   virtual ~AliDielectronHF();
38
39   void Init();
40   void SetSignalsMC(TObjArray* array)    {fSignalsMC = array;}
41   void SetStepForMCGenerated(Bool_t switcher=kTRUE)    {fStepGenerated = switcher;}
42   void SetPairTypes(EPairType ptype=kOSonly) { fPairType=ptype; }
43
44   // functions to add 1-dimensional objects
45   void UserProfile(const char* histClass, UInt_t valTypeP,
46                    const TVectorD * const binsX, UInt_t valTypeX, TString option="");
47   void UserHistogram(const char* histClass,
48                      const TVectorD * const binsX, UInt_t valTypeX)
49   { UserProfile(histClass,999,binsX,valTypeX); }
50
51   // functions to add 2-dimensional objects
52   void UserProfile(const char* histClass, UInt_t valTypeP,
53                    const TVectorD * const binsX, const TVectorD * const binsY,
54                    UInt_t valTypeX, UInt_t valTypeY, TString option="");
55   void UserHistogram(const char* histClass,
56                      const TVectorD * const binsX, const TVectorD * const binsY,
57                      UInt_t valTypeX, UInt_t valTypeY)
58   { UserProfile(histClass,999,binsX,binsY,valTypeX,valTypeY); }
59
60   // functions to add 3-dimensional objects
61   void UserProfile(const char* histClass, UInt_t valTypeP,
62                    const TVectorD * const binsX, const TVectorD * const binsY, const TVectorD * const binsZ,
63                    UInt_t valTypeX, UInt_t valTypeY, UInt_t valTypeZ, TString option="");
64   void UserHistogram(const char* histClass,
65                      const TVectorD * const binsX, const TVectorD * const binsY, const TVectorD * const binsZ,
66                      UInt_t valTypeX, UInt_t valTypeY, UInt_t valTypeZ)
67   { UserProfile(histClass,999,binsX,binsY,binsZ,valTypeX,valTypeY,valTypeZ); }
68
69
70   // functions to define the grid
71   void AddCutVariable(AliDielectronVarManager::ValueTypes type, Int_t nbins,
72                       Double_t min, Double_t max, Bool_t log=kFALSE, Bool_t leg=kFALSE, EBinType btype=kStdBin);
73   void AddCutVariable(AliDielectronVarManager::ValueTypes type, 
74                       const char* binLimitStr, Bool_t leg=kFALSE, EBinType btype=kStdBin);
75   void AddCutVariable(AliDielectronVarManager::ValueTypes type, 
76                       TVectorD * binLimits, Bool_t leg=kFALSE, EBinType btype=kStdBin);
77
78   void Fill(Int_t pairIndex, const AliDielectronPair *particle);
79   void Fill(Int_t label1, Int_t label2, Int_t nSignal);
80   void Fill(Int_t Index, Double_t * const valuesPair, Double_t * const valuesLeg1, Double_t * const valuesLeg2);
81
82   Bool_t IsPairTypeSelected(Int_t itype);
83
84   Int_t GetNumberOfBins() const;
85   const TObjArray * GetHistArray() const { return &fArrPairType; }
86   Bool_t GetStepForMCGenerated() const   { return fStepGenerated; }
87
88 private:
89   TObjArray fArrPairType;           //-> array of pair types
90   EPairType fPairType;              // which pair combinations to include
91   TObjArray* fSignalsMC;            //! array of MC signals to be studied
92
93   UShort_t  fVarCuts[kMaxCuts];     // cut variables
94   Bool_t    fVarCutType[kMaxCuts];  // array to store leg booleans
95   TObjArray fAxes;                  // Axis descriptions of the cut binning
96   UShort_t  fBinType[kMaxCuts];     // binning type of the axes
97   
98   Bool_t    fHasMC;
99   Bool_t    fStepGenerated;         // switcher for generated particles
100
101   TObjArray fRefObj;               // reference object
102
103   AliDielectronHF(const AliDielectronHF &c);
104   AliDielectronHF &operator=(const AliDielectronHF &c);
105
106   
107   ClassDef(AliDielectronHF,3)         // Dielectron HF
108 };
109
110
111
112 #endif