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 Feb 2008
//  INFN Torino
//  SSD QA part: P. Christakoglou - NIKHEF/UU

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

// --- AliRoot header files ---
#include "AliITS.h"
#include "AliITSmodule.h"
#include "AliITShit.h"
#include "AliITSdigit.h"
#include "AliITSpListItem.h"
#include "AliRun.h"
#include "AliITSQADataMakerSim.h"
#include "AliITSQASSDDataMakerSim.h"
#include "AliLog.h"
#include "AliQAv1.h"
#include "AliQAChecker.h"
#include "AliRawReader.h"

ClassImp(AliITSQASSDDataMakerSim)

//____________________________________________________________________________ 
AliITSQASSDDataMakerSim::AliITSQASSDDataMakerSim(AliITSQADataMakerSim *aliITSQADataMakerSim) :
TObject(),
fAliITSQADataMakerSim(aliITSQADataMakerSim),
//fSSDhTask(0),
fSSDhHTask(0),
fSSDhSTask(0),
fSSDhDTask(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;
    }  
}

//____________________________________________________________________________ 
AliITSQASSDDataMakerSim::AliITSQASSDDataMakerSim(const AliITSQASSDDataMakerSim& qadm) :
TObject(),
fAliITSQADataMakerSim(qadm.fAliITSQADataMakerSim),
//fSSDhTask(qadm.fSSDhTask),
fSSDhHTask(qadm.fSSDhHTask),
fSSDhSTask(qadm.fSSDhSTask),
fSSDhDTask(qadm.fSSDhDTask),
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());
  }

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

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

//____________________________________________________________________________ 
void AliITSQASSDDataMakerSim::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 AliITSQASSDDataMakerSim::InitDigits() { 
  // Initialization for DIGIT data - SSD -
  const Bool_t expert   = kTRUE ; 
  const Bool_t image    = kTRUE ; 
  Int_t rv = 0 ; 
 // fGenOffsetD = (fAliITSQADataMakerSim->fDigitsQAList[AliRecoParam::kDefault])->GetEntries();

  // custom code here
  TH1F *fHistSSDModule = new TH1F("fHistSSDDigitsModule",
				  "SSD Digits Module;SSD Module Number;N_{DIGITS}",
				  1698,499.5,2197.5);  
  rv = fAliITSQADataMakerSim->Add2DigitsList(fHistSSDModule,
					fGenOffsetD[fAliITSQADataMakerSim->GetEventSpecie()] + 0, !expert, image);
  fSSDhDTask += 1;
  TH2F *fHistSSDModuleStrip = new TH2F("fHistSSDDigitsModuleStrip",
				       "SSD Digits Module Strip;N_{Strip};N_{Module}",
				       1540,0,1540,1698,499.5,2197.5);  
  rv = fAliITSQADataMakerSim->Add2DigitsList(fHistSSDModuleStrip,
					fGenOffsetD[fAliITSQADataMakerSim->GetEventSpecie()] + 1, !expert, image);
  fSSDhDTask += 1;

  AliDebug(AliQAv1::GetQADebugLevel(),Form("%d SSD Digits histograms booked\n",fSSDhDTask));
  return rv ; 
}

//____________________________________________________________________________
Int_t AliITSQASSDDataMakerSim::MakeDigits(TTree *digits) 
{ 
  // Fill QA for DIGIT - SSD -
  Int_t rv = 0 ; 

  AliITS *fITS  = (AliITS*)gAlice->GetModule("ITS");
  fITS->SetTreeAddress();
  TClonesArray *iSSDdigits  = fITS->DigitsAddress(2);
  for(Int_t iModule = 500; iModule < 2198; iModule++) {
    iSSDdigits->Clear();
    digits->GetEvent(iModule);    
    Int_t ndigits = iSSDdigits->GetEntries();
    fAliITSQADataMakerSim->FillDigitsData(fGenOffsetD[fAliITSQADataMakerSim->GetEventSpecie()] + 0,iModule,ndigits);
    if(ndigits != 0)
      AliDebug(AliQAv1::GetQADebugLevel(),Form("Module: %d - Digits: %d",iModule,ndigits));
 
    for (Int_t iDigit = 0; iDigit < ndigits; iDigit++) {
      AliITSdigit *dig = (AliITSdigit*)iSSDdigits->UncheckedAt(iDigit);
      Int_t fStripNumber = (dig->GetCoord1() == 0) ? dig->GetCoord2() : dig->GetCoord2() + fgkNumberOfPSideStrips;
      fAliITSQADataMakerSim->FillDigitsData(fGenOffsetD[fAliITSQADataMakerSim->GetEventSpecie()] + 1,fStripNumber,iModule,dig->GetSignal());
    }//digit loop
  }//module loop
  //
  return rv ; 
}

//____________________________________________________________________________ 
Int_t AliITSQASSDDataMakerSim::InitSDigits() { 
  // Initialization for SDIGIT data - SSD -
  const Bool_t expert   = kTRUE ; 
  const Bool_t image    = kTRUE ; 
  Int_t rv = 0 ; 
  //fGenOffsetS = (fAliITSQADataMakerSim->fSDigitsQAList[AliRecoParam::kDefault])->GetEntries();

  // custom code here
  TH1F *fHistSSDModule = new TH1F("fHistSSDSDigitsModule",
				  "SSD SDigits Module;SSD Module Number;N_{SDIGITS}",
				  1698,499.5,2197.5);  
  rv = fAliITSQADataMakerSim->Add2SDigitsList(fHistSSDModule,
					 fGenOffsetS[fAliITSQADataMakerSim->GetEventSpecie()] + 0, !expert, image);
  fSSDhSTask += 1;  

  AliDebug(AliQAv1::GetQADebugLevel(),Form("%d SSD SDigits histograms booked\n",fSSDhSTask));
  //
  return rv ; 
}

//____________________________________________________________________________
Int_t AliITSQASSDDataMakerSim::MakeSDigits(TTree *sdigits) { 
  // Fill QA for SDIGIT - SSD -
  Int_t rv = 0 ; 
 
  static TClonesArray iSSDEmpty("AliITSpListItem",10000);
  iSSDEmpty.Clear();
  TClonesArray *iSSDsdigits = &iSSDEmpty;

  //  AliDebug(AliQAv1::GetQADebugLevel(), Form("Trying to access the sdigits histogram: %d\n",fGenOffsetS));

  TBranch *brchSDigits = sdigits->GetBranch("ITS");
  brchSDigits->SetAddress(&iSSDsdigits);
  for(Int_t iModule = 500; iModule < 2198; iModule++) {
    iSSDsdigits->Clear();
    sdigits->GetEvent(iModule);    
    Int_t ndigits = iSSDsdigits->GetEntries();
    fAliITSQADataMakerSim->FillSDigitsData(fGenOffsetS[fAliITSQADataMakerSim->GetEventSpecie()] + 0,iModule,ndigits);
    if(ndigits != 0)
      AliDebug(AliQAv1::GetQADebugLevel(),Form("Module: %d - Digits: %d",iModule,ndigits));

//     for (Int_t iDigit = 0; iDigit < ndigits; iDigit++) {
//       AliITSpListItem *dig=(AliITSpListItem*)iSSDsdigits->At(iDigit);
//       dig=0;
//     }//digit loop
  }//module loop
  //
  return rv ; 
}

//____________________________________________________________________________ 
Int_t AliITSQASSDDataMakerSim::InitHits() { 
  // Initialization for HITS data - SSD -
  const Bool_t expert   = kTRUE ; 
  const Bool_t image    = kTRUE ; 
  Int_t rv = 0 ; 

  //fGenOffsetH = (fAliITSQADataMakerSim->fHitsQAList[fEventSpecie])->GetEntries();

  // custom code here
  TH1F *fHistSSDModule = new TH1F("fHistSSDHitsModule",
				  "SSD Hits Module;SSD Module Number;N_{HITS}",
				  1698,499.5,2197.5); 
  rv = fAliITSQADataMakerSim->Add2HitsList(fHistSSDModule,
				      fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 0, !expert, image);
  fSSDhHTask += 1;
  TH1F *fHistSSDGlobalX = new TH1F("fHistSSDHitsGlobalX",
				   "SSD Hits Global X;x [cm];Entries",
				   1000,-50.,50.);
  rv = fAliITSQADataMakerSim->Add2HitsList(fHistSSDGlobalX,
				      fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 1, !expert, image);
  fSSDhHTask += 1;
  TH1F *fHistSSDGlobalY = new TH1F("fHistSSDHitsGlobalY",
				   "SSD Hits Global Y;y [cm];Entries",
				   1000,-50.,50.);
  rv = fAliITSQADataMakerSim->Add2HitsList(fHistSSDGlobalY,
				      fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 2, !expert, image);
  fSSDhHTask += 1;
  TH1F *fHistSSDGlobalZ = new TH1F("fHistSSDHitsGlobalZ",
				   "SSD Hits Global Z ;z [cm];Entries",
				   1000,-60.,60.);
  rv = fAliITSQADataMakerSim->Add2HitsList(fHistSSDGlobalZ,
				      fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 3, !expert, image);
  fSSDhHTask += 1;
  TH1F *fHistSSDLocalX = new TH1F("fHistSSDHitsLocalX",
				  "SSD Hits Local X;x [cm];Entries",
				  1000,-4.,4.);
  rv = fAliITSQADataMakerSim->Add2HitsList(fHistSSDLocalX,
				      fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 4, !expert, image);
  fSSDhHTask += 1;
  TH1F *fHistSSDLocalY = new TH1F("fHistSSDHitsLocalY",
				  "SSD Hits Local Y;y [cm];Entries",
				  1000,-0.1,0.1);
  rv = fAliITSQADataMakerSim->Add2HitsList(fHistSSDLocalY,
				      fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 5, !expert, image);
  fSSDhHTask += 1;
  TH1F *fHistSSDLocalZ = new TH1F("fHistSSDHitsLocalZ",
				  "SSD Hits Local Z;z [cm];Entries",
				  1000,-4.,4.);
  rv = fAliITSQADataMakerSim->Add2HitsList(fHistSSDLocalZ,
				      fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 6, !expert, image);
  fSSDhHTask += 1;
  TH1F *fHistSSDIonization = new TH1F("fHistSSDHitsIonization",
				      "SSD Hits Ionization;log(dE/dx) [KeV];N_{Hits}",
				      100,-7,-2);
  rv = fAliITSQADataMakerSim->Add2HitsList(fHistSSDIonization,
				      fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 7, !expert, image);
  fSSDhHTask += 1;
  TH2F *fHistSSDGlobalXY = new TH2F("fHistSSDHitsGlobalXY",
				    "SSD Hits Global XY;x [cm];y [cm]",
				    1000,-50.,50.,
				    1000,-50.,50.);
  rv = fAliITSQADataMakerSim->Add2HitsList(fHistSSDGlobalXY,
				      fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 8, !expert, image);
  fSSDhHTask += 1;
 
  AliDebug(AliQAv1::GetQADebugLevel(),Form("%d SSD Hits histograms booked\n",fSSDhHTask));
  return rv ; 
}


//____________________________________________________________________________
Int_t AliITSQASSDDataMakerSim::MakeHits(TTree *hits) { 
  // Fill QA for HITS - SSD -
  Int_t rv = 0 ; 
 
  AliITS *fITS  = (AliITS*)gAlice->GetModule("ITS");
  fITS->SetTreeAddress();
  Int_t nmodules;
  fITS->InitModules(-1,nmodules);
  fITS->FillModules(hits,0);
  for(Int_t iModule = 500; iModule < 2198; iModule++) {
    AliITSmodule *module = fITS->GetModule(iModule);
    TObjArray *arrHits = module->GetHits();
    Int_t nhits = arrHits->GetEntriesFast();
    if(nhits != 0)
      AliDebug(AliQAv1::GetQADebugLevel(),Form("Module: %d - Hits: %d",iModule,nhits));
    for (Int_t iHit = 0; iHit < nhits; iHit++) {
      AliITShit *hit = (AliITShit*) arrHits->At(iHit);
      
      fAliITSQADataMakerSim->FillHitsData(fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 0,iModule);
      fAliITSQADataMakerSim->FillHitsData(fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 1,hit->GetXG());
      fAliITSQADataMakerSim->FillHitsData(fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 2,hit->GetYG());
      fAliITSQADataMakerSim->FillHitsData(fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 3,hit->GetZG());
      fAliITSQADataMakerSim->FillHitsData(fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 4,hit->GetXL());
      fAliITSQADataMakerSim->FillHitsData(fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 5,hit->GetYL());
      fAliITSQADataMakerSim->FillHitsData(fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 6,hit->GetZL());
      if(hit->GetIonization())
	fAliITSQADataMakerSim->FillHitsData(fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 7,TMath::Log10(hit->GetIonization()));
      fAliITSQADataMakerSim->FillHitsData(fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 8,hit->GetXG(),hit->GetYG());
    }//hit loop
  }//module loop  
  return rv ; 
}

//____________________________________________________________________________ 
Int_t AliITSQASSDDataMakerSim::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 AliITSQASSDDataMakerSim::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 AliITSQASSDDataMakerSim::GetTaskHisto(AliQAv1::TASKINDEX_t task) {
  // Returns the number of booked histograms for the selected task
  Int_t histotot=0;
  if( task == AliQAv1::kHITS) {
    histotot=fSSDhHTask ;  
  }
  else if( task == AliQAv1::kSDIGITS) {
    histotot=fSSDhSTask;   
  }
  else if( task == AliQAv1::kDIGITS) {
    histotot=fSSDhDTask ;   
  }
  else {
    AliInfo("No task has been selected. TaskHisto set to zero.\n");
  }
  return histotot;

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