]> git.uio.no Git - u/mrichter/AliRoot.git/blob - FMD/analysis/AliFMDAnaParameters.h
Fixes of warnings, new features and upgrades
[u/mrichter/AliRoot.git] / FMD / analysis / AliFMDAnaParameters.h
1 #ifndef ALIFMDANAPARAMETERS_H
2 #define ALIFMDANAPARAMETERS_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights
4  * reserved. 
5  *
6  * Latest changes by Hans Hjersing Dalsgaard, NBI, hans.dalsgaard@cern.ch
7  *
8  * See cxx source for full Copyright notice                               
9  */
10 //
11 //The design of this class is based on the AliFMDParameters class. Its purpose
12 //is to hold parameters for the analysis such as background correction and 
13 //fit functions.
14 //
15 //Author: Hans Hjersing Dalsgaard, NBI, hans.dalsgaard@cern.ch
16 //
17 //____________________________________________________________________
18
19 #ifndef ROOT_TNamed
20 # include <TNamed.h>
21 #endif
22 #ifndef ROOT_TArrayI
23 # include <TArrayI.h>
24 #endif
25 #ifndef ALIFMDUSHORTMAP_H
26 # include <AliFMDUShortMap.h>
27 #endif
28 #ifndef ALIFMDBOOLMAP_H
29 # include <AliFMDBoolMap.h>
30 #endif
31 #include "AliCDBEntry.h"
32
33 #include "TFile.h"
34 #include "TObjArray.h"
35 #include "TH2F.h"
36 #include "TAxis.h"
37 #include "TH1F.h"
38 #include "AliFMDAnaCalibBackgroundCorrection.h"
39 #include "AliFMDAnaCalibEnergyDistribution.h"
40 //____________________________________________________________________
41 //
42 //  Singleton class to handle various parameters (not geometry) of the
43 //  FMD
44 //  Should get ata fromm Conditions DB.
45 //
46
47 class AliFMDAnaParameters : public TNamed
48 {
49 public:
50   /** Enumeration of things to initialize */ 
51   enum What { 
52     /** Pulser gain */ 
53     kBackgroundCorrection = 0x1, // Background Correction 
54     kEnergyDistributions  = 0x2 // Energy Distributions
55   };
56   
57   /** Singleton access
58       @return  single to */
59   static AliFMDAnaParameters* Instance();
60   
61   void Init(Bool_t forceReInit=kTRUE, UInt_t what=kBackgroundCorrection|kEnergyDistributions);
62   Float_t GetVtxCutZ();
63   Int_t GetNvtxBins();
64   Float_t GetMPV(Int_t det, Char_t ring);
65   Float_t GetSigma(Int_t det, Char_t ring);
66   static const char* GetBackgroundPath() { return fgkBackgroundCorrection;}
67   static const char* GetEdistPath()      { return fgkEnergyDists;}
68   TH2F* GetBackgroundCorrection(Int_t det, Char_t ring, Int_t vtxbin);
69   
70 protected:
71   
72   AliFMDAnaParameters();
73   
74   AliFMDAnaParameters(const AliFMDAnaParameters& o) 
75     : TNamed(o),
76       fIsInit(o.fIsInit),
77       fBackgroundArray(o.fBackgroundArray), 
78       fEdistArray(o.fEdistArray)
79   {}
80   AliFMDAnaParameters& operator=(const AliFMDAnaParameters&) { return *this; }
81   virtual ~AliFMDAnaParameters() {}
82   
83   static AliFMDAnaParameters* fgInstance;   // Static singleton instance
84   
85   AliCDBEntry* GetEntry(const char* path, Bool_t fatal=kTRUE) const ;
86   void InitBackground();
87   void InitEnergyDists();
88   TH1F* GetEnergyDistribution(Int_t det, Char_t ring);
89   TObjArray* GetBackgroundArray();
90   
91   TAxis* GetRefAxis();
92   
93   
94   Bool_t fIsInit;
95   TObjArray*  fBackgroundArray;
96   TObjArray*  fEdistArray;
97   AliFMDAnaCalibBackgroundCorrection* fBackground;
98   AliFMDAnaCalibEnergyDistribution* fEnergyDistribution;
99   static const char* fgkBackgroundCorrection;
100   static const char* fgkEnergyDists;
101   ClassDef(AliFMDAnaParameters,0) // Manager of parameters
102 };
103
104 #endif
105 //____________________________________________________________________
106 //
107 // Local Variables:
108 //   mode: C++
109 // End:
110 //
111 // EOF
112 //
113