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

#include "TF1.h"
#include "TFile.h"
#include "TObjString.h"
#include "TROOT.h"
#include "TClonesArray.h"
#include "TH1F.h"
#include "TObjArray.h"
#include "TMath.h"

// --- Standard library ---

// --- AliRoot header files ---
#include "AliLog.h"
#include "AliRawReaderFile.h"
#include "AliPMDCalibrator.h"
#include "AliRawReaderDate.h"
#include "AliPMDRawStream.h"
#include "AliPMDCalibData.h"
#include "AliPMDddldata.h"
#include "AliCDBManager.h"
#include "AliCDBId.h"
#include "AliCDBMetaData.h"
#include "AliDAQ.h"

//#include "AliPMDCleanNoise.h"
//#include "AliPMDCleaner.h"

#include "AliPMDPedestal.h"
#include "AliCDBManager.h"
#include "AliCDBEntry.h"

ClassImp(AliPMDCalibrator)


AliPMDCalibrator::AliPMDCalibrator():
  fCalibGain(new AliPMDCalibData()), fCalibPed(new AliPMDPedestal())
{
  // Standard Constructor
  for(Int_t idet = 0; idet < kDet; idet++)
    {
      fHdetIso[idet] = NULL ;
      for(Int_t ismn = 0; ismn < kMaxSMN; ismn++)
	{
	  fHsmIso[idet][ismn] = NULL ;
	  for(Int_t jrow = 0; jrow < kMaxRow; jrow++)
	    {
	      for(Int_t kcol = 0; kcol < kMaxCol; kcol++)
		{
		  fGainFact[idet][ismn][jrow][kcol] = 0.0;
		  fHadcIso[idet][ismn][jrow][kcol]  = NULL;
		}
	    }
	}
    }
}
// ------------------------------------------------------------------------ //
AliPMDCalibrator::AliPMDCalibrator(const AliPMDCalibrator &pmdcalibrator):
  fCalibGain(new AliPMDCalibData()), fCalibPed(new AliPMDPedestal())
{
  for(Int_t idet = 0; idet < 2; idet++)
    {
      fHdetIso[idet] = pmdcalibrator.fHdetIso[idet] ;
      for(Int_t ismn = 0; ismn < kMaxSMN; ismn++)
	{
	  fHsmIso[idet][ismn] = pmdcalibrator.fHsmIso[idet][ismn] ;
	  for(Int_t jrow = 0; jrow < kMaxRow; jrow++)
	    {
	      for(Int_t kcol = 0; kcol < kMaxCol; kcol++)
		{
		  fGainFact[idet][ismn][jrow][kcol] = pmdcalibrator.fGainFact[idet][ismn][jrow][kcol];
		  fHadcIso[idet][ismn][jrow][kcol]  = pmdcalibrator.fHadcIso[idet][ismn][jrow][kcol];
		}
	    }
	}
    }
  
}
// ------------------------------------------------------------------------ //
AliPMDCalibrator &AliPMDCalibrator::operator=(const AliPMDCalibrator &pmdcalibrator)
{
  if(this != &pmdcalibrator)
    {
      for(Int_t idet = 0; idet < kDet; idet++)
	{
	  fHdetIso[idet] = pmdcalibrator.fHdetIso[idet] ;
	  for(Int_t ismn = 0; ismn < kMaxSMN; ismn++)
	    {
	      fHsmIso[idet][ismn] = pmdcalibrator.fHsmIso[idet][ismn] ;
	      for(Int_t jrow = 0; jrow < kMaxRow;jrow++)
		{
		  for(Int_t kcol = 0; kcol < kMaxCol; kcol++)
		    {
		      fGainFact[idet][ismn][jrow][kcol] =
			pmdcalibrator.fGainFact[idet][ismn][jrow][kcol];
		      fHadcIso[idet][ismn][jrow][kcol]  =
			pmdcalibrator.fHadcIso[idet][ismn][jrow][kcol];
		    }
		}
	    }
	}
    }
  return *this;
}
// ------------------------------------------------------------------------ //
AliPMDCalibrator::~AliPMDCalibrator()
{
  // destructor
  for (Int_t i=0; i<kDet; i++)
    delete fHdetIso[i] ;
  for (Int_t i=0; i<kDet; i++)
    for (Int_t j=0; j<kMaxSMN; j++)
      delete fHsmIso[i][j] ;
  for (Int_t i=0; i<kDet; i++)
    for (Int_t j=0; j<kMaxSMN; j++)
      for (Int_t k=0; k<kMaxRow; k++)
	for (Int_t l=0; l<kMaxCol; l++)
	  delete fHadcIso[i][j][k][l] ;
  delete fCalibGain;
  delete fCalibPed;
}
// ------------------------------------------------------------------------ //

void AliPMDCalibrator::Exec()
{
  // reads parameters and does the calibration
  CalculateIsoCell() ;
}
// ------------------------------------------------------------------------ //

void AliPMDCalibrator::Init()
{
  // intializes everything
  char hname[50];
  char hname2[50];
  char hname24[50];
  char hnameiso[120];
  char htitle1[120];
  char htitle2[120];
  
  for(Int_t d = 0; d < kDet; d++) {
    snprintf(hname2,50,"Isolated cell adc for Det Plane %d",d);
    fHdetIso[d]= new TH1F(hname2,htitle2,100,0,1000);
    for(Int_t i1 = 0; i1 < kMaxSMN; i1++) {
      snprintf(hname,50,"det_%d_iso_sm_%2d",d,i1);
      snprintf(hname24,50,"det_%d_iso_sm_%2d",d,i1);
      fHsmIso[d][i1]= new TH1F(hname,hname24,100,0,1000);
      for(Int_t j1 = 0; j1 < kMaxRow; j1++) {
	for(Int_t k1 = 0; k1 < kMaxCol; k1++) {
	  snprintf(hnameiso,120,"Isolated Cell ADC for det_%d_cell_sm%d_row%d_col%d"
		  ,d,i1,j1,k1);
	  snprintf(htitle1,120,"Isolated Cell ADC for det_%d_cell_sm%d_row%d_col%d"
		  ,d,i1,j1,k1);
	  
	  TObject *old=gDirectory->GetList()->FindObject(hnameiso);
	  if (old) gDirectory->GetList()->Remove(old);
	  fHadcIso[d][i1][j1][k1] = new TH1F(hnameiso,htitle1,100,0.,1000.);
	}
      }
    }
  }
  
}

// ------------------------------------------------------------------------ //

void AliPMDCalibrator::CalculateIsoCell()
{
  // Calculates the ADC of isolated cell

  TObjArray pmdddlcont;

  const Int_t kCellNeighbour = 6;

  Int_t neibx[6] = {1,0,-1,-1,0,1};
  Int_t neiby[6] = {0,1,1,0,-1,-1};

  Int_t id1 = 0,jd1 = 0;        //neighbour row/col
  Int_t countisocell = 0 ;      //number of isilated cell
  Int_t isocount = 0;           //number of neighbours with 0 signal
  Int_t maxhit = 0;
  Int_t nhit[kDet][kMaxSMN];
  Int_t d1[kDet][kMaxSMN][kMaxRow][kMaxCol];
  Int_t nhitcell[kDet][kMaxSMN][kMaxRow][kMaxCol];
  
  for(Int_t idet = 0; idet < kDet; idet++)
    {
      for(Int_t ismn = 0; ismn < kMaxSMN; ismn++)
        {
	  nhit[idet][ismn] = 0;
	  for(Int_t irow = 0; irow < kMaxRow; irow++)
	    {
	      for(Int_t icol = 0; icol < kMaxCol; icol++)
		{
		  d1[idet][ismn][irow][icol] = 0;
		  nhitcell[idet][ismn][irow][icol] = 0;
		}
	    }
	}
    }

  Float_t tempnhit1[kDet][kMaxSMN];
  Float_t tempnhit2[kDet][kMaxSMN];
  Float_t meannhit[kDet][kMaxSMN];
  Float_t meanSqnhit[kDet][kMaxSMN];
  Float_t sigmanhit[kDet][kMaxSMN];
  Float_t count[kDet][kMaxSMN];
  Float_t nhitcut[kDet][kMaxSMN];

  for (Int_t idet = 0; idet < kDet; idet++)
  {
      for (Int_t ismn = 0; ismn < kMaxSMN; ismn++)
      {
	  tempnhit1[idet][ismn]  = 0.;
	  tempnhit2[idet][ismn]  = 0.;
	  meannhit[idet][ismn]   = 0.;
	  meanSqnhit[idet][ismn] = 0.;
	  sigmanhit[idet][ismn]  = 0.;
	  count[idet][ismn]      = 0.;
	  nhitcut[idet][ismn]    = 0.;
      }
  }


  //accessing raw data
  AliRawReaderFile reader(".");
  AliPMDRawStream stream(&reader);
  while(reader.NextEvent())
    { 
      // New PMD Reader is plugged in
	Int_t iddl = -1;
	while ((iddl = stream.DdlData(&pmdddlcont)) >=0) {

	    //reader.Select("PMD", iddl, iddl);
	    //stream.DdlData(iddl,&pmdddlcont);
	  Int_t ientries = pmdddlcont.GetEntries();
	  for (Int_t ient = 0; ient < ientries; ient++)
	    {
	      AliPMDddldata *pmdddl = 
		(AliPMDddldata*)pmdddlcont.UncheckedAt(ient);
	      Int_t idet = pmdddl->GetDetector();
	      Int_t ismn = pmdddl->GetSMN();
	      Int_t irow = pmdddl->GetRow();
	      Int_t icol = pmdddl->GetColumn();
	      Float_t isig1 = pmdddl->GetSignal();
	      // Pedestal Subtraction
	      Int_t   pedmeanrms = 
		fCalibPed->GetPedMeanRms(idet,ismn,irow,icol);
	      Int_t   pedrms1    = (Int_t) pedmeanrms%100;
	      Float_t pedrms     = (Float_t)pedrms1/10.;
	      Float_t pedmean    = (Float_t) (pedmeanrms - pedrms1)/1000.0;
	      Float_t isig = isig1 - (pedmean + 3.0*pedrms);
	      if (isig>0)
		{
		  d1[idet][ismn][irow][icol] = (Int_t)isig;
		  nhitcell[idet][ismn][irow][icol] += 1; 
		}
	    }//ient loop
	  pmdddlcont.Clear();
	}//iddl loop
      maxhit = 0;
      for(Int_t idet=0; idet < kDet; idet++)
	{
	  for(Int_t ismn = 0; ismn < kMaxSMN; ismn++)
	    {
	      for(Int_t irow = 0; irow < kMaxRow; irow++)
		{
		  for(Int_t icol = 0; icol < kMaxCol; icol++)
		    {
		      if(d1[idet][ismn][irow][icol] > 0)
			{
			  isocount = 0;
			  for(Int_t ii = 0; ii < kCellNeighbour; ii++)
			    {
			      id1 = irow + neibx[ii];
			      jd1 = icol + neiby[ii];
			      if(d1[idet][ismn][id1][jd1] == 0)
				{
				  isocount++;
				  if(isocount == kCellNeighbour)
				    {
				      countisocell++;
				      maxhit++;
                                      fHdetIso[idet]->
					Fill(d1[idet][ismn][irow][icol]);
				      fHsmIso[idet][ismn]->
					Fill(d1[idet][ismn][irow][icol]);
				      fHadcIso[idet][ismn][irow][icol]->
					Fill(d1[idet][ismn][irow][icol]);
				    }
				}
			    }  // neigh cell cond.
			}     // d>0 cond.
		    }
		}
	    }
	} //det
    }//event loop

  // Mean and Sigma Calculations
  for(Int_t idet=0; idet < kDet; idet++){
      for(Int_t ismn = 0; ismn < kMaxSMN; ismn++){
	  for(Int_t irow = 0; irow < kMaxRow; irow++){
	      for(Int_t icol = 0; icol < kMaxCol; icol++){
		  if(nhitcell[idet][ismn][irow][icol]>0){
		      count[idet][ismn] += 1;
		      tempnhit1[idet][ismn] += nhitcell[idet][ismn][irow][icol];
		      tempnhit2[idet][ismn] += nhitcell[idet][ismn][irow][icol]
			  *nhitcell[idet][ismn][irow][icol];
		  }
	      }
	  }
      }
  }//det loop

  //cout<<"nhit cell = "<<idet<<"  "<<ismn<<"  "
  //  <<irow<<"  "<<icol<<"  "<<nhitcell[idet][ismn][irow][icol]<<endl;
  //count[idet][ismn] += 1;

  for(Int_t i=0; i < kDet; i++)
    {
      for(Int_t j=0; j < kMaxSMN; j++)
	{
	  if(count[i][j] > 0.)
	    {
		meannhit[i][j]   = tempnhit1[i][j]/count[i][j];
		meanSqnhit[i][j] = tempnhit2[i][j]/count[i][j]; 
		sigmanhit[i][j]  = sqrt(meanSqnhit[i][j]-
				      (meannhit[i][j]*meannhit[i][j]));
		nhitcut[i][j]    = 3*sigmanhit[i][j] + meannhit[i][j];
	    }
	}
    }


  Double_t histdetMean[kDet];
  Double_t histMean[kDet][kMaxSMN];
  Double_t isoMean[kDet][kMaxSMN][kMaxRow][kMaxCol];
  Double_t smNormFactor[kDet][kMaxSMN];
  
  for(Int_t det1 = 0; det1 < kDet; det1++)
    {
      histdetMean[det1]= fHdetIso[det1]->GetMean();
      for(Int_t i1 = 0; i1 < kMaxSMN; i1++)
	{
	  histMean[det1][i1]= fHsmIso[det1][i1]->GetMean();
	  if(histMean[det1][i1]>0.0 && histdetMean[det1]>0.0)
	    {
	      smNormFactor[det1][i1]= histdetMean[det1]/histMean[det1][i1];
	    }
	  for(Int_t j1 = 0; j1 < kMaxRow; j1++)
	    {
	      for(Int_t k1 = 0; k1 < kMaxCol; k1++)
		{
		 if(nhitcell[det1][i1][j1][k1]> nhitcut[det1][i1]) fGainFact[det1][i1][j1][k1]=-99.0;
		   if(nhitcell[det1][i1][j1][k1]< nhitcut[det1][i1])
		     {
		      isoMean[det1][i1][j1][k1]=fHadcIso[det1][i1][j1][k1]->
			GetMean();
		      if(isoMean[det1][i1][j1][k1]>0.0 && histMean[det1][i1]>0.0)
			{
			  fGainFact[det1][i1][j1][k1]=
			    isoMean[det1][i1][j1][k1]/(histMean[det1][i1]*
						     smNormFactor[det1][i1]);

			}
		    }   
 		   Float_t gain = fGainFact[det1][i1][j1][k1];
 		   fCalibGain->SetGainFact(det1,i1,j1,k1,gain);
		}
                          
 			
	    }
	}
    }
}//CalculateIsoCell()

// ------------------------------------------------------------------------ //

Bool_t AliPMDCalibrator::Store()
{
  AliCDBManager *man = AliCDBManager::Instance();
  //man->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
  if(!man->IsDefaultStorageSet()) return kFALSE;
  AliCDBId id("PMD/Calib/Gain",0,999999999);
  AliCDBMetaData md;
  md.SetBeamPeriod(0);
  md.SetComment("Test");
  
  printf("\n\n\n fCalibData\n");
  //fCalibData->Print(0);
  //printf("\n\n\n fCalibData\n");
  
  Bool_t result = man->Put(fCalibGain,id,&md);

  return result;
}

 AliPMDCalibrator.cxx:1
 AliPMDCalibrator.cxx:2
 AliPMDCalibrator.cxx:3
 AliPMDCalibrator.cxx:4
 AliPMDCalibrator.cxx:5
 AliPMDCalibrator.cxx:6
 AliPMDCalibrator.cxx:7
 AliPMDCalibrator.cxx:8
 AliPMDCalibrator.cxx:9
 AliPMDCalibrator.cxx:10
 AliPMDCalibrator.cxx:11
 AliPMDCalibrator.cxx:12
 AliPMDCalibrator.cxx:13
 AliPMDCalibrator.cxx:14
 AliPMDCalibrator.cxx:15
 AliPMDCalibrator.cxx:16
 AliPMDCalibrator.cxx:17
 AliPMDCalibrator.cxx:18
 AliPMDCalibrator.cxx:19
 AliPMDCalibrator.cxx:20
 AliPMDCalibrator.cxx:21
 AliPMDCalibrator.cxx:22
 AliPMDCalibrator.cxx:23
 AliPMDCalibrator.cxx:24
 AliPMDCalibrator.cxx:25
 AliPMDCalibrator.cxx:26
 AliPMDCalibrator.cxx:27
 AliPMDCalibrator.cxx:28
 AliPMDCalibrator.cxx:29
 AliPMDCalibrator.cxx:30
 AliPMDCalibrator.cxx:31
 AliPMDCalibrator.cxx:32
 AliPMDCalibrator.cxx:33
 AliPMDCalibrator.cxx:34
 AliPMDCalibrator.cxx:35
 AliPMDCalibrator.cxx:36
 AliPMDCalibrator.cxx:37
 AliPMDCalibrator.cxx:38
 AliPMDCalibrator.cxx:39
 AliPMDCalibrator.cxx:40
 AliPMDCalibrator.cxx:41
 AliPMDCalibrator.cxx:42
 AliPMDCalibrator.cxx:43
 AliPMDCalibrator.cxx:44
 AliPMDCalibrator.cxx:45
 AliPMDCalibrator.cxx:46
 AliPMDCalibrator.cxx:47
 AliPMDCalibrator.cxx:48
 AliPMDCalibrator.cxx:49
 AliPMDCalibrator.cxx:50
 AliPMDCalibrator.cxx:51
 AliPMDCalibrator.cxx:52
 AliPMDCalibrator.cxx:53
 AliPMDCalibrator.cxx:54
 AliPMDCalibrator.cxx:55
 AliPMDCalibrator.cxx:56
 AliPMDCalibrator.cxx:57
 AliPMDCalibrator.cxx:58
 AliPMDCalibrator.cxx:59
 AliPMDCalibrator.cxx:60
 AliPMDCalibrator.cxx:61
 AliPMDCalibrator.cxx:62
 AliPMDCalibrator.cxx:63
 AliPMDCalibrator.cxx:64
 AliPMDCalibrator.cxx:65
 AliPMDCalibrator.cxx:66
 AliPMDCalibrator.cxx:67
 AliPMDCalibrator.cxx:68
 AliPMDCalibrator.cxx:69
 AliPMDCalibrator.cxx:70
 AliPMDCalibrator.cxx:71
 AliPMDCalibrator.cxx:72
 AliPMDCalibrator.cxx:73
 AliPMDCalibrator.cxx:74
 AliPMDCalibrator.cxx:75
 AliPMDCalibrator.cxx:76
 AliPMDCalibrator.cxx:77
 AliPMDCalibrator.cxx:78
 AliPMDCalibrator.cxx:79
 AliPMDCalibrator.cxx:80
 AliPMDCalibrator.cxx:81
 AliPMDCalibrator.cxx:82
 AliPMDCalibrator.cxx:83
 AliPMDCalibrator.cxx:84
 AliPMDCalibrator.cxx:85
 AliPMDCalibrator.cxx:86
 AliPMDCalibrator.cxx:87
 AliPMDCalibrator.cxx:88
 AliPMDCalibrator.cxx:89
 AliPMDCalibrator.cxx:90
 AliPMDCalibrator.cxx:91
 AliPMDCalibrator.cxx:92
 AliPMDCalibrator.cxx:93
 AliPMDCalibrator.cxx:94
 AliPMDCalibrator.cxx:95
 AliPMDCalibrator.cxx:96
 AliPMDCalibrator.cxx:97
 AliPMDCalibrator.cxx:98
 AliPMDCalibrator.cxx:99
 AliPMDCalibrator.cxx:100
 AliPMDCalibrator.cxx:101
 AliPMDCalibrator.cxx:102
 AliPMDCalibrator.cxx:103
 AliPMDCalibrator.cxx:104
 AliPMDCalibrator.cxx:105
 AliPMDCalibrator.cxx:106
 AliPMDCalibrator.cxx:107
 AliPMDCalibrator.cxx:108
 AliPMDCalibrator.cxx:109
 AliPMDCalibrator.cxx:110
 AliPMDCalibrator.cxx:111
 AliPMDCalibrator.cxx:112
 AliPMDCalibrator.cxx:113
 AliPMDCalibrator.cxx:114
 AliPMDCalibrator.cxx:115
 AliPMDCalibrator.cxx:116
 AliPMDCalibrator.cxx:117
 AliPMDCalibrator.cxx:118
 AliPMDCalibrator.cxx:119
 AliPMDCalibrator.cxx:120
 AliPMDCalibrator.cxx:121
 AliPMDCalibrator.cxx:122
 AliPMDCalibrator.cxx:123
 AliPMDCalibrator.cxx:124
 AliPMDCalibrator.cxx:125
 AliPMDCalibrator.cxx:126
 AliPMDCalibrator.cxx:127
 AliPMDCalibrator.cxx:128
 AliPMDCalibrator.cxx:129
 AliPMDCalibrator.cxx:130
 AliPMDCalibrator.cxx:131
 AliPMDCalibrator.cxx:132
 AliPMDCalibrator.cxx:133
 AliPMDCalibrator.cxx:134
 AliPMDCalibrator.cxx:135
 AliPMDCalibrator.cxx:136
 AliPMDCalibrator.cxx:137
 AliPMDCalibrator.cxx:138
 AliPMDCalibrator.cxx:139
 AliPMDCalibrator.cxx:140
 AliPMDCalibrator.cxx:141
 AliPMDCalibrator.cxx:142
 AliPMDCalibrator.cxx:143
 AliPMDCalibrator.cxx:144
 AliPMDCalibrator.cxx:145
 AliPMDCalibrator.cxx:146
 AliPMDCalibrator.cxx:147
 AliPMDCalibrator.cxx:148
 AliPMDCalibrator.cxx:149
 AliPMDCalibrator.cxx:150
 AliPMDCalibrator.cxx:151
 AliPMDCalibrator.cxx:152
 AliPMDCalibrator.cxx:153
 AliPMDCalibrator.cxx:154
 AliPMDCalibrator.cxx:155
 AliPMDCalibrator.cxx:156
 AliPMDCalibrator.cxx:157
 AliPMDCalibrator.cxx:158
 AliPMDCalibrator.cxx:159
 AliPMDCalibrator.cxx:160
 AliPMDCalibrator.cxx:161
 AliPMDCalibrator.cxx:162
 AliPMDCalibrator.cxx:163
 AliPMDCalibrator.cxx:164
 AliPMDCalibrator.cxx:165
 AliPMDCalibrator.cxx:166
 AliPMDCalibrator.cxx:167
 AliPMDCalibrator.cxx:168
 AliPMDCalibrator.cxx:169
 AliPMDCalibrator.cxx:170
 AliPMDCalibrator.cxx:171
 AliPMDCalibrator.cxx:172
 AliPMDCalibrator.cxx:173
 AliPMDCalibrator.cxx:174
 AliPMDCalibrator.cxx:175
 AliPMDCalibrator.cxx:176
 AliPMDCalibrator.cxx:177
 AliPMDCalibrator.cxx:178
 AliPMDCalibrator.cxx:179
 AliPMDCalibrator.cxx:180
 AliPMDCalibrator.cxx:181
 AliPMDCalibrator.cxx:182
 AliPMDCalibrator.cxx:183
 AliPMDCalibrator.cxx:184
 AliPMDCalibrator.cxx:185
 AliPMDCalibrator.cxx:186
 AliPMDCalibrator.cxx:187
 AliPMDCalibrator.cxx:188
 AliPMDCalibrator.cxx:189
 AliPMDCalibrator.cxx:190
 AliPMDCalibrator.cxx:191
 AliPMDCalibrator.cxx:192
 AliPMDCalibrator.cxx:193
 AliPMDCalibrator.cxx:194
 AliPMDCalibrator.cxx:195
 AliPMDCalibrator.cxx:196
 AliPMDCalibrator.cxx:197
 AliPMDCalibrator.cxx:198
 AliPMDCalibrator.cxx:199
 AliPMDCalibrator.cxx:200
 AliPMDCalibrator.cxx:201
 AliPMDCalibrator.cxx:202
 AliPMDCalibrator.cxx:203
 AliPMDCalibrator.cxx:204
 AliPMDCalibrator.cxx:205
 AliPMDCalibrator.cxx:206
 AliPMDCalibrator.cxx:207
 AliPMDCalibrator.cxx:208
 AliPMDCalibrator.cxx:209
 AliPMDCalibrator.cxx:210
 AliPMDCalibrator.cxx:211
 AliPMDCalibrator.cxx:212
 AliPMDCalibrator.cxx:213
 AliPMDCalibrator.cxx:214
 AliPMDCalibrator.cxx:215
 AliPMDCalibrator.cxx:216
 AliPMDCalibrator.cxx:217
 AliPMDCalibrator.cxx:218
 AliPMDCalibrator.cxx:219
 AliPMDCalibrator.cxx:220
 AliPMDCalibrator.cxx:221
 AliPMDCalibrator.cxx:222
 AliPMDCalibrator.cxx:223
 AliPMDCalibrator.cxx:224
 AliPMDCalibrator.cxx:225
 AliPMDCalibrator.cxx:226
 AliPMDCalibrator.cxx:227
 AliPMDCalibrator.cxx:228
 AliPMDCalibrator.cxx:229
 AliPMDCalibrator.cxx:230
 AliPMDCalibrator.cxx:231
 AliPMDCalibrator.cxx:232
 AliPMDCalibrator.cxx:233
 AliPMDCalibrator.cxx:234
 AliPMDCalibrator.cxx:235
 AliPMDCalibrator.cxx:236
 AliPMDCalibrator.cxx:237
 AliPMDCalibrator.cxx:238
 AliPMDCalibrator.cxx:239
 AliPMDCalibrator.cxx:240
 AliPMDCalibrator.cxx:241
 AliPMDCalibrator.cxx:242
 AliPMDCalibrator.cxx:243
 AliPMDCalibrator.cxx:244
 AliPMDCalibrator.cxx:245
 AliPMDCalibrator.cxx:246
 AliPMDCalibrator.cxx:247
 AliPMDCalibrator.cxx:248
 AliPMDCalibrator.cxx:249
 AliPMDCalibrator.cxx:250
 AliPMDCalibrator.cxx:251
 AliPMDCalibrator.cxx:252
 AliPMDCalibrator.cxx:253
 AliPMDCalibrator.cxx:254
 AliPMDCalibrator.cxx:255
 AliPMDCalibrator.cxx:256
 AliPMDCalibrator.cxx:257
 AliPMDCalibrator.cxx:258
 AliPMDCalibrator.cxx:259
 AliPMDCalibrator.cxx:260
 AliPMDCalibrator.cxx:261
 AliPMDCalibrator.cxx:262
 AliPMDCalibrator.cxx:263
 AliPMDCalibrator.cxx:264
 AliPMDCalibrator.cxx:265
 AliPMDCalibrator.cxx:266
 AliPMDCalibrator.cxx:267
 AliPMDCalibrator.cxx:268
 AliPMDCalibrator.cxx:269
 AliPMDCalibrator.cxx:270
 AliPMDCalibrator.cxx:271
 AliPMDCalibrator.cxx:272
 AliPMDCalibrator.cxx:273
 AliPMDCalibrator.cxx:274
 AliPMDCalibrator.cxx:275
 AliPMDCalibrator.cxx:276
 AliPMDCalibrator.cxx:277
 AliPMDCalibrator.cxx:278
 AliPMDCalibrator.cxx:279
 AliPMDCalibrator.cxx:280
 AliPMDCalibrator.cxx:281
 AliPMDCalibrator.cxx:282
 AliPMDCalibrator.cxx:283
 AliPMDCalibrator.cxx:284
 AliPMDCalibrator.cxx:285
 AliPMDCalibrator.cxx:286
 AliPMDCalibrator.cxx:287
 AliPMDCalibrator.cxx:288
 AliPMDCalibrator.cxx:289
 AliPMDCalibrator.cxx:290
 AliPMDCalibrator.cxx:291
 AliPMDCalibrator.cxx:292
 AliPMDCalibrator.cxx:293
 AliPMDCalibrator.cxx:294
 AliPMDCalibrator.cxx:295
 AliPMDCalibrator.cxx:296
 AliPMDCalibrator.cxx:297
 AliPMDCalibrator.cxx:298
 AliPMDCalibrator.cxx:299
 AliPMDCalibrator.cxx:300
 AliPMDCalibrator.cxx:301
 AliPMDCalibrator.cxx:302
 AliPMDCalibrator.cxx:303
 AliPMDCalibrator.cxx:304
 AliPMDCalibrator.cxx:305
 AliPMDCalibrator.cxx:306
 AliPMDCalibrator.cxx:307
 AliPMDCalibrator.cxx:308
 AliPMDCalibrator.cxx:309
 AliPMDCalibrator.cxx:310
 AliPMDCalibrator.cxx:311
 AliPMDCalibrator.cxx:312
 AliPMDCalibrator.cxx:313
 AliPMDCalibrator.cxx:314
 AliPMDCalibrator.cxx:315
 AliPMDCalibrator.cxx:316
 AliPMDCalibrator.cxx:317
 AliPMDCalibrator.cxx:318
 AliPMDCalibrator.cxx:319
 AliPMDCalibrator.cxx:320
 AliPMDCalibrator.cxx:321
 AliPMDCalibrator.cxx:322
 AliPMDCalibrator.cxx:323
 AliPMDCalibrator.cxx:324
 AliPMDCalibrator.cxx:325
 AliPMDCalibrator.cxx:326
 AliPMDCalibrator.cxx:327
 AliPMDCalibrator.cxx:328
 AliPMDCalibrator.cxx:329
 AliPMDCalibrator.cxx:330
 AliPMDCalibrator.cxx:331
 AliPMDCalibrator.cxx:332
 AliPMDCalibrator.cxx:333
 AliPMDCalibrator.cxx:334
 AliPMDCalibrator.cxx:335
 AliPMDCalibrator.cxx:336
 AliPMDCalibrator.cxx:337
 AliPMDCalibrator.cxx:338
 AliPMDCalibrator.cxx:339
 AliPMDCalibrator.cxx:340
 AliPMDCalibrator.cxx:341
 AliPMDCalibrator.cxx:342
 AliPMDCalibrator.cxx:343
 AliPMDCalibrator.cxx:344
 AliPMDCalibrator.cxx:345
 AliPMDCalibrator.cxx:346
 AliPMDCalibrator.cxx:347
 AliPMDCalibrator.cxx:348
 AliPMDCalibrator.cxx:349
 AliPMDCalibrator.cxx:350
 AliPMDCalibrator.cxx:351
 AliPMDCalibrator.cxx:352
 AliPMDCalibrator.cxx:353
 AliPMDCalibrator.cxx:354
 AliPMDCalibrator.cxx:355
 AliPMDCalibrator.cxx:356
 AliPMDCalibrator.cxx:357
 AliPMDCalibrator.cxx:358
 AliPMDCalibrator.cxx:359
 AliPMDCalibrator.cxx:360
 AliPMDCalibrator.cxx:361
 AliPMDCalibrator.cxx:362
 AliPMDCalibrator.cxx:363
 AliPMDCalibrator.cxx:364
 AliPMDCalibrator.cxx:365
 AliPMDCalibrator.cxx:366
 AliPMDCalibrator.cxx:367
 AliPMDCalibrator.cxx:368
 AliPMDCalibrator.cxx:369
 AliPMDCalibrator.cxx:370
 AliPMDCalibrator.cxx:371
 AliPMDCalibrator.cxx:372
 AliPMDCalibrator.cxx:373
 AliPMDCalibrator.cxx:374
 AliPMDCalibrator.cxx:375
 AliPMDCalibrator.cxx:376
 AliPMDCalibrator.cxx:377
 AliPMDCalibrator.cxx:378
 AliPMDCalibrator.cxx:379
 AliPMDCalibrator.cxx:380
 AliPMDCalibrator.cxx:381
 AliPMDCalibrator.cxx:382
 AliPMDCalibrator.cxx:383
 AliPMDCalibrator.cxx:384
 AliPMDCalibrator.cxx:385
 AliPMDCalibrator.cxx:386
 AliPMDCalibrator.cxx:387
 AliPMDCalibrator.cxx:388
 AliPMDCalibrator.cxx:389
 AliPMDCalibrator.cxx:390
 AliPMDCalibrator.cxx:391
 AliPMDCalibrator.cxx:392
 AliPMDCalibrator.cxx:393
 AliPMDCalibrator.cxx:394
 AliPMDCalibrator.cxx:395
 AliPMDCalibrator.cxx:396
 AliPMDCalibrator.cxx:397
 AliPMDCalibrator.cxx:398
 AliPMDCalibrator.cxx:399
 AliPMDCalibrator.cxx:400
 AliPMDCalibrator.cxx:401
 AliPMDCalibrator.cxx:402
 AliPMDCalibrator.cxx:403
 AliPMDCalibrator.cxx:404
 AliPMDCalibrator.cxx:405
 AliPMDCalibrator.cxx:406
 AliPMDCalibrator.cxx:407
 AliPMDCalibrator.cxx:408
 AliPMDCalibrator.cxx:409
 AliPMDCalibrator.cxx:410
 AliPMDCalibrator.cxx:411
 AliPMDCalibrator.cxx:412
 AliPMDCalibrator.cxx:413
 AliPMDCalibrator.cxx:414
 AliPMDCalibrator.cxx:415