ROOT logo
/**************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN.          *
 * All rights reserved.                                       *
 *                                                            *
 * Author: The ALICE Off-line Project.                        *
 * Contributors are mentioned in the code where appropriate.  *
 *                                                            *
 * Permission to use, copy, modify and distribute this        *
 * software and its documentation strictly for non-commercial *
 * purposes is hereby granted without fee, provided that the  *
 * above copyright notice appears in all copies and that both *
 * the copyright notice and this permission notice appear in  *
 * the supporting documentation. The authors make no claims   *
 * about the suitability of this software for any purpose. It *
 * is provided "as is" without express or implied warranty.   *
 **************************************************************/
/* $Id$ */
/** @file    AliFMDBoolMap.cxx
    @author  Christian Holm Christensen <cholm@nbi.dk>
    @date    Sun Mar 26 18:28:42 2006
    @brief   Per strip Boolean map
*/
//__________________________________________________________
// 
// Map of Bool_t for each FMD strip
// Used in calibration and the like classes.
// Used amoung other things for dead-channel map
// Can also be used for other stuff too
// Created Mon Nov  8 12:51:51 2004 by Christian Holm Christensen
// 
#include "AliFMDBoolMap.h"	//ALIFMDBOOLMAP_H
//__________________________________________________________
ClassImp(AliFMDBoolMap)
#if 0
  ; // This is here to keep Emacs for indenting the next line
#endif
//__________________________________________________________
AliFMDBoolMap::AliFMDBoolMap(const AliFMDBoolMap& other)
  : AliFMDMap(other.fMaxDetectors,
              other.fMaxRings,
              other.fMaxSectors,
              other.fMaxStrips),
    fTotal(fMaxDetectors * fMaxRings * fMaxSectors * fMaxStrips),
    fData(0)
{
  // Copy constructor
  if (fTotal == 0) fTotal = 51200;
  fData  = new Bool_t[fTotal];
  for (Int_t i = 0; i < fTotal; i++) fData[i] = other.fData[i];
}

//__________________________________________________________
AliFMDBoolMap::AliFMDBoolMap()
  : AliFMDMap(),
    fTotal(0),
    fData(0)
{
  // Constructor.
  // Parameters:
  //   None
}

//__________________________________________________________
AliFMDBoolMap::AliFMDBoolMap(UShort_t maxDet,
			     UShort_t maxRing,
			     UShort_t maxSec,
			     UShort_t maxStr)
  : AliFMDMap(maxDet, maxRing, maxSec, maxStr),
    fTotal(fMaxDetectors * fMaxRings * fMaxSectors * fMaxStrips),
    fData(0)
{
  // Constructor.
  // Parameters:
  //	maxDet	Maximum number of detectors
  //	maxRing	Maximum number of rings per detector
  //	maxSec	Maximum number of sectors per ring
  //	maxStr	Maximum number of strips per sector
  if (fTotal == 0) fTotal = 51200;
  fData  = new Bool_t[fTotal];
  Reset();
}

//__________________________________________________________
AliFMDBoolMap&
AliFMDBoolMap::operator=(const AliFMDBoolMap& other)
{
  // Assignment operator 
  if (&other == this) return *this; 
  fMaxDetectors = other.fMaxDetectors;
  fMaxRings     = other.fMaxRings;
  fMaxSectors   = other.fMaxSectors;
  fMaxStrips    = other.fMaxStrips;
  if (fData) delete [] fData;
  fTotal = fMaxDetectors * fMaxRings * fMaxSectors * fMaxStrips;
  if (fTotal == 0) fTotal = 51200;
  fData  = new Bool_t[fTotal];
  for (Int_t i = 0; i < fTotal; i++) fData[i] = other.fData[i];
  return *this;
}

//__________________________________________________________
void
AliFMDBoolMap::Reset(const Bool_t& val)
{
  // Reset map to val
  for (Int_t i = 0; i < fTotal; i++) fData[i] = val;
}

//__________________________________________________________
Bool_t&
AliFMDBoolMap::operator()(UShort_t det, 
			  Char_t   ring, 
			  UShort_t sec, 
			  UShort_t str)
{
  // Get data
  // Parameters:
  //	det	Detector #
  //	ring	Ring ID
  //	sec	Sector #
  //	str	Strip #
  // Returns appropriate data
  return fData[CalcIndex(det, ring, sec, str)];
}

//__________________________________________________________
const Bool_t&
AliFMDBoolMap::operator()(UShort_t det, 
			  Char_t   ring, 
			  UShort_t sec, 
			  UShort_t str) const
{
  // Get data
  // Parameters:
  //	det	Detector #
  //	ring	Ring ID
  //	sec	Sector #
  //	str	Strip #
  // Returns appropriate data
  return fData[CalcIndex(det, ring, sec, str)];
}

//__________________________________________________________
// 
// EOF
// 

 AliFMDBoolMap.cxx:1
 AliFMDBoolMap.cxx:2
 AliFMDBoolMap.cxx:3
 AliFMDBoolMap.cxx:4
 AliFMDBoolMap.cxx:5
 AliFMDBoolMap.cxx:6
 AliFMDBoolMap.cxx:7
 AliFMDBoolMap.cxx:8
 AliFMDBoolMap.cxx:9
 AliFMDBoolMap.cxx:10
 AliFMDBoolMap.cxx:11
 AliFMDBoolMap.cxx:12
 AliFMDBoolMap.cxx:13
 AliFMDBoolMap.cxx:14
 AliFMDBoolMap.cxx:15
 AliFMDBoolMap.cxx:16
 AliFMDBoolMap.cxx:17
 AliFMDBoolMap.cxx:18
 AliFMDBoolMap.cxx:19
 AliFMDBoolMap.cxx:20
 AliFMDBoolMap.cxx:21
 AliFMDBoolMap.cxx:22
 AliFMDBoolMap.cxx:23
 AliFMDBoolMap.cxx:24
 AliFMDBoolMap.cxx:25
 AliFMDBoolMap.cxx:26
 AliFMDBoolMap.cxx:27
 AliFMDBoolMap.cxx:28
 AliFMDBoolMap.cxx:29
 AliFMDBoolMap.cxx:30
 AliFMDBoolMap.cxx:31
 AliFMDBoolMap.cxx:32
 AliFMDBoolMap.cxx:33
 AliFMDBoolMap.cxx:34
 AliFMDBoolMap.cxx:35
 AliFMDBoolMap.cxx:36
 AliFMDBoolMap.cxx:37
 AliFMDBoolMap.cxx:38
 AliFMDBoolMap.cxx:39
 AliFMDBoolMap.cxx:40
 AliFMDBoolMap.cxx:41
 AliFMDBoolMap.cxx:42
 AliFMDBoolMap.cxx:43
 AliFMDBoolMap.cxx:44
 AliFMDBoolMap.cxx:45
 AliFMDBoolMap.cxx:46
 AliFMDBoolMap.cxx:47
 AliFMDBoolMap.cxx:48
 AliFMDBoolMap.cxx:49
 AliFMDBoolMap.cxx:50
 AliFMDBoolMap.cxx:51
 AliFMDBoolMap.cxx:52
 AliFMDBoolMap.cxx:53
 AliFMDBoolMap.cxx:54
 AliFMDBoolMap.cxx:55
 AliFMDBoolMap.cxx:56
 AliFMDBoolMap.cxx:57
 AliFMDBoolMap.cxx:58
 AliFMDBoolMap.cxx:59
 AliFMDBoolMap.cxx:60
 AliFMDBoolMap.cxx:61
 AliFMDBoolMap.cxx:62
 AliFMDBoolMap.cxx:63
 AliFMDBoolMap.cxx:64
 AliFMDBoolMap.cxx:65
 AliFMDBoolMap.cxx:66
 AliFMDBoolMap.cxx:67
 AliFMDBoolMap.cxx:68
 AliFMDBoolMap.cxx:69
 AliFMDBoolMap.cxx:70
 AliFMDBoolMap.cxx:71
 AliFMDBoolMap.cxx:72
 AliFMDBoolMap.cxx:73
 AliFMDBoolMap.cxx:74
 AliFMDBoolMap.cxx:75
 AliFMDBoolMap.cxx:76
 AliFMDBoolMap.cxx:77
 AliFMDBoolMap.cxx:78
 AliFMDBoolMap.cxx:79
 AliFMDBoolMap.cxx:80
 AliFMDBoolMap.cxx:81
 AliFMDBoolMap.cxx:82
 AliFMDBoolMap.cxx:83
 AliFMDBoolMap.cxx:84
 AliFMDBoolMap.cxx:85
 AliFMDBoolMap.cxx:86
 AliFMDBoolMap.cxx:87
 AliFMDBoolMap.cxx:88
 AliFMDBoolMap.cxx:89
 AliFMDBoolMap.cxx:90
 AliFMDBoolMap.cxx:91
 AliFMDBoolMap.cxx:92
 AliFMDBoolMap.cxx:93
 AliFMDBoolMap.cxx:94
 AliFMDBoolMap.cxx:95
 AliFMDBoolMap.cxx:96
 AliFMDBoolMap.cxx:97
 AliFMDBoolMap.cxx:98
 AliFMDBoolMap.cxx:99
 AliFMDBoolMap.cxx:100
 AliFMDBoolMap.cxx:101
 AliFMDBoolMap.cxx:102
 AliFMDBoolMap.cxx:103
 AliFMDBoolMap.cxx:104
 AliFMDBoolMap.cxx:105
 AliFMDBoolMap.cxx:106
 AliFMDBoolMap.cxx:107
 AliFMDBoolMap.cxx:108
 AliFMDBoolMap.cxx:109
 AliFMDBoolMap.cxx:110
 AliFMDBoolMap.cxx:111
 AliFMDBoolMap.cxx:112
 AliFMDBoolMap.cxx:113
 AliFMDBoolMap.cxx:114
 AliFMDBoolMap.cxx:115
 AliFMDBoolMap.cxx:116
 AliFMDBoolMap.cxx:117
 AliFMDBoolMap.cxx:118
 AliFMDBoolMap.cxx:119
 AliFMDBoolMap.cxx:120
 AliFMDBoolMap.cxx:121
 AliFMDBoolMap.cxx:122
 AliFMDBoolMap.cxx:123
 AliFMDBoolMap.cxx:124
 AliFMDBoolMap.cxx:125
 AliFMDBoolMap.cxx:126
 AliFMDBoolMap.cxx:127
 AliFMDBoolMap.cxx:128
 AliFMDBoolMap.cxx:129
 AliFMDBoolMap.cxx:130
 AliFMDBoolMap.cxx:131
 AliFMDBoolMap.cxx:132
 AliFMDBoolMap.cxx:133
 AliFMDBoolMap.cxx:134
 AliFMDBoolMap.cxx:135
 AliFMDBoolMap.cxx:136
 AliFMDBoolMap.cxx:137
 AliFMDBoolMap.cxx:138
 AliFMDBoolMap.cxx:139
 AliFMDBoolMap.cxx:140
 AliFMDBoolMap.cxx:141
 AliFMDBoolMap.cxx:142
 AliFMDBoolMap.cxx:143
 AliFMDBoolMap.cxx:144
 AliFMDBoolMap.cxx:145
 AliFMDBoolMap.cxx:146
 AliFMDBoolMap.cxx:147