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. 
//  Alla.Maevskaya@cern.ch
//---

// --- ROOT system ---
#include <TClonesArray.h>
#include <TFile.h> 
#include <TH1F.h> 
#include <TH2F.h> 
#include <TDirectory.h>
#include <TMath.h>
// --- Standard library ---

// --- AliRoot header files ---

#include "AliESDEvent.h"
#include "AliLog.h"
#include "AliT0digit.h" 
#include "AliT0hit.h"
#include "AliT0RecPoint.h"
#include "AliT0QADataMakerRec.h"
#include "AliQAChecker.h"
#include "AliT0RawReader.h"
#include "AliT0RecoParam.h"
#include "AliQAThresholds.h"
#include "AliDAQ.h"
#include "AliCDBEntry.h"
#include "AliQAManager.h"
#include "THnSparse.h"

#include "TFitResultPtr.h"

#include "Riostream.h"
ClassImp(AliT0QADataMakerRec)
           
//____________________________________________________________________________ 
  AliT0QADataMakerRec::AliT0QADataMakerRec() : 
AliQADataMakerRec(AliQAv1::GetDetName(AliQAv1::kT0), 
		  "T0 Quality Assurance Data Maker"),
    fMeanRawVertexParam(0),
    fMeanORAParam(0),
    fMeanORCParam(0),
    fCFDEffSubRangeLowParam(0),
    fCFDEffSubRangeHighParam(3000),
    fLEDEffSubRangeLowParam(0),
    fLEDEffSubRangeHighParam(3000)
//  fnEventCal(0),
//  fnEventPhys(0)
{
  // ctor
  // RS: There is some inconsistency here: the separation of physics and calib. events/histos is done by
  // fEventSpecie. Why do we book separate histos on different slots for calib and physics ? 
  // I am changing this in such way that we don't need local counters like fNumTriggers (the corresponding
  // histos now incremented in the MakeRaws, and for the normalization I will use the framework's counters
  // AliQADataMaker::GetEvCountCycle(...), AliQADataMaker::GetEvCountTotal(...)
  // All these fTrEff.. feff.. will by directly filled in corresponding histos

  for(Int_t i=0; i<24; i++){
    fMeanCFDFromGoodRunParam[i]=0; 
  }
}


//____________________________________________________________________________ 
AliT0QADataMakerRec::AliT0QADataMakerRec(const AliT0QADataMakerRec& qadm) :
  AliQADataMakerRec(),
  fMeanRawVertexParam(qadm.fMeanRawVertexParam),
  fMeanORAParam(qadm.fMeanORAParam),
  fMeanORCParam(qadm.fMeanORCParam),
  fCFDEffSubRangeLowParam(qadm.fCFDEffSubRangeLowParam),
  fCFDEffSubRangeHighParam(qadm.fCFDEffSubRangeHighParam),
  fLEDEffSubRangeLowParam(qadm.fLEDEffSubRangeLowParam),
  fLEDEffSubRangeHighParam(qadm.fLEDEffSubRangeHighParam)
{
  //copy ctor 
  SetName((const char*)qadm.GetName()) ; 
  SetTitle((const char*)qadm.GetTitle());
  for(Int_t i=0; i<24; i++){
    fMeanCFDFromGoodRunParam[i]=qadm.fMeanCFDFromGoodRunParam[i]; 
  }
}

//__________________________________________________________________
AliT0QADataMakerRec& AliT0QADataMakerRec::operator = (const AliT0QADataMakerRec& qadm )
{
  // Equal operator.
  this->~AliT0QADataMakerRec();
  new(this) AliT0QADataMakerRec(qadm);
  return *this;
}
//__________________________________________________________________
AliT0QADataMakerRec::~AliT0QADataMakerRec()
{
  //destructor
}
//____________________________________________________________________________
void AliT0QADataMakerRec::EndOfDetectorCycle(AliQAv1::TASKINDEX_t task, TObjArray ** list)
{
  //Detector specific actions at end of cycle
  // do the QA checking
  AliInfo(Form("Task: %d",task));
  ResetEventTrigClasses();
  
  TH1* hcounter = 0;
  TH1* heff = 0;
  TH1* htmp = 0;
  TH1F* hEventCounter=NULL;
  for (Int_t specie = 0 ; specie < AliRecoParam::kNSpecies ; specie++) {
    //
    // RS: There is some inconsistency here: the separation of physics and calib. events/histos is done by
    // fEventSpecie. Why do we book separate histos on different slots for calib and physics ? 
    // I am changing this in such way that we don't need local counters like fNumTriggers (the corresponding
    // histos now incremented in the MakeRaws, and for the normalization I will use the framework's counters
    // AliQADataMaker::GetEvCountCycle(...), AliQADataMaker::GetEvCountTotal(...)
    //
    // I think the histos xx+250 should be suppressed (the xx calib histos of specie==calibration will be 
    // used automatically)
    //
    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 ) {
	//
	float nEvent = GetEvCountCycleRaws(itc);   // counted events for given trigger class
	if(nEvent>0) { 
          Float_t numberOfEventsAllCycles = 0.0;
          if((hEventCounter=(TH1F*) GetRawsData(240,itc))){
            numberOfEventsAllCycles = hEventCounter->Integral() + nEvent;// count all events upto now
            hEventCounter->SetBinContent(1,numberOfEventsAllCycles); // increase counter 
          } 

          SetEfficiency(169, 241, itc, numberOfEventsAllCycles);
          SetEfficiency(207, 242, itc, numberOfEventsAllCycles);
          SetEfficiency(208, 243, itc, numberOfEventsAllCycles);
          SetEfficiency(237, 244, itc, numberOfEventsAllCycles);
          SetEfficiency(238, 245, itc, numberOfEventsAllCycles);


          //fk// orA and orC for given specie and trigger class
          Float_t  numberOfORAEndOfCycle = 0.0;
          Float_t  numberOfORCEndOfCycle = 0.0;
	  if((htmp=GetRawsData(172,itc))) numberOfORAEndOfCycle = htmp->Integral(); //ORA     
	  if((htmp=GetRawsData(173,itc))) numberOfORCEndOfCycle = htmp->Integral(); //ORC     
          
          if((heff=GetRawsData(209,itc))){ //QTC efficiency
            if((hcounter=GetRawsData(246,itc))){ //QTC counter
              if(numberOfORCEndOfCycle>0){
                for(int ipmt=0; ipmt<12; ipmt++){
                  Float_t val = hcounter->GetBinContent(ipmt+1); //first bin has consequtive number 1 
                  heff->SetBinContent(ipmt+1,val/numberOfORCEndOfCycle);
                                 
               }
              }else{
                for(int ipmt=0;ipmt<12; ipmt++)
                   heff->SetBinContent(ipmt+1,0);
              }
              if(numberOfORAEndOfCycle>0){
                for(int ipmt=12;ipmt<24; ipmt++){
                  Float_t val = hcounter->GetBinContent(ipmt+1);
                  heff->SetBinContent(ipmt+1,val/numberOfORAEndOfCycle);
                }
              }else{
                for(int ipmt=0;ipmt<12; ipmt++)
                  heff->SetBinContent(ipmt+1,0);
              }
            }
          }
	}//Evt >0
      } // kRAWS
    } // RS: loop over eventual clones per trigger class
  } // loop over species
  //
  AliQAChecker::Instance()->Run(AliQAv1::kT0, task, list); //FK
}


//____________________________________________________________________________
void AliT0QADataMakerRec::StartOfDetectorCycle()
{
  //Detector specific actions at start of cycle
  AliCDBManager* man = AliCDBManager::Instance();
  //man->SetDefaultStorage(gSystem->Getenv("AMORE_CDB_URI"));
  if(!man) return; 
  AliCDBEntry* entry = man->Get("GRP/Calib/QAThresholds");
  if(!entry) return;
  TObjArray* t0branch = (TObjArray*) entry->GetObject();
  AliQAThresholds*  thresholds = (AliQAThresholds*) t0branch->FindObject("T00");
  // here you should test that you got a non-null pointer


if(!thresholds) return;
  if(AliDAQ::DetectorID("T0")!= thresholds->GetDetectorId()){
    AliInfo(Form("DETECTOR ID %d DOES NOT MATCH TO TZERO",thresholds->GetDetectorId()));
    return;
  }
  
  int iparam = 0; 
  if((TParameter<float>*) thresholds->GetThreshold(iparam)){ // mean raw vertex 
    fMeanRawVertexParam = ((TParameter<float>*) thresholds->GetThreshold(iparam))->GetVal();
  }

  iparam = 76; 
  if((TParameter<float>*) thresholds->GetThreshold(iparam)){ // mean raw vertex 
    fMeanORAParam = ((TParameter<float>*) thresholds->GetThreshold(iparam))->GetVal();
  } 
 
  iparam = 77; 
  if((TParameter<float>*) thresholds->GetThreshold(iparam)){ // mean raw vertex 
    fMeanORCParam = ((TParameter<float>*) thresholds->GetThreshold(iparam))->GetVal();
  } 
 
  iparam = 78; 
  if((TParameter<float>*) thresholds->GetThreshold(iparam)){ // mean raw vertex 
    fCFDEffSubRangeLowParam = ((TParameter<float>*) thresholds->GetThreshold(iparam))->GetVal();
  } 
 
  iparam = 79; 
  if((TParameter<float>*) thresholds->GetThreshold(iparam)){ // mean raw vertex 
    fCFDEffSubRangeHighParam = ((TParameter<float>*) thresholds->GetThreshold(iparam))->GetVal();
  } 
    
  iparam = 80; 
  if((TParameter<float>*) thresholds->GetThreshold(iparam)){ // mean raw vertex 
    fLEDEffSubRangeLowParam = ((TParameter<float>*) thresholds->GetThreshold(iparam))->GetVal();
  } 
    
  iparam = 81; 
  if((TParameter<float>*) thresholds->GetThreshold(iparam)){ // mean raw vertex 
    fLEDEffSubRangeHighParam = ((TParameter<float>*) thresholds->GetThreshold(iparam))->GetVal();
  } 

  for(int ipmt=0; ipmt<24;ipmt++){ 
    iparam = ipmt + 1; //current consecutive number of parameter
    if((TParameter<float>*) thresholds->GetThreshold(iparam)){ // mean CFD from a good run 
      fMeanCFDFromGoodRunParam[ipmt] = ((TParameter<float>*) thresholds->GetThreshold(iparam))->GetVal();
    }
  }
}
 
//____________________________________________________________________________ 
void AliT0QADataMakerRec::InitRaws()
{

  // create Raw histograms in Raw subdir
  const Bool_t expert   = kTRUE ; 
  const Bool_t saveCorr = kTRUE ; 
  const Bool_t image    = kTRUE ; 
  Float_t low[500];
  Float_t high[500];
  //new QTC
  // 00,01, 10, 11; C1,C2,C3, A1, A2, A3
  Float_t lowqt[100] = {
    17500, 17500, 18500, 18500, //C1
    17500, 17500, 18500, 18500, //C2
    18500, 18500, 17500, 17500, //c3
    17500, 17500, 18500, 18500, //c4
    17500, 17500, 18500, 18500, //c5
    18500, 18500, 17500, 17500, //c6
    17500, 17500, 18500, 18500,  //c7
    18500, 18500, 17500, 17500,  //c8
    18500, 18500, 17500, 17500, //c9
    17500, 17500, 18500, 18500,  //c10
    18500, 18500, 17500, 17500,  //c11
    18500, 18500, 17500, 17500,  //c12
    22000, 22000, 21000, 21000,  //a1
    21000, 21000, 22000, 22000, //a2
    21000, 21000, 22000, 22000, //a3
    22000, 22000, 21000, 21000,  //a4
    21000, 21000, 22000, 22000, //a5
    21000, 21000, 22000, 22000, //a6
    22000, 22000, 21000, 21000,  //a7
    21000, 21000, 22000, 22000, //a8
    21000, 21000, 22000, 22000, //a9
    22000, 22000, 21000, 21000,  //a10
    21000, 21000, 22000, 22000, //a11
    21000, 21000, 22000, 22000//a12
  };
  //triggers
  const Char_t *triggers[6] = {"T0 OR", "vertex","ORA","ORC","central","semi-central"};
   
  
  for (Int_t i=0; i<500; i++){
    low[i] = 0;
    high[i] = 30000;

  }

  TString timename, ampname, qtcname, ledname;
  TString timeCalname, ampCalname, ledCalname, qtcCalname;
  TString qt1name, qt0name, qt1Calname, qt0Calname;
  TString nhits;

  TH1F* hRefPoint = new TH1F("hRefPoint","Ref Point", 10000, 0 ,50000);
  hRefPoint->SetLabelSize(0.02);
  Add2RawsList( hRefPoint,0, expert, !image, !saveCorr);

  TH1F *hRefPointcal = new TH1F("hRefPointcal","Ref Point laser", 5000, 0 ,20000);
  Add2RawsList( hRefPointcal,250, expert, !image, !saveCorr);

  TH1F *hRawCFD[24]; 
  TH1F *hRawLEDamp[24];
  TH1F *hRawQTC[24]; TH1F *hRawLED[24];
  TH1F *hRawQT1[24]; TH1F *hRawQT0[24];
  TH1F* hRawNhits[24];
  TH1F* hRawNewQT00[24], *hRawNewQT01[24], *hRawNewQT10[24], *hRawNewQT11[24];
  TH1F* hRawNewQTC0[24], *hRawNewQTC1[24];
  for(Int_t i=0; i<24; i++){
    timename ="hRawCFD";
    ledname = "hRawLED";
    qtcname = "hRawQTC";
    qt0name = "hRawQT0_";
    qt1name = "hRawQT1_";
    ampname = "hRawLEDminCFD";
    nhits = "hRawNhits";
    timename += i+1;
    ampname += i+1;
    qtcname += i+1;
    qt0name += i+1;
    qt1name += i+1;
    ledname += i+1;
    nhits   += i+1;
    
    hRawCFD[i] = new TH1F(timename.Data(), Form("%s;CFD [#channels]; Counts", timename.Data()),Int_t((high[i+1]-low[i+1])/4),low[i+1],high[i+1]);
    //      ForbidCloning(hRawCFD[i]);       //RS I don't know how histos 1-24 should be processed in MakeRaws, for the moment forbidding the cloning
    Add2RawsList( hRawCFD[i],i+1, expert, !image, !saveCorr);
    hRawLED[i] = new TH1F(ledname.Data(),  Form("%s;LED [#channels]; Counts", ledname.Data()),Int_t((high[i+25]-low[i+25])/4),low[i+25],high[i+25]);
    Add2RawsList( hRawLED[i],i+25, expert, !image, !saveCorr);
    hRawLEDamp[i] = new TH1F(ampname.Data(),  Form("%s;LED-CFD [#channels]; Counts", ampname.Data()),1000,0,1000);
    Add2RawsList( hRawLEDamp[i],i+49, expert, !image, !saveCorr);
    hRawQTC[i] = new TH1F(qtcname.Data(),  Form("%s;QTC[#channels]; Counts", qtcname.Data()), 2500,0,10000); //fk
    //QT0
    Add2RawsList( hRawQTC[i],i+73, expert, !image, !saveCorr);
    hRawQT0[i] = new TH1F(qt0name.Data(),  Form("%s; QT0 [#channels]; Counts", qt0name.Data()),Int_t((high[97+i]-low[97+i])/4),low[97+i],high[97+i]);
    Add2RawsList( hRawQT0[i],97+i, expert, !image, !saveCorr);
    //QT1
    hRawQT1[i] = new TH1F(qt1name.Data(),  Form("%s; QT1 [#channels]; Counts", qt1name.Data()),Int_t((high[121+i]-low[121+i])/4),low[121+i],high[121+i]);
    Add2RawsList( hRawQT1[i],121+i, expert, !image, !saveCorr);
    
    hRawNhits[i] = new TH1F(nhits.Data(),  Form("%s;#Hits;Events", nhits.Data()),20, 0, 20);
    Add2RawsList( hRawNhits[i],176+i, expert, !image, !saveCorr);
  }     
  // new QTC 
  Int_t ihist=0;
  for (Int_t i=0; i<12; i++)
    {      
      hRawNewQT00[i] = new TH1F(Form("hnewRawQT00_C%i",i+1),  Form("hRawQTnew00_%i; #channels;Events",i+1),1000, lowqt[ihist], lowqt[ihist]+1000);
      Add2RawsList(hRawNewQT00[i],1000+ihist, expert, !image, !saveCorr);
      ihist++;
      hRawNewQT01[i] = new TH1F(Form("hnewRawQT01_C%i",i+1),  Form("hRawQTnew01_%i ;#channels;Events",i+1),1000, lowqt[ihist], lowqt[ihist]+1000);
      Add2RawsList(hRawNewQT01[i],1000+ihist, expert, !image, !saveCorr);
      ihist++;
      hRawNewQT10[i] = new TH1F(Form("hnewRawQT10_C%i",i+1),  Form("hRawQTnew10_%i ;#channels;Events",i+1),1000, lowqt[ihist], lowqt[ihist]+1000);
      Add2RawsList(hRawNewQT10[i],1000+ihist, expert, !image, !saveCorr);
      ihist++;
      hRawNewQT11[i] = new TH1F(Form("hnewRawQT11_C%i",i+1),  Form("hRawQTnew11_%i ;#channels;Events",i+1),1000, lowqt[ihist], lowqt[ihist]+1000);
      Add2RawsList(hRawNewQT11[i],1000+ihist, expert, !image, !saveCorr);
      ihist++;
    }    
  for (Int_t i=12; i<24; i++)
    {      
      hRawNewQT00[i] = new TH1F(Form("hnewRawQT00_A%i",i+1),  Form("hRawQTnew 00_A %i; #channels;Events",i+1-12),1000, lowqt[ihist], lowqt[ihist]+1000);
      Add2RawsList(hRawNewQT00[i],1000+ihist, expert, !image, !saveCorr);
      ihist++;
      hRawNewQT01[i] = new TH1F(Form("hnewRawQT01_A%i",i+1),  Form("hRawQTnew01_A %i ;#channels;Events",i+1-12),1000, lowqt[ihist], lowqt[ihist]+1000);
      Add2RawsList(hRawNewQT01[i],1000+ihist, expert, !image, !saveCorr);
      ihist++;
      hRawNewQT10[i] = new TH1F(Form("hnewRawQT10_A%i",i+1),  Form("hRawQTnew10_A %i ;#channels;Events",i+1-12),1000, lowqt[ihist], lowqt[ihist]+1000);
      Add2RawsList(hRawNewQT10[i],1000+ihist, expert, !image, !saveCorr);
      ihist++;
      hRawNewQT11[i] = new TH1F(Form("hnewRawQT11_A%i",i+1),  Form("hRawQTnew11_A %i ;#channels;Events",i+1-12),1000, lowqt[ihist], lowqt[ihist]+1000);
      Add2RawsList(hRawNewQT11[i],1000+ihist, expert, !image, !saveCorr);
      ihist++;
    }    
  for (Int_t i=0; i<24; i++)
    {      
      hRawNewQTC0[i] = new TH1F(Form("hnewRawQTC0_%i",i+1),  Form("hRawQTC new 0_%i;#channels;Events",i+1),500, -10, 510);
      Add2RawsList(hRawNewQTC0[i],1096+i, expert, !image, !saveCorr);
      
      
      hRawNewQTC1[i] = new TH1F(Form("hnewRawQTC1_%i",i+1),  Form("hRawQTC new 1 %i ;#channels;Events",i+1),500, -10, 510);
      Add2RawsList(hRawNewQTC1[i],1120+i, expert, !image, !saveCorr);
      
    }     
  TH1F* hRawTrigger = new TH1F("hRawTrigger"," triggers;Trigger ;Counts",6,0,6);
    for (Int_t itr=0; itr<6; itr++) hRawTrigger->Fill(triggers[itr], 0); // RS Modified to allow cloning (no fNumTriggers member anymore)
  Add2RawsList(hRawTrigger ,169, !expert, image, !saveCorr);
  TH1F* hRawMean = new TH1F("hRawMean","online timer mean signal, physics event;",Int_t((high[170]-low[170])/4),low[170],high[170]);
  Add2RawsList( hRawMean,170, expert, !image, !saveCorr);

  TH1F* hRawVertex = new TH1F("hRawVertex","online 0TVX vertex signal; counts",Int_t((high[171]-low[171])/4),low[171],high[171]);
  Add2RawsList( hRawVertex,171, expert, !image, !saveCorr);//FK

  TH1F* hRawORA = new TH1F("hRawORA","online OR A; counts",Int_t((high[172]-low[172])/4),low[172],high[172]);
  Add2RawsList( hRawORA,172, expert, !image, !saveCorr);
  TH1F* hRawORC = new TH1F("hRawORC","online OR C;counts",Int_t(( high[173]-low[173])/4),low[173],high[173]);
  Add2RawsList( hRawORC,173, expert, !image, !saveCorr);
  TH1F* hMultCentr = new TH1F("hMultCentr","online trigger Central;counts ",Int_t(( high[174]-low[174])/4),low[174],high[174]);
  Add2RawsList( hMultCentr,174, expert, !image, !saveCorr);
  TH1F* hMultSeCentr = new TH1F("hMultSemiCentr","online trigger SemiCentral;counts ",Int_t(( high[175]-low[175])/4),low[175],high[175]);
  Add2RawsList( hMultSeCentr,175, expert, !image, !saveCorr);

  TH1F* hMultA = new TH1F("hMultA","full mulltiplicity A side;Multiplicity;Entries", Int_t((high[201]-low[201])/4) ,low[201],high[201]);
  Add2RawsList( hMultA,201, expert, !image, !saveCorr );//FK
  
  TH1F* hMultAS = new TH1F("hMultASemi","full multiplicity with semi-central trigger A side ;Multiplicity;Entries",
			    Int_t((high[202]-low[202])/4),low[202],high[202] );
  Add2RawsList( hMultAS, 202, expert, !image, !saveCorr);
  TH1F* hMultAC = new TH1F("hMultACentr","full multiplicity with central trigger;Multiplicity;Entries", 
			    Int_t((high[203]-low[203])/4),low[203],high[203]);
  Add2RawsList( hMultAC, 203, expert, !image, !saveCorr);
  
  
  //side C
   TH1F* hMultC = new TH1F("hMultC","full mulltiplicity C side;Multiplicity;Entries", Int_t(high[204]-low[204]/4) ,low[204],high[204]);
  Add2RawsList( hMultC,204, expert, !image, !saveCorr );//FK
  TH1F* hMultCS = new TH1F("hMultCSemi","full multiplicity with semi-central trigger C side;Multiplicity;Entries",
			    Int_t((high[205]-low[205])/4),low[205],high[205] );
  Add2RawsList( hMultCS,205, expert, !image, !saveCorr);
  TH1F* hMultCC = new TH1F("hMultCCentr","full multiplicity with central trigger C side;Multiplicity;Entries", 
			    Int_t((high[206]-low[206])/4),low[206],high[206]);
  Add2RawsList( hMultCC,206, expert, !image, !saveCorr);
  
  
  //efficiency
  TH1F* hCFDeff= new TH1F("hCFDeff"," CFD efficiency; #PMT; #CFD counts/nEvents",24, 0 ,24);  
  hCFDeff->SetMinimum(0);
  hCFDeff->SetMaximum(2);
  hCFDeff->SetMarkerStyle(20);//fk
  hCFDeff->SetMarkerColor(2);//fk
  hCFDeff->SetOption("p");//fk
  Add2RawsList( hCFDeff, 207, expert, image, !saveCorr);//FK   
  TH1F* hEffLED = new TH1F("hEffLED","LED efficiency; #PMT; #LED counts/nEvent",24, 0 ,24);
  hEffLED ->SetMinimum(0);
  hEffLED->SetMaximum(2);
  hEffLED->SetMarkerStyle(28);//fk
  hEffLED->SetMarkerColor(1);//fk
  hEffLED->SetOption("p,same");//fk
  Add2RawsList( hEffLED, 208, expert, !image, !saveCorr);//FK is published attahced to the CFD efficiency 
  
  TH1F* hEffQTC = new TH1F("hEffQTC","QTC efficiency; #PMT; QTC efficiency%s;",24, 0 ,24);
  hEffQTC->SetMinimum(0);
  hEffQTC->SetMaximum(2);
  Add2RawsList( hEffQTC,209, !expert, image, !saveCorr);
   
  TH2F* hCFD = new TH2F("hCFD","CFD ; #PMT; CFD {#channnels}", 24, 0 , 24,Int_t((high[210]-low[210])/4),low[210],high[210]);
  hCFD->SetOption("COLZ");
  Add2RawsList( hCFD,210, expert, !image, !saveCorr);//fk
    
  TH2F* hLED = new TH2F("hLED","LED ; #PMT; LED [#channnels]", 24, 0 , 24,Int_t((high[211]-low[211])/4),low[211],high[211]);
  hLED->SetOption("COLZ");
  Add2RawsList( hLED,211, expert, !image, !saveCorr);//fk

  TH2F* hQTC = new TH2F("hQTC","QTC ; #PMT; QTC [#channnels]", 24, 0, 24,Int_t( (high[212]-low[212])/4),low[212],high[212]);
  hQTC->SetOption("COLZ");
  Add2RawsList( hQTC,212, expert, !image, !saveCorr);//fk
  
  TH1F* hNumPMTA= new TH1F("hNumPMTA","number of PMT hitted per event A side",13, 0 ,13);
  Add2RawsList(hNumPMTA ,213, expert, image, !saveCorr);
  
  TH1F* hNumPMTC= new TH1F("hNumPMTC","number of PMT hitted per event C side",13, 0 ,13);
  Add2RawsList(hNumPMTC ,214, expert, image, !saveCorr);
  
  TH1F* hHitsOrA= new TH1F("hHitsOrA","T0_OR A hit multiplicity",20, 0 ,20);
  Add2RawsList( hHitsOrA,215, expert, !image, !saveCorr);
  
  TH1F* hHitsOrC= new TH1F("hHitsOrC","T0_OR C hit multiplicity",20, 0 ,20);
  Add2RawsList(hHitsOrC ,216, expert, !image, !saveCorr);
  
  
  TH1F* hOrCminOrA= new TH1F("hOrCminOrA","T0_OR C - T0_OR A [cm]",10000,-5000,5000);
  Add2RawsList( hOrCminOrA,219, expert, !image, !saveCorr); //FK

  TH1F* hOrCminOrATvdcOn= new TH1F("hOrCminOrATvdcOn","T0_OR C - T0_OR A TVDC on [cm]",10000,-5000,5000);
  Add2RawsList( hOrCminOrATvdcOn,217, expert, !image, !saveCorr);//FK
  

  TH1F* hOrCminOrATvdcOff= new TH1F("hOrCminOrATvdcOff","T0_OR C - T0_OR A TVDC off [cm]",10000,-5000,5000);
  Add2RawsList( hOrCminOrATvdcOff,218, expert, !image, !saveCorr);//FK

   //satellite  & beam background
  TH2F* hBeam = new TH2F("hBeam", "Mean vs Vertex from 1st hit", 120, -30, 30, 120, -30, 30);
  hBeam->SetOption("COLZ");
  hBeam->GetXaxis()->SetTitle("(T0C-T0A)/2, ns from 1st"); //vtx
  hBeam->GetYaxis()->SetTitle("(T0C+T0A)/2, ns"); //time
  Add2RawsList( hBeam,220, !expert, image, !saveCorr);

  TH2F* hBeamTVDCon = new TH2F("hBeamTVDCon", "Mean vs Vertex TVDC on from 1st hit",50, -5, 5, 50, -5, 5);//FK
  hBeamTVDCon->SetOption("COLZ");
  hBeamTVDCon->GetXaxis()->SetTitle("(T0C-T0A)/2, ns from 1st hit");
  hBeamTVDCon->GetYaxis()->SetTitle("(T0C+T0A)/2, ns");
  Add2RawsList( hBeamTVDCon,221, expert, image, !saveCorr);

  TH2F* hBeamTVDCoff = new TH2F("hBeamTVDCoff", "Mean vs Vertex TVDC off from 1st hit", 120, -30, 30, 120, -30, 30);
  hBeamTVDCoff->GetXaxis()->SetTitle("(T0C-T0A)/2, ns from 1st hit");
  hBeamTVDCoff->GetYaxis()->SetTitle("(T0C+T0A)/2, ns");
  hBeamTVDCoff->SetOption("COLZ");
  Add2RawsList( hBeamTVDCoff,222, expert, image, !saveCorr);

  //vertex 1st
  TH1F* hVertex1stTVDCon = new TH1F("hVertex1stTVDCon", "(T0A-T0C)/2, ps, from 1st hit TVDC on", 200, -2000, 2000); //FK
  Add2RawsList(hVertex1stTVDCon ,223, !expert, image, !saveCorr);
  TH1F* hVertex1stTVDCoff = new TH1F("hVertex1stTVDCoff", "(T0A-T0C)/2, ps, from 1st hit TVDC off", 500, -2000, 2000);//FK
  Add2RawsList( hVertex1stTVDCoff,225, !expert, image, !saveCorr);
  TH1F* hMean1stTVDCon  = new TH1F("hMean1stTVDCon", "(T0A+T0C)/2, ps, from 1st hit TVDC on", 200, -2000, 2000);//FK
  Add2RawsList( hMean1stTVDCon,  226, !expert, image, !saveCorr);
  TH1F* hMean1stTVDCoff = new TH1F("hMean1stTVDCoff", "(T0A+T0C)/2, ps, from 1st hit TVDC off", 200, -2000, 2000);//FK
  Add2RawsList( hMean1stTVDCoff, 227, !expert, image, !saveCorr);

   
  //FK histograms start from 230
  TH1F* hRawVertexMinMean = new TH1F("hRawVertexMinMean","online 0TVX vertex signal minus mean; counts",200,-1000,1000);
  Add2RawsList(hRawVertexMinMean,230, expert, image, !saveCorr);//FK

  TH1F* hCFDSubtrMean = new TH1F("hCFDSubtrMean","CFD minus mean; #PMT; CFD - mean {#channnels}", 24, 0, 24);
  hCFDSubtrMean->SetMarkerStyle(20);
  hCFDSubtrMean->SetOption("p");
  Add2RawsList( hCFDSubtrMean,231, !expert, image, !saveCorr);//fk filled in Checker
    
  TH1F* hLEDSubtrMean = new TH1F("hLEDSubtrMean","LED minus mean; #PMT; LED - mean [#channnels]", 24, 0, 24);
  hLEDSubtrMean->SetMarkerStyle(20);
  hLEDSubtrMean->SetOption("p");
  Add2RawsList( hLEDSubtrMean,232, expert, image, !saveCorr);//fk filled in Checker

  TH1F* hQTCSubtrMean = new TH1F("hQTCSubtrMean","QTC minus mean; #PMT; QTC - mean [#channnels]", 24, 0, 24);
  hQTCSubtrMean->SetMarkerStyle(20);
  hQTCSubtrMean->SetOption("p");
  Add2RawsList( hQTCSubtrMean,233, expert, image, !saveCorr);//fk filled in Checker
 
  TH2F* hDiffOrCVersusDiffOrATvdcOn= new TH2F("hDiffOrCVersusDiffOrATvdcOn","ORC-meanORC versus ORA-meanORA (TVDC on)",50,-200,200,50,-200,200);
  hDiffOrCVersusDiffOrATvdcOn->SetOption("COLZ");
  hDiffOrCVersusDiffOrATvdcOn->GetXaxis()->SetTitle("ORA - mean ORA [channel]");
  hDiffOrCVersusDiffOrATvdcOn->GetYaxis()->SetTitle("ORC - mean ORC [channel]");
  Add2RawsList(hDiffOrCVersusDiffOrATvdcOn, 234, expert, image, !saveCorr);//FK
  
  TH2F* hDiffOrCVersusDiffOrATvdcOff= new TH2F("hDiffOrCVersusDiffOrATvdcOff","ORC-meanORC vetsus ORA-meanORA (TVDC off)",50,-200,200,50,-200,200);
  hDiffOrCVersusDiffOrATvdcOff->SetOption("COLZ");
  hDiffOrCVersusDiffOrATvdcOff->GetXaxis()->SetTitle("ORA - mean ORA [channel]");
  hDiffOrCVersusDiffOrATvdcOff->GetYaxis()->SetTitle("ORC - mean ORC [channel]");
  Add2RawsList(hDiffOrCVersusDiffOrATvdcOff, 235, expert, image, !saveCorr);//FK
 
  TH2F* hBCID = new TH2F("hBCID", "header BCID vs TRM BC ID ", 500, 0, 5000, 500, 0, 5000);
  hBCID->SetOption("COLZ");
  hBCID->GetXaxis()->SetTitle("TRM BC ID");
  hBCID->GetYaxis()->SetTitle("event header BC ID");
  Add2RawsList(hBCID ,236, !expert, image, !saveCorr);

  //CFD and LED efficiency in range ~2000- ~3000 
  TH1F* hCFDeffSubRange = new TH1F("hCFDeffSubRange"," CFD eff in subrange; #PMT; #CFD counts/nEvents",24, 0 ,24);  
  Add2RawsList( hCFDeffSubRange, 237, expert, !image, !saveCorr);//FK  

 
  TH1F* hEffLEDSubRange = new TH1F("hEffLEDSubRange","LED eff in subrange; #PMT; #LED counts/nEvent",24, 0 ,24);
  Add2RawsList( hEffLEDSubRange,238, expert, !image, !saveCorr);//FK
  // ratio CDF eff /LEF eff in subragne 
  TH1F* hRatioCFDLEDeff = new TH1F("hRatioCFDLEDeff","Ratio CFD/LED eff in subrange; #PMT; ratio CDF/LED eff",24, 0 ,24);  
  hRatioCFDLEDeff->SetMinimum(0);
  hRatioCFDLEDeff->SetMaximum(2);
  Add2RawsList( hRatioCFDLEDeff, 239, !expert, image, !saveCorr);//FK   
 
  TH1F* hEventCounter = new TH1F("hEventCounter","Event counter for eff histos; X; number of events",1, 0 ,1);  
  Add2RawsList( hEventCounter, 240, expert, !image, !saveCorr);//FK   

  //counters 
  TH1F* hRawTriggerCounter = new TH1F("hRawTriggerCounter"," triggers;Trigger ;Counts",6,0,6);
  for (Int_t itr=0; itr<6; itr++) hRawTriggerCounter->Fill(triggers[itr], 0);
  Add2RawsList(hRawTriggerCounter ,241, expert, !image, !saveCorr);
 
  TH1F* hCFDCounter= new TH1F("hCFDCounter"," CFD counter #PMT; #CFD counts",24, 0 ,24);  
  Add2RawsList( hCFDCounter, 242, expert, !image, !saveCorr);//FK   
  TH1F* hLEDCounter = new TH1F("hLEDCounter","LED counter; #PMT; #LED counts",24, 0 ,24);
  Add2RawsList( hLEDCounter, 243, expert, !image, !saveCorr);//FK
 
  TH1F* hCFDeffSubRangeCounter = new TH1F("hCFDeffSubRangeCounter"," CFD eff in subrange counter; #PMT; #CFD counts",24, 0 ,24);  
  Add2RawsList( hCFDeffSubRangeCounter, 244, expert, !image, !saveCorr);//FK  
  TH1F* hEffLEDSubRangeCounter = new TH1F("hEffLEDSubRangeCounter","LED eff in subrange counter; #PMT; #LED counts",24, 0 ,24);
  Add2RawsList( hEffLEDSubRangeCounter,245, expert, !image, !saveCorr);//FK
 
  TH1F* hQTCCounter = new TH1F("hQTCCounter","QTC counter; #PMT; QTC counts;",24, 0 ,24);
  Add2RawsList( hQTCCounter,246, expert, !image, !saveCorr);
 
  ClonePerTrigClass(AliQAv1::kRAWS); // this should be the last line
}
  
//____________________________________________________________________________ 
void AliT0QADataMakerRec::InitDigits()
{
  // create Digits histograms in Digits subdir
  const Bool_t expert   = kTRUE ; 
  const Bool_t image    = kTRUE ; 
  
  TH2F * fhDigCFD = new TH2F("fhDigCFD", " CFD digits; #PMT; CFD digits[#channels]",25,-0.5,24.5,100,0,1000);
  fhDigCFD->SetOption("COLZ");
  Add2DigitsList( fhDigCFD,0, !expert, image);
  TH2F *fhDigLEDamp = new TH2F("fhDigLEDamp", " LED-CFD digits; #PMT; LED-CFD amplitude ",25,-0.5,24.5,100,100,1000);
  fhDigLEDamp->SetOption("COLZ");
  Add2DigitsList( fhDigLEDamp,1, !expert, !image);
  TH2F * fhDigQTC = new TH2F("fhDigQTC", " QTC digits; #PMT; QTC amplitude",25,-0.5,24.5,100,100,10000);
  fhDigQTC->SetOption("COLZ");
  Add2DigitsList( fhDigQTC,2, !expert, !image);
  //
  ClonePerTrigClass(AliQAv1::kDIGITS); // this should be the last line
}

//____________________________________________________________________________ 

void AliT0QADataMakerRec::InitRecPoints()
{
  // create cluster histograms in RecPoint subdir
  const Bool_t expert   = kTRUE ; 
  const Bool_t image    = kTRUE ; 

  TH2F* fhRecCFD = new TH2F("hRecCFD"," CFD time;#PMT; CFD Time [ns];",24, 0 ,24, 
			      100,-50,50);
  fhRecCFD->SetOption("COLZ");
  Add2RecPointsList ( fhRecCFD,0, !expert, image);

  TH2F* fhRecAmpDiff = new TH2F("hRecAmpDiff"," LED-CFD  min QTC amplitude;#PMT; difference [MIPs];",
				24, 0 ,24, 200,-10,10);
  fhRecAmpDiff->SetOption("COLZ");
  Add2RecPointsList (fhRecAmpDiff, 1, !expert, image);
  
  TH1F *fhMean = new TH1F("hMean","online - rec mean;online - rec mean[#channels];",2000, -1000, 1000);
  Add2RecPointsList ( fhMean,2, !expert, image);
  //
  ClonePerTrigClass(AliQAv1::kRECPOINTS); // this should be the last line
}

//____________________________________________________________________________
void AliT0QADataMakerRec::InitESDs()
{
  //create ESDs histograms in ESDs subdir
  const Bool_t expert   = kTRUE ; 
  const Bool_t image    = kTRUE ; 
  
  TH1F *fhESDMean = new TH1F("hESDmean"," ESD mean; mean time[%channels]",1000, -5, 5);
  Add2ESDsList(fhESDMean, 0, expert, !image) ;
  TH1F * fhESDVertex = new TH1F("hESDvertex","ESDvertex; vertex[cm];",82,-30,30);
  Add2ESDsList(fhESDVertex, 1, expert, !image) ;
  
  TH1F * fhESDResolution = new TH1F("hESDResolution","(T0A-T0C)/2 corrected by SPD vertex; ns",800,-2,2);
  Add2ESDsList(fhESDResolution, 2, !expert, image) ;
  //
  ClonePerTrigClass(AliQAv1::kESDS); // this should be the last line
}

//____________________________________________________________________________
void AliT0QADataMakerRec::MakeRaws( AliRawReader* rawReader)
{
  //indices in lookup table lookUpTable_tanay.txt 
  enum { kTZeroRefPoint=0, kTZeroFirstCfdC=1, kTZeroFirstLedC=13, kTZeroFirstQT0C=25,kTZeroFirstQT1C=26,
         kTZeroVertex=50, kTZeroOrA=51, kTZeroOrC=52, kT0multAQ0=53, kT0multAQ1=54, kTZeroMultCent=55, kTZeroMultSemi=56,
         kTZeroFirstCfdA=57, kTZeroFirstLedA=69, kTZeroFirstQT0A=81,kTZeroFirstQT1A=82,
         kT0multCQ0=105, kT0multCQ1=106 
  }; 

  Int_t  time[24] ;
  for(Int_t i=0; i<24; i++) time[i] = 0;	  
  rawReader->Reset() ; 
  //fills QA histos for RAW
  //Int_t shift=0;
  // Int_t refPointParam = GetRecoParam()->GetRefPoint();
  Int_t refpoint = 0;
  Int_t refPointParam = 0;
  
  AliT0RawReader *start = new AliT0RawReader(rawReader);
  
  if (! start->Next()) {
    AliDebug(AliQAv1::GetQADebugLevel(),Form(" no raw data found!!"));
    delete start;
    return;
  }
  UInt_t type =rawReader->GetType();
  if (GetEventSpecie()==AliRecoParam::kCalib && type!=8) {
     delete start;
    return;
  }
  //
  // RS: Don't use custom counters, they create problems with trigger cloning
  //     Use instead framework counters, incremented in the end of this routine
  // RS: There is some inconsistency here: the separation of physics and calib. events/histos is done by
  // fEventSpecie. Why do we book separate histos on different slots for calib and physics ? 
  // I am changing this in such way that we don't need local counters like fNumTriggers (the corresponding
  // histos now incremented in the MakeRaws, and for the normalization I will use the framework's counters
  // AliQADataMaker::GetEvCountCycle(...), AliQADataMaker::GetEvCountTotal(...)
  //
  // I think the histos xx+250 should be suppressed (the xx calib histos of specie==calibration will be 
  // used automatically)
      
 //
  //BC ID
  //  if (type == 7){
  UInt_t bcid = rawReader->GetBCID();
  UInt_t	trmbcid = start->GetTRMBunchID();
  
  FillRawsData(236,trmbcid, bcid);
  //FillRawsData(236,100, bcid); fake error for testing
 
 //  }    
  //    if (type == 7){ shift=1;   fnEventPhys++;}
  Int_t allData[220][5];
  for(Int_t i0=0; i0<220; i0++){
    for(Int_t j0=0; j0<5; j0++){
      allData[i0][j0]=0;
    } 
  }

  for(Int_t i=0; i<=202; i++){ 
    for(Int_t iHit=0; iHit<5; iHit++){
      allData[i][iHit]= start->GetData(i,iHit);
    }
  }

  if( allData[kTZeroRefPoint][0] > 0  /*&& (type == 7)*/){
    FillRawsData(0, allData[kTZeroRefPoint][0]); //Reference point
  }
  refpoint = allData[refPointParam][0];
  if(refPointParam <  0 ) refpoint=0; 
  if(refPointParam == 0 ) refpoint = allData[kTZeroRefPoint][0] - 5000;
  
  Int_t offsetCDF, offsetLED, offsetQT0, offsetQT1;
  Int_t numPmtC=0;    
  Int_t numPmtA=0;   
 
  for(Int_t ik = 0; ik<24; ik++){
    Int_t ipmt = ik; //C side
    if(ik<12) {
      offsetCDF = kTZeroFirstCfdC;
      offsetLED = kTZeroFirstLedC;
      offsetQT0 = kTZeroFirstQT0C;
      offsetQT1 = kTZeroFirstQT1C;
      if(allData[ipmt+offsetCDF][0]>0 /*&& type == 7 */ )  numPmtC++;
    }else{
      ipmt = ik - 12; //A side 
      offsetCDF = kTZeroFirstCfdA;
      offsetLED = kTZeroFirstLedA;
      offsetQT0 = kTZeroFirstQT0A;
      offsetQT1 = kTZeroFirstQT1A;
      if(allData[ipmt + offsetCDF][0]>0 /*&& type == 7 */) numPmtA++;
    }
    Int_t nhitsPMT=0; //count hits for this pmt

    for (Int_t iHt=0; iHt<5; iHt++) {
      //cfd
      if(allData[ipmt+offsetCDF][iHt]>0){
	FillRawsData(ik+1, allData[ipmt+offsetCDF][iHt]);  //CFD for each PMT
	FillRawsData(210, ik, allData[ipmt+offsetCDF][iHt]); //CFD vs PMT
	FillRawsData(242,ik,1.); // CFD counter for efficiency  
	if( fCFDEffSubRangeLowParam<allData[ipmt+offsetCDF][iHt] && allData[ipmt+offsetCDF][iHt]<fCFDEffSubRangeHighParam){
          FillRawsData(244,ik,1.); //count CDF entries in given subrange  for   CDF/LED eff ratio
        }
	AliDebug(50,Form("%i CFD %i  data %s",ik, ipmt+offsetCDF,  GetRawsData(ik+1)->GetName()));
	nhitsPMT++;
      }
      //led
      if(allData[ipmt+offsetLED][iHt] > 0){ 
	FillRawsData(ik+25,allData[ipmt+offsetLED][iHt]);
	FillRawsData(211,ik, allData[ipmt+offsetLED][iHt]);
	FillRawsData(243,ik,1.); //LED counter for LED efficiency 
        if(fLEDEffSubRangeLowParam < allData[ipmt+offsetLED][iHt] && allData[ipmt+offsetLED][iHt]<fLEDEffSubRangeHighParam){
	  FillRawsData(245,ik,1.); //count LED entries in given subrange for   CDF/LED eff ratio
        } 
	AliDebug(50,Form("%i LED %i  data %s",ik, ipmt+offsetLED,  GetRawsData(ik+25)->GetName()));
      }

      //led -cfd
      if(allData[ipmt+offsetLED][iHt] > 0 && allData[ipmt+offsetCDF][iHt] > 0 )
	FillRawsData(ik+49, allData[ipmt+offsetLED][iHt]-allData[ipmt+offsetCDF][iHt]);
      
      //qtc
      if(allData[2*ipmt+offsetQT0][iHt] > 0 &&
	 allData[2*ipmt+offsetQT1][iHt] > 0 ) {
        
	FillRawsData(ik+73, allData[2*ipmt+offsetQT0][iHt]-allData[2*ipmt+offsetQT1][iHt]); //QTC = QT0 - QT1 for each channel
	FillRawsData(212,ik, allData[2*ipmt+offsetQT0][iHt]-allData[2*ipmt+offsetQT1][iHt]); //QTC vs pmt

	FillRawsData(246,ik,1.); // QTC counter for QTC efficiency

	AliDebug(50,Form("%i QTC %i  data %s",ik, 2*ipmt+offsetQT0, GetRawsData(ik+73)->GetName()));
	
      }
      if(allData[2*ipmt+offsetQT0][iHt] > 0) { //QT0
	AliDebug(50,Form("%i QT0 %i  data %s",ik, 2*ipmt+offsetQT0, GetRawsData(ik+97)->GetName()));
	FillRawsData(ik+97,allData[2*ipmt+offsetQT0][iHt]);
      }
      if(allData[2*ipmt+offsetQT1][iHt] > 0) {//QT1
	AliDebug(50,Form("%i QT1 %i  data %s",ik, 2*ipmt+offsetQT1, GetRawsData(ik+121)->GetName()));
	FillRawsData(ik+121,allData[2*ipmt+offsetQT1][iHt]);
      }
    }
      
    FillRawsData(ik+176, nhitsPMT);
  }
  FillRawsData(213, numPmtA);
  FillRawsData(214, numPmtC);
     
 
  Int_t trChannel[6] = {kTZeroRefPoint, kTZeroVertex, kTZeroOrA, kTZeroOrC, kTZeroMultCent, kTZeroMultSemi};
  Float_t ch2cm = 24.4*0.029979;     
  Int_t nhitsOrA=0;
  Int_t nhitsOrC=0;

  for (Int_t iHt=0; iHt<5; iHt++) {
    //orA-orC phys tvdc 1 
    if((allData[kTZeroOrA][iHt]>0 && allData[kTZeroOrC][iHt]>0) && allData[kTZeroVertex][iHt]>0) {
      AliDebug(10,Form("orA-orC phys tvdc 1  %i  data %s", 217,  GetRawsData(217)->GetName()));
      
      FillRawsData(217,(allData[kTZeroOrC][iHt] - allData[kTZeroOrA][iHt])*ch2cm);
    }
    //orA-orC phys tvdc 0 
    if((allData[kTZeroOrA][iHt]>0 && allData[kTZeroOrC][iHt]>0) && allData[kTZeroVertex][iHt]<=0) {
      AliDebug(10,Form("orA-orC phys tvdc 0  %i  data %s", 218,  GetRawsData(218)->GetName()));
	
      FillRawsData(218,(allData[kTZeroOrC][iHt] - allData[kTZeroOrA][iHt])*ch2cm);
    }
    if(allData[kTZeroOrA][iHt]>0 && allData[kTZeroOrC][iHt]>0) {
      AliDebug(50,Form("orA-orC phys tvdc all  %i  data %s", 219,  GetRawsData(219)->GetName()));
      FillRawsData(219,(allData[kTZeroOrC][iHt] - allData[kTZeroOrA][iHt])*ch2cm);
    }


    for (Int_t itr=0; itr<6; itr++) {//T0_MEAN,TO_VERTX,ORA,ORC,T0_mult,T0_mult
      if (allData[trChannel[itr]][iHt] >0) {
	//
	// RS instead of incremented custom counters, fill directly the specie-specific histos
	//  	FillRawsData(169+shift, 0.5+itr, 1.);  // RS: increment counters
	// FillRawsData(169+shift, itr, 1.);  //hRawTrigger RS: increment counters
        FillRawsData(241, itr, 1.); // fill trigger counter
	AliDebug(50,Form(" triggers %i  data %s", 170+itr,  GetRawsData(170+itr)->GetName()));
	
	FillRawsData(170+itr,allData[trChannel[itr]][iHt]);
    
        if( trChannel[itr] == kTZeroVertex){ //T0_VERTEX minus mean from config files
	  FillRawsData(230, allData[kTZeroVertex][iHt] - fMeanRawVertexParam );
        }
      }
    }

    if(allData[kTZeroOrA][iHt] > 0  &&  allData[kTZeroOrC][iHt] > 0  ){ //FK// ORC-mean   ORA -mean 
      Float_t  diffORA =  allData[kTZeroOrA][iHt] - fMeanORAParam;
      Float_t  diffORC =  allData[kTZeroOrC][iHt] - fMeanORCParam;
      if(allData[kTZeroVertex][iHt]>0){ //TVDC on
	FillRawsData(234, diffORA, diffORC);     
         //Estimate mean orA and orC based on these
 
      }else{//TVDC off
	FillRawsData(235, diffORA, diffORC);
      }
    }
    
    /*   if(type == 7) */if(allData[kTZeroOrA][iHt] >0){
                             nhitsOrA++;
                         } 
    /* if(type == 7) */if(allData[kTZeroOrC][iHt] >0){
                             nhitsOrC++;
                         }
    //mult trigger signals phys
    //A side
    if(allData[kT0multAQ0][iHt]>0 && allData[kT0multAQ1][iHt]>0) {
      AliDebug(50,Form(" mpdA %i  data %s", 201,  GetRawsData(201)->GetName()));
      
      FillRawsData(201,allData[kT0multAQ0][iHt]-allData[kT0multAQ1][iHt]);
      if(allData[kTZeroMultSemi][iHt]>0) FillRawsData(202,allData[kT0multAQ0][iHt]-allData[kT0multAQ1][iHt]);
      if(allData[kTZeroMultCent][iHt]>0) FillRawsData(203,allData[kT0multAQ0][iHt]-allData[kT0multAQ1][iHt]);
    }
    
    //C side 
    if(allData[kT0multCQ0][iHt]>0 && allData[kT0multCQ1][iHt]>0) {
      AliDebug(50,Form(" mpdC %i  data %s", 204,  GetRawsData(204)->GetName()));
	
      FillRawsData(204,allData[kT0multCQ0][iHt]-allData[kT0multCQ1][iHt]);
      if(allData[kTZeroMultSemi][iHt]>0) FillRawsData(205,allData[kT0multCQ0][iHt]-allData[kT0multCQ1][iHt]);
      if(allData[kTZeroMultCent][iHt]>0) FillRawsData(206,allData[kT0multCQ0][iHt]-allData[kT0multCQ1][iHt]);
    }
  }
    
  FillRawsData(215,nhitsOrA);
  FillRawsData(216,nhitsOrC);

  // new QTC 
  for(Int_t iHt = 0; iHt<5; iHt++) {
    for(Int_t ik = 0; ik<96; ik++) 
      { 
	FillRawsData(ik+1000, allData[107+ik][iHt]);
	Int_t pmt= ik/4;
	FillRawsData(pmt+1096, allData[107+pmt*4][iHt] - allData[107+pmt*4+1][iHt]);
	FillRawsData(pmt+371, allData[107+pmt*4+2][iHt] - allData[107+pmt*4+3][iHt]); 
      }
  }

  //draw satellite
  for (int itr=-1;itr<GetNEventTrigClasses();itr++) { //RS loop over all active trigger classes, including the global one
    int itrID = itr==-1 ? -1 : int( GetEventTrigClass(itr)->GetUniqueID());

    TH2 *hBeam             = (TH2*)GetRawsData(220,itrID);
    TH2 *hBeamTVDCon       = (TH2*)GetRawsData(221,itrID);
    TH2 *hBeamTVDCoff      = (TH2*)GetRawsData(222,itrID);
    TH1 *hVertex1stTVDCon  = (TH1*)GetRawsData(223,itrID);
    TH1 *hVertex1stTVDCoff = (TH1*)GetRawsData(225,itrID);
    TH1 *hMean1stTVDCon    = (TH1*)GetRawsData(226,itrID);
    TH1 *hMean1stTVDCoff   = (TH1*)GetRawsData(227,itrID);
    if(hBeam || hBeamTVDCon || hBeamTVDCoff || hVertex1stTVDCon || hVertex1stTVDCoff || hMean1stTVDCon || hMean1stTVDCoff){
     
      Int_t time1stA=9999999;
      Int_t time1stC=9999999;
      for(Int_t ipmt=0; ipmt<12; ipmt++){
	if(allData[ipmt+kTZeroFirstCfdC][0] > 1 ) {
	  time[ipmt] = allData[ipmt+kTZeroFirstCfdC][0] - (Int_t) fMeanCFDFromGoodRunParam[ipmt]; //fk
	  if(time[ipmt] < time1stC)  time1stC=time[ipmt]; //timeC
	}
      }
      for( Int_t ipmt=12; ipmt<24; ipmt++){
	if(allData[ipmt-12+kTZeroFirstCfdA][0] > 0) {
	  time[ipmt] = allData[ipmt-12+kTZeroFirstCfdA][0] - (Int_t) fMeanCFDFromGoodRunParam[ipmt];//fk
	  if(time[ipmt] < time1stA)  time1stA=time[ipmt]; //timeC
	}
      }
      if(time1stA<99999 && time1stC< 99999) { //From First
	Float_t t01st  = 24.4 * (Float_t) (( time1stA + time1stC)/2.0);
	Float_t ver1st = 24.4 * (Float_t) (( time1stC - time1stA)/2.0);
	if(hBeam) hBeam->Fill(0.001*ver1st, 0.001*(t01st)); //Mean versus vertex
	if(allData[kTZeroVertex][0] > 0){//TVDC on
          if(hBeamTVDCon)      hBeamTVDCon->Fill(0.001*ver1st, 0.001*(t01st));//Mean versus  TVDC on from first
          if(hVertex1stTVDCon) hVertex1stTVDCon->Fill(ver1st);
          //if(hVertex1stTVDCon) hVertex1stTVDCon->Fill(1500);//for testing AM

          if(hMean1stTVDCon)   hMean1stTVDCon->Fill(t01st);
	  //          if(hMean1stTVDCon)   hMean1stTVDCon->Fill(1800);//testing AM
        }else{//TVDC off
          if(hBeamTVDCoff)      hBeamTVDCoff->Fill(0.001*ver1st, 0.001*(t01st));//FK// TVDC off from first
          if(hVertex1stTVDCoff) hVertex1stTVDCoff->Fill(ver1st);
          if(hMean1stTVDCoff)   hMean1stTVDCoff->Fill(t01st);
        }
      }	  
    } //
  } // RS loop over all active trigger classes, including the global one
    //
    IncEvCountCycleRaws();
    IncEvCountTotalRaws();
    //
    delete start;
}
  
//____________________________________________________________________________
void AliT0QADataMakerRec::MakeDigits( TTree *digitsTree)
{
  //fills QA histos for Digits

  TArrayI *digCFD = new TArrayI(24);
  TArrayI *digLED = new TArrayI(24);
  TArrayI *digQT0 = new TArrayI(24);
  TArrayI *digQT1 = new TArrayI(24);
  Int_t refpoint=0;
  
  TBranch *brDigits=digitsTree->GetBranch("T0");
  AliT0digit *fDigits = new AliT0digit() ;
  if (brDigits) {
    brDigits->SetAddress(&fDigits);
  }else{
    AliError(Form("EXEC Branch T0 digits not found"));
    delete digCFD;
    delete digLED;
    delete digQT0;
    delete digQT1;
    return;
  }
  digitsTree->GetEvent(0);
  digitsTree->GetEntry(0);
  brDigits->GetEntry(0);
  fDigits->GetTimeCFD(*digCFD);
  fDigits->GetTimeLED(*digLED);
  fDigits->GetQT0(*digQT0);
  fDigits->GetQT1(*digQT1);
  refpoint = fDigits->RefPoint();
  for (Int_t i=0; i<24; i++) {
    if (digCFD->At(i)>0) {
      Int_t cfd=digCFD->At(i)- refpoint;
      FillDigitsData(0,i,cfd);
      FillDigitsData(1,i, (digLED->At(i) - digCFD->At(i)));
      FillDigitsData(2,i, (digQT1->At(i) - digQT0->At(i)));
    }
  }  
  
  delete digCFD;
  delete digLED;
  delete digQT0;
  delete digQT1;
  //
  IncEvCountCycleDigits();
  IncEvCountTotalDigits(); 
  delete fDigits;
  //  
}

//____________________________________________________________________________
void AliT0QADataMakerRec::MakeRecPoints(TTree * clustersTree)
{
  //fills QA histos for clusters

  AliT0RecPoint* frecpoints= new AliT0RecPoint ();
  if (!frecpoints) {
    AliError(":MakeRecPoints >> no recpoints found");
    return;
  }
  TBranch *brRec =clustersTree ->GetBranch("T0");
  if (brRec) {
    brRec->SetAddress(&frecpoints);
  }else{
    AliError(Form("EXEC Branch T0 rec not found "));
    return;
  } 

  brRec->GetEntry(0);
  
  for ( Int_t i=0; i<24; i++) {
    if(i<12)
      FillRecPointsData(0, i, frecpoints -> GetTime(i) - frecpoints -> GetTime(0)); 
    if(i>11)
      FillRecPointsData(0, i,  frecpoints -> GetTime(i) - frecpoints -> GetTime(12)); 
    FillRecPointsData(1, i, frecpoints -> GetAmp(i) - frecpoints->AmpLED(i));
  }
  Double_t mmm=frecpoints->GetOnlineMean()- frecpoints->GetMeanTime();
  FillRecPointsData(2,mmm);
  //
  IncEvCountCycleRecPoints();
  IncEvCountTotalRecPoints();
  //  
  delete frecpoints;
}

//____________________________________________________________________________
void AliT0QADataMakerRec::MakeESDs(AliESDEvent * esd)
{
  //fills QA histos for ESD
  
  const Double32_t  *mean;
  mean = esd->GetT0TOF();
  Double32_t t0time= 0.001*mean[0];
  Double32_t orA= 0.001*mean[1];
  Double32_t orC=0.001* mean[2];

  if (t0time<99)   FillESDsData(0,t0time);
  if( esd->GetT0zVertex() <99) FillESDsData(1, esd->GetT0zVertex());
  if( orA<99 && orC<99) FillESDsData(2,(orA-orC)/2.);
  //
  IncEvCountCycleESDs();
  IncEvCountTotalESDs();
  //
}
//____________________________________________________________________________
//____________________________________________________________________________
void AliT0QADataMakerRec::ResetDetector(AliQAv1::TASKINDEX_t task)
{

 //reset the detector histograms for a given task
  AliQADataMakerRec::ResetDetector(task);

  for(int ih=0; ih<=250; ih++){
    for(int itr=-1; itr < GetNEventTrigClasses(); itr++){ 
      int itrID = itr==-1 ? -1 : int( GetEventTrigClass(itr)->GetUniqueID());

      TH1 *htmp = (TH1*) GetRawsData(ih,itrID);
      if(htmp) htmp->Reset();
    } 
  }
}


/*
void AliT0QADataMakerRec::GetMeanAndSigma(TH1F* hist, Float_t &mean, Float_t &sigma) 
{

  const double window = 3.;  //fit window 
 
  double meanEstimate, sigmaEstimate; 
  int maxBin;
  maxBin        =  hist->GetMaximumBin(); //position of maximum
  meanEstimate  =  hist->GetBinCenter( maxBin); // mean of gaussian sitting in maximum
  sigmaEstimate = hist->GetRMS();
  TF1* fit= new TF1("fit","gaus", meanEstimate - window*sigmaEstimate, meanEstimate + window*sigmaEstimate);
  fit->SetParameters(hist->GetBinContent(maxBin), meanEstimate, sigmaEstimate);
  hist->Fit("fit","RQ","Q");

  mean  = (Float_t) fit->GetParameter(1);
  sigma = (Float_t) fit->GetParameter(2);

  delete fit;
}
*/

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