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

///////////////////////////////////////////////////////////////////
// Implementation of the class for SDD DCS data analysis         //
// Origin: F.Prino, Torino, prino@to.infn.it                     //
//         V.Pospisil, CTU Prague, gdermog@seznam.cz             //
///////////////////////////////////////////////////////////////////


#include "AliITSDCSAnalyzerSDD.h"
#include "AliDCSValue.h"
#include "AliLog.h"
#include "AliITSgeomTGeo.h"

ClassImp(AliITSDCSAnalyzerSDD)

//---------------------------------------------------------------
  AliITSDCSAnalyzerSDD::AliITSDCSAnalyzerSDD(): TObject(),
fHVDelay(0),fMVDelay(0),fTLDelay(0),fTRDelay(0),fStTLDelay(0),fStTRDelay(0),fOKDelay(0),
fHVThresholdFrac(0), fMVThresholdFrac(0), fTLThresholdFrac(0), fTRThresholdFrac(0)
{
// Default constructor
  Init();
  SetHVThreshold();
  SetMVThreshold();
  SetTLThreshold();
  SetTRThreshold();
  for( Int_t moduleLoop = 0; moduleLoop < kNmodules; moduleLoop++ ) fDCSData[moduleLoop] = NULL;
} /*AliITSDCSAnalyzerSDD::AliITSDCSAnalyzerSDD*/

//---------------------------------------------------------------

AliITSDCSAnalyzerSDD::AliITSDCSAnalyzerSDD(const AliITSDCSAnalyzerSDD& /* dcsa */): TObject(),
fHVDelay(0),fMVDelay(0),fTLDelay(0),fTRDelay(0),fStTLDelay(0),fStTRDelay(0),fOKDelay(0),
fHVThresholdFrac(0), fMVThresholdFrac(0), fTLThresholdFrac(0), fTRThresholdFrac(0)
{
// Copy constructor
// Copies are not allowed. The method is protected to avoid misuse.
  AliError("Copy constructor not allowed");
} /*AliITSDCSAnalyzerSDD::AliITSDCSAnalyzerSDD*/

//---------------------------------------------------------------

AliITSDCSAnalyzerSDD& AliITSDCSAnalyzerSDD::operator=(const AliITSDCSAnalyzerSDD& /* dcsa */)
{
// Assigment operator
// Assignment is not allowed. The method is protected to avoid misuse.
  AliError("Assignment operator not allowed");
  return *this;
}/*AliITSDCSAnalyzerSDD::operator=*/

//---------------------------------------------------------------

AliITSDCSAnalyzerSDD::~AliITSDCSAnalyzerSDD()
{ 
// Destructor
  for(int j=0; j<kNmodules; j++)
  {
    if( fDCSData[j] ) delete fDCSData[j];
  } /*for( j )*/
} /*AliITSDCSAnalyzerSDD::~AliITSDCSAnalyzerSDD*/

//---------------------------------------------------------------

void AliITSDCSAnalyzerSDD::AnalyzeData(TMap* dcsMap)
{
// Data processing. Takes DCS points from alias map and sorts them into AliITSDCSDataSDD objects.

   Int_t   counter = 0; // Counter of stored DCS records

   Float_t lastTLValUpper;
   Float_t lastTLValLower;
   Float_t lastTRValUpper;
   Float_t lastTRValLower;
   Float_t lastHVValUpper;
   Float_t lastHVValLower;
   Float_t lastMVValUpper;
   Float_t lastMVValLower;
                        // Thresholds for float DCS variables

   Int_t nEntries=0;      // Number of entries in each TObjArray, that contains DCS variable values
   AliDCSValue *valToProcess;
                        // Pointer to currently processed DCS variable value
   Float_t valToProcessFloat;
                        // Value of currently processed DCS variable


   for( Int_t iLay = 3; iLay < 5; iLay++ )
   {

      Int_t maxLad = ( iLay == 3) ? kNladders3 : kNladders4;
      Int_t maxMod = ( iLay == 3) ? kNmodLad3 : kNmodLad4;

      for(Int_t iLad = 0; iLad < maxLad; iLad++)
      {
         for(Int_t iMod = 0; iMod < maxMod; iMod++)
         {
                        // Loads arrays of DCS variables from map. Variables are 
                        //  searched by names (for ex. SDD_LAYER3_LADDER5_MODULE4_HV)

            Int_t moduleLoop = AliITSgeomTGeo::GetModuleIndex( iLay, iLad + 1, iMod + 1 ) - 240;

            fDCSData[moduleLoop] = new AliITSDCSDataSDD();
                        // DCS data for specific SDD module will be stored in this class

            TObjArray* arrHV = (TObjArray*) dcsMap->GetValue( fHVDPNames[moduleLoop].Data() );
            if(!arrHV) AliWarning( Form("DCS HV alias %s not found!\n", fHVDPNames[moduleLoop].Data()) );

            TObjArray* arrMV = (TObjArray*) dcsMap->GetValue( fMVDPNames[moduleLoop].Data() );
            if(!arrMV) AliWarning( Form("DCS MV alias %s not found!\n", fMVDPNames[moduleLoop].Data()));

            TObjArray* arrOK = (TObjArray*) dcsMap->GetValue( fOKDPNames[moduleLoop].Data() );
            if(!arrOK)  AliWarning( Form("DCS MOD_OK alias %s not found!\n", fOKDPNames[moduleLoop].Data()));

            TObjArray* arrTL = (TObjArray*) dcsMap->GetValue( fTLDPNames[moduleLoop].Data() );
            if(!arrTL) AliWarning( Form("DCS TEMP_L alias %s not found!\n", fTLDPNames[moduleLoop].Data()));

            TObjArray* arrTR = (TObjArray*) dcsMap->GetValue( fTRDPNames[moduleLoop].Data() );
            if(!arrTR) AliWarning( Form("DCS TEMP_R alias %s not found!\n", fTRDPNames[moduleLoop].Data()));

            TObjArray* arrStTL = (TObjArray*) dcsMap->GetValue( fTLStDPNames[moduleLoop].Data() );
            if(!arrStTL) AliWarning( Form("DCS TEMP_L_STATE alias %s not found!\n", fTLStDPNames[moduleLoop].Data()));

            TObjArray* arrStTR = (TObjArray*) dcsMap->GetValue( fTRStDPNames[moduleLoop].Data() );
            if(!arrStTR) AliWarning( Form("DCS TEMP_R_STATE alias %s not found!\n", fTRStDPNames[moduleLoop].Data()));

            lastTLValUpper = -1e-10;
            lastTLValLower = +1e+10;
            lastTRValUpper = -1e-10;
            lastTRValLower = +1e+10;
            lastHVValUpper = -1e-10;
            lastHVValLower = +1e+10;
            lastMVValUpper = -1e-10;
            lastMVValLower = +1e+10;
                        // First value of any DCS variable must be written


            if( arrTL )
            {
               nEntries = arrTL->GetEntries();
               fDCSData[moduleLoop]->SetNPointsTempLeft( nEntries );
                        // Left temperature array size is set

               for( Int_t tlLoop = 0; tlLoop < nEntries; tlLoop++ )
               {        // Left temerature values are copied into the AliITSDCSDataSDD TempLeft array
                  valToProcess = (AliDCSValue *)(arrTL->At(tlLoop));
                  valToProcessFloat = valToProcess->GetFloat();
                        // Value is readed from the input array

                  if( lastTLValLower <= valToProcessFloat && valToProcessFloat <= lastTLValUpper ) continue;
                        // Value did not cross the treshold (upper neither lower),
                        //  it is not necessary to store it.
                  fDCSData[moduleLoop]->SetValueTempLeft( valToProcess->GetTimeStamp() - fTLDelay, valToProcessFloat );
                        // Value is stored
                  lastTLValLower = valToProcessFloat * ( 1.0 - fTLThresholdFrac );
                  lastTLValUpper = valToProcessFloat * ( 1.0 + fTLThresholdFrac );
                        // New tresholds are set
                  counter ++;
               } /*for( tlLoop )*/
            } /*if*/


            if( arrTR )
            {
               nEntries = arrTR->GetEntries();
               fDCSData[moduleLoop]->SetNPointsTempRight( nEntries );
                        // Right temperature array size is set 

               for( Int_t trLoop = 0; trLoop < nEntries; trLoop++ )
               {           // Right temerature values are copied into the AliITSDCSDataSDD TempRight array
                  valToProcess = (AliDCSValue *)(arrTR->At(trLoop));
                  valToProcessFloat = valToProcess->GetFloat();
                         // Value is readed from the input array

                  if( lastTRValLower <= valToProcessFloat && valToProcessFloat <= lastTRValUpper ) continue;
                         // Value did not cross the treshold (upper neither lower),
                         //  it is not necessary to store it.
                  fDCSData[moduleLoop]->SetValueTempRight( valToProcess->GetTimeStamp() - fTRDelay, valToProcessFloat );
                         // Value is stored
                  lastTRValLower = valToProcessFloat * ( 1.0 - fTRThresholdFrac );
                  lastTRValUpper = valToProcessFloat * ( 1.0 + fTRThresholdFrac );
                         // New tresholds are set
                  counter ++;
               } /*for( trLoop )*/
            } /*if*/


            if( arrHV )
            {
               nEntries = arrHV->GetEntries();
               fDCSData[moduleLoop]->SetNPointsHV( nEntries );
                        // HV array size is set 

               for( Int_t hvLoop = 0; hvLoop < nEntries; hvLoop++ )
               {        // HV values are copied into the AliITSDCSDataSDD HV array
                  valToProcess = (AliDCSValue *)(arrHV->At(hvLoop));
                  valToProcessFloat = valToProcess->GetFloat();
                        // Value is readed from the input array
                  if( lastHVValLower <= valToProcessFloat && valToProcessFloat <= lastHVValUpper ) continue;
                        // Value did not cross the treshold (upper neither lower),
                        //  it is not necessary to store it.
                  fDCSData[moduleLoop]->SetValueHV( valToProcess->GetTimeStamp() - fHVDelay, valToProcessFloat );
                        // Value is stored
                  lastHVValLower = valToProcessFloat * ( 1.0 - fHVThresholdFrac );
                  lastHVValUpper = valToProcessFloat * ( 1.0 + fHVThresholdFrac );
                        // New tresholds are set
                  counter ++;
               } /*for( hvLoop )*/

            } /*if*/



            if( arrMV )
            {
               nEntries = arrMV->GetEntries();
               fDCSData[moduleLoop]->SetNPointsMV( nEntries );
                        // MV array size is set 

               for( Int_t mvLoop = 0; mvLoop < nEntries; mvLoop++ )
               {        // MV values are copied into the AliITSDCSDataSDD MV array
                  valToProcess = (AliDCSValue *)(arrMV->At(mvLoop));
                  valToProcessFloat = valToProcess->GetFloat();
                        // Value is readed from the input array
                  if( lastMVValLower <= valToProcessFloat && valToProcessFloat <= lastMVValUpper ) continue;
                        // Value did not cross the treshold (upper neither lower),
                        //  it is not necessary to store it.
                  fDCSData[moduleLoop]->SetValueMV( valToProcess->GetTimeStamp() - fMVDelay, valToProcessFloat );
                        // Value is stored
                  lastMVValLower = valToProcessFloat * ( 1.0 - fMVThresholdFrac );
                  lastMVValUpper = valToProcessFloat * ( 1.0 + fMVThresholdFrac );
                        // New treshold is ser
                  counter ++;
               } /*for( mvLoop )*/

            } /*if*/


/* Following part of the code is responsibile for the condensing of all status information given by DCS
   into one array of Char_t. Each record of this array is in principle a bit map : 

      0. bit ... _OK
      1. bit ... _TEMP_L_STATE
      2. bit ... _TEMP_R_STATE 

   Each record have its own time stamp. Because there are three inputs with independent time stamp,
   some algorithm which assigns new time stamp to bitmap according to three input time stamps is
   necessary.

   Let's vizualize time stamps of the three input arrays. There is time on x-axis :

            +------------+---------------------+------
            |            |                     |          _OK
      +-----++------+----+--------+------------+------
      |      |      |             |            |          _TEMP_L_STATE
   +--+------+---+--+-------+-----+--------+---+------
   |             |          |     |        |   |          _TEMP_R_STATE
   +-------------+----------+-----+--------+---+------

   |   |    | |  |   |   |  |     |        |   |
   V   V    V V  V   V   V  V     V        V   V

   +---+----+-+--+---+---+--+-----+--------+---+------
   |   |    | |  |   |   |  |     |        |   |           Status bitmap
   +---+----+-+--+---+---+--+-----+--------+---+------


   Principle of combining three status records into one is visible from the picture.
   If there are two sequent records with the same status bitmap, they are joined into
   one (with the time stamp of the earliest one).

*/
            Int_t nStTLEntries = 0;
            Int_t nStTREntries = 0;
            Int_t nOKEntries = 0;

            bool arrStTLcreated = false;
            bool arrStTRcreated = false;
            bool arrOKcreated = false;

            if( arrStTL ) 
             nStTLEntries = arrStTL->GetEntries();
            else
             { arrStTL = new TObjArray; arrStTLcreated = true; }

            if( arrStTR ) 
             nStTREntries = arrStTR->GetEntries();
            else
             { arrStTR = new TObjArray; arrStTRcreated = true; }

            if( arrOK ) 
             nOKEntries = arrOK->GetEntries();
            else
             { arrOK = new TObjArray; arrOKcreated = true; }
                        // Gets number of _STAT_L, _STAT_R and _OK values stored in dcsMap. If any array does
                        //  not exist, it must be created (and it will be filled by 0 status later)

            if( nStTLEntries < 1 )
            {           // TObjArray arrStTL is empty. This would cause segmentation violation during
                        //  the condensing, so this case must be handled before algorithm starts
               AliWarning( Form( "%s contains no data!\n", fTLStDPNames[moduleLoop].Data() ) );
               nStTLEntries = 1;
               arrStTL->Add( new AliDCSValue(  (Int_t)0, 0x7FFFFFFF ) );
                        // 0x7FFFFFFF = 2147483647, maximal signed Int_t number. Left temperature
                        //  sensor will be regarded as switched-off during whole run.
            } /*if*/
 
            if( nStTREntries < 1 )
            {           // TObjArray arrStTR is empty. This would cause segmentation violation during
                        //  the condensing, so this case must be handled before algorithm starts
               AliWarning( Form( "%s contains no data!\n", fTRStDPNames[moduleLoop].Data() ) );
               nStTREntries = 1;
               arrStTR->Add( new AliDCSValue(  (Int_t)0, 0x7FFFFFFF ) );
                        // 0x7FFFFFFF = 2147483647, maximal signed Int_t number. Right temperature
                        //  sensor will be regarded as switched-off during whole run.
            } /*if*/

            if( nOKEntries < 1 )
            {           // TObjArray arrOK is empty. This would cause segmentation violation during
                        //  the condensing, so this case must be handled before algorithm starts
               AliWarning( Form( "%s contains no data!\n", fOKDPNames[moduleLoop].Data() ) );
               nOKEntries = 1;
               arrOK->Add( new AliDCSValue(  (Bool_t)0, 0x7FFFFFFF ) );
                        // 0x7FFFFFFF = 2147483647, maximal signed Int_t number.
                        //  Module will be regarded as switched-off during whole run.
            } /*if*/

            arrStTL->Sort();
            arrStTR->Sort();
            arrOK->Sort();
                        // Condensing would work properly only in the case that
                        //  the input arrays are sorted by time

            Int_t nEntriesMax = nStTLEntries + nStTREntries + nOKEntries;
            fDCSData[moduleLoop]->SetNPointsStatus( nEntriesMax );
                        // Determines necessary length of new array and sets its size 
                        //  Lot of space in such defined array will be probably 
                        //  vacant after the analysis, but this will be corrected
                        //  by Compress() method

            Int_t idxStTL = 0;
            Int_t idxStTR = 0;
            Int_t idxOK = 0;
                        // Input arrays indexes

            Int_t tsStTL, tsStTR, tsOK;
                        // Time stamps ofinput arrays
            Int_t tsNew;// New time stamp (output array)

            Char_t bitStatus;   
                        // New status record :
                        // 0. bit ... _OK
                        // 1. bit ... _TEMP_L_STATE
                        // 2. bit ... _TEMP_R_STATE 
            Char_t lastBitStatus = 100;

            AliDCSValue *valStTL, *valStTR, *valOK;
                        // Pointers to input arrays records (input arrays are TObjArrays
                        //  containing objects of type AliDCSValue

            tsStTR = ( (AliDCSValue *)arrStTR->At(0) )->GetTimeStamp() - fStTLDelay;
            tsStTL = ( (AliDCSValue *)arrStTL->At(0) )->GetTimeStamp() - fStTRDelay;
            tsOK = ( (AliDCSValue *)arrOK->At(0) )->GetTimeStamp() - fOKDelay;
                        // Time stamps of first records in input filea are readed (and delays are substracted)

            tsNew = (tsStTR < tsStTL) ? tsStTR : tsStTL;
            if( tsNew > tsOK ) tsNew = tsOK;
                        // Time intervals are "prolonged" to the very eaarliest of time stamps.
                        //  It means that first output time stamp will be the same as the one
                        //  which is first in input arrays. Values of other DCS variables are
                        //  not defined in this time yet, but they will be treated as equal to
                        //  values in first records of input arrays.

            nStTLEntries--; nStTREntries--; nOKEntries--;
                        // Indexes in the input array must not exceed last records.

            while( (idxStTL < nStTLEntries) || (idxStTR < nStTREntries) || (idxOK < nOKEntries) )
            {           // Loop goes throug all three input files

               valStTL = (AliDCSValue *)( arrStTL->At(idxStTL) );
               valStTR = (AliDCSValue *)( arrStTR->At(idxStTR) );
               valOK = (AliDCSValue *)( arrOK->At(idxOK) );
                        // Values are readed from input arrays

               bitStatus = 0;
               if( valOK->GetBool() ) bitStatus += 1;        // 0. bit - _OK
               if( valStTL->GetInt() == 4 ) bitStatus += 2;  // 1. bit - _TEMP_L_STATE
               if( valStTR->GetInt() == 4 ) bitStatus += 4;  // 2. bit - _TEMP_R_STATE
                        // Bit map is created. *TEMP_*_STATE == 4 means "Thermometer is OK"

               if( lastBitStatus != bitStatus )
               {        // If the status bitmap is the same as last one, it would not be stored.
                        //  It will save much space.
                  fDCSData[moduleLoop]->SetValueStatus( tsNew, bitStatus );
                        // Bit map is written into the output array (if different from last value )
                  lastBitStatus = bitStatus;
                  counter += nEntries;
               } /*if*/

               if( idxStTL == nStTLEntries )
                tsStTL = 0x7FFFFFFF;  // = 2147483647, maximal signed Int_t number
               else
                tsStTL = ( (AliDCSValue *)arrStTL->At(idxStTL + 1) )->GetTimeStamp() - fStTLDelay;

               if( idxStTR == nStTREntries )
                tsStTR = 0x7FFFFFFF;  // = 2147483647, maximal signed Int_t number
               else
                tsStTR = ( (AliDCSValue *)arrStTR->At(idxStTR + 1) )->GetTimeStamp() - fStTRDelay;

               if( idxOK == nOKEntries )
                tsOK = 0x7FFFFFFF;    // = 2147483647, maximal signed Int_t number
               else
                tsOK = ( (AliDCSValue *)arrOK->At(idxOK + 1) )->GetTimeStamp() - fOKDelay;
                        // Reads time stamps of folowing records in the input arrays (and substracts delays).
                        // Validity of the last records in the input arrays are prolonged
                        //  to "infinity"

               if( tsStTL == tsOK && tsStTR == tsOK )  { tsNew = tsStTL; idxStTL++; idxStTR++; idxOK++; continue; }
               if( tsStTL == tsStTR && tsStTR < tsOK ) { tsNew = tsStTL; idxStTL++; idxStTR++; continue; }
               if( tsStTL == tsOK && tsOK < tsStTR )   { tsNew = tsStTL; idxStTL++; idxOK++; continue; }
               if( tsStTR == tsOK && tsOK < tsStTL )   { tsNew = tsStTR; idxStTR++; idxOK++; continue; } 
               if( tsOK < tsStTL && tsOK < tsStTR )    { tsNew = tsOK;   idxOK++;   continue; }
               if( tsStTL < tsOK && tsStTL < tsStTR )  { tsNew = tsStTL; idxStTL++; continue; }
               /*Last possibile case*/                 { tsNew = tsStTR; idxStTR++; }

                        // Index of array, whose following record have time stamp closest to just written one,
                        //  is increased. If there are more records with identical time stamps meeting this condition,
                        //  all correspondent indexes are increased. 

            } /*while*/

            fDCSData[moduleLoop]->Compress();
                        // Size taken by data in AliITSDCSDataSDD object is minimalized

            if( arrStTRcreated ) delete arrStTR;
            if( arrStTLcreated ) delete arrStTL;
            if( arrOKcreated ) delete arrOK;

          } /*for( iMod )*/
       } /*for( iLad )*/
    } /*for( iLay )*/


} /*AliITSDCSAnalyzerSDD::AnalyzeData*/


//---------------------------------------------------------------


void AliITSDCSAnalyzerSDD::Init()
{
// Initialization of DCS DP names
  TString modName;

  for( Int_t iLay = 3; iLay < 5; iLay++ ){
    Int_t maxLad = ( iLay == 3) ? kNladders3 : kNladders4;
    Int_t maxMod = ( iLay == 3) ? kNmodLad3 : kNmodLad4;

    for(Int_t iLad=0; iLad<maxLad; iLad++){
      for(Int_t iMod=0; iMod<maxMod;iMod++){
	modName.Form("SDD_LAYER%i_LADDER%02d_MODULE%d", iLay, iLad, iMod);
	Int_t id = AliITSgeomTGeo::GetModuleIndex( iLay, iLad + 1, iMod + 1 ) - 240;
	
	fHVDPNames[id].Form("%s_HV",modName.Data());
	fMVDPNames[id].Form("%s_MV",modName.Data());
	fOKDPNames[id].Form("%s_OK",modName.Data());
	fTLDPNames[id].Form("%s_TEMP_L",modName.Data());
	fTRDPNames[id].Form("%s_TEMP_R",modName.Data());
	fTLStDPNames[id].Form("%s_TEMP_L_STATE",modName.Data());
	fTRStDPNames[id].Form("%s_TEMP_R_STATE",modName.Data());
	
      } /*for( iMod )*/
    } /*for( iLad )*/
    
  } /*for( iLay )*/

  
} /*AliITSDCSAnalyzerSDD::Init*/

//---------------------------------------------------------------
void AliITSDCSAnalyzerSDD::PrintDCSDPNames( FILE *output )
{
// Prints constructed names of DCS variables into specified file (may be even stdout or stderr)
  for( Int_t j = 0; j < kNmodules; j++ )
  {
    fprintf( output, "Module %d      %s   %s   %s   %s\n",j,fHVDPNames[j].Data(),
                          fMVDPNames[j].Data(),fTLDPNames[j].Data(),fTRDPNames[j].Data());
  } /*for( j )*/
} /*AliITSDCSAnalyzerSDD::PrintDCSDPNames*/

//---------------------------------------------------------------

void AliITSDCSAnalyzerSDD::Export( char *outputDCSFileName )
{
// Exports all stored AliITSDCSDataSDD type object into specified root file. Objects are named as
//
// DCSDataSDD_module<number>
//
// where <number> is in range 0..256 and it is obtained by calling
//
// AliITSgeomTGeo::GetModuleIndex( layer, ladder, moduleInLadder ) - 240

   TFile * newFile = new TFile( outputDCSFileName, "RECREATE" );
   if( newFile == NULL )
   {                    // Creates .root file with specified name. if it is not possible,
                        //  warning is displayed and exporting aborted.
     AliWarning( Form( "Cannot create %s - export aborted ", outputDCSFileName ) );
     return;
   } /*if*/

   newFile->cd();

   char buffer[100];

   for( Int_t moduleLoop = 0; moduleLoop < kNmodules; moduleLoop++ )
   {                    // loops through all modules and writes appropriate object into the file
     snprintf( buffer, 99 , "DCSDataSDD_module%i", moduleLoop );
     if( fDCSData[moduleLoop] ) fDCSData[moduleLoop]->Write( buffer, TObject::kSingleKey );
   } /*for( moduleLoop )*/

   newFile->Close();
   delete newFile;

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