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.                  *
 **************************************************************************/


///////////////////////////////////////////////////////////////////////////////
//                                                                           //
// class for CPV calibration.                                                //
// Author: Boris Polichtchouk (Boris.Polichtchouk@cern.ch).                  //
//                                                                           //
///////////////////////////////////////////////////////////////////////////////

#include "AliPHOSCpvCalibData.h"

ClassImp(AliPHOSCpvCalibData)

//________________________________________________________________
  AliPHOSCpvCalibData::AliPHOSCpvCalibData() : TNamed()
{
  // Default constructor
  Reset();
}

//________________________________________________________________
AliPHOSCpvCalibData::AliPHOSCpvCalibData(const char* name)
{
  // Constructor
  TString namst = "CalibCPV_";
  namst += name;
  SetName(namst.Data());
  SetTitle(namst.Data());
  Reset();
}

//________________________________________________________________
AliPHOSCpvCalibData::AliPHOSCpvCalibData(const AliPHOSCpvCalibData& calibda) :
  TNamed(calibda)
{
  // copy constructor
  SetName(calibda.GetName());
  SetTitle(calibda.GetName());
  Reset();
  for(Int_t module=0; module<5; module++) {
    for(Int_t column=0; column<56; column++) {
      for(Int_t row=0; row<128; row++) {
	fADCchannelCpv[module][column][row] = calibda.GetADCchannelCpv(module,column,row);
	fADCpedestalCpv[module][column][row] = calibda.GetADCpedestalCpv(module,column,row);
      }
    }
  }
}

//________________________________________________________________
AliPHOSCpvCalibData &AliPHOSCpvCalibData::operator =(const AliPHOSCpvCalibData& calibda)
{
  // assignment operator
  SetName(calibda.GetName());
  SetTitle(calibda.GetName());
  Reset();
  for(Int_t module=0; module<5; module++) {
    for(Int_t column=0; column<56; column++) {
      for(Int_t row=0; row<128; row++) {
	fADCchannelCpv[module][column][row] = calibda.GetADCchannelCpv(module,column,row);
	fADCpedestalCpv[module][column][row] = calibda.GetADCpedestalCpv(module,column,row);
      }
    }
  }
  return *this;
}

//________________________________________________________________
AliPHOSCpvCalibData::~AliPHOSCpvCalibData()
{
  // Destructor
}

//________________________________________________________________
void AliPHOSCpvCalibData::Reset()
{
  // Set all pedestals and all ADC channels to its default (ideal) values.

  for (Int_t module=0; module<5; module++){
    for (Int_t column=0; column<56; column++){
      for (Int_t row=0; row<128; row++){
	fADCpedestalCpv[module][column][row] = 0.012;
	fADCchannelCpv[module][column][row] = 0.0012;
      }
    }
  }

}

//________________________________________________________________
void  AliPHOSCpvCalibData::Print(Option_t *option) const
{
  // Print tables of pedestals and ADC channels

  if (strstr(option,"ped")) {
    printf("\n	----	Pedestal values	----\n\n");
    for (Int_t module=0; module<5; module++){
      printf("============== Module %d\n",module+1);
      for (Int_t column=0; column<56; column++){
	for (Int_t row=0; row<128; row++){
	  printf("%4.1f",fADCpedestalCpv[module][column][row]);
	}
	printf("\n");
      }
    }
  }

  if (strstr(option,"gain")) {
    printf("\n	----	ADC channel values	----\n\n");
    for (Int_t module=0; module<5; module++){
      printf("============== Module %d\n",module+1);
      for (Int_t column=0; column<56; column++){
	for (Int_t row=0; row<128; row++){
	  printf("%4.1f",fADCchannelCpv[module][column][row]);
	}
	printf("\n");
      }
    }
  }
}

//________________________________________________________________
Float_t AliPHOSCpvCalibData::GetADCchannelCpv(Int_t module, Int_t column, Int_t row) const
{
  //Return CPV calibration coefficient
  //module, column,raw should follow the internal PHOS convention:
  //module 1:5, column 1:56, row 1:128.

  return fADCchannelCpv[module-1][column-1][row-1];
}

//________________________________________________________________
Float_t AliPHOSCpvCalibData::GetADCpedestalCpv(Int_t module, Int_t column, Int_t row) const
{
  //Return CPV pedestal
  //module, column,raw should follow the internal PHOS convention:
  //module 1:5, column 1:56, row 1:128.
  return fADCpedestalCpv[module-1][column-1][row-1];
}

//________________________________________________________________
void AliPHOSCpvCalibData::SetADCchannelCpv(Int_t module, Int_t column, Int_t row, Float_t value)
{
  //Set CPV calibration coefficient
  //module, column,raw should follow the internal PHOS convention:
  //module 1:5, column 1:56, row 1:128.
  fADCchannelCpv[module-1][column-1][row-1] = value;
}

//________________________________________________________________
void AliPHOSCpvCalibData::SetADCpedestalCpv(Int_t module, Int_t column, Int_t row, Float_t value)
{
  //Set CPV pedestal
  //module, column,raw should follow the internal PHOS convention:
  //module 1:5, column 1:56, row 1:128.
  fADCpedestalCpv[module-1][column-1][row-1] = value;
}
 AliPHOSCpvCalibData.cxx:1
 AliPHOSCpvCalibData.cxx:2
 AliPHOSCpvCalibData.cxx:3
 AliPHOSCpvCalibData.cxx:4
 AliPHOSCpvCalibData.cxx:5
 AliPHOSCpvCalibData.cxx:6
 AliPHOSCpvCalibData.cxx:7
 AliPHOSCpvCalibData.cxx:8
 AliPHOSCpvCalibData.cxx:9
 AliPHOSCpvCalibData.cxx:10
 AliPHOSCpvCalibData.cxx:11
 AliPHOSCpvCalibData.cxx:12
 AliPHOSCpvCalibData.cxx:13
 AliPHOSCpvCalibData.cxx:14
 AliPHOSCpvCalibData.cxx:15
 AliPHOSCpvCalibData.cxx:16
 AliPHOSCpvCalibData.cxx:17
 AliPHOSCpvCalibData.cxx:18
 AliPHOSCpvCalibData.cxx:19
 AliPHOSCpvCalibData.cxx:20
 AliPHOSCpvCalibData.cxx:21
 AliPHOSCpvCalibData.cxx:22
 AliPHOSCpvCalibData.cxx:23
 AliPHOSCpvCalibData.cxx:24
 AliPHOSCpvCalibData.cxx:25
 AliPHOSCpvCalibData.cxx:26
 AliPHOSCpvCalibData.cxx:27
 AliPHOSCpvCalibData.cxx:28
 AliPHOSCpvCalibData.cxx:29
 AliPHOSCpvCalibData.cxx:30
 AliPHOSCpvCalibData.cxx:31
 AliPHOSCpvCalibData.cxx:32
 AliPHOSCpvCalibData.cxx:33
 AliPHOSCpvCalibData.cxx:34
 AliPHOSCpvCalibData.cxx:35
 AliPHOSCpvCalibData.cxx:36
 AliPHOSCpvCalibData.cxx:37
 AliPHOSCpvCalibData.cxx:38
 AliPHOSCpvCalibData.cxx:39
 AliPHOSCpvCalibData.cxx:40
 AliPHOSCpvCalibData.cxx:41
 AliPHOSCpvCalibData.cxx:42
 AliPHOSCpvCalibData.cxx:43
 AliPHOSCpvCalibData.cxx:44
 AliPHOSCpvCalibData.cxx:45
 AliPHOSCpvCalibData.cxx:46
 AliPHOSCpvCalibData.cxx:47
 AliPHOSCpvCalibData.cxx:48
 AliPHOSCpvCalibData.cxx:49
 AliPHOSCpvCalibData.cxx:50
 AliPHOSCpvCalibData.cxx:51
 AliPHOSCpvCalibData.cxx:52
 AliPHOSCpvCalibData.cxx:53
 AliPHOSCpvCalibData.cxx:54
 AliPHOSCpvCalibData.cxx:55
 AliPHOSCpvCalibData.cxx:56
 AliPHOSCpvCalibData.cxx:57
 AliPHOSCpvCalibData.cxx:58
 AliPHOSCpvCalibData.cxx:59
 AliPHOSCpvCalibData.cxx:60
 AliPHOSCpvCalibData.cxx:61
 AliPHOSCpvCalibData.cxx:62
 AliPHOSCpvCalibData.cxx:63
 AliPHOSCpvCalibData.cxx:64
 AliPHOSCpvCalibData.cxx:65
 AliPHOSCpvCalibData.cxx:66
 AliPHOSCpvCalibData.cxx:67
 AliPHOSCpvCalibData.cxx:68
 AliPHOSCpvCalibData.cxx:69
 AliPHOSCpvCalibData.cxx:70
 AliPHOSCpvCalibData.cxx:71
 AliPHOSCpvCalibData.cxx:72
 AliPHOSCpvCalibData.cxx:73
 AliPHOSCpvCalibData.cxx:74
 AliPHOSCpvCalibData.cxx:75
 AliPHOSCpvCalibData.cxx:76
 AliPHOSCpvCalibData.cxx:77
 AliPHOSCpvCalibData.cxx:78
 AliPHOSCpvCalibData.cxx:79
 AliPHOSCpvCalibData.cxx:80
 AliPHOSCpvCalibData.cxx:81
 AliPHOSCpvCalibData.cxx:82
 AliPHOSCpvCalibData.cxx:83
 AliPHOSCpvCalibData.cxx:84
 AliPHOSCpvCalibData.cxx:85
 AliPHOSCpvCalibData.cxx:86
 AliPHOSCpvCalibData.cxx:87
 AliPHOSCpvCalibData.cxx:88
 AliPHOSCpvCalibData.cxx:89
 AliPHOSCpvCalibData.cxx:90
 AliPHOSCpvCalibData.cxx:91
 AliPHOSCpvCalibData.cxx:92
 AliPHOSCpvCalibData.cxx:93
 AliPHOSCpvCalibData.cxx:94
 AliPHOSCpvCalibData.cxx:95
 AliPHOSCpvCalibData.cxx:96
 AliPHOSCpvCalibData.cxx:97
 AliPHOSCpvCalibData.cxx:98
 AliPHOSCpvCalibData.cxx:99
 AliPHOSCpvCalibData.cxx:100
 AliPHOSCpvCalibData.cxx:101
 AliPHOSCpvCalibData.cxx:102
 AliPHOSCpvCalibData.cxx:103
 AliPHOSCpvCalibData.cxx:104
 AliPHOSCpvCalibData.cxx:105
 AliPHOSCpvCalibData.cxx:106
 AliPHOSCpvCalibData.cxx:107
 AliPHOSCpvCalibData.cxx:108
 AliPHOSCpvCalibData.cxx:109
 AliPHOSCpvCalibData.cxx:110
 AliPHOSCpvCalibData.cxx:111
 AliPHOSCpvCalibData.cxx:112
 AliPHOSCpvCalibData.cxx:113
 AliPHOSCpvCalibData.cxx:114
 AliPHOSCpvCalibData.cxx:115
 AliPHOSCpvCalibData.cxx:116
 AliPHOSCpvCalibData.cxx:117
 AliPHOSCpvCalibData.cxx:118
 AliPHOSCpvCalibData.cxx:119
 AliPHOSCpvCalibData.cxx:120
 AliPHOSCpvCalibData.cxx:121
 AliPHOSCpvCalibData.cxx:122
 AliPHOSCpvCalibData.cxx:123
 AliPHOSCpvCalibData.cxx:124
 AliPHOSCpvCalibData.cxx:125
 AliPHOSCpvCalibData.cxx:126
 AliPHOSCpvCalibData.cxx:127
 AliPHOSCpvCalibData.cxx:128
 AliPHOSCpvCalibData.cxx:129
 AliPHOSCpvCalibData.cxx:130
 AliPHOSCpvCalibData.cxx:131
 AliPHOSCpvCalibData.cxx:132
 AliPHOSCpvCalibData.cxx:133
 AliPHOSCpvCalibData.cxx:134
 AliPHOSCpvCalibData.cxx:135
 AliPHOSCpvCalibData.cxx:136
 AliPHOSCpvCalibData.cxx:137
 AliPHOSCpvCalibData.cxx:138
 AliPHOSCpvCalibData.cxx:139
 AliPHOSCpvCalibData.cxx:140
 AliPHOSCpvCalibData.cxx:141
 AliPHOSCpvCalibData.cxx:142
 AliPHOSCpvCalibData.cxx:143
 AliPHOSCpvCalibData.cxx:144
 AliPHOSCpvCalibData.cxx:145
 AliPHOSCpvCalibData.cxx:146
 AliPHOSCpvCalibData.cxx:147
 AliPHOSCpvCalibData.cxx:148
 AliPHOSCpvCalibData.cxx:149
 AliPHOSCpvCalibData.cxx:150
 AliPHOSCpvCalibData.cxx:151
 AliPHOSCpvCalibData.cxx:152
 AliPHOSCpvCalibData.cxx:153
 AliPHOSCpvCalibData.cxx:154
 AliPHOSCpvCalibData.cxx:155
 AliPHOSCpvCalibData.cxx:156
 AliPHOSCpvCalibData.cxx:157
 AliPHOSCpvCalibData.cxx:158
 AliPHOSCpvCalibData.cxx:159
 AliPHOSCpvCalibData.cxx:160
 AliPHOSCpvCalibData.cxx:161
 AliPHOSCpvCalibData.cxx:162
 AliPHOSCpvCalibData.cxx:163
 AliPHOSCpvCalibData.cxx:164
 AliPHOSCpvCalibData.cxx:165
 AliPHOSCpvCalibData.cxx:166
 AliPHOSCpvCalibData.cxx:167
 AliPHOSCpvCalibData.cxx:168
 AliPHOSCpvCalibData.cxx:169
 AliPHOSCpvCalibData.cxx:170
 AliPHOSCpvCalibData.cxx:171