LCOV - code coverage report
Current view: top level - PHOS/PHOSbase - AliPHOSCpvCalibData.cxx (source / functions) Hit Total Coverage
Test: coverage.info Lines: 11 66 16.7 %
Date: 2016-06-14 17:26:59 Functions: 4 17 23.5 %

          Line data    Source code
       1             : /**************************************************************************
       2             :  * Copyright(c) 1998-2015, 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             : 
      17             : ///////////////////////////////////////////////////////////////////////////////
      18             : //                                                                           //
      19             : // class for CPV calibration.                                                //
      20             : // Author: Boris Polichtchouk (Boris.Polichtchouk@cern.ch).                  //
      21             : // Updated: Sergey Evdokimov on 28 Mar 2015
      22             : //                                                                           //
      23             : ///////////////////////////////////////////////////////////////////////////////
      24             : 
      25             : #include "AliPHOSCpvCalibData.h"
      26             : 
      27          22 : ClassImp(AliPHOSCpvCalibData)
      28             : 
      29             : //________________________________________________________________
      30           3 :   AliPHOSCpvCalibData::AliPHOSCpvCalibData() : TNamed()
      31          15 : {
      32             :   // Default constructor
      33           3 :   Reset();
      34           6 : }
      35             : 
      36             : //________________________________________________________________
      37           0 : AliPHOSCpvCalibData::AliPHOSCpvCalibData(const char* name)
      38           0 : {
      39             :   // Constructor
      40           0 :   TString namst = "CalibCPV_";
      41           0 :   namst += name;
      42           0 :   SetName(namst.Data());
      43           0 :   SetTitle(namst.Data());
      44           0 :   Reset();
      45           0 : }
      46             : 
      47             : //________________________________________________________________
      48             : AliPHOSCpvCalibData::AliPHOSCpvCalibData(const AliPHOSCpvCalibData& calibda) :
      49           0 :   TNamed(calibda)
      50           0 : {
      51             :   // copy constructor
      52           0 :   SetName(calibda.GetName());
      53           0 :   SetTitle(calibda.GetName());
      54           0 :   Reset();
      55           0 :   for(Int_t module=0; module<AliPHOSCpvParam::kNDDL; module++) {
      56           0 :     for(Int_t column=0; column<AliPHOSCpvParam::kPadPcX; column++) {
      57           0 :       for(Int_t row=0; row<AliPHOSCpvParam::kPadPcY; row++) {
      58           0 :         fADCchannelCpv[module][column][row] = calibda.GetADCchannelCpv(module,column,row);
      59           0 :         fADCpedestalCpv[module][column][row] = calibda.GetADCpedestalCpv(module,column,row);
      60             :       }
      61             :     }
      62             :   }
      63           0 : }
      64             : 
      65             : //________________________________________________________________
      66             : AliPHOSCpvCalibData &AliPHOSCpvCalibData::operator =(const AliPHOSCpvCalibData& calibda)
      67             : {
      68             :   // assignment operator
      69           0 :   SetName(calibda.GetName());
      70           0 :   SetTitle(calibda.GetName());
      71           0 :   Reset();
      72           0 :   for(Int_t module=0; module<AliPHOSCpvParam::kNDDL; module++) {
      73           0 :     for(Int_t column=0; column<AliPHOSCpvParam::kPadPcX; column++) {
      74           0 :       for(Int_t row=0; row<AliPHOSCpvParam::kPadPcY; row++) {
      75           0 :         fADCchannelCpv[module][column][row] = calibda.GetADCchannelCpv(module,column,row);
      76           0 :         fADCpedestalCpv[module][column][row] = calibda.GetADCpedestalCpv(module,column,row);
      77             :       }
      78             :     }
      79             :   }
      80           0 :   return *this;
      81             : }
      82             : 
      83             : //________________________________________________________________
      84             : AliPHOSCpvCalibData::~AliPHOSCpvCalibData()
      85           0 : {
      86             :   // Destructor
      87           0 : }
      88             : 
      89             : //________________________________________________________________
      90             : void AliPHOSCpvCalibData::Reset()
      91             : {
      92             :   // Set all pedestals and all ADC channels to its dummy values.
      93          39 :   for(Int_t module=0; module<AliPHOSCpvParam::kNDDL; module++) {
      94        3870 :     for(Int_t column=0; column<AliPHOSCpvParam::kPadPcX; column++) {
      95      234240 :       for(Int_t row=0; row<AliPHOSCpvParam::kPadPcY; row++) {
      96      115200 :         fADCpedestalCpv[module][column][row] = 0;
      97      115200 :         fADCchannelCpv[module][column][row] = 1;
      98             :       }
      99             :     }
     100             :   }
     101             : 
     102           3 : }
     103             : 
     104             : //________________________________________________________________
     105             : void  AliPHOSCpvCalibData::Print(Option_t *option) const
     106             : {
     107             :   // Print tables of pedestals and ADC channels
     108             : 
     109           0 :   if (strstr(option,"ped")) {
     110           0 :     printf("\n     ----    Pedestal values ----\n\n");
     111           0 :     for (Int_t module=0; module<AliPHOSCpvParam::kNDDL; module++){
     112           0 :       printf("============== Module %d\n",module+1);
     113           0 :       for (Int_t column=0; column<AliPHOSCpvParam::kPadPcX; column++){
     114           0 :         for (Int_t row=0; row<AliPHOSCpvParam::kPadPcY; row++){
     115           0 :           printf("%4.1f",fADCpedestalCpv[module][column][row]);
     116             :         }
     117           0 :         printf("\n");
     118             :       }
     119             :     }
     120           0 :   }
     121             : 
     122           0 :   if (strstr(option,"gain")) {
     123           0 :     printf("\n     ----    ADC channel values      ----\n\n");
     124           0 :     for (Int_t module=0; module<AliPHOSCpvParam::kNDDL; module++){
     125           0 :       printf("============== Module %d\n",module+1);
     126           0 :       for (Int_t column=0; column<AliPHOSCpvParam::kPadPcX; column++){
     127           0 :         for (Int_t row=0; row<AliPHOSCpvParam::kPadPcY; row++){
     128           0 :           printf("%4.1f",fADCchannelCpv[module][column][row]);
     129             :         }
     130           0 :         printf("\n");
     131             :       }
     132             :     }
     133           0 :   }
     134           0 : }
     135             : 
     136             : //________________________________________________________________
     137             : Float_t AliPHOSCpvCalibData::GetADCchannelCpv(Int_t module, Int_t column, Int_t row) const
     138             : {
     139             :   //Return CPV calibration coefficient
     140             :   //module, column,raw should follow the internal PHOS convention:
     141             :   //module 1:5, column 1:56, row 1:128.
     142             : 
     143           0 :   return fADCchannelCpv[module-1][column-1][row-1];
     144             : }
     145             : 
     146             : //________________________________________________________________
     147             : Float_t AliPHOSCpvCalibData::GetADCpedestalCpv(Int_t module, Int_t column, Int_t row) const
     148             : {
     149             :   //Return CPV pedestal
     150             :   //module, column,raw should follow the internal PHOS convention:
     151             :   //module 1:5, column 1:56, row 1:128.
     152           0 :   return fADCpedestalCpv[module-1][column-1][row-1];
     153             : }
     154             : 
     155             : //________________________________________________________________
     156             : void AliPHOSCpvCalibData::SetADCchannelCpv(Int_t module, Int_t column, Int_t row, Float_t value)
     157             : {
     158             :   //Set CPV calibration coefficient
     159             :   //module, column,raw should follow the internal PHOS convention:
     160             :   //module 1:5, column 1:56, row 1:128.
     161           0 :   fADCchannelCpv[module-1][column-1][row-1] = value;
     162           0 : }
     163             : 
     164             : //________________________________________________________________
     165             : void AliPHOSCpvCalibData::SetADCpedestalCpv(Int_t module, Int_t column, Int_t row, Float_t value)
     166             : {
     167             :   //Set CPV pedestal
     168             :   //module, column,raw should follow the internal PHOS convention:
     169             :   //module 1:5, column 1:56, row 1:128.
     170           0 :   fADCpedestalCpv[module-1][column-1][row-1] = value;
     171           0 : }

Generated by: LCOV version 1.11