]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - FMD/AliFMDBoolMap.cxx
exit loop when in external control
[u/mrichter/AliRoot.git] / FMD / AliFMDBoolMap.cxx
... / ...
CommitLineData
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$ */
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*/
23//__________________________________________________________
24//
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
29// Created Mon Nov 8 12:51:51 2004 by Christian Holm Christensen
30//
31#include "AliFMDBoolMap.h" //ALIFMDBOOLMAP_H
32//__________________________________________________________
33ClassImp(AliFMDBoolMap)
34#if 0
35 ; // This is here to keep Emacs for indenting the next line
36#endif
37//__________________________________________________________
38AliFMDBoolMap::AliFMDBoolMap(const AliFMDBoolMap& other)
39 : AliFMDMap(other.fMaxDetectors,
40 other.fMaxRings,
41 other.fMaxSectors,
42 other.fMaxStrips),
43 fTotal(fMaxDetectors * fMaxRings * fMaxSectors * fMaxStrips),
44 fData(0)
45{
46 // Copy constructor
47 if (fTotal == 0) fTotal = 51200;
48 fData = new Bool_t[fTotal];
49 for (Int_t i = 0; i < fTotal; i++) fData[i] = other.fData[i];
50}
51
52//__________________________________________________________
53AliFMDBoolMap::AliFMDBoolMap()
54 : AliFMDMap(),
55 fTotal(0),
56 fData(0)
57{
58 // Constructor.
59 // Parameters:
60 // None
61}
62
63//__________________________________________________________
64AliFMDBoolMap::AliFMDBoolMap(UShort_t maxDet,
65 UShort_t maxRing,
66 UShort_t maxSec,
67 UShort_t maxStr)
68 : AliFMDMap(maxDet, maxRing, maxSec, maxStr),
69 fTotal(fMaxDetectors * fMaxRings * fMaxSectors * fMaxStrips),
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
78 if (fTotal == 0) fTotal = 51200;
79 fData = new Bool_t[fTotal];
80 Reset();
81}
82
83//__________________________________________________________
84AliFMDBoolMap&
85AliFMDBoolMap::operator=(const AliFMDBoolMap& other)
86{
87 // Assignment operator
88 if (&other == this) return *this;
89 fMaxDetectors = other.fMaxDetectors;
90 fMaxRings = other.fMaxRings;
91 fMaxSectors = other.fMaxSectors;
92 fMaxStrips = other.fMaxStrips;
93 if (fData) delete [] fData;
94 fTotal = fMaxDetectors * fMaxRings * fMaxSectors * fMaxStrips;
95 if (fTotal == 0) fTotal = 51200;
96 fData = new Bool_t[fTotal];
97 for (Int_t i = 0; i < fTotal; i++) fData[i] = other.fData[i];
98 return *this;
99}
100
101//__________________________________________________________
102void
103AliFMDBoolMap::Reset(const Bool_t& val)
104{
105 // Reset map to val
106 for (Int_t i = 0; i < fTotal; i++) fData[i] = val;
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