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

///////////////////////////////////////////////////////////////////////////////
///
/// This class provides storage container ITS SSD module callibration data
/// used by DA. 
/// 
/// Date: 09/07/2009
///////////////////////////////////////////////////////////////////////////////

#include "AliITSNoiseSSD.h"
#include "AliITSPedestalSSD.h"
#include "AliITSBadChannelsSSD.h"
#include "AliITSModuleDaSSD.h"
#include "TString.h"
#include "AliLog.h"

ClassImp(AliITSModuleDaSSD)


const Int_t   AliITSModuleDaSSD::fgkStripsPerModule   = 1536;   // Number of strips per SSD module
const Int_t   AliITSModuleDaSSD::fgkPNStripsPerModule = 768;    // Number of N/P strips per SSD module
const Int_t   AliITSModuleDaSSD::fgkStripsPerChip     = 128;    // Number of strips per chip HAL25
const UChar_t AliITSModuleDaSSD::fgkMaxAdNumber       = 9;      // MAx SSD FEROM AD number
const UChar_t AliITSModuleDaSSD::fgkMaxAdcNumber      = 13;     // MAx SSD FEROM ADC number
const Int_t   AliITSModuleDaSSD::fgkChipsPerModule    = 12;     // Number of HAL25 chips per SSD module



using namespace std;

//______________________________________________________________________________
AliITSModuleDaSSD::AliITSModuleDaSSD() :
  fEquipId(0),
  fEquipType(0),
  fDdlId(0),
  fAd(0),
  fAdc(0),
  fModuleId(0),
  fNumberOfStrips(0),
  fStrips(NULL),
  fNumberOfChips(0),
  fCm(NULL),
  fCmFerom(NULL),
  fEventsNumber(0)
{
// Default constructor
}


//______________________________________________________________________________
AliITSModuleDaSSD::AliITSModuleDaSSD(const UChar_t ddlID, const UChar_t ad, const UChar_t adc, const UShort_t moduleID) :
  fEquipId(0),
  fEquipType(0),
  fDdlId(ddlID),
  fAd(ad),
  fAdc(adc),
  fModuleId(moduleID),
  fNumberOfStrips(0),
  fStrips(NULL),
  fNumberOfChips(0),
  fCm(NULL),
  fCmFerom(NULL),
  fEventsNumber(0)
{
// Constructor, set module id data
}



//______________________________________________________________________________
AliITSModuleDaSSD::AliITSModuleDaSSD(const Int_t numberofstrips) :
  fEquipId(0),
  fEquipType(0),
  fDdlId(0),
  fAd(0),
  fAdc(0),
  fModuleId(0),
  fNumberOfStrips(0),
  fStrips(NULL),
  fNumberOfChips(0),
  fCm(NULL),
  fCmFerom(NULL),
  fEventsNumber(0)
{
// Constructor, allocates memory for AliITSChannelDaSSD* and TArrayS* array for CM calculated in FEROM
  if (numberofstrips != fgkStripsPerModule) 
    AliWarning(Form("AliITSModuleDaSSD: ALICE ITS SSD Module contains %i strips", fgkStripsPerModule));
  fStrips = new (nothrow) AliITSChannelDaSSD* [numberofstrips];
  if (fStrips) {
     fNumberOfStrips = numberofstrips;
     for (Int_t i = 0; i < numberofstrips; i++) fStrips[i]= NULL;
  } else {
     AliError(Form("AliITSModuleDaSSD: Error allocating memory for %i AliITSChannelDaSSD* objects!", numberofstrips));
     fNumberOfStrips = 0;
     fStrips = NULL;
  }  
}


//______________________________________________________________________________
AliITSModuleDaSSD::AliITSModuleDaSSD(const Int_t numberofstrips, const Long_t eventsnumber) :
  fEquipId(0),
  fEquipType(0),
  fDdlId(0),
  fAd(0),
  fAdc(0),
  fModuleId(0),
  fNumberOfStrips(0),
  fStrips(NULL),
  fNumberOfChips(0),
  fCm(NULL),
  fCmFerom(NULL),
  fEventsNumber(0)
{
// Constructor, allocates memory for AliITSChannelDaSSD* and events data
  if (numberofstrips != fgkStripsPerModule) 
    AliWarning(Form("AliITSModuleDaSSD: ALICE ITS SSD Module contains %i strips", fgkStripsPerModule));
  fStrips = new (nothrow) AliITSChannelDaSSD* [numberofstrips];
  if (fStrips) {
     fNumberOfStrips = numberofstrips;
     memset(fStrips, 0, numberofstrips * sizeof(AliITSChannelDaSSD*));
     for (Int_t i = 0; i < fNumberOfStrips; i++) {
       fStrips[i] = new AliITSChannelDaSSD(i, eventsnumber);
       if (!fStrips[i]) AliError(Form("AliITSModuleDaSSD: Error allocating memory for AliITSChannelDaSSD %i-th object", i));
     }
  } else {
     AliError(Form("AliITSModuleDaSSD: Error allocating memory for %i AliITSChannelDaSSD* objects!", numberofstrips));
     fNumberOfStrips = 0;
     fStrips = NULL;
  }  
}



//______________________________________________________________________________
AliITSModuleDaSSD::AliITSModuleDaSSD(const AliITSModuleDaSSD& module) :
  TObject(module),
  fEquipId(module.fEquipId),
  fEquipType(module.fEquipType),
  fDdlId(module.fDdlId),
  fAd(module.fAd),
  fAdc(module.fAdc),
  fModuleId(module.fModuleId),
  fNumberOfStrips(module.fNumberOfStrips),
  fStrips(NULL),
  fNumberOfChips(module.fNumberOfChips),
  fCm(NULL),
  fCmFerom(NULL),
  fEventsNumber(module.fEventsNumber)
{
// copy constructor
  if ((module.fNumberOfStrips > 0) && (module.fStrips)) {
    fStrips = new (nothrow) AliITSChannelDaSSD* [module.fNumberOfStrips];
    if (fStrips) {
      for (Int_t strind = 0; strind < module.fNumberOfStrips; strind++) {
        if (module.fStrips[strind]) {
	  fStrips[strind] = new AliITSChannelDaSSD(*(module.fStrips[strind]));
	  if (!fStrips[strind]) { 
	    AliError("AliITSModuleDaSSD: Error copy constructor");
            for (Int_t i = (strind - 1); i >= 0; i--) delete fStrips[strind];
	    delete [] fStrips;
	    fStrips = NULL;
	    break;
	  }
	} else fStrips[strind] = NULL; 
      }	  
    } else {
       AliError(Form("AliITSModuleDaSSD: Error allocating memory for %i AliITSChannelDaSSD* objects!", module.fNumberOfStrips));
       fNumberOfStrips = 0;
       fStrips = NULL;
    }  
  }
  if (module.fCm) {
    fCm = new (nothrow) TArrayF [module.fNumberOfChips];
    if (fCm) {
      for (Int_t chind = 0; chind < module.fNumberOfChips; chind++) fCm[chind] = module.fCm[chind]; 
    } else {
       AliError(Form("AliITSModuleDaSSD: Error allocating memory for %i TArrayF objects!", module.fNumberOfChips));
       fNumberOfChips = 0;
       fCm = NULL;
    }  
  }
  
  if (module.fCmFerom) {
    fCmFerom = new (nothrow) TArrayS [fgkChipsPerModule];
    if (fCmFerom) {
      for (Int_t chind = 0; chind < fgkChipsPerModule; chind++) fCmFerom[chind] = module.fCmFerom[chind]; 
    } else {
       AliError(Form("AliITSModuleDaSSD: Error allocating memory for %i TArrayS objects!", fgkChipsPerModule));
       fCmFerom = NULL;
    }  
  }
}



//______________________________________________________________________________
AliITSModuleDaSSD& AliITSModuleDaSSD::operator = (const AliITSModuleDaSSD& module)
{
// assignment operator
  if (this == &module)  return *this;  
  TObject::operator=(module);
  if (fStrips) {
    for (Long_t i = 0; i < fNumberOfStrips; i++) if (fStrips[i]) delete fStrips[i];
    delete [] fStrips;
    fStrips = NULL;
  } 
  fEquipId = module.fEquipId;
  fEquipType = module.fEquipType;
  fDdlId = module.fDdlId;
  fAd = module.fAd;
  fAdc = module.fAdc;
  fModuleId = module.fModuleId;
  fStrips = NULL;
  fNumberOfChips = module.fNumberOfChips;
  fCm = NULL;
  fEventsNumber = module.fEventsNumber;
  if ((module.fNumberOfStrips > 0) && (module.fStrips)) {
    fStrips = new (nothrow) AliITSChannelDaSSD* [module.fNumberOfStrips];
    if (fStrips) {
      memset(fStrips, 0, (sizeof(AliITSChannelDaSSD*) * module.fNumberOfStrips));
      for (Int_t strind = 0; strind < module.fNumberOfStrips; strind++) {
        if (module.fStrips[strind]) {
          fStrips[strind] = new AliITSChannelDaSSD(*(module.fStrips[strind]));
          if (!fStrips[strind]) { 
            AliError("AliITSModuleDaSSD: Error copy constructor");
            for (Int_t i = (strind - 1); i >= 0; i--) delete fStrips[strind];
            delete [] fStrips;
            fStrips = NULL;
            fNumberOfStrips = 0;
            break;
          }
        } else fStrips[strind] = NULL; 
      }
      fNumberOfStrips = module.fNumberOfStrips;
    } else {
       AliError(Form("AliITSModuleDaSSD: Error allocating memory for %i AliITSChannelDaSSD* objects!", module.fNumberOfStrips));
       fNumberOfStrips = 0;
       fStrips = NULL;
    }  
  }
  if (fCm) delete [] fCm;
  if (module.fCm) {
    fCm = new (nothrow) TArrayF [module.fNumberOfChips];
    if (fCm) {
      for (Int_t chind = 0; chind < module.fNumberOfChips; chind++) fCm[chind] = module.fCm[chind]; 
    } else {
       AliError(Form("AliITSModuleDaSSD: Error allocating memory for %i TArrayF objects!", module.fNumberOfChips));
       fNumberOfChips = 0;
       fCm = NULL;
    }  
  }  
  if (fCmFerom) { delete [] fCmFerom; fCmFerom = NULL; }
  if (module.fCmFerom) {
    fCmFerom = new (nothrow) TArrayS [module.fNumberOfChips];
    if (fCmFerom) {
      for (Int_t chind = 0; chind < fgkChipsPerModule; chind++) fCmFerom[chind] = module.fCmFerom[chind]; 
    } else {
       AliError(Form("AliITSModuleDaSSD: Error allocating memory for %i TArrayS objects!", fgkChipsPerModule));
       fCmFerom = NULL;
    }  
  }  
  return *this;
}
    

    
//______________________________________________________________________________
AliITSModuleDaSSD::~AliITSModuleDaSSD()
{
// Destructor
  if (fStrips)
  {
    for (Long_t i = 0; i < fNumberOfStrips; i++)
    { 
      if (fStrips[i]) delete fStrips[i];
    }
    delete [] fStrips;
  } 
  if (fCm) delete [] fCm;
  if (fCmFerom) delete [] fCmFerom;
}



//______________________________________________________________________________
Bool_t AliITSModuleDaSSD::SetNumberOfStrips(const Int_t numberofstrips)
{
// Allocates memory for AliITSChannelDaSSD*
  if (fStrips) {
    for (Int_t i = 0; i < fNumberOfStrips; i++) if (fStrips[i]) delete fStrips[i];
    delete [] fStrips;
    fStrips = NULL;
  }  
  if (numberofstrips <= 0) {fNumberOfStrips = 0; return kTRUE; } 
  if (numberofstrips != fgkStripsPerModule) 
    AliWarning(Form("AliITSModuleDaSSD: ALICE ITS SSD Module contains %i strips", fgkStripsPerModule));
  fStrips = new (nothrow) AliITSChannelDaSSD* [numberofstrips];
  if (fStrips) {
     fNumberOfStrips = numberofstrips;
     memset(fStrips, 0, sizeof(AliITSChannelDaSSD*) * numberofstrips);
     return kTRUE;
  } else {
     AliError(Form("AliITSModuleDaSSD: Error allocating memory for %i AliITSChannelDaSSD* objects!", numberofstrips));
     fNumberOfStrips = 0;
     fStrips = NULL;
     return kFALSE;
  }  
}


//______________________________________________________________________________
Bool_t AliITSModuleDaSSD::SetNumberOfChips(const Int_t nchips)
{
// Allocate nchips TArrayF objects to save Common Mode
  DeleteCM();
  if (nchips <= 0) {fNumberOfChips = 0; return kTRUE; } 
  if (nchips != fgkChipsPerModule) 
    AliWarning(Form("AliITSModuleDaSSD: ALICE ITS SSD Module contains %i HAL25 chips", fgkChipsPerModule));
  fCm = new (nothrow) TArrayF [nchips];
  if (fCm) {
     fNumberOfChips = nchips;
     return kTRUE;
  } else {
     AliError(Form("AliITSModuleDaSSD: Error allocating memory for %i TArrayF objects!", nchips));
     fNumberOfChips = 0;
     fCm = NULL;
     return kFALSE;
  }  
}

  
//______________________________________________________________________________
Bool_t AliITSModuleDaSSD::SetModuleIdData (const UChar_t ddlID, const UChar_t ad, const UChar_t adc, const Short_t moduleID)
{
// SetModuleIdData
  if (ad > fgkMaxAdNumber) {
    AliWarning(Form("AliITSModuleDaSSD: Wrong AD number: %i", ad));
    return kFALSE;
  }  
  if (adc > fgkMaxAdcNumber || ForbiddenAdcNumber(adc)) {
    AliWarning(Form("AliITSModuleDaSSD: Wrong ADC number: %i", adc));
    return kFALSE;
  }  
  fDdlId = ddlID;
  fAd = ad;
  fAdc = adc;
  fModuleId = moduleID;
  return kTRUE;
}


//______________________________________________________________________________
void AliITSModuleDaSSD::SetModuleFEEId (const UChar_t ddlID, const UChar_t ad, const UChar_t adc)
{
// Set id data of FEE connected to the Module
  fDdlId = ddlID;
  fAd = ad;
  fAdc = adc;
}


//______________________________________________________________________________
void AliITSModuleDaSSD::SetModuleRorcId (const Int_t equipid, const Int_t equiptype)
{
// Set data to access FEROM registres via DDL
  fEquipId = equipid; 
  fEquipType = equiptype;
}


//______________________________________________________________________________
Bool_t AliITSModuleDaSSD::SetEventsNumber(const Long_t eventsnumber)
{
// Allocate the memory for the events data
  Int_t i;
  if (!fStrips) return kFALSE;
  for (i = 0; i < fNumberOfStrips; i++) {
    if (fStrips[i]) { 
      if (!fStrips[i]->SetEvenetsNumber(eventsnumber)) {
        for (Int_t j = 0; j < i; j++) fStrips[j]->DeleteSignal();
        AliError(Form("AliITSModuleDaSSD: Error allocating memory for %ld event for module %d, strip %d",eventsnumber, (Int_t)fModuleId, i));
        return kFALSE;
      }
    }
    else { 
      if (!(fStrips[i] = new AliITSChannelDaSSD(i, eventsnumber))) {
        for (Int_t j = 0; j < i; j++) delete fStrips[j];
        delete [] fStrips;
        fNumberOfStrips = 0;
        fStrips = NULL;
        AliError(Form("AliITSModuleDaSSD: Error allocating memory for strip %i of module %i!", (Int_t)fModuleId, i));
        return kFALSE;
      }
    }
  }
  fEventsNumber = eventsnumber;
  return kTRUE;
}



//______________________________________________________________________________
Bool_t AliITSModuleDaSSD::SetCM (const Float_t cm, const Int_t chipn, const Int_t evn)
{ 
// Set value of CM for a given chip and event 
  if ((!fCm) || (chipn >= fNumberOfChips)) return kFALSE;
  if (evn >= fCm[chipn].GetSize()) return kFALSE;
  else fCm[chipn][evn] = cm;
  return kTRUE;
}



//______________________________________________________________________________
Float_t  AliITSModuleDaSSD::GetCM(const Int_t chipn, const Long_t evn)   const 
{ 
// Get value of CM for a given chip and event 
  if ((!fCm) || (chipn >= fNumberOfChips)) return 0.0f;
  if (evn >= fCm[chipn].GetSize()) return 0.0f;
  else return fCm[chipn][evn];
}


//______________________________________________________________________________
Bool_t  AliITSModuleDaSSD::AllocateCMFeromArray(void)
{
// Allocates memory for the channels which contains CM calculated in Ferom
 if (!fCmFerom) { 
    fCmFerom = new (nothrow) TArrayS [fgkChipsPerModule];
    if (!fCmFerom) {
       AliError(Form("AliITSModuleDaSSD: Error allocating memory for %i TArrayS objects!", fgkChipsPerModule));
       fCmFerom = NULL;
       return kFALSE;
    }
  }
  return kTRUE;
}


//______________________________________________________________________________
Bool_t  AliITSModuleDaSSD::SetCMFeromEventsNumber(const Long_t eventsnumber)
{
// Allocates memory for the values of CM calculated in Ferom
  if (!fCmFerom) return kFALSE;
  for (Int_t chipind = 0; chipind < fgkChipsPerModule; chipind++) {
      fCmFerom[chipind].Set(eventsnumber);
      fCmFerom[chipind].Reset(0);
  }
  return kTRUE;
}

//______________________________________________________________________________
Bool_t AliITSModuleDaSSD::SetCMFerom (const Short_t cm, const Int_t chipn, const Int_t evn)
{ 
// Set value of FeromCM for a given chip and event 
  if ((!fCmFerom) || (chipn >= fgkChipsPerModule)) return kFALSE;
  if (evn >= fCmFerom[chipn].GetSize()) return kFALSE;
  else fCmFerom[chipn][evn] = cm;
  return kTRUE;
}


void  AliITSModuleDaSSD::SetCMFerom (Short_t* cm, const Int_t chipn)
// Set value of FeromCM for a given chip
{ 
  if (!fCmFerom) 
    if (!AllocateCMFeromArray()) return;
  if (chipn < fgkChipsPerModule) fCmFerom[chipn].Set(fCmFerom[chipn].GetSize(), cm); 
}


//______________________________________________________________________________
Short_t  AliITSModuleDaSSD::GetCMFerom(const Int_t chipn, const Long_t evn)   const 
{ 
// Get value of FeromCM for a given chip and event 
  if ((!fCmFerom) || (chipn >= fgkChipsPerModule)) return 0;
  if (evn >= fCmFerom[chipn].GetSize()) return 0;
  else return fCmFerom[chipn][evn];
}

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