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

// Objects of this class contain temperature-dependence coefficients
//

#include <fstream>
#include <TString.h>
#include <TFile.h>
#include <TTree.h>

#include "AliEMCALCalibTempCoeff.h"

using namespace std;

ClassImp(AliEMCALCalibTempCoeff)

//____________________________________________________________________________
AliEMCALCalibTempCoeff::AliEMCALCalibTempCoeff(const int nSM) : 
  fNSuperModule(nSM),
  fSuperModuleData()
{
  //Default constructor.
  for (int i=0; i<fNSuperModule; i++) {
    fSuperModuleData.Add(new AliEMCALSuperModuleCalibTempCoeff(i));
  }
  fSuperModuleData.Compress(); // compress the TObjArray
  fSuperModuleData.SetOwner(kTRUE); 
}

//____________________________________________________________________________
void AliEMCALCalibTempCoeff::ReadTextCalibTempCoeffInfo(Int_t nSM, const TString &txtFileName,
					    Bool_t swapSides)
{
  //Read data from txt file. ; coordinates given on SuperModule basis

  std::ifstream inputFile(txtFileName.Data());
  if (!inputFile) {
    printf("AliEMCALCalibTempCoeff::ReadCalibTempCoeffInfo - Cannot open the APD info file %s\n", txtFileName.Data());
    return;
  }

  fNSuperModule = nSM;

  Int_t iSM = 0; // SuperModule index
  Int_t iCol = 0;
  Int_t iRow = 0;

  // list of values to be read
  Int_t iSrc = 0; 
  Float_t tempCoeff = 0; 
  // end - all values

  Int_t nAPDPerSM = AliEMCALGeoParams::fgkEMCALCols * AliEMCALGeoParams::fgkEMCALRows;

  for (Int_t i = 0; i < fNSuperModule; i++) {
    AliEMCALSuperModuleCalibTempCoeff * t = (AliEMCALSuperModuleCalibTempCoeff*) fSuperModuleData[i];
    if (!inputFile) {
      printf("AliEMCALCalibTempCoeff::ReadCalibTempCoeffInfo - Error while reading input file; likely EOF..\n");
      return;
    }
    inputFile >> iSM;
    t->SetSuperModuleNum(iSM);

    // info for each tower
    for (Int_t j=0; j<nAPDPerSM; j++) {
      inputFile >> iCol >> iRow >> tempCoeff >> iSrc;

      // check that input values are not out bounds
      if (iCol<0 || iCol>(AliEMCALGeoParams::fgkEMCALCols-1) ||
	  iRow<0 || iRow>(AliEMCALGeoParams::fgkEMCALRows-1) ) {
	printf("AliEMCALCalibTempCoeff::ReadCalibTempCoeffInfo - Error while reading input file; j %d iCol %d iRow %d\n", j, iCol, iRow);
      return;
      }

      // assume that this info is already swapped and done for this basis?
      if (swapSides) {
	// C side, oriented differently than A side: swap is requested
	iCol = AliEMCALGeoParams::fgkEMCALCols-1 - iCol;
	iRow = AliEMCALGeoParams::fgkEMCALRows-1 - iRow;
      }

      t->SetTC(iCol, iRow, tempCoeff);
      t->SetSrc(iCol, iRow, iSrc);
    }

  } // i, SuperModule

  inputFile.close();

  return;
}

//____________________________________________________________________________
void AliEMCALCalibTempCoeff::WriteTextCalibTempCoeffInfo(const TString &txtFileName,
					     Bool_t swapSides)
{
  // write data to txt file. ; coordinates given on SuperModule basis

  std::ofstream outputFile(txtFileName.Data());
  if (!outputFile) {
    printf("AliEMCALCalibTempCoeff::WriteCalibTempCoeffInfo - Cannot open the APD output file %s\n", txtFileName.Data());
    return;
  }

  Int_t iCol = 0;
  Int_t iRow = 0;

  Int_t nAPDPerSM = AliEMCALGeoParams::fgkEMCALCols * AliEMCALGeoParams::fgkEMCALRows;
  Float_t tempCoeff = 0;
  Int_t iSrc = 0;

  for (Int_t i = 0; i < fNSuperModule; i++) {
    AliEMCALSuperModuleCalibTempCoeff * t = (AliEMCALSuperModuleCalibTempCoeff*) fSuperModuleData[i];

    outputFile << t->GetSuperModuleNum() << endl;

    // info for each tower
    for (Int_t j=0; j<nAPDPerSM; j++) {
      iCol = j / AliEMCALGeoParams::fgkEMCALRows;
      iRow = j % AliEMCALGeoParams::fgkEMCALRows;

      tempCoeff = t->GetTC(iCol, iRow);
      iSrc = t->GetSrc(iCol, iRow);

      if (swapSides) {
	// C side, oriented differently than A side: swap is requested
	iCol = AliEMCALGeoParams::fgkEMCALCols-1 - iCol;
	iRow = AliEMCALGeoParams::fgkEMCALRows-1 - iRow;
      }

      outputFile << iCol << " " << iRow 
		 << " " << tempCoeff 
		 << " " << iSrc << endl;
    }

  } // i, SuperModule

  outputFile.close();

  return;
}

//____________________________________________________________________________
void AliEMCALCalibTempCoeff::ReadRootCalibTempCoeffInfo(const TString &rootFileName,
					    Bool_t swapSides)
{
  //Read data from root file. ; coordinates given on SuperModule basis
  TFile inputFile(rootFileName, "read");  

  TTree *tree = (TTree*) inputFile.Get("tree");

  ReadTreeCalibTempCoeffInfo(tree, swapSides);

  inputFile.Close();

  return;
}

//____________________________________________________________________________
void AliEMCALCalibTempCoeff::ReadTreeCalibTempCoeffInfo(TTree *tree,
					    Bool_t swapSides)
{
  // how many SuperModule's worth of info do we have?
  Int_t nAPDPerSM = AliEMCALGeoParams::fgkEMCALCols * AliEMCALGeoParams::fgkEMCALRows;
  fNSuperModule = tree->GetEntries();

  Int_t iSM = 0; // SuperModule index
  // list of values to be read
  // info for each tower
  Float_t tempCoeff[AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]; 
  Int_t iSrc[AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]; 
  // end - all values

  // just to make the initializations of the arrays are done correctly, let's use memset
  memset(tempCoeff, 0, sizeof(tempCoeff)); 
  memset(iSrc, 0, sizeof(iSrc)); 

  // declare the branches
  tree->SetBranchAddress("iSM", &iSM);
  tree->SetBranchAddress("TempCoeff", tempCoeff);
  tree->SetBranchAddress("Src", iSrc);

  // indices for looping over the towers
  Int_t iCol = 0;
  Int_t iRow = 0;

  for (int ient=0; ient<tree->GetEntries(); ient++) {
    tree->GetEntry(ient);

    // assume the index SuperModules come in order: i=iSM
    AliEMCALSuperModuleCalibTempCoeff * t = (AliEMCALSuperModuleCalibTempCoeff*) fSuperModuleData[iSM];

    t->SetSuperModuleNum(iSM);

    // third: info for each tower
    for (Int_t j=0; j<nAPDPerSM; j++) {
      iCol = j / AliEMCALGeoParams::fgkEMCALRows;
      iRow = j % AliEMCALGeoParams::fgkEMCALRows;

      // help variables: possibly modified or swapped indices
      int iColMod = iCol;
      int iRowMod = iRow;
      // assume that this info is already swapped and done for this basis?
      if (swapSides) {
	// C side, oriented differently than A side: swap is requested
	iColMod = AliEMCALGeoParams::fgkEMCALCols-1 - iCol;
	iRowMod = AliEMCALGeoParams::fgkEMCALRows-1 - iRow;
      }

      t->SetTC(iColMod, iRowMod, tempCoeff[iCol][iRow]);
      t->SetSrc(iColMod, iRowMod, iSrc[iCol][iRow]);
    }

  } // loop over entries

  return;
}

//____________________________________________________________________________
void AliEMCALCalibTempCoeff::WriteRootCalibTempCoeffInfo(const TString &rootFileName,
					     Bool_t swapSides)
{
  // write data to root file. ; coordinates given on SuperModule basis
  TFile destFile(rootFileName, "recreate");  
  if (destFile.IsZombie()) {
    return;
  }  
  destFile.cd();

  TTree *tree = new TTree("tree","");

  // variables for filling the TTree
  Int_t iSM = 0; // SuperModule index
  // list of values to be written

  Float_t tempCoeff[AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]; 
  Int_t iSrc[AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows];   // end - all values

  // just to make the initializations of the arrays are done correctly, let's use memset
  memset(tempCoeff, 0, sizeof(tempCoeff)); 
  memset(iSrc, 0, sizeof(iSrc)); 

  Int_t nAPDPerSM = AliEMCALGeoParams::fgkEMCALCols * AliEMCALGeoParams::fgkEMCALRows;
  // for looping over towers
  Int_t iCol = 0;
  Int_t iRow = 0;

  // declare the branches
  // first
  tree->Branch("iSM", &iSM, "iSM/I");
  // info for each tower; see if a 2D array works OK or if we'll have to use 1D arrays instead 
  tree->Branch( "TempCoeff", &tempCoeff, Form("TempCoeff[%d][%d]/F", AliEMCALGeoParams::fgkEMCALCols, AliEMCALGeoParams::fgkEMCALRows) );
  tree->Branch( "Src", &iSrc, Form("Src[%d][%d]/I", AliEMCALGeoParams::fgkEMCALCols, AliEMCALGeoParams::fgkEMCALRows) );

  for (iSM = 0; iSM < fNSuperModule; iSM++) {
    AliEMCALSuperModuleCalibTempCoeff * t = (AliEMCALSuperModuleCalibTempCoeff*) fSuperModuleData[iSM];

    iSM = t->GetSuperModuleNum();

    // info for each tower
    for (Int_t j=0; j<nAPDPerSM; j++) {
      iCol = j / AliEMCALGeoParams::fgkEMCALRows;
      iRow = j % AliEMCALGeoParams::fgkEMCALRows;

      // help variables: possibly modified or swapped indices
      int iColMod = iCol;
      int iRowMod = iRow;
      // assume that this info is already swapped and done for this basis?
      if (swapSides) {
	// C side, oriented differently than A side: swap is requested
	iColMod = AliEMCALGeoParams::fgkEMCALCols-1 - iCol;
	iRowMod = AliEMCALGeoParams::fgkEMCALRows-1 - iRow;
      }

      tempCoeff[iColMod][iRowMod] = t->GetTC(iCol, iRow);
      iSrc[iColMod][iRowMod] = t->GetSrc(iCol, iRow);
    }

    tree->Fill();
  } // i, SuperModule

  tree->Write();
  destFile.Close();

  return;
}

//____________________________________________________________________________
AliEMCALCalibTempCoeff::~AliEMCALCalibTempCoeff()
{
  fSuperModuleData.Delete();
}

//____________________________________________________________________________
AliEMCALSuperModuleCalibTempCoeff * AliEMCALCalibTempCoeff::GetSuperModuleCalibTempCoeffNum(Int_t supModIndex)const
{ // getter via index
  for (int i=0; i<fNSuperModule; i++) {
    AliEMCALSuperModuleCalibTempCoeff * t = (AliEMCALSuperModuleCalibTempCoeff*) fSuperModuleData[i];
    if (t->GetSuperModuleNum() == supModIndex) {
      return t;
    }
  }

  // if we arrived here, then nothing was found.. just return a NULL pointer 
  return NULL;
}

 AliEMCALCalibTempCoeff.cxx:1
 AliEMCALCalibTempCoeff.cxx:2
 AliEMCALCalibTempCoeff.cxx:3
 AliEMCALCalibTempCoeff.cxx:4
 AliEMCALCalibTempCoeff.cxx:5
 AliEMCALCalibTempCoeff.cxx:6
 AliEMCALCalibTempCoeff.cxx:7
 AliEMCALCalibTempCoeff.cxx:8
 AliEMCALCalibTempCoeff.cxx:9
 AliEMCALCalibTempCoeff.cxx:10
 AliEMCALCalibTempCoeff.cxx:11
 AliEMCALCalibTempCoeff.cxx:12
 AliEMCALCalibTempCoeff.cxx:13
 AliEMCALCalibTempCoeff.cxx:14
 AliEMCALCalibTempCoeff.cxx:15
 AliEMCALCalibTempCoeff.cxx:16
 AliEMCALCalibTempCoeff.cxx:17
 AliEMCALCalibTempCoeff.cxx:18
 AliEMCALCalibTempCoeff.cxx:19
 AliEMCALCalibTempCoeff.cxx:20
 AliEMCALCalibTempCoeff.cxx:21
 AliEMCALCalibTempCoeff.cxx:22
 AliEMCALCalibTempCoeff.cxx:23
 AliEMCALCalibTempCoeff.cxx:24
 AliEMCALCalibTempCoeff.cxx:25
 AliEMCALCalibTempCoeff.cxx:26
 AliEMCALCalibTempCoeff.cxx:27
 AliEMCALCalibTempCoeff.cxx:28
 AliEMCALCalibTempCoeff.cxx:29
 AliEMCALCalibTempCoeff.cxx:30
 AliEMCALCalibTempCoeff.cxx:31
 AliEMCALCalibTempCoeff.cxx:32
 AliEMCALCalibTempCoeff.cxx:33
 AliEMCALCalibTempCoeff.cxx:34
 AliEMCALCalibTempCoeff.cxx:35
 AliEMCALCalibTempCoeff.cxx:36
 AliEMCALCalibTempCoeff.cxx:37
 AliEMCALCalibTempCoeff.cxx:38
 AliEMCALCalibTempCoeff.cxx:39
 AliEMCALCalibTempCoeff.cxx:40
 AliEMCALCalibTempCoeff.cxx:41
 AliEMCALCalibTempCoeff.cxx:42
 AliEMCALCalibTempCoeff.cxx:43
 AliEMCALCalibTempCoeff.cxx:44
 AliEMCALCalibTempCoeff.cxx:45
 AliEMCALCalibTempCoeff.cxx:46
 AliEMCALCalibTempCoeff.cxx:47
 AliEMCALCalibTempCoeff.cxx:48
 AliEMCALCalibTempCoeff.cxx:49
 AliEMCALCalibTempCoeff.cxx:50
 AliEMCALCalibTempCoeff.cxx:51
 AliEMCALCalibTempCoeff.cxx:52
 AliEMCALCalibTempCoeff.cxx:53
 AliEMCALCalibTempCoeff.cxx:54
 AliEMCALCalibTempCoeff.cxx:55
 AliEMCALCalibTempCoeff.cxx:56
 AliEMCALCalibTempCoeff.cxx:57
 AliEMCALCalibTempCoeff.cxx:58
 AliEMCALCalibTempCoeff.cxx:59
 AliEMCALCalibTempCoeff.cxx:60
 AliEMCALCalibTempCoeff.cxx:61
 AliEMCALCalibTempCoeff.cxx:62
 AliEMCALCalibTempCoeff.cxx:63
 AliEMCALCalibTempCoeff.cxx:64
 AliEMCALCalibTempCoeff.cxx:65
 AliEMCALCalibTempCoeff.cxx:66
 AliEMCALCalibTempCoeff.cxx:67
 AliEMCALCalibTempCoeff.cxx:68
 AliEMCALCalibTempCoeff.cxx:69
 AliEMCALCalibTempCoeff.cxx:70
 AliEMCALCalibTempCoeff.cxx:71
 AliEMCALCalibTempCoeff.cxx:72
 AliEMCALCalibTempCoeff.cxx:73
 AliEMCALCalibTempCoeff.cxx:74
 AliEMCALCalibTempCoeff.cxx:75
 AliEMCALCalibTempCoeff.cxx:76
 AliEMCALCalibTempCoeff.cxx:77
 AliEMCALCalibTempCoeff.cxx:78
 AliEMCALCalibTempCoeff.cxx:79
 AliEMCALCalibTempCoeff.cxx:80
 AliEMCALCalibTempCoeff.cxx:81
 AliEMCALCalibTempCoeff.cxx:82
 AliEMCALCalibTempCoeff.cxx:83
 AliEMCALCalibTempCoeff.cxx:84
 AliEMCALCalibTempCoeff.cxx:85
 AliEMCALCalibTempCoeff.cxx:86
 AliEMCALCalibTempCoeff.cxx:87
 AliEMCALCalibTempCoeff.cxx:88
 AliEMCALCalibTempCoeff.cxx:89
 AliEMCALCalibTempCoeff.cxx:90
 AliEMCALCalibTempCoeff.cxx:91
 AliEMCALCalibTempCoeff.cxx:92
 AliEMCALCalibTempCoeff.cxx:93
 AliEMCALCalibTempCoeff.cxx:94
 AliEMCALCalibTempCoeff.cxx:95
 AliEMCALCalibTempCoeff.cxx:96
 AliEMCALCalibTempCoeff.cxx:97
 AliEMCALCalibTempCoeff.cxx:98
 AliEMCALCalibTempCoeff.cxx:99
 AliEMCALCalibTempCoeff.cxx:100
 AliEMCALCalibTempCoeff.cxx:101
 AliEMCALCalibTempCoeff.cxx:102
 AliEMCALCalibTempCoeff.cxx:103
 AliEMCALCalibTempCoeff.cxx:104
 AliEMCALCalibTempCoeff.cxx:105
 AliEMCALCalibTempCoeff.cxx:106
 AliEMCALCalibTempCoeff.cxx:107
 AliEMCALCalibTempCoeff.cxx:108
 AliEMCALCalibTempCoeff.cxx:109
 AliEMCALCalibTempCoeff.cxx:110
 AliEMCALCalibTempCoeff.cxx:111
 AliEMCALCalibTempCoeff.cxx:112
 AliEMCALCalibTempCoeff.cxx:113
 AliEMCALCalibTempCoeff.cxx:114
 AliEMCALCalibTempCoeff.cxx:115
 AliEMCALCalibTempCoeff.cxx:116
 AliEMCALCalibTempCoeff.cxx:117
 AliEMCALCalibTempCoeff.cxx:118
 AliEMCALCalibTempCoeff.cxx:119
 AliEMCALCalibTempCoeff.cxx:120
 AliEMCALCalibTempCoeff.cxx:121
 AliEMCALCalibTempCoeff.cxx:122
 AliEMCALCalibTempCoeff.cxx:123
 AliEMCALCalibTempCoeff.cxx:124
 AliEMCALCalibTempCoeff.cxx:125
 AliEMCALCalibTempCoeff.cxx:126
 AliEMCALCalibTempCoeff.cxx:127
 AliEMCALCalibTempCoeff.cxx:128
 AliEMCALCalibTempCoeff.cxx:129
 AliEMCALCalibTempCoeff.cxx:130
 AliEMCALCalibTempCoeff.cxx:131
 AliEMCALCalibTempCoeff.cxx:132
 AliEMCALCalibTempCoeff.cxx:133
 AliEMCALCalibTempCoeff.cxx:134
 AliEMCALCalibTempCoeff.cxx:135
 AliEMCALCalibTempCoeff.cxx:136
 AliEMCALCalibTempCoeff.cxx:137
 AliEMCALCalibTempCoeff.cxx:138
 AliEMCALCalibTempCoeff.cxx:139
 AliEMCALCalibTempCoeff.cxx:140
 AliEMCALCalibTempCoeff.cxx:141
 AliEMCALCalibTempCoeff.cxx:142
 AliEMCALCalibTempCoeff.cxx:143
 AliEMCALCalibTempCoeff.cxx:144
 AliEMCALCalibTempCoeff.cxx:145
 AliEMCALCalibTempCoeff.cxx:146
 AliEMCALCalibTempCoeff.cxx:147
 AliEMCALCalibTempCoeff.cxx:148
 AliEMCALCalibTempCoeff.cxx:149
 AliEMCALCalibTempCoeff.cxx:150
 AliEMCALCalibTempCoeff.cxx:151
 AliEMCALCalibTempCoeff.cxx:152
 AliEMCALCalibTempCoeff.cxx:153
 AliEMCALCalibTempCoeff.cxx:154
 AliEMCALCalibTempCoeff.cxx:155
 AliEMCALCalibTempCoeff.cxx:156
 AliEMCALCalibTempCoeff.cxx:157
 AliEMCALCalibTempCoeff.cxx:158
 AliEMCALCalibTempCoeff.cxx:159
 AliEMCALCalibTempCoeff.cxx:160
 AliEMCALCalibTempCoeff.cxx:161
 AliEMCALCalibTempCoeff.cxx:162
 AliEMCALCalibTempCoeff.cxx:163
 AliEMCALCalibTempCoeff.cxx:164
 AliEMCALCalibTempCoeff.cxx:165
 AliEMCALCalibTempCoeff.cxx:166
 AliEMCALCalibTempCoeff.cxx:167
 AliEMCALCalibTempCoeff.cxx:168
 AliEMCALCalibTempCoeff.cxx:169
 AliEMCALCalibTempCoeff.cxx:170
 AliEMCALCalibTempCoeff.cxx:171
 AliEMCALCalibTempCoeff.cxx:172
 AliEMCALCalibTempCoeff.cxx:173
 AliEMCALCalibTempCoeff.cxx:174
 AliEMCALCalibTempCoeff.cxx:175
 AliEMCALCalibTempCoeff.cxx:176
 AliEMCALCalibTempCoeff.cxx:177
 AliEMCALCalibTempCoeff.cxx:178
 AliEMCALCalibTempCoeff.cxx:179
 AliEMCALCalibTempCoeff.cxx:180
 AliEMCALCalibTempCoeff.cxx:181
 AliEMCALCalibTempCoeff.cxx:182
 AliEMCALCalibTempCoeff.cxx:183
 AliEMCALCalibTempCoeff.cxx:184
 AliEMCALCalibTempCoeff.cxx:185
 AliEMCALCalibTempCoeff.cxx:186
 AliEMCALCalibTempCoeff.cxx:187
 AliEMCALCalibTempCoeff.cxx:188
 AliEMCALCalibTempCoeff.cxx:189
 AliEMCALCalibTempCoeff.cxx:190
 AliEMCALCalibTempCoeff.cxx:191
 AliEMCALCalibTempCoeff.cxx:192
 AliEMCALCalibTempCoeff.cxx:193
 AliEMCALCalibTempCoeff.cxx:194
 AliEMCALCalibTempCoeff.cxx:195
 AliEMCALCalibTempCoeff.cxx:196
 AliEMCALCalibTempCoeff.cxx:197
 AliEMCALCalibTempCoeff.cxx:198
 AliEMCALCalibTempCoeff.cxx:199
 AliEMCALCalibTempCoeff.cxx:200
 AliEMCALCalibTempCoeff.cxx:201
 AliEMCALCalibTempCoeff.cxx:202
 AliEMCALCalibTempCoeff.cxx:203
 AliEMCALCalibTempCoeff.cxx:204
 AliEMCALCalibTempCoeff.cxx:205
 AliEMCALCalibTempCoeff.cxx:206
 AliEMCALCalibTempCoeff.cxx:207
 AliEMCALCalibTempCoeff.cxx:208
 AliEMCALCalibTempCoeff.cxx:209
 AliEMCALCalibTempCoeff.cxx:210
 AliEMCALCalibTempCoeff.cxx:211
 AliEMCALCalibTempCoeff.cxx:212
 AliEMCALCalibTempCoeff.cxx:213
 AliEMCALCalibTempCoeff.cxx:214
 AliEMCALCalibTempCoeff.cxx:215
 AliEMCALCalibTempCoeff.cxx:216
 AliEMCALCalibTempCoeff.cxx:217
 AliEMCALCalibTempCoeff.cxx:218
 AliEMCALCalibTempCoeff.cxx:219
 AliEMCALCalibTempCoeff.cxx:220
 AliEMCALCalibTempCoeff.cxx:221
 AliEMCALCalibTempCoeff.cxx:222
 AliEMCALCalibTempCoeff.cxx:223
 AliEMCALCalibTempCoeff.cxx:224
 AliEMCALCalibTempCoeff.cxx:225
 AliEMCALCalibTempCoeff.cxx:226
 AliEMCALCalibTempCoeff.cxx:227
 AliEMCALCalibTempCoeff.cxx:228
 AliEMCALCalibTempCoeff.cxx:229
 AliEMCALCalibTempCoeff.cxx:230
 AliEMCALCalibTempCoeff.cxx:231
 AliEMCALCalibTempCoeff.cxx:232
 AliEMCALCalibTempCoeff.cxx:233
 AliEMCALCalibTempCoeff.cxx:234
 AliEMCALCalibTempCoeff.cxx:235
 AliEMCALCalibTempCoeff.cxx:236
 AliEMCALCalibTempCoeff.cxx:237
 AliEMCALCalibTempCoeff.cxx:238
 AliEMCALCalibTempCoeff.cxx:239
 AliEMCALCalibTempCoeff.cxx:240
 AliEMCALCalibTempCoeff.cxx:241
 AliEMCALCalibTempCoeff.cxx:242
 AliEMCALCalibTempCoeff.cxx:243
 AliEMCALCalibTempCoeff.cxx:244
 AliEMCALCalibTempCoeff.cxx:245
 AliEMCALCalibTempCoeff.cxx:246
 AliEMCALCalibTempCoeff.cxx:247
 AliEMCALCalibTempCoeff.cxx:248
 AliEMCALCalibTempCoeff.cxx:249
 AliEMCALCalibTempCoeff.cxx:250
 AliEMCALCalibTempCoeff.cxx:251
 AliEMCALCalibTempCoeff.cxx:252
 AliEMCALCalibTempCoeff.cxx:253
 AliEMCALCalibTempCoeff.cxx:254
 AliEMCALCalibTempCoeff.cxx:255
 AliEMCALCalibTempCoeff.cxx:256
 AliEMCALCalibTempCoeff.cxx:257
 AliEMCALCalibTempCoeff.cxx:258
 AliEMCALCalibTempCoeff.cxx:259
 AliEMCALCalibTempCoeff.cxx:260
 AliEMCALCalibTempCoeff.cxx:261
 AliEMCALCalibTempCoeff.cxx:262
 AliEMCALCalibTempCoeff.cxx:263
 AliEMCALCalibTempCoeff.cxx:264
 AliEMCALCalibTempCoeff.cxx:265
 AliEMCALCalibTempCoeff.cxx:266
 AliEMCALCalibTempCoeff.cxx:267
 AliEMCALCalibTempCoeff.cxx:268
 AliEMCALCalibTempCoeff.cxx:269
 AliEMCALCalibTempCoeff.cxx:270
 AliEMCALCalibTempCoeff.cxx:271
 AliEMCALCalibTempCoeff.cxx:272
 AliEMCALCalibTempCoeff.cxx:273
 AliEMCALCalibTempCoeff.cxx:274
 AliEMCALCalibTempCoeff.cxx:275
 AliEMCALCalibTempCoeff.cxx:276
 AliEMCALCalibTempCoeff.cxx:277
 AliEMCALCalibTempCoeff.cxx:278
 AliEMCALCalibTempCoeff.cxx:279
 AliEMCALCalibTempCoeff.cxx:280
 AliEMCALCalibTempCoeff.cxx:281
 AliEMCALCalibTempCoeff.cxx:282
 AliEMCALCalibTempCoeff.cxx:283
 AliEMCALCalibTempCoeff.cxx:284
 AliEMCALCalibTempCoeff.cxx:285
 AliEMCALCalibTempCoeff.cxx:286
 AliEMCALCalibTempCoeff.cxx:287
 AliEMCALCalibTempCoeff.cxx:288
 AliEMCALCalibTempCoeff.cxx:289
 AliEMCALCalibTempCoeff.cxx:290
 AliEMCALCalibTempCoeff.cxx:291
 AliEMCALCalibTempCoeff.cxx:292
 AliEMCALCalibTempCoeff.cxx:293
 AliEMCALCalibTempCoeff.cxx:294
 AliEMCALCalibTempCoeff.cxx:295
 AliEMCALCalibTempCoeff.cxx:296
 AliEMCALCalibTempCoeff.cxx:297
 AliEMCALCalibTempCoeff.cxx:298
 AliEMCALCalibTempCoeff.cxx:299
 AliEMCALCalibTempCoeff.cxx:300
 AliEMCALCalibTempCoeff.cxx:301
 AliEMCALCalibTempCoeff.cxx:302
 AliEMCALCalibTempCoeff.cxx:303
 AliEMCALCalibTempCoeff.cxx:304
 AliEMCALCalibTempCoeff.cxx:305
 AliEMCALCalibTempCoeff.cxx:306
 AliEMCALCalibTempCoeff.cxx:307
 AliEMCALCalibTempCoeff.cxx:308
 AliEMCALCalibTempCoeff.cxx:309
 AliEMCALCalibTempCoeff.cxx:310
 AliEMCALCalibTempCoeff.cxx:311
 AliEMCALCalibTempCoeff.cxx:312
 AliEMCALCalibTempCoeff.cxx:313
 AliEMCALCalibTempCoeff.cxx:314
 AliEMCALCalibTempCoeff.cxx:315
 AliEMCALCalibTempCoeff.cxx:316
 AliEMCALCalibTempCoeff.cxx:317
 AliEMCALCalibTempCoeff.cxx:318
 AliEMCALCalibTempCoeff.cxx:319
 AliEMCALCalibTempCoeff.cxx:320
 AliEMCALCalibTempCoeff.cxx:321
 AliEMCALCalibTempCoeff.cxx:322