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

//________________________________________________________________________
//
// A help class for monitoring and calibration tools: MOOD, AMORE etc.,
// It can be created and used a la (ctor):
/*
  //Create the object for making the histograms
  fPedestals = new AliCaloCalibPedestal( fDetType );
  // AliCaloCalibPedestal knows how many modules we have for PHOS or EMCAL
  fNumModules = fPedestals->GetModules();
*/
// fed an event:
//  fPedestals->ProcessEvent(fCaloRawStream);
// asked to draw histograms:
//  fPedestals->GetDeadMap(i)->Draw("col");
// or
//  fPedestals->GetPeakProfileHighGainRatio((i < fNumModules) ? i : fVisibleModule)->Draw("colz");
// etc.
// The pseudo-code examples above were from the first implementation in MOOD (summer 2007).
//________________________________________________________________________

//#include "TCanvas.h"
#include "TH1.h"
#include "TF1.h"
#include "TFile.h"
#include <fstream>
#include <sstream>
#include <iostream>
#include <stdexcept>
#include <cmath>

#include "AliRawReader.h"
#include "AliCaloRawStreamV3.h"

//The include file
#include "AliCaloCalibPedestal.h"

ClassImp(AliCaloCalibPedestal)

using namespace std;

// ctor; initialize everything in order to avoid compiler warnings
AliCaloCalibPedestal::AliCaloCalibPedestal(kDetType detectorType) :  
  TObject(),
  fPedestalLowGain(),
  fPedestalHighGain(),
  fPedestalLEDRefLowGain(),
  fPedestalLEDRefHighGain(),
  fPeakMinusPedLowGain(),
  fPeakMinusPedHighGain(),
  fPeakMinusPedHighGainHisto(),
  fPedestalLowGainDiff(),
  fPedestalHighGainDiff(),
  fPedestalLEDRefLowGainDiff(),
  fPedestalLEDRefHighGainDiff(),
  fPeakMinusPedLowGainDiff(),
  fPeakMinusPedHighGainDiff(),
  fPedestalLowGainRatio(),
  fPedestalHighGainRatio(),
  fPedestalLEDRefLowGainRatio(),
  fPedestalLEDRefHighGainRatio(),
  fPeakMinusPedLowGainRatio(),
  fPeakMinusPedHighGainRatio(),
  fDeadMap(),
  fNEvents(0),
  fNChanFills(0),
  fDeadTowers(0),
  fNewDeadTowers(0),
  fResurrectedTowers(0),
  fReference(0),
  fDetType(kNone),
  fColumns(0),
  fRows(0),
  fLEDRefs(0),
  fModules(0),
  fRowMin(0),
  fRowMax(0),
  fRowMultiplier(0),
  fCaloString(),
  fMapping(NULL),
  fRunNumber(-1),
  fSelectPedestalSamples(kTRUE), 
  fFirstPedestalSample(0),
  fLastPedestalSample(15),
  fDeadThreshold(5),
  fWarningThreshold(50),
  fWarningFraction(0.002),
  fHotSigma(5)
{
  //Default constructor. First we set the detector-type related constants.
  if (detectorType == kPhos) {
    fColumns = fgkPhosCols;
    fRows = fgkPhosRows;
    fLEDRefs = fgkPhosLEDRefs;
    fModules = fgkPhosModules;
    fCaloString = "PHOS";
    fRowMin = -1*fRows;
    fRowMax = 0;
    fRowMultiplier = -1;
  } 
  else {
    //We'll just trust the enum to keep everything in line, so that if detectorType
    //isn't kPhos then it is kEmCal. Note, however, that this is not necessarily the
    //case, if someone intentionally gives another number
    fColumns = AliEMCALGeoParams::fgkEMCALCols;
    fRows = AliEMCALGeoParams::fgkEMCALRows;
    fLEDRefs = AliEMCALGeoParams::fgkEMCALLEDRefs;
    fModules = AliEMCALGeoParams::fgkEMCALModules;
    fCaloString = "EMCAL";
    fRowMin = 0;
    fRowMax = fRows;
    fRowMultiplier = 1;
  } 
  fDetType = detectorType;

  // ValidateProfiles(); // not to be done in ctor; info from Axel N. 
}

//_____________________________________________________________________
void AliCaloCalibPedestal::ValidateProfiles()
{
  //Make sure the basic histos exist
  if (!fPedestalLowGain.IsEmpty()) return; //The profiles already exist. We just check one, because they're all created at
  //the same time

  //Then, loop for the requested number of modules
  TString title, name;
  for (int i = 0; i < fModules; i++) {
    //Pedestals, low gain
    name = "hPedlowgain";
    name += i;
    title = "Pedestals, low gain, module ";
    title += i; 
    fPedestalLowGain.Add(new TProfile2D(name, title,
					fColumns, 0.0, fColumns, 
					fRows, fRowMin, fRowMax,"s"));
  
    //Pedestals, high gain
    name = "hPedhighgain";
    name += i;
    title = "Pedestals, high gain, module ";
    title += i; 
    fPedestalHighGain.Add(new TProfile2D(name, title,
					 fColumns, 0.0, fColumns, 
					 fRows, fRowMin, fRowMax,"s"));

    //LED Ref/Mon pedestals, low gain
    name = "hPedestalLEDReflowgain";
    name += i;
    title = "Pedestal LEDRef, low gain, module ";
    title += i; 
    fPedestalLEDRefLowGain.Add(new TProfile(name, title,
					    fLEDRefs, 0.0, fLEDRefs, "s"));
    
    //LED Ref/Mon pedestals, high gain
    name = "hPedestalLEDRefhighgain";
    name += i;
    title = "Pedestal LEDRef, high gain, module ";
    title += i; 
    fPedestalLEDRefHighGain.Add(new TProfile(name, title,
					     fLEDRefs, 0.0, fLEDRefs, "s"));
  
    //Peak-Pedestals, low gain
    name = "hPeakMinusPedlowgain";
    name += i;
    title = "Peak-Pedestal, low gain, module ";
    title += i; 
    fPeakMinusPedLowGain.Add(new TProfile2D(name, title,
					    fColumns, 0.0, fColumns, 
					    fRows, fRowMin, fRowMax,"s"));
  
    //Peak-Pedestals, high gain
    name = "hPeakMinusPedhighgain";
    name += i;
    title = "Peak-Pedestal, high gain, module ";
    title += i; 
    fPeakMinusPedHighGain.Add(new TProfile2D(name, title,
					     fColumns, 0.0, fColumns, 
					     fRows, fRowMin, fRowMax,"s"));

    //Peak-Pedestals, high gain - TH2F histo
    name = "hPeakMinusPedhighgainHisto";
    name += i;
    title = "Peak-Pedestal, high gain, module ";
    title += i; 
    fPeakMinusPedHighGainHisto.Add(new TH2F(name, title,
					    fColumns*fRows, 0.0, fColumns*fRows, 
					    100, 0, 1000));
 
    name = "hDeadMap";
    name += i;
    title = "Dead map, module ";
    title += i;
    fDeadMap.Add(new TH2D(name, title, fColumns, 0.0, fColumns, 
			  fRows, fRowMin, fRowMax));
  
  }//end for nModules create the histograms

  CompressAndSetOwner();
}

//_____________________________________________________________________
void AliCaloCalibPedestal::CompressAndSetOwner()
{ 
  //Compress the arrays, in order to remove the empty objects (a 16 slot array is created by default)
  fPedestalLowGain.Compress();
  fPedestalHighGain.Compress();
  fPedestalLEDRefLowGain.Compress();
  fPedestalLEDRefHighGain.Compress();
  fPeakMinusPedLowGain.Compress();
  fPeakMinusPedHighGain.Compress();
  fPeakMinusPedHighGainHisto.Compress();
  fDeadMap.Compress();

  // set owner ship for everyone
  fPedestalLowGain.SetOwner(kTRUE);
  fPedestalHighGain.SetOwner(kTRUE);
  fPedestalLEDRefLowGain.SetOwner(kTRUE);
  fPedestalLEDRefHighGain.SetOwner(kTRUE);
  fPeakMinusPedLowGain.SetOwner(kTRUE);
  fPeakMinusPedHighGain.SetOwner(kTRUE);
  fPeakMinusPedHighGainHisto.SetOwner(kTRUE);
  fPedestalLowGainDiff.SetOwner(kTRUE);
  fPedestalHighGainDiff.SetOwner(kTRUE);
  fPedestalLEDRefLowGainDiff.SetOwner(kTRUE);
  fPedestalLEDRefHighGainDiff.SetOwner(kTRUE);
  fPeakMinusPedLowGainDiff.SetOwner(kTRUE);
  fPeakMinusPedHighGainDiff.SetOwner(kTRUE);
  fPedestalLowGainRatio.SetOwner(kTRUE);
  fPedestalHighGainRatio.SetOwner(kTRUE);
  fPedestalLEDRefLowGainRatio.SetOwner(kTRUE);
  fPedestalLEDRefHighGainRatio.SetOwner(kTRUE);
  fPeakMinusPedLowGainRatio.SetOwner(kTRUE);
  fPeakMinusPedHighGainRatio.SetOwner(kTRUE);
  fDeadMap.SetOwner(kTRUE);
}

// dtor
//_____________________________________________________________________
AliCaloCalibPedestal::~AliCaloCalibPedestal()
{
  //dtor
  
  if (fReference) delete fReference;//Delete the reference object, if it has been loaded
  
  // delete also TObjArray's 
  fPedestalLowGain.Delete(); 
  fPedestalHighGain.Delete();
  fPedestalLEDRefLowGain.Delete();
  fPedestalLEDRefHighGain.Delete();
  fPeakMinusPedLowGain.Delete();
  fPeakMinusPedHighGain.Delete();
  fPeakMinusPedHighGainHisto.Delete();
  fPedestalLowGainDiff.Delete();
  fPedestalHighGainDiff.Delete();
  fPedestalLEDRefLowGainDiff.Delete();
  fPedestalLEDRefHighGainDiff.Delete();
  fPeakMinusPedLowGainDiff.Delete();
  fPeakMinusPedHighGainDiff.Delete();
  fPedestalLowGainRatio.Delete();
  fPedestalHighGainRatio.Delete();
  fPedestalLEDRefLowGainRatio.Delete();
  fPedestalLEDRefHighGainRatio.Delete();
  fPeakMinusPedLowGainRatio.Delete();
  fPeakMinusPedHighGainRatio.Delete();
  fDeadMap.Delete();
  
}

// copy ctor
//_____________________________________________________________________
AliCaloCalibPedestal::AliCaloCalibPedestal(AliCaloCalibPedestal &ped) :
  TObject(ped),
  fPedestalLowGain(),
  fPedestalHighGain(),
  fPedestalLEDRefLowGain(),
  fPedestalLEDRefHighGain(),
  fPeakMinusPedLowGain(),
  fPeakMinusPedHighGain(),
  fPeakMinusPedHighGainHisto(),
  fPedestalLowGainDiff(),
  fPedestalHighGainDiff(),
  fPedestalLEDRefLowGainDiff(),
  fPedestalLEDRefHighGainDiff(),
  fPeakMinusPedLowGainDiff(),
  fPeakMinusPedHighGainDiff(),
  fPedestalLowGainRatio(),
  fPedestalHighGainRatio(),
  fPedestalLEDRefLowGainRatio(),
  fPedestalLEDRefHighGainRatio(),
  fPeakMinusPedLowGainRatio(),
  fPeakMinusPedHighGainRatio(),
  fDeadMap(),
  fNEvents(ped.GetNEvents()),
  fNChanFills(ped.GetNChanFills()),
  fDeadTowers(ped.GetDeadTowerCount()),
  fNewDeadTowers(ped.GetDeadTowerNew()),
  fResurrectedTowers(ped.GetDeadTowerResurrected()),
  fReference( 0 ), //! note that we do not try to copy the reference info here
  fDetType(ped.GetDetectorType()),
  fColumns(ped.GetColumns()),
  fRows(ped.GetRows()),
  fLEDRefs(ped.GetLEDRefs()),
  fModules(ped.GetModules()),
  fRowMin(ped.GetRowMin()),
  fRowMax(ped.GetRowMax()),
  fRowMultiplier(ped.GetRowMultiplier()),
  fCaloString(ped.GetCaloString()),
  fMapping(NULL), //! note that we are not copying the map info
  fRunNumber(ped.GetRunNumber()),
  fSelectPedestalSamples(ped.GetSelectPedestalSamples()),
  fFirstPedestalSample(ped.GetFirstPedestalSample()),
  fLastPedestalSample(ped.GetLastPedestalSample()),
  fDeadThreshold(ped.GetDeadThreshold()),
  fWarningThreshold(ped.GetWarningThreshold()),
  fWarningFraction(ped.GetWarningFraction()),
  fHotSigma(ped.GetHotSigma())
{
  // Then the ObjArray ones; we add the histograms rather than trying TObjArray = assignment
  //DS: this has not really been tested yet..
  for (int i = 0; i < fModules; i++) {
    fPedestalLowGain.Add( ped.GetPedProfileLowGain(i) );
    fPedestalHighGain.Add( ped.GetPedProfileHighGain(i) );
    fPedestalLEDRefLowGain.Add( ped.GetPedLEDRefProfileLowGain(i) );
    fPedestalLEDRefHighGain.Add( ped.GetPedLEDRefProfileHighGain(i) );
    fPeakMinusPedLowGain.Add( ped.GetPeakProfileLowGain(i) );
    fPeakMinusPedHighGain.Add( ped.GetPeakProfileHighGain(i) );
    fPeakMinusPedHighGainHisto.Add( ped.GetPeakHighGainHisto(i) );

    fDeadMap.Add( ped.GetDeadMap(i) );  
  }//end for nModules 
 
  CompressAndSetOwner();
}

// assignment operator; use copy ctor to make life easy..
//_____________________________________________________________________
AliCaloCalibPedestal& AliCaloCalibPedestal::operator = (AliCaloCalibPedestal &source)
{
  // assignment operator; use copy ctor
  if (&source == this) return *this;

  new (this) AliCaloCalibPedestal(source);
  return *this;
}

//_____________________________________________________________________
void AliCaloCalibPedestal::Reset()
{   // Reset all arrays/histograms
  ValidateProfiles(); // make sure histos/profiles exist
  for (int i = 0; i < fModules; i++) {
    GetPedProfileLowGain(i)->Reset();
    GetPedProfileHighGain(i)->Reset();
    GetPedLEDRefProfileLowGain(i)->Reset();
    GetPedLEDRefProfileHighGain(i)->Reset();
    GetPeakProfileLowGain(i)->Reset();
    GetPeakProfileHighGain(i)->Reset();
    GetPeakHighGainHisto(i)->Reset();
    GetDeadMap(i)->Reset();
    
    if (!fPedestalLowGainDiff.IsEmpty()) {
      //This means that the comparison profiles have been created.
  
      GetPedProfileLowGainDiff(i)->Reset();
      GetPedProfileHighGainDiff(i)->Reset();
      GetPedLEDRefProfileLowGainDiff(i)->Reset();
      GetPedLEDRefProfileHighGainDiff(i)->Reset();
      GetPeakProfileLowGainDiff(i)->Reset();
      GetPeakProfileHighGainDiff(i)->Reset();
      
      GetPedProfileLowGainRatio(i)->Reset();
      GetPedProfileHighGainRatio(i)->Reset();
      GetPedLEDRefProfileLowGainRatio(i)->Reset();
      GetPedLEDRefProfileHighGainRatio(i)->Reset();
      GetPeakProfileLowGainRatio(i)->Reset();
      GetPeakProfileHighGainRatio(i)->Reset();
    }
  }
  fNEvents = 0;
  fNChanFills = 0;
  fDeadTowers = 0;
  fNewDeadTowers = 0;
  fResurrectedTowers = 0;
 
  //To think about: should fReference be deleted too?... let's not do it this time, at least...
}

// Parameter/cut handling
//_____________________________________________________________________
void AliCaloCalibPedestal::SetParametersFromFile(const char *parameterFile)
{  
  // Note: this method is a bit more complicated than it really has to be
  // - allowing for multiple entries per line, arbitrary order of the
  // different variables etc. But I wanted to try and do this in as
  // correct a C++ way as I could (as an exercise).

  static const string delimitor("::");
	
  // open, check input file
  ifstream in( parameterFile );
  if( !in ) {
    printf("in AliCaloCalibPedestal::SetParametersFromFile - Using default/run_time parameters.\n");
    return;
  } 


  // read in
  char readline[1024];
  while ((in.rdstate() & ios::failbit) == 0 ) {
    
    // Read into the raw char array and then construct a string
    // to do the searching
    in.getline(readline, 1024);
    istringstream s(readline);		
		
    while ( ( s.rdstate() & ios::failbit ) == 0 ) {
			
      string keyValue; 
      s >> keyValue;
      
      // check stream status
      if( ( s.rdstate() & ios::failbit ) == ios::failbit) break;
			
      // skip rest of line if comments found
      if( keyValue.substr( 0, 2 ) == "//" ) break;
			
      // look for "::" in keyValue pair
      size_t position = keyValue.find( delimitor );
      if( position == string::npos ) {
	printf("wrong format for key::value pair: %s\n", keyValue.c_str());
      }
				
      // split keyValue pair
      string key( keyValue.substr( 0, position ) );
      string value( keyValue.substr( position+delimitor.size(), 
				      keyValue.size()-delimitor.size() ) );
			
      // check value does not contain a new delimitor
      if( value.find( delimitor ) != string::npos ) {
	printf("wrong format for key::value pair: %s\n", keyValue.c_str());
      }
      
      // debug: check key value pair
      // printf("AliCaloCalibPedestal::SetParametersFromFile - key %s value %s\n", key.c_str(), value.c_str());

      // if the key matches with something we expect, we assign the new value
      istringstream iss(value);
      // the comparison strings defined at the beginning of this method
      if ( (key == "fFirstPedestalSample") || (key == "fLastPedestalSample") || (key == "fDeadThreshold") || (key == "fWarningThreshold") || (key == "fWarningFraction") || (key == "fHotSigma") ) {
	printf("AliCaloCalibPedestal::SetParametersFromFile - key %s value %s\n", key.c_str(), value.c_str());

	if (key == "fFirstPedestalSample") { 
	  iss >> fFirstPedestalSample; 
	}
	else if (key == "fLastPedestalSample") { 
	  iss >> fLastPedestalSample; 
	}
	else if (key == "fDeadThreshold") { 
	  iss >> fDeadThreshold; 
	}
	else if (key == "fWarningThreshold") { 
	  iss >> fWarningThreshold; 
	}
	else if (key == "fWarningFraction") { 
	  iss >> fWarningFraction; 
	}
	else if (key == "fHotSigma") { 
	  iss >> fHotSigma; 
	}

      } // some match

    }		
  }

  in.close();
  return;
	
}

//_____________________________________________________________________
void AliCaloCalibPedestal::WriteParametersToFile(const char *parameterFile)
{
  //Write parameters in file.
	
  static const string delimitor("::");
  ofstream out( parameterFile );
  out << "// " << parameterFile << endl;
  out << "fFirstPedestalSample" << "::" << fFirstPedestalSample << endl;
  out << "fLastPedestalSample" << "::" << fLastPedestalSample << endl;
  out << "fDeadThreshold" << "::" << fDeadThreshold << endl;
  out << "fWarningThreshold" << "::" << fWarningThreshold << endl;
  out << "fWarningFraction" << "::" << fWarningFraction << endl;
  out << "fHotSigma" << "::" << fHotSigma << endl;

  out.close();
  return;
}

//_____________________________________________________________________
Bool_t AliCaloCalibPedestal::AddInfo(AliCaloCalibPedestal *ped)
{
  // just do this for the basic histograms/profiles that get filled in ProcessEvent
  // may not have data for all modules, but let's just Add everything..
  ValidateProfiles(); // make sure histos/profiles exist

  for (int i = 0; i < fModules; i++) {
    GetPedProfileLowGain(i)->Add( ped->GetPedProfileLowGain(i) );
    GetPedProfileHighGain(i)->Add( ped->GetPedProfileHighGain(i) );
    GetPedLEDRefProfileLowGain(i)->Add( ped->GetPedLEDRefProfileLowGain(i) );
    GetPedLEDRefProfileHighGain(i)->Add( ped->GetPedLEDRefProfileHighGain(i) );
    GetPeakProfileLowGain(i)->Add( ped->GetPeakProfileLowGain(i) );
    GetPeakProfileHighGain(i)->Add( ped->GetPeakProfileHighGain(i) );
    GetPeakHighGainHisto(i)->Add( ped->GetPeakHighGainHisto(i) );
  }//end for nModules 

  // We should also copy other pieces of info: counters and parameters 
  // (not number of columns and rows etc which should be the same)
  // note that I just assign them here rather than Add them, but we
  // normally just Add (e.g. in Preprocessor) one object so this should be fine.
  fNEvents = ped->GetNEvents();
  fNChanFills = ped->GetNChanFills();
  fDeadTowers = ped->GetDeadTowerCount();
  fNewDeadTowers = ped->GetDeadTowerNew();
  fResurrectedTowers = ped->GetDeadTowerResurrected();
  fRunNumber = ped->GetRunNumber();
  fSelectPedestalSamples = ped->GetSelectPedestalSamples();
  fFirstPedestalSample = ped->GetFirstPedestalSample();
  fLastPedestalSample = ped->GetLastPedestalSample();
  fDeadThreshold = ped->GetDeadThreshold();
  fWarningThreshold = ped->GetWarningThreshold();
  fWarningFraction = ped->GetWarningFraction();
  fHotSigma = ped->GetHotSigma();

  // DeadMap; Diff profiles etc would need to be redone after this operation

  return kTRUE;//We succesfully added info from the supplied object
}

//_____________________________________________________________________
Bool_t AliCaloCalibPedestal::ProcessEvent(AliRawReader *rawReader)
{ 
  // if fMapping is NULL the rawstream will crate its own mapping
  AliCaloRawStreamV3 rawStream(rawReader, fCaloString, (AliAltroMapping**)fMapping);
  if (fDetType == kEmCal) {
    rawReader->Select("EMCAL", 0, AliEMCALGeoParams::fgkLastAltroDDL) ; //select EMCAL DDL range 
  }
  return ProcessEvent(&rawStream);
}

//_____________________________________________________________________
Bool_t AliCaloCalibPedestal::ProcessEvent(AliCaloRawStreamV3 *in)
{ 
  // Method to process=analyze one event in the data stream
  if (!in) return kFALSE; //Return right away if there's a null pointer
  in->Reset(); // just in case the next customer forgets to check if the stream was reset..

  fNEvents++; // one more event

  if (fNEvents==1) ValidateProfiles(); // 1st event, make sure histos/profiles exist
  
  // indices for the reading
  int sample = 0;
  int time = 0;
  int i = 0; // sample counter
  int startBin = 0;

  // start loop over input stream 
  while (in->NextDDL()) {
    while (in->NextChannel()) {

      // counters
      int max = AliEMCALGeoParams::fgkSampleMin, min = AliEMCALGeoParams::fgkSampleMax; // min and max sample values
      int nsamples = 0;

      // pedestal samples
      int nPed = 0;
      vector<int> pedSamples; 

      while (in->NextBunch()) {
	const UShort_t *sig = in->GetSignals();
	startBin = in->GetStartTimeBin();
	nsamples += in->GetBunchLength();
	for (i = 0; i < in->GetBunchLength(); i++) {
	  sample = sig[i];
	  time = startBin--;

	  // check if it's a min or max value
	  if (sample < min) min = sample;
	  if (sample > max) max = sample;
	  
	  // should we add it for the pedestal calculation?
	  if ( (fFirstPedestalSample<=time && time<=fLastPedestalSample) || // sample time in range
	       !fSelectPedestalSamples ) { // or we don't restrict the sample range.. - then we'll take all 
	    pedSamples.push_back( sig[i] );
	    nPed++;
	  }
	  
	} // loop over samples in bunch
      } // loop over bunches

      if (nsamples > 0) { // this check is needed for when we have zero-supp. on, but not sparse readout

      // it should be enough to check the SuperModule info for each DDL really, but let's keep it here for now
      int arrayPos = in->GetModule(); //The modules are numbered starting from 0
      if (arrayPos >= fModules) {
	//TODO: return an error message, if appopriate (perhaps if debug>0?)
	return kFALSE;
      }     
      //Debug
      if (arrayPos < 0 || arrayPos >= fModules) {
	printf("Oh no: arrayPos = %i.\n", arrayPos); 
      }
      
      fNChanFills++; // one more channel found, and profile to be filled
      //NOTE: coordinates are (column, row) for the profiles
      if ( in->IsLowGain() ) {
	//fill the low gain histograms
	((TProfile2D*)fPeakMinusPedLowGain[arrayPos])->Fill(in->GetColumn(), fRowMultiplier*in->GetRow(), max - min);
	if (nPed>0) { // only fill pedestal info in case it could be calculated
	  for ( i=0; i<nPed; i++) {
	    ((TProfile2D*)fPedestalLowGain[arrayPos])->Fill(in->GetColumn(), fRowMultiplier*in->GetRow(), pedSamples[i]); 
	  }
	}
      } 
      else if ( in->IsHighGain() ) {	
      	//fill the high gain ones
	((TProfile2D*)fPeakMinusPedHighGain[arrayPos])->Fill(in->GetColumn(), fRowMultiplier*in->GetRow(), max - min);
	if (nPed>0) { // only fill pedestal info in case it could be calculated
	  for ( i=0; i<nPed; i++) {
	    ((TProfile2D*)fPedestalHighGain[arrayPos])->Fill(in->GetColumn(), fRowMultiplier*in->GetRow(), pedSamples[i]); 
	  }	  
	}
	// for warning checks
	int idx = in->GetRow() + fRows * in->GetColumn();
	((TH2F*)fPeakMinusPedHighGainHisto[arrayPos])->Fill(idx, max - min);
      } 
      else if ( in->IsLEDMonData() ) {
	// for LED Mon data, the mapping class holds the gain info in the Row variable
	// and the Strip number in the Column..
	int gain = in->GetRow(); 
	int stripId = in->GetColumn();
	if (nPed>0 && stripId<fLEDRefs) {
	  if (gain == 0) {
	    for ( i=0; i<nPed; i++) {
	      ((TProfile*)fPedestalLEDRefLowGain[arrayPos])->Fill(stripId, pedSamples[i]);
	    }
	  }
	  else {
	    for ( i=0; i<nPed; i++) {
	      ((TProfile*)fPedestalLEDRefHighGain[arrayPos])->Fill(stripId, pedSamples[i]);
	    }
	  }
	}
      }

      } // nsamples>0 check, some data found for this channel; not only trailer/header
    }// end while over channel   
  }//end while over DDL's, of input stream 

 
  return kTRUE;
}

//_____________________________________________________________________
Bool_t AliCaloCalibPedestal::SaveHistograms(TString fileName, Bool_t saveEmptyHistos)
{
  //Saves all the histograms (or profiles, to be accurate) to the designated file
  ValidateProfiles(); // make sure histos/profiles exist
  TFile destFile(fileName, "recreate");
  
  if (destFile.IsZombie()) {
    return kFALSE;
  }
  
  destFile.cd();
  
  for (int i = 0; i < fModules; i++) {
    if( ((TProfile2D *)fPeakMinusPedLowGain[i])->GetEntries() || saveEmptyHistos) {
      fPeakMinusPedLowGain[i]->Write();
    }
    if( ((TProfile2D *)fPeakMinusPedHighGain[i])->GetEntries() || saveEmptyHistos) { 
      fPeakMinusPedHighGain[i]->Write();
    }
    if( ((TProfile2D *)fPedestalLowGain[i])->GetEntries() || saveEmptyHistos) {
      fPedestalLowGain[i]->Write();
    }
    if( ((TProfile2D *)fPedestalHighGain[i])->GetEntries() || saveEmptyHistos) {
      fPedestalHighGain[i]->Write();
    }
    if( ((TProfile *)fPedestalLEDRefLowGain[i])->GetEntries() || saveEmptyHistos) {
      fPedestalLEDRefLowGain[i]->Write();
    }
    if( ((TProfile *)fPedestalLEDRefHighGain[i])->GetEntries() || saveEmptyHistos) {
      fPedestalLEDRefHighGain[i]->Write();
    }
    if( ((TH2F *)fPeakMinusPedHighGainHisto[i])->GetEntries() || saveEmptyHistos) { 
      fPeakMinusPedHighGainHisto[i]->Write();
    }

  } 
  
  destFile.Close();
  
  return kTRUE;
}

//_____________________________________________________________________
Bool_t AliCaloCalibPedestal::LoadReferenceCalib(TString fileName, TString objectName)
{
  
  //Make sure that the histograms created when loading the object are not destroyed as the file object is destroyed
  TH1::AddDirectory(kFALSE);
  
  TFile *sourceFile = new TFile(fileName);
  if (sourceFile->IsZombie()) {
    return kFALSE;//We couldn't load the reference
  }

  if (fReference) delete fReference;//Delete the reference object, if it already exists
  fReference = 0;
  
  fReference = (AliCaloCalibPedestal*)sourceFile->Get(objectName);
 
  if (!fReference || !(fReference->InheritsFrom(AliCaloCalibPedestal::Class())) || (fReference->GetDetectorType() != fDetType)) {
    if (fReference) delete fReference;//Delete the object, in case we had an object of the wrong type
    fReference = 0;
    return kFALSE;
  }
	
  delete sourceFile;

  //Reset the histogram ownership behaviour. NOTE: a better workaround would be good, since this may accidentally set AddDirectory to true, even
  //if we are called by someone who has set it to false...
  TH1::AddDirectory(kTRUE);
 
  return kTRUE;//We succesfully loaded the object
}


//_____________________________________________________________________
Bool_t AliCaloCalibPedestal::SetReference(AliCaloCalibPedestal *ref)
{ // set reference object
  if (fReference) delete fReference;//Delete the reference object, if it already exists
  fReference = 0;
  
  fReference = ref;
 
  if (!fReference || (fReference->GetDetectorType() != fDetType)) {
    if (fReference) delete fReference;//Delete the object, in case we had an object of the wrong type
    fReference = 0;
    return kFALSE;
  }

  return kTRUE;//We succesfully loaded the object
}

//_____________________________________________________________________
void AliCaloCalibPedestal::ValidateComparisonProfiles()
{
  //Make sure the comparison histos exist
  if (!fPedestalLowGainDiff.IsEmpty()) return; //The profiles already exist. We just check one, because they're all created at
  //the same time
						
						
  //Then, loop for the requested number of modules
  TString title, name;
  for (int i = 0; i < fModules; i++) {
    //Pedestals, low gain
    name = "hPedlowgainDiff";
    name += i;
    title = "Pedestals difference, low gain, module ";
    title += i; 
    fPedestalLowGainDiff.Add(new TProfile2D(name, title,
					    fColumns, 0.0, fColumns, 
					    fRows, fRowMin, fRowMax,"s"));
  
    //Pedestals, high gain
    name = "hPedhighgainDiff";
    name += i;
    title = "Pedestals difference, high gain, module ";
    title += i; 
    fPedestalHighGainDiff.Add(new TProfile2D(name, title,
					     fColumns, 0.0, fColumns, 
					     fRows, fRowMin, fRowMax,"s"));

    //LED Ref/Mon pedestals, low gain
    name = "hPedestalLEDReflowgainDiff";
    name += i;
    title = "Pedestal difference LEDRef, low gain, module ";
    title += i; 
    fPedestalLEDRefLowGainDiff.Add(new TProfile(name, title,
						fLEDRefs, 0.0, fLEDRefs, "s"));
    
    //LED Ref/Mon pedestals, high gain
    name = "hPedestalLEDRefhighgainDiff";
    name += i;
    title = "Pedestal difference LEDRef, high gain, module ";
    title += i; 
    fPedestalLEDRefHighGainDiff.Add(new TProfile(name, title,
						 fLEDRefs, 0.0, fLEDRefs, "s"));

    //Peak-Pedestals, high gain
    name = "hPeakMinusPedhighgainDiff";
    name += i;
    title = "Peak-Pedestal difference, high gain, module ";
    title += i; 
    fPeakMinusPedHighGainDiff.Add(new TProfile2D(name, title,
						 fColumns, 0.0, fColumns, 
						 fRows, fRowMin, fRowMax,"s"));

    //Peak-Pedestals, low gain
    name = "hPeakMinusPedlowgainDiff";
    name += i;
    title = "Peak-Pedestal difference, low gain, module ";
    title += i; 
    fPeakMinusPedLowGainDiff.Add(new TProfile2D(name, title,
						fColumns, 0.0, fColumns, 
						fRows, fRowMin, fRowMax,"s"));
  
    //Pedestals, low gain
    name = "hPedlowgainRatio";
    name += i;
    title = "Pedestals ratio, low gain, module ";
    title += i; 
    fPedestalLowGainRatio.Add(new TProfile2D(name, title,
					     fColumns, 0.0, fColumns, 
					     fRows, fRowMin, fRowMax,"s"));
  
    //Pedestals, high gain
    name = "hPedhighgainRatio";
    name += i;
    title = "Pedestals ratio, high gain, module ";
    title += i; 
    fPedestalHighGainRatio.Add(new TProfile2D(name, title,
					      fColumns, 0.0, fColumns, 
					      fRows, fRowMin, fRowMax,"s"));

    //LED Ref/Mon pedestals, low gain
    name = "hPedestalLEDReflowgainRatio";
    name += i;
    title = "Pedestal ratio LEDRef, low gain, module ";
    title += i; 
    fPedestalLEDRefLowGainRatio.Add(new TProfile(name, title,
						 fLEDRefs, 0.0, fLEDRefs, "s"));
    
    //LED Ref/Mon pedestals, high gain
    name = "hPedestalLEDRefhighgainRatio";
    name += i;
    title = "Pedestal ratio LEDRef, high gain, module ";
    title += i; 
    fPedestalLEDRefHighGainRatio.Add(new TProfile(name, title,
						  fLEDRefs, 0.0, fLEDRefs, "s"));
  
    //Peak-Pedestals, low gain
    name = "hPeakMinusPedlowgainRatio";
    name += i;
    title = "Peak-Pedestal ratio, low gain, module ";
    title += i; 
    fPeakMinusPedLowGainRatio.Add(new TProfile2D(name, title,
						 fColumns, 0.0, fColumns, 
						 fRows, fRowMin, fRowMax,"s"));
  
    //Peak-Pedestals, high gain
    name = "hPeakMinusPedhighgainRatio";
    name += i;
    title = "Peak-Pedestal ratio, high gain, module ";
    title += i; 
    fPeakMinusPedHighGainRatio.Add(new TProfile2D(name, title,
						  fColumns, 0.0, fColumns, 
						  fRows, fRowMin, fRowMax,"s"));
    
  }//end for nModules create the histograms
}

//_____________________________________________________________________
void AliCaloCalibPedestal::ComputeDiffAndRatio()
{ // calculate differences and ratios relative to a reference
  ValidateProfiles(); // make sure histos/profiles exist
  ValidateComparisonProfiles();//Make sure the comparison histos exist
 
  if (!fReference) {
    return;//Return if the reference object isn't loaded
  }

  int bin = 0;
  double diff = 0;
  double ratio = 1;
  for (int i = 0; i < fModules; i++) {
    //For computing the difference, we cannot simply do TProfile2D->Add(), because that subtracts the sum of all entries,
    //which means that the mean of the new profile will not be the difference of the means. So do it by hand:
    for (int j = 0; j < fColumns; j++) {
      for (int k = 0; k < fRows; k++) {
	bin = ((TProfile2D*)fPeakMinusPedHighGainDiff[i])->GetBin(j+1, k+1);//Note that we assume here that all histos have the same structure...

	if (fReference->GetPeakProfileHighGain(i)->GetBinContent(bin) > 0) {
	  diff = GetPeakProfileHighGain(i)->GetBinContent(bin) - fReference->GetPeakProfileHighGain(i)->GetBinContent(bin);
	  ((TProfile2D*)fPeakMinusPedHighGainDiff[i])->SetBinContent(bin, diff);
	  ((TProfile2D*)fPeakMinusPedHighGainDiff[i])->SetBinEntries(bin, 1);
	  ratio = GetPeakProfileHighGain(i)->GetBinContent(bin) / fReference->GetPeakProfileHighGain(i)->GetBinContent(bin);  
	  ((TProfile2D*)fPeakMinusPedHighGainRatio[i])->SetBinContent(bin, ratio);
	  ((TProfile2D*)fPeakMinusPedHighGainRatio[i])->SetBinEntries(bin, 1);
	}

	if (fReference->GetPeakProfileLowGain(i)->GetBinContent(bin) > 0) {
	  diff = GetPeakProfileLowGain(i)->GetBinContent(bin) - fReference->GetPeakProfileLowGain(i)->GetBinContent(bin);
	  ((TProfile2D*)fPeakMinusPedLowGainDiff[i])->SetBinContent(bin, diff);
	  ((TProfile2D*)fPeakMinusPedLowGainDiff[i])->SetBinEntries(bin, 1);
	  ratio = GetPeakProfileLowGain(i)->GetBinContent(bin) / fReference->GetPeakProfileLowGain(i)->GetBinContent(bin);  
	  ((TProfile2D*)fPeakMinusPedLowGainRatio[i])->SetBinContent(bin, ratio);
	  ((TProfile2D*)fPeakMinusPedLowGainRatio[i])->SetBinEntries(bin, 1);
	}

	if (fReference->GetPedProfileHighGain(i)->GetBinContent(bin) > 0) {
	  diff = GetPedProfileHighGain(i)->GetBinContent(bin) - fReference->GetPedProfileHighGain(i)->GetBinContent(bin);
	  ((TProfile2D*)fPedestalHighGainDiff[i])->SetBinContent(bin, diff);
	  ((TProfile2D*)fPedestalHighGainDiff[i])->SetBinEntries(bin, 1);
	  ratio = GetPedProfileHighGain(i)->GetBinContent(bin) / fReference->GetPedProfileHighGain(i)->GetBinContent(bin);  
	  ((TProfile2D*)fPedestalHighGainRatio[i])->SetBinContent(bin, ratio);
	  ((TProfile2D*)fPedestalHighGainRatio[i])->SetBinEntries(bin, 1);
	}

	if (fReference->GetPedProfileLowGain(i)->GetBinContent(bin) > 0) {
	  diff = GetPedProfileLowGain(i)->GetBinContent(bin) - fReference->GetPedProfileLowGain(i)->GetBinContent(bin);
	  ((TProfile2D*)fPedestalLowGainDiff[i])->SetBinContent(bin, diff);
	  ((TProfile2D*)fPedestalLowGainDiff[i])->SetBinEntries(bin, 1);
	  ratio = GetPedProfileLowGain(i)->GetBinContent(bin) / fReference->GetPedProfileLowGain(i)->GetBinContent(bin);  
	  ((TProfile2D*)fPedestalLowGainRatio[i])->SetBinContent(bin, ratio);
	  ((TProfile2D*)fPedestalLowGainRatio[i])->SetBinEntries(bin, 1);
	}

      } // rows
    } // columns

    // same for LED Ref/Mon channels
    for (int j = 0; j <= fLEDRefs; j++) {    
      bin = j+1;//Note that we assume here that all histos have the same structure...

      if (fReference->GetPedLEDRefProfileHighGain(i)->GetBinContent(bin) > 0) {
	diff = GetPedLEDRefProfileHighGain(i)->GetBinContent(bin) - fReference->GetPedLEDRefProfileHighGain(i)->GetBinContent(bin);
	((TProfile*)fPedestalLEDRefHighGainDiff[i])->SetBinContent(bin, diff);
	((TProfile*)fPedestalLEDRefHighGainDiff[i])->SetBinEntries(bin, 1);
	ratio = GetPedLEDRefProfileHighGain(i)->GetBinContent(bin) / fReference->GetPedLEDRefProfileHighGain(i)->GetBinContent(bin);  
	((TProfile*)fPedestalLEDRefHighGainRatio[i])->SetBinContent(bin, ratio);
	((TProfile*)fPedestalLEDRefHighGainRatio[i])->SetBinEntries(bin, 1);
      }

      if (fReference->GetPedLEDRefProfileLowGain(i)->GetBinContent(bin) > 0) {
	diff = GetPedLEDRefProfileLowGain(i)->GetBinContent(bin) - fReference->GetPedLEDRefProfileLowGain(i)->GetBinContent(bin);
	((TProfile*)fPedestalLEDRefLowGainDiff[i])->SetBinContent(bin, diff);
	((TProfile*)fPedestalLEDRefLowGainDiff[i])->SetBinEntries(bin, 1);
	ratio = GetPedLEDRefProfileLowGain(i)->GetBinContent(bin) / fReference->GetPedLEDRefProfileLowGain(i)->GetBinContent(bin);  
	((TProfile*)fPedestalLEDRefLowGainRatio[i])->SetBinContent(bin, ratio);
	((TProfile*)fPedestalLEDRefLowGainRatio[i])->SetBinEntries(bin, 1);
      } 
     
    }

  } // modules
 
}

//_____________________________________________________________________
void AliCaloCalibPedestal::ComputeHotAndWarningTowers(const char * hotMapFile)
{ // look for hot/noisy towers
  ValidateProfiles(); // make sure histos/profiles exist
  ofstream * fout = 0;
  char name[512];//Quite a long temp buffer, just in case the filename includes a path

  if (hotMapFile) {
    snprintf(name, 512, "%s.txt", hotMapFile);
    fout = new ofstream(name);
    if (!fout->is_open()) {
      delete fout;
      fout = 0;//Set the pointer to empty if the file was not opened
    }
  }
 
  for(int i = 0; i < fModules; i++){
		
    //first we compute the peak-pedestal distribution for each supermodule...
    if( GetPeakHighGainHisto(i)->GetEntries() > 0 ) {
      double min = GetPeakProfileHighGain(i)->GetBinContent(GetPeakProfileHighGain(i)->GetMinimumBin());
      double max = GetPeakProfileHighGain(i)->GetBinContent(GetPeakProfileHighGain(i)->GetMaximumBin());
      TH1D *hPeakFit = new TH1D(Form("hFit_%d", i), Form("hFit_%d", i), (int)((max-min)*10), min-1, max+1);

      for (int j = 1; j <= fColumns; j++) {
	for (int k = 1; k <= fRows; k++) {	  
	  hPeakFit->Fill(GetPeakProfileHighGain(i)->GetBinContent(j, k));
	}
      }

      //...and then we try to fit it
      double mean  = hPeakFit->GetMean();
      double sigma = hPeakFit->GetRMS();
      try {
	hPeakFit->Fit("gaus", "OQ", "",  mean - 3*sigma, mean + 3*sigma);
	mean  = hPeakFit->GetFunction("gaus")->GetParameter(1);
	sigma = hPeakFit->GetFunction("gaus")->GetParameter(2);
      }
      catch (const std::exception & e) {
	printf("AliCaloCalibPedestal: TH1D PeakFit exception %s", e.what()); 
      }      
      //hPeakFit->Draw();

      delete hPeakFit;

      //Then we look for warm/hot towers
      TH2F * hPeak2D = GetPeakHighGainHisto(i);
      hPeak2D->GetYaxis()->SetRangeUser( fWarningThreshold, hPeak2D->GetYaxis()->GetBinUpEdge(hPeak2D->GetNbinsY()) );

      int idx = 0 ;
      int warnCounter = 0;
      for (int j = 1; j <= fColumns; j++) {
	for (int k = 1; k <= fRows; k++) {				
	  //we start looking for warm/warning towers...
	  // histogram x-axis index
	  idx = k-1 + fRows*(j-1); // this is what is used in the Fill call
	  hPeak2D->GetXaxis()->SetRangeUser(idx, idx);
	  warnCounter = (int) hPeak2D->Integral();
	  if(warnCounter > fNEvents * fWarningFraction) {
	    ((TH2D*)fDeadMap[i])->SetBinContent(j, k, kWarning); 	    
	    /* printf("mod %d col %d row %d warnCounter %d - status %d\n", 
	       i, j-1, k-1, warnCounter, (int) (kWarning)); */  
	  }
	  //...then we look for hot ones (towers whose values are greater than mean + X*sigma)	
	  if(GetPeakProfileHighGain(i)->GetBinContent(j, k) > mean + fHotSigma*sigma ) {
	    ((TH2D*)fDeadMap[i])->SetBinContent(j, k, kHot); 
	    /* printf("mod %d col %d row %d  binc %d - status %d\n", 
	       i, j-1, k-1, (int)(GetPeakProfileHighGain(i)->GetBinContent(j, k)), (int) (kHot)); */	  
	  }

	  //Write the status to the hot/warm map file, if the file is open.
	  // module - column - row - status (1=dead, 2= warm/warning , 3 = hot, see .h file enum)
	  if (fout && ((TH2D*)fDeadMap[i])->GetBinContent(j, k) > 1) {
	    
	    (*fout) << i << " " 
		    << (j - 1) << " " 
		    << (k - 1) << " " 
		    << ((TH2D*)fDeadMap[i])->GetBinContent(j, k) << endl;	    	}
	  
	}
      }

    } 
  }
  return;
}

//_____________________________________________________________________
void AliCaloCalibPedestal::ComputeDeadTowers(const char * deadMapFile)
{
  ValidateProfiles(); // make sure histos/profiles exist
  //Computes the number of dead towers etc etc into memory, after this you can call the GetDead... -functions
  int countTot = 0;
  int countNew = 0;
  int countRes = 0;
  ofstream * fout = 0;
  ofstream * diff = 0;
  char name[512];//Quite a long temp buffer, just in case the filename includes a path
  
  if (deadMapFile) {
    snprintf(name, 512, "%s.txt", deadMapFile);
    fout = new ofstream(name);
    snprintf(name, 512, "%sdiff.txt", deadMapFile);
    diff = new ofstream(name);
    if (!fout->is_open()) {
      delete fout;
      fout = 0;//Set the pointer to empty if the file was not opened
    }
    if (!diff->is_open()) {
      delete diff;
      diff = 0;//Set the pointer to empty if the file was not opened
    }
  }
 
  for (int i = 0; i < fModules; i++) {
    if (GetPeakProfileHighGain(i)->GetEntries() > 0) { //don't care about empty histos
      for (int j = 1; j <= fColumns; j++) {
	for (int k = 1; k <= fRows; k++) {

	  if (GetPeakProfileHighGain(i)->GetBinContent(j, k) < fDeadThreshold) {//It's dead
	    countTot++;//One more dead total
	    if (fout) {
	      (*fout) << i << " " 
		      << (j - 1) << " " 
		      << (k - 1) << " " 
		      << "1" << " " 
		      << "0" << endl;//Write the status to the deadmap file, if the file is open.
	    }
	    
	    if (fReference && fReference->GetPeakProfileHighGain(i)->GetBinContent(j, k) >= fDeadThreshold) {
	      ((TH2D*)fDeadMap[i])->SetBinContent(j, k, kRecentlyDeceased); 
	      countNew++;//This tower wasn't dead before!
	      if (diff) {
		( *diff) << i << " " 
			 << (j - 1) << " " 
			 << (k - 1) << " " 
			 << "1" << " " 
			 << "0" << endl;//Write the status to the deadmap difference file, if the file is open.
	      }
	    } 
	    else {
	      ((TH2D*)fDeadMap[i])->SetBinContent(j, k, kDead);//This has been dead before. Nothing new		
	    }
	  } 
	  else { //It's ALIVE!!
	    //Don't bother with writing the live ones.
	    if (fReference && fReference->GetPeakProfileHighGain(i)->GetBinContent(j, k) < fDeadThreshold) {
	      ((TH2D*)fDeadMap[i])->SetBinContent(j, k, kResurrected);
	      countRes++; //This tower was dead before => it's a miracle! :P
	      if (diff) {
		(*diff) << i << " " 
			<< (j - 1) << " " 
			<< (k - 1) << " " 
			<< "1" << " " 
			<< "1" << endl;//Write the status to the deadmap difference file, if the file is open.
	      }
	    } 
	    else {
	      ((TH2D*)fDeadMap[i])->SetBinContent(j, k, kAlive);
	    }
	  }
	    
	}//end for k/rows
      }//end for j/columns
    }//end if GetEntries >= 0
  
  }//end for modules
 
 if (fout) {
   fout->close();
   delete fout;
 }
 
 fDeadTowers = countTot;
 fNewDeadTowers = countNew;
 fResurrectedTowers = countRes;
}

//_____________________________________________________________________
Bool_t AliCaloCalibPedestal::IsBadChannel(int imod, int icol, int irow) const
{
  // Check if status info histo exists
  if (!fDeadMap[imod]) { 
    return kFALSE;
  }

  //Check if channel is dead or hot.  
  Int_t status =  (Int_t) ( ((TH2D*)fDeadMap[imod])->GetBinContent(icol,irow) );
  if(status == kAlive)
    return kFALSE;
  else 
    return kTRUE;
  
}

//_____________________________________________________________________
void AliCaloCalibPedestal::SetChannelStatus(int imod, int icol, int irow, int status)
{
  ValidateProfiles(); // make sure histos/profiles exist
  //Set status of channel dead, hot, alive ...  
  ((TH2D*)fDeadMap[imod])->SetBinContent(icol, irow, status);	
}
 AliCaloCalibPedestal.cxx:1
 AliCaloCalibPedestal.cxx:2
 AliCaloCalibPedestal.cxx:3
 AliCaloCalibPedestal.cxx:4
 AliCaloCalibPedestal.cxx:5
 AliCaloCalibPedestal.cxx:6
 AliCaloCalibPedestal.cxx:7
 AliCaloCalibPedestal.cxx:8
 AliCaloCalibPedestal.cxx:9
 AliCaloCalibPedestal.cxx:10
 AliCaloCalibPedestal.cxx:11
 AliCaloCalibPedestal.cxx:12
 AliCaloCalibPedestal.cxx:13
 AliCaloCalibPedestal.cxx:14
 AliCaloCalibPedestal.cxx:15
 AliCaloCalibPedestal.cxx:16
 AliCaloCalibPedestal.cxx:17
 AliCaloCalibPedestal.cxx:18
 AliCaloCalibPedestal.cxx:19
 AliCaloCalibPedestal.cxx:20
 AliCaloCalibPedestal.cxx:21
 AliCaloCalibPedestal.cxx:22
 AliCaloCalibPedestal.cxx:23
 AliCaloCalibPedestal.cxx:24
 AliCaloCalibPedestal.cxx:25
 AliCaloCalibPedestal.cxx:26
 AliCaloCalibPedestal.cxx:27
 AliCaloCalibPedestal.cxx:28
 AliCaloCalibPedestal.cxx:29
 AliCaloCalibPedestal.cxx:30
 AliCaloCalibPedestal.cxx:31
 AliCaloCalibPedestal.cxx:32
 AliCaloCalibPedestal.cxx:33
 AliCaloCalibPedestal.cxx:34
 AliCaloCalibPedestal.cxx:35
 AliCaloCalibPedestal.cxx:36
 AliCaloCalibPedestal.cxx:37
 AliCaloCalibPedestal.cxx:38
 AliCaloCalibPedestal.cxx:39
 AliCaloCalibPedestal.cxx:40
 AliCaloCalibPedestal.cxx:41
 AliCaloCalibPedestal.cxx:42
 AliCaloCalibPedestal.cxx:43
 AliCaloCalibPedestal.cxx:44
 AliCaloCalibPedestal.cxx:45
 AliCaloCalibPedestal.cxx:46
 AliCaloCalibPedestal.cxx:47
 AliCaloCalibPedestal.cxx:48
 AliCaloCalibPedestal.cxx:49
 AliCaloCalibPedestal.cxx:50
 AliCaloCalibPedestal.cxx:51
 AliCaloCalibPedestal.cxx:52
 AliCaloCalibPedestal.cxx:53
 AliCaloCalibPedestal.cxx:54
 AliCaloCalibPedestal.cxx:55
 AliCaloCalibPedestal.cxx:56
 AliCaloCalibPedestal.cxx:57
 AliCaloCalibPedestal.cxx:58
 AliCaloCalibPedestal.cxx:59
 AliCaloCalibPedestal.cxx:60
 AliCaloCalibPedestal.cxx:61
 AliCaloCalibPedestal.cxx:62
 AliCaloCalibPedestal.cxx:63
 AliCaloCalibPedestal.cxx:64
 AliCaloCalibPedestal.cxx:65
 AliCaloCalibPedestal.cxx:66
 AliCaloCalibPedestal.cxx:67
 AliCaloCalibPedestal.cxx:68
 AliCaloCalibPedestal.cxx:69
 AliCaloCalibPedestal.cxx:70
 AliCaloCalibPedestal.cxx:71
 AliCaloCalibPedestal.cxx:72
 AliCaloCalibPedestal.cxx:73
 AliCaloCalibPedestal.cxx:74
 AliCaloCalibPedestal.cxx:75
 AliCaloCalibPedestal.cxx:76
 AliCaloCalibPedestal.cxx:77
 AliCaloCalibPedestal.cxx:78
 AliCaloCalibPedestal.cxx:79
 AliCaloCalibPedestal.cxx:80
 AliCaloCalibPedestal.cxx:81
 AliCaloCalibPedestal.cxx:82
 AliCaloCalibPedestal.cxx:83
 AliCaloCalibPedestal.cxx:84
 AliCaloCalibPedestal.cxx:85
 AliCaloCalibPedestal.cxx:86
 AliCaloCalibPedestal.cxx:87
 AliCaloCalibPedestal.cxx:88
 AliCaloCalibPedestal.cxx:89
 AliCaloCalibPedestal.cxx:90
 AliCaloCalibPedestal.cxx:91
 AliCaloCalibPedestal.cxx:92
 AliCaloCalibPedestal.cxx:93
 AliCaloCalibPedestal.cxx:94
 AliCaloCalibPedestal.cxx:95
 AliCaloCalibPedestal.cxx:96
 AliCaloCalibPedestal.cxx:97
 AliCaloCalibPedestal.cxx:98
 AliCaloCalibPedestal.cxx:99
 AliCaloCalibPedestal.cxx:100
 AliCaloCalibPedestal.cxx:101
 AliCaloCalibPedestal.cxx:102
 AliCaloCalibPedestal.cxx:103
 AliCaloCalibPedestal.cxx:104
 AliCaloCalibPedestal.cxx:105
 AliCaloCalibPedestal.cxx:106
 AliCaloCalibPedestal.cxx:107
 AliCaloCalibPedestal.cxx:108
 AliCaloCalibPedestal.cxx:109
 AliCaloCalibPedestal.cxx:110
 AliCaloCalibPedestal.cxx:111
 AliCaloCalibPedestal.cxx:112
 AliCaloCalibPedestal.cxx:113
 AliCaloCalibPedestal.cxx:114
 AliCaloCalibPedestal.cxx:115
 AliCaloCalibPedestal.cxx:116
 AliCaloCalibPedestal.cxx:117
 AliCaloCalibPedestal.cxx:118
 AliCaloCalibPedestal.cxx:119
 AliCaloCalibPedestal.cxx:120
 AliCaloCalibPedestal.cxx:121
 AliCaloCalibPedestal.cxx:122
 AliCaloCalibPedestal.cxx:123
 AliCaloCalibPedestal.cxx:124
 AliCaloCalibPedestal.cxx:125
 AliCaloCalibPedestal.cxx:126
 AliCaloCalibPedestal.cxx:127
 AliCaloCalibPedestal.cxx:128
 AliCaloCalibPedestal.cxx:129
 AliCaloCalibPedestal.cxx:130
 AliCaloCalibPedestal.cxx:131
 AliCaloCalibPedestal.cxx:132
 AliCaloCalibPedestal.cxx:133
 AliCaloCalibPedestal.cxx:134
 AliCaloCalibPedestal.cxx:135
 AliCaloCalibPedestal.cxx:136
 AliCaloCalibPedestal.cxx:137
 AliCaloCalibPedestal.cxx:138
 AliCaloCalibPedestal.cxx:139
 AliCaloCalibPedestal.cxx:140
 AliCaloCalibPedestal.cxx:141
 AliCaloCalibPedestal.cxx:142
 AliCaloCalibPedestal.cxx:143
 AliCaloCalibPedestal.cxx:144
 AliCaloCalibPedestal.cxx:145
 AliCaloCalibPedestal.cxx:146
 AliCaloCalibPedestal.cxx:147
 AliCaloCalibPedestal.cxx:148
 AliCaloCalibPedestal.cxx:149
 AliCaloCalibPedestal.cxx:150
 AliCaloCalibPedestal.cxx:151
 AliCaloCalibPedestal.cxx:152
 AliCaloCalibPedestal.cxx:153
 AliCaloCalibPedestal.cxx:154
 AliCaloCalibPedestal.cxx:155
 AliCaloCalibPedestal.cxx:156
 AliCaloCalibPedestal.cxx:157
 AliCaloCalibPedestal.cxx:158
 AliCaloCalibPedestal.cxx:159
 AliCaloCalibPedestal.cxx:160
 AliCaloCalibPedestal.cxx:161
 AliCaloCalibPedestal.cxx:162
 AliCaloCalibPedestal.cxx:163
 AliCaloCalibPedestal.cxx:164
 AliCaloCalibPedestal.cxx:165
 AliCaloCalibPedestal.cxx:166
 AliCaloCalibPedestal.cxx:167
 AliCaloCalibPedestal.cxx:168
 AliCaloCalibPedestal.cxx:169
 AliCaloCalibPedestal.cxx:170
 AliCaloCalibPedestal.cxx:171
 AliCaloCalibPedestal.cxx:172
 AliCaloCalibPedestal.cxx:173
 AliCaloCalibPedestal.cxx:174
 AliCaloCalibPedestal.cxx:175
 AliCaloCalibPedestal.cxx:176
 AliCaloCalibPedestal.cxx:177
 AliCaloCalibPedestal.cxx:178
 AliCaloCalibPedestal.cxx:179
 AliCaloCalibPedestal.cxx:180
 AliCaloCalibPedestal.cxx:181
 AliCaloCalibPedestal.cxx:182
 AliCaloCalibPedestal.cxx:183
 AliCaloCalibPedestal.cxx:184
 AliCaloCalibPedestal.cxx:185
 AliCaloCalibPedestal.cxx:186
 AliCaloCalibPedestal.cxx:187
 AliCaloCalibPedestal.cxx:188
 AliCaloCalibPedestal.cxx:189
 AliCaloCalibPedestal.cxx:190
 AliCaloCalibPedestal.cxx:191
 AliCaloCalibPedestal.cxx:192
 AliCaloCalibPedestal.cxx:193
 AliCaloCalibPedestal.cxx:194
 AliCaloCalibPedestal.cxx:195
 AliCaloCalibPedestal.cxx:196
 AliCaloCalibPedestal.cxx:197
 AliCaloCalibPedestal.cxx:198
 AliCaloCalibPedestal.cxx:199
 AliCaloCalibPedestal.cxx:200
 AliCaloCalibPedestal.cxx:201
 AliCaloCalibPedestal.cxx:202
 AliCaloCalibPedestal.cxx:203
 AliCaloCalibPedestal.cxx:204
 AliCaloCalibPedestal.cxx:205
 AliCaloCalibPedestal.cxx:206
 AliCaloCalibPedestal.cxx:207
 AliCaloCalibPedestal.cxx:208
 AliCaloCalibPedestal.cxx:209
 AliCaloCalibPedestal.cxx:210
 AliCaloCalibPedestal.cxx:211
 AliCaloCalibPedestal.cxx:212
 AliCaloCalibPedestal.cxx:213
 AliCaloCalibPedestal.cxx:214
 AliCaloCalibPedestal.cxx:215
 AliCaloCalibPedestal.cxx:216
 AliCaloCalibPedestal.cxx:217
 AliCaloCalibPedestal.cxx:218
 AliCaloCalibPedestal.cxx:219
 AliCaloCalibPedestal.cxx:220
 AliCaloCalibPedestal.cxx:221
 AliCaloCalibPedestal.cxx:222
 AliCaloCalibPedestal.cxx:223
 AliCaloCalibPedestal.cxx:224
 AliCaloCalibPedestal.cxx:225
 AliCaloCalibPedestal.cxx:226
 AliCaloCalibPedestal.cxx:227
 AliCaloCalibPedestal.cxx:228
 AliCaloCalibPedestal.cxx:229
 AliCaloCalibPedestal.cxx:230
 AliCaloCalibPedestal.cxx:231
 AliCaloCalibPedestal.cxx:232
 AliCaloCalibPedestal.cxx:233
 AliCaloCalibPedestal.cxx:234
 AliCaloCalibPedestal.cxx:235
 AliCaloCalibPedestal.cxx:236
 AliCaloCalibPedestal.cxx:237
 AliCaloCalibPedestal.cxx:238
 AliCaloCalibPedestal.cxx:239
 AliCaloCalibPedestal.cxx:240
 AliCaloCalibPedestal.cxx:241
 AliCaloCalibPedestal.cxx:242
 AliCaloCalibPedestal.cxx:243
 AliCaloCalibPedestal.cxx:244
 AliCaloCalibPedestal.cxx:245
 AliCaloCalibPedestal.cxx:246
 AliCaloCalibPedestal.cxx:247
 AliCaloCalibPedestal.cxx:248
 AliCaloCalibPedestal.cxx:249
 AliCaloCalibPedestal.cxx:250
 AliCaloCalibPedestal.cxx:251
 AliCaloCalibPedestal.cxx:252
 AliCaloCalibPedestal.cxx:253
 AliCaloCalibPedestal.cxx:254
 AliCaloCalibPedestal.cxx:255
 AliCaloCalibPedestal.cxx:256
 AliCaloCalibPedestal.cxx:257
 AliCaloCalibPedestal.cxx:258
 AliCaloCalibPedestal.cxx:259
 AliCaloCalibPedestal.cxx:260
 AliCaloCalibPedestal.cxx:261
 AliCaloCalibPedestal.cxx:262
 AliCaloCalibPedestal.cxx:263
 AliCaloCalibPedestal.cxx:264
 AliCaloCalibPedestal.cxx:265
 AliCaloCalibPedestal.cxx:266
 AliCaloCalibPedestal.cxx:267
 AliCaloCalibPedestal.cxx:268
 AliCaloCalibPedestal.cxx:269
 AliCaloCalibPedestal.cxx:270
 AliCaloCalibPedestal.cxx:271
 AliCaloCalibPedestal.cxx:272
 AliCaloCalibPedestal.cxx:273
 AliCaloCalibPedestal.cxx:274
 AliCaloCalibPedestal.cxx:275
 AliCaloCalibPedestal.cxx:276
 AliCaloCalibPedestal.cxx:277
 AliCaloCalibPedestal.cxx:278
 AliCaloCalibPedestal.cxx:279
 AliCaloCalibPedestal.cxx:280
 AliCaloCalibPedestal.cxx:281
 AliCaloCalibPedestal.cxx:282
 AliCaloCalibPedestal.cxx:283
 AliCaloCalibPedestal.cxx:284
 AliCaloCalibPedestal.cxx:285
 AliCaloCalibPedestal.cxx:286
 AliCaloCalibPedestal.cxx:287
 AliCaloCalibPedestal.cxx:288
 AliCaloCalibPedestal.cxx:289
 AliCaloCalibPedestal.cxx:290
 AliCaloCalibPedestal.cxx:291
 AliCaloCalibPedestal.cxx:292
 AliCaloCalibPedestal.cxx:293
 AliCaloCalibPedestal.cxx:294
 AliCaloCalibPedestal.cxx:295
 AliCaloCalibPedestal.cxx:296
 AliCaloCalibPedestal.cxx:297
 AliCaloCalibPedestal.cxx:298
 AliCaloCalibPedestal.cxx:299
 AliCaloCalibPedestal.cxx:300
 AliCaloCalibPedestal.cxx:301
 AliCaloCalibPedestal.cxx:302
 AliCaloCalibPedestal.cxx:303
 AliCaloCalibPedestal.cxx:304
 AliCaloCalibPedestal.cxx:305
 AliCaloCalibPedestal.cxx:306
 AliCaloCalibPedestal.cxx:307
 AliCaloCalibPedestal.cxx:308
 AliCaloCalibPedestal.cxx:309
 AliCaloCalibPedestal.cxx:310
 AliCaloCalibPedestal.cxx:311
 AliCaloCalibPedestal.cxx:312
 AliCaloCalibPedestal.cxx:313
 AliCaloCalibPedestal.cxx:314
 AliCaloCalibPedestal.cxx:315
 AliCaloCalibPedestal.cxx:316
 AliCaloCalibPedestal.cxx:317
 AliCaloCalibPedestal.cxx:318
 AliCaloCalibPedestal.cxx:319
 AliCaloCalibPedestal.cxx:320
 AliCaloCalibPedestal.cxx:321
 AliCaloCalibPedestal.cxx:322
 AliCaloCalibPedestal.cxx:323
 AliCaloCalibPedestal.cxx:324
 AliCaloCalibPedestal.cxx:325
 AliCaloCalibPedestal.cxx:326
 AliCaloCalibPedestal.cxx:327
 AliCaloCalibPedestal.cxx:328
 AliCaloCalibPedestal.cxx:329
 AliCaloCalibPedestal.cxx:330
 AliCaloCalibPedestal.cxx:331
 AliCaloCalibPedestal.cxx:332
 AliCaloCalibPedestal.cxx:333
 AliCaloCalibPedestal.cxx:334
 AliCaloCalibPedestal.cxx:335
 AliCaloCalibPedestal.cxx:336
 AliCaloCalibPedestal.cxx:337
 AliCaloCalibPedestal.cxx:338
 AliCaloCalibPedestal.cxx:339
 AliCaloCalibPedestal.cxx:340
 AliCaloCalibPedestal.cxx:341
 AliCaloCalibPedestal.cxx:342
 AliCaloCalibPedestal.cxx:343
 AliCaloCalibPedestal.cxx:344
 AliCaloCalibPedestal.cxx:345
 AliCaloCalibPedestal.cxx:346
 AliCaloCalibPedestal.cxx:347
 AliCaloCalibPedestal.cxx:348
 AliCaloCalibPedestal.cxx:349
 AliCaloCalibPedestal.cxx:350
 AliCaloCalibPedestal.cxx:351
 AliCaloCalibPedestal.cxx:352
 AliCaloCalibPedestal.cxx:353
 AliCaloCalibPedestal.cxx:354
 AliCaloCalibPedestal.cxx:355
 AliCaloCalibPedestal.cxx:356
 AliCaloCalibPedestal.cxx:357
 AliCaloCalibPedestal.cxx:358
 AliCaloCalibPedestal.cxx:359
 AliCaloCalibPedestal.cxx:360
 AliCaloCalibPedestal.cxx:361
 AliCaloCalibPedestal.cxx:362
 AliCaloCalibPedestal.cxx:363
 AliCaloCalibPedestal.cxx:364
 AliCaloCalibPedestal.cxx:365
 AliCaloCalibPedestal.cxx:366
 AliCaloCalibPedestal.cxx:367
 AliCaloCalibPedestal.cxx:368
 AliCaloCalibPedestal.cxx:369
 AliCaloCalibPedestal.cxx:370
 AliCaloCalibPedestal.cxx:371
 AliCaloCalibPedestal.cxx:372
 AliCaloCalibPedestal.cxx:373
 AliCaloCalibPedestal.cxx:374
 AliCaloCalibPedestal.cxx:375
 AliCaloCalibPedestal.cxx:376
 AliCaloCalibPedestal.cxx:377
 AliCaloCalibPedestal.cxx:378
 AliCaloCalibPedestal.cxx:379
 AliCaloCalibPedestal.cxx:380
 AliCaloCalibPedestal.cxx:381
 AliCaloCalibPedestal.cxx:382
 AliCaloCalibPedestal.cxx:383
 AliCaloCalibPedestal.cxx:384
 AliCaloCalibPedestal.cxx:385
 AliCaloCalibPedestal.cxx:386
 AliCaloCalibPedestal.cxx:387
 AliCaloCalibPedestal.cxx:388
 AliCaloCalibPedestal.cxx:389
 AliCaloCalibPedestal.cxx:390
 AliCaloCalibPedestal.cxx:391
 AliCaloCalibPedestal.cxx:392
 AliCaloCalibPedestal.cxx:393
 AliCaloCalibPedestal.cxx:394
 AliCaloCalibPedestal.cxx:395
 AliCaloCalibPedestal.cxx:396
 AliCaloCalibPedestal.cxx:397
 AliCaloCalibPedestal.cxx:398
 AliCaloCalibPedestal.cxx:399
 AliCaloCalibPedestal.cxx:400
 AliCaloCalibPedestal.cxx:401
 AliCaloCalibPedestal.cxx:402
 AliCaloCalibPedestal.cxx:403
 AliCaloCalibPedestal.cxx:404
 AliCaloCalibPedestal.cxx:405
 AliCaloCalibPedestal.cxx:406
 AliCaloCalibPedestal.cxx:407
 AliCaloCalibPedestal.cxx:408
 AliCaloCalibPedestal.cxx:409
 AliCaloCalibPedestal.cxx:410
 AliCaloCalibPedestal.cxx:411
 AliCaloCalibPedestal.cxx:412
 AliCaloCalibPedestal.cxx:413
 AliCaloCalibPedestal.cxx:414
 AliCaloCalibPedestal.cxx:415
 AliCaloCalibPedestal.cxx:416
 AliCaloCalibPedestal.cxx:417
 AliCaloCalibPedestal.cxx:418
 AliCaloCalibPedestal.cxx:419
 AliCaloCalibPedestal.cxx:420
 AliCaloCalibPedestal.cxx:421
 AliCaloCalibPedestal.cxx:422
 AliCaloCalibPedestal.cxx:423
 AliCaloCalibPedestal.cxx:424
 AliCaloCalibPedestal.cxx:425
 AliCaloCalibPedestal.cxx:426
 AliCaloCalibPedestal.cxx:427
 AliCaloCalibPedestal.cxx:428
 AliCaloCalibPedestal.cxx:429
 AliCaloCalibPedestal.cxx:430
 AliCaloCalibPedestal.cxx:431
 AliCaloCalibPedestal.cxx:432
 AliCaloCalibPedestal.cxx:433
 AliCaloCalibPedestal.cxx:434
 AliCaloCalibPedestal.cxx:435
 AliCaloCalibPedestal.cxx:436
 AliCaloCalibPedestal.cxx:437
 AliCaloCalibPedestal.cxx:438
 AliCaloCalibPedestal.cxx:439
 AliCaloCalibPedestal.cxx:440
 AliCaloCalibPedestal.cxx:441
 AliCaloCalibPedestal.cxx:442
 AliCaloCalibPedestal.cxx:443
 AliCaloCalibPedestal.cxx:444
 AliCaloCalibPedestal.cxx:445
 AliCaloCalibPedestal.cxx:446
 AliCaloCalibPedestal.cxx:447
 AliCaloCalibPedestal.cxx:448
 AliCaloCalibPedestal.cxx:449
 AliCaloCalibPedestal.cxx:450
 AliCaloCalibPedestal.cxx:451
 AliCaloCalibPedestal.cxx:452
 AliCaloCalibPedestal.cxx:453
 AliCaloCalibPedestal.cxx:454
 AliCaloCalibPedestal.cxx:455
 AliCaloCalibPedestal.cxx:456
 AliCaloCalibPedestal.cxx:457
 AliCaloCalibPedestal.cxx:458
 AliCaloCalibPedestal.cxx:459
 AliCaloCalibPedestal.cxx:460
 AliCaloCalibPedestal.cxx:461
 AliCaloCalibPedestal.cxx:462
 AliCaloCalibPedestal.cxx:463
 AliCaloCalibPedestal.cxx:464
 AliCaloCalibPedestal.cxx:465
 AliCaloCalibPedestal.cxx:466
 AliCaloCalibPedestal.cxx:467
 AliCaloCalibPedestal.cxx:468
 AliCaloCalibPedestal.cxx:469
 AliCaloCalibPedestal.cxx:470
 AliCaloCalibPedestal.cxx:471
 AliCaloCalibPedestal.cxx:472
 AliCaloCalibPedestal.cxx:473
 AliCaloCalibPedestal.cxx:474
 AliCaloCalibPedestal.cxx:475
 AliCaloCalibPedestal.cxx:476
 AliCaloCalibPedestal.cxx:477
 AliCaloCalibPedestal.cxx:478
 AliCaloCalibPedestal.cxx:479
 AliCaloCalibPedestal.cxx:480
 AliCaloCalibPedestal.cxx:481
 AliCaloCalibPedestal.cxx:482
 AliCaloCalibPedestal.cxx:483
 AliCaloCalibPedestal.cxx:484
 AliCaloCalibPedestal.cxx:485
 AliCaloCalibPedestal.cxx:486
 AliCaloCalibPedestal.cxx:487
 AliCaloCalibPedestal.cxx:488
 AliCaloCalibPedestal.cxx:489
 AliCaloCalibPedestal.cxx:490
 AliCaloCalibPedestal.cxx:491
 AliCaloCalibPedestal.cxx:492
 AliCaloCalibPedestal.cxx:493
 AliCaloCalibPedestal.cxx:494
 AliCaloCalibPedestal.cxx:495
 AliCaloCalibPedestal.cxx:496
 AliCaloCalibPedestal.cxx:497
 AliCaloCalibPedestal.cxx:498
 AliCaloCalibPedestal.cxx:499
 AliCaloCalibPedestal.cxx:500
 AliCaloCalibPedestal.cxx:501
 AliCaloCalibPedestal.cxx:502
 AliCaloCalibPedestal.cxx:503
 AliCaloCalibPedestal.cxx:504
 AliCaloCalibPedestal.cxx:505
 AliCaloCalibPedestal.cxx:506
 AliCaloCalibPedestal.cxx:507
 AliCaloCalibPedestal.cxx:508
 AliCaloCalibPedestal.cxx:509
 AliCaloCalibPedestal.cxx:510
 AliCaloCalibPedestal.cxx:511
 AliCaloCalibPedestal.cxx:512
 AliCaloCalibPedestal.cxx:513
 AliCaloCalibPedestal.cxx:514
 AliCaloCalibPedestal.cxx:515
 AliCaloCalibPedestal.cxx:516
 AliCaloCalibPedestal.cxx:517
 AliCaloCalibPedestal.cxx:518
 AliCaloCalibPedestal.cxx:519
 AliCaloCalibPedestal.cxx:520
 AliCaloCalibPedestal.cxx:521
 AliCaloCalibPedestal.cxx:522
 AliCaloCalibPedestal.cxx:523
 AliCaloCalibPedestal.cxx:524
 AliCaloCalibPedestal.cxx:525
 AliCaloCalibPedestal.cxx:526
 AliCaloCalibPedestal.cxx:527
 AliCaloCalibPedestal.cxx:528
 AliCaloCalibPedestal.cxx:529
 AliCaloCalibPedestal.cxx:530
 AliCaloCalibPedestal.cxx:531
 AliCaloCalibPedestal.cxx:532
 AliCaloCalibPedestal.cxx:533
 AliCaloCalibPedestal.cxx:534
 AliCaloCalibPedestal.cxx:535
 AliCaloCalibPedestal.cxx:536
 AliCaloCalibPedestal.cxx:537
 AliCaloCalibPedestal.cxx:538
 AliCaloCalibPedestal.cxx:539
 AliCaloCalibPedestal.cxx:540
 AliCaloCalibPedestal.cxx:541
 AliCaloCalibPedestal.cxx:542
 AliCaloCalibPedestal.cxx:543
 AliCaloCalibPedestal.cxx:544
 AliCaloCalibPedestal.cxx:545
 AliCaloCalibPedestal.cxx:546
 AliCaloCalibPedestal.cxx:547
 AliCaloCalibPedestal.cxx:548
 AliCaloCalibPedestal.cxx:549
 AliCaloCalibPedestal.cxx:550
 AliCaloCalibPedestal.cxx:551
 AliCaloCalibPedestal.cxx:552
 AliCaloCalibPedestal.cxx:553
 AliCaloCalibPedestal.cxx:554
 AliCaloCalibPedestal.cxx:555
 AliCaloCalibPedestal.cxx:556
 AliCaloCalibPedestal.cxx:557
 AliCaloCalibPedestal.cxx:558
 AliCaloCalibPedestal.cxx:559
 AliCaloCalibPedestal.cxx:560
 AliCaloCalibPedestal.cxx:561
 AliCaloCalibPedestal.cxx:562
 AliCaloCalibPedestal.cxx:563
 AliCaloCalibPedestal.cxx:564
 AliCaloCalibPedestal.cxx:565
 AliCaloCalibPedestal.cxx:566
 AliCaloCalibPedestal.cxx:567
 AliCaloCalibPedestal.cxx:568
 AliCaloCalibPedestal.cxx:569
 AliCaloCalibPedestal.cxx:570
 AliCaloCalibPedestal.cxx:571
 AliCaloCalibPedestal.cxx:572
 AliCaloCalibPedestal.cxx:573
 AliCaloCalibPedestal.cxx:574
 AliCaloCalibPedestal.cxx:575
 AliCaloCalibPedestal.cxx:576
 AliCaloCalibPedestal.cxx:577
 AliCaloCalibPedestal.cxx:578
 AliCaloCalibPedestal.cxx:579
 AliCaloCalibPedestal.cxx:580
 AliCaloCalibPedestal.cxx:581
 AliCaloCalibPedestal.cxx:582
 AliCaloCalibPedestal.cxx:583
 AliCaloCalibPedestal.cxx:584
 AliCaloCalibPedestal.cxx:585
 AliCaloCalibPedestal.cxx:586
 AliCaloCalibPedestal.cxx:587
 AliCaloCalibPedestal.cxx:588
 AliCaloCalibPedestal.cxx:589
 AliCaloCalibPedestal.cxx:590
 AliCaloCalibPedestal.cxx:591
 AliCaloCalibPedestal.cxx:592
 AliCaloCalibPedestal.cxx:593
 AliCaloCalibPedestal.cxx:594
 AliCaloCalibPedestal.cxx:595
 AliCaloCalibPedestal.cxx:596
 AliCaloCalibPedestal.cxx:597
 AliCaloCalibPedestal.cxx:598
 AliCaloCalibPedestal.cxx:599
 AliCaloCalibPedestal.cxx:600
 AliCaloCalibPedestal.cxx:601
 AliCaloCalibPedestal.cxx:602
 AliCaloCalibPedestal.cxx:603
 AliCaloCalibPedestal.cxx:604
 AliCaloCalibPedestal.cxx:605
 AliCaloCalibPedestal.cxx:606
 AliCaloCalibPedestal.cxx:607
 AliCaloCalibPedestal.cxx:608
 AliCaloCalibPedestal.cxx:609
 AliCaloCalibPedestal.cxx:610
 AliCaloCalibPedestal.cxx:611
 AliCaloCalibPedestal.cxx:612
 AliCaloCalibPedestal.cxx:613
 AliCaloCalibPedestal.cxx:614
 AliCaloCalibPedestal.cxx:615
 AliCaloCalibPedestal.cxx:616
 AliCaloCalibPedestal.cxx:617
 AliCaloCalibPedestal.cxx:618
 AliCaloCalibPedestal.cxx:619
 AliCaloCalibPedestal.cxx:620
 AliCaloCalibPedestal.cxx:621
 AliCaloCalibPedestal.cxx:622
 AliCaloCalibPedestal.cxx:623
 AliCaloCalibPedestal.cxx:624
 AliCaloCalibPedestal.cxx:625
 AliCaloCalibPedestal.cxx:626
 AliCaloCalibPedestal.cxx:627
 AliCaloCalibPedestal.cxx:628
 AliCaloCalibPedestal.cxx:629
 AliCaloCalibPedestal.cxx:630
 AliCaloCalibPedestal.cxx:631
 AliCaloCalibPedestal.cxx:632
 AliCaloCalibPedestal.cxx:633
 AliCaloCalibPedestal.cxx:634
 AliCaloCalibPedestal.cxx:635
 AliCaloCalibPedestal.cxx:636
 AliCaloCalibPedestal.cxx:637
 AliCaloCalibPedestal.cxx:638
 AliCaloCalibPedestal.cxx:639
 AliCaloCalibPedestal.cxx:640
 AliCaloCalibPedestal.cxx:641
 AliCaloCalibPedestal.cxx:642
 AliCaloCalibPedestal.cxx:643
 AliCaloCalibPedestal.cxx:644
 AliCaloCalibPedestal.cxx:645
 AliCaloCalibPedestal.cxx:646
 AliCaloCalibPedestal.cxx:647
 AliCaloCalibPedestal.cxx:648
 AliCaloCalibPedestal.cxx:649
 AliCaloCalibPedestal.cxx:650
 AliCaloCalibPedestal.cxx:651
 AliCaloCalibPedestal.cxx:652
 AliCaloCalibPedestal.cxx:653
 AliCaloCalibPedestal.cxx:654
 AliCaloCalibPedestal.cxx:655
 AliCaloCalibPedestal.cxx:656
 AliCaloCalibPedestal.cxx:657
 AliCaloCalibPedestal.cxx:658
 AliCaloCalibPedestal.cxx:659
 AliCaloCalibPedestal.cxx:660
 AliCaloCalibPedestal.cxx:661
 AliCaloCalibPedestal.cxx:662
 AliCaloCalibPedestal.cxx:663
 AliCaloCalibPedestal.cxx:664
 AliCaloCalibPedestal.cxx:665
 AliCaloCalibPedestal.cxx:666
 AliCaloCalibPedestal.cxx:667
 AliCaloCalibPedestal.cxx:668
 AliCaloCalibPedestal.cxx:669
 AliCaloCalibPedestal.cxx:670
 AliCaloCalibPedestal.cxx:671
 AliCaloCalibPedestal.cxx:672
 AliCaloCalibPedestal.cxx:673
 AliCaloCalibPedestal.cxx:674
 AliCaloCalibPedestal.cxx:675
 AliCaloCalibPedestal.cxx:676
 AliCaloCalibPedestal.cxx:677
 AliCaloCalibPedestal.cxx:678
 AliCaloCalibPedestal.cxx:679
 AliCaloCalibPedestal.cxx:680
 AliCaloCalibPedestal.cxx:681
 AliCaloCalibPedestal.cxx:682
 AliCaloCalibPedestal.cxx:683
 AliCaloCalibPedestal.cxx:684
 AliCaloCalibPedestal.cxx:685
 AliCaloCalibPedestal.cxx:686
 AliCaloCalibPedestal.cxx:687
 AliCaloCalibPedestal.cxx:688
 AliCaloCalibPedestal.cxx:689
 AliCaloCalibPedestal.cxx:690
 AliCaloCalibPedestal.cxx:691
 AliCaloCalibPedestal.cxx:692
 AliCaloCalibPedestal.cxx:693
 AliCaloCalibPedestal.cxx:694
 AliCaloCalibPedestal.cxx:695
 AliCaloCalibPedestal.cxx:696
 AliCaloCalibPedestal.cxx:697
 AliCaloCalibPedestal.cxx:698
 AliCaloCalibPedestal.cxx:699
 AliCaloCalibPedestal.cxx:700
 AliCaloCalibPedestal.cxx:701
 AliCaloCalibPedestal.cxx:702
 AliCaloCalibPedestal.cxx:703
 AliCaloCalibPedestal.cxx:704
 AliCaloCalibPedestal.cxx:705
 AliCaloCalibPedestal.cxx:706
 AliCaloCalibPedestal.cxx:707
 AliCaloCalibPedestal.cxx:708
 AliCaloCalibPedestal.cxx:709
 AliCaloCalibPedestal.cxx:710
 AliCaloCalibPedestal.cxx:711
 AliCaloCalibPedestal.cxx:712
 AliCaloCalibPedestal.cxx:713
 AliCaloCalibPedestal.cxx:714
 AliCaloCalibPedestal.cxx:715
 AliCaloCalibPedestal.cxx:716
 AliCaloCalibPedestal.cxx:717
 AliCaloCalibPedestal.cxx:718
 AliCaloCalibPedestal.cxx:719
 AliCaloCalibPedestal.cxx:720
 AliCaloCalibPedestal.cxx:721
 AliCaloCalibPedestal.cxx:722
 AliCaloCalibPedestal.cxx:723
 AliCaloCalibPedestal.cxx:724
 AliCaloCalibPedestal.cxx:725
 AliCaloCalibPedestal.cxx:726
 AliCaloCalibPedestal.cxx:727
 AliCaloCalibPedestal.cxx:728
 AliCaloCalibPedestal.cxx:729
 AliCaloCalibPedestal.cxx:730
 AliCaloCalibPedestal.cxx:731
 AliCaloCalibPedestal.cxx:732
 AliCaloCalibPedestal.cxx:733
 AliCaloCalibPedestal.cxx:734
 AliCaloCalibPedestal.cxx:735
 AliCaloCalibPedestal.cxx:736
 AliCaloCalibPedestal.cxx:737
 AliCaloCalibPedestal.cxx:738
 AliCaloCalibPedestal.cxx:739
 AliCaloCalibPedestal.cxx:740
 AliCaloCalibPedestal.cxx:741
 AliCaloCalibPedestal.cxx:742
 AliCaloCalibPedestal.cxx:743
 AliCaloCalibPedestal.cxx:744
 AliCaloCalibPedestal.cxx:745
 AliCaloCalibPedestal.cxx:746
 AliCaloCalibPedestal.cxx:747
 AliCaloCalibPedestal.cxx:748
 AliCaloCalibPedestal.cxx:749
 AliCaloCalibPedestal.cxx:750
 AliCaloCalibPedestal.cxx:751
 AliCaloCalibPedestal.cxx:752
 AliCaloCalibPedestal.cxx:753
 AliCaloCalibPedestal.cxx:754
 AliCaloCalibPedestal.cxx:755
 AliCaloCalibPedestal.cxx:756
 AliCaloCalibPedestal.cxx:757
 AliCaloCalibPedestal.cxx:758
 AliCaloCalibPedestal.cxx:759
 AliCaloCalibPedestal.cxx:760
 AliCaloCalibPedestal.cxx:761
 AliCaloCalibPedestal.cxx:762
 AliCaloCalibPedestal.cxx:763
 AliCaloCalibPedestal.cxx:764
 AliCaloCalibPedestal.cxx:765
 AliCaloCalibPedestal.cxx:766
 AliCaloCalibPedestal.cxx:767
 AliCaloCalibPedestal.cxx:768
 AliCaloCalibPedestal.cxx:769
 AliCaloCalibPedestal.cxx:770
 AliCaloCalibPedestal.cxx:771
 AliCaloCalibPedestal.cxx:772
 AliCaloCalibPedestal.cxx:773
 AliCaloCalibPedestal.cxx:774
 AliCaloCalibPedestal.cxx:775
 AliCaloCalibPedestal.cxx:776
 AliCaloCalibPedestal.cxx:777
 AliCaloCalibPedestal.cxx:778
 AliCaloCalibPedestal.cxx:779
 AliCaloCalibPedestal.cxx:780
 AliCaloCalibPedestal.cxx:781
 AliCaloCalibPedestal.cxx:782
 AliCaloCalibPedestal.cxx:783
 AliCaloCalibPedestal.cxx:784
 AliCaloCalibPedestal.cxx:785
 AliCaloCalibPedestal.cxx:786
 AliCaloCalibPedestal.cxx:787
 AliCaloCalibPedestal.cxx:788
 AliCaloCalibPedestal.cxx:789
 AliCaloCalibPedestal.cxx:790
 AliCaloCalibPedestal.cxx:791
 AliCaloCalibPedestal.cxx:792
 AliCaloCalibPedestal.cxx:793
 AliCaloCalibPedestal.cxx:794
 AliCaloCalibPedestal.cxx:795
 AliCaloCalibPedestal.cxx:796
 AliCaloCalibPedestal.cxx:797
 AliCaloCalibPedestal.cxx:798
 AliCaloCalibPedestal.cxx:799
 AliCaloCalibPedestal.cxx:800
 AliCaloCalibPedestal.cxx:801
 AliCaloCalibPedestal.cxx:802
 AliCaloCalibPedestal.cxx:803
 AliCaloCalibPedestal.cxx:804
 AliCaloCalibPedestal.cxx:805
 AliCaloCalibPedestal.cxx:806
 AliCaloCalibPedestal.cxx:807
 AliCaloCalibPedestal.cxx:808
 AliCaloCalibPedestal.cxx:809
 AliCaloCalibPedestal.cxx:810
 AliCaloCalibPedestal.cxx:811
 AliCaloCalibPedestal.cxx:812
 AliCaloCalibPedestal.cxx:813
 AliCaloCalibPedestal.cxx:814
 AliCaloCalibPedestal.cxx:815
 AliCaloCalibPedestal.cxx:816
 AliCaloCalibPedestal.cxx:817
 AliCaloCalibPedestal.cxx:818
 AliCaloCalibPedestal.cxx:819
 AliCaloCalibPedestal.cxx:820
 AliCaloCalibPedestal.cxx:821
 AliCaloCalibPedestal.cxx:822
 AliCaloCalibPedestal.cxx:823
 AliCaloCalibPedestal.cxx:824
 AliCaloCalibPedestal.cxx:825
 AliCaloCalibPedestal.cxx:826
 AliCaloCalibPedestal.cxx:827
 AliCaloCalibPedestal.cxx:828
 AliCaloCalibPedestal.cxx:829
 AliCaloCalibPedestal.cxx:830
 AliCaloCalibPedestal.cxx:831
 AliCaloCalibPedestal.cxx:832
 AliCaloCalibPedestal.cxx:833
 AliCaloCalibPedestal.cxx:834
 AliCaloCalibPedestal.cxx:835
 AliCaloCalibPedestal.cxx:836
 AliCaloCalibPedestal.cxx:837
 AliCaloCalibPedestal.cxx:838
 AliCaloCalibPedestal.cxx:839
 AliCaloCalibPedestal.cxx:840
 AliCaloCalibPedestal.cxx:841
 AliCaloCalibPedestal.cxx:842
 AliCaloCalibPedestal.cxx:843
 AliCaloCalibPedestal.cxx:844
 AliCaloCalibPedestal.cxx:845
 AliCaloCalibPedestal.cxx:846
 AliCaloCalibPedestal.cxx:847
 AliCaloCalibPedestal.cxx:848
 AliCaloCalibPedestal.cxx:849
 AliCaloCalibPedestal.cxx:850
 AliCaloCalibPedestal.cxx:851
 AliCaloCalibPedestal.cxx:852
 AliCaloCalibPedestal.cxx:853
 AliCaloCalibPedestal.cxx:854
 AliCaloCalibPedestal.cxx:855
 AliCaloCalibPedestal.cxx:856
 AliCaloCalibPedestal.cxx:857
 AliCaloCalibPedestal.cxx:858
 AliCaloCalibPedestal.cxx:859
 AliCaloCalibPedestal.cxx:860
 AliCaloCalibPedestal.cxx:861
 AliCaloCalibPedestal.cxx:862
 AliCaloCalibPedestal.cxx:863
 AliCaloCalibPedestal.cxx:864
 AliCaloCalibPedestal.cxx:865
 AliCaloCalibPedestal.cxx:866
 AliCaloCalibPedestal.cxx:867
 AliCaloCalibPedestal.cxx:868
 AliCaloCalibPedestal.cxx:869
 AliCaloCalibPedestal.cxx:870
 AliCaloCalibPedestal.cxx:871
 AliCaloCalibPedestal.cxx:872
 AliCaloCalibPedestal.cxx:873
 AliCaloCalibPedestal.cxx:874
 AliCaloCalibPedestal.cxx:875
 AliCaloCalibPedestal.cxx:876
 AliCaloCalibPedestal.cxx:877
 AliCaloCalibPedestal.cxx:878
 AliCaloCalibPedestal.cxx:879
 AliCaloCalibPedestal.cxx:880
 AliCaloCalibPedestal.cxx:881
 AliCaloCalibPedestal.cxx:882
 AliCaloCalibPedestal.cxx:883
 AliCaloCalibPedestal.cxx:884
 AliCaloCalibPedestal.cxx:885
 AliCaloCalibPedestal.cxx:886
 AliCaloCalibPedestal.cxx:887
 AliCaloCalibPedestal.cxx:888
 AliCaloCalibPedestal.cxx:889
 AliCaloCalibPedestal.cxx:890
 AliCaloCalibPedestal.cxx:891
 AliCaloCalibPedestal.cxx:892
 AliCaloCalibPedestal.cxx:893
 AliCaloCalibPedestal.cxx:894
 AliCaloCalibPedestal.cxx:895
 AliCaloCalibPedestal.cxx:896
 AliCaloCalibPedestal.cxx:897
 AliCaloCalibPedestal.cxx:898
 AliCaloCalibPedestal.cxx:899
 AliCaloCalibPedestal.cxx:900
 AliCaloCalibPedestal.cxx:901
 AliCaloCalibPedestal.cxx:902
 AliCaloCalibPedestal.cxx:903
 AliCaloCalibPedestal.cxx:904
 AliCaloCalibPedestal.cxx:905
 AliCaloCalibPedestal.cxx:906
 AliCaloCalibPedestal.cxx:907
 AliCaloCalibPedestal.cxx:908
 AliCaloCalibPedestal.cxx:909
 AliCaloCalibPedestal.cxx:910
 AliCaloCalibPedestal.cxx:911
 AliCaloCalibPedestal.cxx:912
 AliCaloCalibPedestal.cxx:913
 AliCaloCalibPedestal.cxx:914
 AliCaloCalibPedestal.cxx:915
 AliCaloCalibPedestal.cxx:916
 AliCaloCalibPedestal.cxx:917
 AliCaloCalibPedestal.cxx:918
 AliCaloCalibPedestal.cxx:919
 AliCaloCalibPedestal.cxx:920
 AliCaloCalibPedestal.cxx:921
 AliCaloCalibPedestal.cxx:922
 AliCaloCalibPedestal.cxx:923
 AliCaloCalibPedestal.cxx:924
 AliCaloCalibPedestal.cxx:925
 AliCaloCalibPedestal.cxx:926
 AliCaloCalibPedestal.cxx:927
 AliCaloCalibPedestal.cxx:928
 AliCaloCalibPedestal.cxx:929
 AliCaloCalibPedestal.cxx:930
 AliCaloCalibPedestal.cxx:931
 AliCaloCalibPedestal.cxx:932
 AliCaloCalibPedestal.cxx:933
 AliCaloCalibPedestal.cxx:934
 AliCaloCalibPedestal.cxx:935
 AliCaloCalibPedestal.cxx:936
 AliCaloCalibPedestal.cxx:937
 AliCaloCalibPedestal.cxx:938
 AliCaloCalibPedestal.cxx:939
 AliCaloCalibPedestal.cxx:940
 AliCaloCalibPedestal.cxx:941
 AliCaloCalibPedestal.cxx:942
 AliCaloCalibPedestal.cxx:943
 AliCaloCalibPedestal.cxx:944
 AliCaloCalibPedestal.cxx:945
 AliCaloCalibPedestal.cxx:946
 AliCaloCalibPedestal.cxx:947
 AliCaloCalibPedestal.cxx:948
 AliCaloCalibPedestal.cxx:949
 AliCaloCalibPedestal.cxx:950
 AliCaloCalibPedestal.cxx:951
 AliCaloCalibPedestal.cxx:952
 AliCaloCalibPedestal.cxx:953
 AliCaloCalibPedestal.cxx:954
 AliCaloCalibPedestal.cxx:955
 AliCaloCalibPedestal.cxx:956
 AliCaloCalibPedestal.cxx:957
 AliCaloCalibPedestal.cxx:958
 AliCaloCalibPedestal.cxx:959
 AliCaloCalibPedestal.cxx:960
 AliCaloCalibPedestal.cxx:961
 AliCaloCalibPedestal.cxx:962
 AliCaloCalibPedestal.cxx:963
 AliCaloCalibPedestal.cxx:964
 AliCaloCalibPedestal.cxx:965
 AliCaloCalibPedestal.cxx:966
 AliCaloCalibPedestal.cxx:967
 AliCaloCalibPedestal.cxx:968
 AliCaloCalibPedestal.cxx:969
 AliCaloCalibPedestal.cxx:970
 AliCaloCalibPedestal.cxx:971
 AliCaloCalibPedestal.cxx:972
 AliCaloCalibPedestal.cxx:973
 AliCaloCalibPedestal.cxx:974
 AliCaloCalibPedestal.cxx:975
 AliCaloCalibPedestal.cxx:976
 AliCaloCalibPedestal.cxx:977
 AliCaloCalibPedestal.cxx:978
 AliCaloCalibPedestal.cxx:979
 AliCaloCalibPedestal.cxx:980
 AliCaloCalibPedestal.cxx:981
 AliCaloCalibPedestal.cxx:982
 AliCaloCalibPedestal.cxx:983
 AliCaloCalibPedestal.cxx:984
 AliCaloCalibPedestal.cxx:985
 AliCaloCalibPedestal.cxx:986
 AliCaloCalibPedestal.cxx:987
 AliCaloCalibPedestal.cxx:988
 AliCaloCalibPedestal.cxx:989
 AliCaloCalibPedestal.cxx:990
 AliCaloCalibPedestal.cxx:991
 AliCaloCalibPedestal.cxx:992
 AliCaloCalibPedestal.cxx:993
 AliCaloCalibPedestal.cxx:994
 AliCaloCalibPedestal.cxx:995
 AliCaloCalibPedestal.cxx:996
 AliCaloCalibPedestal.cxx:997
 AliCaloCalibPedestal.cxx:998
 AliCaloCalibPedestal.cxx:999
 AliCaloCalibPedestal.cxx:1000
 AliCaloCalibPedestal.cxx:1001
 AliCaloCalibPedestal.cxx:1002
 AliCaloCalibPedestal.cxx:1003
 AliCaloCalibPedestal.cxx:1004
 AliCaloCalibPedestal.cxx:1005
 AliCaloCalibPedestal.cxx:1006
 AliCaloCalibPedestal.cxx:1007
 AliCaloCalibPedestal.cxx:1008
 AliCaloCalibPedestal.cxx:1009
 AliCaloCalibPedestal.cxx:1010
 AliCaloCalibPedestal.cxx:1011
 AliCaloCalibPedestal.cxx:1012
 AliCaloCalibPedestal.cxx:1013
 AliCaloCalibPedestal.cxx:1014
 AliCaloCalibPedestal.cxx:1015
 AliCaloCalibPedestal.cxx:1016
 AliCaloCalibPedestal.cxx:1017
 AliCaloCalibPedestal.cxx:1018
 AliCaloCalibPedestal.cxx:1019
 AliCaloCalibPedestal.cxx:1020
 AliCaloCalibPedestal.cxx:1021
 AliCaloCalibPedestal.cxx:1022
 AliCaloCalibPedestal.cxx:1023
 AliCaloCalibPedestal.cxx:1024
 AliCaloCalibPedestal.cxx:1025
 AliCaloCalibPedestal.cxx:1026
 AliCaloCalibPedestal.cxx:1027
 AliCaloCalibPedestal.cxx:1028
 AliCaloCalibPedestal.cxx:1029
 AliCaloCalibPedestal.cxx:1030
 AliCaloCalibPedestal.cxx:1031
 AliCaloCalibPedestal.cxx:1032
 AliCaloCalibPedestal.cxx:1033
 AliCaloCalibPedestal.cxx:1034
 AliCaloCalibPedestal.cxx:1035
 AliCaloCalibPedestal.cxx:1036
 AliCaloCalibPedestal.cxx:1037
 AliCaloCalibPedestal.cxx:1038
 AliCaloCalibPedestal.cxx:1039
 AliCaloCalibPedestal.cxx:1040
 AliCaloCalibPedestal.cxx:1041
 AliCaloCalibPedestal.cxx:1042
 AliCaloCalibPedestal.cxx:1043
 AliCaloCalibPedestal.cxx:1044
 AliCaloCalibPedestal.cxx:1045
 AliCaloCalibPedestal.cxx:1046
 AliCaloCalibPedestal.cxx:1047
 AliCaloCalibPedestal.cxx:1048
 AliCaloCalibPedestal.cxx:1049
 AliCaloCalibPedestal.cxx:1050
 AliCaloCalibPedestal.cxx:1051
 AliCaloCalibPedestal.cxx:1052
 AliCaloCalibPedestal.cxx:1053
 AliCaloCalibPedestal.cxx:1054
 AliCaloCalibPedestal.cxx:1055
 AliCaloCalibPedestal.cxx:1056
 AliCaloCalibPedestal.cxx:1057
 AliCaloCalibPedestal.cxx:1058
 AliCaloCalibPedestal.cxx:1059
 AliCaloCalibPedestal.cxx:1060
 AliCaloCalibPedestal.cxx:1061
 AliCaloCalibPedestal.cxx:1062
 AliCaloCalibPedestal.cxx:1063
 AliCaloCalibPedestal.cxx:1064
 AliCaloCalibPedestal.cxx:1065
 AliCaloCalibPedestal.cxx:1066
 AliCaloCalibPedestal.cxx:1067
 AliCaloCalibPedestal.cxx:1068
 AliCaloCalibPedestal.cxx:1069
 AliCaloCalibPedestal.cxx:1070
 AliCaloCalibPedestal.cxx:1071
 AliCaloCalibPedestal.cxx:1072
 AliCaloCalibPedestal.cxx:1073
 AliCaloCalibPedestal.cxx:1074
 AliCaloCalibPedestal.cxx:1075
 AliCaloCalibPedestal.cxx:1076
 AliCaloCalibPedestal.cxx:1077
 AliCaloCalibPedestal.cxx:1078
 AliCaloCalibPedestal.cxx:1079
 AliCaloCalibPedestal.cxx:1080
 AliCaloCalibPedestal.cxx:1081
 AliCaloCalibPedestal.cxx:1082
 AliCaloCalibPedestal.cxx:1083
 AliCaloCalibPedestal.cxx:1084
 AliCaloCalibPedestal.cxx:1085
 AliCaloCalibPedestal.cxx:1086
 AliCaloCalibPedestal.cxx:1087
 AliCaloCalibPedestal.cxx:1088
 AliCaloCalibPedestal.cxx:1089
 AliCaloCalibPedestal.cxx:1090
 AliCaloCalibPedestal.cxx:1091
 AliCaloCalibPedestal.cxx:1092
 AliCaloCalibPedestal.cxx:1093
 AliCaloCalibPedestal.cxx:1094
 AliCaloCalibPedestal.cxx:1095
 AliCaloCalibPedestal.cxx:1096
 AliCaloCalibPedestal.cxx:1097
 AliCaloCalibPedestal.cxx:1098
 AliCaloCalibPedestal.cxx:1099
 AliCaloCalibPedestal.cxx:1100
 AliCaloCalibPedestal.cxx:1101
 AliCaloCalibPedestal.cxx:1102
 AliCaloCalibPedestal.cxx:1103
 AliCaloCalibPedestal.cxx:1104
 AliCaloCalibPedestal.cxx:1105
 AliCaloCalibPedestal.cxx:1106
 AliCaloCalibPedestal.cxx:1107
 AliCaloCalibPedestal.cxx:1108
 AliCaloCalibPedestal.cxx:1109
 AliCaloCalibPedestal.cxx:1110
 AliCaloCalibPedestal.cxx:1111
 AliCaloCalibPedestal.cxx:1112
 AliCaloCalibPedestal.cxx:1113
 AliCaloCalibPedestal.cxx:1114
 AliCaloCalibPedestal.cxx:1115
 AliCaloCalibPedestal.cxx:1116
 AliCaloCalibPedestal.cxx:1117
 AliCaloCalibPedestal.cxx:1118
 AliCaloCalibPedestal.cxx:1119
 AliCaloCalibPedestal.cxx:1120
 AliCaloCalibPedestal.cxx:1121
 AliCaloCalibPedestal.cxx:1122
 AliCaloCalibPedestal.cxx:1123
 AliCaloCalibPedestal.cxx:1124
 AliCaloCalibPedestal.cxx:1125
 AliCaloCalibPedestal.cxx:1126
 AliCaloCalibPedestal.cxx:1127
 AliCaloCalibPedestal.cxx:1128
 AliCaloCalibPedestal.cxx:1129
 AliCaloCalibPedestal.cxx:1130
 AliCaloCalibPedestal.cxx:1131
 AliCaloCalibPedestal.cxx:1132
 AliCaloCalibPedestal.cxx:1133
 AliCaloCalibPedestal.cxx:1134
 AliCaloCalibPedestal.cxx:1135
 AliCaloCalibPedestal.cxx:1136
 AliCaloCalibPedestal.cxx:1137
 AliCaloCalibPedestal.cxx:1138
 AliCaloCalibPedestal.cxx:1139
 AliCaloCalibPedestal.cxx:1140
 AliCaloCalibPedestal.cxx:1141
 AliCaloCalibPedestal.cxx:1142
 AliCaloCalibPedestal.cxx:1143
 AliCaloCalibPedestal.cxx:1144
 AliCaloCalibPedestal.cxx:1145
 AliCaloCalibPedestal.cxx:1146
 AliCaloCalibPedestal.cxx:1147
 AliCaloCalibPedestal.cxx:1148
 AliCaloCalibPedestal.cxx:1149
 AliCaloCalibPedestal.cxx:1150
 AliCaloCalibPedestal.cxx:1151
 AliCaloCalibPedestal.cxx:1152
 AliCaloCalibPedestal.cxx:1153
 AliCaloCalibPedestal.cxx:1154
 AliCaloCalibPedestal.cxx:1155
 AliCaloCalibPedestal.cxx:1156
 AliCaloCalibPedestal.cxx:1157
 AliCaloCalibPedestal.cxx:1158
 AliCaloCalibPedestal.cxx:1159
 AliCaloCalibPedestal.cxx:1160
 AliCaloCalibPedestal.cxx:1161
 AliCaloCalibPedestal.cxx:1162
 AliCaloCalibPedestal.cxx:1163
 AliCaloCalibPedestal.cxx:1164
 AliCaloCalibPedestal.cxx:1165
 AliCaloCalibPedestal.cxx:1166
 AliCaloCalibPedestal.cxx:1167
 AliCaloCalibPedestal.cxx:1168
 AliCaloCalibPedestal.cxx:1169
 AliCaloCalibPedestal.cxx:1170
 AliCaloCalibPedestal.cxx:1171
 AliCaloCalibPedestal.cxx:1172
 AliCaloCalibPedestal.cxx:1173
 AliCaloCalibPedestal.cxx:1174
 AliCaloCalibPedestal.cxx:1175
 AliCaloCalibPedestal.cxx:1176
 AliCaloCalibPedestal.cxx:1177
 AliCaloCalibPedestal.cxx:1178
 AliCaloCalibPedestal.cxx:1179