ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

/* $Id$ */

////////////////////////////////////////////////////////////////////////////
//                                                                        //
//  Produces the data needed to calculate the quality assurance.          //
//  All data must be mergeable objects.                                   //
//                                                                        //
//  Author:                                                               //
//    Sylwester Radomski (radomski@physi.uni-heidelberg.de)               //
//                                                                        //
////////////////////////////////////////////////////////////////////////////

// --- ROOT system ---
#include <TClonesArray.h>
#include <TFile.h> 
#include <TH1F.h> 
#include <TH2F.h>
#include <TH3F.h>
#include <TProfile.h>
#include <TF1.h>
#include <TCanvas.h>

// --- AliRoot header files ---
#include "AliESDEvent.h"
#include "AliLog.h"
#include "AliRawReader.h"
#include "AliTRDcluster.h"
#include "AliTRDQADataMakerRec.h"
#include "AliTRDgeometry.h"
#include "AliTRDrawStream.h"

#include "AliTRDdigitsManager.h"
#include "AliTRDSignalIndex.h"
#include "AliTRDarrayADC.h"

#include "AliQAChecker.h"

ClassImp(AliTRDQADataMakerRec)

//____________________________________________________________________________ 
  AliTRDQADataMakerRec::AliTRDQADataMakerRec() : 
  AliQADataMakerRec(AliQAv1::GetDetName(AliQAv1::kTRD), "TRD Quality Assurance Data Maker")
{
  //
  // Default constructor
}

//____________________________________________________________________________ 
AliTRDQADataMakerRec::AliTRDQADataMakerRec(const AliTRDQADataMakerRec& qadm) :
  AliQADataMakerRec()
{
  //
  // Copy constructor 
  //

  SetName((const char*)qadm.GetName()) ; 
  SetTitle((const char*)qadm.GetTitle()); 

}

//__________________________________________________________________
AliTRDQADataMakerRec& AliTRDQADataMakerRec::operator=(const AliTRDQADataMakerRec& qadm)
{
  //
  // Equal operator.
  //

  this->~AliTRDQADataMakerRec();
  new(this) AliTRDQADataMakerRec(qadm);
  return *this;

}

//____________________________________________________________________________ 
void AliTRDQADataMakerRec::EndOfDetectorCycle(AliQAv1::TASKINDEX_t task, TObjArray ** list)
{
  //
  // Detector specific actions at end of cycle
  //
  //TStopwatch watch;
  //watch.Start();
  ResetEventTrigClasses();
  AliDebug(AliQAv1::GetQADebugLevel(), "End of TRD cycle");
  //
  for (Int_t specie = 0 ; specie < AliRecoParam::kNSpecies ; specie++) {  // loop over event types
    //
    if (!IsValidEventSpecie(specie, list)) continue;
    SetEventSpecie(AliRecoParam::ConvertIndex(specie));
    //
    for (int itc=-1;itc<GetNTrigClasses();itc++) { // RS: loop over eventual clones per trigger class
      //
      if (task == AliQAv1::kRAWS) {      	
	TH2 *mnCls   = (TH2*)GetRawsData(1, itc);
	TH2 *mClsDet = (TH2*)GetRawsData(2, itc); 
	if (mnCls && mClsDet) mClsDet->Divide(mnCls);
      }
      //      
      if (task == AliQAv1::kRECPOINTS) {
	//
	TH1F * hist = new TH1F("fitHist", "", 200, -0.5, 199.5);
	TObjArray& arrRP = *GetRecPointsDataOfTrigClass(itc); // RS Histos matching to trigger class
	// fill detector map;
	TH1* h0     = (TH1*) arrRP[0];
	TH1* detMap = (TH1*) arrRP[87];
	if (h0 && detMap) {
	  for(Int_t i = 0 ; i < 540 ; i++) {
	    Double_t v = h0->GetBinContent(i+1);
	    Int_t sm = i/30;
	    Int_t det = i%30;
	    Int_t bin = detMap->FindBin(sm, det);
	    detMap->SetBinContent(bin, v);
	  }
	}
	//	  
	// Rec points full chambers
	TH2* h2tmp = (TH2*) arrRP[1];
	TH1* h12   = (TH1*) arrRP[12];
	TH1* h13   = (TH1*) arrRP[13];
	if (h2tmp && h12 && h13) {
	  for (Int_t i = 0 ; i < 540 ; i++) {
	    //AliDebug(AliQAv1::GetQADebugLevel(), Form("I = %d", i));
	    hist->Reset();	    
	    // project TH2F into TH1F 
	    for(Int_t b = 1 ; b < hist->GetXaxis()->GetNbins()-1 ; b++) {
	      Double_t xvalue = hist->GetBinCenter(b);
	      Int_t bin = h2tmp->FindBin(i,xvalue);
	      Double_t value =  h2tmp->GetBinContent(bin);
	      hist->SetBinContent(b, value);
	    }
	    //AliDebug(AliQAv1::GetQADebugLevel(), Form("Sum = %d %f\n", i, hist->GetSum()));
	    if (hist->GetSum() < 100) continue; // not enougth data in a chamber
	    //
	    hist->Fit("landau", "q0", "goff", 10, 180);
	    TF1 *fit = hist->GetFunction("landau");
	    h12->Fill(fit->GetParameter(1));
	    h13->Fill(fit->GetParameter(2));
	  }
	}
	//	  
	// time-bin by time-bin sm by sm
	TH3* h3tmp = (TH3*) arrRP[10]; 
	if (h3tmp) {
	  for(Int_t i=0; i<18; i++) { // loop over super-modules      
	    for(Int_t j=0; j<kTimeBin; j++) { // loop over time bins	  
	      hist->Reset();
	      for(Int_t b = 1 ; b < hist->GetXaxis()->GetNbins()-1 ; b++) {
		Double_t xvalue = hist->GetBinCenter(b);
		Double_t svalue = 0.0;
		for(Int_t det = i*30 ; det < (i+1)*30 ; det++) { // loop over detectors
		  Int_t bin = h3tmp->FindBin(det,j,xvalue);
		  Double_t value =  h3tmp->GetBinContent(bin);
		  svalue += value;
		}
		//AliDebug(AliQAv1::GetQADebugLevel(), Form("v = %f\n", value));
		hist->SetBinContent(b, svalue);
	      }
	      //
	      if (hist->GetSum() < 100) continue;
	      //
	      hist->Fit("landau", "q0", "goff", 10, 180);
	      TF1 *fit = hist->GetFunction("landau");
	      //
	      TH1 *hi = (TH1*)arrRP[14+18+i];
	      if (!hi) continue;
	      hi->SetMarkerStyle(20);
	      Int_t bin = hi->FindBin(j);
	      // printf("%d %d %d\n", det, j, bin);
	      //
	      Double_t value = TMath::Abs(fit->GetParameter(1));
	      Double_t error = TMath::Abs(fit->GetParError(1));
	      //
	      if (value/error < 3) continue; // insuficient statistics
	      //
	      hi->SetBinContent(bin, value);
	      hi->SetBinError(bin, error);	
	    } // j
	  } // i
	  //
	  // for numerical convergence
	  TF1 *form = new TF1("formLandau", "landau", 0, 200);
	  //
	  // time-bin by time-bin chamber by chamber
	  for (Int_t i=0; i<540; i++) {
	    for(Int_t j=0; j<kTimeBin; j++) {
	      //	    
	      hist->Reset();
	      for(Int_t b = 1 ; b < hist->GetXaxis()->GetNbins()-1 ; b++) {
		Double_t xvalue = hist->GetBinCenter(b);
		Int_t bin = h3tmp->FindBin(i,j,xvalue);
		Double_t value =  h3tmp->GetBinContent(bin);
		//AliDebug(AliQAv1::GetQADebugLevel(), Form("v = %f\n", value));
		hist->SetBinContent(b, value);
	      }
	      //
	      if (hist->GetSum() < 100) continue;
	      
	      form->SetParameters(1000, 60, 20);
	      hist->Fit(form, "q0", "goff", 20, 180);
	      
	      Int_t sm = i/30;
	      Int_t det = i%30;
	      TH1 *hi = (TH1*)arrRP[14+sm];
	      if (!hi) continue;
	      Int_t bin = hi->FindBin(det,j);
	      // printf("%d %d %d\n", det, j, bin);
	      //
	      Double_t value = TMath::Abs(form->GetParameter(1));
	      Double_t error = TMath::Abs(form->GetParError(1));
	      //
	      if (value/error < 3) continue;
	      //
	      hi->SetBinContent(bin, value);
	      hi->SetBinError(bin, error);
	    } // j
	  } // i
	} // h3tmp	
	if (hist) delete hist;
      } // RECPOINTS
      //
      //////////////////////////
      // const Int_t knbits = 6;
      // const char *suf[knbits] = {"TPCi", "TPCo", "TPCz", "TRDo", "TRDr", "TRDz"};
      //const char *sufRatio[4] = {"TRDrTRDo", "TRDoTPCo", "TRDrTPCo", "TRDzTPCo"};
      
      if (task == AliQAv1::kESDS) {
	//
	const Int_t knRatio = 4;
	const Int_t kN[knRatio] = {4,3,4,5};
	const Int_t kD[knRatio] = {3,1,1,3}; 
	//
	TObjArray& arrES = *GetESDsDataOfTrigClass(itc); // RS Histos matching to trigger class
	// create ratios
	for(Int_t type = 0 ; type < 2 ; type++) {
	  for(Int_t i = 0 ; i < knRatio ; i++) {	    
	    TH1 *ratio = (TH1*)arrES[19 + 2*i + type];
	    TH1 *histN = (TH1*)arrES[3 + 2*kN[i] + type];
	    TH1 *histD = (TH1*)arrES[3 + 2*kD[i] + type];
	    if ( ! (ratio && histN && histD) ) continue;
	    BuildRatio(ratio, histN, histD);
	    //ratio->Reset();
	    //ratio->Add(histN);
	    //ratio->Divide(histD);
	  }
	}
	// ratio for the fraction of electrons per stack
	TH1 *histN = (TH1*)arrES[33];
	TH1 *histD = (TH1*)arrES[32];
	TH1 *ratio = (TH1*)arrES[34];
	BuildRatio(ratio, histN, histD);
      } // ESDs
    } // RS: loop over eventual clones per trigger class
  } // loop over species
  // call the checker
  AliQAChecker::Instance()->Run(AliQAv1::kTRD, task, list) ;    
  //
}

//____________________________________________________________________________ 
void AliTRDQADataMakerRec::InitESDs()
{
  //
  // Create ESDs histograms in ESDs subdir
  //
  const Bool_t expert   = kTRUE ; 
  const Bool_t image    = kTRUE ; 
  
  const Int_t kNhist = 36+5+4;

  TH1 *hist[kNhist];
  Int_t histoCounter = -1 ;

  hist[++histoCounter] = new TH1F("qaTRD_esd_ntracks", "TRD esd ntracks;Number of tracks;Counts", 300, -0.5, 299.5);
  hist[++histoCounter] = new TH1F("qaTRD_esd_sector", "TRD esd sector;Sector;Counts", 18, -0.5, 17.7);
  hist[++histoCounter] = new TH1F("qaTRD_esd_bits", "TRD esd bits;Bits;Counts", 64, -0.5, 63.5);

  const Int_t knbits = 6;
  const char *suf[knbits] = {"TPCi", "TPCo", "TPCz", "TRDo", "TRDr", "TRDz"};

  // histo = 3
  for(Int_t i=0; i<knbits; i++) { 
    hist[++histoCounter] = new TH1F(Form("qaTRD_esd_pt%s",suf[i]), Form("qaTRD_esd_pt%s;p_{T} (GeV/c);Counts",suf[i]), 100, 0, 10);
    hist[++histoCounter] = new TH1F(Form("qaTRD_esd_trdz%s", suf[i]), ";z (cm)", 200, -400, 400); 
  }

  hist[++histoCounter] = new TH1F("qaTRD_esd_clsTRDo", "TRDo;number of clusters;Counts", 180, -0.5, 179.5);;
  hist[++histoCounter] = new TH1F("qaTRD_esd_clsTRDr", "TRDr;number of clusters;Counts", 180, -0.5, 179.5);;
  hist[++histoCounter] = new TH1F("qaTRD_esd_clsTRDz", "TRDz;number of clusters;Counts", 180, -0.5, 179.5);;
  //hist[++histoCounter] = new TH1F("qaTRD_esd_clsRatio", ";cluster ratio", 100, 0., 1.3);;

  hist[++histoCounter] = new TH2F("qaTRD_esd_sigMom", "TRD esd sig Mom;momentum (GeV/c);signal", 100, 0, 5, 200, 0, 1e3);

  // end of cycle plots (hist 19)
  const char *sufRatio[4] = {"TRDrTRDo", "TRDoTPCo", "TRDrTPCo", "TRDzTPCo"};

  for(int i=0; i<4; i++) {
    hist[++histoCounter] = new TH1F(Form("qaTRD_esd_pt%s",sufRatio[i]), 
				    Form("Efficiency in Pt %s;p_{T};eff", sufRatio[i]),
				    100, 0, 10);

    hist[++histoCounter] = new TH1F(Form("qaTRD_esd_trdz%s",sufRatio[i]), 
				    Form("Efficiency in Z %s;z (cm);eff", sufRatio[i]),
				    200, -400, 400);
  }

  // 27 - 31
  hist[27] = new TH1F("qaTRD_esd_quality", "TRD esd quality;quality;Counts", 120, 0, 12);
  hist[28] = new TH1F("qaTRD_esd_budget", "TRD esd budget;NN;Counts", 110, -1000, 100);
  hist[29] = new TH1F("qaTRD_esd_chi2", "TRD esd chi2;chi2;Counts", 200, 0, 100);
  hist[30] = new TH1F("qaTRD_esd_timeBin", "TRD esd timeBin;time bin;Counts", 7, -0.5, 6.5);
  hist[31] = new TH1F("qaTRD_esd_pidQuality", "pid Quality;quality;;Counts", 7, -0.5, 6.5);

  // stack by stack electron identyfication
  hist[32] = new TH1F("qaTRD_esd_tracksStack", "number of all tracks;stack;Counts", 90, -0.5, 89.5);
  hist[33] = new TH1F("qaTRD_esd_electronStack", "number of electron tracks;stack;Counts", 90, -0.5, 89.5);
  hist[34] = new TH1F("qaTRD_esd_elRatioStack", "fraction of electron tracks;stack;Counts", 90, -0.5, 89.5);
  hist[35] = new TH1F("qaTRD_esd_thetaOut", ";tan(theta);", 100, -1, 1);
  
  const char *partType[5] = {"Electron", "Muon", "Pion", "Kaon", "Proton"}; 

  for(Int_t i=0; i<AliPID::kSPECIES; i++)
    hist[36+i] = new TH1F(Form("qaTRD_esd_pid%d",i),
			  Form("%s;probability;Counts",partType[i]), 100, 0, 1);
 
  // dE/dX vs momentum in three regions
  const char *zoneName[4] = {"total charge", "ampilification range", "plateau", "TR range"};
 
  // prepare the scale from 0.1 to 10 GeV
  const Int_t nscalex= 50;
  Double_t scalex[nscalex+1];
  Double_t dd = (TMath::Log(10) - TMath::Log(0.5)) / nscalex;
  for(Int_t ix=0; ix<nscalex+1; ix++) {
    scalex[ix] = 0.5 * TMath::Exp(dd * ix);
  }

  const Int_t nscaley = 50;
  Double_t scaley[nscaley+1];
  for(Int_t iy=0; iy<nscaley+1; iy++) {
    scaley[iy] = iy * (3e3/nscaley);
  }
    

  for(Int_t i=0; i<4; i++) {
    hist[41+i] = new TH2F(Form("qaTRD_esd_signalPzone_%d",i), 
			  Form("%s;momentum (GeV/c);signal (a.u.)", zoneName[i]),
			  nscalex, scalex, nscaley, scaley);
  }

  for(Int_t i=0; i<kNhist; i++) {
    //hist[i]->Sumw2();
    Add2ESDsList(hist[i], i, !expert, image);
  }
  //
  ClonePerTrigClass(AliQAv1::kESDS); // this should be the last line
}

//____________________________________________________________________________ 
void AliTRDQADataMakerRec::InitRecPoints()
{
  //
  // Create Reconstructed Points histograms in RecPoints subdir
  //
  const Bool_t expert   = kTRUE ; 
  const Bool_t image    = kTRUE ; 
  
  //printf("Helo from Init rec points\n");

  const Int_t kNhist = 14 + 4 * 18 + 2 + 9;// + 540;
  TH1 *hist[kNhist];

  hist[0] = new TH1F("qaTRD_recPoints_det", "RRD recPoints det;Detector ID of the cluster;Counts", 540, -0.5, 539.5);
  hist[1] = new TH2F("qaTRD_recPoints_amp", "TRD recPoints amp;Amplitude;??", 540, -0.5, 539, 200, -0.5, 199.5);
  hist[2] = new TH1F("qaTRD_recPoints_npad", "TRD recPoints npad;Number of Pads;Counts", 12, -0.5, 11.5);

  hist[3] = new TH1F("qaTRD_recPoints_dist2", "TRD recPoints dist2;residuals [2pad];Counts", 100, -1, 1);
  hist[4] = new TH1F("qaTRD_recPoints_dist3", "TRD recPoints dist3;residuals [3pad];Counts", 100, -1, 1);
  hist[5] = new TH1F("qaTRD_recPoints_dist4", "TRD recPoints dist4;residuals [4pad];Counts", 100, -1, 1);
  hist[6] = new TH1F("qaTRD_recPoints_dist5", "TRD recPoints dist5;residuals [5pad];Counts", 100, -1, 1);

  hist[7] = new TH2F("qaTRD_recPoints_rowCol", "TRDrecPointsrowCol;row;col", 16, -0.5, 15.5, 145, -0.5, 144.5);
  hist[8] = new TH1F("qaTRD_recPoints_time", "TRDrecPoints time;time bin;Counts", kTimeBin, -0.5, kTimeBin-0.5);
  hist[9] = new TH1F("qaTRD_recPoints_nCls", "TRD recPoints nCls;number of clusters;Counts", 500, -0.5, 499.5);

  hist[10] = new TH3F("qaTRD_recPoints_sigTime", "TRD recPoints sigTime;chamber;time bin;signal", 
		      540, -0.5, 539.5, kTimeBin, -0.5, kTimeBin-0.5, 200, -0.5, 199.5);
  hist[11] = new TProfile("qaTRD_recPoints_prf", "TRD recPoints prf;distance;center of gravity;Counts"
                         , 120, -0.6, 0.6, -1.2, 1.2, "");

  hist[12] = new TH1F("qaTRD_recPoints_ampMPV", "TRD recPoints ampMPV;amplitude MPV;Counts", 150, 0, 150);
  hist[13] = new TH1F("qaTRD_recPoints_ampSigma", "TRD recPoints ampSigma;amplitude Sigma;Counts", 200, 0, 200); 
  
  // chamber by chamber
  for(Int_t i=0; i<18; i++) {
    hist[14+i] = new TH2F(Form("qaTRD_recPoints_sigTime_sm%d",i), Form("sm%d;det;time bin",i), 
			30, -0.5, 29.5, kTimeBin, -0.5, kTimeBin-0.5);
    hist[14+i]->SetMinimum(0);
    hist[14+i]->SetMaximum(150);
  }
 
  // time bin by time bin sm-by-sm
  for(Int_t i=0; i<18; i++) {
    hist[14+18+i] = new TH1F(Form("qaTRD_recPoints_sigTimeShape_sm%d", i), 
			     Form("sm%d;time bin;signal",i),
			     kTimeBin, -0.5, kTimeBin-0.5);

    hist[14+18+i]->SetMaximum(150);    
  }

  // str = 50
  for(Int_t i=0; i<18; i++) {
    hist[50+i] = new TH1F(Form("qaTRD_recPoints_nCls_sm%d",i),
			  Form("sm%d;time bin;number of clusters",i),
			  kTimeBin, -0.5, kTimeBin-0.5);
  }

  // str = 68
  for(Int_t i=0; i<18; i++) {
    hist[68+i] = new TH1F(Form("qaTRD_recPoints_totalCharge_sm%d", i),
			  Form("sm%d;time bin;total charge", i),
			  kTimeBin, -0.5, kTimeBin-0.5);
  }

  hist[86] = new TH1F("qaTRD_recPoints_signal", "TRD recPoints signal;amplitude;Counts", 400, -0.5, 399.5);
  hist[87] = new TH2F("qaTRD_recPoints_detMap", "TRD recPoints detMap;sm;chamber;Counts", 18, -0.5, 17.5, 30, -0.5, 29.5);

  
  // amplitude as a function of the pad size
  for(Int_t i=0; i<9; i++) {
    hist[88+i] = new TH1F(Form("qaTRD_recPoints_signalNpad_%d", i+2), Form("qaTRD_recPoints_signalNpad_%d;amplitude, ADC", i+2), 400, -0.5, 399.5); 
  }
  
  // one 2D histogram per chamber
  //  for(Int_t i=0; i<540; i++) {
  //  hist[88+i] = new TH2F(Form("qaTRD_recPoints_map%d", i), ";col;row", 16, -0.5, 15.5, 144, -0.5, 143.5);
  //}


  for(Int_t i=0; i<kNhist; i++) {
    //hist[i]->Sumw2();
    Add2RecPointsList(hist[i], i, !expert, image);
  }
  //
  ClonePerTrigClass(AliQAv1::kRECPOINTS); // this should be the last line
}

//____________________________________________________________________________ 
void AliTRDQADataMakerRec::InitRaws()
{
  //
  // create Raws histograms in Raws subdir
  //
  const Bool_t expert   = kTRUE ; 
  const Bool_t saveCorr = kTRUE ; 
  const Bool_t image    = kTRUE ; 
  
  AliInfo("Initialization of QA for Raw Data");
  
  const Int_t kNhist = 7;
  TH1 *hist[kNhist];

  hist[0] = new TH2F("qaTRD_raws_nADC","number of ADC channels;sector;detector", 18, -0.5, 17.5, 30, -0.5, 29.5);
  hist[1] = new TH2F("qaTRD_raws_nCls", "number of clusters;sector;detector", 18, -0.5, 17.5, 30, -0.5, 29.5);
  hist[2] = new TH2F("qaTRD_raws_meanSig", "mean signal;sector;detector", 18, -0.5, 17.5, 30, -0.5, 29.5);
  
  hist[3] = new TH1F("qaTRD_raws_ADC", "ADC amplitude;ADC counts", 100, -0.5, 99.5);
  hist[4] = new TH1F("qaTRD_raws_Cls", "Cluster amplitude; ADC counts", 100, -0.5, 199.5);
  hist[5] = new TH2F("qaTRD_raws_ClsTb", "Clusters vs Time Bin;time bin;amoplitude", 30, -0.5, 29.5, 200, -0.5, 199.5);
  
  hist[6] = new TH2F("qaTRD_raws_ClsAmpDet", ";detector;amplitude", 540, -0.5, 539.5, 100, 0, 200);
  

  /*
    hist[0] = new TH2F("qaTRD_raws_DataVolume", ";Sector;Data Volume, kB", 18, -0.5, 17.5, 100, 0, 30);
    hist[1] = new TH2F("qaTRD_raws_HC", "Data Headers;Sector;HC", 18, -0.5, 17.5, 60, -0.5, 59.5);
    hist[2] = new TH2F("qaTRD_raws_LME", "Link Monitor Error;Sector;HC", 18, -0.5, 17.5, 60, -0.5, 59.5);
    
    hist[3] = new TH1F("qaTRD_rawd_cls", "Clusters amplitude;ADC counts", 100, 0, 200);
    hist[4] = new TH2F("qaTRD_raws_clsTB", "amplitude - time bins;time bin;amplitude"
    30, -0.5, 29.5, 100, 0, 200);
    hist[5] = new TH2F("qaTRD_raws_clsSec", "amplitude in sectors;Sector;amplitude, ADCs"
    18, -0.5, 17.5);
  */


  // register
  for(Int_t i=0; i<kNhist; i++) {
    //hist[i]->Sumw2();
    Add2RawsList(hist[i], i, !expert, image, !saveCorr);
  }
  //
  ClonePerTrigClass(AliQAv1::kRAWS); // this should be the last line
}

//____________________________________________________________________________
void AliTRDQADataMakerRec::MakeESDs(AliESDEvent * esd)
{
  //
  // Make QA data from ESDs
  //
  
  Int_t nTracks = esd->GetNumberOfTracks();
  FillESDsData(0,nTracks);

  // track loop
  for (Int_t iTrack = 0; iTrack<nTracks; iTrack++) {

    AliESDtrack *track = esd->GetTrack(iTrack);
    const AliExternalTrackParam *paramOut = track->GetOuterParam();
    const AliExternalTrackParam *paramIn = track->GetInnerParam();

    // long track ..
    if (!paramIn) continue;
    if (!paramOut) continue;

    // not a kink
    if (track->GetKinkIndex(0) > 0) continue; 

    Double_t extZ = GetExtZ(paramIn);
    if (TMath::Abs(extZ) > 320) continue; // acceptance cut

    // .. in the acceptance
    Int_t sector = GetSector(paramOut->GetAlpha());
    Int_t stack = GetStack(paramOut);

    UInt_t u = 1;
    UInt_t status = track->GetStatus();
    for(Int_t bit=0; bit<32; bit++) 
      if (u<<bit & status) FillESDsData(2,bit);

    const Int_t knbits = 6; 
    Int_t bit[6] = {0,0,0,0,0,0};    
    bit[0] = status & AliESDtrack::kTPCin;
    bit[1] = status & AliESDtrack::kTPCout;
    bit[2] = (status & AliESDtrack::kTPCout) && !(status & AliESDtrack::kTRDout);
    bit[3] = status & AliESDtrack::kTRDout;
    bit[4] = status & AliESDtrack::kTRDrefit;
    bit[5] = (status & AliESDtrack::kTRDout) && !(status & AliESDtrack::kTRDrefit);

    // transverse momentum
    //const Double_t *val = paramOut->GetParameter(); // parameters at the Outer plane
    Double_t pt = paramOut->Pt(); //1./TMath::Abs(val[4]);

    for(Int_t b=0; b<knbits; b++) {
      if (bit[b]) {
	FillESDsData(2*b+3,pt); 
	FillESDsData(2*b+4,extZ);
      }
    }

    // clusters
    for(Int_t b=0; b<3; b++) 
      if (bit[3+b]) FillESDsData(b+15,track->GetTRDncls0());

    // refitted only
    if (!bit[4]) continue;

    //fQuality->Fill(track->GetTRDQuality());
    //fBudget->Fill(track->GetTRDBudget());
    //fSignal->Fill(track->GetTRDsignal());

    FillESDsData(1,sector);
    FillESDsData(18,track->GetP(), track->GetTRDsignal());

    FillESDsData(27,track->GetTRDQuality());
    FillESDsData(28,track->GetTRDBudget());
    FillESDsData(29,track->GetTRDchi2());
    FillESDsData(30,track->GetTRDTimBin(0));
    FillESDsData(31,track->GetTRDntrackletsPID());
    
    
    // dedx
    for(Int_t k=0; k<4; ++k) {
      Double_t dedx = 0;
      for(Int_t j=0; j<6; j++) {
	dedx += track->GetTRDslice(j, k-1);
      }
      FillESDsData(41+k,paramOut->GetP(), dedx/6.);
    }

    // probabilities
    if (status & AliESDtrack::kTRDpid) {
      for(Int_t k=0; k<AliPID::kSPECIES; ++k) 
	FillESDsData(36+k,track->GetTRDpid(k));
    }

    // probabilities uniformity
    if (track->GetTRDntrackletsPID() < 6) continue;
    FillESDsData(35,paramOut->GetZ()/paramOut->GetX());
    
    Int_t idx = 5 * sector + stack;
    FillESDsData(32,idx); // all tracks
    if (track->GetTRDpid(AliPID::kElectron) > 0.9) 
      FillESDsData(33,idx); // electrons only

    

    /*
    hist[27] = new TH1F("qaTRD_esd_quality", ";quality", 120, 0, 12);
    hist[28] = new TH1F("qaTRD_esd_budget", ";NN", 110, -1000, 100);
    hist[29] = new TH1F("qaTRD_esd_chi2", ";chi2", 300, 0, 100);
    hist[30] = new TH1F("qaTRD_esd_timeBin", 7, -0.5, 6.5);
    hist[31] = new TH1F("qaTRD_esd_pidQuality", 7, -0.5, 6.5);
    */

    /*
    // PID only
    if (status & AliESDtrack::kTRDpid) {

      for(Int_t l=0; l<6; l++) fTime->Fill(track->GetTRDTimBin(l));

      // fill pid histograms
      Double_t trdr0 = 0; //, tpcr0 = 0;
      Int_t trdBestPid = 5; //, tpcBestPid = 5;  // charged
      const Double_t kminPidValue = 0.9;

      //Double_t pp[5];
      //track->GetTPCpid(pp); // ESD inconsequence

      for(Int_t pid=0; pid<5; pid++) {
	
	trdr0 += track->GetTRDpid(pid);
	//tpcr0 += pp[pid];
	
	fTrdPID[pid]->Fill(track->GetTRDpid(pid));
	//fTpcPID[pid]->Fill(pp[pid]);
	
	if (track->GetTRDpid(pid) > kminPidValue) trdBestPid = pid;
	//if (pp[pid] > kminPidValue) tpcBestPid = pid;
      }

      fTrdPID[5]->Fill(trdr0); // check unitarity
      fTrdSigMomPID[trdBestPid]->Fill(track->GetP(), track->GetTRDsignal());

      //fTpcPID[5]->Fill(tpcr0); // check unitarity
      //fTpcSigMomPID[tpcBestPid]->Fill(track->GetP(), track->GetTPCsignal());
    }
    */

  }
  //
  IncEvCountCycleESDs();
  IncEvCountTotalESDs();
  //
}

//______________________________________________________________________________
Int_t AliTRDQADataMakerRec::GetSector(Double_t alpha) const 
{
  //
  // Gets the sector number 
  //

  Double_t size = TMath::DegToRad() * 20.; // shall use TRDgeo
  if (alpha < 0) alpha += 2*TMath::Pi();
  Int_t sector = (Int_t)(alpha/size);
  return sector;

}
//______________________________________________________________________________

Int_t AliTRDQADataMakerRec::GetStack(const AliExternalTrackParam *paramOut) const
{
  //
  // calculates the stack the track is in
  //
  
  const Double_t L = -0.9;
  const Double_t W = (2*L)/5;

  Double_t tan = paramOut->GetZ() / paramOut->GetX();
  Double_t pos = (tan - L) / W;
  return (Int_t) pos;
}

//______________________________________________________________________________
Double_t AliTRDQADataMakerRec::GetExtZ(const AliExternalTrackParam *in) const 
{
  //
  // Returns the Z position at the entry to TRD
  // using parameters from the TPC in
  //

  const Double_t kX0 = 300;

  Double_t x = in->GetX();
  const Double_t *par = in->GetParameter();
  Double_t theta = par[3];
  Double_t z = in->GetZ();

  Double_t zz = z + (kX0-x) * TMath::Tan(theta);
  return zz;

}

//____________________________________________________________________________
void AliTRDQADataMakerRec::MakeRaws(AliRawReader* rawReader)
{
  //
  // Makes QA data from raw data
  //

  AliInfo("Making QA for Raws");

  // take histograms (RS: arrays of histos)
  static TObjArray mnADC,mnCls,mClsDet,mADC,mCls,mClsTb,mClsDetAmp;
  GetMatchingRawsData(0,&mnADC);
  GetMatchingRawsData(1,&mnCls); 
  GetMatchingRawsData(2,&mClsDet);
  GetMatchingRawsData(3,&mADC);
  GetMatchingRawsData(4,&mCls);
  GetMatchingRawsData(5,&mClsTb);
  GetMatchingRawsData(6,&mClsDetAmp);

  const Int_t baseline = 10;

  // configure the reader
  rawReader->Reset();
  rawReader->SelectEquipment(0, 1024, 1041);
  rawReader->Select("TRD");

  AliTRDrawStream *data = new AliTRDrawStream(rawReader);

  // build data manager  
  AliTRDdigitsManager *digitsManager;
  digitsManager = new AliTRDdigitsManager(kTRUE);
  digitsManager->CreateArrays();

  // error container 
  const UShort_t kErrorChmb = 1411;
  UShort_t **fErrorContainer = new UShort_t *[2];
  fErrorContainer[0] = new UShort_t[kErrorChmb];
  fErrorContainer[1] = new UShort_t[kErrorChmb];
  
  Int_t det = 0;
  Int_t row, col;

  while ((det = data->NextChamber(digitsManager, NULL, fErrorContainer)) >= 0){
    
    //printf("DET = %d\n", det);

    AliTRDSignalIndex* indexes = digitsManager->GetIndexes(det);
    if (indexes->HasEntry()) {
      
      AliTRDarrayADC *digits = (AliTRDarrayADC*) digitsManager->GetDigits(det);

      while(indexes->NextRCIndex(row, col))  {

	for (int ih=mnADC.GetEntriesFast();ih--;) ((TH2*)mnADC.UncheckedAt(ih))->Fill(det/30, det%30);
	
	for(Int_t tb = 0; tb < digits->GetNtime(); tb++) {
	  Int_t value = digits->GetData(row, col, tb);
	  for (int ih=mADC.GetEntriesFast();ih--;) ((TH1*)mADC.UncheckedAt(ih))->Fill(value);
	  
	  // simple clusterizer
	  if (col < 1 || col > digits->GetNcol()-2) continue;
	  if (tb < 1 || tb > digits->GetNtime()-2) continue;
	  
	  value -= baseline;

	  Int_t valueL = digits->GetData(row, col-1, tb) - baseline;
	  if (valueL >= value) continue;
	  
	  Int_t valueR = digits->GetData(row, col+1, tb) - baseline;
	  if (valueR >= value) continue;
	  
	  Int_t valueUp = digits->GetData(row, col-1, tb+1) + 
	    digits->GetData(row, col, tb+1) + digits->GetData(row, col+1, tb+1) - 3 * baseline;
	  if (valueUp < 10) continue;
	  
	  Int_t valueDown = digits->GetData(row, col-1, tb-1) + 
	    digits->GetData(row, col, tb-1) + digits->GetData(row, col+1, tb-1) - 3 * baseline;
	  if (valueDown < 10) continue;
	  
	  Int_t valueTot = value + valueL + valueR;
	  if (valueTot < 0) continue;

	  for (int ih=mCls.GetEntriesFast();ih--;) ((TH1*)mCls.UncheckedAt(ih))->Fill(valueTot);
	  for (int ih=mClsTb.GetEntriesFast();ih--;) ((TH2*)mClsTb.UncheckedAt(ih))->Fill(tb, valueTot);
	  for (int ih=mClsDetAmp.GetEntriesFast();ih--;) ((TH2*)mClsDetAmp.UncheckedAt(ih))->Fill(det, valueTot);

	  if (valueTot < 200) {
	    for (int ih=mnCls.GetEntriesFast();ih--;) ((TH2*)mnCls.UncheckedAt(ih))->Fill(det/30, det%30); 
	    for (int ih=mClsDet.GetEntriesFast();ih--;) ((TH2*)mClsDet.UncheckedAt(ih))->Fill(det/30, det%30, valueTot); 
	  }
	
	}
      }

      digitsManager->ClearArrays(det); // do we need this if object will be deleted ??
    }    
  }
  
  delete [] fErrorContainer[0];
  delete [] fErrorContainer[1];
  delete [] fErrorContainer;
  fErrorContainer = NULL;
  
  delete digitsManager;  
  delete data;
  //
  IncEvCountCycleRaws();
  IncEvCountTotalRaws();
  //
}

//____________________________________________________________________________
void AliTRDQADataMakerRec::MakeRecPoints(TTree * clustersTree)
{
  //  
  // Makes data from RecPoints
  // 
  
  //  Info("MakeRecPoints", "making");
 
  Int_t nsize = Int_t(clustersTree->GetTotBytes() / (sizeof(AliTRDcluster))); 
  TObjArray *clusterArray = new TObjArray(nsize+1000); 

  TBranch *branch = clustersTree->GetBranch("TRDcluster");
  if (!branch) {
    AliError("Can't get the branch !");
    return;
  }
  branch->SetAddress(&clusterArray); 

  // Loop through all entries in the tree
  Int_t nEntries   = (Int_t)TMath::Ceil( clustersTree->GetEntries() );
  Int_t nbytes     = 0;
  AliTRDcluster *c = 0;
  Int_t nDet[540];
  for (Int_t i=0; i<540; i++) nDet[i] = 0;

  Int_t nCls = 0;
  
  //printf("nEntries = %d\n", nEntries);
  //nEntries++;
  
  /*
  // select the event 
  for (Int_t iEntry = 0; iEntry < nEntries; iEntry++) {    

    // Import the tree
    nbytes += clustersTree->GetEvent(iEntry);  
    Int_t nCluster = clusterArray->GetEntries();  
    
    for (Int_t iCluster = 0; iCluster < nCluster; iCluster++) { 
      c = (AliTRDcluster *) clusterArray->At(iCluster);
      nCls++;
    }
  }

  if (nCls < 100) {
    delete clusterArray;
    return;
  }
  */

  /////
  TObjArray *hists3D = GetMatchingRecPointsData(10);       //RS no alias for 3d histo filling, to directly
  //
  for (Int_t iEntry = 0; iEntry < nEntries; iEntry++) {    

    // Import the tree
    nbytes += clustersTree->GetEvent(iEntry);  

    // Get the number of points in the detector
    Int_t nCluster = clusterArray->GetEntries();  

  
    // Loop through all TRD digits
    for (Int_t iCluster = 0; iCluster < nCluster; iCluster++) { 

      nCls++;
      c = (AliTRDcluster *) clusterArray->At(iCluster);

      Int_t iDet = c->GetDetector();
      Int_t nPads = c->GetNPads();

      nDet[iDet]++;
      FillRecPointsData(0,iDet);
      FillRecPointsData(86,c->GetQ());
      FillRecPointsData(1,iDet, c->GetQ());
      FillRecPointsData(2,nPads);
      if (nPads < 6)
	FillRecPointsData(1+c->GetNPads(),c->GetCenter());
      
      if (nPads < 10)
	FillRecPointsData(88+nPads-2,c->GetQ());
      else FillRecPointsData(96,c->GetQ());

      //if (c->GetPadTime() < 5)
      FillRecPointsData(7,c->GetPadRow(), c->GetPadCol());
      FillRecPointsData(8,c->GetPadTime());
      //
      if (hists3D) {
	for (int ih=hists3D->GetEntriesFast();ih--;) {
	  TH3F * ahist = dynamic_cast<TH3F*>(hists3D->At(ih));
	  if (ahist) ahist->Fill(iDet, c->GetPadTime(), c->GetQ());
	}
      }
      
      Int_t iSM = iDet / 30;
      FillRecPointsData(50+iSM,c->GetPadTime());
      FillRecPointsData(68+iSM,c->GetPadTime(), c->GetQ());
      
      // total charge sm / det / timeBin
      // FillRecPointsData(14+iSM,iDet-iSM*30, c->GetPadTime(), c->GetQ());


      // PRF for 2pad
      //if (c->GetNPads() == 2) {
      Short_t *sig = c->GetSignals();
      Double_t frac = -10;

      if (sig[0] == 0 && sig[1] == 0 && sig[2] == 0 && sig[5] == 0 && sig[6] == 0) 
	frac = 1. * sig[4] / (sig[3] + sig[4]);

      if (sig[0] == 0 && sig[1] == 0 && sig[4] == 0 && sig[5] == 0 && sig[6] == 0)
	frac = -1. * sig[2] / (sig[2] + sig[3]);

      if (frac > -10) FillRecPointsData(11,c->GetCenter(), frac);
	
      //}
    }
    clusterArray->Delete();
  }

  /*
  for(Int_t i=0; i<540; i++) 
    if (nDet[i] > 0) FillRecPointsData(9,nDet[i]);
  */
  FillRecPointsData(9,nCls);
  
  delete clusterArray;
  //
 IncEvCountCycleRecPoints();
 IncEvCountTotalRecPoints();
  //
}

//____________________________________________________________________________ 
void AliTRDQADataMakerRec::StartOfDetectorCycle()
{
  //
  // Detector specific actions at start of cycle
  //

}

//__________________________________________________________________________
Int_t AliTRDQADataMakerRec::CheckPointer(TObject *obj, const char *name) 
{
  //
  // Checks initialization of pointers
  //

  if (!obj) AliWarning(Form("null pointer: %s", name));
  return !!obj;
}
//__________________________________________________________________________
void AliTRDQADataMakerRec::BuildRatio(TH1 *ratio, TH1 *histN, TH1* histD) {
  //
  // Calculate the ratio of two histograms 
  // error are calculated assuming the histos have the same counts
  //

  // calclate

  Int_t nbins = histN->GetXaxis()->GetNbins();
  for(Int_t i=1; i<nbins+2; i++) {
    
    Double_t valueN = histN->GetBinContent(i);
    Double_t valueD = histD->GetBinContent(i);
    
    if (valueD < 1) {
      ratio->SetBinContent(i, 0);
      ratio->SetBinError(i, 0);
      continue;
    }

    Double_t eps = (valueN < valueD-valueN)? valueN : valueD-valueN;
    
    ratio->SetBinContent(i, valueN/valueD);
    ratio->SetBinError(i, TMath::Sqrt(eps)/valueD);
  }

  // style
  ratio->SetMinimum(-0.1);
  ratio->SetMaximum(1.1);
  ratio->SetMarkerStyle(20);
}
//__________________________________________________________________________

Int_t AliTRDQADataMakerRec::FillBits(TH1F *hist, Int_t code, Int_t offset) {

  Int_t nb = 0;
  UInt_t test = 1;
  for(Int_t i=0; i<8; i++) {
    if (code & test) {
      hist->Fill(i+offset);
      nb++;
    }
    test *= 2;       
  }
  
  return nb;
}

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