LCOV - code coverage report
Current view: top level - FMD/FMDbase - AliFMDUShortMap.cxx (source / functions) Hit Total Coverage
Test: coverage.info Lines: 17 37 45.9 %
Date: 2016-06-14 17:26:59 Functions: 8 11 72.7 %

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

Generated by: LCOV version 1.11