Line data Source code
1 : #ifndef ALIEMCALBIASAPD_H
2 : #define ALIEMCALBIASAPD_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"
12 : class TString;
13 : class TTree;
14 :
15 : /*
16 : Objects of this class contain info on APD bias settings/voltages
17 : */
18 :
19 : // ******* internal class definition *************
20 : // 1 SuperModule's worth of info
21 0 : class AliEMCALSuperModuleBiasAPD : public TObject {
22 : public:
23 0 : AliEMCALSuperModuleBiasAPD(const int smNum=0) : TObject(), // just init values
24 0 : fSuperModuleNum(smNum)
25 0 : {
26 0 : for (int icol=0; icol<AliEMCALGeoParams::fgkEMCALCols; icol++) {
27 0 : for (int irow=0; irow<AliEMCALGeoParams::fgkEMCALRows; irow++) {
28 0 : fElecId[icol][irow] = 0;
29 0 : fDAC[icol][irow] = 0;
30 0 : fVoltage[icol][irow] = 0;
31 : }
32 : }
33 0 : }
34 :
35 : public:
36 0 : void SetSuperModuleNum(Int_t i) { fSuperModuleNum = i;}; //
37 0 : Int_t GetSuperModuleNum() const { return fSuperModuleNum;}; //
38 0 : void SetElecId(int icol, int irow, Int_t i) { fElecId[icol][irow] = i; }; //
39 0 : Int_t GetElecId(int icol, int irow) const { return fElecId[icol][irow]; }; //
40 0 : void SetDAC(int icol, int irow, Int_t i) { fDAC[icol][irow] = i; }; //
41 0 : Int_t GetDAC(int icol, int irow) const { return fDAC[icol][irow]; }; //
42 0 : void SetVoltage(int icol, int irow, Float_t f) { fVoltage[icol][irow] = f; }; //
43 0 : Float_t GetVoltage(int icol, int irow) const { return fVoltage[icol][irow]; }; //
44 :
45 : private:
46 : Int_t fSuperModuleNum; // SM index
47 : Int_t fElecId[AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]; // ElectronicsIndex/Address - we keep this to help ensure that the column/row info matches with electronics indices
48 : Int_t fDAC[AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]; // 0-0x3ff register
49 : Float_t fVoltage[AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]; // 210 to ca 417 V. (function of DAC setting)
50 :
51 42 : ClassDef(AliEMCALSuperModuleBiasAPD, 2) // help class
52 : };
53 : // ******* end of internal class definition *************
54 :
55 : class AliEMCALBiasAPD : public TObject {
56 : public:
57 : AliEMCALBiasAPD(const int nSM = AliEMCALGeoParams::fgkEMCALModules);
58 :
59 : // Read and Write txt I/O methods are normally not used, but are useful for
60 : // filling the object before it is saved in OCDB
61 : void ReadTextBiasAPDInfo(Int_t nSM, const TString &txtFileName, Bool_t swapSides=kFALSE); // info file is for nSm=1 to fgkEMCALModules
62 : void WriteTextBiasAPDInfo(const TString &txtFileName, Bool_t swapSides=kFALSE); // info file is for nSm=1 to fgkEMCALModules
63 : void ReadRootBiasAPDInfo(const TString &rootFileName, Bool_t swapSides=kFALSE); // info file is for nSm=1 to fgkEMCALModules
64 : void ReadTreeBiasAPDInfo(TTree *tree, Bool_t swapSides=kFALSE); // info file is for nSm=1 to fgkEMCALModules
65 : void WriteRootBiasAPDInfo(const TString &rootFileName, Bool_t swapSides=kFALSE); // info file is for nSm=1 to fgkEMCALModules
66 :
67 : virtual ~AliEMCALBiasAPD();
68 :
69 : // pointer to stored info.
70 0 : Int_t GetNSuperModule() const { return fNSuperModule; };
71 :
72 : // - via the index in the stored array:
73 : virtual AliEMCALSuperModuleBiasAPD * GetSuperModuleBiasAPDId(Int_t smIndex) const
74 0 : { return (AliEMCALSuperModuleBiasAPD*) fSuperModuleData[smIndex]; };
75 :
76 : // - or via the actual SM number
77 : virtual AliEMCALSuperModuleBiasAPD * GetSuperModuleBiasAPDNum(Int_t smNum) const;
78 :
79 : protected:
80 :
81 : Int_t fNSuperModule; // Number of supermodules.
82 : TObjArray fSuperModuleData; // SuperModule data
83 :
84 : private:
85 :
86 : AliEMCALBiasAPD(const AliEMCALBiasAPD &);
87 : AliEMCALBiasAPD &operator = (const AliEMCALBiasAPD &);
88 :
89 42 : ClassDef(AliEMCALBiasAPD, 3) //BiasAPD data info
90 : };
91 :
92 : #endif
|