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

/* $Id$  */
//  *************************************************************
//  Checks the quality assurance 
//  by comparing with reference data
//  contained in a DB
//  -------------------------------------------------------------
//  W. Ferrarese + P. Cerello INFN Torino Feb 2008
//  M. Nicassio D. Elia INFN Bari April 2008
//  maria.nicassio@ba.infn.it

// --- ROOT system ---
#include <TTree.h>
#include <TH2.h>
#include <TH1.h>
// --- Standard library ---

// --- AliRoot header files ---
#include "AliRun.h"
#include "AliITSQADataMakerSim.h"
#include "AliITSQASPDDataMakerSim.h"
#include "AliQAv1.h"
#include "AliQAChecker.h"
#include "AliITSdigit.h"   
#include "AliITSdigitSPD.h"
#include "AliITS.h"
#include "AliITSmodule.h"
#include "AliITShit.h"
#include "AliITSLoader.h"
#include "AliRunLoader.h"

ClassImp(AliITSQASPDDataMakerSim)

//____________________________________________________________________________ 
AliITSQASPDDataMakerSim::AliITSQASPDDataMakerSim(AliITSQADataMakerSim *aliITSQADataMakerSim) :
TObject(),
fAliITSQADataMakerSim(aliITSQADataMakerSim),
fSPDhHTask(0),
fSPDhSTask(0),
fSPDhDTask(0),
fGenOffsetH(0),
fGenOffsetS(0),
fGenOffsetD(0)
{
  //ctor used to discriminate OnLine-Offline analysis   
  fGenOffsetH=  new Int_t[AliRecoParam::kNSpecies];                       
  fGenOffsetS=  new Int_t[AliRecoParam::kNSpecies];                           
  fGenOffsetD=  new Int_t[AliRecoParam::kNSpecies];
  for(Int_t i=0; i<AliRecoParam::kNSpecies; i++) {
    fGenOffsetH[i]= 0;
    fGenOffsetS[i]= 0;
    fGenOffsetD[i]= 0;
  }             
}

//____________________________________________________________________________ 
AliITSQASPDDataMakerSim::AliITSQASPDDataMakerSim(const AliITSQASPDDataMakerSim& qadm) :
TObject(),
fAliITSQADataMakerSim(qadm.fAliITSQADataMakerSim),
fSPDhHTask(qadm.fSPDhHTask),
fSPDhSTask(qadm.fSPDhSTask),
fSPDhDTask(qadm.fSPDhDTask),
fGenOffsetH(qadm.fGenOffsetH),
fGenOffsetS(qadm.fGenOffsetS),
fGenOffsetD(qadm.fGenOffsetD)
{
  //copy ctor 
  fAliITSQADataMakerSim->SetName((const char*)qadm.fAliITSQADataMakerSim->GetName()) ; 
  fAliITSQADataMakerSim->SetTitle((const char*)qadm.fAliITSQADataMakerSim->GetTitle());

}

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

//____________________________________________________________________________ 
void AliITSQASPDDataMakerSim::StartOfDetectorCycle()
{
  //Detector specific actions at start of cycle
  AliDebug(AliQAv1::GetQADebugLevel(),"AliITSQADM::Start of SPD Cycle\n");
}

//____________________________________________________________________________ 
void AliITSQASPDDataMakerSim::EndOfDetectorCycle(AliQAv1::TASKINDEX_t /*task*/, TObjArray** /*list*/)
{
  // launch the QA checking
  AliDebug(AliQAv1::GetQADebugLevel(),"AliITSDM instantiates checker with Run(AliQAv1::kITS, task, list)\n"); 
  
  //AliQAChecker::Instance()->Run( AliQAv1::kITS , task, list);
}

//____________________________________________________________________________ 
Int_t AliITSQASPDDataMakerSim::InitDigits()
{ 
  // Initialization for DIGIT data - SPD -
  const Bool_t expert   = kTRUE ; 
  const Bool_t image    = kTRUE ;
  Int_t rv = 0 ; 
  //fGenOffsetD = (fAliITSQADataMakerSim->fDigitsQAList[AliRecoParam::kDefault])->GetEntries();
  //fSPDhDTask must be incremented by one unit every time a histogram is ADDED to the QA List

  Char_t name[51];
  Char_t title[51];

  TH1F *hlayer = new TH1F("SPDLayPattern_SPD","Layer map - SPD",6,0.,6.);
  hlayer->GetXaxis()->SetTitle("Layer number");
  hlayer->GetYaxis()->SetTitle("Entries");
  rv = fAliITSQADataMakerSim->Add2DigitsList(hlayer,fGenOffsetD[fAliITSQADataMakerSim->GetEventSpecie()], expert, !image);
  fSPDhDTask++;
  
  TH1F **hmod = new TH1F*[2];
  for (Int_t iLay=0; iLay<2; iLay++) {
    snprintf(name,50,"SPDModPattern_SPD%d",iLay+1);
    snprintf(title,50,"Module map - SPD Layer %d",iLay+1);
    hmod[iLay]=new TH1F(name,title,240,0,240);
    hmod[iLay]->GetXaxis()->SetTitle("Module number");
    hmod[iLay]->GetYaxis()->SetTitle("Entries");
    rv = fAliITSQADataMakerSim->Add2DigitsList(hmod[iLay],1+iLay+fGenOffsetD[fAliITSQADataMakerSim->GetEventSpecie()], !expert, image);
    fSPDhDTask++;
  }
  
  TH1F *hcolumns = new TH1F("SPDColumns_SPD","Columns - SPD",160,0.,160.);
  hcolumns->GetXaxis()->SetTitle("Column number");
  hcolumns->GetYaxis()->SetTitle("Entries");
  fAliITSQADataMakerSim->Add2DigitsList(hcolumns,3+fGenOffsetD[fAliITSQADataMakerSim->GetEventSpecie()], expert, !image);
  fSPDhDTask++;

  TH1F *hrows = new TH1F("SPDRows_SPD","Rows - SPD",256,0.,256.);
  hrows->GetXaxis()->SetTitle("Row number");
  hrows->GetYaxis()->SetTitle("Entries");
  rv = fAliITSQADataMakerSim->Add2DigitsList(hrows,4+fGenOffsetD[fAliITSQADataMakerSim->GetEventSpecie()], expert, !image);
  fSPDhDTask++;

  TH1F** hMultSPDdigits = new TH1F*[2];
  for (Int_t iLay=0; iLay<2; ++iLay) {
    snprintf(name,50,"SPDDigitMultiplicity_SPD%d",iLay+1);
    snprintf(title,50,"Digit multiplicity - SPD Layer %d",iLay+1);
    hMultSPDdigits[iLay]=new TH1F(name,title,200,0.,200.);
    hMultSPDdigits[iLay]->GetXaxis()->SetTitle("Digit multiplicity");
    hMultSPDdigits[iLay]->GetYaxis()->SetTitle("Entries");
    rv = fAliITSQADataMakerSim->Add2DigitsList(hMultSPDdigits[iLay], 5+iLay+fGenOffsetD[fAliITSQADataMakerSim->GetEventSpecie()], !expert, image);
    fSPDhDTask++;
  }

  TH2F *hMultSPDdig2MultSPDdig1 
       = new TH2F("SPDDigitMultCorrelation_SPD","Digit multiplicity correlation - SPD",200,0.,200.,200,0.,200.);
  hMultSPDdig2MultSPDdig1->GetXaxis()->SetTitle("Digit multiplicity (Layer 1)");
  hMultSPDdig2MultSPDdig1->GetYaxis()->SetTitle("Digit multiplicity (Layer 2)");
  rv = fAliITSQADataMakerSim->Add2DigitsList(hMultSPDdig2MultSPDdig1,7+fGenOffsetD[fAliITSQADataMakerSim->GetEventSpecie()], !expert, image);
  fSPDhDTask++;

  AliDebug(AliQAv1::GetQADebugLevel(),Form("%d SPD Digits histograms booked\n",fSPDhDTask));
  delete [] hmod;
  delete [] hMultSPDdigits;
  return rv ; 
}

//____________________________________________________________________________
Int_t AliITSQASPDDataMakerSim::MakeDigits(TTree *digits)
{ 
  // Fill QA for DIGIT - SPD -
  Int_t rv = 0 ; 
 
  AliITS *fITS  = (AliITS*)gAlice->GetModule("ITS");
  fITS->SetTreeAddress();
  TClonesArray *iITSdigits  = fITS->DigitsAddress(0);  // 0->SPD

  Int_t nDigitsL1=0;
  Int_t nDigitsL2=0;

  for (Int_t imod=0; imod<240; ++imod){
    digits->GetEvent(imod);
    Int_t ndigits = iITSdigits->GetEntries();
    if (imod<80) {
      fAliITSQADataMakerSim->FillDigitsData(0+fGenOffsetD[fAliITSQADataMakerSim->GetEventSpecie()],0.5,ndigits);
      fAliITSQADataMakerSim->FillDigitsData(1+fGenOffsetD[fAliITSQADataMakerSim->GetEventSpecie()],imod,ndigits);
      nDigitsL1+=ndigits;
    }
    else {
      fAliITSQADataMakerSim->FillDigitsData(0+fGenOffsetD[fAliITSQADataMakerSim->GetEventSpecie()],1,ndigits);
      fAliITSQADataMakerSim->FillDigitsData(2+fGenOffsetD[fAliITSQADataMakerSim->GetEventSpecie()],imod,ndigits);
      nDigitsL2+=ndigits;
    }
    for (Int_t idig=0; idig<ndigits; ++idig) {
      AliITSdigit *dig=(AliITSdigit*)iITSdigits->UncheckedAt(idig);
      Int_t col=dig->GetCoord1();  // cell number z
      Int_t row=dig->GetCoord2();  // cell number x
      fAliITSQADataMakerSim->FillDigitsData(3+fGenOffsetD[fAliITSQADataMakerSim->GetEventSpecie()],col);
      fAliITSQADataMakerSim->FillDigitsData(4+fGenOffsetD[fAliITSQADataMakerSim->GetEventSpecie()],row);
    }
  }
  fAliITSQADataMakerSim->FillDigitsData(5+fGenOffsetD[fAliITSQADataMakerSim->GetEventSpecie()],nDigitsL1);
  fAliITSQADataMakerSim->FillDigitsData(6+fGenOffsetD[fAliITSQADataMakerSim->GetEventSpecie()],nDigitsL2);
  fAliITSQADataMakerSim->FillDigitsData(7+fGenOffsetD[fAliITSQADataMakerSim->GetEventSpecie()],nDigitsL1,nDigitsL2);
  //
  return rv ; 
}

//____________________________________________________________________________ 
Int_t AliITSQASPDDataMakerSim::InitSDigits()
{ 
  // Initialization for SDIGIT data - SPD -
  const Bool_t expert   = kTRUE ; 
  const Bool_t image    = kTRUE ;
  Int_t rv = 0 ; 
  //fGenOffsetS = (fAliITSQADataMakerSim->fSDigitsQAList[AliRecoParam::kDefault])->GetEntries();
  //printf("--W-- AliITSQASPDDataMakerSim::InitSDigits()  fGenOffset= %d \n",fGenOffset);
  //fSPDhSTask must be incremented by one unit every time a histogram is ADDED to the QA List
  
  Char_t name[51];
  Char_t title[51];

  TH1F *hlayer = new TH1F("SPDLayPattern_SPD","Layer map - SPD",6,0.,6.);
  hlayer->GetXaxis()->SetTitle("Layer number");
  hlayer->GetYaxis()->SetTitle("Entries");
  rv = fAliITSQADataMakerSim->Add2SDigitsList(hlayer,fGenOffsetS[fAliITSQADataMakerSim->GetEventSpecie()], expert, !image);
  fSPDhSTask++;

  TH1F **hmod = new TH1F*[2];
  for (Int_t iLay=0; iLay<2; ++iLay) {
    snprintf(name,50,"SPDModPattern_SPD%d",iLay+1);
    snprintf(title,50,"Module map - SPD Layer %d",iLay+1);
    hmod[iLay]=new TH1F(name,title,240,0,240);
    hmod[iLay]->GetXaxis()->SetTitle("Module number");
    hmod[iLay]->GetYaxis()->SetTitle("Entries");
    rv = fAliITSQADataMakerSim->Add2SDigitsList(hmod[iLay],1+iLay+fGenOffsetS[fAliITSQADataMakerSim->GetEventSpecie()], !expert, image);
    fSPDhSTask++;
  }

  AliDebug(AliQAv1::GetQADebugLevel(),Form("%d SPD SDigits histograms booked\n",fSPDhSTask));
  delete [] hmod;
  return rv ; 
}

//____________________________________________________________________________
Int_t AliITSQASPDDataMakerSim::MakeSDigits(TTree *sdigits)
{ 
  // Fill QA for SDIGIT - SPD -
  Int_t rv = 0 ; 
  static TClonesArray * sdig ; 
  if (! sdig )
    sdig = new TClonesArray( "AliITSpListItem",1000 );
  
  TBranch *brchSDigits = sdigits->GetBranch("ITS");
  for (Int_t imod=0; imod<240; ++imod){
    brchSDigits->SetAddress( &sdig );
    brchSDigits->GetEvent(imod);
    Int_t nsdig=sdig->GetEntries();
    if (imod<80) {
      fAliITSQADataMakerSim->FillSDigitsData(0+fGenOffsetS[fAliITSQADataMakerSim->GetEventSpecie()],0.5,nsdig);
      fAliITSQADataMakerSim->FillSDigitsData(1+fGenOffsetS[fAliITSQADataMakerSim->GetEventSpecie()],imod,nsdig);
    }
    else {
      fAliITSQADataMakerSim->FillSDigitsData(0+fGenOffsetS[fAliITSQADataMakerSim->GetEventSpecie()],1,nsdig);
      fAliITSQADataMakerSim->FillSDigitsData(2+fGenOffsetS[fAliITSQADataMakerSim->GetEventSpecie()],imod,nsdig);
    }
    sdig->Clear() ;
  }
  //
  return rv ; 
}

//____________________________________________________________________________ 
Int_t AliITSQASPDDataMakerSim::InitHits()
{ 
  // Initialization for HITS data - SPD -
  const Bool_t expert   = kTRUE ; 
  const Bool_t image    = kTRUE ;
  Int_t rv = 0 ; 
  
  //fGenOffsetH = (fAliITSQADataMakerSim->fHitsQAList[AliRecoParam::kDefault])->GetEntries();
  //printf("--W-- AliITSQASPDDataMakerSim::InitHits()  fGenOffset= %d \n",fGenOffset);
  //fSPDhHTask must be incremented by one unit every time a histogram is ADDED to the QA List
  Char_t name[50];
  Char_t title[50];

  TH1F *hlayer = new TH1F("SPDLayPattern_SPD","Layer map - SPD",6,0.,6.);
  hlayer->GetXaxis()->SetTitle("Layer number");
  hlayer->GetYaxis()->SetTitle("Entries");
  rv = fAliITSQADataMakerSim->Add2HitsList(hlayer,fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()], expert, !image);
  fSPDhHTask++;

  TH1F **hmod = new TH1F*[2];
  for (Int_t iLay=0; iLay<2; ++iLay) {
    snprintf(name,49,"SPDModPattern_SPD%d",iLay+1);
    snprintf(title,49,"Module map - SPD Layer %d",iLay+1);
    hmod[iLay]=new TH1F(name,title,240,0,240);
    hmod[iLay]->GetXaxis()->SetTitle("Module number");
    hmod[iLay]->GetYaxis()->SetTitle("Entries");
    rv = fAliITSQADataMakerSim->Add2HitsList(hmod[iLay],1+iLay+fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()], !expert, image);
    fSPDhHTask++;
  }

  TH1F *hhitlenght = new TH1F("SPDLenght_SPD","SPD Hit lenght along y_{loc} coord",210,0.,210.);
  hhitlenght->GetXaxis()->SetTitle("Hit lenght [#mum]");
  hhitlenght->GetYaxis()->SetTitle("# hits");
  rv = fAliITSQADataMakerSim->Add2HitsList(hhitlenght,3+fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()], !expert, image);
  fSPDhHTask++;

  TH1F *hEdepos = new TH1F("SPDEnergyDeposit_SPD","SPD Deposited energy distribution (y_{loc}>180 #mum)",150,0.,300.); 
  hEdepos->GetXaxis()->SetTitle("Deposited energy [keV]"); 
  hEdepos->GetYaxis()->SetTitle("# hits");
  rv = fAliITSQADataMakerSim->Add2HitsList(hEdepos,4+fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()], !expert, image);
  fSPDhHTask++;

  AliDebug(AliQAv1::GetQADebugLevel(),Form("%d SPD Hits histograms booked\n",fSPDhHTask));
  delete [] hmod;
  return rv ; 
}

//____________________________________________________________________________
Int_t AliITSQASPDDataMakerSim::MakeHits(TTree *hits)
{ 
  // Fill QA for HITS - SPD -
  Int_t rv = 0 ; 
 
  AliITS *fITS  = (AliITS*)gAlice->GetModule("ITS");
  fITS->SetTreeAddress();
  Int_t nmodules;
  fITS->InitModules(-1,nmodules); //-1->number of modules taken from AliITSgeom class kept in fITSgeom
                                  //nmodules is set

  fITS->FillModules(hits,0);

  for (Int_t imod=0; imod<240; ++imod){
    AliITSmodule *module = fITS->GetModule(imod);
    TObjArray *arrHits = module->GetHits();
    Int_t nhits = arrHits->GetEntriesFast();
    if (imod<80) {
      fAliITSQADataMakerSim->FillHitsData(fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()],0.5,nhits);
      fAliITSQADataMakerSim->FillHitsData(1+fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()],imod,nhits);
    } else {
      fAliITSQADataMakerSim->FillHitsData(fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()],1,nhits);
      fAliITSQADataMakerSim->FillHitsData(2+fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()],imod,nhits);
    }
    for (Int_t iHit=0; iHit<nhits; ++iHit) {
      AliITShit *hit = (AliITShit*) arrHits->At(iHit);
      Double_t xl,yl,zl,xl0,yl0,zl0;
      Double_t tof,tof0;
      hit->GetPositionL(xl,yl,zl,tof);
      hit->GetPositionL0(xl0,yl0,zl0,tof0);
      Float_t dyloc=TMath::Abs(yl-yl0)*10000.;
      fAliITSQADataMakerSim->FillHitsData(3+fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()],dyloc);
      Float_t edep=hit->GetIonization()*1000000;
      if(dyloc>180.){
        fAliITSQADataMakerSim->FillHitsData(4+fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()],edep);
      }
    }
  }
  //
  return rv ; 
}


//_______________________________________________________________

Int_t AliITSQASPDDataMakerSim::GetOffset(AliQAv1::TASKINDEX_t task,Int_t specie){
  // Returns histogram offset according to the specified task
  Int_t offset=0;
  if( task == AliQAv1::kHITS){
    offset=fGenOffsetH[specie];
  }
  else if( task == AliQAv1::kSDIGITS) {
    offset=fGenOffsetS[specie];
  }
  else if( task == AliQAv1::kDIGITS) {
    offset=fGenOffsetD[specie];
  }
  else {
    AliInfo("No task has been selected. TaskHisto set to zero.\n");
  }

  return offset;
}

//____________________________________________________________________________ 
void AliITSQASPDDataMakerSim::SetOffset(AliQAv1::TASKINDEX_t task, Int_t offset,Int_t specie ){
  // Returns histogram offset according to the specified task
  if( task == AliQAv1::kHITS){
    fGenOffsetH[specie] = offset;  
  }
  else if( task == AliQAv1::kSDIGITS) {
    fGenOffsetS[specie] = offset;   
  }
  else if( task == AliQAv1::kDIGITS) {
    fGenOffsetD[specie] = offset;   
  }
  else {
    AliInfo("No task has been selected. TaskHisto set to zero.\n");
  }
}

//_______________________________________________________________

Int_t AliITSQASPDDataMakerSim::GetTaskHisto(AliQAv1::TASKINDEX_t task) {
  // Returns the number of booked histograms for the selected task
  Int_t histotot=0;
  if( task == AliQAv1::kHITS) {
    histotot=fSPDhHTask ;
  }
  else if( task == AliQAv1::kSDIGITS) {
    histotot=fSPDhSTask;
  }
  else if( task == AliQAv1::kDIGITS) {
    histotot=fSPDhDTask ;
  }
  else {
    AliInfo("No task has been selected. TaskHisto set to zero.\n");
  }
  return histotot;

}
 AliITSQASPDDataMakerSim.cxx:1
 AliITSQASPDDataMakerSim.cxx:2
 AliITSQASPDDataMakerSim.cxx:3
 AliITSQASPDDataMakerSim.cxx:4
 AliITSQASPDDataMakerSim.cxx:5
 AliITSQASPDDataMakerSim.cxx:6
 AliITSQASPDDataMakerSim.cxx:7
 AliITSQASPDDataMakerSim.cxx:8
 AliITSQASPDDataMakerSim.cxx:9
 AliITSQASPDDataMakerSim.cxx:10
 AliITSQASPDDataMakerSim.cxx:11
 AliITSQASPDDataMakerSim.cxx:12
 AliITSQASPDDataMakerSim.cxx:13
 AliITSQASPDDataMakerSim.cxx:14
 AliITSQASPDDataMakerSim.cxx:15
 AliITSQASPDDataMakerSim.cxx:16
 AliITSQASPDDataMakerSim.cxx:17
 AliITSQASPDDataMakerSim.cxx:18
 AliITSQASPDDataMakerSim.cxx:19
 AliITSQASPDDataMakerSim.cxx:20
 AliITSQASPDDataMakerSim.cxx:21
 AliITSQASPDDataMakerSim.cxx:22
 AliITSQASPDDataMakerSim.cxx:23
 AliITSQASPDDataMakerSim.cxx:24
 AliITSQASPDDataMakerSim.cxx:25
 AliITSQASPDDataMakerSim.cxx:26
 AliITSQASPDDataMakerSim.cxx:27
 AliITSQASPDDataMakerSim.cxx:28
 AliITSQASPDDataMakerSim.cxx:29
 AliITSQASPDDataMakerSim.cxx:30
 AliITSQASPDDataMakerSim.cxx:31
 AliITSQASPDDataMakerSim.cxx:32
 AliITSQASPDDataMakerSim.cxx:33
 AliITSQASPDDataMakerSim.cxx:34
 AliITSQASPDDataMakerSim.cxx:35
 AliITSQASPDDataMakerSim.cxx:36
 AliITSQASPDDataMakerSim.cxx:37
 AliITSQASPDDataMakerSim.cxx:38
 AliITSQASPDDataMakerSim.cxx:39
 AliITSQASPDDataMakerSim.cxx:40
 AliITSQASPDDataMakerSim.cxx:41
 AliITSQASPDDataMakerSim.cxx:42
 AliITSQASPDDataMakerSim.cxx:43
 AliITSQASPDDataMakerSim.cxx:44
 AliITSQASPDDataMakerSim.cxx:45
 AliITSQASPDDataMakerSim.cxx:46
 AliITSQASPDDataMakerSim.cxx:47
 AliITSQASPDDataMakerSim.cxx:48
 AliITSQASPDDataMakerSim.cxx:49
 AliITSQASPDDataMakerSim.cxx:50
 AliITSQASPDDataMakerSim.cxx:51
 AliITSQASPDDataMakerSim.cxx:52
 AliITSQASPDDataMakerSim.cxx:53
 AliITSQASPDDataMakerSim.cxx:54
 AliITSQASPDDataMakerSim.cxx:55
 AliITSQASPDDataMakerSim.cxx:56
 AliITSQASPDDataMakerSim.cxx:57
 AliITSQASPDDataMakerSim.cxx:58
 AliITSQASPDDataMakerSim.cxx:59
 AliITSQASPDDataMakerSim.cxx:60
 AliITSQASPDDataMakerSim.cxx:61
 AliITSQASPDDataMakerSim.cxx:62
 AliITSQASPDDataMakerSim.cxx:63
 AliITSQASPDDataMakerSim.cxx:64
 AliITSQASPDDataMakerSim.cxx:65
 AliITSQASPDDataMakerSim.cxx:66
 AliITSQASPDDataMakerSim.cxx:67
 AliITSQASPDDataMakerSim.cxx:68
 AliITSQASPDDataMakerSim.cxx:69
 AliITSQASPDDataMakerSim.cxx:70
 AliITSQASPDDataMakerSim.cxx:71
 AliITSQASPDDataMakerSim.cxx:72
 AliITSQASPDDataMakerSim.cxx:73
 AliITSQASPDDataMakerSim.cxx:74
 AliITSQASPDDataMakerSim.cxx:75
 AliITSQASPDDataMakerSim.cxx:76
 AliITSQASPDDataMakerSim.cxx:77
 AliITSQASPDDataMakerSim.cxx:78
 AliITSQASPDDataMakerSim.cxx:79
 AliITSQASPDDataMakerSim.cxx:80
 AliITSQASPDDataMakerSim.cxx:81
 AliITSQASPDDataMakerSim.cxx:82
 AliITSQASPDDataMakerSim.cxx:83
 AliITSQASPDDataMakerSim.cxx:84
 AliITSQASPDDataMakerSim.cxx:85
 AliITSQASPDDataMakerSim.cxx:86
 AliITSQASPDDataMakerSim.cxx:87
 AliITSQASPDDataMakerSim.cxx:88
 AliITSQASPDDataMakerSim.cxx:89
 AliITSQASPDDataMakerSim.cxx:90
 AliITSQASPDDataMakerSim.cxx:91
 AliITSQASPDDataMakerSim.cxx:92
 AliITSQASPDDataMakerSim.cxx:93
 AliITSQASPDDataMakerSim.cxx:94
 AliITSQASPDDataMakerSim.cxx:95
 AliITSQASPDDataMakerSim.cxx:96
 AliITSQASPDDataMakerSim.cxx:97
 AliITSQASPDDataMakerSim.cxx:98
 AliITSQASPDDataMakerSim.cxx:99
 AliITSQASPDDataMakerSim.cxx:100
 AliITSQASPDDataMakerSim.cxx:101
 AliITSQASPDDataMakerSim.cxx:102
 AliITSQASPDDataMakerSim.cxx:103
 AliITSQASPDDataMakerSim.cxx:104
 AliITSQASPDDataMakerSim.cxx:105
 AliITSQASPDDataMakerSim.cxx:106
 AliITSQASPDDataMakerSim.cxx:107
 AliITSQASPDDataMakerSim.cxx:108
 AliITSQASPDDataMakerSim.cxx:109
 AliITSQASPDDataMakerSim.cxx:110
 AliITSQASPDDataMakerSim.cxx:111
 AliITSQASPDDataMakerSim.cxx:112
 AliITSQASPDDataMakerSim.cxx:113
 AliITSQASPDDataMakerSim.cxx:114
 AliITSQASPDDataMakerSim.cxx:115
 AliITSQASPDDataMakerSim.cxx:116
 AliITSQASPDDataMakerSim.cxx:117
 AliITSQASPDDataMakerSim.cxx:118
 AliITSQASPDDataMakerSim.cxx:119
 AliITSQASPDDataMakerSim.cxx:120
 AliITSQASPDDataMakerSim.cxx:121
 AliITSQASPDDataMakerSim.cxx:122
 AliITSQASPDDataMakerSim.cxx:123
 AliITSQASPDDataMakerSim.cxx:124
 AliITSQASPDDataMakerSim.cxx:125
 AliITSQASPDDataMakerSim.cxx:126
 AliITSQASPDDataMakerSim.cxx:127
 AliITSQASPDDataMakerSim.cxx:128
 AliITSQASPDDataMakerSim.cxx:129
 AliITSQASPDDataMakerSim.cxx:130
 AliITSQASPDDataMakerSim.cxx:131
 AliITSQASPDDataMakerSim.cxx:132
 AliITSQASPDDataMakerSim.cxx:133
 AliITSQASPDDataMakerSim.cxx:134
 AliITSQASPDDataMakerSim.cxx:135
 AliITSQASPDDataMakerSim.cxx:136
 AliITSQASPDDataMakerSim.cxx:137
 AliITSQASPDDataMakerSim.cxx:138
 AliITSQASPDDataMakerSim.cxx:139
 AliITSQASPDDataMakerSim.cxx:140
 AliITSQASPDDataMakerSim.cxx:141
 AliITSQASPDDataMakerSim.cxx:142
 AliITSQASPDDataMakerSim.cxx:143
 AliITSQASPDDataMakerSim.cxx:144
 AliITSQASPDDataMakerSim.cxx:145
 AliITSQASPDDataMakerSim.cxx:146
 AliITSQASPDDataMakerSim.cxx:147
 AliITSQASPDDataMakerSim.cxx:148
 AliITSQASPDDataMakerSim.cxx:149
 AliITSQASPDDataMakerSim.cxx:150
 AliITSQASPDDataMakerSim.cxx:151
 AliITSQASPDDataMakerSim.cxx:152
 AliITSQASPDDataMakerSim.cxx:153
 AliITSQASPDDataMakerSim.cxx:154
 AliITSQASPDDataMakerSim.cxx:155
 AliITSQASPDDataMakerSim.cxx:156
 AliITSQASPDDataMakerSim.cxx:157
 AliITSQASPDDataMakerSim.cxx:158
 AliITSQASPDDataMakerSim.cxx:159
 AliITSQASPDDataMakerSim.cxx:160
 AliITSQASPDDataMakerSim.cxx:161
 AliITSQASPDDataMakerSim.cxx:162
 AliITSQASPDDataMakerSim.cxx:163
 AliITSQASPDDataMakerSim.cxx:164
 AliITSQASPDDataMakerSim.cxx:165
 AliITSQASPDDataMakerSim.cxx:166
 AliITSQASPDDataMakerSim.cxx:167
 AliITSQASPDDataMakerSim.cxx:168
 AliITSQASPDDataMakerSim.cxx:169
 AliITSQASPDDataMakerSim.cxx:170
 AliITSQASPDDataMakerSim.cxx:171
 AliITSQASPDDataMakerSim.cxx:172
 AliITSQASPDDataMakerSim.cxx:173
 AliITSQASPDDataMakerSim.cxx:174
 AliITSQASPDDataMakerSim.cxx:175
 AliITSQASPDDataMakerSim.cxx:176
 AliITSQASPDDataMakerSim.cxx:177
 AliITSQASPDDataMakerSim.cxx:178
 AliITSQASPDDataMakerSim.cxx:179
 AliITSQASPDDataMakerSim.cxx:180
 AliITSQASPDDataMakerSim.cxx:181
 AliITSQASPDDataMakerSim.cxx:182
 AliITSQASPDDataMakerSim.cxx:183
 AliITSQASPDDataMakerSim.cxx:184
 AliITSQASPDDataMakerSim.cxx:185
 AliITSQASPDDataMakerSim.cxx:186
 AliITSQASPDDataMakerSim.cxx:187
 AliITSQASPDDataMakerSim.cxx:188
 AliITSQASPDDataMakerSim.cxx:189
 AliITSQASPDDataMakerSim.cxx:190
 AliITSQASPDDataMakerSim.cxx:191
 AliITSQASPDDataMakerSim.cxx:192
 AliITSQASPDDataMakerSim.cxx:193
 AliITSQASPDDataMakerSim.cxx:194
 AliITSQASPDDataMakerSim.cxx:195
 AliITSQASPDDataMakerSim.cxx:196
 AliITSQASPDDataMakerSim.cxx:197
 AliITSQASPDDataMakerSim.cxx:198
 AliITSQASPDDataMakerSim.cxx:199
 AliITSQASPDDataMakerSim.cxx:200
 AliITSQASPDDataMakerSim.cxx:201
 AliITSQASPDDataMakerSim.cxx:202
 AliITSQASPDDataMakerSim.cxx:203
 AliITSQASPDDataMakerSim.cxx:204
 AliITSQASPDDataMakerSim.cxx:205
 AliITSQASPDDataMakerSim.cxx:206
 AliITSQASPDDataMakerSim.cxx:207
 AliITSQASPDDataMakerSim.cxx:208
 AliITSQASPDDataMakerSim.cxx:209
 AliITSQASPDDataMakerSim.cxx:210
 AliITSQASPDDataMakerSim.cxx:211
 AliITSQASPDDataMakerSim.cxx:212
 AliITSQASPDDataMakerSim.cxx:213
 AliITSQASPDDataMakerSim.cxx:214
 AliITSQASPDDataMakerSim.cxx:215
 AliITSQASPDDataMakerSim.cxx:216
 AliITSQASPDDataMakerSim.cxx:217
 AliITSQASPDDataMakerSim.cxx:218
 AliITSQASPDDataMakerSim.cxx:219
 AliITSQASPDDataMakerSim.cxx:220
 AliITSQASPDDataMakerSim.cxx:221
 AliITSQASPDDataMakerSim.cxx:222
 AliITSQASPDDataMakerSim.cxx:223
 AliITSQASPDDataMakerSim.cxx:224
 AliITSQASPDDataMakerSim.cxx:225
 AliITSQASPDDataMakerSim.cxx:226
 AliITSQASPDDataMakerSim.cxx:227
 AliITSQASPDDataMakerSim.cxx:228
 AliITSQASPDDataMakerSim.cxx:229
 AliITSQASPDDataMakerSim.cxx:230
 AliITSQASPDDataMakerSim.cxx:231
 AliITSQASPDDataMakerSim.cxx:232
 AliITSQASPDDataMakerSim.cxx:233
 AliITSQASPDDataMakerSim.cxx:234
 AliITSQASPDDataMakerSim.cxx:235
 AliITSQASPDDataMakerSim.cxx:236
 AliITSQASPDDataMakerSim.cxx:237
 AliITSQASPDDataMakerSim.cxx:238
 AliITSQASPDDataMakerSim.cxx:239
 AliITSQASPDDataMakerSim.cxx:240
 AliITSQASPDDataMakerSim.cxx:241
 AliITSQASPDDataMakerSim.cxx:242
 AliITSQASPDDataMakerSim.cxx:243
 AliITSQASPDDataMakerSim.cxx:244
 AliITSQASPDDataMakerSim.cxx:245
 AliITSQASPDDataMakerSim.cxx:246
 AliITSQASPDDataMakerSim.cxx:247
 AliITSQASPDDataMakerSim.cxx:248
 AliITSQASPDDataMakerSim.cxx:249
 AliITSQASPDDataMakerSim.cxx:250
 AliITSQASPDDataMakerSim.cxx:251
 AliITSQASPDDataMakerSim.cxx:252
 AliITSQASPDDataMakerSim.cxx:253
 AliITSQASPDDataMakerSim.cxx:254
 AliITSQASPDDataMakerSim.cxx:255
 AliITSQASPDDataMakerSim.cxx:256
 AliITSQASPDDataMakerSim.cxx:257
 AliITSQASPDDataMakerSim.cxx:258
 AliITSQASPDDataMakerSim.cxx:259
 AliITSQASPDDataMakerSim.cxx:260
 AliITSQASPDDataMakerSim.cxx:261
 AliITSQASPDDataMakerSim.cxx:262
 AliITSQASPDDataMakerSim.cxx:263
 AliITSQASPDDataMakerSim.cxx:264
 AliITSQASPDDataMakerSim.cxx:265
 AliITSQASPDDataMakerSim.cxx:266
 AliITSQASPDDataMakerSim.cxx:267
 AliITSQASPDDataMakerSim.cxx:268
 AliITSQASPDDataMakerSim.cxx:269
 AliITSQASPDDataMakerSim.cxx:270
 AliITSQASPDDataMakerSim.cxx:271
 AliITSQASPDDataMakerSim.cxx:272
 AliITSQASPDDataMakerSim.cxx:273
 AliITSQASPDDataMakerSim.cxx:274
 AliITSQASPDDataMakerSim.cxx:275
 AliITSQASPDDataMakerSim.cxx:276
 AliITSQASPDDataMakerSim.cxx:277
 AliITSQASPDDataMakerSim.cxx:278
 AliITSQASPDDataMakerSim.cxx:279
 AliITSQASPDDataMakerSim.cxx:280
 AliITSQASPDDataMakerSim.cxx:281
 AliITSQASPDDataMakerSim.cxx:282
 AliITSQASPDDataMakerSim.cxx:283
 AliITSQASPDDataMakerSim.cxx:284
 AliITSQASPDDataMakerSim.cxx:285
 AliITSQASPDDataMakerSim.cxx:286
 AliITSQASPDDataMakerSim.cxx:287
 AliITSQASPDDataMakerSim.cxx:288
 AliITSQASPDDataMakerSim.cxx:289
 AliITSQASPDDataMakerSim.cxx:290
 AliITSQASPDDataMakerSim.cxx:291
 AliITSQASPDDataMakerSim.cxx:292
 AliITSQASPDDataMakerSim.cxx:293
 AliITSQASPDDataMakerSim.cxx:294
 AliITSQASPDDataMakerSim.cxx:295
 AliITSQASPDDataMakerSim.cxx:296
 AliITSQASPDDataMakerSim.cxx:297
 AliITSQASPDDataMakerSim.cxx:298
 AliITSQASPDDataMakerSim.cxx:299
 AliITSQASPDDataMakerSim.cxx:300
 AliITSQASPDDataMakerSim.cxx:301
 AliITSQASPDDataMakerSim.cxx:302
 AliITSQASPDDataMakerSim.cxx:303
 AliITSQASPDDataMakerSim.cxx:304
 AliITSQASPDDataMakerSim.cxx:305
 AliITSQASPDDataMakerSim.cxx:306
 AliITSQASPDDataMakerSim.cxx:307
 AliITSQASPDDataMakerSim.cxx:308
 AliITSQASPDDataMakerSim.cxx:309
 AliITSQASPDDataMakerSim.cxx:310
 AliITSQASPDDataMakerSim.cxx:311
 AliITSQASPDDataMakerSim.cxx:312
 AliITSQASPDDataMakerSim.cxx:313
 AliITSQASPDDataMakerSim.cxx:314
 AliITSQASPDDataMakerSim.cxx:315
 AliITSQASPDDataMakerSim.cxx:316
 AliITSQASPDDataMakerSim.cxx:317
 AliITSQASPDDataMakerSim.cxx:318
 AliITSQASPDDataMakerSim.cxx:319
 AliITSQASPDDataMakerSim.cxx:320
 AliITSQASPDDataMakerSim.cxx:321
 AliITSQASPDDataMakerSim.cxx:322
 AliITSQASPDDataMakerSim.cxx:323
 AliITSQASPDDataMakerSim.cxx:324
 AliITSQASPDDataMakerSim.cxx:325
 AliITSQASPDDataMakerSim.cxx:326
 AliITSQASPDDataMakerSim.cxx:327
 AliITSQASPDDataMakerSim.cxx:328
 AliITSQASPDDataMakerSim.cxx:329
 AliITSQASPDDataMakerSim.cxx:330
 AliITSQASPDDataMakerSim.cxx:331
 AliITSQASPDDataMakerSim.cxx:332
 AliITSQASPDDataMakerSim.cxx:333
 AliITSQASPDDataMakerSim.cxx:334
 AliITSQASPDDataMakerSim.cxx:335
 AliITSQASPDDataMakerSim.cxx:336
 AliITSQASPDDataMakerSim.cxx:337
 AliITSQASPDDataMakerSim.cxx:338
 AliITSQASPDDataMakerSim.cxx:339
 AliITSQASPDDataMakerSim.cxx:340
 AliITSQASPDDataMakerSim.cxx:341
 AliITSQASPDDataMakerSim.cxx:342
 AliITSQASPDDataMakerSim.cxx:343
 AliITSQASPDDataMakerSim.cxx:344
 AliITSQASPDDataMakerSim.cxx:345
 AliITSQASPDDataMakerSim.cxx:346
 AliITSQASPDDataMakerSim.cxx:347
 AliITSQASPDDataMakerSim.cxx:348
 AliITSQASPDDataMakerSim.cxx:349
 AliITSQASPDDataMakerSim.cxx:350
 AliITSQASPDDataMakerSim.cxx:351
 AliITSQASPDDataMakerSim.cxx:352
 AliITSQASPDDataMakerSim.cxx:353
 AliITSQASPDDataMakerSim.cxx:354
 AliITSQASPDDataMakerSim.cxx:355
 AliITSQASPDDataMakerSim.cxx:356
 AliITSQASPDDataMakerSim.cxx:357
 AliITSQASPDDataMakerSim.cxx:358
 AliITSQASPDDataMakerSim.cxx:359
 AliITSQASPDDataMakerSim.cxx:360
 AliITSQASPDDataMakerSim.cxx:361
 AliITSQASPDDataMakerSim.cxx:362
 AliITSQASPDDataMakerSim.cxx:363
 AliITSQASPDDataMakerSim.cxx:364
 AliITSQASPDDataMakerSim.cxx:365
 AliITSQASPDDataMakerSim.cxx:366
 AliITSQASPDDataMakerSim.cxx:367
 AliITSQASPDDataMakerSim.cxx:368
 AliITSQASPDDataMakerSim.cxx:369
 AliITSQASPDDataMakerSim.cxx:370
 AliITSQASPDDataMakerSim.cxx:371
 AliITSQASPDDataMakerSim.cxx:372
 AliITSQASPDDataMakerSim.cxx:373
 AliITSQASPDDataMakerSim.cxx:374
 AliITSQASPDDataMakerSim.cxx:375
 AliITSQASPDDataMakerSim.cxx:376
 AliITSQASPDDataMakerSim.cxx:377
 AliITSQASPDDataMakerSim.cxx:378
 AliITSQASPDDataMakerSim.cxx:379
 AliITSQASPDDataMakerSim.cxx:380
 AliITSQASPDDataMakerSim.cxx:381
 AliITSQASPDDataMakerSim.cxx:382
 AliITSQASPDDataMakerSim.cxx:383
 AliITSQASPDDataMakerSim.cxx:384
 AliITSQASPDDataMakerSim.cxx:385
 AliITSQASPDDataMakerSim.cxx:386
 AliITSQASPDDataMakerSim.cxx:387
 AliITSQASPDDataMakerSim.cxx:388
 AliITSQASPDDataMakerSim.cxx:389
 AliITSQASPDDataMakerSim.cxx:390
 AliITSQASPDDataMakerSim.cxx:391
 AliITSQASPDDataMakerSim.cxx:392
 AliITSQASPDDataMakerSim.cxx:393
 AliITSQASPDDataMakerSim.cxx:394
 AliITSQASPDDataMakerSim.cxx:395
 AliITSQASPDDataMakerSim.cxx:396
 AliITSQASPDDataMakerSim.cxx:397
 AliITSQASPDDataMakerSim.cxx:398
 AliITSQASPDDataMakerSim.cxx:399
 AliITSQASPDDataMakerSim.cxx:400
 AliITSQASPDDataMakerSim.cxx:401
 AliITSQASPDDataMakerSim.cxx:402
 AliITSQASPDDataMakerSim.cxx:403
 AliITSQASPDDataMakerSim.cxx:404
 AliITSQASPDDataMakerSim.cxx:405
 AliITSQASPDDataMakerSim.cxx:406
 AliITSQASPDDataMakerSim.cxx:407
 AliITSQASPDDataMakerSim.cxx:408
 AliITSQASPDDataMakerSim.cxx:409
 AliITSQASPDDataMakerSim.cxx:410
 AliITSQASPDDataMakerSim.cxx:411
 AliITSQASPDDataMakerSim.cxx:412
 AliITSQASPDDataMakerSim.cxx:413
 AliITSQASPDDataMakerSim.cxx:414
 AliITSQASPDDataMakerSim.cxx:415
 AliITSQASPDDataMakerSim.cxx:416
 AliITSQASPDDataMakerSim.cxx:417
 AliITSQASPDDataMakerSim.cxx:418
 AliITSQASPDDataMakerSim.cxx:419
 AliITSQASPDDataMakerSim.cxx:420
 AliITSQASPDDataMakerSim.cxx:421
 AliITSQASPDDataMakerSim.cxx:422
 AliITSQASPDDataMakerSim.cxx:423
 AliITSQASPDDataMakerSim.cxx:424
 AliITSQASPDDataMakerSim.cxx:425
 AliITSQASPDDataMakerSim.cxx:426
 AliITSQASPDDataMakerSim.cxx:427
 AliITSQASPDDataMakerSim.cxx:428
 AliITSQASPDDataMakerSim.cxx:429
 AliITSQASPDDataMakerSim.cxx:430
 AliITSQASPDDataMakerSim.cxx:431
 AliITSQASPDDataMakerSim.cxx:432