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.                  *
 **************************************************************************/
#include <TFile.h>
#include "AliITSOnlineSDDCMN.h"
#include "AliLog.h"
#include <TH2F.h>
#include <TMath.h>


///////////////////////////////////////////////////////////////////
//                                                               //
// Implementation of the class used for analysis of SDD noise    //
// corrected for common mode                                     //
// Origin: F.Prino, Torino, prino@to.infn.it                     //
//                                                               //
///////////////////////////////////////////////////////////////////


ClassImp(AliITSOnlineSDDCMN)
//______________________________________________________________________
  AliITSOnlineSDDCMN::AliITSOnlineSDDCMN():AliITSOnlineSDD(),fNEvents(0),fLowThreshold(0),fHighThreshold(0),fMinCorrNoise(0.),fMaxCorrNoise(0.),fNSigmaNoise(0.)
{
  // default constructor
  Reset();
  SetMinNoise();
  SetMaxNoise();
  SetNSigmaNoise();
}
//______________________________________________________________________
  AliITSOnlineSDDCMN::AliITSOnlineSDDCMN(Int_t nddl, Int_t ncarlos, Int_t sid):AliITSOnlineSDD(nddl,ncarlos,sid),fNEvents(0),fLowThreshold(0),fHighThreshold(0),fMinCorrNoise(0.),fMaxCorrNoise(0.),fNSigmaNoise(0.)
{
  // default constructor
  Reset();
  SetMinNoise();
  SetMaxNoise();
  SetNSigmaNoise();
}
//______________________________________________________________________
AliITSOnlineSDDCMN::~AliITSOnlineSDDCMN(){
  // Destructor
}
//______________________________________________________________________
void AliITSOnlineSDDCMN::Reset(){
  // Reset counters
  fNEvents=0;
  for(Int_t i=0;i<fgkNAnodes;i++){
    fGoodAnode[i]=1;
    fBaseline[i]=0.;
    fRawNoise[i]=0.;
    fCMN[i]=0.;
    fSumCorrNoise[i]=0.;
  }
  ReadBaselines();
}
//______________________________________________________________________
void AliITSOnlineSDDCMN::ReadBaselines(){
  // assume baselines and good anodes are taken from previous run
  TString basfilnam;
  basfilnam.Form("SDDbase_step1_ddl%02dc%02d_sid%d.data",fDDL,fCarlos,fSide);
  FILE* basf=fopen(basfilnam.Data(),"r");
  if(basf==0){
    AliWarning(Form("Baseline file not present (ddl %d  carlos %d side %d, Set all baselines to 50\n",fDDL,fCarlos,fSide));
    for(Int_t ian=0;ian<fgkNAnodes;ian++){ 
      fBaseline[ian]=50.;
      fEqBaseline[ian]=50;
      fOffsetBaseline[ian]=0;
      fGoodAnode[ian]=1;
    }
    return;
  }
  Int_t check = fscanf(basf,"%d\n",&fHighThreshold);
  if(check<1)AliError("Error while reading file with baselines");
  check = fscanf(basf,"%d\n",&fLowThreshold);
  if(check<1)AliError("Error while reading file with baselines");
  Int_t n,ok,eqbase,offbase;
  Float_t base,rms,cmn,corrnoi;
  for(Int_t ian=0;ian<fgkNAnodes;ian++){
    check = fscanf(basf,"%d %d %f %d %d %f %f %f\n",&n,&ok,&base,&eqbase,&offbase,&rms,&cmn,&corrnoi);
    if(check<1)AliError("Error while reading file with baselines");
    fGoodAnode[ian]=ok;
    fBaseline[ian]=base;
    fEqBaseline[ian]=eqbase;
    fOffsetBaseline[ian]=offbase;
    fRawNoise[ian]=rms;
    fCMN[ian]=cmn;
  }
  fclose(basf);
}
//______________________________________________________________________
void  AliITSOnlineSDDCMN::ValidateAnodes(){
  // Tag good/bad anodes
  for(Int_t ian=0;ian<fgkNAnodes;ian++){
    if(!fGoodAnode[ian]) continue;
    if(GetAnodeCorrNoise(ian)>fMaxCorrNoise || GetAnodeCorrNoise(ian)<fMinCorrNoise) fGoodAnode[ian]=0;
    if(GetAnodeCorrNoise(ian)>fNSigmaNoise*CalcMeanNoise()) fGoodAnode[ian]=0;
  }
}

//______________________________________________________________________
TH2F* AliITSOnlineSDDCMN::GetCleanEvent(const TH2F* hrawd) const {
  // Fills an histogram with counts corrected for common mode noise

  TH2F* hcorrd=new TH2F("hcorrd","",hrawd->GetNbinsX(),hrawd->GetXaxis()->GetXmin(),hrawd->GetXaxis()->GetXmax(),hrawd->GetNbinsY(),hrawd->GetYaxis()->GetXmin(),hrawd->GetYaxis()->GetXmax());
  for(Int_t itb=fFirstGoodTB;itb<=fLastGoodTB;itb++){
    Float_t sumEven=0., sumOdd=0.;
    Int_t countEven=0, countOdd=0;
    for(Int_t ian=0;ian<fgkNAnodes;ian+=2){
      if(!fGoodAnode[ian]) continue;
      sumEven+=hrawd->GetBinContent(itb+1,ian+1)-fBaseline[ian];
      countEven++;
    }
    for(Int_t ian=1;ian<fgkNAnodes;ian+=2){
      if(!fGoodAnode[ian]) continue;
      sumOdd+=hrawd->GetBinContent(itb+1,ian+1)-fBaseline[ian];
      countOdd++;
    }
    for(Int_t ian=0;ian<fgkNAnodes;ian++){
      if(!fGoodAnode[ian]) continue;
      Float_t meanN;
      if(ian%2==0) meanN=sumEven/(Float_t)countEven;
      else meanN=sumOdd/(Float_t)countOdd;
      Float_t cntCorr=hrawd->GetBinContent(itb+1,ian+1)-fCMN[ian]*meanN;
      hcorrd->SetBinContent(itb+1,ian+1,cntCorr);
    }
  }
  return hcorrd;
}
//______________________________________________________________________
void AliITSOnlineSDDCMN::AddEvent(TH2F* hrawd){
  // analyzes one event and adds its ontribution to the various counters

  fNEvents++;
  TH2F* hcorrd=GetCleanEvent(hrawd);

  for(Int_t ian=0;ian<fgkNAnodes;ian++){
    if(!fGoodAnode[ian]) continue;
    Float_t sumQ=0.;
    Int_t cnt=0;
    for(Int_t itb=fFirstGoodTB;itb<=fLastGoodTB;itb++){
      Float_t cntdiff=hcorrd->GetBinContent(itb+1,ian+1)-fBaseline[ian];
      sumQ+=cntdiff*cntdiff;
      cnt++;    
    }
    if(cnt != 0)fSumCorrNoise[ian]+=TMath::Sqrt(sumQ/(Float_t)cnt);
  }
  delete hcorrd;
}
//______________________________________________________________________
Float_t AliITSOnlineSDDCMN::CalcMeanNoise() const{
  // compute average noise

  Float_t meanns=0.;
  Int_t cnt=0;
  for(Int_t ian=0;ian<fgkNAnodes;ian++){
    if(!fGoodAnode[ian]) continue;  
    meanns+=GetAnodeCorrNoise(ian);
    cnt++;
  }
  if(cnt>0) meanns/=(Float_t)cnt;
  return meanns;
}
//______________________________________________________________________
void AliITSOnlineSDDCMN::WriteToASCII(){
  // writes parameters of each channel into an ASCII file 
  // to be then read by the PULSER DA (AliITSOnlineSDDTP)

  TString outfilnam;
  outfilnam.Form("SDDbase_step2_ddl%02dc%02d_sid%d.data",fDDL,fCarlos,fSide);
  FILE* outf=fopen(outfilnam.Data(),"w");
  fprintf(outf,"%d\n",fHighThreshold);
  fprintf(outf,"%d\n",fLowThreshold);
  for(Int_t ian=0;ian<fgkNAnodes;ian++){
    fprintf(outf,"%d %d %8.3f %d %d %8.3f %8.3f %8.3f\n",ian,IsAnodeGood(ian),GetAnodeBaseline(ian),GetAnodeEqualizedBaseline(ian),GetAnodeBaselineOffset(ian),GetAnodeRawNoise(ian),GetAnodeCommonMode(ian),GetAnodeCorrNoise(ian));
  }
  fclose(outf);  
}

//______________________________________________________________________
TH1F* AliITSOnlineSDDCMN::GetBaselineAnodeHisto() const {
  // produce histogram with baseline vs. anode number
  TString hisnam;  
  hisnam.Form("hbase%02dc%02ds%d",fDDL,fCarlos,fSide);
  TH1F* h=new TH1F(hisnam.Data(),"",256,-0.5,255.5);
  for(Int_t ian=0;ian<fgkNAnodes;ian++){
    h->SetBinContent(ian+1,GetAnodeBaseline(ian));
  }
  return h;
}
//______________________________________________________________________
TH1F* AliITSOnlineSDDCMN::GetRawNoiseAnodeHisto() const {
  // produce histogram with raw noise vs. anode number
  TString hisnam;  
  hisnam.Form("hnois%02dc%02ds%d",fDDL,fCarlos,fSide);
  TH1F* h=new TH1F(hisnam.Data(),"",256,-0.5,255.5);
  for(Int_t ian=0;ian<fgkNAnodes;ian++){
    h->SetBinContent(ian+1,GetAnodeRawNoise(ian));
  }
  return h;
}
//______________________________________________________________________
TH1F* AliITSOnlineSDDCMN::GetCorrNoiseAnodeHisto() const {
  // produce histogram with corrected noise vs. anode number
  TString hisnam;  
  hisnam.Form("hcorn%02dc%02ds%d",fDDL,fCarlos,fSide);
  TH1F* h=new TH1F(hisnam.Data(),"",256,-0.5,255.5);
  for(Int_t ian=0;ian<fgkNAnodes;ian++){
    h->SetBinContent(ian+1,GetAnodeCorrNoise(ian));
  }
  return h;
}
//______________________________________________________________________
TH1F* AliITSOnlineSDDCMN::GetCMNCoefAnodeHisto() const {
  // produce histogram with coefficients for common mode noise subtraction
  TString hisnam;  
  hisnam.Form("hcmn%02dc%02ds%d",fDDL,fCarlos,fSide);
  TH1F* h=new TH1F(hisnam.Data(),"",256,-0.5,255.5);
  for(Int_t ian=0;ian<fgkNAnodes;ian++){
    h->SetBinContent(ian+1,GetAnodeCommonMode(ian));
  }
  return h;
}
//______________________________________________________________________
TH1F* AliITSOnlineSDDCMN::GetStatusAnodeHisto() const {
  // produce histogram with status bit of each anode
  TString hisnam;  
  hisnam.Form("hgood%02dc%02ds%d",fDDL,fCarlos,fSide);
  TH1F* h=new TH1F(hisnam.Data(),"",256,-0.5,255.5);
  for(Int_t ian=0;ian<fgkNAnodes;ian++){
    h->SetBinContent(ian+1,float(IsAnodeGood(ian)));
  }
  return h;
}
//______________________________________________________________________
TH1F* AliITSOnlineSDDCMN::GetBaselineHisto() const {
  // produce histogram with baseline distribution
  TString hisnam;  
  hisnam.Form("hdbd%02dc%02ds%d",fDDL,fCarlos,fSide);
  TH1F* h=new TH1F(hisnam.Data(),"",100,0.,150.);
  for(Int_t ian=0;ian<fgkNAnodes;ian++){
    h->Fill(GetAnodeBaseline(ian));
  }
  return h;
}
//______________________________________________________________________
TH1F* AliITSOnlineSDDCMN::GetRawNoiseHisto() const {
  // produce histogram with raw noise distribution
  TString hisnam;  
  hisnam.Form("hdnd%02dc%02ds%d",fDDL,fCarlos,fSide);
  TH1F* h=new TH1F(hisnam.Data(),"",100,0.,8.);
  for(Int_t ian=0;ian<fgkNAnodes;ian++){
    h->Fill(GetAnodeRawNoise(ian));
  }
  return h;
}
//______________________________________________________________________
TH1F* AliITSOnlineSDDCMN::GetCorrNoiseHisto() const {
  // produce histogram with corrected noise distribution
  TString hisnam;  
  hisnam.Form("hdcd%02dc%02ds%d",fDDL,fCarlos,fSide);
  TH1F* h=new TH1F(hisnam.Data(),"",100,0.,8.);
  for(Int_t ian=0;ian<fgkNAnodes;ian++){
    h->Fill(GetAnodeCorrNoise(ian));
  }
  return h;
}
//______________________________________________________________________
Bool_t AliITSOnlineSDDCMN::WriteToROOT(TFile *fil){
  // writes output into a root file
  if(fil==0){ 
    AliWarning("Invalid pointer to ROOT file");
    return kFALSE;    
  }
  TString hisnam;
  fil->cd();
  hisnam.Form("hgood%02dc%02ds%d",fDDL,fCarlos,fSide);
  TH1F hgood(hisnam.Data(),"",256,-0.5,255.5);
  hisnam.Form("hbase%02dc%02ds%d",fDDL,fCarlos,fSide);
  TH1F hbase(hisnam.Data(),"",256,-0.5,255.5);
  hisnam.Form("hnois%02dc%02ds%d",fDDL,fCarlos,fSide);
  TH1F hnois(hisnam.Data(),"",256,-0.5,255.5);
  hisnam.Form("hcmn%02dc%02ds%d",fDDL,fCarlos,fSide);
  TH1F hcmn(hisnam.Data(),"",256,-0.5,255.5);
  hisnam.Form("hcorn%02dc%02ds%d",fDDL,fCarlos,fSide);
  TH1F hcorn(hisnam.Data(),"",256,-0.5,255.5);
  for(Int_t ian=0;ian<fgkNAnodes;ian++){
    hgood.SetBinContent(ian+1,float(IsAnodeGood(ian)));
    hbase.SetBinContent(ian+1,GetAnodeBaseline(ian));
    hnois.SetBinContent(ian+1,GetAnodeRawNoise(ian));
    hcmn.SetBinContent(ian+1,GetAnodeCommonMode(ian));
    hcorn.SetBinContent(ian+1,GetAnodeCorrNoise(ian));
  }
  hgood.Write();
  hbase.Write();
  hnois.Write();
  hcmn.Write();
  hcorn.Write();
  return kTRUE;
}
 AliITSOnlineSDDCMN.cxx:1
 AliITSOnlineSDDCMN.cxx:2
 AliITSOnlineSDDCMN.cxx:3
 AliITSOnlineSDDCMN.cxx:4
 AliITSOnlineSDDCMN.cxx:5
 AliITSOnlineSDDCMN.cxx:6
 AliITSOnlineSDDCMN.cxx:7
 AliITSOnlineSDDCMN.cxx:8
 AliITSOnlineSDDCMN.cxx:9
 AliITSOnlineSDDCMN.cxx:10
 AliITSOnlineSDDCMN.cxx:11
 AliITSOnlineSDDCMN.cxx:12
 AliITSOnlineSDDCMN.cxx:13
 AliITSOnlineSDDCMN.cxx:14
 AliITSOnlineSDDCMN.cxx:15
 AliITSOnlineSDDCMN.cxx:16
 AliITSOnlineSDDCMN.cxx:17
 AliITSOnlineSDDCMN.cxx:18
 AliITSOnlineSDDCMN.cxx:19
 AliITSOnlineSDDCMN.cxx:20
 AliITSOnlineSDDCMN.cxx:21
 AliITSOnlineSDDCMN.cxx:22
 AliITSOnlineSDDCMN.cxx:23
 AliITSOnlineSDDCMN.cxx:24
 AliITSOnlineSDDCMN.cxx:25
 AliITSOnlineSDDCMN.cxx:26
 AliITSOnlineSDDCMN.cxx:27
 AliITSOnlineSDDCMN.cxx:28
 AliITSOnlineSDDCMN.cxx:29
 AliITSOnlineSDDCMN.cxx:30
 AliITSOnlineSDDCMN.cxx:31
 AliITSOnlineSDDCMN.cxx:32
 AliITSOnlineSDDCMN.cxx:33
 AliITSOnlineSDDCMN.cxx:34
 AliITSOnlineSDDCMN.cxx:35
 AliITSOnlineSDDCMN.cxx:36
 AliITSOnlineSDDCMN.cxx:37
 AliITSOnlineSDDCMN.cxx:38
 AliITSOnlineSDDCMN.cxx:39
 AliITSOnlineSDDCMN.cxx:40
 AliITSOnlineSDDCMN.cxx:41
 AliITSOnlineSDDCMN.cxx:42
 AliITSOnlineSDDCMN.cxx:43
 AliITSOnlineSDDCMN.cxx:44
 AliITSOnlineSDDCMN.cxx:45
 AliITSOnlineSDDCMN.cxx:46
 AliITSOnlineSDDCMN.cxx:47
 AliITSOnlineSDDCMN.cxx:48
 AliITSOnlineSDDCMN.cxx:49
 AliITSOnlineSDDCMN.cxx:50
 AliITSOnlineSDDCMN.cxx:51
 AliITSOnlineSDDCMN.cxx:52
 AliITSOnlineSDDCMN.cxx:53
 AliITSOnlineSDDCMN.cxx:54
 AliITSOnlineSDDCMN.cxx:55
 AliITSOnlineSDDCMN.cxx:56
 AliITSOnlineSDDCMN.cxx:57
 AliITSOnlineSDDCMN.cxx:58
 AliITSOnlineSDDCMN.cxx:59
 AliITSOnlineSDDCMN.cxx:60
 AliITSOnlineSDDCMN.cxx:61
 AliITSOnlineSDDCMN.cxx:62
 AliITSOnlineSDDCMN.cxx:63
 AliITSOnlineSDDCMN.cxx:64
 AliITSOnlineSDDCMN.cxx:65
 AliITSOnlineSDDCMN.cxx:66
 AliITSOnlineSDDCMN.cxx:67
 AliITSOnlineSDDCMN.cxx:68
 AliITSOnlineSDDCMN.cxx:69
 AliITSOnlineSDDCMN.cxx:70
 AliITSOnlineSDDCMN.cxx:71
 AliITSOnlineSDDCMN.cxx:72
 AliITSOnlineSDDCMN.cxx:73
 AliITSOnlineSDDCMN.cxx:74
 AliITSOnlineSDDCMN.cxx:75
 AliITSOnlineSDDCMN.cxx:76
 AliITSOnlineSDDCMN.cxx:77
 AliITSOnlineSDDCMN.cxx:78
 AliITSOnlineSDDCMN.cxx:79
 AliITSOnlineSDDCMN.cxx:80
 AliITSOnlineSDDCMN.cxx:81
 AliITSOnlineSDDCMN.cxx:82
 AliITSOnlineSDDCMN.cxx:83
 AliITSOnlineSDDCMN.cxx:84
 AliITSOnlineSDDCMN.cxx:85
 AliITSOnlineSDDCMN.cxx:86
 AliITSOnlineSDDCMN.cxx:87
 AliITSOnlineSDDCMN.cxx:88
 AliITSOnlineSDDCMN.cxx:89
 AliITSOnlineSDDCMN.cxx:90
 AliITSOnlineSDDCMN.cxx:91
 AliITSOnlineSDDCMN.cxx:92
 AliITSOnlineSDDCMN.cxx:93
 AliITSOnlineSDDCMN.cxx:94
 AliITSOnlineSDDCMN.cxx:95
 AliITSOnlineSDDCMN.cxx:96
 AliITSOnlineSDDCMN.cxx:97
 AliITSOnlineSDDCMN.cxx:98
 AliITSOnlineSDDCMN.cxx:99
 AliITSOnlineSDDCMN.cxx:100
 AliITSOnlineSDDCMN.cxx:101
 AliITSOnlineSDDCMN.cxx:102
 AliITSOnlineSDDCMN.cxx:103
 AliITSOnlineSDDCMN.cxx:104
 AliITSOnlineSDDCMN.cxx:105
 AliITSOnlineSDDCMN.cxx:106
 AliITSOnlineSDDCMN.cxx:107
 AliITSOnlineSDDCMN.cxx:108
 AliITSOnlineSDDCMN.cxx:109
 AliITSOnlineSDDCMN.cxx:110
 AliITSOnlineSDDCMN.cxx:111
 AliITSOnlineSDDCMN.cxx:112
 AliITSOnlineSDDCMN.cxx:113
 AliITSOnlineSDDCMN.cxx:114
 AliITSOnlineSDDCMN.cxx:115
 AliITSOnlineSDDCMN.cxx:116
 AliITSOnlineSDDCMN.cxx:117
 AliITSOnlineSDDCMN.cxx:118
 AliITSOnlineSDDCMN.cxx:119
 AliITSOnlineSDDCMN.cxx:120
 AliITSOnlineSDDCMN.cxx:121
 AliITSOnlineSDDCMN.cxx:122
 AliITSOnlineSDDCMN.cxx:123
 AliITSOnlineSDDCMN.cxx:124
 AliITSOnlineSDDCMN.cxx:125
 AliITSOnlineSDDCMN.cxx:126
 AliITSOnlineSDDCMN.cxx:127
 AliITSOnlineSDDCMN.cxx:128
 AliITSOnlineSDDCMN.cxx:129
 AliITSOnlineSDDCMN.cxx:130
 AliITSOnlineSDDCMN.cxx:131
 AliITSOnlineSDDCMN.cxx:132
 AliITSOnlineSDDCMN.cxx:133
 AliITSOnlineSDDCMN.cxx:134
 AliITSOnlineSDDCMN.cxx:135
 AliITSOnlineSDDCMN.cxx:136
 AliITSOnlineSDDCMN.cxx:137
 AliITSOnlineSDDCMN.cxx:138
 AliITSOnlineSDDCMN.cxx:139
 AliITSOnlineSDDCMN.cxx:140
 AliITSOnlineSDDCMN.cxx:141
 AliITSOnlineSDDCMN.cxx:142
 AliITSOnlineSDDCMN.cxx:143
 AliITSOnlineSDDCMN.cxx:144
 AliITSOnlineSDDCMN.cxx:145
 AliITSOnlineSDDCMN.cxx:146
 AliITSOnlineSDDCMN.cxx:147
 AliITSOnlineSDDCMN.cxx:148
 AliITSOnlineSDDCMN.cxx:149
 AliITSOnlineSDDCMN.cxx:150
 AliITSOnlineSDDCMN.cxx:151
 AliITSOnlineSDDCMN.cxx:152
 AliITSOnlineSDDCMN.cxx:153
 AliITSOnlineSDDCMN.cxx:154
 AliITSOnlineSDDCMN.cxx:155
 AliITSOnlineSDDCMN.cxx:156
 AliITSOnlineSDDCMN.cxx:157
 AliITSOnlineSDDCMN.cxx:158
 AliITSOnlineSDDCMN.cxx:159
 AliITSOnlineSDDCMN.cxx:160
 AliITSOnlineSDDCMN.cxx:161
 AliITSOnlineSDDCMN.cxx:162
 AliITSOnlineSDDCMN.cxx:163
 AliITSOnlineSDDCMN.cxx:164
 AliITSOnlineSDDCMN.cxx:165
 AliITSOnlineSDDCMN.cxx:166
 AliITSOnlineSDDCMN.cxx:167
 AliITSOnlineSDDCMN.cxx:168
 AliITSOnlineSDDCMN.cxx:169
 AliITSOnlineSDDCMN.cxx:170
 AliITSOnlineSDDCMN.cxx:171
 AliITSOnlineSDDCMN.cxx:172
 AliITSOnlineSDDCMN.cxx:173
 AliITSOnlineSDDCMN.cxx:174
 AliITSOnlineSDDCMN.cxx:175
 AliITSOnlineSDDCMN.cxx:176
 AliITSOnlineSDDCMN.cxx:177
 AliITSOnlineSDDCMN.cxx:178
 AliITSOnlineSDDCMN.cxx:179
 AliITSOnlineSDDCMN.cxx:180
 AliITSOnlineSDDCMN.cxx:181
 AliITSOnlineSDDCMN.cxx:182
 AliITSOnlineSDDCMN.cxx:183
 AliITSOnlineSDDCMN.cxx:184
 AliITSOnlineSDDCMN.cxx:185
 AliITSOnlineSDDCMN.cxx:186
 AliITSOnlineSDDCMN.cxx:187
 AliITSOnlineSDDCMN.cxx:188
 AliITSOnlineSDDCMN.cxx:189
 AliITSOnlineSDDCMN.cxx:190
 AliITSOnlineSDDCMN.cxx:191
 AliITSOnlineSDDCMN.cxx:192
 AliITSOnlineSDDCMN.cxx:193
 AliITSOnlineSDDCMN.cxx:194
 AliITSOnlineSDDCMN.cxx:195
 AliITSOnlineSDDCMN.cxx:196
 AliITSOnlineSDDCMN.cxx:197
 AliITSOnlineSDDCMN.cxx:198
 AliITSOnlineSDDCMN.cxx:199
 AliITSOnlineSDDCMN.cxx:200
 AliITSOnlineSDDCMN.cxx:201
 AliITSOnlineSDDCMN.cxx:202
 AliITSOnlineSDDCMN.cxx:203
 AliITSOnlineSDDCMN.cxx:204
 AliITSOnlineSDDCMN.cxx:205
 AliITSOnlineSDDCMN.cxx:206
 AliITSOnlineSDDCMN.cxx:207
 AliITSOnlineSDDCMN.cxx:208
 AliITSOnlineSDDCMN.cxx:209
 AliITSOnlineSDDCMN.cxx:210
 AliITSOnlineSDDCMN.cxx:211
 AliITSOnlineSDDCMN.cxx:212
 AliITSOnlineSDDCMN.cxx:213
 AliITSOnlineSDDCMN.cxx:214
 AliITSOnlineSDDCMN.cxx:215
 AliITSOnlineSDDCMN.cxx:216
 AliITSOnlineSDDCMN.cxx:217
 AliITSOnlineSDDCMN.cxx:218
 AliITSOnlineSDDCMN.cxx:219
 AliITSOnlineSDDCMN.cxx:220
 AliITSOnlineSDDCMN.cxx:221
 AliITSOnlineSDDCMN.cxx:222
 AliITSOnlineSDDCMN.cxx:223
 AliITSOnlineSDDCMN.cxx:224
 AliITSOnlineSDDCMN.cxx:225
 AliITSOnlineSDDCMN.cxx:226
 AliITSOnlineSDDCMN.cxx:227
 AliITSOnlineSDDCMN.cxx:228
 AliITSOnlineSDDCMN.cxx:229
 AliITSOnlineSDDCMN.cxx:230
 AliITSOnlineSDDCMN.cxx:231
 AliITSOnlineSDDCMN.cxx:232
 AliITSOnlineSDDCMN.cxx:233
 AliITSOnlineSDDCMN.cxx:234
 AliITSOnlineSDDCMN.cxx:235
 AliITSOnlineSDDCMN.cxx:236
 AliITSOnlineSDDCMN.cxx:237
 AliITSOnlineSDDCMN.cxx:238
 AliITSOnlineSDDCMN.cxx:239
 AliITSOnlineSDDCMN.cxx:240
 AliITSOnlineSDDCMN.cxx:241
 AliITSOnlineSDDCMN.cxx:242
 AliITSOnlineSDDCMN.cxx:243
 AliITSOnlineSDDCMN.cxx:244
 AliITSOnlineSDDCMN.cxx:245
 AliITSOnlineSDDCMN.cxx:246
 AliITSOnlineSDDCMN.cxx:247
 AliITSOnlineSDDCMN.cxx:248
 AliITSOnlineSDDCMN.cxx:249
 AliITSOnlineSDDCMN.cxx:250
 AliITSOnlineSDDCMN.cxx:251
 AliITSOnlineSDDCMN.cxx:252
 AliITSOnlineSDDCMN.cxx:253
 AliITSOnlineSDDCMN.cxx:254
 AliITSOnlineSDDCMN.cxx:255
 AliITSOnlineSDDCMN.cxx:256
 AliITSOnlineSDDCMN.cxx:257
 AliITSOnlineSDDCMN.cxx:258
 AliITSOnlineSDDCMN.cxx:259
 AliITSOnlineSDDCMN.cxx:260
 AliITSOnlineSDDCMN.cxx:261
 AliITSOnlineSDDCMN.cxx:262
 AliITSOnlineSDDCMN.cxx:263
 AliITSOnlineSDDCMN.cxx:264
 AliITSOnlineSDDCMN.cxx:265
 AliITSOnlineSDDCMN.cxx:266
 AliITSOnlineSDDCMN.cxx:267
 AliITSOnlineSDDCMN.cxx:268
 AliITSOnlineSDDCMN.cxx:269
 AliITSOnlineSDDCMN.cxx:270
 AliITSOnlineSDDCMN.cxx:271
 AliITSOnlineSDDCMN.cxx:272
 AliITSOnlineSDDCMN.cxx:273
 AliITSOnlineSDDCMN.cxx:274
 AliITSOnlineSDDCMN.cxx:275
 AliITSOnlineSDDCMN.cxx:276
 AliITSOnlineSDDCMN.cxx:277
 AliITSOnlineSDDCMN.cxx:278
 AliITSOnlineSDDCMN.cxx:279
 AliITSOnlineSDDCMN.cxx:280
 AliITSOnlineSDDCMN.cxx:281
 AliITSOnlineSDDCMN.cxx:282
 AliITSOnlineSDDCMN.cxx:283
 AliITSOnlineSDDCMN.cxx:284
 AliITSOnlineSDDCMN.cxx:285
 AliITSOnlineSDDCMN.cxx:286
 AliITSOnlineSDDCMN.cxx:287
 AliITSOnlineSDDCMN.cxx:288
 AliITSOnlineSDDCMN.cxx:289
 AliITSOnlineSDDCMN.cxx:290
 AliITSOnlineSDDCMN.cxx:291
 AliITSOnlineSDDCMN.cxx:292
 AliITSOnlineSDDCMN.cxx:293
 AliITSOnlineSDDCMN.cxx:294
 AliITSOnlineSDDCMN.cxx:295
 AliITSOnlineSDDCMN.cxx:296
 AliITSOnlineSDDCMN.cxx:297
 AliITSOnlineSDDCMN.cxx:298
 AliITSOnlineSDDCMN.cxx:299
 AliITSOnlineSDDCMN.cxx:300
 AliITSOnlineSDDCMN.cxx:301
 AliITSOnlineSDDCMN.cxx:302
 AliITSOnlineSDDCMN.cxx:303
 AliITSOnlineSDDCMN.cxx:304
 AliITSOnlineSDDCMN.cxx:305
 AliITSOnlineSDDCMN.cxx:306
 AliITSOnlineSDDCMN.cxx:307
 AliITSOnlineSDDCMN.cxx:308
 AliITSOnlineSDDCMN.cxx:309
 AliITSOnlineSDDCMN.cxx:310