LCOV - code coverage report
Current view: top level - ITS/ITSbase - AliITSChannelDaSSD.cxx (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 97 1.0 %
Date: 2016-06-14 17:26:59 Functions: 1 15 6.7 %

          Line data    Source code
       1             : /**************************************************************************
       2             :  * Copyright(c) 2007-2009, 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             : 
      16             : /* $Id$  */
      17             : 
      18             : ///////////////////////////////////////////////////////////////////////////////
      19             : ///
      20             : /// This class provides storage container ITS SSD channel callibration data
      21             : /// used by DA. 
      22             : ///
      23             : ///////////////////////////////////////////////////////////////////////////////
      24             : 
      25             : 
      26             : #include <Riostream.h>
      27             : #include "AliITSChannelDaSSD.h"
      28             : #include "TString.h"
      29             : #include "AliLog.h"
      30             : 
      31         118 : ClassImp(AliITSChannelDaSSD)
      32             : 
      33             : using namespace std;
      34             : 
      35             : const Short_t AliITSChannelDaSSD::fgkMinStripId = 0;               // minimum strip id
      36             : const Short_t AliITSChannelDaSSD::fgkMaxStripId = 1535;            // maximum strip id
      37             : 
      38             : const Short_t  AliITSChannelDaSSD::fgkSignalOverflow  =  2047;      // ADC overflow value
      39             : const Short_t  AliITSChannelDaSSD::fgkSignalUnderflow = -2048;      // ADC underflow value
      40             : const UShort_t AliITSChannelDaSSD::fgkDefaultSignal   =  0x7F;      // initialization value for fNoise, fPedestal, fSignal[i]
      41             : const Float_t  AliITSChannelDaSSD::fgkUndefinedValue  =  32639.0f;  // = 0x7F7F
      42             : 
      43             : 
      44             : //______________________________________________________________________________
      45           0 : AliITSChannelDaSSD::AliITSChannelDaSSD() :
      46           0 :   fStripId(0),
      47           0 :   fEventsNumber(0),
      48           0 :   fSignal(NULL),
      49           0 :   fPedestal(fgkUndefinedValue),
      50           0 :   fNoise(fgkUndefinedValue),
      51           0 :   fNoiseCM(fgkUndefinedValue),
      52           0 :   fNOverflowEv(0)
      53           0 : {
      54             : // Default costructor
      55           0 : }
      56             : 
      57             : 
      58             : //______________________________________________________________________________
      59           0 : AliITSChannelDaSSD::AliITSChannelDaSSD(const UShort_t stripID) :
      60           0 :   fStripId(stripID),
      61           0 :   fEventsNumber(0),
      62           0 :   fSignal(NULL),
      63           0 :   fPedestal(fgkUndefinedValue),
      64           0 :   fNoise(fgkUndefinedValue),
      65           0 :   fNoiseCM(fgkUndefinedValue),
      66           0 :   fNOverflowEv(0)
      67           0 : {
      68             : // Costructor, initialize channal id
      69           0 : }
      70             : 
      71             : 
      72             : //______________________________________________________________________________
      73           0 : AliITSChannelDaSSD::AliITSChannelDaSSD(const UShort_t stripID, const Long_t eventsnumber) :
      74           0 :   fStripId(stripID),
      75           0 :   fEventsNumber(0),
      76           0 :   fSignal(NULL),
      77           0 :   fPedestal(fgkUndefinedValue),
      78           0 :   fNoise(fgkUndefinedValue),
      79           0 :   fNoiseCM(fgkUndefinedValue),
      80           0 :   fNOverflowEv(0)
      81           0 : {
      82             : // Costructor, initialize channal id and allocate array for events data
      83           0 :   if (stripID > fgkMaxStripId)
      84           0 :     AliWarning(Form("AliITSChannelDaSSD: Wrong StripID: %i", stripID));
      85           0 :   fSignal = new (nothrow) Short_t[eventsnumber];
      86           0 :   if (fSignal) {
      87           0 :     fEventsNumber = eventsnumber;
      88           0 :     memset(fSignal, fgkDefaultSignal, (eventsnumber * sizeof(Short_t)));
      89           0 :   } else {
      90           0 :     AliError(Form("AliITSChannelDaSSD: Error allocating memory for %ld Short_t objects!", eventsnumber));
      91           0 :     fSignal = NULL;
      92           0 :     fEventsNumber = 0;
      93             :   }
      94           0 : }
      95             : 
      96             : 
      97             : 
      98             : //______________________________________________________________________________
      99             : AliITSChannelDaSSD::AliITSChannelDaSSD(const AliITSChannelDaSSD& strip) :
     100           0 :   TObject(strip),
     101           0 :   fStripId(strip.fStripId),
     102           0 :   fEventsNumber(strip.fEventsNumber),
     103           0 :   fSignal(NULL),
     104           0 :   fPedestal(strip.fPedestal),
     105           0 :   fNoise(strip.fNoise),
     106           0 :   fNoiseCM(strip.fNoiseCM),
     107           0 :   fNOverflowEv(strip.fNOverflowEv)
     108           0 : {
     109             :   // copy constructor
     110           0 :   if ((strip.fEventsNumber > 0) && (strip.fSignal)) {
     111           0 :     fSignal = new (nothrow) Short_t[strip.fEventsNumber];
     112           0 :     if (fSignal) {
     113           0 :       memcpy(fSignal, strip.fSignal, (strip.fEventsNumber * sizeof(Short_t)));
     114           0 :     } else {
     115           0 :       AliError(Form("AliITSChannelDaSSD: Error allocating memory for %ld Short_t objects!", strip.fEventsNumber));
     116           0 :       fSignal = NULL;
     117           0 :       fEventsNumber = 0;
     118             :     }
     119             :   }  
     120           0 : }
     121             : 
     122             : 
     123             : 
     124             : //______________________________________________________________________________
     125             : AliITSChannelDaSSD& AliITSChannelDaSSD::operator = (const AliITSChannelDaSSD& strip)
     126             : {
     127             : // assignment operator
     128           0 :   if (this == &strip)  return *this;
     129           0 :   TObject::operator=(strip);  
     130           0 :   if (fSignal) { delete [] fSignal; fSignal = NULL; }
     131           0 :   fStripId = strip.fStripId;
     132           0 :   fEventsNumber = strip.fEventsNumber;
     133           0 :   fPedestal = strip.fPedestal;
     134           0 :   fNoise = strip.fNoise;
     135           0 :   fNoiseCM = strip.fNoiseCM;
     136           0 :   fNOverflowEv = strip.fNOverflowEv;
     137           0 :   if ((strip.fEventsNumber > 0) && (strip.fSignal)) fSignal = new (nothrow) Short_t[strip.fEventsNumber];
     138           0 :   else return *this;
     139           0 :   if (fSignal) {
     140           0 :     memcpy(fSignal, strip.fSignal, (strip.fEventsNumber * sizeof(Short_t)));
     141           0 :   } else {
     142           0 :     AliError(Form("AliITSChannelDaSSD: Error allocating memory for %ld Short_t objects!", strip.fEventsNumber));
     143           0 :     fSignal = NULL;
     144           0 :     fEventsNumber = 0;
     145             :   }
     146           0 :   return *this;
     147           0 : }
     148             : 
     149             : 
     150             : //______________________________________________________________________________
     151             : AliITSChannelDaSSD::~AliITSChannelDaSSD()
     152           0 : {
     153             : // Destructor
     154           0 :   if (fSignal) delete [] fSignal;
     155           0 : }
     156             : 
     157             : 
     158             : //______________________________________________________________________________
     159             : Bool_t AliITSChannelDaSSD::SetEvenetsNumber(const Long_t eventsnumber)
     160             : {
     161             : // Allocate array for events data
     162           0 :   if (fSignal) {delete [] fSignal; fSignal = NULL; }
     163           0 :   fSignal = new (nothrow) Short_t[eventsnumber];
     164           0 :   if (fSignal) {
     165           0 :     fEventsNumber = eventsnumber;
     166           0 :     memset(fSignal, fgkDefaultSignal, (eventsnumber * sizeof(Short_t)));
     167           0 :     return kTRUE;
     168             :   } else {
     169           0 :     AliError(Form("AliITSChannelDaSSD: Error allocating memory for %ld Short_t objects!", eventsnumber));
     170           0 :     fSignal = NULL;
     171           0 :     fEventsNumber = 0;
     172           0 :     return kFALSE;
     173             :   }
     174           0 : }
     175             : 
     176             : 
     177             : //______________________________________________________________________________
     178             : Bool_t AliITSChannelDaSSD::SetSignal(const Long_t eventnumber, const Short_t signal)
     179             : {
     180             : // put signal value to array 
     181           0 :   if (eventnumber < fEventsNumber && fSignal)
     182             :   {
     183           0 :      fSignal[eventnumber] = signal;
     184           0 :      return kTRUE;
     185             :   }
     186           0 :   return kFALSE;
     187           0 : }

Generated by: LCOV version 1.11