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

///////////////////////////////////////////////////////////////////////////////
//                                                                           //
// class for ZDC calibration      					     //
// -> values for energy calibration and relative sector calibration          //
//                                                                           //
///////////////////////////////////////////////////////////////////////////////

#include "AliZDCCalib.h"

ClassImp(AliZDCCalib)

//________________________________________________________________
AliZDCCalib::AliZDCCalib():
TNamed()
{
  Reset();
}

//________________________________________________________________
AliZDCCalib::AliZDCCalib(const char* name):
TNamed()
{
  // Constructor
  TString namst = "Calib_";
  namst += name;
  SetName(namst.Data());
  SetTitle(namst.Data());
  Reset();
  for(Int_t i=0; i<6; i++){
    fEnCalibration[i] = 0.;
    if(i<5){
      fZN1EqualCoeff[i] = 0.;
      fZP1EqualCoeff[i] = 0.;
      fZN2EqualCoeff[i] = 0.;
      fZP2EqualCoeff[i] = 0.;
    }
  }
}

//________________________________________________________________
AliZDCCalib::AliZDCCalib(const AliZDCCalib& calibda) :
  TNamed(calibda)
{
  // Copy constructor
  SetName(calibda.GetName());
  SetTitle(calibda.GetName());
  Reset();
  for(int i=0; i<6; i++){
    fEnCalibration[i] = calibda.GetEnCalib(i);
    if(i<5){
      fZN1EqualCoeff[i] =  calibda.GetZN1EqualCoeff(i);
      fZP1EqualCoeff[i] =  calibda.GetZP1EqualCoeff(i);
      fZN2EqualCoeff[i] =  calibda.GetZN2EqualCoeff(i);
      fZP2EqualCoeff[i] =  calibda.GetZP2EqualCoeff(i);
    }
  }
}

//________________________________________________________________
AliZDCCalib &AliZDCCalib::operator =(const AliZDCCalib& calibda)
{
// assignment operator
  SetName(calibda.GetName());
  SetTitle(calibda.GetName());
  Reset();
  for(int i=0; i<6; i++){
     fEnCalibration[i] = calibda.GetEnCalib(i);
     if(i<5){
      fZN1EqualCoeff[i] =  calibda.GetZN1EqualCoeff(i);
      fZP1EqualCoeff[i] =  calibda.GetZP1EqualCoeff(i);
      fZN2EqualCoeff[i] =  calibda.GetZN2EqualCoeff(i);
      fZP2EqualCoeff[i] =  calibda.GetZP2EqualCoeff(i);
     }
  }
  
  return *this;
}

//________________________________________________________________
AliZDCCalib::~AliZDCCalib()
{
}

//________________________________________________________________
void AliZDCCalib::Reset()
{
  // Reset
  memset(fEnCalibration,0,6*sizeof(Float_t));
  memset(fZN1EqualCoeff,0,5*sizeof(Float_t));
  memset(fZP1EqualCoeff,0,5*sizeof(Float_t));
  memset(fZN2EqualCoeff,0,5*sizeof(Float_t));
  memset(fZP2EqualCoeff,0,5*sizeof(Float_t));
}                                                                                       


//________________________________________________________________
void  AliZDCCalib::Print(Option_t *) const
{
   // Printing of calibration object
   printf("\n\n ####### Energy calibration coefficients #######	\n");
   printf("  ZN1 = %.4f (E[TeV]/ADCch.) \n",fEnCalibration[0]);
   printf("  ZP1 = %.4f (E[TeV]/ADCch.) \n",fEnCalibration[1]);
   printf("  ZN2 = %.4f (E[TeV]/ADCch.) \n",fEnCalibration[2]);
   printf("  ZP2 = %.4f (E[TeV]/ADCch.) \n",fEnCalibration[3]);
   printf("  ZEM1 = %.2f (E[TeV]/ADCch.) \n",fEnCalibration[4]);
   printf("  ZEM2 = %.2f (E[TeV]/ADCch.) \n",fEnCalibration[5]);
 
   printf("\n\n ####### Equalization coefficients ####### \n");
   printf("  ZN1 -> %1.2f %1.2f %1.2f %1.2f %1.2f  \n",
    fZN1EqualCoeff[0],fZN1EqualCoeff[1],fZN1EqualCoeff[2],fZN1EqualCoeff[3],fZN1EqualCoeff[4]);
   printf("  ZP1 -> %1.2f %1.2f %1.2f %1.2f %1.2f  \n",
    fZP1EqualCoeff[0],fZP1EqualCoeff[1],fZP1EqualCoeff[2],fZP1EqualCoeff[3],fZP1EqualCoeff[4]);
   printf("  ZN2 -> %1.2f %1.2f %1.2f %1.2f %1.2f  \n",
    fZN2EqualCoeff[0],fZN2EqualCoeff[1],fZN2EqualCoeff[2],fZN2EqualCoeff[3],fZN2EqualCoeff[4]);
   printf("  ZP2 -> %1.2f %1.2f %1.2f %1.2f %1.2f  \n",
    fZP2EqualCoeff[0],fZP2EqualCoeff[1],fZP2EqualCoeff[2],fZP2EqualCoeff[3],fZP2EqualCoeff[4]);

} 

//________________________________________________________________
void AliZDCCalib::SetEnCalib(Float_t* EnCalib) 
{
  // Set energy calibration coefficients
  if(EnCalib) for(int t=0; t<6; t++) fEnCalibration[t] = EnCalib[t];
  else for(int t=0; t<6; t++) fEnCalibration[t] = 0.;
}

//________________________________________________________________
void AliZDCCalib::SetZN1EqualCoeff(Float_t* EqualCoeff)
{
  // Set ZN1 equalization coefficients
  if(EqualCoeff) for(int t=0; t<5; t++) fZN1EqualCoeff[t] = EqualCoeff[t];
  else for(int t=0; t<5; t++) fZN1EqualCoeff[t] = 1.;
}
 
//________________________________________________________________
void AliZDCCalib::SetZP1EqualCoeff(Float_t* EqualCoeff)
{
  // Set ZP1 equalization coefficients
  if(EqualCoeff) for(int t=0; t<5; t++) fZP1EqualCoeff[t] = EqualCoeff[t];
  else for(int t=0; t<5; t++) fZP1EqualCoeff[t] = 1.;
}
//________________________________________________________________
void AliZDCCalib::SetZN2EqualCoeff(Float_t* EqualCoeff)
{
  // Set ZN2 equalization coefficients
  if(EqualCoeff) for(int t=0; t<5; t++) fZN2EqualCoeff[t] = EqualCoeff[t];
  else for(int t=0; t<5; t++) fZN2EqualCoeff[t] = 1.;
}
 
//________________________________________________________________
void AliZDCCalib::SetZP2EqualCoeff(Float_t* EqualCoeff)
{
  // Set ZN1 equalization coefficients
  if(EqualCoeff) for(int t=0; t<5; t++) fZP2EqualCoeff[t] = EqualCoeff[t];
  else for(int t=0; t<5; t++) fZP2EqualCoeff[t] = 1.;
}
 
 AliZDCCalib.cxx:1
 AliZDCCalib.cxx:2
 AliZDCCalib.cxx:3
 AliZDCCalib.cxx:4
 AliZDCCalib.cxx:5
 AliZDCCalib.cxx:6
 AliZDCCalib.cxx:7
 AliZDCCalib.cxx:8
 AliZDCCalib.cxx:9
 AliZDCCalib.cxx:10
 AliZDCCalib.cxx:11
 AliZDCCalib.cxx:12
 AliZDCCalib.cxx:13
 AliZDCCalib.cxx:14
 AliZDCCalib.cxx:15
 AliZDCCalib.cxx:16
 AliZDCCalib.cxx:17
 AliZDCCalib.cxx:18
 AliZDCCalib.cxx:19
 AliZDCCalib.cxx:20
 AliZDCCalib.cxx:21
 AliZDCCalib.cxx:22
 AliZDCCalib.cxx:23
 AliZDCCalib.cxx:24
 AliZDCCalib.cxx:25
 AliZDCCalib.cxx:26
 AliZDCCalib.cxx:27
 AliZDCCalib.cxx:28
 AliZDCCalib.cxx:29
 AliZDCCalib.cxx:30
 AliZDCCalib.cxx:31
 AliZDCCalib.cxx:32
 AliZDCCalib.cxx:33
 AliZDCCalib.cxx:34
 AliZDCCalib.cxx:35
 AliZDCCalib.cxx:36
 AliZDCCalib.cxx:37
 AliZDCCalib.cxx:38
 AliZDCCalib.cxx:39
 AliZDCCalib.cxx:40
 AliZDCCalib.cxx:41
 AliZDCCalib.cxx:42
 AliZDCCalib.cxx:43
 AliZDCCalib.cxx:44
 AliZDCCalib.cxx:45
 AliZDCCalib.cxx:46
 AliZDCCalib.cxx:47
 AliZDCCalib.cxx:48
 AliZDCCalib.cxx:49
 AliZDCCalib.cxx:50
 AliZDCCalib.cxx:51
 AliZDCCalib.cxx:52
 AliZDCCalib.cxx:53
 AliZDCCalib.cxx:54
 AliZDCCalib.cxx:55
 AliZDCCalib.cxx:56
 AliZDCCalib.cxx:57
 AliZDCCalib.cxx:58
 AliZDCCalib.cxx:59
 AliZDCCalib.cxx:60
 AliZDCCalib.cxx:61
 AliZDCCalib.cxx:62
 AliZDCCalib.cxx:63
 AliZDCCalib.cxx:64
 AliZDCCalib.cxx:65
 AliZDCCalib.cxx:66
 AliZDCCalib.cxx:67
 AliZDCCalib.cxx:68
 AliZDCCalib.cxx:69
 AliZDCCalib.cxx:70
 AliZDCCalib.cxx:71
 AliZDCCalib.cxx:72
 AliZDCCalib.cxx:73
 AliZDCCalib.cxx:74
 AliZDCCalib.cxx:75
 AliZDCCalib.cxx:76
 AliZDCCalib.cxx:77
 AliZDCCalib.cxx:78
 AliZDCCalib.cxx:79
 AliZDCCalib.cxx:80
 AliZDCCalib.cxx:81
 AliZDCCalib.cxx:82
 AliZDCCalib.cxx:83
 AliZDCCalib.cxx:84
 AliZDCCalib.cxx:85
 AliZDCCalib.cxx:86
 AliZDCCalib.cxx:87
 AliZDCCalib.cxx:88
 AliZDCCalib.cxx:89
 AliZDCCalib.cxx:90
 AliZDCCalib.cxx:91
 AliZDCCalib.cxx:92
 AliZDCCalib.cxx:93
 AliZDCCalib.cxx:94
 AliZDCCalib.cxx:95
 AliZDCCalib.cxx:96
 AliZDCCalib.cxx:97
 AliZDCCalib.cxx:98
 AliZDCCalib.cxx:99
 AliZDCCalib.cxx:100
 AliZDCCalib.cxx:101
 AliZDCCalib.cxx:102
 AliZDCCalib.cxx:103
 AliZDCCalib.cxx:104
 AliZDCCalib.cxx:105
 AliZDCCalib.cxx:106
 AliZDCCalib.cxx:107
 AliZDCCalib.cxx:108
 AliZDCCalib.cxx:109
 AliZDCCalib.cxx:110
 AliZDCCalib.cxx:111
 AliZDCCalib.cxx:112
 AliZDCCalib.cxx:113
 AliZDCCalib.cxx:114
 AliZDCCalib.cxx:115
 AliZDCCalib.cxx:116
 AliZDCCalib.cxx:117
 AliZDCCalib.cxx:118
 AliZDCCalib.cxx:119
 AliZDCCalib.cxx:120
 AliZDCCalib.cxx:121
 AliZDCCalib.cxx:122
 AliZDCCalib.cxx:123
 AliZDCCalib.cxx:124
 AliZDCCalib.cxx:125
 AliZDCCalib.cxx:126
 AliZDCCalib.cxx:127
 AliZDCCalib.cxx:128
 AliZDCCalib.cxx:129
 AliZDCCalib.cxx:130
 AliZDCCalib.cxx:131
 AliZDCCalib.cxx:132
 AliZDCCalib.cxx:133
 AliZDCCalib.cxx:134
 AliZDCCalib.cxx:135
 AliZDCCalib.cxx:136
 AliZDCCalib.cxx:137
 AliZDCCalib.cxx:138
 AliZDCCalib.cxx:139
 AliZDCCalib.cxx:140
 AliZDCCalib.cxx:141
 AliZDCCalib.cxx:142
 AliZDCCalib.cxx:143
 AliZDCCalib.cxx:144
 AliZDCCalib.cxx:145
 AliZDCCalib.cxx:146
 AliZDCCalib.cxx:147
 AliZDCCalib.cxx:148
 AliZDCCalib.cxx:149
 AliZDCCalib.cxx:150
 AliZDCCalib.cxx:151
 AliZDCCalib.cxx:152
 AliZDCCalib.cxx:153
 AliZDCCalib.cxx:154
 AliZDCCalib.cxx:155
 AliZDCCalib.cxx:156
 AliZDCCalib.cxx:157
 AliZDCCalib.cxx:158
 AliZDCCalib.cxx:159
 AliZDCCalib.cxx:160
 AliZDCCalib.cxx:161
 AliZDCCalib.cxx:162
 AliZDCCalib.cxx:163
 AliZDCCalib.cxx:164
 AliZDCCalib.cxx:165
 AliZDCCalib.cxx:166
 AliZDCCalib.cxx:167
 AliZDCCalib.cxx:168
 AliZDCCalib.cxx:169
 AliZDCCalib.cxx:170
 AliZDCCalib.cxx:171
 AliZDCCalib.cxx:172
 AliZDCCalib.cxx:173
 AliZDCCalib.cxx:174
 AliZDCCalib.cxx:175