]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/AliITSFOEfficiencySPD.cxx
Merge remote-tracking branch 'origin/master' into flatdev
[u/mrichter/AliRoot.git] / ITS / AliITSFOEfficiencySPD.cxx
CommitLineData
ad7f2bfa 1/////////////////////////////////////////////////////////////////////
2// Author: Henrik Tydesjo //
3// //
4// This class is used to store Fast-OR efficiency values in OCDB. //
5// One value per pixel chip in this base class (if per column //
6// accuracy is needed, use AliITSFOEfficiencySPDColumn class). //
7// The values are the probability that a pixel hit will generate a //
8// fast-OR signal. //
9// //
10/////////////////////////////////////////////////////////////////////
11
12#include "AliITSFOEfficiencySPD.h"
13
14AliITSFOEfficiencySPD::AliITSFOEfficiencySPD() :
15 TObject()
16{
17 // default constructor, puts all efficiency values to 100%
18 ResetValues();
19}
20//______________________________________________________________________
21AliITSFOEfficiencySPD::AliITSFOEfficiencySPD(const AliITSFOEfficiencySPD& foEff) :
22 TObject()
23{
24 // copy constructor, copy the array values from input object
25 for (UInt_t eq=0; eq<20; eq++) {
26 for (UInt_t hs=0; hs<6; hs++) {
27 for (UInt_t chip=0; chip<10; chip++) {
28 fChipEfficiency[eq][hs][chip] = foEff.fChipEfficiency[eq][hs][chip];
29 }
30 }
31 }
32}
33//______________________________________________________________________
34AliITSFOEfficiencySPD::~AliITSFOEfficiencySPD() {}
35//______________________________________________________________________
36void AliITSFOEfficiencySPD::ResetValues() {
37 // Set all efficiency values to 100%
38 for (UInt_t eq=0; eq<20; eq++) {
39 for (UInt_t hs=0; hs<6; hs++) {
40 for (UInt_t chip=0; chip<10; chip++) {
41 fChipEfficiency[eq][hs][chip] = 1;
42 }
43 }
44 }
45}
46//______________________________________________________________________
47AliITSFOEfficiencySPD& AliITSFOEfficiencySPD::operator=(const AliITSFOEfficiencySPD& foEff) {
48 // assignment operator
49 if (this!=&foEff) {
50 for (UInt_t eq=0; eq<20; eq++) {
51 for (UInt_t hs=0; hs<6; hs++) {
52 for (UInt_t chip=0; chip<10; chip++) {
53 fChipEfficiency[eq][hs][chip] = foEff.fChipEfficiency[eq][hs][chip];
54 }
55 }
56 }
57 }
58 return *this;
59}
60//______________________________________________________________________
61void AliITSFOEfficiencySPD::SetChipEfficiency(UInt_t eq, UInt_t hs, UInt_t chip, Float_t value) {
62 // set a chip efficiency value
63 if (eq>=20) {
64 Error("AliITSFOEfficiencySPD::SetChipEfficiency", "eq (%d) out of bounds.",eq);
65 return;
66 }
67 if (hs>=6) {
68 Error("AliITSFOEfficiencySPD::SetChipEfficiency", "hs (%d) out of bounds.",hs);
69 return;
70 }
71 if (chip>=10) {
72 Error("AliITSFOEfficiencySPD::SetChipEfficiency", "chip (%d) out of bounds.",chip);
73 return;
74 }
75
76 fChipEfficiency[eq][hs][chip] = value;
77}
78//______________________________________________________________________
79Float_t AliITSFOEfficiencySPD::GetChipEfficiency(UInt_t eq, UInt_t hs, UInt_t chip) const {
80 // get a chip efficiency value
81 if (eq>=20) {
82 Error("AliITSFOEfficiencySPD::GetChipEfficiency", "eq (%d) out of bounds.",eq);
83 return 0;
84 }
85 if (hs>=6) {
86 Error("AliITSFOEfficiencySPD::GetChipEfficiency", "hs (%d) out of bounds.",hs);
87 return 0;
88 }
89 if (chip>=10) {
90 Error("AliITSFOEfficiencySPD::GetChipEfficiency", "chip (%d) out of bounds.",chip);
91 return 0;
92 }
93
94 return fChipEfficiency[eq][hs][chip];
95}
96