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

/////////////////////////////////////////////////////////////////////////////////
//                                                                             
// AliTRDcalibration                                                            
//                                                                             
// Task to run the calibration offline.
// Author:
//   R. Bailhache (rbailhache@ikf.uni-frankfurt.de, R.Bailhache@gsi.de)
//           
//////////////////////////////////////////////////////////////////////////////////


#include "Riostream.h"
#include "TChain.h"
#include "TTree.h"
#include "TProfile2D.h"
#include "TH2I.h"
#include "TH1F.h"
#include "TList.h"
#include "TMath.h"
#include "TCanvas.h"
#include "TObject.h"
#include "TFile.h"
#include "TObjArray.h"
#include "TGraph.h"
#include "TStyle.h"
#include "TLegend.h"
#include "TGraphErrors.h"

#include "AliTRDrecoTask.h"
#include "AliAnalysisManager.h"

#include "AliESDInputHandler.h"
#include "AliTRDtrackV1.h"
#include "AliTRDseedV1.h"
#include "AliTRDcluster.h"
#include "info/AliTRDtrackInfo.h"
#include "AliTRDcalibDB.h"

#include "AliTRDCalibraFillHisto.h"
#include "AliTRDCalibraFit.h"
#include "AliTRDCalibraVdriftLinearFit.h"
#include "AliTRDCalibraMode.h"
#include "AliTRDCalibraVector.h"
#include "./Cal/AliTRDCalPad.h"
#include "./Cal/AliTRDCalDet.h"

#include "AliLog.h"

#include "AliTRDcalibration.h"


ClassImp(AliTRDcalibration)

//________________________________________________________________________
AliTRDcalibration::AliTRDcalibration() 
  :AliTRDrecoTask()
  ,fTrackInfo(0)
  ,ftrdTrack(0)
  ,fcl(0)
  ,fTRDCalibraFillHisto(0)
  ,fNbTRDTrack(0)
  ,fNbTRDTrackOffline(0)
  ,fNbTRDTrackStandalone(0)
  ,fNbTRDTracklet(0)
  ,fNbTRDTrackletOffline(0)
  ,fNbTRDTrackletStandalone(0)
  ,fNbTimeBin(0x0)
  ,fNbTimeBinOffline(0x0)
  ,fNbTimeBinStandalone(0x0)
  ,fNbClusters(0)
  ,fNbClustersOffline(0)
  ,fNbClustersStandalone(0)
  ,fPHSM(0)
  ,fCHSM(0)
  ,fPHSum(0)
  ,fCHSum(0)
  ,fDetSum(0)
  ,fDetSumVector(0)
  ,fHisto2d(kTRUE)
  ,fVector2d(kFALSE)
  ,fVdriftLinear(kTRUE)
  ,flow(0)
  ,fhigh(30)
  ,fNbTimeBins(0)
  ,ffillZero(kFALSE)
  ,fnormalizeNbOfCluster(kFALSE)
  ,fmaxCluster(0)
  ,fOfflineTracks(kFALSE)
  ,fStandaloneTracks(kFALSE)
  ,fCompressPerDetector(kFALSE)
  ,fGraph(0x0)
  ,fArrayCalib(0x0)
  ,fPostProcess(kFALSE)
{
  // Constructor
  
  fNRefFigures = 17;

  for(Int_t k = 0; k < 3; k++)
    {
      fNz[k]=0;
      fNrphi[k]=0;
    }

}  

AliTRDcalibration::AliTRDcalibration(char* name) 
  :AliTRDrecoTask(name, "Calibration on tracks")
  ,fTrackInfo(0)
  ,ftrdTrack(0)
  ,fcl(0)
  ,fTRDCalibraFillHisto(0)
  ,fNbTRDTrack(0)
  ,fNbTRDTrackOffline(0)
  ,fNbTRDTrackStandalone(0)
  ,fNbTRDTracklet(0)
  ,fNbTRDTrackletOffline(0)
  ,fNbTRDTrackletStandalone(0)
  ,fNbTimeBin(0x0)
  ,fNbTimeBinOffline(0x0)
  ,fNbTimeBinStandalone(0x0)
  ,fNbClusters(0)
  ,fNbClustersOffline(0)
  ,fNbClustersStandalone(0)
  ,fPHSM(0)
  ,fCHSM(0)
  ,fPHSum(0)
  ,fCHSum(0)
  ,fDetSum(0)
  ,fDetSumVector(0)
  ,fHisto2d(kTRUE)
  ,fVector2d(kFALSE)
  ,fVdriftLinear(kTRUE)
  ,flow(0)
  ,fhigh(30)
  ,fNbTimeBins(0)
  ,ffillZero(kFALSE)
  ,fnormalizeNbOfCluster(kFALSE)
  ,fmaxCluster(0)
  ,fOfflineTracks(kFALSE)
  ,fStandaloneTracks(kFALSE)
  ,fCompressPerDetector(kFALSE)
  ,fGraph(0x0)
  ,fArrayCalib(0x0)
  ,fPostProcess(kFALSE)
{
  // Constructor
  
  fNRefFigures = 17;

  for(Int_t k = 0; k < 3; k++)
    {
      fNz[k]=0;
      fNrphi[k]=0;
    }

}  

//________________________________________________________________________
AliTRDcalibration::~AliTRDcalibration() 
{
  // Default destructor
  if (AliAnalysisManager::GetAnalysisManager()->IsProofMode()) return;
  //
  if(fNbTRDTrack) delete fNbTRDTrack;
  if(fNbTRDTrackOffline) delete fNbTRDTrackOffline;
  if(fNbTRDTrackStandalone) delete fNbTRDTrackStandalone;
  if(fNbTRDTracklet) delete fNbTRDTracklet;
  if(fNbTRDTrackletOffline) delete fNbTRDTrackletOffline;
  if(fNbTRDTrackletStandalone) delete fNbTRDTrackletStandalone;
  if(fNbTimeBin) delete fNbTimeBin;
  if(fNbTimeBinOffline) delete fNbTimeBinOffline;
  if(fNbTimeBinStandalone) delete fNbTimeBinStandalone;
  if(fNbClusters) delete fNbClusters;
  if(fNbClustersOffline) delete fNbClustersOffline;
  if(fNbClustersStandalone) delete fNbClustersStandalone;
  if(fPHSM) delete fPHSM;
  if(fCHSM) delete fCHSM;
  if(fPHSum) delete fPHSum;
  if(fCHSum) delete fCHSum;
  if(fDetSum) delete fDetSum;
  if(fDetSumVector) delete fDetSumVector;
  if(fGraph){fGraph->Delete(); delete fGraph;}
  if(fArrayCalib){fArrayCalib->Delete(); delete fArrayCalib;}
   
}
//________________________________________________________________________
void AliTRDcalibration::UserCreateOutputObjects() 
{
  // Create output objects

  // Number of time bins
  if(fNbTimeBins==0) {
    AliTRDcalibDB *cal = AliTRDcalibDB::Instance();
    fNbTimeBins = cal->GetNumberOfTimeBinsDCS();
    if(fNbTimeBins <= 0){ 
      AliWarning(Form("No of TimeBins from DB [%d] use default [30]", fNbTimeBins));
      fNbTimeBins = 30;
    }
  }
  
  // instance calibration: what to calibrate
  fTRDCalibraFillHisto = AliTRDCalibraFillHisto::Instance();
  fTRDCalibraFillHisto->SetHisto2d(fHisto2d); // choose to use histograms
  fTRDCalibraFillHisto->SetVector2d(fVector2d); // choose to use vectors
  fTRDCalibraFillHisto->SetCH2dOn();  // choose to calibrate the gain
  fTRDCalibraFillHisto->SetPH2dOn();  // choose to calibrate the drift velocity
  fTRDCalibraFillHisto->SetPRF2dOn(); // choose to look at the PRF
  fTRDCalibraFillHisto->SetLinearFitterOn(fVdriftLinear); // Other possibility vdrift VDRIFT
  fTRDCalibraFillHisto->SetLinearFitterDebugOn(fVdriftLinear); // Other possibility vdrift

  // segmentation (should be per default the max and add at the end)
  for(Int_t k = 0; k < 3; k++){
    if(((fNz[k] != 10) && (fNrphi[k] != 10)) && ((fNz[k] != 100) && (fNrphi[k] != 100))) {
      fTRDCalibraFillHisto->SetNz(k,fNz[k]);                                    // Mode calibration
      fTRDCalibraFillHisto->SetNrphi(k,fNrphi[k]);                             // Mode calibration
    }
    else {
      if((fNz[k] == 100) && (fNrphi[k] == 100))  {
	if(fVector2d) AliInfo("The mode all together is not supported by the vector method");
	fTRDCalibraFillHisto->SetAllTogether(k);
      }
      if((fNz[k] == 10) && (fNrphi[k] == 10))  {
	if(fVector2d) AliInfo("The mode per supermodule is not supported by the vector method");
	fTRDCalibraFillHisto->SetPerSuperModule(k);
      }
    }
  }

  // Debug level
  fTRDCalibraFillHisto->SetDebugLevel(DebugLevel()); //debug stuff

  // Init the stuff
  fTRDCalibraFillHisto->Init2Dhistos(fNbTimeBins); // initialise the histos

  // cuts
  fTRDCalibraFillHisto->SetNumberClusters(flow); // At least flow clusters
  fTRDCalibraFillHisto->SetNumberClustersf(fhigh); // The more fhigh clusters
  fTRDCalibraFillHisto->SetFillWithZero(ffillZero); // Fill zeros
  fTRDCalibraFillHisto->SetNormalizeNbOfCluster(fnormalizeNbOfCluster); // For iterations

  // Add them to the container
  fContainer = new TObjArray();
  if(fHisto2d) {
    fContainer->Add(fTRDCalibraFillHisto->GetCH2d()); //TH2I
    fContainer->Add(fTRDCalibraFillHisto->GetPH2d()); //TProfile2D
    fContainer->Add(fTRDCalibraFillHisto->GetPRF2d()); //TProfile2D
  }
  if(fVdriftLinear) fContainer->Add(fTRDCalibraFillHisto->GetVdriftLinearFit()); // Other drift velocity 
  if(fVector2d) fContainer->Add(fTRDCalibraFillHisto->GetCalibraVector()); //calibra vector
      
  if(DebugLevel()) {
    
    // Init the debug histos
    fNbTRDTrack = new TH1F("TRDTrack","TRDTrack",500,0,500);
    fNbTRDTrack->Sumw2();
    fNbTRDTrackOffline = new TH1F("TRDTrackOffline","TRDTrackOffline",500,0,500);
    fNbTRDTrackOffline->Sumw2();
    fNbTRDTrackStandalone = new TH1F("TRDTrackStandalone","TRDTrackStandalone",500,0,500);
    fNbTRDTrackStandalone->Sumw2();
    //
    fNbTRDTracklet = new TH1F("TRDTracklet","TRDTracklet",540,0.,540.);
    fNbTRDTracklet->Sumw2();
    fNbTRDTrackletOffline = new TH1F("TRDTrackletOffline","TRDTrackletOffline",540,0.,540.);
    fNbTRDTrackletOffline->Sumw2();
    fNbTRDTrackletStandalone = new TH1F("TRDTrackletStandalone","TRDTrackletStandalone",540,0.,540.);
    fNbTRDTrackletStandalone->Sumw2();
    //
    fNbTimeBin = new TH1F("TimeBin","TimeBin",35,0,35);
    fNbTimeBin->Sumw2();
    fNbTimeBinOffline = new TH1F("TimeBinOffline","TimeBinOffline",35,0,35);
    fNbTimeBinOffline->Sumw2();
    fNbTimeBinStandalone = new TH1F("TimeBinStandalone","TimeBinStandalone",35,0,35);
    fNbTimeBinStandalone->Sumw2();
    //
    fNbClusters = new TH1F("NbClusters","",35,0,35);
    fNbClusters->Sumw2();
    fNbClustersOffline = new TH1F("NbClustersOffline","",35,0,35);
    fNbClustersOffline->Sumw2();
    fNbClustersStandalone = new TH1F("NbClustersStandalone","",35,0,35);
    fNbClustersStandalone->Sumw2();
    //
    fPHSM = new TProfile2D("PH2dSM","Nz10Nrphi10"
			    ,fNbTimeBins,-0.05,(Double_t)((fNbTimeBins-0.5)/10.0)
			    ,18,0,18);
    fPHSM->SetYTitle("Det/pad groups");
    fPHSM->SetXTitle("time [#mus]");
    fPHSM->SetZTitle("<PH> [a.u.]");
    fPHSM->SetStats(0);
    //
    fCHSM = new TH2I("CH2dSM","Nz10Nrphi10",50,0,300,18,0,18);
    fCHSM->SetYTitle("Det/pad groups");
    fCHSM->SetXTitle("charge deposit [a.u]");
    fCHSM->SetZTitle("counts");
    fCHSM->SetStats(0);
    fCHSM->Sumw2();
    //
    fPHSum = new TProfile2D("PH2dSum","Nz100Nrphi100"
			    ,fNbTimeBins,-0.05,(Double_t)((fNbTimeBins-0.5)/10.0)
			    ,1,0,1);
    fPHSum->SetYTitle("Det/pad groups");
    fPHSum->SetXTitle("time [#mus]");
    fPHSum->SetZTitle("<PH> [a.u.]");
    fPHSum->SetStats(0);
    //
    fCHSum = new TH2I("CH2dSum","Nz100Nrphi100",50,0,300,1,0,1);
    fCHSum->SetYTitle("Det/pad groups");
    fCHSum->SetXTitle("charge deposit [a.u]");
    fCHSum->SetZTitle("counts");
    fCHSum->SetStats(0);
    fCHSum->Sumw2();
    
    // Add them
    fContainer->Add(fNbTRDTrack);
    fContainer->Add(fNbTRDTrackOffline);
    fContainer->Add(fNbTRDTrackStandalone);
    fContainer->Add(fNbTRDTracklet);
    fContainer->Add(fNbTRDTrackletOffline);
    fContainer->Add(fNbTRDTrackletStandalone);
    fContainer->Add(fNbTimeBin);
    fContainer->Add(fNbTimeBinOffline);
    fContainer->Add(fNbTimeBinStandalone);
    fContainer->Add(fNbClusters);
    fContainer->Add(fNbClustersOffline);
    fContainer->Add(fNbClustersStandalone);
    fContainer->Add(fPHSM);
    fContainer->Add(fCHSM);
    fContainer->Add(fPHSum);
    fContainer->Add(fCHSum);

  }
  // Post output data
  PostData(1, fContainer);
}

//________________________________________________________________________
void AliTRDcalibration::UserExec(Option_t *) 
{
  //
  // Execute function where the reference data are filled
  //

  if(!fTracks) return;
  
  // In total
  Int_t nbTrdTracks = 0;
  // standalone
  Int_t nbTrdTracksStandalone = 0;
  // offline
  Int_t nbTrdTracksOffline = 0;
  

  //
  // Loop on track in the event
  //
  //printf("Total of %d\n",fTracks->GetEntriesFast());
  for(Int_t itrk=0; itrk < fTracks->GetEntriesFast(); itrk++){
    
    //printf("itrk %d\n",itrk);

    fTrackInfo = (AliTRDtrackInfo*)fTracks->UncheckedAt(itrk);
    ftrdTrack = fTrackInfo->GetTrack();
    if(!ftrdTrack) continue;

    nbTrdTracks++;
  
    fTRDCalibraFillHisto->UpdateHistogramsV1(ftrdTrack);

    if(DebugLevel()) {
      
      Bool_t standalonetracklet = kFALSE;  
      const AliTRDseedV1 *tracklet = 0x0;
      //
      // Loop on tracklet in the event
      //
      for(Int_t itr = 0; itr < 6; itr++){
	//printf("itr %d\n",itr);
 	if(!(tracklet = ftrdTrack->GetTracklet(itr))) continue;
	if(!tracklet->IsOK()) continue;
	// standalone
	if(tracklet->IsStandAlone()) standalonetracklet = kTRUE;
	Int_t nbclusters = 0;
	// For PH
	Double_t phtb[AliTRDseedV1::kNtb];
	memset(phtb, 0, AliTRDseedV1::kNtb*sizeof(Double_t));
	// For CH
	Double_t sum = 0.0;
	// normalisation
	Float_t normalisation = 6.67;
	Int_t detector = 0;
	Int_t sector = 0;
  /*Int_t crossrow = 0;
  // Check no shared clusters
  for(int icc=AliTRDseedV1::kNtb; icc<AliTRDseedV1::kNclusters; icc++){
    if((fcl = tracklet->GetClusters(icc)))  crossrow = 1;
  }*/
	// Loop on clusters
	for(int ic=0; ic<AliTRDseedV1::kNtb; ic++){
	  if(!(fcl = tracklet->GetClusters(ic))) continue;
	  nbclusters++;
	  Int_t time = fcl->GetPadTime();
	  Float_t ch =  tracklet->GetdQdl(ic);
	  Float_t qcl = TMath::Abs(fcl->GetQ());
	  detector = fcl->GetDetector();	  
	  if((time>-1) && (time<fNbTimeBins)) phtb[time]=qcl;
	  sum += ch/normalisation;
	  fNbTimeBin->Fill(time);
	  if(tracklet->IsStandAlone()) fNbTimeBinStandalone->Fill(time);
	  else fNbTimeBinOffline->Fill(time);
	}
	sector = AliTRDgeometry::GetSector(detector);

	fNbTRDTracklet->Fill(detector);
	if(tracklet->IsStandAlone()) fNbTRDTrackletStandalone->Fill(detector);
	else fNbTRDTrackletOffline->Fill(detector);
	
	fNbClusters->Fill(nbclusters);
	if(tracklet->IsStandAlone())  fNbClustersStandalone->Fill(nbclusters);
	else  fNbClustersOffline->Fill(nbclusters);
	
	if((nbclusters > flow) && (nbclusters < fhigh)){
	  fCHSM->Fill(sum/20.0,sector+0.5);
	  fCHSum->Fill(sum/20.0,0.5);
	  for(int ic=0; ic<fNbTimeBins; ic++){
	    if(ffillZero) {
	      fPHSum->Fill((Double_t)(ic/10.0),0.5,(Double_t)phtb[ic]);
	      fPHSM->Fill((Double_t)(ic/10.0),sector+0.5,(Double_t)phtb[ic]);
	    }
	    else {
	      if(phtb[ic] > 0.0) {
		fPHSum->Fill((Double_t)(ic/10.0),0.0,(Double_t)phtb[ic]);
		fPHSM->Fill((Double_t)(ic/10.0),sector+0.5,(Double_t)phtb[ic]);
	      }
	    }
	  }
	}
      }
    
    if(standalonetracklet) nbTrdTracksStandalone++;
    else nbTrdTracksOffline++;
    
    }
    
  }
  
  if(DebugLevel()) {
    
    //Fill Histos
    fNbTRDTrack->Fill(nbTrdTracks);
    fNbTRDTrackStandalone->Fill(nbTrdTracksStandalone);
    fNbTRDTrackOffline->Fill(nbTrdTracksOffline);
    
  }
}  
    
//________________________________________________________________________
void AliTRDcalibration::Terminate(Option_t *) 
{
  // Draw result to the screen
  // Called once at the end of the query

  //printf("terminate\n");

  if(fTRDCalibraFillHisto) fTRDCalibraFillHisto->DestroyDebugStreamer();
 
}
//________________________________________________________
Bool_t AliTRDcalibration::GetRefFigure(Int_t ifig)
{
  //
  // Draw filled histos
  //
  
  gStyle->SetPalette(1);
  gStyle->SetOptStat(1111);
  gStyle->SetPadBorderMode(0);
  gStyle->SetCanvasColor(10);
  gStyle->SetPadLeftMargin(0.13);
  gStyle->SetPadRightMargin(0.13);

  if(!fContainer) return kFALSE;
  
  switch(ifig){
  case kNbTrack:{
    TCanvas *c0 = new TCanvas("c0","c0",10,10,510,510);
    TLegend *legNbTrack = new TLegend(.7, .7, .98, .98);
    legNbTrack->SetBorderSize(1);
    TH1F *h  = 0x0;
    TH1F *ho = 0x0;
    TH1F *hs = 0x0;
    if(!(h = (TH1F *)fContainer->FindObject("TRDTrack"))) break;
    if(!(ho = (TH1F *)fContainer->FindObject("TRDTrackOffline"))) break;
    if(!(hs = (TH1F *)fContainer->FindObject("TRDTrackStandalone"))) break;
    c0->cd();
    //gPad->SetLogy();
    gPad->SetGridy();
    gPad->SetGridx();
    h->Draw();
    ho->Draw("same");
    hs->Draw("same");
    legNbTrack->AddEntry(h, "all", "p");
    legNbTrack->AddEntry(ho, "offline", "p");
    legNbTrack->AddEntry(hs, "standalone", "p");
    legNbTrack->Draw("same");
    return kTRUE;
  }
  case kNbTracklet:{
    TLegend *legNbTracklet = new TLegend(.7, .7, .98, .98);
    legNbTracklet->SetBorderSize(1);
    TH1F *h = 0x0;
    TH1F *ho = 0x0;
    TH1F *hs = 0x0;
    if(!(h = (TH1F *)fContainer->FindObject("TRDTracklet"))) break;
    if(!(ho = (TH1F *)fContainer->FindObject("TRDTrackletOffline"))) break;
    if(!(hs = (TH1F *)fContainer->FindObject("TRDTrackletStandalone"))) break;
    h->Draw();
    ho->Draw("same");
    hs->Draw("same");
    legNbTracklet->AddEntry(h, "all", "p");
    legNbTracklet->AddEntry(ho, "offline", "p");
    legNbTracklet->AddEntry(hs, "standalone", "p");
    legNbTracklet->Draw("same");
    gPad->SetLogy();
    gPad->SetGridy();
    gPad->SetGridx();
    return kTRUE;
  }
  case kNbTimeBin:{
    TLegend *legNbTimeBin = new TLegend(.7, .7, .98, .98);
    legNbTimeBin->SetBorderSize(1);
    TH1F *h = 0x0;
    TH1F *ho = 0x0;
    TH1F *hs = 0x0;
    if(!(h = (TH1F *)fContainer->FindObject("TimeBin"))) break;
    if(!(ho = (TH1F *)fContainer->FindObject("TimeBinOffline"))) break;
    if(!(hs = (TH1F *)fContainer->FindObject("TimeBinStandalone"))) break;
    h->Draw();
    ho->Draw("same");
    hs->Draw("same");
    legNbTimeBin->AddEntry(h, "all", "p");
    legNbTimeBin->AddEntry(ho, "offline", "p");
    legNbTimeBin->AddEntry(hs, "standalone", "p");
    legNbTimeBin->Draw("same");
    //gPad->SetLogy();
    gPad->SetGridy();
    gPad->SetGridx();
    return kTRUE;
  }
  case kNbClusters:{
    TLegend *legNbClusters = new TLegend(.7, .7, .98, .98);
    legNbClusters->SetBorderSize(1);
    TH1F *h = 0x0;
    TH1F *ho = 0x0;
    TH1F *hs = 0x0;
    if(!(h = (TH1F *)fContainer->FindObject("NbClusters"))) break;
    if(!(ho = (TH1F *)fContainer->FindObject("NbClustersOffline"))) break;
    if(!(hs = (TH1F *)fContainer->FindObject("NbClustersStandalone"))) break;
    h->Draw();
    ho->Draw("same");
    hs->Draw("same");
    legNbClusters->AddEntry(h, "all", "p");
    legNbClusters->AddEntry(ho, "offline", "p");
    legNbClusters->AddEntry(hs, "standalone", "p");
    legNbClusters->Draw("same");
    gPad->SetLogy();
    gPad->SetGridy();
    gPad->SetGridx();
    return kTRUE;
  }
  case kPHSum:{
    TProfile2D *h = 0x0;
    if(!(h = (TProfile2D *)fContainer->FindObject("PH2dSum"))) break;
    TH1D *projh = h->ProjectionX("projh",1,1,"e");
    projh->Draw();
    gPad->SetGridy();
    gPad->SetGridx();
    return kTRUE;
  }
  case kCHSum:{
    TH2I *h = 0x0;
    if(!(h = (TH2I *)fContainer->FindObject("CH2dSum"))) break;
    TH1D *projh = h->ProjectionX("projhh",1,1,"e");
    projh->Draw();
    gPad->SetGridy();
    gPad->SetGridx();
    return kTRUE;
  }
  case kPH2D:{
    if(!fHisto2d) {
      AliInfo("Histo was not filled!");
      break;
    }
    TProfile2D *h = 0x0;
    if(!(h = (TProfile2D *)fContainer->FindObject("PH2d"))) break;
    h->Draw("lego");
    return kTRUE;
  }
  case kCH2D:{
    if(!fHisto2d) {
      AliInfo("Histo was not filled!");
      break;
    }
    TH2I *h = 0x0;
    if(!(h = (TH2I *)fContainer->FindObject("CH2d"))) break;
    h->Draw("lego");
    return kTRUE;
  }
  case kPRF2D:{
    if(!fHisto2d) {
      AliInfo("Histo was not filled!");
      break;
    }
    TProfile2D *h = 0x0;
    if(!(h = (TProfile2D *)fContainer->FindObject("PRF2d"))) break;
    h->Draw("lego");
    return kTRUE;
  }
  case kPH2DVector:{
    if(!fVector2d) {
      AliInfo("vector was not filled!");
      break;
    }
    AliTRDCalibraVector *v = 0x0;
    TGraphErrors *vdet = 0x0; 
    if(!(v = (AliTRDCalibraVector *)fContainer->FindObject("AliTRDCalibraVector"))) break;
    Int_t detectormax = -1;
    Int_t groupmax    = -1;
    if(!v->FindTheMaxEntries(1,detectormax,groupmax)) break;
    if(!(vdet = v->ConvertVectorPHTGraphErrors((Int_t)detectormax,groupmax,"plotPH2dVector"))) break;
    Int_t nbeentries = 0;
    TH1F *ko = v->CorrectTheError(vdet,nbeentries);
    ko->Draw();
    AliInfo(Form("There are %d entries in the detector %d and group %d",nbeentries,detectormax,groupmax));
    return kTRUE;
  }
case kCH2DVector:{
    if(!fVector2d) {
      AliInfo("vector was not filled!");
      break;
    }
    AliTRDCalibraVector *v = 0x0;
    TH1F *vdet = 0x0; 
    if(!(v = (AliTRDCalibraVector *)fContainer->FindObject("AliTRDCalibraVector"))) break;
    Int_t detectormax = -1;
    Int_t groupmax    = -1;
    if(!v->FindTheMaxEntries(0,detectormax,groupmax)) break;
    if(!(vdet = v->ConvertVectorCHHisto((Int_t)detectormax,groupmax,"plotCH2dVector"))) break;
    vdet->Draw();
    AliInfo(Form("The detectormax and groupmax are %d and %d",detectormax,groupmax));
    return kTRUE;
  }
  case kPRF2DVector:{
    if(!fVector2d) {
      AliInfo("vector was not filled!");
      break;
    }
    AliTRDCalibraVector *v = 0x0;
    TGraphErrors *vdet = 0x0; 
    if(!(v = (AliTRDCalibraVector *)fContainer->FindObject("AliTRDCalibraVector"))) break;
    Int_t detectormax  = -1;
    Int_t groupmax     = -1;
    Int_t nbeentries   = 0;
    if(!v->FindTheMaxEntries(2,detectormax,groupmax)) break;
    if(!(vdet = v->ConvertVectorPRFTGraphErrors((Int_t)detectormax,groupmax,"plotPRF2dVector"))) break;
    TH1F *ko = v->CorrectTheError(vdet,nbeentries);
    ko->Draw();
    AliInfo(Form("The detectormax and groupmax are %d and %d",detectormax,groupmax));
    return kTRUE;
  }
  case kLinearFitter:{
    if(!fVdriftLinear) {
      AliInfo("vdrift linear was not filled!");
      break;
    }
    AliTRDCalibraVdriftLinearFit *h = 0x0;
    TH2S *hdetector = 0x0; 
    if(!(h = (AliTRDCalibraVdriftLinearFit *)fContainer->FindObject("AliTRDCalibraVdriftLinearFit"))) break;
    Double_t entries[540];
    for(Int_t k = 0; k < 540; k++){
      entries[k] = 0.0;
      hdetector = 0x0;
      if(!(hdetector = (TH2S *)h->GetLinearFitterHisto(k,kFALSE))) continue;
      entries[k] = hdetector->GetEntries();
    }
    Double_t max = -10.0;
    Double_t detectormax = -1;
    for(Int_t k = 0; k < 540; k++){
      if(entries[k] > max) {
	max = entries[k];
	detectormax = k;
      }
    }
    hdetector = 0x0;
    if((TMath::Abs(max) <= 0.001) || (detectormax <0.0) || (detectormax >=540.0)) break;
    if(!(hdetector = (TH2S *)h->GetLinearFitterHisto((Int_t)detectormax,kFALSE))) break;
    AliInfo(Form("The detector with the maximum of entries is %f",detectormax));
    hdetector->Draw();
    return kTRUE;
  }
  case kGainFactor:{
    if(!fPostProcess){
      if(!PostProcess()) break;
    }
    TGraph *fgain = (TGraph *) fGraph->At(0);
    if(!fgain) break;
    fgain->Draw("ALP");
    return kTRUE;
  }
  case kVdriftT0Factor:{
    if(!fPostProcess){
      if(!PostProcess()) break;
    }
    TCanvas *c = new TCanvas("c","c",10,10,510,510);
    c->Divide(2,1);
    TGraph *fvd = (TGraph *) fGraph->At(1);
    if(fvd){
      c->cd(1);
      fvd->Draw("ALP");
    } 
    TGraph *ft0 = (TGraph *) fGraph->At(2);
    if(ft0){
      c->cd(2);
      ft0->Draw("ALP");
    } 
    return kTRUE;
  }
  case kVdriftLorentzAngleFactor:{
    if(!fVdriftLinear) {
      AliInfo("vdrift linear was not filled!");
      break;
    }
    if(!fPostProcess){
      if(!PostProcess()) break;
    }
    TCanvas *c = new TCanvas("c","c",10,10,510,510);
    c->Divide(2,1);
    TGraph *fvdl = (TGraph *) fGraph->At(3);
    if(fvdl){
      c->cd(1);
      fvdl->Draw("ALP");
    } 
    TGraph *flal = (TGraph *) fGraph->At(4);
    if(flal){
      c->cd(2);
      flal->Draw("ALP");
    } 
    return kTRUE;
  }
  case kPRFFactor:{
    if(!fPostProcess){
      if(!PostProcess()) break;
    }
    TGraph *fprf = (TGraph *) fGraph->At(5);
    if(!fprf) break;
    fprf->Draw("ALP");
    return kTRUE;
  }
  }
  
  return kFALSE;
  
}
//________________________________________________________________________
Bool_t AliTRDcalibration::PostProcess()
{
  // 
  // Fit the filled histos
  // Put the calibration object in fArrayCalib
  // 0 and 1 AliTRDCalDet and AliTRDCalPad gain
  // 2 and 3 AliTRDCalDet and AliTRDCalPad vdrift PH
  // 4 and 5 AliTRDCalDet and AliTRDCalPad timeoffset PH
  // 6 AliTRDCalPad PRF
  // 7 and 8 AliTRDCalDet and AliTRDCalPad vdrift second
  // 9 and 10 AliTRDCalDet and AliTRDCalPad lorentz angle second
  //

  if(!fArrayCalib){
    fArrayCalib = new TObjArray(11);
    fArrayCalib->SetOwner();
  }
  else {
    delete fArrayCalib;
    PostProcess();
  }
  
  if(!fGraph){
    fGraph = new TObjArray(6);
    fGraph->SetOwner();
  }
  else {
    delete fGraph;
    PostProcess();
  }

//  Bool_t storage[3] = {kFALSE,kFALSE,kFALSE};

  // Objects for fitting
  AliTRDCalibraFit *calibra = AliTRDCalibraFit::Instance();
  calibra->SetDebugLevel(2); // 0 rien, 1 fitvoir, 2 debug files, 3 one detector  
  
  // Take the stuff
  if (!fContainer) {
    Printf("ERROR: list not available");
    return kFALSE;
  }

  if(fHisto2d && fVector2d) AliInfo("We will only look at histos. Set fHisto2d off if you don't want");
  AliTRDCalibraVector *calibraVector = 0x0;
  if(fVector2d) calibraVector = (AliTRDCalibraVector *) fContainer->FindObject("CalibraVector");
  //
  // GAIN TH2I
  //
  Bool_t pass = kFALSE; 
  AliTRDCalibraVector *vvect = 0x0;
  if(fHisto2d) {
    TH2I *histogain = (TH2I *) fContainer->FindObject("CH2d");  
    if(histogain) {
      histogain->SetDirectory(0);
      calibra->SetMinEntries(20); 
      if(fCompressPerDetector){
	if(AddStatsPerDetector(histogain)) pass = calibra->AnalyseCH(fCHSum);
      }
      else pass = calibra->AnalyseCH(histogain);
    }
  }
  else {
    if(fVector2d && calibraVector) {
      calibra->SetMinEntries(20); 
      if(fCompressPerDetector){
	if(!(vvect = calibraVector->AddStatsPerDetectorCH())) return kFALSE;
       	pass = calibra->AnalyseCH(vvect);
      }
      else pass = calibra->AnalyseCH(calibraVector);
    }
  }
  
  if(pass)
    {
      Int_t nbtg = 6*4*18*((Int_t) ((AliTRDCalibraMode *)calibra->GetCalibraMode())->GetDetChamb0(0))
	+ 6*  18*((Int_t) ((AliTRDCalibraMode *)calibra->GetCalibraMode())->GetDetChamb2(0));
      Int_t nbfit = calibra->GetNumberFit();  //Number of fits
      Int_t nbE   = calibra->GetNumberEnt();  //Number of detector mit entries
      // enough statistics
      if ((nbtg >                  0) && 
	  (nbfit        >= 0.001*nbE))
	{
	  // create the cal objects
	  calibra->PutMeanValueOtherVectorFit(1,kTRUE); 
	  TObjArray object           = calibra->GetVectorFit();
	  AliTRDCalDet *objgaindet   = calibra->CreateDetObjectGain(&object);
	  TObject *objgainpad        = calibra->CreatePadObjectGain();
	  // store
	  fArrayCalib->AddAt(objgaindet,0);
	  fArrayCalib->AddAt(objgainpad,1);
	  //storage[0] = kTRUE;
	  // Make graph
	  TGraph *graph = 0x0;
	  if(FillGraphIndex(&object,graph)){ 
	    fGraph->AddAt(graph,0);
	  }
	}//if(enough statistics?)
      calibra->ResetVectorFit();
    }
  else return kFALSE;
  
  //
  // VDRIFT average pulse height
  //
  pass = kFALSE; 
  if(fHisto2d) {
    TProfile2D *histodriftvelocity = (TProfile2D *) fContainer->FindObject("PH2d");  
    if(histodriftvelocity) {
      histodriftvelocity->SetDirectory(0);  
      calibra->SetMinEntries(20*20);  
      if(fCompressPerDetector){
	if(AddStatsPerDetector(histodriftvelocity,1)) {
	  pass = calibra->AnalysePH(fDetSumVector);
	}
      }
      else pass = calibra->AnalysePH(histodriftvelocity);
    }
  }
  else {
    if(fVector2d && calibraVector) {
      calibra->SetMinEntries(20*20);  
      if(fCompressPerDetector){
	if(!(vvect = calibraVector->AddStatsPerDetectorPH())) return kFALSE;
       	pass = calibra->AnalysePH(vvect);
      }
      else pass = calibra->AnalysePH(calibraVector);  
    }
  }

  if(pass) {
    Int_t nbtg = 6*4*18*((Int_t) ((AliTRDCalibraMode *)calibra->GetCalibraMode())->GetDetChamb0(1))
      + 6*  18*((Int_t) ((AliTRDCalibraMode *)calibra->GetCalibraMode())->GetDetChamb2(1));
    Int_t nbfit  = calibra->GetNumberFit();
    Int_t nbE    = calibra->GetNumberEnt();
    // enough statistics
    if ((nbtg >                  0) && 
	(nbfit        >= 0.001*nbE))
      {
	// create the cal objects
	calibra->PutMeanValueOtherVectorFit(1,kTRUE);
	calibra->PutMeanValueOtherVectorFit2(1,kTRUE); 
	TObjArray object  = calibra->GetVectorFit();
	AliTRDCalDet *objdriftvelocitydet = calibra->CreateDetObjectVdrift(&object,kTRUE);
	TObject *objdriftvelocitypad      = calibra->CreatePadObjectVdrift();
	TObjArray objectt          = calibra->GetVectorFit2();
	AliTRDCalDet *objtime0det  = calibra->CreateDetObjectT0(&object,kTRUE);
	TObject *objtime0pad       = calibra->CreatePadObjectT0();
	// store
	fArrayCalib->AddAt(objdriftvelocitydet,2);
	fArrayCalib->AddAt(objdriftvelocitypad,3);
	//
	fArrayCalib->AddAt(objtime0det,4);
	fArrayCalib->AddAt(objtime0pad,5);
	// Make graph
	TGraph *graph = 0x0;
	if(FillGraphIndex(&object,graph)){ 
	  fGraph->AddAt(graph,1);
	}
	TGraph *graphh = 0x0;
	if(FillGraphIndex(&objectt,graphh)){ 
	  fGraph->AddAt(graphh,2);
	}
      }//if(enough statistics)
    calibra->ResetVectorFit();
  }
  else return kFALSE;
  
  //
  // PRF
  //
  pass = kFALSE; 
  if(fHisto2d) {
    TProfile2D *histoprf = (TProfile2D *) fContainer->FindObject("PRF2d");
    if (histoprf) {
      histoprf->SetDirectory(0);  
      calibra->SetMinEntries(600); 
      if(fCompressPerDetector){
    	if(AddStatsPerDetector(histoprf,2)) pass = calibra->AnalysePRFMarianFit(fDetSumVector);
      }
      else pass = calibra->AnalysePRFMarianFit(histoprf);
    }
  }
  else {
    if(fVector2d && calibraVector) {
      calibra->SetMinEntries(600);  
      if(fCompressPerDetector){
	if(!(vvect =calibraVector->AddStatsPerDetectorPRF())) return kFALSE;
	pass = calibra->AnalysePRFMarianFit(vvect);
      }
      else pass = calibra->AnalysePRFMarianFit(calibraVector);  
    }
  }
  
  if(pass){
    Int_t nbtg = 6*4*18*((Int_t) ((AliTRDCalibraMode *)calibra->GetCalibraMode())->GetDetChamb0(2))
      + 6*  18*((Int_t) ((AliTRDCalibraMode *)calibra->GetCalibraMode())->GetDetChamb2(2));
    Int_t nbfit        = calibra->GetNumberFit();
    Int_t nbE          = calibra->GetNumberEnt();
    // enough statistics
    if ((nbtg >                  0) && 
	(nbfit        >= 0.001*nbE)) {
      TObjArray object            = calibra->GetVectorFit();
      TObject *objPRFpad          = calibra->CreatePadObjectPRF(&object);
      // store
      fArrayCalib->AddAt(objPRFpad,6);
      // Make graph
      TGraph *graph = 0x0;
      if(FillGraphIndex(&object,graph)){ 
	fGraph->AddAt(graph,5);
      }
    }
    calibra->ResetVectorFit();
  }
  else return kFALSE;
  
  //
  // VDRIFT linear fit 
  //
  AliTRDCalibraVdriftLinearFit *vlinearfit = (AliTRDCalibraVdriftLinearFit *) fContainer->FindObject("LinearVdriftFit"); 
  if (vlinearfit) {
    calibra->SetMinEntries(20*20);     
    if(calibra->AnalyseLinearFitters(vlinearfit)) {
      
      Int_t nbtg = 6*4*18*((Int_t) ((AliTRDCalibraMode *)calibra->GetCalibraMode())->GetDetChamb0(2))
	+ 6*  18*((Int_t) ((AliTRDCalibraMode *)calibra->GetCalibraMode())->GetDetChamb2(2));
      Int_t nbfit  = calibra->GetNumberFit();
      Int_t nbE    = calibra->GetNumberEnt();
      // enough statistics
      if ((nbtg >                  0) && 
	  (nbfit        >= 0.001*nbE))
	{
	  // create the cal objects
	  calibra->PutMeanValueOtherVectorFit(1,kTRUE);
	  calibra->PutMeanValueOtherVectorFit2(1,kTRUE); 
	  TObjArray object  = calibra->GetVectorFit();
	  AliTRDCalDet *objdriftvelocitydet = calibra->CreateDetObjectVdrift(&object,kTRUE);
	  TObject *objdriftvelocitypad      = calibra->CreatePadObjectVdrift();
	  TObjArray objectt          = calibra->GetVectorFit2();
	  AliTRDCalDet *objtime0det  = calibra->CreateDetObjectT0(&object,kTRUE);
	  TObject *objtime0pad       = calibra->CreatePadObjectT0();
	  // store dummy
	  fArrayCalib->AddAt(objdriftvelocitydet,7);
	  fArrayCalib->AddAt(objdriftvelocitypad,8);
	  //
	  fArrayCalib->AddAt(objtime0det,9);
	  fArrayCalib->AddAt(objtime0pad,10);
	  // Make graph
	  TGraph *graph = 0x0;
	  if(FillGraphIndex(&object,graph)){ 
	    fGraph->AddAt(graph,3);
	  }
	  TGraph *graphh = 0x0;
	  if(FillGraphIndex(&objectt,graphh)){ 
	    fGraph->AddAt(graphh,4);
	  }
	}//if(enough statistics)
    }// if fit
    calibra->ResetVectorFit();
  }
  else return kFALSE;
  
  fPostProcess = kTRUE;
  
  return kTRUE;
  
}

//________________________________________________________________________
Bool_t AliTRDcalibration::FillGraphIndex(const TObjArray *vectora,TGraph *graph) const
{
  //
  // Fill one value (the first one) per detector
  //

  Int_t loop = (Int_t) vectora->GetEntriesFast();
  if(loop != 540) {
    AliInfo("The Vector Fit is not complete!");
    return kFALSE;
  }
  
  Double_t x[540];
  Double_t y[540];
  for (Int_t k = 0; k < loop; k++) {
    if(!vectora->At(k)){
      x[k] = -1.0;
      y[k] = -1.0;
      continue;
    }
    x[k]  = ((AliTRDCalibraFit::AliTRDFitInfo *) vectora->At(k))->GetDetector();
    y[k]  = ((Float_t *)((AliTRDCalibraFit::AliTRDFitInfo *) vectora->At(k))->GetCoef())[0];
  }

  if(!graph){
    graph = new TGraph(540,&x[0],&y[0]);
    graph->SetMarkerStyle(20);
  } else{ 
    graph->~TGraph();
    new(graph) TGraph(540,&x[0],&y[0]);
  }

  return kTRUE;

}
//________________________________________________________________________
Bool_t AliTRDcalibration::AddStatsPerDetector(const TH2I *ch) 
{
  //
  // Add statistic per detector
  //
  
  AliTRDCalibraMode calibMode = AliTRDCalibraMode();
  const char *name = ch->GetTitle();
  if(!SetNzFromTObject(name,0,&calibMode)) return 0x0;
  if(!SetNrphiFromTObject(name,0,&calibMode)) return 0x0;
  if(((calibMode.GetNz(0) == 100) && (calibMode.GetNrphi(0) == 100)) || ((calibMode.GetNz(0) == 10) && (calibMode.GetNrphi(0) == 10))) return kFALSE;

  Int_t    nybins  = ch->GetNbinsY();// groups number
  Int_t    nxbins  = ch->GetNbinsX();// number of bins X
  const TAxis   *xaxis   = ch->GetXaxis();
  Double_t lowedge  = xaxis->GetBinLowEdge(1);
  Double_t upedge   = xaxis->GetBinUpEdge(nxbins);

  // number per chamber 2
  calibMode.ModePadCalibration(2,0);
  calibMode.ModePadFragmentation(0,2,0,0);
  calibMode.SetDetChamb2(0);
  Int_t perChamber2 = (Int_t) calibMode.GetDetChamb2(0);

  // number per other chamber
  calibMode.ModePadCalibration(0,0);
  calibMode.ModePadFragmentation(0,0,0,0);
  calibMode.SetDetChamb0(0);
  Int_t perChamber0 = (Int_t) calibMode.GetDetChamb0(0);

  if(nybins != (6*18*perChamber2+6*4*18*perChamber0)) return kFALSE;

  // Create Histo
  TString nname((const char *)ch->GetName());
  nname  += "PerDetector";
  TString title("Nz");
  title += 0;
  title += "Nrphi";
  title += 0;
  if(!fCHSum) fCHSum = new TH2I((const char *)nname,(const char *)title
				,nxbins,lowedge,upedge,540,0,540);
  else{ 
    fCHSum->~TH2I();
    new(fCHSum) TH2I((const Char_t *) nname,(const char *)title
		     ,nxbins,lowedge,upedge,540,0,540);
  }
  fCHSum->SetYTitle("Detector number");
  fCHSum->SetXTitle("charge deposit [a.u]");
  fCHSum->SetZTitle("counts");
  fCHSum->SetStats(0);
  fCHSum->Sumw2();

  Int_t counter = 0;
  
  for(Int_t det = 0; det < 540; det++){

    Int_t numberofgroup = 0;
    if(AliTRDgeometry::GetStack(det) == 2) numberofgroup = perChamber2;
    else numberofgroup = perChamber0;
    TH1I *projch = (TH1I *) ch->ProjectionX("projch",counter+1,counter+numberofgroup,(Option_t *)"e");
    projch->SetDirectory(0);
       
    for(Int_t nx = 0; nx <= nxbins; nx++) {
      fCHSum->SetBinContent(nx,det+1,projch->GetBinContent(nx));
      fCHSum->SetBinError(nx,det+1,projch->GetBinError(nx));
    }

    counter += numberofgroup;
    
    delete projch;

  }

  return kTRUE;

}
//_____________________________________________________________________________________________________________________
Bool_t AliTRDcalibration::AddStatsPerDetector(const TProfile2D *ph,Int_t i)
{
  //
  // Add statistic per detector
  //

  AliTRDCalibraMode calibMode = AliTRDCalibraMode();
  const char *name = ph->GetTitle();
  //printf("name %s\n",name);
  if(!SetNzFromTObject(name,0,&calibMode)) return kFALSE;
  if(!SetNrphiFromTObject(name,0,&calibMode)) return kFALSE;
  if(((calibMode.GetNz(0) == 100) && (calibMode.GetNrphi(0) == 100)) || ((calibMode.GetNz(0) == 10) && (calibMode.GetNrphi(0) == 10))) return kFALSE;
  //printf("Found mode Mz %d, Nrphi %d\n",calibMode.GetNz(0),calibMode.GetNrphi(0));  


  Int_t    nybins  = ph->GetNbinsY();// groups number
  Int_t    nxbins  = ph->GetNbinsX();// number of bins X
  const TAxis   *xaxis = ph->GetXaxis();
  Double_t lowedge  = xaxis->GetBinLowEdge(1);
  Double_t upedge   = xaxis->GetBinUpEdge(nxbins);

  // number per chamber 2
  calibMode.ModePadCalibration(2,0);
  calibMode.ModePadFragmentation(0,2,0,0);
  calibMode.SetDetChamb2(0);
  Int_t perChamber2 = (Int_t) calibMode.GetDetChamb2(0);

  // number per other chamber
  calibMode.ModePadCalibration(0,0);
  calibMode.ModePadFragmentation(0,0,0,0);
  calibMode.SetDetChamb0(0);
  Int_t perChamber0 = (Int_t) calibMode.GetDetChamb0(0);

  if(nybins != (6*18*perChamber2+6*4*18*perChamber0)) return kFALSE;
  
  // Create calvector 
  TString nbname((const char *)ph->GetName());
  nbname  += "PerDetectorVector";
  if(!fDetSumVector) fDetSumVector = new AliTRDCalibraVector();
  else{ 
    fDetSumVector->~AliTRDCalibraVector();
    new(fDetSumVector) AliTRDCalibraVector();
  }
  if(i==1){
    fDetSumVector->SetTimeMax(nxbins);
  }
  if(i==2){
    fDetSumVector->SetNumberBinPRF(nxbins);
    fDetSumVector->SetPRFRange(TMath::Abs(lowedge));
  }
  fDetSumVector->SetDetCha0(i,1);
  fDetSumVector->SetDetCha2(i,1);
  fDetSumVector->SetNzNrphi(i,0,0);
  if(i==2) {
    Int_t nbg = GetNumberOfGroupsPRF((const char *)name);
    fDetSumVector->SetNbGroupPRF(nbg);
  }

  // Create Histo
  TString nname((const char *)ph->GetName());
  nname  += "PerDetector";
  TString title("Nz");
  title += 0;
  title += "Nrphi";
  title += 0;
  if(!fDetSum) fDetSum = new TH2D((const char *)nname,(const Char_t *) title
				,nxbins,lowedge,upedge,540,0,540);
  else{ 
    fDetSum->~TH2D();
    new(fDetSum) TH2D((const Char_t *) nname,(const Char_t *) title
		     ,nxbins,lowedge,upedge,540,0,540);
  }
  fDetSum->SetYTitle("Detector number");
  fDetSum->SetXTitle(xaxis->GetTitle());
  fDetSum->SetStats(0);
  
  Int_t counter = 0;

  for(Int_t det = 0; det < 540; det++){

    Int_t numberofgroup = 0;
    if(AliTRDgeometry::GetStack(det) == 2) numberofgroup = perChamber2;
    else numberofgroup = perChamber0;
    
    for(Int_t nx = 1; nx <= nxbins; nx++) {
      
      Double_t entries = 0.0;
      Double_t sumw2 = 0.0;
      Double_t sumw = 0.0;

      for(Int_t k = counter+1; k <= (counter+numberofgroup); k++){
	Int_t  binnumber = ph->GetBin(nx,k);
	entries += ph->GetBinEntries(binnumber);
	sumw2 += (ph->GetBinError(binnumber)*ph->GetBinError(binnumber)+ph->GetBinContent(binnumber)*ph->GetBinContent(binnumber))*ph->GetBinEntries(binnumber);
	sumw += ph->GetBinContent(binnumber)*ph->GetBinEntries(binnumber);
      }

      Double_t mean = 0.0;
      if(entries > 0.0) mean = sumw/entries;
      Double_t squaremean = 0.0;
      if(entries > 0.0) squaremean = sumw2/entries;
      Double_t errorf = squaremean - mean*mean;
      Double_t error = 0.0;
      if(entries > 0.0) error = TMath::Sqrt(TMath::Abs(errorf)/entries);
      
      fDetSum->SetBinContent(nx,det+1,mean);
      fDetSum->SetBinError(nx,det+1,error);

      if(i==1) fDetSumVector->FillVectorPH(det,0,nx-1,(Int_t)entries,(Float_t)mean,(Float_t)squaremean);
      if(i==2) fDetSumVector->FillVectorPRF(det,0,nx-1,(Int_t)entries,(Float_t)mean,(Float_t)squaremean);
      
    }
    
    counter += numberofgroup;

  }

  return kTRUE;

  
}
//_____________________________________________________________________________
Bool_t AliTRDcalibration::SetNrphiFromTObject(const char *name, Int_t i, AliTRDCalibraMode *calibMode) const
{
  //
  // Set the granularity from object
  //  
  
  const Char_t *patternrphi0 = "Nrphi0";
  const Char_t *patternrphi1 = "Nrphi1";
  const Char_t *patternrphi2 = "Nrphi2";
  const Char_t *patternrphi3 = "Nrphi3";
  const Char_t *patternrphi4 = "Nrphi4";
  const Char_t *patternrphi5 = "Nrphi5";
  const Char_t *patternrphi6 = "Nrphi6";

  
  const Char_t *patternrphi10 = "Nrphi10";
  const Char_t *patternrphi100 = "Nrphi100";
  const Char_t *patternz10 = "Nz10";
  const Char_t *patternz100 = "Nz100";

  // Nrphi mode
  if ((strstr(name,patternrphi100)) && (strstr(name,patternz100))) {
    calibMode->SetAllTogether(i);
    return kTRUE;
  }
  if ((strstr(name,patternrphi10)) && (strstr(name,patternz10))) {
    calibMode->SetPerSuperModule(i);
    return kTRUE;
  }
  
  if (strstr(name,patternrphi0)) {
    calibMode->SetNrphi(i ,0);
    return kTRUE;
  }
  if (strstr(name,patternrphi1)) {
    calibMode->SetNrphi(i, 1);
    return kTRUE;
  }
  if (strstr(name,patternrphi2)) {
    calibMode->SetNrphi(i, 2);
    return kTRUE;
  }
  if (strstr(name,patternrphi3)) {
    calibMode->SetNrphi(i, 3);
    return kTRUE;
  }
  if (strstr(name,patternrphi4)) {
    calibMode->SetNrphi(i, 4);
    return kTRUE;
  }
  if (strstr(name,patternrphi5)) {
    calibMode->SetNrphi(i, 5);
    return kTRUE;
  }
  if (strstr(name,patternrphi6)) {
    calibMode->SetNrphi(i, 6);
    return kTRUE;
  }
  
  calibMode->SetNrphi(i ,0);
  return kFALSE;
  
}
//_____________________________________________________________________________
Bool_t AliTRDcalibration::SetNzFromTObject(const char *name, Int_t i, AliTRDCalibraMode *calibMode) const
{
  //
  // Set fNz[i] of the AliTRDCalibraFit::Instance()
  // corresponding to the given TObject
  //

  // Some patterns
  const Char_t *patternz0    = "Nz0";
  const Char_t *patternz1    = "Nz1";
  const Char_t *patternz2    = "Nz2";
  const Char_t *patternz3    = "Nz3";
  const Char_t *patternz4    = "Nz4";

  const Char_t *patternrphi10 = "Nrphi10";
  const Char_t *patternrphi100 = "Nrphi100";
  const Char_t *patternz10 = "Nz10";
  const Char_t *patternz100 = "Nz100";

  if ((strstr(name,patternrphi100)) && (strstr(name,patternz100))) {
    calibMode->SetAllTogether(i);
    return kTRUE;
  }
  if ((strstr(name,patternrphi10)) && (strstr(name,patternz10))) {
    calibMode->SetPerSuperModule(i);
    return kTRUE;
  }
  if (strstr(name,patternz0)) {
    calibMode->SetNz(i, 0);
    return kTRUE;
  }
  if (strstr(name,patternz1)) {
    calibMode->SetNz(i ,1);
    return kTRUE;
  }
  if (strstr(name,patternz2)) {
    calibMode->SetNz(i ,2);
    return kTRUE;
  }
  if (strstr(name,patternz3)) {
    calibMode->SetNz(i ,3);
    return kTRUE;  
  }
  if (strstr(name,patternz4)) {
    calibMode->SetNz(i ,4);
    return kTRUE;
  }
 
  calibMode->SetNz(i ,0);
  return kFALSE;
}
//____________________________________________________________________________________________________
Int_t AliTRDcalibration::GetNumberOfGroupsPRF(const char* nametitle) const
{
  //
  // Get numberofgroupsprf
  //
  
  // Some patterns
  const Char_t *pattern0 = "Ngp0";
  const Char_t *pattern1 = "Ngp1";
  const Char_t *pattern2 = "Ngp2";
  const Char_t *pattern3 = "Ngp3";
  const Char_t *pattern4 = "Ngp4";
  const Char_t *pattern5 = "Ngp5";
  const Char_t *pattern6 = "Ngp6";

  // Nrphi mode
  if (strstr(nametitle,pattern0)) {
    return 0;
  }
  if (strstr(nametitle,pattern1)) {
    return 1;
  }
  if (strstr(nametitle,pattern2)) {
    return 2;
  }
  if (strstr(nametitle,pattern3)) {
    return 3;
  }
  if (strstr(nametitle,pattern4)) {
    return 4;
  }
  if (strstr(nametitle,pattern5)) {
    return 5;
  }
  if (strstr(nametitle,pattern6)){
    return 6;
  }
  else return -1;
}
 AliTRDcalibration.cxx:1
 AliTRDcalibration.cxx:2
 AliTRDcalibration.cxx:3
 AliTRDcalibration.cxx:4
 AliTRDcalibration.cxx:5
 AliTRDcalibration.cxx:6
 AliTRDcalibration.cxx:7
 AliTRDcalibration.cxx:8
 AliTRDcalibration.cxx:9
 AliTRDcalibration.cxx:10
 AliTRDcalibration.cxx:11
 AliTRDcalibration.cxx:12
 AliTRDcalibration.cxx:13
 AliTRDcalibration.cxx:14
 AliTRDcalibration.cxx:15
 AliTRDcalibration.cxx:16
 AliTRDcalibration.cxx:17
 AliTRDcalibration.cxx:18
 AliTRDcalibration.cxx:19
 AliTRDcalibration.cxx:20
 AliTRDcalibration.cxx:21
 AliTRDcalibration.cxx:22
 AliTRDcalibration.cxx:23
 AliTRDcalibration.cxx:24
 AliTRDcalibration.cxx:25
 AliTRDcalibration.cxx:26
 AliTRDcalibration.cxx:27
 AliTRDcalibration.cxx:28
 AliTRDcalibration.cxx:29
 AliTRDcalibration.cxx:30
 AliTRDcalibration.cxx:31
 AliTRDcalibration.cxx:32
 AliTRDcalibration.cxx:33
 AliTRDcalibration.cxx:34
 AliTRDcalibration.cxx:35
 AliTRDcalibration.cxx:36
 AliTRDcalibration.cxx:37
 AliTRDcalibration.cxx:38
 AliTRDcalibration.cxx:39
 AliTRDcalibration.cxx:40
 AliTRDcalibration.cxx:41
 AliTRDcalibration.cxx:42
 AliTRDcalibration.cxx:43
 AliTRDcalibration.cxx:44
 AliTRDcalibration.cxx:45
 AliTRDcalibration.cxx:46
 AliTRDcalibration.cxx:47
 AliTRDcalibration.cxx:48
 AliTRDcalibration.cxx:49
 AliTRDcalibration.cxx:50
 AliTRDcalibration.cxx:51
 AliTRDcalibration.cxx:52
 AliTRDcalibration.cxx:53
 AliTRDcalibration.cxx:54
 AliTRDcalibration.cxx:55
 AliTRDcalibration.cxx:56
 AliTRDcalibration.cxx:57
 AliTRDcalibration.cxx:58
 AliTRDcalibration.cxx:59
 AliTRDcalibration.cxx:60
 AliTRDcalibration.cxx:61
 AliTRDcalibration.cxx:62
 AliTRDcalibration.cxx:63
 AliTRDcalibration.cxx:64
 AliTRDcalibration.cxx:65
 AliTRDcalibration.cxx:66
 AliTRDcalibration.cxx:67
 AliTRDcalibration.cxx:68
 AliTRDcalibration.cxx:69
 AliTRDcalibration.cxx:70
 AliTRDcalibration.cxx:71
 AliTRDcalibration.cxx:72
 AliTRDcalibration.cxx:73
 AliTRDcalibration.cxx:74
 AliTRDcalibration.cxx:75
 AliTRDcalibration.cxx:76
 AliTRDcalibration.cxx:77
 AliTRDcalibration.cxx:78
 AliTRDcalibration.cxx:79
 AliTRDcalibration.cxx:80
 AliTRDcalibration.cxx:81
 AliTRDcalibration.cxx:82
 AliTRDcalibration.cxx:83
 AliTRDcalibration.cxx:84
 AliTRDcalibration.cxx:85
 AliTRDcalibration.cxx:86
 AliTRDcalibration.cxx:87
 AliTRDcalibration.cxx:88
 AliTRDcalibration.cxx:89
 AliTRDcalibration.cxx:90
 AliTRDcalibration.cxx:91
 AliTRDcalibration.cxx:92
 AliTRDcalibration.cxx:93
 AliTRDcalibration.cxx:94
 AliTRDcalibration.cxx:95
 AliTRDcalibration.cxx:96
 AliTRDcalibration.cxx:97
 AliTRDcalibration.cxx:98
 AliTRDcalibration.cxx:99
 AliTRDcalibration.cxx:100
 AliTRDcalibration.cxx:101
 AliTRDcalibration.cxx:102
 AliTRDcalibration.cxx:103
 AliTRDcalibration.cxx:104
 AliTRDcalibration.cxx:105
 AliTRDcalibration.cxx:106
 AliTRDcalibration.cxx:107
 AliTRDcalibration.cxx:108
 AliTRDcalibration.cxx:109
 AliTRDcalibration.cxx:110
 AliTRDcalibration.cxx:111
 AliTRDcalibration.cxx:112
 AliTRDcalibration.cxx:113
 AliTRDcalibration.cxx:114
 AliTRDcalibration.cxx:115
 AliTRDcalibration.cxx:116
 AliTRDcalibration.cxx:117
 AliTRDcalibration.cxx:118
 AliTRDcalibration.cxx:119
 AliTRDcalibration.cxx:120
 AliTRDcalibration.cxx:121
 AliTRDcalibration.cxx:122
 AliTRDcalibration.cxx:123
 AliTRDcalibration.cxx:124
 AliTRDcalibration.cxx:125
 AliTRDcalibration.cxx:126
 AliTRDcalibration.cxx:127
 AliTRDcalibration.cxx:128
 AliTRDcalibration.cxx:129
 AliTRDcalibration.cxx:130
 AliTRDcalibration.cxx:131
 AliTRDcalibration.cxx:132
 AliTRDcalibration.cxx:133
 AliTRDcalibration.cxx:134
 AliTRDcalibration.cxx:135
 AliTRDcalibration.cxx:136
 AliTRDcalibration.cxx:137
 AliTRDcalibration.cxx:138
 AliTRDcalibration.cxx:139
 AliTRDcalibration.cxx:140
 AliTRDcalibration.cxx:141
 AliTRDcalibration.cxx:142
 AliTRDcalibration.cxx:143
 AliTRDcalibration.cxx:144
 AliTRDcalibration.cxx:145
 AliTRDcalibration.cxx:146
 AliTRDcalibration.cxx:147
 AliTRDcalibration.cxx:148
 AliTRDcalibration.cxx:149
 AliTRDcalibration.cxx:150
 AliTRDcalibration.cxx:151
 AliTRDcalibration.cxx:152
 AliTRDcalibration.cxx:153
 AliTRDcalibration.cxx:154
 AliTRDcalibration.cxx:155
 AliTRDcalibration.cxx:156
 AliTRDcalibration.cxx:157
 AliTRDcalibration.cxx:158
 AliTRDcalibration.cxx:159
 AliTRDcalibration.cxx:160
 AliTRDcalibration.cxx:161
 AliTRDcalibration.cxx:162
 AliTRDcalibration.cxx:163
 AliTRDcalibration.cxx:164
 AliTRDcalibration.cxx:165
 AliTRDcalibration.cxx:166
 AliTRDcalibration.cxx:167
 AliTRDcalibration.cxx:168
 AliTRDcalibration.cxx:169
 AliTRDcalibration.cxx:170
 AliTRDcalibration.cxx:171
 AliTRDcalibration.cxx:172
 AliTRDcalibration.cxx:173
 AliTRDcalibration.cxx:174
 AliTRDcalibration.cxx:175
 AliTRDcalibration.cxx:176
 AliTRDcalibration.cxx:177
 AliTRDcalibration.cxx:178
 AliTRDcalibration.cxx:179
 AliTRDcalibration.cxx:180
 AliTRDcalibration.cxx:181
 AliTRDcalibration.cxx:182
 AliTRDcalibration.cxx:183
 AliTRDcalibration.cxx:184
 AliTRDcalibration.cxx:185
 AliTRDcalibration.cxx:186
 AliTRDcalibration.cxx:187
 AliTRDcalibration.cxx:188
 AliTRDcalibration.cxx:189
 AliTRDcalibration.cxx:190
 AliTRDcalibration.cxx:191
 AliTRDcalibration.cxx:192
 AliTRDcalibration.cxx:193
 AliTRDcalibration.cxx:194
 AliTRDcalibration.cxx:195
 AliTRDcalibration.cxx:196
 AliTRDcalibration.cxx:197
 AliTRDcalibration.cxx:198
 AliTRDcalibration.cxx:199
 AliTRDcalibration.cxx:200
 AliTRDcalibration.cxx:201
 AliTRDcalibration.cxx:202
 AliTRDcalibration.cxx:203
 AliTRDcalibration.cxx:204
 AliTRDcalibration.cxx:205
 AliTRDcalibration.cxx:206
 AliTRDcalibration.cxx:207
 AliTRDcalibration.cxx:208
 AliTRDcalibration.cxx:209
 AliTRDcalibration.cxx:210
 AliTRDcalibration.cxx:211
 AliTRDcalibration.cxx:212
 AliTRDcalibration.cxx:213
 AliTRDcalibration.cxx:214
 AliTRDcalibration.cxx:215
 AliTRDcalibration.cxx:216
 AliTRDcalibration.cxx:217
 AliTRDcalibration.cxx:218
 AliTRDcalibration.cxx:219
 AliTRDcalibration.cxx:220
 AliTRDcalibration.cxx:221
 AliTRDcalibration.cxx:222
 AliTRDcalibration.cxx:223
 AliTRDcalibration.cxx:224
 AliTRDcalibration.cxx:225
 AliTRDcalibration.cxx:226
 AliTRDcalibration.cxx:227
 AliTRDcalibration.cxx:228
 AliTRDcalibration.cxx:229
 AliTRDcalibration.cxx:230
 AliTRDcalibration.cxx:231
 AliTRDcalibration.cxx:232
 AliTRDcalibration.cxx:233
 AliTRDcalibration.cxx:234
 AliTRDcalibration.cxx:235
 AliTRDcalibration.cxx:236
 AliTRDcalibration.cxx:237
 AliTRDcalibration.cxx:238
 AliTRDcalibration.cxx:239
 AliTRDcalibration.cxx:240
 AliTRDcalibration.cxx:241
 AliTRDcalibration.cxx:242
 AliTRDcalibration.cxx:243
 AliTRDcalibration.cxx:244
 AliTRDcalibration.cxx:245
 AliTRDcalibration.cxx:246
 AliTRDcalibration.cxx:247
 AliTRDcalibration.cxx:248
 AliTRDcalibration.cxx:249
 AliTRDcalibration.cxx:250
 AliTRDcalibration.cxx:251
 AliTRDcalibration.cxx:252
 AliTRDcalibration.cxx:253
 AliTRDcalibration.cxx:254
 AliTRDcalibration.cxx:255
 AliTRDcalibration.cxx:256
 AliTRDcalibration.cxx:257
 AliTRDcalibration.cxx:258
 AliTRDcalibration.cxx:259
 AliTRDcalibration.cxx:260
 AliTRDcalibration.cxx:261
 AliTRDcalibration.cxx:262
 AliTRDcalibration.cxx:263
 AliTRDcalibration.cxx:264
 AliTRDcalibration.cxx:265
 AliTRDcalibration.cxx:266
 AliTRDcalibration.cxx:267
 AliTRDcalibration.cxx:268
 AliTRDcalibration.cxx:269
 AliTRDcalibration.cxx:270
 AliTRDcalibration.cxx:271
 AliTRDcalibration.cxx:272
 AliTRDcalibration.cxx:273
 AliTRDcalibration.cxx:274
 AliTRDcalibration.cxx:275
 AliTRDcalibration.cxx:276
 AliTRDcalibration.cxx:277
 AliTRDcalibration.cxx:278
 AliTRDcalibration.cxx:279
 AliTRDcalibration.cxx:280
 AliTRDcalibration.cxx:281
 AliTRDcalibration.cxx:282
 AliTRDcalibration.cxx:283
 AliTRDcalibration.cxx:284
 AliTRDcalibration.cxx:285
 AliTRDcalibration.cxx:286
 AliTRDcalibration.cxx:287
 AliTRDcalibration.cxx:288
 AliTRDcalibration.cxx:289
 AliTRDcalibration.cxx:290
 AliTRDcalibration.cxx:291
 AliTRDcalibration.cxx:292
 AliTRDcalibration.cxx:293
 AliTRDcalibration.cxx:294
 AliTRDcalibration.cxx:295
 AliTRDcalibration.cxx:296
 AliTRDcalibration.cxx:297
 AliTRDcalibration.cxx:298
 AliTRDcalibration.cxx:299
 AliTRDcalibration.cxx:300
 AliTRDcalibration.cxx:301
 AliTRDcalibration.cxx:302
 AliTRDcalibration.cxx:303
 AliTRDcalibration.cxx:304
 AliTRDcalibration.cxx:305
 AliTRDcalibration.cxx:306
 AliTRDcalibration.cxx:307
 AliTRDcalibration.cxx:308
 AliTRDcalibration.cxx:309
 AliTRDcalibration.cxx:310
 AliTRDcalibration.cxx:311
 AliTRDcalibration.cxx:312
 AliTRDcalibration.cxx:313
 AliTRDcalibration.cxx:314
 AliTRDcalibration.cxx:315
 AliTRDcalibration.cxx:316
 AliTRDcalibration.cxx:317
 AliTRDcalibration.cxx:318
 AliTRDcalibration.cxx:319
 AliTRDcalibration.cxx:320
 AliTRDcalibration.cxx:321
 AliTRDcalibration.cxx:322
 AliTRDcalibration.cxx:323
 AliTRDcalibration.cxx:324
 AliTRDcalibration.cxx:325
 AliTRDcalibration.cxx:326
 AliTRDcalibration.cxx:327
 AliTRDcalibration.cxx:328
 AliTRDcalibration.cxx:329
 AliTRDcalibration.cxx:330
 AliTRDcalibration.cxx:331
 AliTRDcalibration.cxx:332
 AliTRDcalibration.cxx:333
 AliTRDcalibration.cxx:334
 AliTRDcalibration.cxx:335
 AliTRDcalibration.cxx:336
 AliTRDcalibration.cxx:337
 AliTRDcalibration.cxx:338
 AliTRDcalibration.cxx:339
 AliTRDcalibration.cxx:340
 AliTRDcalibration.cxx:341
 AliTRDcalibration.cxx:342
 AliTRDcalibration.cxx:343
 AliTRDcalibration.cxx:344
 AliTRDcalibration.cxx:345
 AliTRDcalibration.cxx:346
 AliTRDcalibration.cxx:347
 AliTRDcalibration.cxx:348
 AliTRDcalibration.cxx:349
 AliTRDcalibration.cxx:350
 AliTRDcalibration.cxx:351
 AliTRDcalibration.cxx:352
 AliTRDcalibration.cxx:353
 AliTRDcalibration.cxx:354
 AliTRDcalibration.cxx:355
 AliTRDcalibration.cxx:356
 AliTRDcalibration.cxx:357
 AliTRDcalibration.cxx:358
 AliTRDcalibration.cxx:359
 AliTRDcalibration.cxx:360
 AliTRDcalibration.cxx:361
 AliTRDcalibration.cxx:362
 AliTRDcalibration.cxx:363
 AliTRDcalibration.cxx:364
 AliTRDcalibration.cxx:365
 AliTRDcalibration.cxx:366
 AliTRDcalibration.cxx:367
 AliTRDcalibration.cxx:368
 AliTRDcalibration.cxx:369
 AliTRDcalibration.cxx:370
 AliTRDcalibration.cxx:371
 AliTRDcalibration.cxx:372
 AliTRDcalibration.cxx:373
 AliTRDcalibration.cxx:374
 AliTRDcalibration.cxx:375
 AliTRDcalibration.cxx:376
 AliTRDcalibration.cxx:377
 AliTRDcalibration.cxx:378
 AliTRDcalibration.cxx:379
 AliTRDcalibration.cxx:380
 AliTRDcalibration.cxx:381
 AliTRDcalibration.cxx:382
 AliTRDcalibration.cxx:383
 AliTRDcalibration.cxx:384
 AliTRDcalibration.cxx:385
 AliTRDcalibration.cxx:386
 AliTRDcalibration.cxx:387
 AliTRDcalibration.cxx:388
 AliTRDcalibration.cxx:389
 AliTRDcalibration.cxx:390
 AliTRDcalibration.cxx:391
 AliTRDcalibration.cxx:392
 AliTRDcalibration.cxx:393
 AliTRDcalibration.cxx:394
 AliTRDcalibration.cxx:395
 AliTRDcalibration.cxx:396
 AliTRDcalibration.cxx:397
 AliTRDcalibration.cxx:398
 AliTRDcalibration.cxx:399
 AliTRDcalibration.cxx:400
 AliTRDcalibration.cxx:401
 AliTRDcalibration.cxx:402
 AliTRDcalibration.cxx:403
 AliTRDcalibration.cxx:404
 AliTRDcalibration.cxx:405
 AliTRDcalibration.cxx:406
 AliTRDcalibration.cxx:407
 AliTRDcalibration.cxx:408
 AliTRDcalibration.cxx:409
 AliTRDcalibration.cxx:410
 AliTRDcalibration.cxx:411
 AliTRDcalibration.cxx:412
 AliTRDcalibration.cxx:413
 AliTRDcalibration.cxx:414
 AliTRDcalibration.cxx:415
 AliTRDcalibration.cxx:416
 AliTRDcalibration.cxx:417
 AliTRDcalibration.cxx:418
 AliTRDcalibration.cxx:419
 AliTRDcalibration.cxx:420
 AliTRDcalibration.cxx:421
 AliTRDcalibration.cxx:422
 AliTRDcalibration.cxx:423
 AliTRDcalibration.cxx:424
 AliTRDcalibration.cxx:425
 AliTRDcalibration.cxx:426
 AliTRDcalibration.cxx:427
 AliTRDcalibration.cxx:428
 AliTRDcalibration.cxx:429
 AliTRDcalibration.cxx:430
 AliTRDcalibration.cxx:431
 AliTRDcalibration.cxx:432
 AliTRDcalibration.cxx:433
 AliTRDcalibration.cxx:434
 AliTRDcalibration.cxx:435
 AliTRDcalibration.cxx:436
 AliTRDcalibration.cxx:437
 AliTRDcalibration.cxx:438
 AliTRDcalibration.cxx:439
 AliTRDcalibration.cxx:440
 AliTRDcalibration.cxx:441
 AliTRDcalibration.cxx:442
 AliTRDcalibration.cxx:443
 AliTRDcalibration.cxx:444
 AliTRDcalibration.cxx:445
 AliTRDcalibration.cxx:446
 AliTRDcalibration.cxx:447
 AliTRDcalibration.cxx:448
 AliTRDcalibration.cxx:449
 AliTRDcalibration.cxx:450
 AliTRDcalibration.cxx:451
 AliTRDcalibration.cxx:452
 AliTRDcalibration.cxx:453
 AliTRDcalibration.cxx:454
 AliTRDcalibration.cxx:455
 AliTRDcalibration.cxx:456
 AliTRDcalibration.cxx:457
 AliTRDcalibration.cxx:458
 AliTRDcalibration.cxx:459
 AliTRDcalibration.cxx:460
 AliTRDcalibration.cxx:461
 AliTRDcalibration.cxx:462
 AliTRDcalibration.cxx:463
 AliTRDcalibration.cxx:464
 AliTRDcalibration.cxx:465
 AliTRDcalibration.cxx:466
 AliTRDcalibration.cxx:467
 AliTRDcalibration.cxx:468
 AliTRDcalibration.cxx:469
 AliTRDcalibration.cxx:470
 AliTRDcalibration.cxx:471
 AliTRDcalibration.cxx:472
 AliTRDcalibration.cxx:473
 AliTRDcalibration.cxx:474
 AliTRDcalibration.cxx:475
 AliTRDcalibration.cxx:476
 AliTRDcalibration.cxx:477
 AliTRDcalibration.cxx:478
 AliTRDcalibration.cxx:479
 AliTRDcalibration.cxx:480
 AliTRDcalibration.cxx:481
 AliTRDcalibration.cxx:482
 AliTRDcalibration.cxx:483
 AliTRDcalibration.cxx:484
 AliTRDcalibration.cxx:485
 AliTRDcalibration.cxx:486
 AliTRDcalibration.cxx:487
 AliTRDcalibration.cxx:488
 AliTRDcalibration.cxx:489
 AliTRDcalibration.cxx:490
 AliTRDcalibration.cxx:491
 AliTRDcalibration.cxx:492
 AliTRDcalibration.cxx:493
 AliTRDcalibration.cxx:494
 AliTRDcalibration.cxx:495
 AliTRDcalibration.cxx:496
 AliTRDcalibration.cxx:497
 AliTRDcalibration.cxx:498
 AliTRDcalibration.cxx:499
 AliTRDcalibration.cxx:500
 AliTRDcalibration.cxx:501
 AliTRDcalibration.cxx:502
 AliTRDcalibration.cxx:503
 AliTRDcalibration.cxx:504
 AliTRDcalibration.cxx:505
 AliTRDcalibration.cxx:506
 AliTRDcalibration.cxx:507
 AliTRDcalibration.cxx:508
 AliTRDcalibration.cxx:509
 AliTRDcalibration.cxx:510
 AliTRDcalibration.cxx:511
 AliTRDcalibration.cxx:512
 AliTRDcalibration.cxx:513
 AliTRDcalibration.cxx:514
 AliTRDcalibration.cxx:515
 AliTRDcalibration.cxx:516
 AliTRDcalibration.cxx:517
 AliTRDcalibration.cxx:518
 AliTRDcalibration.cxx:519
 AliTRDcalibration.cxx:520
 AliTRDcalibration.cxx:521
 AliTRDcalibration.cxx:522
 AliTRDcalibration.cxx:523
 AliTRDcalibration.cxx:524
 AliTRDcalibration.cxx:525
 AliTRDcalibration.cxx:526
 AliTRDcalibration.cxx:527
 AliTRDcalibration.cxx:528
 AliTRDcalibration.cxx:529
 AliTRDcalibration.cxx:530
 AliTRDcalibration.cxx:531
 AliTRDcalibration.cxx:532
 AliTRDcalibration.cxx:533
 AliTRDcalibration.cxx:534
 AliTRDcalibration.cxx:535
 AliTRDcalibration.cxx:536
 AliTRDcalibration.cxx:537
 AliTRDcalibration.cxx:538
 AliTRDcalibration.cxx:539
 AliTRDcalibration.cxx:540
 AliTRDcalibration.cxx:541
 AliTRDcalibration.cxx:542
 AliTRDcalibration.cxx:543
 AliTRDcalibration.cxx:544
 AliTRDcalibration.cxx:545
 AliTRDcalibration.cxx:546
 AliTRDcalibration.cxx:547
 AliTRDcalibration.cxx:548
 AliTRDcalibration.cxx:549
 AliTRDcalibration.cxx:550
 AliTRDcalibration.cxx:551
 AliTRDcalibration.cxx:552
 AliTRDcalibration.cxx:553
 AliTRDcalibration.cxx:554
 AliTRDcalibration.cxx:555
 AliTRDcalibration.cxx:556
 AliTRDcalibration.cxx:557
 AliTRDcalibration.cxx:558
 AliTRDcalibration.cxx:559
 AliTRDcalibration.cxx:560
 AliTRDcalibration.cxx:561
 AliTRDcalibration.cxx:562
 AliTRDcalibration.cxx:563
 AliTRDcalibration.cxx:564
 AliTRDcalibration.cxx:565
 AliTRDcalibration.cxx:566
 AliTRDcalibration.cxx:567
 AliTRDcalibration.cxx:568
 AliTRDcalibration.cxx:569
 AliTRDcalibration.cxx:570
 AliTRDcalibration.cxx:571
 AliTRDcalibration.cxx:572
 AliTRDcalibration.cxx:573
 AliTRDcalibration.cxx:574
 AliTRDcalibration.cxx:575
 AliTRDcalibration.cxx:576
 AliTRDcalibration.cxx:577
 AliTRDcalibration.cxx:578
 AliTRDcalibration.cxx:579
 AliTRDcalibration.cxx:580
 AliTRDcalibration.cxx:581
 AliTRDcalibration.cxx:582
 AliTRDcalibration.cxx:583
 AliTRDcalibration.cxx:584
 AliTRDcalibration.cxx:585
 AliTRDcalibration.cxx:586
 AliTRDcalibration.cxx:587
 AliTRDcalibration.cxx:588
 AliTRDcalibration.cxx:589
 AliTRDcalibration.cxx:590
 AliTRDcalibration.cxx:591
 AliTRDcalibration.cxx:592
 AliTRDcalibration.cxx:593
 AliTRDcalibration.cxx:594
 AliTRDcalibration.cxx:595
 AliTRDcalibration.cxx:596
 AliTRDcalibration.cxx:597
 AliTRDcalibration.cxx:598
 AliTRDcalibration.cxx:599
 AliTRDcalibration.cxx:600
 AliTRDcalibration.cxx:601
 AliTRDcalibration.cxx:602
 AliTRDcalibration.cxx:603
 AliTRDcalibration.cxx:604
 AliTRDcalibration.cxx:605
 AliTRDcalibration.cxx:606
 AliTRDcalibration.cxx:607
 AliTRDcalibration.cxx:608
 AliTRDcalibration.cxx:609
 AliTRDcalibration.cxx:610
 AliTRDcalibration.cxx:611
 AliTRDcalibration.cxx:612
 AliTRDcalibration.cxx:613
 AliTRDcalibration.cxx:614
 AliTRDcalibration.cxx:615
 AliTRDcalibration.cxx:616
 AliTRDcalibration.cxx:617
 AliTRDcalibration.cxx:618
 AliTRDcalibration.cxx:619
 AliTRDcalibration.cxx:620
 AliTRDcalibration.cxx:621
 AliTRDcalibration.cxx:622
 AliTRDcalibration.cxx:623
 AliTRDcalibration.cxx:624
 AliTRDcalibration.cxx:625
 AliTRDcalibration.cxx:626
 AliTRDcalibration.cxx:627
 AliTRDcalibration.cxx:628
 AliTRDcalibration.cxx:629
 AliTRDcalibration.cxx:630
 AliTRDcalibration.cxx:631
 AliTRDcalibration.cxx:632
 AliTRDcalibration.cxx:633
 AliTRDcalibration.cxx:634
 AliTRDcalibration.cxx:635
 AliTRDcalibration.cxx:636
 AliTRDcalibration.cxx:637
 AliTRDcalibration.cxx:638
 AliTRDcalibration.cxx:639
 AliTRDcalibration.cxx:640
 AliTRDcalibration.cxx:641
 AliTRDcalibration.cxx:642
 AliTRDcalibration.cxx:643
 AliTRDcalibration.cxx:644
 AliTRDcalibration.cxx:645
 AliTRDcalibration.cxx:646
 AliTRDcalibration.cxx:647
 AliTRDcalibration.cxx:648
 AliTRDcalibration.cxx:649
 AliTRDcalibration.cxx:650
 AliTRDcalibration.cxx:651
 AliTRDcalibration.cxx:652
 AliTRDcalibration.cxx:653
 AliTRDcalibration.cxx:654
 AliTRDcalibration.cxx:655
 AliTRDcalibration.cxx:656
 AliTRDcalibration.cxx:657
 AliTRDcalibration.cxx:658
 AliTRDcalibration.cxx:659
 AliTRDcalibration.cxx:660
 AliTRDcalibration.cxx:661
 AliTRDcalibration.cxx:662
 AliTRDcalibration.cxx:663
 AliTRDcalibration.cxx:664
 AliTRDcalibration.cxx:665
 AliTRDcalibration.cxx:666
 AliTRDcalibration.cxx:667
 AliTRDcalibration.cxx:668
 AliTRDcalibration.cxx:669
 AliTRDcalibration.cxx:670
 AliTRDcalibration.cxx:671
 AliTRDcalibration.cxx:672
 AliTRDcalibration.cxx:673
 AliTRDcalibration.cxx:674
 AliTRDcalibration.cxx:675
 AliTRDcalibration.cxx:676
 AliTRDcalibration.cxx:677
 AliTRDcalibration.cxx:678
 AliTRDcalibration.cxx:679
 AliTRDcalibration.cxx:680
 AliTRDcalibration.cxx:681
 AliTRDcalibration.cxx:682
 AliTRDcalibration.cxx:683
 AliTRDcalibration.cxx:684
 AliTRDcalibration.cxx:685
 AliTRDcalibration.cxx:686
 AliTRDcalibration.cxx:687
 AliTRDcalibration.cxx:688
 AliTRDcalibration.cxx:689
 AliTRDcalibration.cxx:690
 AliTRDcalibration.cxx:691
 AliTRDcalibration.cxx:692
 AliTRDcalibration.cxx:693
 AliTRDcalibration.cxx:694
 AliTRDcalibration.cxx:695
 AliTRDcalibration.cxx:696
 AliTRDcalibration.cxx:697
 AliTRDcalibration.cxx:698
 AliTRDcalibration.cxx:699
 AliTRDcalibration.cxx:700
 AliTRDcalibration.cxx:701
 AliTRDcalibration.cxx:702
 AliTRDcalibration.cxx:703
 AliTRDcalibration.cxx:704
 AliTRDcalibration.cxx:705
 AliTRDcalibration.cxx:706
 AliTRDcalibration.cxx:707
 AliTRDcalibration.cxx:708
 AliTRDcalibration.cxx:709
 AliTRDcalibration.cxx:710
 AliTRDcalibration.cxx:711
 AliTRDcalibration.cxx:712
 AliTRDcalibration.cxx:713
 AliTRDcalibration.cxx:714
 AliTRDcalibration.cxx:715
 AliTRDcalibration.cxx:716
 AliTRDcalibration.cxx:717
 AliTRDcalibration.cxx:718
 AliTRDcalibration.cxx:719
 AliTRDcalibration.cxx:720
 AliTRDcalibration.cxx:721
 AliTRDcalibration.cxx:722
 AliTRDcalibration.cxx:723
 AliTRDcalibration.cxx:724
 AliTRDcalibration.cxx:725
 AliTRDcalibration.cxx:726
 AliTRDcalibration.cxx:727
 AliTRDcalibration.cxx:728
 AliTRDcalibration.cxx:729
 AliTRDcalibration.cxx:730
 AliTRDcalibration.cxx:731
 AliTRDcalibration.cxx:732
 AliTRDcalibration.cxx:733
 AliTRDcalibration.cxx:734
 AliTRDcalibration.cxx:735
 AliTRDcalibration.cxx:736
 AliTRDcalibration.cxx:737
 AliTRDcalibration.cxx:738
 AliTRDcalibration.cxx:739
 AliTRDcalibration.cxx:740
 AliTRDcalibration.cxx:741
 AliTRDcalibration.cxx:742
 AliTRDcalibration.cxx:743
 AliTRDcalibration.cxx:744
 AliTRDcalibration.cxx:745
 AliTRDcalibration.cxx:746
 AliTRDcalibration.cxx:747
 AliTRDcalibration.cxx:748
 AliTRDcalibration.cxx:749
 AliTRDcalibration.cxx:750
 AliTRDcalibration.cxx:751
 AliTRDcalibration.cxx:752
 AliTRDcalibration.cxx:753
 AliTRDcalibration.cxx:754
 AliTRDcalibration.cxx:755
 AliTRDcalibration.cxx:756
 AliTRDcalibration.cxx:757
 AliTRDcalibration.cxx:758
 AliTRDcalibration.cxx:759
 AliTRDcalibration.cxx:760
 AliTRDcalibration.cxx:761
 AliTRDcalibration.cxx:762
 AliTRDcalibration.cxx:763
 AliTRDcalibration.cxx:764
 AliTRDcalibration.cxx:765
 AliTRDcalibration.cxx:766
 AliTRDcalibration.cxx:767
 AliTRDcalibration.cxx:768
 AliTRDcalibration.cxx:769
 AliTRDcalibration.cxx:770
 AliTRDcalibration.cxx:771
 AliTRDcalibration.cxx:772
 AliTRDcalibration.cxx:773
 AliTRDcalibration.cxx:774
 AliTRDcalibration.cxx:775
 AliTRDcalibration.cxx:776
 AliTRDcalibration.cxx:777
 AliTRDcalibration.cxx:778
 AliTRDcalibration.cxx:779
 AliTRDcalibration.cxx:780
 AliTRDcalibration.cxx:781
 AliTRDcalibration.cxx:782
 AliTRDcalibration.cxx:783
 AliTRDcalibration.cxx:784
 AliTRDcalibration.cxx:785
 AliTRDcalibration.cxx:786
 AliTRDcalibration.cxx:787
 AliTRDcalibration.cxx:788
 AliTRDcalibration.cxx:789
 AliTRDcalibration.cxx:790
 AliTRDcalibration.cxx:791
 AliTRDcalibration.cxx:792
 AliTRDcalibration.cxx:793
 AliTRDcalibration.cxx:794
 AliTRDcalibration.cxx:795
 AliTRDcalibration.cxx:796
 AliTRDcalibration.cxx:797
 AliTRDcalibration.cxx:798
 AliTRDcalibration.cxx:799
 AliTRDcalibration.cxx:800
 AliTRDcalibration.cxx:801
 AliTRDcalibration.cxx:802
 AliTRDcalibration.cxx:803
 AliTRDcalibration.cxx:804
 AliTRDcalibration.cxx:805
 AliTRDcalibration.cxx:806
 AliTRDcalibration.cxx:807
 AliTRDcalibration.cxx:808
 AliTRDcalibration.cxx:809
 AliTRDcalibration.cxx:810
 AliTRDcalibration.cxx:811
 AliTRDcalibration.cxx:812
 AliTRDcalibration.cxx:813
 AliTRDcalibration.cxx:814
 AliTRDcalibration.cxx:815
 AliTRDcalibration.cxx:816
 AliTRDcalibration.cxx:817
 AliTRDcalibration.cxx:818
 AliTRDcalibration.cxx:819
 AliTRDcalibration.cxx:820
 AliTRDcalibration.cxx:821
 AliTRDcalibration.cxx:822
 AliTRDcalibration.cxx:823
 AliTRDcalibration.cxx:824
 AliTRDcalibration.cxx:825
 AliTRDcalibration.cxx:826
 AliTRDcalibration.cxx:827
 AliTRDcalibration.cxx:828
 AliTRDcalibration.cxx:829
 AliTRDcalibration.cxx:830
 AliTRDcalibration.cxx:831
 AliTRDcalibration.cxx:832
 AliTRDcalibration.cxx:833
 AliTRDcalibration.cxx:834
 AliTRDcalibration.cxx:835
 AliTRDcalibration.cxx:836
 AliTRDcalibration.cxx:837
 AliTRDcalibration.cxx:838
 AliTRDcalibration.cxx:839
 AliTRDcalibration.cxx:840
 AliTRDcalibration.cxx:841
 AliTRDcalibration.cxx:842
 AliTRDcalibration.cxx:843
 AliTRDcalibration.cxx:844
 AliTRDcalibration.cxx:845
 AliTRDcalibration.cxx:846
 AliTRDcalibration.cxx:847
 AliTRDcalibration.cxx:848
 AliTRDcalibration.cxx:849
 AliTRDcalibration.cxx:850
 AliTRDcalibration.cxx:851
 AliTRDcalibration.cxx:852
 AliTRDcalibration.cxx:853
 AliTRDcalibration.cxx:854
 AliTRDcalibration.cxx:855
 AliTRDcalibration.cxx:856
 AliTRDcalibration.cxx:857
 AliTRDcalibration.cxx:858
 AliTRDcalibration.cxx:859
 AliTRDcalibration.cxx:860
 AliTRDcalibration.cxx:861
 AliTRDcalibration.cxx:862
 AliTRDcalibration.cxx:863
 AliTRDcalibration.cxx:864
 AliTRDcalibration.cxx:865
 AliTRDcalibration.cxx:866
 AliTRDcalibration.cxx:867
 AliTRDcalibration.cxx:868
 AliTRDcalibration.cxx:869
 AliTRDcalibration.cxx:870
 AliTRDcalibration.cxx:871
 AliTRDcalibration.cxx:872
 AliTRDcalibration.cxx:873
 AliTRDcalibration.cxx:874
 AliTRDcalibration.cxx:875
 AliTRDcalibration.cxx:876
 AliTRDcalibration.cxx:877
 AliTRDcalibration.cxx:878
 AliTRDcalibration.cxx:879
 AliTRDcalibration.cxx:880
 AliTRDcalibration.cxx:881
 AliTRDcalibration.cxx:882
 AliTRDcalibration.cxx:883
 AliTRDcalibration.cxx:884
 AliTRDcalibration.cxx:885
 AliTRDcalibration.cxx:886
 AliTRDcalibration.cxx:887
 AliTRDcalibration.cxx:888
 AliTRDcalibration.cxx:889
 AliTRDcalibration.cxx:890
 AliTRDcalibration.cxx:891
 AliTRDcalibration.cxx:892
 AliTRDcalibration.cxx:893
 AliTRDcalibration.cxx:894
 AliTRDcalibration.cxx:895
 AliTRDcalibration.cxx:896
 AliTRDcalibration.cxx:897
 AliTRDcalibration.cxx:898
 AliTRDcalibration.cxx:899
 AliTRDcalibration.cxx:900
 AliTRDcalibration.cxx:901
 AliTRDcalibration.cxx:902
 AliTRDcalibration.cxx:903
 AliTRDcalibration.cxx:904
 AliTRDcalibration.cxx:905
 AliTRDcalibration.cxx:906
 AliTRDcalibration.cxx:907
 AliTRDcalibration.cxx:908
 AliTRDcalibration.cxx:909
 AliTRDcalibration.cxx:910
 AliTRDcalibration.cxx:911
 AliTRDcalibration.cxx:912
 AliTRDcalibration.cxx:913
 AliTRDcalibration.cxx:914
 AliTRDcalibration.cxx:915
 AliTRDcalibration.cxx:916
 AliTRDcalibration.cxx:917
 AliTRDcalibration.cxx:918
 AliTRDcalibration.cxx:919
 AliTRDcalibration.cxx:920
 AliTRDcalibration.cxx:921
 AliTRDcalibration.cxx:922
 AliTRDcalibration.cxx:923
 AliTRDcalibration.cxx:924
 AliTRDcalibration.cxx:925
 AliTRDcalibration.cxx:926
 AliTRDcalibration.cxx:927
 AliTRDcalibration.cxx:928
 AliTRDcalibration.cxx:929
 AliTRDcalibration.cxx:930
 AliTRDcalibration.cxx:931
 AliTRDcalibration.cxx:932
 AliTRDcalibration.cxx:933
 AliTRDcalibration.cxx:934
 AliTRDcalibration.cxx:935
 AliTRDcalibration.cxx:936
 AliTRDcalibration.cxx:937
 AliTRDcalibration.cxx:938
 AliTRDcalibration.cxx:939
 AliTRDcalibration.cxx:940
 AliTRDcalibration.cxx:941
 AliTRDcalibration.cxx:942
 AliTRDcalibration.cxx:943
 AliTRDcalibration.cxx:944
 AliTRDcalibration.cxx:945
 AliTRDcalibration.cxx:946
 AliTRDcalibration.cxx:947
 AliTRDcalibration.cxx:948
 AliTRDcalibration.cxx:949
 AliTRDcalibration.cxx:950
 AliTRDcalibration.cxx:951
 AliTRDcalibration.cxx:952
 AliTRDcalibration.cxx:953
 AliTRDcalibration.cxx:954
 AliTRDcalibration.cxx:955
 AliTRDcalibration.cxx:956
 AliTRDcalibration.cxx:957
 AliTRDcalibration.cxx:958
 AliTRDcalibration.cxx:959
 AliTRDcalibration.cxx:960
 AliTRDcalibration.cxx:961
 AliTRDcalibration.cxx:962
 AliTRDcalibration.cxx:963
 AliTRDcalibration.cxx:964
 AliTRDcalibration.cxx:965
 AliTRDcalibration.cxx:966
 AliTRDcalibration.cxx:967
 AliTRDcalibration.cxx:968
 AliTRDcalibration.cxx:969
 AliTRDcalibration.cxx:970
 AliTRDcalibration.cxx:971
 AliTRDcalibration.cxx:972
 AliTRDcalibration.cxx:973
 AliTRDcalibration.cxx:974
 AliTRDcalibration.cxx:975
 AliTRDcalibration.cxx:976
 AliTRDcalibration.cxx:977
 AliTRDcalibration.cxx:978
 AliTRDcalibration.cxx:979
 AliTRDcalibration.cxx:980
 AliTRDcalibration.cxx:981
 AliTRDcalibration.cxx:982
 AliTRDcalibration.cxx:983
 AliTRDcalibration.cxx:984
 AliTRDcalibration.cxx:985
 AliTRDcalibration.cxx:986
 AliTRDcalibration.cxx:987
 AliTRDcalibration.cxx:988
 AliTRDcalibration.cxx:989
 AliTRDcalibration.cxx:990
 AliTRDcalibration.cxx:991
 AliTRDcalibration.cxx:992
 AliTRDcalibration.cxx:993
 AliTRDcalibration.cxx:994
 AliTRDcalibration.cxx:995
 AliTRDcalibration.cxx:996
 AliTRDcalibration.cxx:997
 AliTRDcalibration.cxx:998
 AliTRDcalibration.cxx:999
 AliTRDcalibration.cxx:1000
 AliTRDcalibration.cxx:1001
 AliTRDcalibration.cxx:1002
 AliTRDcalibration.cxx:1003
 AliTRDcalibration.cxx:1004
 AliTRDcalibration.cxx:1005
 AliTRDcalibration.cxx:1006
 AliTRDcalibration.cxx:1007
 AliTRDcalibration.cxx:1008
 AliTRDcalibration.cxx:1009
 AliTRDcalibration.cxx:1010
 AliTRDcalibration.cxx:1011
 AliTRDcalibration.cxx:1012
 AliTRDcalibration.cxx:1013
 AliTRDcalibration.cxx:1014
 AliTRDcalibration.cxx:1015
 AliTRDcalibration.cxx:1016
 AliTRDcalibration.cxx:1017
 AliTRDcalibration.cxx:1018
 AliTRDcalibration.cxx:1019
 AliTRDcalibration.cxx:1020
 AliTRDcalibration.cxx:1021
 AliTRDcalibration.cxx:1022
 AliTRDcalibration.cxx:1023
 AliTRDcalibration.cxx:1024
 AliTRDcalibration.cxx:1025
 AliTRDcalibration.cxx:1026
 AliTRDcalibration.cxx:1027
 AliTRDcalibration.cxx:1028
 AliTRDcalibration.cxx:1029
 AliTRDcalibration.cxx:1030
 AliTRDcalibration.cxx:1031
 AliTRDcalibration.cxx:1032
 AliTRDcalibration.cxx:1033
 AliTRDcalibration.cxx:1034
 AliTRDcalibration.cxx:1035
 AliTRDcalibration.cxx:1036
 AliTRDcalibration.cxx:1037
 AliTRDcalibration.cxx:1038
 AliTRDcalibration.cxx:1039
 AliTRDcalibration.cxx:1040
 AliTRDcalibration.cxx:1041
 AliTRDcalibration.cxx:1042
 AliTRDcalibration.cxx:1043
 AliTRDcalibration.cxx:1044
 AliTRDcalibration.cxx:1045
 AliTRDcalibration.cxx:1046
 AliTRDcalibration.cxx:1047
 AliTRDcalibration.cxx:1048
 AliTRDcalibration.cxx:1049
 AliTRDcalibration.cxx:1050
 AliTRDcalibration.cxx:1051
 AliTRDcalibration.cxx:1052
 AliTRDcalibration.cxx:1053
 AliTRDcalibration.cxx:1054
 AliTRDcalibration.cxx:1055
 AliTRDcalibration.cxx:1056
 AliTRDcalibration.cxx:1057
 AliTRDcalibration.cxx:1058
 AliTRDcalibration.cxx:1059
 AliTRDcalibration.cxx:1060
 AliTRDcalibration.cxx:1061
 AliTRDcalibration.cxx:1062
 AliTRDcalibration.cxx:1063
 AliTRDcalibration.cxx:1064
 AliTRDcalibration.cxx:1065
 AliTRDcalibration.cxx:1066
 AliTRDcalibration.cxx:1067
 AliTRDcalibration.cxx:1068
 AliTRDcalibration.cxx:1069
 AliTRDcalibration.cxx:1070
 AliTRDcalibration.cxx:1071
 AliTRDcalibration.cxx:1072
 AliTRDcalibration.cxx:1073
 AliTRDcalibration.cxx:1074
 AliTRDcalibration.cxx:1075
 AliTRDcalibration.cxx:1076
 AliTRDcalibration.cxx:1077
 AliTRDcalibration.cxx:1078
 AliTRDcalibration.cxx:1079
 AliTRDcalibration.cxx:1080
 AliTRDcalibration.cxx:1081
 AliTRDcalibration.cxx:1082
 AliTRDcalibration.cxx:1083
 AliTRDcalibration.cxx:1084
 AliTRDcalibration.cxx:1085
 AliTRDcalibration.cxx:1086
 AliTRDcalibration.cxx:1087
 AliTRDcalibration.cxx:1088
 AliTRDcalibration.cxx:1089
 AliTRDcalibration.cxx:1090
 AliTRDcalibration.cxx:1091
 AliTRDcalibration.cxx:1092
 AliTRDcalibration.cxx:1093
 AliTRDcalibration.cxx:1094
 AliTRDcalibration.cxx:1095
 AliTRDcalibration.cxx:1096
 AliTRDcalibration.cxx:1097
 AliTRDcalibration.cxx:1098
 AliTRDcalibration.cxx:1099
 AliTRDcalibration.cxx:1100
 AliTRDcalibration.cxx:1101
 AliTRDcalibration.cxx:1102
 AliTRDcalibration.cxx:1103
 AliTRDcalibration.cxx:1104
 AliTRDcalibration.cxx:1105
 AliTRDcalibration.cxx:1106
 AliTRDcalibration.cxx:1107
 AliTRDcalibration.cxx:1108
 AliTRDcalibration.cxx:1109
 AliTRDcalibration.cxx:1110
 AliTRDcalibration.cxx:1111
 AliTRDcalibration.cxx:1112
 AliTRDcalibration.cxx:1113
 AliTRDcalibration.cxx:1114
 AliTRDcalibration.cxx:1115
 AliTRDcalibration.cxx:1116
 AliTRDcalibration.cxx:1117
 AliTRDcalibration.cxx:1118
 AliTRDcalibration.cxx:1119
 AliTRDcalibration.cxx:1120
 AliTRDcalibration.cxx:1121
 AliTRDcalibration.cxx:1122
 AliTRDcalibration.cxx:1123
 AliTRDcalibration.cxx:1124
 AliTRDcalibration.cxx:1125
 AliTRDcalibration.cxx:1126
 AliTRDcalibration.cxx:1127
 AliTRDcalibration.cxx:1128
 AliTRDcalibration.cxx:1129
 AliTRDcalibration.cxx:1130
 AliTRDcalibration.cxx:1131
 AliTRDcalibration.cxx:1132
 AliTRDcalibration.cxx:1133
 AliTRDcalibration.cxx:1134
 AliTRDcalibration.cxx:1135
 AliTRDcalibration.cxx:1136
 AliTRDcalibration.cxx:1137
 AliTRDcalibration.cxx:1138
 AliTRDcalibration.cxx:1139
 AliTRDcalibration.cxx:1140
 AliTRDcalibration.cxx:1141
 AliTRDcalibration.cxx:1142
 AliTRDcalibration.cxx:1143
 AliTRDcalibration.cxx:1144
 AliTRDcalibration.cxx:1145
 AliTRDcalibration.cxx:1146
 AliTRDcalibration.cxx:1147
 AliTRDcalibration.cxx:1148
 AliTRDcalibration.cxx:1149
 AliTRDcalibration.cxx:1150
 AliTRDcalibration.cxx:1151
 AliTRDcalibration.cxx:1152
 AliTRDcalibration.cxx:1153
 AliTRDcalibration.cxx:1154
 AliTRDcalibration.cxx:1155
 AliTRDcalibration.cxx:1156
 AliTRDcalibration.cxx:1157
 AliTRDcalibration.cxx:1158
 AliTRDcalibration.cxx:1159
 AliTRDcalibration.cxx:1160
 AliTRDcalibration.cxx:1161
 AliTRDcalibration.cxx:1162
 AliTRDcalibration.cxx:1163
 AliTRDcalibration.cxx:1164
 AliTRDcalibration.cxx:1165
 AliTRDcalibration.cxx:1166
 AliTRDcalibration.cxx:1167
 AliTRDcalibration.cxx:1168
 AliTRDcalibration.cxx:1169
 AliTRDcalibration.cxx:1170
 AliTRDcalibration.cxx:1171
 AliTRDcalibration.cxx:1172
 AliTRDcalibration.cxx:1173
 AliTRDcalibration.cxx:1174
 AliTRDcalibration.cxx:1175
 AliTRDcalibration.cxx:1176
 AliTRDcalibration.cxx:1177
 AliTRDcalibration.cxx:1178
 AliTRDcalibration.cxx:1179
 AliTRDcalibration.cxx:1180
 AliTRDcalibration.cxx:1181
 AliTRDcalibration.cxx:1182
 AliTRDcalibration.cxx:1183
 AliTRDcalibration.cxx:1184
 AliTRDcalibration.cxx:1185
 AliTRDcalibration.cxx:1186
 AliTRDcalibration.cxx:1187
 AliTRDcalibration.cxx:1188
 AliTRDcalibration.cxx:1189
 AliTRDcalibration.cxx:1190
 AliTRDcalibration.cxx:1191
 AliTRDcalibration.cxx:1192
 AliTRDcalibration.cxx:1193
 AliTRDcalibration.cxx:1194
 AliTRDcalibration.cxx:1195
 AliTRDcalibration.cxx:1196
 AliTRDcalibration.cxx:1197
 AliTRDcalibration.cxx:1198
 AliTRDcalibration.cxx:1199
 AliTRDcalibration.cxx:1200
 AliTRDcalibration.cxx:1201
 AliTRDcalibration.cxx:1202
 AliTRDcalibration.cxx:1203
 AliTRDcalibration.cxx:1204
 AliTRDcalibration.cxx:1205
 AliTRDcalibration.cxx:1206
 AliTRDcalibration.cxx:1207
 AliTRDcalibration.cxx:1208
 AliTRDcalibration.cxx:1209
 AliTRDcalibration.cxx:1210
 AliTRDcalibration.cxx:1211
 AliTRDcalibration.cxx:1212
 AliTRDcalibration.cxx:1213
 AliTRDcalibration.cxx:1214
 AliTRDcalibration.cxx:1215
 AliTRDcalibration.cxx:1216
 AliTRDcalibration.cxx:1217
 AliTRDcalibration.cxx:1218
 AliTRDcalibration.cxx:1219
 AliTRDcalibration.cxx:1220
 AliTRDcalibration.cxx:1221
 AliTRDcalibration.cxx:1222
 AliTRDcalibration.cxx:1223
 AliTRDcalibration.cxx:1224
 AliTRDcalibration.cxx:1225
 AliTRDcalibration.cxx:1226
 AliTRDcalibration.cxx:1227
 AliTRDcalibration.cxx:1228
 AliTRDcalibration.cxx:1229
 AliTRDcalibration.cxx:1230
 AliTRDcalibration.cxx:1231
 AliTRDcalibration.cxx:1232
 AliTRDcalibration.cxx:1233
 AliTRDcalibration.cxx:1234
 AliTRDcalibration.cxx:1235
 AliTRDcalibration.cxx:1236
 AliTRDcalibration.cxx:1237
 AliTRDcalibration.cxx:1238
 AliTRDcalibration.cxx:1239
 AliTRDcalibration.cxx:1240
 AliTRDcalibration.cxx:1241
 AliTRDcalibration.cxx:1242
 AliTRDcalibration.cxx:1243
 AliTRDcalibration.cxx:1244
 AliTRDcalibration.cxx:1245
 AliTRDcalibration.cxx:1246
 AliTRDcalibration.cxx:1247
 AliTRDcalibration.cxx:1248
 AliTRDcalibration.cxx:1249
 AliTRDcalibration.cxx:1250
 AliTRDcalibration.cxx:1251
 AliTRDcalibration.cxx:1252
 AliTRDcalibration.cxx:1253
 AliTRDcalibration.cxx:1254
 AliTRDcalibration.cxx:1255
 AliTRDcalibration.cxx:1256
 AliTRDcalibration.cxx:1257
 AliTRDcalibration.cxx:1258
 AliTRDcalibration.cxx:1259
 AliTRDcalibration.cxx:1260
 AliTRDcalibration.cxx:1261
 AliTRDcalibration.cxx:1262
 AliTRDcalibration.cxx:1263
 AliTRDcalibration.cxx:1264
 AliTRDcalibration.cxx:1265
 AliTRDcalibration.cxx:1266
 AliTRDcalibration.cxx:1267
 AliTRDcalibration.cxx:1268
 AliTRDcalibration.cxx:1269
 AliTRDcalibration.cxx:1270
 AliTRDcalibration.cxx:1271
 AliTRDcalibration.cxx:1272
 AliTRDcalibration.cxx:1273
 AliTRDcalibration.cxx:1274
 AliTRDcalibration.cxx:1275
 AliTRDcalibration.cxx:1276
 AliTRDcalibration.cxx:1277
 AliTRDcalibration.cxx:1278
 AliTRDcalibration.cxx:1279
 AliTRDcalibration.cxx:1280
 AliTRDcalibration.cxx:1281
 AliTRDcalibration.cxx:1282
 AliTRDcalibration.cxx:1283
 AliTRDcalibration.cxx:1284
 AliTRDcalibration.cxx:1285
 AliTRDcalibration.cxx:1286
 AliTRDcalibration.cxx:1287
 AliTRDcalibration.cxx:1288
 AliTRDcalibration.cxx:1289
 AliTRDcalibration.cxx:1290
 AliTRDcalibration.cxx:1291
 AliTRDcalibration.cxx:1292
 AliTRDcalibration.cxx:1293
 AliTRDcalibration.cxx:1294
 AliTRDcalibration.cxx:1295
 AliTRDcalibration.cxx:1296
 AliTRDcalibration.cxx:1297
 AliTRDcalibration.cxx:1298
 AliTRDcalibration.cxx:1299
 AliTRDcalibration.cxx:1300
 AliTRDcalibration.cxx:1301
 AliTRDcalibration.cxx:1302
 AliTRDcalibration.cxx:1303
 AliTRDcalibration.cxx:1304
 AliTRDcalibration.cxx:1305
 AliTRDcalibration.cxx:1306
 AliTRDcalibration.cxx:1307
 AliTRDcalibration.cxx:1308
 AliTRDcalibration.cxx:1309
 AliTRDcalibration.cxx:1310
 AliTRDcalibration.cxx:1311
 AliTRDcalibration.cxx:1312
 AliTRDcalibration.cxx:1313
 AliTRDcalibration.cxx:1314
 AliTRDcalibration.cxx:1315
 AliTRDcalibration.cxx:1316
 AliTRDcalibration.cxx:1317
 AliTRDcalibration.cxx:1318
 AliTRDcalibration.cxx:1319
 AliTRDcalibration.cxx:1320
 AliTRDcalibration.cxx:1321
 AliTRDcalibration.cxx:1322
 AliTRDcalibration.cxx:1323
 AliTRDcalibration.cxx:1324
 AliTRDcalibration.cxx:1325
 AliTRDcalibration.cxx:1326
 AliTRDcalibration.cxx:1327
 AliTRDcalibration.cxx:1328
 AliTRDcalibration.cxx:1329
 AliTRDcalibration.cxx:1330
 AliTRDcalibration.cxx:1331
 AliTRDcalibration.cxx:1332
 AliTRDcalibration.cxx:1333
 AliTRDcalibration.cxx:1334
 AliTRDcalibration.cxx:1335
 AliTRDcalibration.cxx:1336
 AliTRDcalibration.cxx:1337
 AliTRDcalibration.cxx:1338
 AliTRDcalibration.cxx:1339
 AliTRDcalibration.cxx:1340
 AliTRDcalibration.cxx:1341
 AliTRDcalibration.cxx:1342
 AliTRDcalibration.cxx:1343
 AliTRDcalibration.cxx:1344
 AliTRDcalibration.cxx:1345
 AliTRDcalibration.cxx:1346
 AliTRDcalibration.cxx:1347
 AliTRDcalibration.cxx:1348
 AliTRDcalibration.cxx:1349
 AliTRDcalibration.cxx:1350
 AliTRDcalibration.cxx:1351
 AliTRDcalibration.cxx:1352
 AliTRDcalibration.cxx:1353
 AliTRDcalibration.cxx:1354
 AliTRDcalibration.cxx:1355
 AliTRDcalibration.cxx:1356
 AliTRDcalibration.cxx:1357
 AliTRDcalibration.cxx:1358
 AliTRDcalibration.cxx:1359
 AliTRDcalibration.cxx:1360
 AliTRDcalibration.cxx:1361
 AliTRDcalibration.cxx:1362
 AliTRDcalibration.cxx:1363
 AliTRDcalibration.cxx:1364
 AliTRDcalibration.cxx:1365
 AliTRDcalibration.cxx:1366
 AliTRDcalibration.cxx:1367
 AliTRDcalibration.cxx:1368
 AliTRDcalibration.cxx:1369
 AliTRDcalibration.cxx:1370
 AliTRDcalibration.cxx:1371
 AliTRDcalibration.cxx:1372
 AliTRDcalibration.cxx:1373
 AliTRDcalibration.cxx:1374
 AliTRDcalibration.cxx:1375
 AliTRDcalibration.cxx:1376
 AliTRDcalibration.cxx:1377
 AliTRDcalibration.cxx:1378
 AliTRDcalibration.cxx:1379
 AliTRDcalibration.cxx:1380
 AliTRDcalibration.cxx:1381
 AliTRDcalibration.cxx:1382
 AliTRDcalibration.cxx:1383
 AliTRDcalibration.cxx:1384
 AliTRDcalibration.cxx:1385
 AliTRDcalibration.cxx:1386
 AliTRDcalibration.cxx:1387
 AliTRDcalibration.cxx:1388
 AliTRDcalibration.cxx:1389
 AliTRDcalibration.cxx:1390
 AliTRDcalibration.cxx:1391
 AliTRDcalibration.cxx:1392
 AliTRDcalibration.cxx:1393
 AliTRDcalibration.cxx:1394
 AliTRDcalibration.cxx:1395
 AliTRDcalibration.cxx:1396
 AliTRDcalibration.cxx:1397
 AliTRDcalibration.cxx:1398
 AliTRDcalibration.cxx:1399
 AliTRDcalibration.cxx:1400
 AliTRDcalibration.cxx:1401
 AliTRDcalibration.cxx:1402
 AliTRDcalibration.cxx:1403
 AliTRDcalibration.cxx:1404
 AliTRDcalibration.cxx:1405
 AliTRDcalibration.cxx:1406
 AliTRDcalibration.cxx:1407
 AliTRDcalibration.cxx:1408
 AliTRDcalibration.cxx:1409
 AliTRDcalibration.cxx:1410
 AliTRDcalibration.cxx:1411
 AliTRDcalibration.cxx:1412
 AliTRDcalibration.cxx:1413
 AliTRDcalibration.cxx:1414
 AliTRDcalibration.cxx:1415
 AliTRDcalibration.cxx:1416
 AliTRDcalibration.cxx:1417
 AliTRDcalibration.cxx:1418
 AliTRDcalibration.cxx:1419
 AliTRDcalibration.cxx:1420
 AliTRDcalibration.cxx:1421
 AliTRDcalibration.cxx:1422
 AliTRDcalibration.cxx:1423
 AliTRDcalibration.cxx:1424
 AliTRDcalibration.cxx:1425
 AliTRDcalibration.cxx:1426
 AliTRDcalibration.cxx:1427
 AliTRDcalibration.cxx:1428
 AliTRDcalibration.cxx:1429
 AliTRDcalibration.cxx:1430
 AliTRDcalibration.cxx:1431
 AliTRDcalibration.cxx:1432
 AliTRDcalibration.cxx:1433
 AliTRDcalibration.cxx:1434
 AliTRDcalibration.cxx:1435
 AliTRDcalibration.cxx:1436
 AliTRDcalibration.cxx:1437
 AliTRDcalibration.cxx:1438