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 pedestal subtraction         //
//                                                                           //
///////////////////////////////////////////////////////////////////////////////

#include "AliZDCPedestals.h"

ClassImp(AliZDCPedestals)

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

//________________________________________________________________
AliZDCPedestals::AliZDCPedestals(const char* name):
TNamed()
{
  // Constructor
  TString namst = "Calib_";
  namst += name;
  SetName(namst.Data());
  SetTitle(namst.Data());
  Reset();
  for(Int_t i=0; i<48; i++){
    fMeanPedestal[i] = 0.;
    fMeanPedWidth[i] = 0.;
    fOOTPedestal[i] = 0.;
    fOOTPedWidth[i] = 0.;
    for(Int_t j=0; j<2; j++) fPedCorrCoeff[j][i] = 0.;
  }
  
  
}

//________________________________________________________________
AliZDCPedestals::AliZDCPedestals(const AliZDCPedestals& calibda) :
  TNamed(calibda)
{
  // Copy constructor
  SetName(calibda.GetName());
  SetTitle(calibda.GetName());
  Reset();
  for(int t=0; t<48; t++){
     fMeanPedestal[t] = calibda.GetMeanPed(t);
     fMeanPedWidth[t] = calibda.GetMeanPedWidth(t);
     fOOTPedestal[t]  = calibda.GetOOTPed(t);
     fOOTPedWidth[t]  = calibda.GetOOTPedWidth(t);
     fPedCorrCoeff[0][t] = calibda.GetPedCorrCoeff0(t);
     fPedCorrCoeff[1][t] = calibda.GetPedCorrCoeff1(t);
  }
}

//________________________________________________________________
AliZDCPedestals &AliZDCPedestals::operator =(const AliZDCPedestals& calibda)
{
// assignment operator
  SetName(calibda.GetName());
  SetTitle(calibda.GetName());
  Reset();
  for(int t=0; t<48; t++){
     fMeanPedestal[t] = calibda.GetMeanPed(t);
     fMeanPedWidth[t] = calibda.GetMeanPedWidth(t);
     fOOTPedestal[t]  = calibda.GetOOTPed(t);
     fOOTPedWidth[t]  = calibda.GetOOTPedWidth(t);
     fPedCorrCoeff[0][t] = calibda.GetPedCorrCoeff0(t);
     fPedCorrCoeff[1][t] = calibda.GetPedCorrCoeff1(t);
  }

  return *this;
}

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

//________________________________________________________________
void AliZDCPedestals::Reset()
{
  // Reset
  memset(fMeanPedestal,0,48*sizeof(Float_t));
  memset(fMeanPedWidth,0,48*sizeof(Float_t));
  memset(fOOTPedestal,0,48*sizeof(Float_t));
  memset(fOOTPedWidth,0,48*sizeof(Float_t));
}                                                                                       


//________________________________________________________________
void  AliZDCPedestals::Print(Option_t *) const
{
   // Printing of calibration object
   printf("\n ####### In-time pedestal values (mean value, sigma) ####### \n");
   for(int t=0; t<48; t++) 
      printf("\t ADC%d (%.1f, %.1f)\n",t,fMeanPedestal[t],fMeanPedWidth[t]);
   //
   printf("\n\n ####### Out-of-time pedestal values (mean value, sigma) ####### \n");
   for(int t=0; t<48; t++)
      printf("\t ADC-OoT%d (%.1f, %.1f)\n",t,fOOTPedestal[t],fOOTPedWidth[t]);
 
} 

//________________________________________________________________
void AliZDCPedestals::SetMeanPed(Float_t* MeanPed)
{
  if(MeanPed) for(int t=0; t<48; t++) fMeanPedestal[t] = MeanPed[t];
  else for(int t=0; t<48; t++) fMeanPedestal[t] = 0.;
}
//________________________________________________________________
void AliZDCPedestals::SetMeanPedWidth(Float_t* MeanPedWidth)
{
  if(MeanPedWidth) for(int t=0; t<48; t++) fMeanPedWidth[t] = MeanPedWidth[t];
  else for(int t=0; t<48; t++) fMeanPedWidth[t] = 0.;
}

//________________________________________________________________
void AliZDCPedestals::SetOOTPed(Float_t* OOTPed)
{
  if(OOTPed) for(int t=0; t<48; t++) fOOTPedestal[t] = OOTPed[t];
  else for(int t=0; t<48; t++) fOOTPedestal[t] = 0.;
}

//________________________________________________________________
void AliZDCPedestals::SetOOTPedWidth(Float_t* OOTPedWidth)
{
  if(OOTPedWidth) for(int t=0; t<48; t++) fOOTPedWidth[t] = OOTPedWidth[t];
  else for(int t=0; t<48; t++) fOOTPedWidth[t] = 0.;
}

//________________________________________________________________
void AliZDCPedestals:: SetPedCorrCoeff(Float_t* PedCorrCoeff)
{
  // Set coefficients for pedestal correlations
  if(PedCorrCoeff){
    for(Int_t j=0; j<2; j++){
     for(int t=0; t<48; t++)
       fPedCorrCoeff[j][t] = PedCorrCoeff[t];
    }
  }
  else{
    for(Int_t j=0; j<2; j++){
     for(int t=0; t<48; t++)
       fPedCorrCoeff[j][t] = 0.;
    }
  }
 
}

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