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


//  Produces the data needed to calculate the quality assurance 
//  All data must be mergeable objects
//  Handles ESDs and Raws
//  Histos defined will be used for Raw Data control and monitoring

// --- ROOT system ---
#include <TClonesArray.h>
#include <TFile.h> 
#include <TF1.h> 
#include <TH1F.h> 
#include <TH1I.h> 
#include <TH2I.h> 
#include <TH2F.h> 
#include <TGraph.h> 
#include <TParameter.h>
#include <TTimeStamp.h>

// --- Standard library ---

// --- AliRoot header files ---
#include "AliESDEvent.h"
#include "AliLog.h"
#include "AliCDBManager.h"
#include "AliCDBStorage.h"
#include "AliCDBEntry.h"
#include "AliVZEROQADataMakerRec.h"
#include "AliQAChecker.h"
#include "AliRawReader.h"
#include "AliVZERORawStream.h"
#include "AliVZEROdigit.h"
#include "AliVZEROConst.h"
#include "AliVZEROReconstructor.h"
#include "AliVZEROTrending.h"
#include "AliVZEROCalibData.h"
#include "AliVZEROTriggerData.h"
#include "AliCTPTimeParams.h"
#include "event.h"

const Float_t kMinBBA = 68. ;
const Float_t kMaxBBA = 100. ;
const Float_t kMinBBC = 75.5 ;
const Float_t kMaxBBC = 100. ;
const Float_t kMinBGA = 54. ;
const Float_t kMaxBGA = 58. ;
const Float_t kMinBGC = 69.5 ;
const Float_t kMaxBGC = 74. ;

 
 
 

ClassImp(AliVZEROQADataMakerRec)
           
//____________________________________________________________________________ 
AliVZEROQADataMakerRec::AliVZEROQADataMakerRec() : 
AliQADataMakerRec(AliQAv1::GetDetName(AliQAv1::kVZERO), "VZERO Quality Assurance Data Maker"),
  fCalibData(0x0),
  fTriggerData(0x0),
//  fEvent(0), 
//  fNTotEvents(0), 
//  fNSubEvents(0), 
//  fTrendingUpdateEvent(0), 
//  fNTrendingUpdates(0), 
  fTrendingUpdateTime(0), 
  fCycleStartTime(0), 
  fCycleStopTime(0),
  fTimeSlewing(0)
    
{
  // Constructor
   
  AliDebug(AliQAv1::GetQADebugLevel(), "Construct VZERO QA Object");

  for(Int_t i=0; i<64; i++){  
    fEven[i] = 0;   
    fOdd[i]  = 0;
  }
  
  for(Int_t i=0; i<128; i++){  
    fADCmean[i] = 0.0;   }	
}

//____________________________________________________________________________ 
AliVZEROQADataMakerRec::AliVZEROQADataMakerRec(const AliVZEROQADataMakerRec& qadm) :
  AliQADataMakerRec(),
  fCalibData(0x0),
  fTriggerData(0x0),
  //  fEvent(0), 
  //  fNTotEvents(0), 
  //  fNSubEvents(0), 
  //  fTrendingUpdateEvent(0), 
  //  fNTrendingUpdates(0), 
  fTrendingUpdateTime(0), 
  fCycleStartTime(0), 
  fCycleStopTime(0),
  fTimeSlewing(0)
  
{
  // Copy constructor 
  
  SetName((const char*)qadm.GetName()) ; 
  SetTitle((const char*)qadm.GetTitle()); 
}

//__________________________________________________________________
AliVZEROQADataMakerRec& AliVZEROQADataMakerRec::operator = (const AliVZEROQADataMakerRec& qadm )
{
  // Equal operator
  
  this->~AliVZEROQADataMakerRec();
  new(this) AliVZEROQADataMakerRec(qadm);
  return *this;
}

//____________________________________________________________________________
AliVZEROCalibData* AliVZEROQADataMakerRec::GetCalibData() const

{
  AliCDBManager *man = AliCDBManager::Instance();

  AliCDBEntry *entry=0;

  entry = man->Get("VZERO/Calib/Data",fRun);
  if(!entry){
    AliWarning("Load of calibration data from default storage failed!");
    AliWarning("Calibration data will be loaded from local storage ($ALICE_ROOT)");
	
    man->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
    entry = man->Get("VZERO/Calib/Data",fRun);
  }
  // Retrieval of data in directory VZERO/Calib/Data:

  AliVZEROCalibData *calibdata = 0;

  if (entry) calibdata = (AliVZEROCalibData*) entry->GetObject();
  if (!calibdata)  AliFatal("No calibration data from calibration database !");

  return calibdata;
}

//____________________________________________________________________________ 
void AliVZEROQADataMakerRec::EndOfDetectorCycle(AliQAv1::TASKINDEX_t task, TObjArray ** list)
{
  // Detector specific actions at end of cycle
  // Does the QA checking
  ResetEventTrigClasses();
  //
  AliQAChecker::Instance()->Run(AliQAv1::kVZERO, task, list) ;
  
  if(task == AliQAv1::kRAWS){
    TTimeStamp currentTime;
    fCycleStopTime = currentTime.GetSec();
  }

  for (Int_t specie = 0 ; specie < AliRecoParam::kNSpecies ; specie++) {
    if (! IsValidEventSpecie(specie, list)) continue ;
    SetEventSpecie(AliRecoParam::ConvertIndex(specie));
    if(task == AliQAv1::kRAWS) {
    } else if (task == AliQAv1::kESDS) {
    }
  }
}

//____________________________________________________________________________ 
void AliVZEROQADataMakerRec::InitESDs()
{
  // Creates histograms to control ESDs
  
  const Bool_t expert   = kTRUE ; 
  const Bool_t image    = kTRUE ; 
	
  TH2F * h2d;
  TH1I * h1i;
  TH1F * h1d;
		
  h1i = new TH1I("H1I_Cell_Multiplicity_V0A", "Cell Multiplicity in V0A;Multiplicity (Nb of Cell);Counts", 35, 0, 35) ;  
  Add2ESDsList(h1i, kCellMultiV0A, !expert, image)  ;  
                                                                                                        
  h1i = new TH1I("H1I_Cell_Multiplicity_V0C", "Cell Multiplicity in V0;Multiplicity (Nb of Cell);Counts", 35, 0, 35) ;  
  Add2ESDsList(h1i, kCellMultiV0C, !expert, image)  ;  
   
  h1d = new TH1F("H1D_MIP_Multiplicity_V0A", "MIP Multiplicity in V0A;Multiplicity (Nb of MIP);Counts", 1000, 0, 1000) ;  
  Add2ESDsList(h1d, kMIPMultiV0A, !expert, image)  ;  
  
  h1d = new TH1F("H1D_MIP_Multiplicity_V0C", "MIP Multiplicity in V0C;Multiplicity (Nb of MIP);Counts", 1000, 0, 1000) ;  
  Add2ESDsList(h1d, kMIPMultiV0C, !expert, image)  ;  

  h2d = new TH2F("H2D_MIP_Multiplicity_Channel", "MIP Multiplicity per Channel;Channel;Multiplicity (Nb of MIP)",64, 0, 64, 100, 0, 100) ;  
  Add2ESDsList(h2d, kMIPMultiChannel, !expert, image)  ;  
  
  h1d = new TH1F("H1D_BBFlag_Counters", "BB Flag Counters;Channel;Counts",64, 0, 64) ;  
  Add2ESDsList(h1d, kBBFlag, !expert, image)  ;  
  
  h1d = new TH1F("H1D_BGFlag_Counters", "BG Flag Counters;Channel;Counts",64, 0, 64) ;  
  Add2ESDsList(h1d, kBGFlag, !expert, image)  ;  
  
  h2d = new TH2F("H2D_Charge_Channel", "ADC Charge per channel;Channel;Charge (ADC counts)",64, 0, 64, 1024, 0, 1024) ;  
  Add2ESDsList(h2d, kChargeChannel, !expert, image)  ;  
  
  h2d = new TH2F("H2D_Time_Channel", "Time per channel;Channel;Time (ns)",64, 0, 64, 400, -100, 100) ;  
  Add2ESDsList(h2d, kTimeChannel, !expert, image)  ;  
  
  h1d = new TH1F("H1D_V0A_Time", "Mean V0A Time;Time (ns);Counts",1000, -100., 100.);
  Add2ESDsList(h1d,kESDV0ATime, !expert, image); 
  
  h1d = new TH1F("H1D_V0C_Time", "Mean V0C Time;Time (ns);Counts",1000, -100., 100.);
  Add2ESDsList(h1d,kESDV0CTime, !expert, image); 
  
  h1d = new TH1F("H1D_Diff_Time", "Diff Time V0A - V0C;Diff Time V0A - V0C (ns);Counts",1000, -200., 200.);
  Add2ESDsList(h1d,kESDDiffTime, !expert, image); 
  //
  ClonePerTrigClass(AliQAv1::kESDS); // this should be the last line	
}

//____________________________________________________________________________ 
void AliVZEROQADataMakerRec::InitRaws()
{
  // Creates RAW histograms in Raws subdir

  const Bool_t expert   = kTRUE ; 
  const Bool_t saveCorr = kTRUE ; 
  const Bool_t image    = kTRUE ; 

  const Int_t kNintegrator  =    2;
 
  const Int_t kNTdcTimeBins  = 1280;
  const Float_t kTdcTimeMin    =    0.;
  const Float_t kTdcTimeMax    = 75.;
    const Int_t kNTdcWidthBins =  256;
  const Float_t kTdcWidthMin   =    0;
  const Float_t kTdcWidthMax   =  200.;
  const Int_t kNChargeBins   = 1024;
  const Float_t kChargeMin     =    0;
  const Float_t kChargeMax     = 1024;
  const Int_t kNChannelBins  =   64;
  const Float_t kChannelMin    =    0;
  const Float_t kChannelMax    =   64;
  const Int_t kNPedestalBins =  200;
  const Float_t kPedestalMin   =    0;
  const Float_t kPedestalMax   =  200;
  const Int_t kNMIPBins      = 512;
  const Float_t kMIPMin        =   0;
  const Float_t kMIPMax        = 16;

  TH2I * h2i;
  TH2F * h2d;
  TH1I * h1i;
  TH1F * h1d;

  int iHisto =0;
  // Creation of Trigger Histogram
  h1d = new TH1F("H1D_Trigger_Type", "V0 Trigger Type;;Counts", 4,0 ,4) ;  
  Add2RawsList(h1d,kTriggers, !expert, image, saveCorr);   iHisto++;
 	h1d->SetFillColor(29);
	h1d->SetLineWidth(2);
	h1d->GetXaxis()->SetLabelSize(0.06);
	h1d->GetXaxis()->SetNdivisions(808,kFALSE);
	h1d->GetXaxis()->SetBinLabel(1, "V0-AND");
	h1d->GetXaxis()->SetBinLabel(2, "V0-OR");
   	h1d->GetXaxis()->SetBinLabel(3, "V0-BGA");
	h1d->GetXaxis()->SetBinLabel(4, "V0-BGC");

	h2d = new TH2F("H2D_Trigger_Type", "V0 Trigger Type;V0A;V0C", 4,0 ,4,4,0,4) ;  
	Add2RawsList(h2d,kTriggers2, !expert, image, saveCorr);   iHisto++;
 	h2d->SetOption("coltext");
	h2d->GetXaxis()->SetLabelSize(0.06);
	h2d->GetXaxis()->SetNdivisions(808,kFALSE);
	h2d->GetYaxis()->SetNdivisions(808,kFALSE);
	h2d->GetXaxis()->SetBinLabel(1, "Empty");
	h2d->GetXaxis()->SetBinLabel(2, "Fake");
   	h2d->GetXaxis()->SetBinLabel(3, "BB");
	h2d->GetXaxis()->SetBinLabel(4, "BG");
	h2d->GetYaxis()->SetBinLabel(1, "Empty");
	h2d->GetYaxis()->SetBinLabel(2, "Fake");
   	h2d->GetYaxis()->SetBinLabel(3, "BB");
	h2d->GetYaxis()->SetBinLabel(4, "BG");

  // Creation of Cell Multiplicity Histograms
  h1i = new TH1I("H1I_Multiplicity_V0A", "Cell Multiplicity in V0A;# of Cells;Entries", 35, 0, 35) ;  
  Add2RawsList(h1i,kMultiV0A, expert, image, saveCorr);   iHisto++;
  h1i = new TH1I("H1I_Multiplicity_V0C", "Cell Multiplicity in V0C;# of Cells;Entries", 35, 0, 35) ;  
  Add2RawsList(h1i,kMultiV0C, expert, image, saveCorr);   iHisto++;
 
  // Creation of Total Charge Histograms
  h1d = new TH1F("H1D_Charge_V0A", "Total Charge in V0A;Charge [ADC counts];Counts", 4000, 0, 30000) ;  
  Add2RawsList(h1d,kChargeV0A, expert, !image, saveCorr);   iHisto++;
  h1d = new TH1F("H1D_Charge_V0C", "Total Charge in V0C;Charge [ADC counts];Counts", 4000, 0, 50000) ;  
  Add2RawsList(h1d,kChargeV0C, expert, !image, saveCorr);   iHisto++;
  h1d = new TH1F("H1D_Charge_V0", "Total Charge in V0;Charge [ADC counts];Counts", 4000, 0, 80000) ;  
  Add2RawsList(h1d,kChargeV0, expert, !image, saveCorr);   iHisto++;
  
  // Creation of MIP Histograms
  h1d = new TH1F("H1D_MIP_V0A", "Total MIP in V0A;Multiplicity [MIP];Counts", kNMIPBins,kMIPMin ,32*kMIPMax) ;  
  Add2RawsList(h1d,kRawMIPV0A, expert, !image, saveCorr);   iHisto++;
  h1d = new TH1F("H1D_MIP_V0C", "Total MIP in V0C;Multiplicity [MIP];Counts", kNMIPBins,kMIPMin ,32*kMIPMax) ;  
  Add2RawsList(h1d,kRawMIPV0C, expert, !image, saveCorr);   iHisto++;
  h1d = new TH1F("H1D_MIP_V0", "Total MIP in V0;Multiplicity [MIP];Counts", 2*kNMIPBins,kMIPMin ,64*kMIPMax) ;  
  Add2RawsList(h1d,kRawMIPV0, expert, !image, saveCorr);   iHisto++;
  h2d = new TH2F("H2D_MIP_Channel", "Nb of MIP per channel;Channel;# of Mips", kNChannelBins, kChannelMin, kChannelMax,kNMIPBins,kMIPMin ,kMIPMax) ;  
  Add2RawsList(h2d,kRawMIPChannel, expert, !image, !saveCorr);   iHisto++;
  
 

  // Creation of Charge EoI histogram 
  h2d = new TH2F("H2D_ChargeEoI", "Charge Event of Interest;Channel Number;Charge [ADC counts]"
		 ,kNChannelBins, kChannelMin, kChannelMax, kNChargeBins, kChargeMin, 2.*kChargeMax);
  Add2RawsList(h2d,kChargeEoI, !expert, image, !saveCorr); iHisto++;

  for(Int_t iInt=0;iInt<kNintegrator;iInt++){
    // Creation of Pedestal histograms 
    h2i = new TH2I(Form("H2I_Pedestal_Int%d",iInt), Form("Pedestal (Int%d);Channel;Pedestal [ADC counts]",iInt)
		   ,kNChannelBins, kChannelMin, kChannelMax,kNPedestalBins,kPedestalMin ,kPedestalMax );
    Add2RawsList(h2i,(iInt == 0 ? kPedestalInt0 : kPedestalInt1), expert, !image, !saveCorr); iHisto++;
	

    // Creation of Charge EoI histograms 
    h2i = new TH2I(Form("H2I_ChargeEoI_Int%d",iInt), Form("Charge EoI (Int%d);Channel;Charge [ADC counts]",iInt)
		   ,kNChannelBins, kChannelMin, kChannelMax, kNChargeBins, kChargeMin, kChargeMax);
    Add2RawsList(h2i,(iInt == 0 ? kChargeEoIInt0 : kChargeEoIInt1), expert, image, !saveCorr); iHisto++;
    
    h2i = new TH2I(Form("H2I_ChargeEoI_BB_Int%d",iInt), Form("Charge EoI w/ BB Flag (Int%d);Channel;Charge [ADC counts]",iInt)
		   ,kNChannelBins, kChannelMin, kChannelMax, kNChargeBins, kChargeMin, kChargeMax);
    Add2RawsList(h2i,(iInt == 0 ? kChargeEoIBBInt0 : kChargeEoIBBInt1), expert, !image, !saveCorr); iHisto++;
    
    h2i = new TH2I(Form("H2I_ChargeEoI_BG_Int%d",iInt), Form("Charge EoI w/ BG Flag (Int%d);Channel;Charge [ADC counts]",iInt)
		   ,kNChannelBins, kChannelMin, kChannelMax, kNChargeBins, kChargeMin, kChargeMax);
    Add2RawsList(h2i,(iInt == 0 ?  kChargeEoIBGInt0: kChargeEoIBGInt1), expert, !image, !saveCorr); iHisto++;

    // Creation of Charge versus LHC Clock histograms 
    h2d = new TH2F(Form("H2D_ChargeVsClock_Int%d",iInt), Form("Charge Versus LHC-Clock (Int%d);Channel;LHCClock;Charge [ADC counts]",iInt)
		   ,kNChannelBins, kChannelMin, kChannelMax,21, -10.5, 10.5 );
    Add2RawsList(h2d,(iInt == 0 ? kChargeVsClockInt0 : kChargeVsClockInt1 ), expert, !image, !saveCorr); iHisto++;
	
    // Creation of Minimum Bias Charge histograms 
    for(Int_t iBB=0;iBB<2;iBB++){
      for(Int_t iBG=0;iBG<2;iBG++){
	h2i = new TH2I(Form("H2I_ChargeMB_BB%d_BG%d_Int%d",iBB,iBG,iInt), Form("MB Charge (BB=%d, BG=%d, Int=%d);Channel;Charge [ADC counts]",iBB,iBG,iInt)
		       ,kNChannelBins, kChannelMin, kChannelMax,kNChargeBins, kChargeMin, kChargeMax);
	int idx;
	if(iInt==0){
	  if(iBB==0){
	    if(iBG==0) idx = kChargeMBBB0BG0Int0;
	    else idx = kChargeMBBB0BG1Int0;
	  } else {
	    if(iBG==0) idx = kChargeMBBB1BG0Int0;
	    else idx = kChargeMBBB1BG1Int0;
	  }
	} else {
	  if(iBB==0){
	    if(iBG==0) idx = kChargeMBBB0BG0Int1;
	    else idx = kChargeMBBB0BG1Int1;
	  } else {
	    if(iBG==0) idx = kChargeMBBB1BG0Int1;
	    else idx = kChargeMBBB1BG1Int1;
	  }
	}
	Add2RawsList(h2i,idx, expert, !image, !saveCorr); iHisto++;
      }
    }
	
  }
 
  // Creation of Time histograms 
  h2i = new TH2I("H2I_Width", "HPTDC Width;Channel;Width [ns]",kNChannelBins, kChannelMin, kChannelMax, kNTdcWidthBins, kTdcWidthMin, kTdcWidthMax);
  Add2RawsList(h2i,kWidth, expert, !image, !saveCorr); iHisto++;

  h2i = new TH2I("H2I_Width_BB", "HPTDC Width w/ BB Flag condition;Channel;Width [ns]",kNChannelBins, kChannelMin, kChannelMax, kNTdcWidthBins, kTdcWidthMin, kTdcWidthMax);
  Add2RawsList(h2i,kWidthBB, expert, !image, !saveCorr); iHisto++;

  h2i = new TH2I("H2I_Width_BG", "HPTDC Width w/ BG Flag condition;Channel;Width [ns]",kNChannelBins, kChannelMin, kChannelMax, kNTdcWidthBins, kTdcWidthMin, kTdcWidthMax);
  Add2RawsList(h2i,kWidthBG, expert, !image, !saveCorr); iHisto++;

  h2i = new TH2I("H2I_HPTDCTime", "HPTDC Time;Channel;Leading Time [ns]",kNChannelBins, kChannelMin, kChannelMax, kNTdcTimeBins, kTdcTimeMin, kTdcTimeMax);
  Add2RawsList(h2i,kHPTDCTime, expert, image, !saveCorr); iHisto++;

  h2i = new TH2I("H2I_HPTDCTime_BB", "HPTDC Time w/ BB Flag condition;Channel;Leading Time [ns]",kNChannelBins, kChannelMin, kChannelMax, kNTdcTimeBins, kTdcTimeMin, kTdcTimeMax);
  Add2RawsList(h2i,kHPTDCTimeBB, !expert, image, !saveCorr); iHisto++;

  h2i = new TH2I("H2I_HPTDCTime_BG", "HPTDC Time w/ BG Flag condition;Channel;Leading Time [ns]",kNChannelBins, kChannelMin, kChannelMax, kNTdcTimeBins, kTdcTimeMin, kTdcTimeMax);
  Add2RawsList(h2i,kHPTDCTimeBG, !expert, image, !saveCorr); iHisto++;
	
  h1d = new TH1F("H1D_V0A_Time", "V0A Time;Time [ns];Counts",kNTdcTimeBins, kTdcTimeMin, kTdcTimeMax);
  Add2RawsList(h1d,kV0ATime, expert, !image, saveCorr); iHisto++;
	
  h1d = new TH1F("H1D_V0C_Time", "V0C Time;Time [ns];Counts",kNTdcTimeBins, kTdcTimeMin, kTdcTimeMax);
  Add2RawsList(h1d,kV0CTime, expert, !image, saveCorr); iHisto++;
	
  h1d = new TH1F("H1D_Diff_Time","Diff V0A-V0C Time;Time [ns];Counts",kNTdcTimeBins, -50., 50.);
  Add2RawsList(h1d,kDiffTime, expert, image, saveCorr); iHisto++;

    h2d = new TH2F("H2D_TimeV0A_V0C", "Mean Time in V0C versus V0A;Time V0A [ns];Time V0C [ns]", 
  		kNTdcTimeBins/8, kTdcTimeMin,kTdcTimeMax,kNTdcTimeBins/8, kTdcTimeMin,kTdcTimeMax) ;  
    Add2RawsList(h2d,kTimeV0AV0C, !expert, image, !saveCorr);   iHisto++;
	
  // Creation of Flag versus LHC Clock histograms 

  h1d = new TH1F("H1D_BBFlagPerChannel", "BB-Flags Versus Channel;Channel;BB Flags Count",kNChannelBins, kChannelMin, kChannelMax );
  h1d->SetMinimum(0);
  Add2RawsList(h1d,kBBFlagsPerChannel, !expert, image, !saveCorr); iHisto++;

  h2d = new TH2F("H2D_BBFlagVsClock", "BB-Flags Versus LHC-Clock;Channel;LHC Clocks",kNChannelBins, kChannelMin, kChannelMax,21, -10.5, 10.5 );
  Add2RawsList(h2d,kBBFlagVsClock, expert, !image, !saveCorr); iHisto++;
	
  h2d = new TH2F("H2D_BGFlagVsClock", "BG-Flags Versus LHC-Clock;Channel;LHC Clocks",kNChannelBins, kChannelMin, kChannelMax,21, -10.5, 10.5 );
  Add2RawsList(h2d,kBGFlagVsClock, expert, !image, !saveCorr); iHisto++;
  // 
  // Creation of histograms with the charge sums used inthe centrality triggers
  h2d = new TH2F("H2D_CentrChargeV0A_V0C","Trigger charge sums V0C vs V0A; V0A Charge Sum [ADC counts]; V0C Charge Sum [ADC counts];",
		 300,0,15000,500,0,25000);
  Add2RawsList(h2d,kCentrChargeV0AV0C, !expert, image, saveCorr); iHisto++;

  AliDebug(AliQAv1::GetQADebugLevel(), Form("%d Histograms has been added to the Raws List",iHisto));
  //
  ClonePerTrigClass(AliQAv1::kRAWS); // this should be the last line
}

//____________________________________________________________________________ 
void AliVZEROQADataMakerRec::InitDigits()
{
  // create Digits histograms in Digits subdir
  const Bool_t expert   = kTRUE ; 
  const Bool_t image    = kTRUE ; 
  
  TH1I *fhDigTDC[64]; 
  TH1I *fhDigADC[64]; 
  
  // create Digits histograms in Digits subdir
  TH1I * h0 = new TH1I("hDigitMultiplicity", "Digits multiplicity distribution in VZERO;# of Digits;Entries", 100, 0, 99) ; 
  h0->Sumw2() ;
  Add2DigitsList(h0, 0, !expert, image) ;
  
  for (Int_t i=0; i<64; i++)
    {
      fhDigTDC[i] = new TH1I(Form("hDigitTDC%d", i),Form("Digit TDC in cell %d; TDC value;Entries",i),300,0.,149.);
    
      fhDigADC[i]= new TH1I(Form("hDigitADC%d",i),Form("Digit ADC in cell %d;ADC value;Entries",i),1024,0.,1023.);
    
      Add2DigitsList(fhDigTDC[i],i+1, !expert, image);
      Add2DigitsList(fhDigADC[i],i+1+64, !expert, image);  
    }  
  //
  ClonePerTrigClass(AliQAv1::kDIGITS); // this should be the last line
}

//____________________________________________________________________________
void AliVZEROQADataMakerRec::MakeDigits()
{
  // makes data from Digits

  FillDigitsData(0,fDigitsArray->GetEntriesFast()) ; 
  TIter next(fDigitsArray) ; 
  AliVZEROdigit *aVZERODigit ; 
  while ( (aVZERODigit = dynamic_cast<AliVZEROdigit *>(next())) ) {
    Int_t   aPMNumber  = aVZERODigit->PMNumber();         
    FillDigitsData(aPMNumber +1,    aVZERODigit->Time()) ;    // in 100 of picoseconds
    FillDigitsData(aPMNumber +1+64, aVZERODigit->ADC()) ;
  }  
}


//____________________________________________________________________________
void AliVZEROQADataMakerRec::MakeDigits(TTree *digitTree)
{
  // makes data from Digit Tree
	
  if ( fDigitsArray ) 
    fDigitsArray->Clear() ; 
  else 
    fDigitsArray = new TClonesArray("AliVZEROdigit", 1000) ; 
  
  TBranch * branch = digitTree->GetBranch("VZERODigit") ;
  if ( ! branch ) {
    AliWarning("VZERO branch in Digit Tree not found") ; 
  } else {
    branch->SetAddress(&fDigitsArray) ;
    branch->GetEntry(0) ; 
    MakeDigits() ; 
  }  
  //  
  IncEvCountCycleDigits();
  IncEvCountTotalDigits();
  //
}


//____________________________________________________________________________
void AliVZEROQADataMakerRec::MakeESDs(AliESDEvent * esd)
{
  // Creates QA data from ESDs
  
  UInt_t eventType = esd->GetEventType();

  switch (eventType){
  case PHYSICS_EVENT:
    AliESDVZERO *esdVZERO=esd->GetVZEROData();
   
    if (!esdVZERO) break;
		  
    FillESDsData(kCellMultiV0A,esdVZERO->GetNbPMV0A());
    FillESDsData(kCellMultiV0C,esdVZERO->GetNbPMV0C());  
    FillESDsData(kMIPMultiV0A,esdVZERO->GetMTotV0A());
    FillESDsData(kMIPMultiV0C,esdVZERO->GetMTotV0C());  
    	
    for(Int_t i=0;i<64;i++) {
      FillESDsData(kMIPMultiChannel,(Float_t) i,(Float_t) esdVZERO->GetMultiplicity(i));
      FillESDsData(kChargeChannel,(Float_t) i,(Float_t) esdVZERO->GetAdc(i));
      if (i < 32) {
	if(esdVZERO->BBTriggerV0C(i)) FillESDsData(kBBFlag,(Float_t) i);
	if(esdVZERO->BGTriggerV0C(i)) FillESDsData(kBGFlag,(Float_t) i);
      }
      else {
	if(esdVZERO->BBTriggerV0A(i-32)) FillESDsData(kBBFlag,(Float_t) i);  
	if(esdVZERO->BGTriggerV0A(i-32)) FillESDsData(kBGFlag,(Float_t) i);
      }		  	
      Float_t time = (Float_t) esdVZERO->GetTime(i); //Convert in ns:  1 TDC channel = 100ps 
      FillESDsData(kTimeChannel,(Float_t) i,time);
    }
				
    Float_t timeV0A = esdVZERO->GetV0ATime();
    Float_t timeV0C = esdVZERO->GetV0CTime();
    Float_t diffTime;

    if(timeV0A<-1024.+1.e-6 || timeV0C<-1024.+1.e-6) diffTime = -1024.;
    else diffTime = timeV0A - timeV0C;

    FillESDsData(kESDV0ATime,timeV0A);
    FillESDsData(kESDV0CTime,timeV0C);
    FillESDsData(kESDDiffTime,diffTime);
		
    break;
  }  
  //
  IncEvCountCycleESDs();
  IncEvCountTotalESDs();  
  //
}

//____________________________________________________________________________
void AliVZEROQADataMakerRec::MakeRaws(AliRawReader* rawReader)
{
  // Fills histograms with Raws, computes average ADC values dynamically (pedestal subtracted)
                  
					  
  // Check id histograms already created for this Event Specie
  if ( ! GetRawsData(kPedestalInt0) )
    InitRaws() ;

  rawReader->Reset() ; 
  AliVZERORawStream* rawStream  = new AliVZERORawStream(rawReader); 
  if(!(rawStream->Next())) return;  
 
  eventTypeType eventType = rawReader->GetType();

  Int_t    mulV0A = 0 ; 
  Int_t    mulV0C = 0 ; 
  Double_t timeV0A =0., timeV0C = 0.;
  Double_t weightV0A =0., weightV0C = 0.;
  UInt_t   itimeV0A=0, itimeV0C=0;
  Double_t chargeV0A=0., chargeV0C=0.;
  Double_t mipV0A=0., mipV0C=0.;

  Double_t diffTime=-100000.;

  
  switch (eventType){
  case PHYSICS_EVENT:
  
    //    fNTotEvents++; // Use framework counters instead

    Int_t  iFlag=0;
    Int_t  pedestal;
    Int_t  integrator;
    Bool_t flagBB[64];	 
    Bool_t flagBG[64];	 
    Int_t  mbCharge;
    Float_t charge;
    Int_t  offlineCh;
    Float_t adc[64], time[64], width[64], timeCorr[64]; 

    for(Int_t iChannel=0; iChannel<64; iChannel++) { // BEGIN : Loop over channels
		   
      offlineCh = rawStream->GetOfflineChannel(iChannel);
		   
      // Fill Pedestal histograms
	   
      for(Int_t j=15; j<21; j++) {
	if((rawStream->GetBGFlag(iChannel,j) || rawStream->GetBBFlag(iChannel,j))) iFlag++;
      }

      if(iFlag == 0){ //No Flag found
	for(Int_t j=15; j<21; j++){
	  pedestal= (Int_t) rawStream->GetPedestal(iChannel, j);
	  integrator = rawStream->GetIntegratorFlag(iChannel, j);

	  FillRawsData((integrator == 0 ? kPedestalInt0 : kPedestalInt1),offlineCh,pedestal);
	}
      }

      // Fill Charge EoI histograms
	   
      adc[offlineCh]    = 0.0;

      // Search for the maximum charge in the train of 21 LHC clocks 
      // regardless of the integrator which has been operated:
      Float_t maxadc = 0;
      Int_t imax = -1;
      Float_t adcPedSub[21];
      for(Int_t iClock=0; iClock<21; iClock++){
	Bool_t iIntegrator = rawStream->GetIntegratorFlag(iChannel,iClock);
	Int_t k = offlineCh+64*iIntegrator;

	//printf(Form("clock = %d adc = %f ped %f\n",iClock,rawStream->GetPedestal(iChannel,iClock),fPedestal[k]));

	adcPedSub[iClock] = rawStream->GetPedestal(iChannel,iClock) - fCalibData->GetPedestal(k);
	//				if(adcPedSub[iClock] <= GetRecoParam()->GetNSigmaPed()*fCalibData->GetSigma(k)) {
	if(adcPedSub[iClock] <= 2.*fCalibData->GetSigma(k)) {
	  adcPedSub[iClock] = 0;
	  continue;
	}
	//		   		if(iClock < GetRecoParam()->GetStartClock() || iClock > GetRecoParam()->GetEndClock()) continue;
	if(iClock < 8 || iClock > 12) continue;
	if(adcPedSub[iClock] > maxadc) {
	  maxadc = adcPedSub[iClock];
	  imax   = iClock;
	}
      }
      //printf(Form("Channel %d (online), %d (offline)\n",iChannel,j)); 
      if (imax != -1) {
	//		   		Int_t start = imax - GetRecoParam()->GetNPreClocks();
	Int_t start = imax - 2;
	if (start < 0) start = 0;
	//		   		Int_t end = imax + GetRecoParam()->GetNPostClocks();
	Int_t end = imax + 1;
	if (end > 20) end = 20;
	for(Int_t iClock = start; iClock <= end; iClock++) {
	  adc[offlineCh] += adcPedSub[iClock];
	}
      }
	
		
      Int_t iClock  = imax;
      charge = rawStream->GetPedestal(iChannel,iClock); // Charge at the maximum 

      integrator    = rawStream->GetIntegratorFlag(iChannel,iClock);
      flagBB[offlineCh]	 = rawStream->GetBBFlag(iChannel, iClock);
      flagBG[offlineCh]	 = rawStream->GetBGFlag(iChannel,iClock );
      Int_t board = AliVZEROCalibData::GetBoardNumber(offlineCh);
      time[offlineCh] = rawStream->GetTime(iChannel)*fCalibData->GetTimeResolution(board);
      width[offlineCh] = rawStream->GetWidth(iChannel)*fCalibData->GetWidthResolution(board);

      if (time[offlineCh] >= 1e-6) FillRawsData(kChargeEoI,offlineCh,adc[offlineCh]);

      FillRawsData((integrator == 0 ? kChargeEoIInt0 : kChargeEoIInt1),offlineCh,charge);
      if(flagBB[offlineCh]) FillRawsData((integrator == 0 ? kChargeEoIBBInt0 : kChargeEoIBBInt1),offlineCh,charge);
      if(flagBG[offlineCh]) FillRawsData((integrator == 0 ? kChargeEoIBGInt0 : kChargeEoIBGInt1),offlineCh,charge);

      Float_t sigma = fCalibData->GetSigma(offlineCh+64*integrator);

		   
      // Calculation of the number of MIP
      Double_t mipEoI = adc[offlineCh] * fCalibData->GetMIPperADC(offlineCh);

      if((adc[offlineCh] > 2.*sigma) && !(time[offlineCh] <1.e-6)){ 
	FillRawsData(kRawMIPChannel,offlineCh,mipEoI);
	if(offlineCh<32) {
	  mulV0C++;
	  chargeV0C += adc[offlineCh];
	  mipV0C += mipEoI;
	} else {
	  mulV0A++;
	  chargeV0A += adc[offlineCh];
	  mipV0A += mipEoI;
	}
      }

      // Fill Charge Minimum Bias Histograms
		   
      int idx;
      for(Int_t iBunch=0; iBunch<10; iBunch++){
	integrator = rawStream->GetIntMBFlag(iChannel, iBunch);
	bool bbFlag     = rawStream->GetBBMBFlag(iChannel, iBunch);
	bool bgFlag     = rawStream->GetBGMBFlag(iChannel, iBunch);
	mbCharge   = rawStream->GetChargeMB(iChannel, iBunch);

	if(integrator==0){
	  if(bbFlag==0){
	    if(bgFlag==0) idx = kChargeMBBB0BG0Int0;
	    else idx = kChargeMBBB0BG1Int0;
	  } else {
	    if(bgFlag==0) idx = kChargeMBBB1BG0Int0;
	    else idx = kChargeMBBB1BG1Int0;
	  }
	} else {
	  if(bbFlag==0){
	    if(bgFlag==0) idx = kChargeMBBB0BG0Int1;
	    else idx = kChargeMBBB0BG1Int1;
	  } else {
	    if(bgFlag==0) idx = kChargeMBBB1BG0Int1;
	    else idx = kChargeMBBB1BG1Int1;
	  }
	}
	FillRawsData(idx,offlineCh,mbCharge);
      }   

      // Fill HPTDC Time Histograms
      timeCorr[offlineCh] = CorrectLeadingTime(offlineCh,time[offlineCh],adc[offlineCh]);

      const Float_t p1 = 2.50; // photostatistics term in the time resolution
      const Float_t p2 = 3.00; // slewing related term in the time resolution
      if(timeCorr[offlineCh]>-1024 + 1.e-6){
	Float_t nphe = adc[offlineCh]*kChargePerADC/(fCalibData->GetGain(offlineCh)*TMath::Qe());
	Float_t timeErr = 0;
	if (nphe>1.e-6) timeErr = TMath::Sqrt(kIntTimeRes*kIntTimeRes+
					      p1*p1/nphe+
					      p2*p2*(fTimeSlewing->GetParameter(0)*fTimeSlewing->GetParameter(1))*(fTimeSlewing->GetParameter(0)*fTimeSlewing->GetParameter(1))*
					      TMath::Power(adc[offlineCh]/fCalibData->GetCalibDiscriThr(offlineCh,kTRUE),2.*(fTimeSlewing->GetParameter(1)-1.))/
					      (fCalibData->GetCalibDiscriThr(offlineCh,kTRUE)*fCalibData->GetCalibDiscriThr(offlineCh,kTRUE)));

	if (timeErr>1.e-6) {
	  if (offlineCh<32) {
	    itimeV0C++;
	    timeV0C += timeCorr[offlineCh]/(timeErr*timeErr);
	    weightV0C += 1./(timeErr*timeErr);
	  }else{
	    itimeV0A++;
	    timeV0A += timeCorr[offlineCh]/(timeErr*timeErr);
	    weightV0A += 1./(timeErr*timeErr);
	  }
	}
      }
      FillRawsData(kHPTDCTime,offlineCh,timeCorr[offlineCh]);
      FillRawsData(kWidth,offlineCh,width[offlineCh]);
      if(flagBB[offlineCh]) {
	FillRawsData(kHPTDCTimeBB,offlineCh,timeCorr[offlineCh]);
	FillRawsData(kWidthBB,offlineCh,width[offlineCh]);
      }
      if(flagBG[offlineCh]) {
	FillRawsData(kHPTDCTimeBG,offlineCh,timeCorr[offlineCh]);
	FillRawsData(kWidthBG,offlineCh,width[offlineCh]);
      }

      // Fill Flag and Charge Versus LHC-Clock histograms
	   
      for(Int_t iEvent=0; iEvent<21; iEvent++){
	charge = rawStream->GetPedestal(iChannel,iEvent);
	integrator = rawStream->GetIntegratorFlag(iChannel,iEvent);
	bool bbFlag	  = rawStream->GetBBFlag(iChannel, iEvent);
	bool bgFlag	  = rawStream->GetBGFlag(iChannel,iEvent );

	FillRawsData((integrator == 0 ? kChargeVsClockInt0 : kChargeVsClockInt1 ), offlineCh,(float)iEvent-10,(float)charge);
	FillRawsData(kBBFlagVsClock, offlineCh,(float)iEvent-10,(float)bbFlag);
	FillRawsData(kBGFlagVsClock, offlineCh,(float)iEvent-10,(float)bgFlag);
	if(iEvent==10) FillRawsData(kBBFlagsPerChannel, offlineCh,(float)bbFlag);
      }

    }// END of Loop over channels

    if(weightV0A>1.e-6) timeV0A /= weightV0A; 
    else timeV0A = -1024.;
    if(weightV0C>1.e-6) timeV0C /= weightV0C;
    else timeV0C = -1024.;
    if(timeV0A<-1024.+1.e-6 || timeV0C<-1024.+1.e-6) diffTime = -1024.;
    else diffTime = timeV0A - timeV0C;
    
    Bool_t v0ABB = kFALSE;
    Bool_t v0CBB = kFALSE;
    Bool_t v0ABG = kFALSE;
    Bool_t v0CBG = kFALSE;
    Bool_t v0AFake = kFALSE;
    Bool_t v0CFake = kFALSE;
    Bool_t v0AEmpty = kFALSE;
    Bool_t v0CEmpty = kFALSE;
    Int_t v0ATrigger=0;
    Int_t v0CTrigger=0; 
    
    // Change default BB and BG windows according to the Trigger Count Offset setting with respect to the default one which is 3247.
    Float_t winOffset = (fCalibData->GetTriggerCountOffset(0) - 3247)*25.;
    
    if((timeV0A>kMinBBA-winOffset) && (timeV0A<kMaxBBA-winOffset)) {
      v0ABB = kTRUE;
      v0ATrigger=2;
    } else if((timeV0A>kMinBGA-winOffset) && (timeV0A<kMaxBGA-winOffset)) {
      v0ABG = kTRUE;
      v0ATrigger=3;
    } else if(timeV0A>-1024.+1.e-6) {
      v0AFake = kTRUE;
      v0ATrigger=1;
    } else {
      v0AEmpty = kTRUE;
      v0ATrigger=0;
    }
    
    if((timeV0C>kMinBBC-winOffset) && (timeV0C<kMaxBBC-winOffset)) {
      v0CBB = kTRUE;
      v0CTrigger=2;
    } else if((timeV0C>kMinBGC-winOffset) && (timeV0C<kMaxBGC-winOffset)) {
      v0CBG = kTRUE;
      v0CTrigger=3;
    } else if(timeV0C>-1024.+1.e-6) {
      v0CFake = kTRUE;
      v0CTrigger=1;
    } else {
      v0CEmpty = kTRUE;
      v0CTrigger=0;
    }

    // Fill Trigger output histogram
    if(v0ABB && v0CBB) FillRawsData(kTriggers,0);
    if((v0ABB || v0CBB) && !(v0ABG || v0CBG)) FillRawsData(kTriggers,1);
    if(v0ABG && v0CBB) FillRawsData(kTriggers,2);
    if(v0ABB && v0CBG) FillRawsData(kTriggers,3);
		
    FillRawsData(kTriggers2,v0ATrigger,v0CTrigger);

    FillRawsData(kV0ATime,timeV0A);
    FillRawsData(kV0CTime,timeV0C);
    FillRawsData(kDiffTime,diffTime);
    FillRawsData(kTimeV0AV0C,timeV0A,timeV0C);

    FillRawsData(kMultiV0A,mulV0A);
    FillRawsData(kMultiV0C,mulV0C);

    FillRawsData(kChargeV0A,chargeV0A);
    FillRawsData(kChargeV0C,chargeV0C);
    FillRawsData(kChargeV0,chargeV0A + chargeV0C);

    FillRawsData(kRawMIPV0A,mipV0A);
    FillRawsData(kRawMIPV0C,mipV0C);
    FillRawsData(kRawMIPV0,mipV0A + mipV0C);

    // Fill the histograms with charge sums used in the centrality triggers
    UShort_t chargeA = 0;
    UShort_t chargeC = 0;
    rawStream->CalculateChargeForCentrTriggers(fTriggerData,chargeA,chargeC);
    FillRawsData(kCentrChargeV0AV0C,(Float_t)chargeA,(Float_t)chargeC);
	    
    break;
  } // END of SWITCH : EVENT TYPE 
	
  //  fEvent++;  // RS: Use framework counters instead
  TParameter<double> * p = dynamic_cast<TParameter<double>*>(GetParameterList()->FindObject(Form("%s_%s_%s", GetName(), AliQAv1::GetTaskName(AliQAv1::kRAWS).Data(), GetRawsData(kMultiV0A)->GetName()))) ; 
  if (p) p->SetVal((double)mulV0A) ; 

  p = dynamic_cast<TParameter<double>*>(GetParameterList()->FindObject(Form("%s_%s_%s", GetName(), AliQAv1::GetTaskName(AliQAv1::kRAWS).Data(), GetRawsData(kMultiV0C)->GetName()))) ; 
  if (p) p->SetVal((double)mulV0C) ;                     

  p = dynamic_cast<TParameter<double>*>(GetParameterList()->FindObject(Form("%s_%s_%s", GetName(), AliQAv1::GetTaskName(AliQAv1::kRAWS).Data(), GetRawsData(kChargeV0A)->GetName()))) ; 
  if (p) p->SetVal((double)chargeV0A) ; 

  p = dynamic_cast<TParameter<double>*>(GetParameterList()->FindObject(Form("%s_%s_%s", GetName(), AliQAv1::GetTaskName(AliQAv1::kRAWS).Data(), GetRawsData(kChargeV0C)->GetName()))) ; 
  if (p) p->SetVal((double)chargeV0C) ;                     

  p = dynamic_cast<TParameter<double>*>(GetParameterList()->FindObject(Form("%s_%s_%s", GetName(), AliQAv1::GetTaskName(AliQAv1::kRAWS).Data(), GetRawsData(kChargeV0)->GetName()))) ; 
  if (p) p->SetVal((double)(chargeV0A + chargeV0C)) ;                     
	
  p = dynamic_cast<TParameter<double>*>(GetParameterList()->FindObject(Form("%s_%s_%s", GetName(), AliQAv1::GetTaskName(AliQAv1::kRAWS).Data(), GetRawsData(kRawMIPV0A)->GetName()))) ; 
  if (p) p->SetVal((double)mipV0A) ; 
	
  p = dynamic_cast<TParameter<double>*>(GetParameterList()->FindObject(Form("%s_%s_%s", GetName(), AliQAv1::GetTaskName(AliQAv1::kRAWS).Data(), GetRawsData(kRawMIPV0C)->GetName()))) ; 
  if (p) p->SetVal((double)mipV0C) ;                     
	
  p = dynamic_cast<TParameter<double>*>(GetParameterList()->FindObject(Form("%s_%s_%s", GetName(), AliQAv1::GetTaskName(AliQAv1::kRAWS).Data(), GetRawsData(kRawMIPV0)->GetName()))) ; 
  if (p) p->SetVal((double)(mipV0A + mipV0C)) ;                     
	
  p = dynamic_cast<TParameter<double>*>(GetParameterList()->FindObject(Form("%s_%s_%s", GetName(), AliQAv1::GetTaskName(AliQAv1::kRAWS).Data(), GetRawsData(kV0ATime)->GetName()))) ; 
  if (p) p->SetVal((double)timeV0A) ; 
	
  p = dynamic_cast<TParameter<double>*>(GetParameterList()->FindObject(Form("%s_%s_%s", GetName(), AliQAv1::GetTaskName(AliQAv1::kRAWS).Data(), GetRawsData(kV0CTime)->GetName()))) ; 
  if (p) p->SetVal((double)timeV0C) ;                     
	
  p = dynamic_cast<TParameter<double>*>(GetParameterList()->FindObject(Form("%s_%s_%s", GetName(), AliQAv1::GetTaskName(AliQAv1::kRAWS).Data(), GetRawsData(kDiffTime)->GetName()))) ; 
  if (p) p->SetVal((double)diffTime) ;                     
	
  delete rawStream; rawStream = 0x0;      
  //
  IncEvCountCycleRaws();
  IncEvCountTotalRaws();
  //
}

//____________________________________________________________________________ 
void AliVZEROQADataMakerRec::StartOfDetectorCycle()
{
  // Detector specific actions at start of cycle
  
  // Reset of the histogram used - to have the trend versus time -
 
  fCalibData = GetCalibData();
 
  AliCDBEntry *entry = AliCDBManager::Instance()->Get("GRP/CTP/CTPtiming");
  if (!entry) AliFatal("CTP timing parameters are not found in OCDB !");
  AliCTPTimeParams *ctpParams = (AliCTPTimeParams*)entry->GetObject();
  Float_t l1Delay = (Float_t)ctpParams->GetDelayL1L0()*25.0;

  AliCDBEntry *entry1 = AliCDBManager::Instance()->Get("GRP/CTP/TimeAlign");
  if (!entry1) AliFatal("CTP time-alignment is not found in OCDB !");
  AliCTPTimeParams *ctpTimeAlign = (AliCTPTimeParams*)entry1->GetObject();
  l1Delay += ((Float_t)ctpTimeAlign->GetDelayL1L0()*25.0);

  AliCDBEntry *entry2 = AliCDBManager::Instance()->Get("VZERO/Calib/TimeDelays");
  if (!entry2) AliFatal("VZERO time delays are not found in OCDB !");
  TH1F *delays = (TH1F*)entry2->GetObject();

  AliCDBEntry *entry3 = AliCDBManager::Instance()->Get("VZERO/Calib/TimeSlewing");
  if (!entry3) AliFatal("VZERO time slewing function is not found in OCDB !");
  fTimeSlewing = (TF1*)entry3->GetObject();

  AliCDBEntry *entry4 = AliCDBManager::Instance()->Get("VZERO/Trigger/Data");
  if (!entry4) AliFatal("VZERO trigger config data is not found in OCDB !");
  fTriggerData = (AliVZEROTriggerData*)entry4->GetObject();

  for(Int_t i = 0 ; i < 64; ++i) {
    //Int_t board = AliVZEROCalibData::GetBoardNumber(i);
    fTimeOffset[i] = (
		      //	((Float_t)fCalibData->GetTriggerCountOffset(board) -
		      //	(Float_t)fCalibData->GetRollOver(board))*25.0 +
		      //     fCalibData->GetTimeOffset(i) -
		      //     l1Delay+
		      delays->GetBinContent(i+1)//+
		      //      kV0Offset
		      );
    //		      AliInfo(Form(" fTimeOffset[%d] = %f  kV0offset %f",i,fTimeOffset[i],kV0Offset));
  }

 
 
  
 	
  TTimeStamp currentTime;
  fCycleStartTime = currentTime.GetSec();
 
  //  fNTotEvents = 0;
}


//-------------------------------------------------------------------------------------------------
Float_t AliVZEROQADataMakerRec::CorrectLeadingTime(Int_t i, Float_t time, Float_t adc) const
{
  // Correct the leading time
  // for slewing effect and
  // misalignment of the channels
  if (time < 1e-6) return -1024;

  // Channel alignment and general offset subtraction
  //  if (i < 32) time -= kV0CDelayCables;
  //  time -= fTimeOffset[i];
  //AliInfo(Form("time-offset %f", time));

  // In case of pathological signals
  if (adc < 1e-6) return time;

  // Slewing correction
  Float_t thr = fCalibData->GetCalibDiscriThr(i,kTRUE);
  //AliInfo(Form("adc %f thr %f dtime %f ", adc,thr,fTimeSlewing->Eval(adc/thr)));
  time -= fTimeSlewing->Eval(adc/thr);

  return time;
}

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