add set and getter for neutral energy fraction
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALCalibTempCoeff.h
CommitLineData
3a282863 1#ifndef ALIEMCALCALIBTEMPCOEFF_H
2#define ALIEMCALCALIBTEMPCOEFF_H
3
4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
7/* $Id: $ */
8
9#include <TObject.h>
10#include <TObjArray.h>
11#include "AliEMCALGeoParams.h"
12class TString;
13class TTree;
14
15/*
16 Objects of this class contain temperature-dependence coefficients
17*/
18
19// total calibration factor is a product of
20// a) overall calibration factor [fAbsoluteCalib]
21// b) individual gain factor per tower [fRelativeCalib]
22// c) time-dependent correction
23// In this class we store factors needed for c)
24
25// ******* internal class definition *************
26
27// 1 SuperModule's worth of info: info on where the different APDs are
28class AliEMCALSuperModuleCalibTempCoeff : public TObject {
29
30 public:
31 AliEMCALSuperModuleCalibTempCoeff(const int smNum=0) : TObject(), // just init values
32 fSuperModuleNum(smNum)
33 {
34 for (int icol=0; icol<AliEMCALGeoParams::fgkEMCALCols; icol++) {
35 for (int irow=0; irow<AliEMCALGeoParams::fgkEMCALRows; irow++) {
36 fTC[icol][irow] = 1.0;
37 fSrc[icol][irow] = 0;
38 }
39 }
40 }
41
42 public:
43
44 void SetSuperModuleNum(Int_t i) { fSuperModuleNum = i;}; //
45 Int_t GetSuperModuleNum() const { return fSuperModuleNum;}; //
46 void SetTC(int icol, int irow, Float_t f) { fTC[icol][irow] = f; }; //
47 Float_t GetTC(int icol, int irow) const { return fTC[icol][irow]; }; //
48 void SetSrc(int icol, int irow, Int_t i) { fSrc[icol][irow] = i; }; //
49 Int_t GetSrc(int icol, int irow) const { return fSrc[icol][irow]; }; //
50
51 private:
52 Int_t fSuperModuleNum; // which SuperModule is this?
53 // individual info for each tower
54 Float_t fTC[AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]; // Temperature Coefficient values (nominally around 2% change per deg C)
55 Int_t fSrc[AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]; // from DarkCurrent, or LED or ..
56
57 ClassDef(AliEMCALSuperModuleCalibTempCoeff, 1) // help class
58};
59// ******* end of internal class definition *************
60
61class AliEMCALCalibTempCoeff : public TObject {
62
63public:
64
65 enum kSrcType {kDarkCurrent=0, kLED=1};// code in possible sources
66
67 AliEMCALCalibTempCoeff(const int nSM = AliEMCALGeoParams::fgkEMCALModules);
68
69 // Read and Write txt I/O methods are normally not used, but are useful for
70 // filling the object before it is saved in OCDB
71 void ReadTextCalibTempCoeffInfo(Int_t nSM, const TString &txtFileName, Bool_t swapSides=kFALSE); // info file is for nSm=1 to 12 SuperModules
72 void WriteTextCalibTempCoeffInfo(const TString &txtFileName, Bool_t swapSides=kFALSE); // info file is for nSm=1 to 12 SuperModules
73 void ReadRootCalibTempCoeffInfo(const TString &rootFileName, Bool_t swapSides=kFALSE); // info file is for nSm=1 to 12 SuperModules
74 void ReadTreeCalibTempCoeffInfo(TTree *tree, Bool_t swapSides=kFALSE); // info file is for nSm=1 to 12 SuperModules
75 void WriteRootCalibTempCoeffInfo(const TString &rootFileName, Bool_t swapSides=kFALSE); // info file is for nSm=1 to 12 SuperModules
76
77 virtual ~AliEMCALCalibTempCoeff();
78
79 // pointer to stored info.
80 Int_t GetNSuperModule() const { return fNSuperModule; };
81
82 // - via the index in the stored array:
83 virtual AliEMCALSuperModuleCalibTempCoeff * GetSuperModuleCalibTempCoeffId(Int_t smIndex) const
84 { return (AliEMCALSuperModuleCalibTempCoeff*) fSuperModuleData[smIndex]; };
85
86 // - or via the actual SM number
87 virtual AliEMCALSuperModuleCalibTempCoeff * GetSuperModuleCalibTempCoeffNum(Int_t smNum) const;
88
89protected:
90
91 Int_t fNSuperModule; // Number of supermodules.
92 TObjArray fSuperModuleData; // SuperModule data
93
94private:
95
96 AliEMCALCalibTempCoeff(const AliEMCALCalibTempCoeff &);
97 AliEMCALCalibTempCoeff &operator = (const AliEMCALCalibTempCoeff &);
98
99 ClassDef(AliEMCALCalibTempCoeff, 1) //CalibTempCoeff data info
100};
101
102#endif