Fixes for coverity checks.
[u/mrichter/AliRoot.git] / FMD / AliFMDBoolMap.cxx
CommitLineData
56b1929b 1/**************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN. *
3 * All rights reserved. *
4 * *
5 * Author: The ALICE Off-line Project. *
6 * Contributors are mentioned in the code where appropriate. *
7 * *
8 * Permission to use, copy, modify and distribute this *
9 * software and its documentation strictly for non-commercial *
10 * purposes is hereby granted without fee, provided that the *
11 * above copyright notice appears in all copies and that both *
12 * the copyright notice and this permission notice appear in *
13 * the supporting documentation. The authors make no claims *
14 * about the suitability of this software for any purpose. It *
15 * is provided "as is" without express or implied warranty. *
16 **************************************************************/
17/* $Id$ */
c2fc1258 18/** @file AliFMDBoolMap.cxx
19 @author Christian Holm Christensen <cholm@nbi.dk>
20 @date Sun Mar 26 18:28:42 2006
21 @brief Per strip Boolean map
22*/
56b1929b 23//__________________________________________________________
24//
088f8e79 25// Map of Bool_t for each FMD strip
26// Used in calibration and the like classes.
27// Used amoung other things for dead-channel map
28// Can also be used for other stuff too
56b1929b 29// Created Mon Nov 8 12:51:51 2004 by Christian Holm Christensen
30//
31#include "AliFMDBoolMap.h" //ALIFMDBOOLMAP_H
32//__________________________________________________________
925e6570 33ClassImp(AliFMDBoolMap)
1a1fdef7 34#if 0
35 ; // This is here to keep Emacs for indenting the next line
36#endif
56b1929b 37//__________________________________________________________
38AliFMDBoolMap::AliFMDBoolMap(const AliFMDBoolMap& other)
39 : AliFMDMap(other.fMaxDetectors,
40 other.fMaxRings,
41 other.fMaxSectors,
42 other.fMaxStrips),
021f1396 43 fTotal(fMaxDetectors * fMaxRings * fMaxSectors * fMaxStrips),
56b1929b 44 fData(0)
45{
46 // Copy constructor
021f1396 47 if (fTotal == 0) fTotal = 51200;
bfdc7f5d 48 fData = new Bool_t[fTotal];
0ed9abeb 49 for (Int_t i = 0; i < fTotal; i++) fData[i] = other.fData[i];
56b1929b 50}
51
52//__________________________________________________________
021f1396 53AliFMDBoolMap::AliFMDBoolMap()
54 : AliFMDMap(),
55 fTotal(0),
56 fData(0)
57{
58 // Constructor.
59 // Parameters:
60 // None
61}
62
63//__________________________________________________________
6e79feeb 64AliFMDBoolMap::AliFMDBoolMap(UShort_t maxDet,
408bf2b4 65 UShort_t maxRing,
66 UShort_t maxSec,
67 UShort_t maxStr)
56b1929b 68 : AliFMDMap(maxDet, maxRing, maxSec, maxStr),
021f1396 69 fTotal(fMaxDetectors * fMaxRings * fMaxSectors * fMaxStrips),
56b1929b 70 fData(0)
71{
72 // Constructor.
73 // Parameters:
74 // maxDet Maximum number of detectors
75 // maxRing Maximum number of rings per detector
76 // maxSec Maximum number of sectors per ring
77 // maxStr Maximum number of strips per sector
021f1396 78 if (fTotal == 0) fTotal = 51200;
bfdc7f5d 79 fData = new Bool_t[fTotal];
69b696b9 80 Reset();
56b1929b 81}
82
83//__________________________________________________________
84AliFMDBoolMap&
85AliFMDBoolMap::operator=(const AliFMDBoolMap& other)
86{
87 // Assignment operator
d015ecfe 88 if (&other == this) return *this;
56b1929b 89 fMaxDetectors = other.fMaxDetectors;
90 fMaxRings = other.fMaxRings;
91 fMaxSectors = other.fMaxSectors;
92 fMaxStrips = other.fMaxStrips;
93 if (fData) delete [] fData;
bfdc7f5d 94 fTotal = fMaxDetectors * fMaxRings * fMaxSectors * fMaxStrips;
021f1396 95 if (fTotal == 0) fTotal = 51200;
bfdc7f5d 96 fData = new Bool_t[fTotal];
0ed9abeb 97 for (Int_t i = 0; i < fTotal; i++) fData[i] = other.fData[i];
56b1929b 98 return *this;
99}
100
101//__________________________________________________________
102void
69b696b9 103AliFMDBoolMap::Reset(const Bool_t& val)
56b1929b 104{
105 // Reset map to val
0ed9abeb 106 for (Int_t i = 0; i < fTotal; i++) fData[i] = val;
56b1929b 107}
108
109//__________________________________________________________
110Bool_t&
111AliFMDBoolMap::operator()(UShort_t det,
112 Char_t ring,
113 UShort_t sec,
114 UShort_t str)
115{
116 // Get data
117 // Parameters:
118 // det Detector #
119 // ring Ring ID
120 // sec Sector #
121 // str Strip #
122 // Returns appropriate data
123 return fData[CalcIndex(det, ring, sec, str)];
124}
125
126//__________________________________________________________
127const Bool_t&
128AliFMDBoolMap::operator()(UShort_t det,
129 Char_t ring,
130 UShort_t sec,
131 UShort_t str) const
132{
133 // Get data
134 // Parameters:
135 // det Detector #
136 // ring Ring ID
137 // sec Sector #
138 // str Strip #
139 // Returns appropriate data
140 return fData[CalcIndex(det, ring, sec, str)];
141}
142
143//__________________________________________________________
144//
145// EOF
146//
147