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.                  *
 **************************************************************************/
/*
Based on the QA code for PHOS written by Yves Schutz July 2007

Authors:  J.Klay (Cal Poly) May 2008
          S. Salur LBL April 2008
 
Created one histogram for QA shifter;-- Yaxian Mao: 11/2009
The idea:average counts for all the towers should be flat 
Change all existing histograms as experts

Change histograms for DQM shifter: --  Yaxian Mao 04/2010
Calcuate the amplitude ratio from current run and the LED reference, for QAChecker use
Also calculate the ratio of amplitude from LED Monitor system (current/Reference), to check LED system  
 
*/

// --- ROOT system ---
#include <TClonesArray.h>
#include <TFile.h> 
#include <TH1F.h> 
#include <TH1I.h> 
#include <TH2F.h> 
#include <TLine.h>
#include <TText.h>
#include <TProfile.h> 
#include <TProfile2D.h> 
#include <TStyle.h>
// --- Standard library ---


// --- AliRoot header files ---
#include "AliDAQ.h"
#include "AliESDCaloCluster.h"
#include "AliESDCaloCells.h"
#include "AliESDEvent.h"
#include "AliLog.h"
#include "AliEMCALQADataMakerRec.h"
#include "AliQAChecker.h"
#include "AliEMCALDigit.h" 
#include "AliEMCALRecPoint.h" 
#include "AliEMCALRawUtils.h"
#include "AliEMCALReconstructor.h"
#include "AliEMCALRecParam.h"
#include "AliRawReader.h"
#include "AliCaloRawStreamV3.h"
#include "AliEMCALGeoParams.h"
#include "AliRawEventHeaderBase.h"
#include "AliQAManager.h"
#include "AliCDBEntry.h"

#include "AliCaloBunchInfo.h"
#include "AliCaloFitResults.h"
#include "AliCaloRawAnalyzer.h"
#include "AliCaloRawAnalyzerFactory.h"

#include "AliEMCALGeometry.h"
#include "AliEMCALTriggerSTURawStream.h"


using namespace std;

ClassImp(AliEMCALQADataMakerRec)
           
//____________________________________________________________________________ 
AliEMCALQADataMakerRec::AliEMCALQADataMakerRec(Int_t fitAlgo) :
  AliQADataMakerRec(AliQAv1::GetDetName(AliQAv1::kEMCAL), "EMCAL Quality Assurance Data Maker"),
  fFittingAlgorithm(0),
  fRawAnalyzer(0),
  fRawAnalyzerTRU(0),
  fGeom(0),
  fSuperModules(20), // number of SuperModules; updated to 20 for EMCal + DCal 
  fFirstPedestalSample(0),
  fLastPedestalSample(3),
  fFirstPedestalSampleTRU(0),
  fLastPedestalSampleTRU(3),
  fMinSignalLG(0),
  fMaxSignalLG(AliEMCALGeoParams::fgkSampleMax),
  fMinSignalHG(0),
  fMaxSignalHG(AliEMCALGeoParams::fgkSampleMax),
  fMinSignalTRU(0),
  fMaxSignalTRU(AliEMCALGeoParams::fgkSampleMax),
  fMinSignalLGLEDMon(0),
  fMaxSignalLGLEDMon(AliEMCALGeoParams::fgkSampleMax),
  fMinSignalHGLEDMon(0),
  fMaxSignalHGLEDMon(AliEMCALGeoParams::fgkSampleMax),
  fCalibRefHistoPro(NULL),
  fCalibRefHistoH2F(NULL),
  fLEDMonRefHistoPro(NULL),
  fHighEmcHistoH2F(NULL)
//  fTextSM(new TText*[fSuperModules]) ,
//  fLineCol(NULL),
//  fLineRow(NULL)

{
  // ctor
  SetFittingAlgorithm(fitAlgo);

  fGeom = new AliEMCALGeometry("EMCAL_COMPLETE12SMV1_DCAL_8SM", "EMCAL");
//  for (Int_t sm = 0 ; sm < fSuperModules ; sm++){
//    fTextSM[sm] = NULL ;
//  }
}

//____________________________________________________________________________ 
AliEMCALQADataMakerRec::AliEMCALQADataMakerRec(const AliEMCALQADataMakerRec& qadm) :
  AliQADataMakerRec(), 
  fFittingAlgorithm(0),
  fRawAnalyzer(0),
  fRawAnalyzerTRU(0),
	fGeom(0),
  fSuperModules(qadm.GetSuperModules()), 
  fFirstPedestalSample(qadm.GetFirstPedestalSample()), 
  fLastPedestalSample(qadm.GetLastPedestalSample()),  
  fFirstPedestalSampleTRU(qadm.GetFirstPedestalSampleTRU()), 
  fLastPedestalSampleTRU(qadm.GetLastPedestalSampleTRU()),  
  fMinSignalLG(qadm.GetMinSignalLG()),
  fMaxSignalLG(qadm.GetMaxSignalLG()),
  fMinSignalHG(qadm.GetMinSignalHG()),
  fMaxSignalHG(qadm.GetMaxSignalHG()),
  fMinSignalTRU(qadm.GetMinSignalTRU()),
  fMaxSignalTRU(qadm.GetMaxSignalTRU()),
  fMinSignalLGLEDMon(qadm.GetMinSignalLGLEDMon()),
  fMaxSignalLGLEDMon(qadm.GetMaxSignalLGLEDMon()),
  fMinSignalHGLEDMon(qadm.GetMinSignalHGLEDMon()),
  fMaxSignalHGLEDMon(qadm.GetMaxSignalHGLEDMon()),
  fCalibRefHistoPro(NULL),
  fCalibRefHistoH2F(NULL),
  fLEDMonRefHistoPro(NULL),
  fHighEmcHistoH2F(NULL)
//  fTextSM(new TText*[fSuperModules]) ,
//  fLineCol(NULL),
//  fLineRow(NULL)
{
  //copy ctor 
  SetName((const char*)qadm.GetName()) ; 
  SetTitle((const char*)qadm.GetTitle()); 
  SetFittingAlgorithm(qadm.GetFittingAlgorithm());
  
//  for (Int_t sm = 0 ; sm < fSuperModules ; sm++){
//    fTextSM[sm] = qadm.fTextSM[sm] ;
//  }  
}

//__________________________________________________________________
AliEMCALQADataMakerRec& AliEMCALQADataMakerRec::operator = (const AliEMCALQADataMakerRec& qadm )
{
  // Equal operator.
  this->~AliEMCALQADataMakerRec();
  new(this) AliEMCALQADataMakerRec(qadm);
//  fLineCol = NULL;
//  fLineRow = NULL;
//  for (Int_t sm = 0 ; sm < fSuperModules ; sm++){
//    fTextSM[sm] = qadm.fTextSM[sm] ;
//  }    
  return *this;
}
 
//____________________________________________________________________________ 
void AliEMCALQADataMakerRec::EndOfDetectorCycle(AliQAv1::TASKINDEX_t task, TObjArray ** list)
{
  //Detector specific actions at end of cycle
	
//  if(fCycleCounter)
//	  GetRawsData(kNEventsPerTower)->Scale(1./fCycleCounter);

  // do the QA checking
  ResetEventTrigClasses(); // reset triggers list to select all histos
  AliQAChecker::Instance()->Run(AliQAv1::kEMCAL, task, list) ;  
}

//____________________________________________________________________________ 
void AliEMCALQADataMakerRec::GetCalibRefFromOCDB()
{
  //Get the reference histogram from OCDB
  TString sName1("hHighEmcalRawMaxMinusMin") ;
  TString sName2("hLowLEDMonEmcalRawMaxMinusMin") ;
  sName1.Prepend(Form("%s_", AliRecoParam::GetEventSpecieName(AliRecoParam::kCalib))) ; 
  sName2.Prepend(Form("%s_", AliRecoParam::GetEventSpecieName(AliRecoParam::kCalib))) ; 
  
  TString refStorage(AliQAv1::GetQARefStorage()) ;
  if (!refStorage.Contains(AliQAv1::GetLabLocalOCDB()) && !refStorage.Contains(AliQAv1::GetLabAliEnOCDB())) {
    AliFatal(Form("%s is not a valid location for reference data", refStorage.Data())) ; 
  } else {
    AliQAManager* manQA = AliQAManager::QAManager(AliQAv1::kRAWS) ;    
    AliQAv1::SetQARefDataDirName(AliRecoParam::kCalib) ;
    if ( ! manQA->GetLock() ) { 
      manQA->SetDefaultStorage(AliQAv1::GetQARefStorage()) ; 
      manQA->SetSpecificStorage("*", AliQAv1::GetQARefStorage()) ;
      manQA->SetRun(AliCDBManager::Instance()->GetRun()) ; 
      manQA->SetLock() ; 
    }
    char * detOCDBDir = Form("%s/%s/%s", GetName(), AliQAv1::GetRefOCDBDirName(), AliQAv1::GetRefDataDirName()) ; 
    AliCDBEntry * entry = manQA->Get(detOCDBDir, manQA->GetRun()) ;
    if (entry) {
      TList * listDetQAD =static_cast<TList *>(entry->GetObject()) ;
      if ( strcmp(listDetQAD->ClassName(), "TList") != 0 ) {
        AliError(Form("Expected a Tlist and found a %s for detector %s", listDetQAD->ClassName(), GetName())) ; 
        listDetQAD = NULL ; 
      }
      TObjArray * dirOCDB= NULL ; 
      if ( listDetQAD )
        dirOCDB = static_cast<TObjArray *>(listDetQAD->FindObject(Form("%s/%s", AliQAv1::GetTaskName(AliQAv1::kRAWS).Data(), AliRecoParam::GetEventSpecieName(AliRecoParam::kCalib)))) ;       
      if (dirOCDB){
        fCalibRefHistoPro = dynamic_cast<TProfile *>(dirOCDB->FindObject(sName1.Data())) ; 
        fLEDMonRefHistoPro = dynamic_cast<TProfile *>(dirOCDB->FindObject(sName2.Data())) ; 
      }
    }
  }
 
  if(fCalibRefHistoPro && fLEDMonRefHistoPro){
    
    //Defining histograms binning, each 2D histogram covers all SMs
    Int_t nSMSectors = fSuperModules / 2; // 2 SMs per sector
    Int_t nbinsZ = 2*AliEMCALGeoParams::fgkEMCALCols;
    Int_t nbinsPhi = nSMSectors * AliEMCALGeoParams::fgkEMCALRows;
    
    if(!fCalibRefHistoH2F)
      fCalibRefHistoH2F =  new TH2F("hCalibRefHisto", "hCalibRefHisto", nbinsZ, -0.5, nbinsZ - 0.5, nbinsPhi, -0.5, nbinsPhi -0.5);
    ConvertProfile2H(fCalibRefHistoPro,fCalibRefHistoH2F) ; 
  } else {
    AliFatal(Form("No reference object with name %s or %s found", sName1.Data(), sName2.Data())) ; 
  }
}
//____________________________________________________________________________ 
void AliEMCALQADataMakerRec::InitESDs()
{
  //Create histograms to controll ESD
  const Bool_t expert   = kTRUE ; 
  const Bool_t image    = kTRUE ; 
  
  TH1F * h1 = new TH1F("hESDCaloClusterE",  "ESDs CaloCluster energy in EMCAL;Energy [GeV];Counts",    200, 0., 100.) ; 
  h1->Sumw2() ;
  Add2ESDsList(h1, kESDCaloClusE, !expert, image)  ;                                                     

  TH1I * h2 = new TH1I("hESDCaloClusterM", "ESDs CaloCluster multiplicity in EMCAL;# of Clusters;Entries", 100, 0,  100) ; 
  h2->Sumw2() ;
  Add2ESDsList(h2, kESDCaloClusM, !expert, image)  ;

  TH1F * h3 = new TH1F("hESDCaloCellA",  "ESDs CaloCell amplitude in EMCAL;Energy [GeV];Counts",    500, 0., 50.) ; 
  h3->Sumw2() ;
  Add2ESDsList(h3, kESDCaloCellA, !expert, image)  ;  
 
  TH1I * h4 = new TH1I("hESDCaloCellM", "ESDs CaloCell multiplicity in EMCAL;# of Clusters;Entries", 200, 0,  1000) ; 
  h4->Sumw2() ;
  Add2ESDsList(h4, kESDCaloCellM, !expert, image) ;
  //
  ClonePerTrigClass(AliQAv1::kESDS); // this should be the last line	
}

//____________________________________________________________________________ 
void AliEMCALQADataMakerRec::InitDigits()
{
  // create Digits histograms in Digits subdir
  const Bool_t expert   = kTRUE ; 
  const Bool_t image    = kTRUE ; 
  
  TH1I * h0 = new TH1I("hEmcalDigits",    "Digits amplitude distribution in EMCAL;Amplitude [ADC counts];Counts",    500, 0, 500) ; 
  h0->Sumw2() ;
  Add2DigitsList(h0, 0, !expert, image) ;
  TH1I * h1 = new TH1I("hEmcalDigitsMul", "Digits multiplicity distribution in EMCAL;# of Digits;Entries", 200, 0, 2000) ; 
  h1->Sumw2() ;
  Add2DigitsList(h1, 1, !expert, image) ;
  //
  ClonePerTrigClass(AliQAv1::kDIGITS); // this should be the last line
}

//____________________________________________________________________________ 
void AliEMCALQADataMakerRec::InitRecPoints()
{
  // create Reconstructed PoInt_ts histograms in RecPoints subdir
  const Bool_t expert   = kTRUE ; 
  const Bool_t image    = kTRUE ; 
  
  TH1F* h0 = new TH1F("hEMCALRpE","EMCAL RecPoint energies;Energy [GeV];Counts",200, 0.,20.); //GeV
  h0->Sumw2();
  Add2RecPointsList(h0,kRecPE, !expert, image);

  TH1I* h1 = new TH1I("hEMCALRpM","EMCAL RecPoint multiplicities;# of Clusters;Entries",100,0,100);
  h1->Sumw2();
  Add2RecPointsList(h1,kRecPM, !expert, image);

  TH1I* h2 = new TH1I("hEMCALRpDigM","EMCAL RecPoint Digit Multiplicities;# of Digits;Entries",20,0,20);
  h2->Sumw2();
  Add2RecPointsList(h2,kRecPDigM, !expert, image);
  //
  ClonePerTrigClass(AliQAv1::kRECPOINTS); // this should be the last line
}

//____________________________________________________________________________ 
void AliEMCALQADataMakerRec::InitRaws()
{
  // create Raws histograms in Raws subdir
  const Bool_t expert   = kTRUE ; 
  const Bool_t saveCorr = kTRUE ; 
  const Bool_t image    = kTRUE ; 
  const Option_t *profileOption = "s";

  Int_t nTowersPerSM = AliEMCALGeoParams::fgkEMCALRows * AliEMCALGeoParams::fgkEMCALCols; // number of towers in a SuperModule; 24x48
  Int_t nTot = fSuperModules * nTowersPerSM; // max number of towers in all SuperModules
    
  //Defining histograms binning, each 2D histogram covers all SMs
  Int_t nSMSectors = fSuperModules / 2; // 2 SMs per sector
  Int_t nbinsZ = 2*AliEMCALGeoParams::fgkEMCALCols;
  Int_t nbinsPhi = nSMSectors * AliEMCALGeoParams::fgkEMCALRows;
	
  Int_t nTRUCols = 2*AliEMCALGeoParams::fgkEMCALTRUCols; //total TRU columns for 2D TRU histos
  Int_t nTRURows = nSMSectors*AliEMCALGeoParams::fgkEMCALTRUsPerSM*AliEMCALGeoParams::fgkEMCALTRURows; //total TRU rows for 2D TRU histos
   // counter info: number of channels per event (bins are SM index)
  TProfile * h0 = new TProfile("hLowEmcalSupermodules", "Low Gain EMC: # of towers vs SuperMod;SM Id;# of towers",
			       fSuperModules, -0.5, fSuperModules-0.5, profileOption) ;
  Add2RawsList(h0, kNsmodLG, expert, !image, !saveCorr) ;
  TProfile * h1 = new TProfile("hHighEmcalSupermodules", "High Gain EMC: # of towers vs SuperMod;SM Id;# of towers",  
			       fSuperModules, -0.5, fSuperModules-0.5, profileOption) ; 
  Add2RawsList(h1, kNsmodHG, expert, !image, !saveCorr) ;

  // where did max sample occur? (bins are towers)
  TProfile * h2 = new TProfile("hLowEmcalRawtime", "Low Gain EMC: Time at Max vs towerId;Tower Id;Time [ticks]", 
			       nTot, -0.5, nTot-0.5, profileOption) ;
  Add2RawsList(h2, kTimeLG, expert, !image, !saveCorr) ;
  TProfile * h3 = new TProfile("hHighEmcalRawtime", "High Gain EMC: Time at Max vs towerId;Tower Id;Time [ticks]", 
			       nTot, -0.5, nTot-0.5, profileOption) ;
  Add2RawsList(h3, kTimeHG, expert, !image, !saveCorr) ;

  // how much above pedestal was the max sample?  (bins are towers)
  TProfile * h4 = new TProfile("hLowEmcalRawMaxMinusMin", "Low Gain EMC: Max - Min vs towerId;Tower Id;Max-Min [ADC counts]", 
			       nTot, -0.5, nTot-0.5, profileOption) ;
  Add2RawsList(h4, kSigLG, expert, !image, !saveCorr) ;
  TProfile * h5 = new TProfile("hHighEmcalRawMaxMinusMin", "High Gain EMC: Max - Min vs towerId;Tower Id;Max-Min [ADC counts]",
			       nTot, -0.5, nTot-0.5, profileOption) ;
  Add2RawsList(h5, kSigHG, expert, !image, !saveCorr) ;

  // total counter: channels per event
  TH1I * h6 = new TH1I("hLowNtot", "Low Gain EMC: Total Number of found towers;# of Towers;Counts", 200, 0, nTot) ;
  h6->Sumw2() ;
  Add2RawsList(h6, kNtotLG, expert, !image, !saveCorr) ;
  TH1I * h7 = new TH1I("hHighNtot", "High Gain EMC: Total Number of found towers;# of Towers;Counts", 200,0, nTot) ;
  h7->Sumw2() ;
  Add2RawsList(h7, kNtotHG, expert, !image, !saveCorr) ;

  // pedestal (bins are towers)
  TProfile * h8 = new TProfile("hLowEmcalRawPed", "Low Gain EMC: Pedestal vs towerId;Tower Id;Pedestal [ADC counts]", 
			       nTot, -0.5, nTot-0.5, profileOption) ;
  Add2RawsList(h8, kPedLG, expert, !image, !saveCorr) ;
  TProfile * h9 = new TProfile("hHighEmcalRawPed", "High Gain EMC: Pedestal vs towerId;Tower Id;Pedestal [ADC counts]",
			       nTot, -0.5, nTot-0.5, profileOption) ;
  Add2RawsList(h9, kPedHG, expert, !image, !saveCorr) ;
	
 
  // now repeat the same for TRU and LEDMon data
  Int_t nTot2x2 = fSuperModules * AliEMCALGeoParams::fgkEMCALTRUsPerSM * AliEMCALGeoParams::fgkEMCAL2x2PerTRU; // max number of TRU channels for all SuperModules

  // counter info: number of channels per event (bins are SM index)
  TProfile * hT0 = new TProfile("hTRUEmcalSupermodules", "TRU EMC: # of TRU channels vs SuperMod;SM Id;# of TRU channels",
				fSuperModules, -0.5, fSuperModules-0.5, profileOption) ;
  Add2RawsList(hT0, kNsmodTRU, expert, !image, !saveCorr) ;

  // how much above pedestal was the max sample?  (bins are TRU channels)
  TProfile * hT1 = new TProfile("hTRUEmcalRawMaxMinusMin", "TRU EMC: Max - Min vs 2x2Id;2x2 Id;Max-Min [ADC counts]", 
				nTot2x2, -0.5, nTot2x2-0.5, profileOption) ;
  Add2RawsList(hT1, kSigTRU, expert, !image, !saveCorr) ;

  // total counter: channels per event
  TH1I * hT2 = new TH1I("hTRUNtot", "TRU EMC: Total Number of found TRU channels;# of TRU Channels;Counts", 200, 0, nTot2x2) ;
  hT2->Sumw2() ;
  Add2RawsList(hT2, kNtotTRU, expert, !image, !saveCorr) ;

  // L0 trigger hits: # of hits (bins are TRU channels)
  TH2I * hT3 = new TH2I("hTRUEmcalL0hits", "L0 trigger hits: Total number of 2x2 L0 generated",  nTRUCols, -0.5, nTRUCols - 0.5, nTRURows, -0.5, nTRURows-0.5);
  hT3->SetOption("COLZ");
  //hT3->Sumw2();
  Add2RawsList(hT3, kNL0TRU, expert, image, !saveCorr);

  // L0 trigger hits: average time (bins are TRU channels)
  TProfile2D * hT4 = new TProfile2D("hTRUEmcalL0hitsAvgTime", "L0 trigger hits: average time bin", nTRUCols, -0.5, nTRUCols - 0.5, nTRURows, -0.5, nTRURows-0.5, profileOption);
  hT4->SetOption("COLZ");
  Add2RawsList(hT4, kTimeL0TRU, expert, image, !saveCorr);

  // L0 trigger hits: first in the event (bins are TRU channels)
  TH1I * hT5 = new TH1I("hTRUEmcalL0hitsFirst", "L0 trigger hits: First hit in the event", nTot2x2, -0.5, nTot2x2);
  hT5->Sumw2();
  Add2RawsList(hT5, kNL0FirstTRU, expert, !image, !saveCorr);
	
  // L0 trigger hits: average time of first hit in the event (bins are TRU channels)
  TProfile * hT6 = new TProfile("hTRUEmcalL0hitsFirstAvgTime", "L0 trigger hits: average time of first hit", nTot2x2, -0.5, nTot2x2, profileOption); 
  Add2RawsList(hT6, kTimeL0FirstTRU, expert, !image, !saveCorr);

  // and also LED Mon..
  // LEDMon has both high and low gain channels, just as regular FEE/towers
  Int_t nTotLEDMon = fSuperModules * AliEMCALGeoParams::fgkEMCALLEDRefs; // max number of LEDMon channels for all SuperModules

  // counter info: number of channels per event (bins are SM index)
  TProfile * hL0 = new TProfile("hLowLEDMonEmcalSupermodules", "LowLEDMon Gain EMC: # of strips vs SuperMod;SM Id;# of strips",
			       fSuperModules, -0.5, fSuperModules-0.5, profileOption) ;
  Add2RawsList(hL0, kNsmodLGLEDMon, expert, !image, !saveCorr) ;
  TProfile * hL1 = new TProfile("hHighLEDMonEmcalSupermodules", "HighLEDMon Gain EMC: # of strips vs SuperMod;SM Id;# of strips",  
			       fSuperModules, -0.5, fSuperModules-0.5, profileOption) ; 
  Add2RawsList(hL1, kNsmodHGLEDMon, expert, !image, !saveCorr) ;

  // where did max sample occur? (bins are strips)
  TProfile * hL2 = new TProfile("hLowLEDMonEmcalRawtime", "LowLEDMon Gain EMC: Time at Max vs stripId;Strip Id;Time [ticks]", 
			       nTotLEDMon, -0.5, nTotLEDMon-0.5, profileOption) ;
  Add2RawsList(hL2, kTimeLGLEDMon, expert, !image, !saveCorr) ;
  TProfile * hL3 = new TProfile("hHighLEDMonEmcalRawtime", "HighLEDMon Gain EMC: Time at Max vs stripId;Strip Id;Time [ticks]", 
			       nTotLEDMon, -0.5, nTotLEDMon-0.5, profileOption) ;
  Add2RawsList(hL3, kTimeHGLEDMon, expert, !image, !saveCorr) ;

  // how much above pedestal was the max sample?  (bins are strips)
  TProfile * hL4 = new TProfile("hLowLEDMonEmcalRawMaxMinusMin", "LowLEDMon Gain EMC: Max - Min vs stripId;Strip Id;Max-Min [ADC counts]", 
			       nTotLEDMon, -0.5, nTotLEDMon-0.5, profileOption) ;
  Add2RawsList(hL4, kSigLGLEDMon, expert, !image, !saveCorr) ;
  TProfile * hL5 = new TProfile("hHighLEDMonEmcalRawMaxMinusMin", "HighLEDMon Gain EMC: Max - Min vs stripId;Strip Id;Max-Min [ADC counts]",
			       nTotLEDMon, -0.5, nTotLEDMon-0.5, profileOption) ;
  Add2RawsList(hL5, kSigHGLEDMon, expert, !image, !saveCorr) ;
  
    // total counter: channels per event
  TH1I * hL6 = new TH1I("hLowLEDMonNtot", "LowLEDMon Gain EMC: Total Number of found strips;# of Strips;Counts", 200, 0, nTotLEDMon) ;
  hL6->Sumw2() ;
  Add2RawsList(hL6, kNtotLGLEDMon, expert, !image, !saveCorr) ;
  TH1I * hL7 = new TH1I("hHighLEDMonNtot", "HighLEDMon Gain EMC: Total Number of found strips;# of Strips;Counts", 200,0, nTotLEDMon) ;
  hL7->Sumw2() ;
  Add2RawsList(hL7, kNtotHGLEDMon, expert, !image, !saveCorr) ;

  // pedestal (bins are strips)
  TProfile * hL8 = new TProfile("hLowLEDMonEmcalRawPed", "LowLEDMon Gain EMC: Pedestal vs stripId;Strip Id;Pedestal [ADC counts]", 
			       nTotLEDMon, -0.5, nTotLEDMon-0.5, profileOption) ;
  Add2RawsList(hL8, kPedLGLEDMon, expert, !image, !saveCorr) ;
  TProfile * hL9 = new TProfile("hHighLEDMonEmcalRawPed", "HighLEDMon Gain EMC: Pedestal vs stripId;Strip Id;Pedestal [ADC counts]",
			       nTotLEDMon, -0.5, nTotLEDMon-0.5, profileOption) ;
  Add2RawsList(hL9, kPedHGLEDMon, expert, !image, !saveCorr) ;
  
  //temp 2D amplitude histogram for the current run
  fHighEmcHistoH2F = new TH2F("h2DHighEC2", "High Gain EMC:Max - Min [ADC counts]", nbinsZ, -0.5 , nbinsZ-0.5, nbinsPhi, -0.5, nbinsPhi-0.5);
   fHighEmcHistoH2F->SetDirectory(0) ; // this histo must be memory resident
  //add ratio histograms: to comapre the current run with the reference data 
  TH2F * h15 = new TH2F("h2DRatioAmp", "High Gain Ratio to Reference:Amplitude_{current run}/Amplitude_{reference run}", nbinsZ, -0.5 , nbinsZ-0.5, 
                        nbinsPhi, -0.5, nbinsPhi-0.5);
  //settings for display in amore
  h15->SetTitle("Amplitude_{current run}/Amplitude_{reference run}"); 
  h15->SetMaximum(2.0);
  h15->SetMinimum(0.1);
  h15->SetOption("COLZ");
  gStyle->SetOptStat(0);
  Int_t color[] = {4,3,2} ;
  gStyle->SetPalette(3,color);
  h15->GetZaxis()->SetNdivisions(3);
  h15->UseCurrentStyle();
  h15->SetDirectory(0);
  Add2RawsList(h15, k2DRatioAmp, expert, image, !saveCorr) ;

  TH1F * h16 = new TH1F("hRatioDist", "Amplitude_{current run}/Amplitude_{reference run} ratio distribution", nTot, 0., 2.);
  // h16->SetMinimum(0.1); 
  // h16->SetMaximum(100.);
  gStyle->SetOptStat(0);
  h16->UseCurrentStyle();
  h16->SetDirectory(0);
  Add2RawsList(h16, kRatioDist, !expert, image, !saveCorr) ;

  //add two histograms for shifter from the LED monitor system: comapre LED monitor with the reference run
  //to be used for decision whether we need to change reference data
  TH1F * hL10 = new TH1F("hMaxMinusMinLEDMonRatio", "LEDMon amplitude, Ratio to reference run", nTotLEDMon, -0.5, nTotLEDMon-0.5) ;
  //settings for display in amore
  hL10->SetTitle("Amplitude_{LEDMon current}/Amplitude_{LEDMon reference}"); 
  hL10->SetMaximum(2.0);
  hL10->SetMinimum(0.1); 
  gStyle->SetOptStat(0);
  hL10->UseCurrentStyle();
  hL10->SetDirectory(0);
//  hL10->SetOption("E");
  Add2RawsList(hL10, kLEDMonRatio, expert, image, !saveCorr) ;

  TH1F * hL11 = new TH1F("hMaxMinusMinLEDMonRatioDist", "LEDMon amplitude, Ratio distribution", nTotLEDMon, 0, 2);
  // hL11->SetMinimum(0.1) ;
  gStyle->SetOptStat(0);
  hL11->UseCurrentStyle();
  hL11->SetDirectory(0);
  Add2RawsList(hL11, kLEDMonRatioDist, expert, image, !saveCorr) ;
  
  GetCalibRefFromOCDB();   


	//STU histgrams

 //histos
 Int_t nSTUCols = AliEMCALGeoParams::fgkEMCALSTUCols;
 Int_t nSTURows = AliEMCALGeoParams::fgkEMCALSTURows;
//		kAmpL1, kGL1, kJL1,
//		kGL1V0, kJL1V0, kSTUTRU  
	
 TProfile2D *hS0 = new TProfile2D("hL1Amp", "Mean STU signal per Row and Column", nSTUCols, -0.5, nSTUCols-0.5, nSTURows, -0.5, nSTURows-0.5);
 Add2RawsList(hS0, kAmpL1, expert, !image, !saveCorr) ;
	
 TH2F *hS1 = new TH2F("hL1Gamma", "L1 Gamma patch position (FastOR top-left)", nSTUCols, -0.50, nSTUCols-0.5, nSTURows + 5, -0.5, nSTURows-0.5 + 5); //+5 for better visible error box
 Add2RawsList(hS1, kGL1, !expert, image, !saveCorr) ;
	
 TH2F *hS2 = new TH2F("hL1Jet", "L1 Jet patch position (FastOR top-left)", 12, -0.5, nSTUCols-0.5, 16, 0, nSTURows-0.5);
 Add2RawsList(hS2, kJL1, !expert, image, !saveCorr) ;
	
 TH2I *hS3 = new TH2I("hL1GV0", "L1 Gamma patch amplitude versus V0 signal", 500, 0, 50000, 1500, 0, 1500);
 Add2RawsList(hS3, kGL1V0, expert, image, !saveCorr) ;
	
 TH2I *hS4 = new TH2I("hL1JV0", "L1 Jet patch amplitude versus V0 signal", 500, 0, 50000, 1000, 0, 1000);
 Add2RawsList(hS4, kJL1V0, expert, !image, !saveCorr) ;

 TH1I *hS5 = new TH1I("hFrameR","Link between TRU and STU", 32, 0, 32);
 Add2RawsList(hS5, kSTUTRU, !expert, image, !saveCorr) ;

 hS0->SetOption("COLZ");
 hS1->SetOption("COLZ");
 hS2->SetOption("COLZ");
 hS3->SetOption("COLZ");
 hS4->SetOption("COLZ");

  //
  ClonePerTrigClass(AliQAv1::kRAWS); // this should be the last line
}

//____________________________________________________________________________
void AliEMCALQADataMakerRec::MakeESDs(AliESDEvent * esd)
{
  // make QA data from ESDs

  Int_t nTot = 0 ; 
  for ( Int_t index = 0; index < esd->GetNumberOfCaloClusters() ; index++ ) {
    AliESDCaloCluster * clu = esd->GetCaloCluster(index) ;
    if( clu->IsEMCAL() ) {
      FillESDsData(kESDCaloClusE,clu->E()) ;
      nTot++ ;
    } 
  }
  FillESDsData(kESDCaloClusM,nTot) ;

  //fill calo cells
  AliESDCaloCells* cells = esd->GetEMCALCells();
  FillESDsData(kESDCaloCellM,cells->GetNumberOfCells()) ;

  for ( Int_t index = 0; index < cells->GetNumberOfCells() ; index++ ) {
    FillESDsData(kESDCaloCellA,cells->GetAmplitude(index)) ;
  }
  //
  IncEvCountCycleESDs();
  IncEvCountTotalESDs();
}

//____________________________________________________________________________
void AliEMCALQADataMakerRec::MakeRaws(AliRawReader* rawReader)
{
  // Check that all the reference histograms exist before we try to use them - otherwise call InitRaws
  // RS: Attention: the counters are increments after custom modification of eventSpecie
  if (!fCalibRefHistoPro || !fCalibRefHistoH2F || !fLEDMonRefHistoPro || !fHighEmcHistoH2F) {
    InitRaws();
  }

  // make sure EMCal was readout during the event
  Int_t emcID = AliDAQ::DetectorID("EMCAL"); // bit 18..
  const UInt_t *detPattern = rawReader->GetDetectorPattern(); 
  UInt_t emcInReadout = ( ((1 << emcID) & detPattern[0]) >> emcID);
  if (! emcInReadout) return; // no poInt_t in looking at this event, if no EMCal data

  // setup
  rawReader->Reset() ;
  AliCaloRawStreamV3 in(rawReader,"EMCAL"); 
  rawReader->Select("EMCAL", 0, AliEMCALGeoParams::fgkLastAltroDDL) ; //select EMCAL DDL's 

  AliRecoParam::EventSpecie_t saveSpecie = fEventSpecie ;
  if (rawReader->GetType() == AliRawEventHeaderBase::kCalibrationEvent) { 
    SetEventSpecie(AliRecoParam::kCalib) ;	
  }

  const Int_t nTowersPerSM = AliEMCALGeoParams::fgkEMCALRows * AliEMCALGeoParams::fgkEMCALCols; // number of towers in a SuperModule; 24x48
  const Int_t nRows        = AliEMCALGeoParams::fgkEMCALRows; // number of rows per SuperModule
  const Int_t nStripsPerSM = AliEMCALGeoParams::fgkEMCALLEDRefs; // number of strips per SuperModule
  const Int_t n2x2PerSM    = AliEMCALGeoParams::fgkEMCALTRUsPerSM * AliEMCALGeoParams::fgkEMCAL2x2PerTRU; // number of TRU 2x2's per SuperModule
  const Int_t n2x2PerTRU   = AliEMCALGeoParams::fgkEMCAL2x2PerTRU;
  const Int_t nTot2x2	   = fSuperModules * n2x2PerSM; // total TRU channel

  // SM counters; decl. should be safe, assuming we don't get more than expected SuperModules..
  Int_t nTotalSMLG[AliEMCALGeoParams::fgkEMCALModules]       = {0};
  Int_t nTotalSMHG[AliEMCALGeoParams::fgkEMCALModules]       = {0};
  Int_t nTotalSMTRU[AliEMCALGeoParams::fgkEMCALModules]      = {0};
  Int_t nTotalSMLGLEDMon[AliEMCALGeoParams::fgkEMCALModules] = {0};
  Int_t nTotalSMHGLEDMon[AliEMCALGeoParams::fgkEMCALModules] = {0};

  const Int_t nTRUL0ChannelBits = 10; // used for L0 trigger bits checks
	int firstL0TimeBin = 999;
  int triggers[nTot2x2][24]; //auxiliary array for L0 trigger - TODO remove hardcoded 24
	memset(triggers, 0, sizeof(int) * 24 * nTot2x2);

  Int_t iSM = 0; // SuperModule index 
  // start loop over input stream  
  while (in.NextDDL()) {
    Int_t iRCU = in.GetDDLNumber() % 2; // RCU0 or RCU1, within SuperModule
    Int_t iDDL = in.GetDDLNumber();
    fRawAnalyzer->SetIsZeroSuppressed( in.GetZeroSupp() ); 
    
    while (in.NextChannel()) {
      Int_t iBranch = in.GetBranch();
      
      iSM = in.GetModule(); // SuperModule
      //prInt_tf("iSM %d DDL %d", iSM, in.GetDDLNumber()); 
      if (iSM>=0 && iSM<fSuperModules) { // valid module reading

	Int_t nsamples = 0;
	vector<AliCaloBunchInfo> bunchlist; 
	while (in.NextBunch()) {
	  nsamples += in.GetBunchLength();
	  bunchlist.push_back( AliCaloBunchInfo(in.GetStartTimeBin(), in.GetBunchLength(), in.GetSignals() ) );
	} 
	
	if (nsamples > 0) { // this check is needed for when we have zero-supp. on, but not sparse readout
	  Float_t time = 0.; 
	  Float_t amp  = 0.; 
	  // indices for pedestal calc.
	  Int_t firstPedSample = 0;
	  Int_t lastPedSample  = 0;
	  bool isTRUL0IdData   = false;

	  if (! in.IsTRUData() ) { // high gain, low gain, LED Mon data - all have the same shaper/sampling 
	    AliCaloFitResults fitResults = fRawAnalyzer->Evaluate( bunchlist, in.GetAltroCFG1(), in.GetAltroCFG2()); 
	    amp  = fitResults.GetAmp();
	    time = fitResults.GetTof();	
	    firstPedSample = fFirstPedestalSample;
	    lastPedSample  = fLastPedestalSample;
	  }
	  else { // TRU data is special, needs its own analyzer
	    AliCaloFitResults fitResults = fRawAnalyzerTRU->Evaluate( bunchlist, in.GetAltroCFG1(), in.GetAltroCFG2()); 
	    amp  = fitResults.GetAmp();
	    time = fitResults.GetTof();	
	    firstPedSample = fFirstPedestalSampleTRU;
	    lastPedSample  = fLastPedestalSampleTRU;
	    if (in.GetColumn() >= n2x2PerTRU) {
	      isTRUL0IdData = true;
	    }
	  }
  
	  // pedestal samples
	  Int_t nPed = 0;
	  vector<Int_t> pedSamples; 
	
	  // select earliest bunch 
	  unsigned int bunchIndex = 0;
	  unsigned int startBin = bunchlist.at(0).GetStartBin();
	  if (bunchlist.size() > 0) {
	    for(unsigned int ui=1; ui < bunchlist.size(); ui++ ) {
	      if (startBin > bunchlist.at(ui).GetStartBin() ) {
		startBin = bunchlist.at(ui).GetStartBin();
		bunchIndex = ui;
	      }
	    }
	  }

	  // check bunch for entries in the pedestal sample range
	  Int_t bunchLength = bunchlist.at(bunchIndex).GetLength(); 
	  const UShort_t *sig = bunchlist.at(bunchIndex).GetData();
	  Int_t timebin = 0;

	  if (! isTRUL0IdData) { // regular data, can look at pedestals
	    for (Int_t i = 0; i<bunchLength; i++) {
	      timebin = startBin--;
	      if ( firstPedSample<=timebin && timebin<=lastPedSample ) {
		pedSamples.push_back( sig[i] );
		nPed++;
	      }	    
	    } // i
	  }
	  else { // TRU L0 Id Data
	    // which TRU the channel belongs to?
	    Int_t iTRUId = in.GetModule()*3 + (iRCU*in.GetBranch() + iRCU);

	    for (Int_t i = 0; i< bunchLength; i++) {
	      for( Int_t j = 0; j < nTRUL0ChannelBits; j++ ){
		// check if the bit j is 1
		if( (sig[i] & ( 1 << j )) > 0 ){
		  Int_t iTRUIdInSM = (in.GetColumn() - n2x2PerTRU)*nTRUL0ChannelBits+j;
		  if(iTRUIdInSM < n2x2PerTRU) {
		    Int_t iTRUAbsId = iTRUIdInSM + n2x2PerTRU * iTRUId;
		    // Fill the histograms
		    Int_t globTRUCol, globTRURow;
		    GetTruChannelPosition(globTRURow, globTRUCol, iSM, iDDL, iBranch, iTRUIdInSM );
		    
		    FillRawsData(kNL0TRU, globTRUCol, globTRURow);
		    FillRawsData(kTimeL0TRU, globTRUCol, globTRURow, startBin);
		    triggers[iTRUAbsId][startBin] = 1;
		    
		    if((int)startBin < firstL0TimeBin) firstL0TimeBin = startBin;
		  }
		}
	      }
	      startBin--;
	    } // i	
	  } // TRU L0 Id data			
	  
	  // fill histograms
	  if ( in.IsLowGain() || in.IsHighGain() ) { // regular towers
	    Int_t towerId = iSM*nTowersPerSM + in.GetColumn()*nRows + in.GetRow();
	    if ( in.IsLowGain() ) { 
	      nTotalSMLG[iSM]++; 
	      if ( (amp > fMinSignalLG) && (amp < fMaxSignalLG) ) { 
		FillRawsData(kSigLG,towerId, amp);
		FillRawsData(kTimeLG,towerId, time);
	      }
	      if (nPed > 0) {
		for (Int_t i=0; i<nPed; i++) {
		  FillRawsData(kPedLG,towerId, pedSamples[i]);
		}
	      }
	    } // gain==0
	    else if ( in.IsHighGain() ) {       	
	      nTotalSMHG[iSM]++; 
	      if ( (amp > fMinSignalHG) && (amp < fMaxSignalHG) ) { 
		FillRawsData(kSigHG,towerId, amp);
		FillRawsData(kTimeHG,towerId, time);
	      } 
	      if (nPed > 0) {
		for (Int_t i=0; i<nPed; i++) {
		  FillRawsData(kPedHG,towerId, pedSamples[i]);
		}
	      }
	    } // gain==1
	  } // low or high gain
 	  // TRU
	  else if ( in.IsTRUData() && in.GetColumn()<AliEMCALGeoParams::fgkEMCAL2x2PerTRU) {
	    // for TRU data, the mapping class holds the TRU Int_ternal 2x2 number (0..95) in the Column var..
	    Int_t iTRU = (iRCU*in.GetBranch() + iRCU); //TRU0 is from RCU0, TRU1 from RCU1, TRU2 is from branch B on RCU1
	    Int_t iTRU2x2Id = iSM*n2x2PerSM + iTRU*AliEMCALGeoParams::fgkEMCAL2x2PerTRU 
	      + in.GetColumn();
	    nTotalSMTRU[iSM]++; 
	    if ( (amp > fMinSignalTRU) && (amp < fMaxSignalTRU) ) { 
	      FillRawsData(kSigTRU,iTRU2x2Id, amp);
	      //FillRawsData(kTimeTRU,iTRU2x2Id, time);
	    }
	    //if (nPed > 0) {
	      //for (Int_t i=0; i<nPed; i++) {
		//FillRawsData(kPedTRU,iTRU2x2Id, pedSamples[i]);
	      //}
	    //}
	  }
	  // LED Mon
	  else if ( in.IsLEDMonData() ) {
	    // for LED Mon data, the mapping class holds the gain info in the Row variable
	    // and the Strip number in the Column..
	    Int_t gain = in.GetRow(); 
	    Int_t stripId = iSM*nStripsPerSM + in.GetColumn();
	  
	    if ( gain == 0 ) { 
	      nTotalSMLGLEDMon[iSM]++; 
	      if ( (amp > fMinSignalLGLEDMon) && (amp < fMaxSignalLGLEDMon) ) {
		FillRawsData(kSigLGLEDMon,stripId, amp);
		FillRawsData(kTimeLGLEDMon,stripId, time);
	      }
	      if (nPed > 0) {
		for (Int_t i=0; i<nPed; i++) {
		  FillRawsData(kPedLGLEDMon,stripId, pedSamples[i]);
		}
	      }
	    } // gain==0
	    else if ( gain == 1 ) {       	
	      nTotalSMHGLEDMon[iSM]++; 
	      if ( (amp > fMinSignalHGLEDMon) && (amp < fMaxSignalHGLEDMon) ) { 
		FillRawsData(kSigHGLEDMon,stripId, amp);
		FillRawsData(kTimeHGLEDMon,stripId, time);
	      }
	      if (nPed > 0) {
		for (Int_t i=0; i<nPed; i++) {
		  FillRawsData(kPedHGLEDMon,stripId, pedSamples[i]);
		}
	      }
	    } // low or high gain
	  } // LEDMon

	} // SM index OK

      } // nsamples>0 check, some data found for this channel; not only trailer/header
    }// end while over channel 
   
  }//end while over DDL's, of input stream 
  //filling some L0 trigger histos
  if( firstL0TimeBin < 999 ){
    for(Int_t i = 0; i < nTot2x2; i++) {	
      if( triggers[i][firstL0TimeBin] > 0 ) {
	//histo->Fill(i,j);
	FillRawsData(kNL0FirstTRU, i);
	FillRawsData(kTimeL0FirstTRU, i, firstL0TimeBin);
      }
    }
  }
  
  //calculate the ratio of the amplitude and fill the histograms, only if the events type is Calib
  // RS: operation on the group of histos kSigHG,k2DRatioAmp,kRatioDist,kLEDMonRatio,kLEDMonRatio,kSigLGLEDMon
  const int hGrp[] = {kSigHG,k2DRatioAmp,kRatioDist,kLEDMonRatio,kLEDMonRatioDist,kSigLGLEDMon};
  if ( rawReader->GetType() == AliRawEventHeaderBase::kCalibrationEvent &&
       CheckCloningConsistency(fRawsQAList, hGrp, sizeof(hGrp)/sizeof(int)) ) {  // RS converting original code to loop over all matching triggers
    int nTrig =IsClonedPerTrigClass(kSigHG,fRawsQAList) ? GetNEventTrigClasses() : 0; // loop over triggers only if histos were cloned
    //
    for (int itr=-1;itr<nTrig;itr++) { // start from -1 to acknowledge original histos if they were kept
      TObjArray* trArr = GetMatchingRawsHistosSet(hGrp, sizeof(hGrp)/sizeof(int) ,itr);
      if (!trArr) continue;  // no histos for current trigger
      //
      Double_t binContent = 0.;
      TProfile* prSigHG      = (TProfile *)trArr->At(0); //kSigHG
      TH1* th2DRatioAmp      = (TH1*) trArr->At(1); //k2DRatioAmp
      TH1* thRatioDist       = (TH1*) trArr->At(2); //kRatioDist
      TH1* thLEDMonRatio     = (TH1*) trArr->At(3); //kLEDMonRatio
      TH1* thLEDMonRatioDist = (TH1*) trArr->At(4); //kLEDMonRatio
      TH1* hSigLGLEDMon      = (TH1*) trArr->At(5); //kSigLGLEDMon
      th2DRatioAmp->Reset("ICE");
      thRatioDist->Reset("ICE");
      thLEDMonRatio->Reset("ICE");
      thLEDMonRatioDist->Reset("ICE");
      th2DRatioAmp->ResetStats();
      thRatioDist->ResetStats();
      thLEDMonRatio->ResetStats();
      thLEDMonRatioDist->ResetStats();
      ConvertProfile2H(prSigHG, fHighEmcHistoH2F);  
      //
      for(Int_t ix = 1; ix <= fHighEmcHistoH2F->GetNbinsX(); ix++) {
	for(Int_t iy = 1; iy <= fHighEmcHistoH2F->GetNbinsY(); iy++) { 
	  if(fCalibRefHistoH2F->GetBinContent(ix, iy)) 
	    binContent = fHighEmcHistoH2F->GetBinContent(ix, iy)/fCalibRefHistoH2F->GetBinContent(ix, iy);
	  th2DRatioAmp->SetBinContent(ix, iy, binContent);
	  thRatioDist->Fill(binContent);
	}
      } 
      //
      //Now for LED monitor system, to calculate the ratio as well
      Double_t binError = 0. ;
      // for the binError, we add the relative errors, squared
      Double_t relativeErrorSqr = 0. ;
      //
      for(int ib = 1; ib <= fLEDMonRefHistoPro->GetNbinsX(); ib++) {
	//
	if(fLEDMonRefHistoPro->GetBinContent(ib) != 0) {
	  binContent = hSigLGLEDMon->GetBinContent(ib) / fLEDMonRefHistoPro->GetBinContent(ib);

	  relativeErrorSqr = TMath::Power( (fLEDMonRefHistoPro->GetBinError(ib) / fLEDMonRefHistoPro->GetBinContent(ib)), 2);
	  if( hSigLGLEDMon->GetBinContent(ib) != 0) {
	    relativeErrorSqr += TMath::Power( (hSigLGLEDMon->GetBinError(ib)/hSigLGLEDMon->GetBinContent(ib)), 2);
	  }
	}
	else { // ref. run info is zero
	  binContent = -1;
	  relativeErrorSqr = 1;
	}
	thLEDMonRatio->SetBinContent(ib, binContent);
	
	binError = sqrt(relativeErrorSqr) * binContent;
	thLEDMonRatio->SetBinError(ib, binError);
	thLEDMonRatioDist->Fill(thLEDMonRatio->GetBinContent(ib));
      }
    } // loop over eventual trigger clones
  } 
  // let's also fill the SM and event counter histograms
  Int_t nTotalHG = 0;
  Int_t nTotalLG = 0;
  Int_t nTotalTRU = 0;
  Int_t nTotalHGLEDMon = 0;
  Int_t nTotalLGLEDMon = 0;
  for (iSM=0; iSM<fSuperModules; iSM++) {  
    nTotalLG += nTotalSMLG[iSM]; 
    nTotalHG += nTotalSMHG[iSM]; 
    nTotalTRU += nTotalSMTRU[iSM]; 
    nTotalLGLEDMon += nTotalSMLGLEDMon[iSM]; 
    nTotalHGLEDMon += nTotalSMHGLEDMon[iSM]; 
    FillRawsData(kNsmodLG,iSM, nTotalSMLG[iSM]); 
    FillRawsData(kNsmodHG,iSM, nTotalSMHG[iSM]); 
    FillRawsData(kNsmodTRU,iSM, nTotalSMTRU[iSM]); 
    FillRawsData(kNsmodLGLEDMon,iSM, nTotalSMLGLEDMon[iSM]); 
    FillRawsData(kNsmodHGLEDMon,iSM, nTotalSMHGLEDMon[iSM]); 
  }
 
  FillRawsData(kNtotLG,nTotalLG);
  FillRawsData(kNtotHG,nTotalHG);
  FillRawsData(kNtotTRU,nTotalTRU);
  FillRawsData(kNtotLGLEDMon,nTotalLGLEDMon);
  FillRawsData(kNtotHGLEDMon,nTotalHGLEDMon);
 
  IncEvCountCycleESDs();
  IncEvCountTotalESDs();
  SetEventSpecie(saveSpecie) ; 
  
	MakeRawsSTU(rawReader);

  // just in case the next rawreader consumer forgets to reset; let's do it here again..
  rawReader->Reset() ;
  return;
}

//____________________________________________________________________________
void AliEMCALQADataMakerRec::MakeDigits()
{
  // makes data from Digits
  FillDigitsData(1,fDigitsArray->GetEntriesFast()) ; 
  TIter next(fDigitsArray) ; 
  AliEMCALDigit * digit ; 
  while ( (digit = dynamic_cast<AliEMCALDigit *>(next())) ) {
    FillDigitsData(0, digit->GetAmplitude()) ;
  }  
  //
}

//____________________________________________________________________________
void AliEMCALQADataMakerRec::MakeDigits(TTree * digitTree)
{
  // makes data from Digit Tree
  // RS: Attention: the counters are increments in the MakeDigits()
  if (fDigitsArray) 
    fDigitsArray->Clear("C") ; 
  else
    fDigitsArray = new TClonesArray("AliEMCALDigit", 1000) ; 
  
  TBranch * branch = digitTree->GetBranch("EMCAL") ;
  if ( ! branch ) { AliWarning("EMCAL branch in Digit Tree not found"); return; }
  //
  branch->SetAddress(&fDigitsArray) ;
  branch->GetEntry(0) ; 
  MakeDigits() ; 
  //
  IncEvCountCycleDigits();
  IncEvCountTotalDigits();  
  //  
}

//____________________________________________________________________________
void AliEMCALQADataMakerRec::MakeRecPoints(TTree * clustersTree)
{
  // makes data from RecPoints
  TBranch *emcbranch = clustersTree->GetBranch("EMCALECARP");
  if (!emcbranch) { 
    AliError("can't get the branch with the EMCAL clusters !");
    return;
  }
  
  TObjArray * emcRecPoints = new TObjArray(100) ;
  emcbranch->SetAddress(&emcRecPoints);
  emcbranch->GetEntry(0);
  
  FillRecPointsData(kRecPM,emcRecPoints->GetEntriesFast()) ; 
  TIter next(emcRecPoints) ; 
  AliEMCALRecPoint * rp ; 
  while ( (rp = dynamic_cast<AliEMCALRecPoint *>(next())) ) {
    FillRecPointsData(kRecPE,rp->GetEnergy()) ;
    FillRecPointsData(kRecPDigM,rp->GetMultiplicity());
  }
  emcRecPoints->Delete();
  delete emcRecPoints;
  IncEvCountCycleRecPoints();
  IncEvCountTotalRecPoints();
}

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

//____________________________________________________________________________ 
void AliEMCALQADataMakerRec::SetFittingAlgorithm(Int_t fitAlgo)              
{
  //Set fitting algorithm and initialize it if this same algorithm was not set before.

  fFittingAlgorithm = fitAlgo; // Not sure we need this

  fRawAnalyzer    =  AliCaloRawAnalyzerFactory::CreateAnalyzer(fitAlgo);
  
  // Init also here the TRU algo, even if it is fixed type.
  fRawAnalyzerTRU = AliCaloRawAnalyzerFactory::CreateAnalyzer(Algo::kFakeAltro);
  fRawAnalyzerTRU->SetFixTau(kTRUE);
  fRawAnalyzerTRU->SetTau(2.5); // default for TRU shaper
}

//_____________________________________________________________________________________
void AliEMCALQADataMakerRec::ConvertProfile2H(TProfile * p, TH2 * histo) 
{  
  // reset histogram
  histo->Reset("ICE") ; 
  histo->ResetStats(); 

  Int_t nbinsProf = p->GetNbinsX();
  
  // loop through the TProfile p and fill the TH2F histo 
  Int_t row = 0;
  Int_t col = 0;
  Double_t binContent = 0;
  Int_t towerNum = 0; // global tower Id
  //  i = 0; // tower Id within SuperModule
  Int_t iSM = 0; // SuperModule index 
  Int_t iSMSide = 0; // 0=A, 1=C side
  Int_t iSMSector = 0; // 2 SM's per sector
  
  // indices for 2D plots
  Int_t col2d = 0;
  Int_t row2d = 0;
  
  for (Int_t ibin = 1; ibin <= nbinsProf; ibin++) {
    towerNum = (Int_t) p->GetBinCenter(ibin);
    binContent = p->GetBinContent(ibin);
    
    // figure out what the tower indices are: col, row within a SuperModule
    iSM = towerNum/(AliEMCALGeoParams::fgkEMCALRows * AliEMCALGeoParams::fgkEMCALCols);
    col = (towerNum/AliEMCALGeoParams::fgkEMCALRows) % (AliEMCALGeoParams::fgkEMCALCols);
    row = towerNum % (AliEMCALGeoParams::fgkEMCALRows);
    
    //DecodeTowerNum(towerNum, &SM, &col, &row);
    // then we calculate what the global 2D coord are, based on which SM 
    // we are in
    iSMSector = iSM / 2;
    iSMSide = iSM % 2;
    
    if (iSMSide == 1) { // C side, shown to the right
      col2d = col + AliEMCALGeoParams::fgkEMCALCols;
    }
    else { // A side, shown to the left 
      col2d = col; 
    }
    
    row2d = row + iSMSector * AliEMCALGeoParams::fgkEMCALRows;
    
    histo->SetBinContent(col2d+1, row2d+1, binContent);
  }
} 
//____________________________________________________________________________ 
void AliEMCALQADataMakerRec::GetTruChannelPosition( Int_t &globRow, Int_t &globColumn, Int_t module, Int_t ddl, Int_t branch, Int_t column ) const
{ // from local to global indices
  Int_t mrow;
  Int_t mcol;
  Int_t trow;
  Int_t tcol;
  Int_t drow;
  Int_t rcu;
  // RCU 0 or 1
  rcu = ddl % 2;

  // 12 rows of 2x2s in a module (3 TRUs by 4 rows)
  mrow = (module/2) * 12;
  // 24 columns per module, odd module numbers increased by 24
  mcol = (module%2) * 24;

  // position within TRU coordinates
  tcol = column / 4;
  trow = column % 4;

  //.combine
  if( module%2 == 0 ){   // A side
    // mirror rows
    trow = 3 - trow;

    // TRU in module row addition
    drow = (rcu*branch+rcu) * 4;

  }
  else{   // C side
    // mirror columns
    tcol = 23 - tcol;

    // TRU in module row addition
    drow = (2 - (rcu*branch+rcu)) * 4;
  }

  // output global row/collumn position (0,0 = SMA0, phi = 0, |eta| = max)
  globRow = mrow + drow + trow;
  globColumn = mcol + tcol;
  return;

}
//____________________________________________________________________________ 
void AliEMCALQADataMakerRec::MakeRawsSTU(AliRawReader* rawReader)
{ // STU specifics
  AliEMCALTriggerSTURawStream* inSTU = new AliEMCALTriggerSTURawStream(rawReader);
	
  rawReader->Reset();
  rawReader->Select("EMCAL", 44);

  //L1 segmentation
  Int_t sizeL1gsubr = 1;
  Int_t sizeL1gpatch = 2; 
  Int_t sizeL1jsubr = 4; 

  Int_t iEMCALtrig[AliEMCALGeoParams::fgkEMCALSTUCols][AliEMCALGeoParams::fgkEMCALSTURows];
  memset(iEMCALtrig, 0, sizeof(int) * AliEMCALGeoParams::fgkEMCALSTUCols * AliEMCALGeoParams::fgkEMCALSTURows);
		
  if (inSTU->ReadPayLoad()) 
    {
      //Fw version (use in case of change in L1 jet 
      Int_t fw = inSTU->GetFwVersion();
      Int_t sizeL1jpatch = 2+(fw >> 16);

      //To check link
      Int_t mask = inSTU->GetFrameReceived() ^ inSTU->GetRegionEnable();

      for (int i = 0; i < 32; i++)
	{
		if (!((mask >> i) &  0x1)) FillRawsData(kSTUTRU, i);
	}

      //V0 signal in STU
      Int_t iV0Sig = inSTU->GetV0A()+inSTU->GetV0C();
      
      //FastOR amplitude receive from TRU
      for (Int_t i = 0; i < 32; i++)
	{
	  UInt_t adc[96];
	  for (Int_t j = 0; j < 96; j++) adc[j] = 0;
	  
	  inSTU->GetADC(i, adc);
	  
	  Int_t iTRU = fGeom->GetTRUIndexFromSTUIndex(i);
				
	  for (Int_t j = 0; j < 96; j++)
	    {
	      Int_t idx;
	      fGeom->GetAbsFastORIndexFromTRU(iTRU, j, idx);
				
	      Int_t px, py;
	      fGeom->GetPositionInEMCALFromAbsFastORIndex(idx, px, py);
					
	      iEMCALtrig[px][py] = adc[j];
	    }
	}
			
      //L1 Gamma patches
      Int_t iTRUSTU, x, y;
      for (Int_t i = 0; i < inSTU->GetNL1GammaPatch(0); i++)
	{
	  if (inSTU->GetL1GammaPatch(i, 0, iTRUSTU, x, y)) // col (0..23), row (0..3)
	    {
	      Int_t iTRU;
	      iTRU = fGeom->GetTRUIndexFromSTUIndex(iTRUSTU);
	      
	      Int_t etaG = 23-x, phiG = y + 4 * int(iTRU/2); //position in EMCal
	      if (iTRU%2) etaG += 24; //C-side
					
	      etaG = etaG - sizeL1gsubr * sizeL1gpatch + 1;
				
	      //Position of patch L1G (bottom-left FastOR of the patch)
	      FillRawsData(kGL1, etaG, phiG);
					
	      //loop to sum amplitude of FOR in the gamma patch
	      Int_t iL1GPatchAmp = 0;
	      for (Int_t L1Gx = 0; L1Gx < sizeL1gpatch; L1Gx ++)
		{
		  for (Int_t L1Gy = 0; L1Gy < sizeL1gpatch; L1Gy ++)
		    {
		      if (etaG+L1Gx < 48 && phiG+L1Gy < 64) iL1GPatchAmp += iEMCALtrig[etaG+L1Gx][phiG+L1Gy];
		      //cout << iEMCALtrig[etaG+L1Gx][phiG+L1Gy] << endl;
		    }
		}
	      
	      //if (iL1GPatchAmp > 500) cout << "L1G amp =" << iL1GPatchAmp << endl;
	      FillRawsData(kGL1V0, iV0Sig, iL1GPatchAmp);
	      
	    }
	}
		
      //L1 Jet patches
      for (Int_t i = 0; i < inSTU->GetNL1JetPatch(0); i++)
	{
	  if (inSTU->GetL1JetPatch(i, 0, x, y)) // col (0,15), row (0,11)
	    {
	      
	      Int_t etaJ = sizeL1jsubr * (11-y-sizeL1jpatch + 1);
	      Int_t phiJ = sizeL1jsubr * (15-x-sizeL1jpatch + 1);
	      
	      //position of patch L1J (FOR bottom-left)
	      FillRawsData(kJL1, etaJ, phiJ);
					
	      //loop the sum aplitude of FOR in the jet patch
	      Int_t iL1JPatchAmp = 0;
	      for (Int_t L1Jx = 0; L1Jx < sizeL1jpatch*4; L1Jx ++)
		{
		  for (Int_t L1Jy = 0; L1Jy < sizeL1jpatch*4; L1Jy ++)
		    {
		      if (etaJ+L1Jx < 48 && phiJ+L1Jy < 64) iL1JPatchAmp += iEMCALtrig[etaJ+L1Jx][phiJ+L1Jy];
		    }
		}
		
	      //cout << "L1J amp =" << iL1JPatchAmp << endl;
	      FillRawsData(kJL1V0, iV0Sig, iL1JPatchAmp);
	    }
	}
    }
		
  //Fill FOR amplitude histo
  for (Int_t i = 0; i < 48; i++)
    {
      for (Int_t j = 0; j < 60; j++)
	{
	  if (iEMCALtrig[i][j] != 0) FillRawsData(kAmpL1, i, j, iEMCALtrig[i][j]);
	}
    }
  
  delete inSTU;
  return;
}


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