#include <TObjArray.h>
#include <TH1F.h>
#include <TH2F.h>
#include <TH2S.h>
#include <TString.h>
#include <TVectorF.h>
#include <TMath.h>
#include <TMap.h>
#include <TDirectory.h>
#include <TSystem.h>
#include <TROOT.h>
#include <TFile.h>
#include "AliRawReader.h"
#include "AliRawReaderRoot.h"
#include "AliRawReaderDate.h"
#include "AliTPCCalROC.h"
#include "AliTPCCalPad.h"
#include "AliTPCROC.h"
#include "AliTPCParam.h"
#include "AliTPCCalibPulser.h"
#include "AliTPCcalibDB.h"
#include "AliMathBase.h"
#include "AliLog.h"
#include "TTreeStream.h"
#include "event.h"
ClassImp(AliTPCCalibPulser)
AliTPCCalibPulser::AliTPCCalibPulser() :
AliTPCCalibRawBase(),
fNbinsT0(200),
fXminT0(-2),
fXmaxT0(2),
fNbinsQ(200),
fXminQ(10),
fXmaxQ(40),
fNbinsRMS(100),
fXminRMS(0.1),
fXmaxRMS(5.1),
fPeakIntMinus(2),
fPeakIntPlus(2),
fIsZeroSuppressed(kFALSE),
fLastSector(-1),
fParam(new AliTPCParam),
fPedestalTPC(0x0),
fPadNoiseTPC(0x0),
fOutliers(0x0),
fPedestalROC(0x0),
fPadNoiseROC(0x0),
fCalRocArrayT0(72),
fCalRocArrayQ(72),
fCalRocArrayRMS(72),
fCalRocArrayOutliers(72),
fHistoQArray(72),
fHistoT0Array(72),
fHistoRMSArray(72),
fHMeanTimeSector(0x0),
fVMeanTimeSector(72),
fPadTimesArrayEvent(72),
fPadQArrayEvent(72),
fPadRMSArrayEvent(72),
fPadPedestalArrayEvent(72),
fCurrentChannel(-1),
fCurrentSector(-1),
fCurrentRow(-1),
fCurrentPad(-1),
fMaxPadSignal(-1),
fMaxTimeBin(-1),
fPadSignal(1024),
fPadPedestal(0),
fPadNoise(0),
fVTime0Offset(72),
fVTime0OffsetCounter(72)
{
SetNameTitle("AliTPCCalibPulser","AliTPCCalibPulser");
fFirstTimeBin=60;
fLastTimeBin=900;
fParam->Update();
}
AliTPCCalibPulser::AliTPCCalibPulser(const AliTPCCalibPulser &sig) :
AliTPCCalibRawBase(sig),
fNbinsT0(sig.fNbinsT0),
fXminT0(sig.fXminT0),
fXmaxT0(sig.fXmaxT0),
fNbinsQ(sig.fNbinsQ),
fXminQ(sig.fXminQ),
fXmaxQ(sig.fXmaxQ),
fNbinsRMS(sig.fNbinsRMS),
fXminRMS(sig.fXminRMS),
fXmaxRMS(sig.fXmaxRMS),
fPeakIntMinus(sig.fPeakIntMinus),
fPeakIntPlus(sig.fPeakIntPlus),
fIsZeroSuppressed(sig.fIsZeroSuppressed),
fLastSector(-1),
fParam(new AliTPCParam),
fPedestalTPC(0x0),
fPadNoiseTPC(0x0),
fOutliers(0x0),
fPedestalROC(0x0),
fPadNoiseROC(0x0),
fCalRocArrayT0(72),
fCalRocArrayQ(72),
fCalRocArrayRMS(72),
fCalRocArrayOutliers(72),
fHistoQArray(72),
fHistoT0Array(72),
fHistoRMSArray(72),
fHMeanTimeSector(0x0),
fVMeanTimeSector(72),
fPadTimesArrayEvent(72),
fPadQArrayEvent(72),
fPadRMSArrayEvent(72),
fPadPedestalArrayEvent(72),
fCurrentChannel(-1),
fCurrentSector(-1),
fCurrentRow(-1),
fCurrentPad(-1),
fMaxPadSignal(-1),
fMaxTimeBin(-1),
fPadSignal(1024),
fPadPedestal(0),
fPadNoise(0),
fVTime0Offset(72),
fVTime0OffsetCounter(72)
{
for (Int_t iSec = 0; iSec < 72; ++iSec){
const AliTPCCalROC *calQ = (AliTPCCalROC*)sig.fCalRocArrayQ.UncheckedAt(iSec);
const AliTPCCalROC *calT0 = (AliTPCCalROC*)sig.fCalRocArrayT0.UncheckedAt(iSec);
const AliTPCCalROC *calRMS = (AliTPCCalROC*)sig.fCalRocArrayRMS.UncheckedAt(iSec);
const AliTPCCalROC *calOut = (AliTPCCalROC*)sig.fCalRocArrayOutliers.UncheckedAt(iSec);
const TH2S *hQ = (TH2S*)sig.fHistoQArray.UncheckedAt(iSec);
const TH2S *hT0 = (TH2S*)sig.fHistoT0Array.UncheckedAt(iSec);
const TH2S *hRMS = (TH2S*)sig.fHistoRMSArray.UncheckedAt(iSec);
if ( calQ != 0x0 ) fCalRocArrayQ.AddAt(new AliTPCCalROC(*calQ), iSec);
if ( calT0 != 0x0 ) fCalRocArrayT0.AddAt(new AliTPCCalROC(*calT0), iSec);
if ( calRMS != 0x0 ) fCalRocArrayRMS.AddAt(new AliTPCCalROC(*calRMS), iSec);
if ( calOut != 0x0 ) fCalRocArrayOutliers.AddAt(new AliTPCCalROC(*calOut), iSec);
if ( hQ != 0x0 ){
TH2S *hNew = new TH2S(*hQ);
hNew->SetDirectory(0);
fHistoQArray.AddAt(hNew,iSec);
}
if ( hT0 != 0x0 ){
TH2S *hNew = new TH2S(*hT0);
hNew->SetDirectory(0);
fHistoQArray.AddAt(hNew,iSec);
}
if ( hRMS != 0x0 ){
TH2S *hNew = new TH2S(*hRMS);
hNew->SetDirectory(0);
fHistoQArray.AddAt(hNew,iSec);
}
fVMeanTimeSector[iSec]=sig.fVMeanTimeSector[iSec];
}
if ( sig.fHMeanTimeSector ) fHMeanTimeSector=(TH2F*)sig.fHMeanTimeSector->Clone();
fParam->Update();
}
AliTPCCalibPulser::AliTPCCalibPulser(const TMap *config) :
AliTPCCalibRawBase(),
fNbinsT0(200),
fXminT0(-2),
fXmaxT0(2),
fNbinsQ(200),
fXminQ(10),
fXmaxQ(40),
fNbinsRMS(100),
fXminRMS(0.1),
fXmaxRMS(5.1),
fPeakIntMinus(2),
fPeakIntPlus(2),
fIsZeroSuppressed(kFALSE),
fLastSector(-1),
fParam(new AliTPCParam),
fPedestalTPC(0x0),
fPadNoiseTPC(0x0),
fOutliers(0x0),
fPedestalROC(0x0),
fPadNoiseROC(0x0),
fCalRocArrayT0(72),
fCalRocArrayQ(72),
fCalRocArrayRMS(72),
fCalRocArrayOutliers(72),
fHistoQArray(72),
fHistoT0Array(72),
fHistoRMSArray(72),
fHMeanTimeSector(0x0),
fVMeanTimeSector(72),
fPadTimesArrayEvent(72),
fPadQArrayEvent(72),
fPadRMSArrayEvent(72),
fPadPedestalArrayEvent(72),
fCurrentChannel(-1),
fCurrentSector(-1),
fCurrentRow(-1),
fCurrentPad(-1),
fMaxPadSignal(-1),
fMaxTimeBin(-1),
fPadSignal(1024),
fPadPedestal(0),
fPadNoise(0),
fVTime0Offset(72),
fVTime0OffsetCounter(72)
{
SetNameTitle("AliTPCCalibPulser","AliTPCCalibPulser");
fFirstTimeBin=60;
fLastTimeBin=900;
if (config->GetValue("FirstTimeBin")) fFirstTimeBin = ((TObjString*)config->GetValue("FirstTimeBin"))->GetString().Atoi();
if (config->GetValue("LastTimeBin")) fLastTimeBin = ((TObjString*)config->GetValue("LastTimeBin"))->GetString().Atoi();
if (config->GetValue("NbinsT0")) fNbinsT0 = ((TObjString*)config->GetValue("NbinsT0"))->GetString().Atoi();
if (config->GetValue("XminT0")) fXminT0 = ((TObjString*)config->GetValue("XminT0"))->GetString().Atof();
if (config->GetValue("XmaxT0")) fXmaxT0 = ((TObjString*)config->GetValue("XmaxT0"))->GetString().Atof();
if (config->GetValue("NbinsQ")) fNbinsQ = ((TObjString*)config->GetValue("NbinsQ"))->GetString().Atoi();
if (config->GetValue("XminQ")) fXminQ = ((TObjString*)config->GetValue("XminQ"))->GetString().Atof();
if (config->GetValue("XmaxQ")) fXmaxQ = ((TObjString*)config->GetValue("XmaxQ"))->GetString().Atof();
if (config->GetValue("NbinsRMS")) fNbinsRMS = ((TObjString*)config->GetValue("NbinsRMS"))->GetString().Atoi();
if (config->GetValue("XminRMS")) fXminRMS = ((TObjString*)config->GetValue("XminRMS"))->GetString().Atof();
if (config->GetValue("XmaxRMS")) fXmaxRMS = ((TObjString*)config->GetValue("XmaxRMS"))->GetString().Atof();
if (config->GetValue("PeakIntMinus")) fPeakIntMinus = (Int_t)((TObjString*)config->GetValue("PeakIntMinus"))->GetString().Atof();
if (config->GetValue("PeakIntPlus")) fPeakIntPlus = (Int_t)((TObjString*)config->GetValue("PeakIntPlus"))->GetString().Atof();
if (config->GetValue("IsZeroSuppressed")) fIsZeroSuppressed = (Bool_t)((TObjString*)config->GetValue("IsZeroSuppressed"))->GetString().Atoi();
fParam->Update();
}
AliTPCCalibPulser& AliTPCCalibPulser::operator = (const AliTPCCalibPulser &source)
{
if (&source == this) return *this;
new (this) AliTPCCalibPulser(source);
return *this;
}
AliTPCCalibPulser::~AliTPCCalibPulser()
{
Reset();
delete fParam;
}
void AliTPCCalibPulser::Reset()
{
fCalRocArrayT0.Delete();
fCalRocArrayQ.Delete();
fCalRocArrayRMS.Delete();
fCalRocArrayOutliers.Delete();
fHistoQArray.Delete();
fHistoT0Array.Delete();
fHistoRMSArray.Delete();
fPadTimesArrayEvent.Delete();
fPadQArrayEvent.Delete();
fPadRMSArrayEvent.Delete();
fPadPedestalArrayEvent.Delete();
if (fHMeanTimeSector) delete fHMeanTimeSector;
}
Int_t AliTPCCalibPulser::Update(const Int_t icsector,
const Int_t icRow,
const Int_t icPad,
const Int_t icTimeBin,
const Float_t csignal)
{
if (icRow<0) return 0;
if (icPad<0) return 0;
if (icTimeBin<0) return 0;
if ( (icTimeBin>fLastTimeBin) || (icTimeBin<fFirstTimeBin) ) return 0;
if ( icRow<0 || icPad<0 ){
AliWarning("Wrong Pad or Row number, skipping!");
return 0;
}
Int_t iChannel = fROC->GetRowIndexes(icsector)[icRow]+icPad;
if ( fCurrentChannel == -1 ) {
fCurrentChannel = iChannel;
fCurrentSector = icsector;
fCurrentRow = icRow;
fCurrentPad = icPad;
}
if ( iChannel != fCurrentChannel ){
ProcessPad();
fLastSector=fCurrentSector;
fCurrentChannel = iChannel;
fCurrentSector = icsector;
fCurrentRow = icRow;
fCurrentPad = icPad;
}
fPadSignal[icTimeBin]=csignal;
if ( csignal > fMaxPadSignal ){
fMaxPadSignal = csignal;
fMaxTimeBin = icTimeBin;
}
return 0;
}
void AliTPCCalibPulser::FindPedestal(Float_t part)
{
Bool_t noPedestal = kTRUE;;
if (fPedestalTPC&&fPadNoiseTPC){
if ( fCurrentSector!=fLastSector ){
fPedestalROC = fPedestalTPC->GetCalROC(fCurrentSector);
fPadNoiseROC = fPadNoiseTPC->GetCalROC(fCurrentSector);
}
if ( fPedestalROC&&fPadNoiseROC ){
fPadPedestal = fPedestalROC->GetValue(fCurrentChannel);
fPadNoise = fPadNoiseROC->GetValue(fCurrentChannel);
noPedestal = kFALSE;
}
}
if ( noPedestal ) {
const Int_t kPedMax = 100;
Float_t max = 0;
Int_t median = -1;
Int_t count0 = 0;
Int_t count1 = 0;
Float_t padSignal=0;
UShort_t histo[kPedMax];
memset(histo,0,kPedMax*sizeof(UShort_t));
for (Int_t i=fFirstTimeBin; i<=fLastTimeBin; ++i){
padSignal = fPadSignal.GetMatrixArray()[i];
if (padSignal<=0) continue;
if (padSignal>max && i>10) {
max = padSignal;
}
if (padSignal>kPedMax-1) continue;
histo[Int_t(padSignal+0.5)]++;
count0++;
}
for (Int_t i=1; i<kPedMax; ++i){
if (count1<count0*0.5) median=i;
count1+=histo[i];
}
Float_t count=histo[median] ,mean=histo[median]*median, rms=histo[median]*median*median ;
for (Int_t idelta=1; idelta<10; ++idelta){
if (median-idelta<=0) continue;
if (median+idelta>kPedMax) continue;
if (count<part*count1){
count+=histo[median-idelta];
mean +=histo[median-idelta]*(median-idelta);
rms +=histo[median-idelta]*(median-idelta)*(median-idelta);
count+=histo[median+idelta];
mean +=histo[median+idelta]*(median+idelta);
rms +=histo[median+idelta]*(median+idelta)*(median+idelta);
}
}
fPadPedestal = 0;
fPadNoise = 0;
if ( count > 0 ) {
mean/=count;
rms = TMath::Sqrt(TMath::Abs(rms/count-mean*mean));
fPadPedestal = mean;
fPadNoise = rms;
}
}
fPadPedestal*=(Float_t)(!fIsZeroSuppressed);
}
void AliTPCCalibPulser::FindPulserSignal(TVectorD ¶m, Float_t &qSum)
{
Float_t ceQmax =0, ceQsum=0, ceTime=0, ceRMS=0;
Int_t cemaxpos = fMaxTimeBin;
Float_t ceSumThreshold = 10.*TMath::Max(fPadNoise,Float_t(1.));
Float_t ceMaxThreshold = 5.*TMath::Max(fPadNoise,Float_t(1.));
const Int_t kCemin = fPeakIntMinus;
const Int_t kCemax = fPeakIntPlus;
param[0] = ceQmax;
param[1] = ceTime;
param[2] = ceRMS;
qSum = ceQsum;
if (cemaxpos>0){
ceQmax = fPadSignal.GetMatrixArray()[cemaxpos]-fPadPedestal;
if ( ceQmax<ceMaxThreshold ) return;
for (Int_t i=cemaxpos-kCemin; i<=cemaxpos+kCemax; ++i){
Float_t signal = fPadSignal.GetMatrixArray()[i]-fPadPedestal;
if ( (i>fFirstTimeBin) && (i<fLastTimeBin) && (signal>0) ){
ceTime+=signal*(i+0.5);
ceRMS +=signal*(i+0.5)*(i+0.5);
ceQsum+=signal;
}
}
}
if (ceQsum>ceSumThreshold) {
ceTime/=ceQsum;
ceRMS = TMath::Sqrt(TMath::Abs(ceRMS/ceQsum-ceTime*ceTime));
ceTime-=GetL1PhaseTB();
if ( !fOutliers ){
if ( !IsEdgePad(fCurrentSector,fCurrentRow,fCurrentPad) ){
fVTime0Offset.GetMatrixArray()[fCurrentSector]+=ceTime;
fVTime0OffsetCounter.GetMatrixArray()[fCurrentSector]++;
GetHistoTSec()->Fill(ceTime,fCurrentSector);
}
} else {
if ( !(fOutliers->GetCalROC(fCurrentSector)->GetValue(fCurrentChannel)) ){
fVTime0Offset.GetMatrixArray()[fCurrentSector]+=ceTime;
fVTime0OffsetCounter.GetMatrixArray()[fCurrentSector]++;
}
}
Float_t norm = fParam->GetPadPitchWidth(fCurrentSector)*fParam->GetPadPitchLength(fCurrentSector,fCurrentRow)*100;
if ( fCurrentSector<fParam->GetNInnerSector() ) norm*=3./2.;
ceQsum/=norm;
} else {
ceQmax=0;
ceTime=0;
ceRMS =0;
ceQsum=0;
}
param[0] = ceQmax;
param[1] = ceTime;
param[2] = ceRMS;
qSum = ceQsum;
}
void AliTPCCalibPulser::ProcessPad()
{
FindPedestal();
TVectorD param(3);
Float_t qSum;
FindPulserSignal(param, qSum);
Double_t meanT = param[1];
Double_t sigmaT = param[2];
(*GetPadTimesEvent(fCurrentSector,kTRUE)).GetMatrixArray()[fCurrentChannel] = meanT;
GetHistoQ(fCurrentSector,kTRUE)->Fill( qSum, fCurrentChannel );
GetHistoRMS(fCurrentSector,kTRUE)->Fill( sigmaT, fCurrentChannel );
if ( GetStreamLevel()>0 ){
TTreeSRedirector *streamer=GetDebugStreamer();
if ( GetStreamLevel() == 1 ){
if ( streamer ) {
Int_t padc = fCurrentPad-(fROC->GetNPads(fCurrentSector,fCurrentRow)/2);
(*streamer) << "PadSignals" <<
"Event=" <<fNevents <<
"Sector=" <<fCurrentSector<<
"Row=" <<fCurrentRow<<
"Pad=" <<fCurrentPad<<
"PadC=" <<padc<<
"Channel="<<fCurrentChannel<<
"Sum=" <<qSum<<
"params.="<<¶m<<
"signal.=" <<&fPadSignal<<
"\n";
}
} else {
(*GetPadPedestalEvent(fCurrentSector,kTRUE))[fCurrentChannel]=fPadPedestal;
(*GetPadRMSEvent(fCurrentSector,kTRUE))[fCurrentChannel]=sigmaT;
(*GetPadQEvent(fCurrentSector,kTRUE))[fCurrentChannel]=qSum;
}
}
ResetPad();
}
void AliTPCCalibPulser::EndEvent()
{
if ( fMaxTimeBin>-1 ) ProcessPad();
for ( Int_t iSec = 0; iSec<72; ++iSec ){
TVectorF *vTimes = GetPadTimesEvent(iSec);
if ( !vTimes || fVTime0OffsetCounter[iSec]==0 ) continue;
Float_t time0 = fVTime0Offset[iSec]/fVTime0OffsetCounter[iSec];
for ( UInt_t iChannel=0; iChannel<fROC->GetNChannels(iSec); ++iChannel ){
Float_t time = (*vTimes).GetMatrixArray()[iChannel];
GetHistoT0(iSec,kTRUE)->Fill( time-time0,iChannel );
if ( GetStreamLevel()>1 ){
TTreeSRedirector *streamer=GetDebugStreamer();
if ( streamer ) {
Int_t row=0;
Int_t pad=0;
Int_t padc=0;
Float_t q = (*GetPadQEvent(iSec)).GetMatrixArray()[iChannel];
Float_t rms = (*GetPadRMSEvent(iSec)).GetMatrixArray()[iChannel];
UInt_t channel=iChannel;
Int_t sector=iSec;
while ( channel > (fROC->GetRowIndexes(sector)[row]+fROC->GetNPads(sector,row)-1) ) row++;
pad = channel-fROC->GetRowIndexes(sector)[row];
padc = pad-(fROC->GetNPads(sector,row)/2);
(*streamer) << "DataPad" <<
"Event=" << fNevents <<
"Sector="<< sector <<
"Row=" << row<<
"Pad=" << pad <<
"PadC=" << padc <<
"PadSec="<< channel <<
"Time0=" << time0 <<
"Time=" << time <<
"RMS=" << rms <<
"Sum=" << q <<
"\n";
}
}
}
}
++fNevents;
}
TH2S* AliTPCCalibPulser::GetHisto(Int_t sector, TObjArray *arr,
Int_t nbinsY, Float_t ymin, Float_t ymax,
const Char_t *type, Bool_t force)
{
if ( !force || arr->UncheckedAt(sector) )
return (TH2S*)arr->UncheckedAt(sector);
TH2S* hist = new TH2S(Form("hCalib%s%.2d",type,sector),Form("%s calibration histogram sector %.2d",type,sector),
nbinsY, ymin, ymax,
fROC->GetNChannels(sector),0,fROC->GetNChannels(sector));
hist->SetDirectory(0);
arr->AddAt(hist,sector);
return hist;
}
TH2S* AliTPCCalibPulser::GetHistoT0(Int_t sector, Bool_t force)
{
TObjArray *arr = &fHistoT0Array;
return GetHisto(sector, arr, fNbinsT0, fXminT0, fXmaxT0, "T0", force);
}
TH2S* AliTPCCalibPulser::GetHistoQ(Int_t sector, Bool_t force)
{
TObjArray *arr = &fHistoQArray;
return GetHisto(sector, arr, fNbinsQ, fXminQ, fXmaxQ, "Q", force);
}
TH2S* AliTPCCalibPulser::GetHistoRMS(Int_t sector, Bool_t force)
{
TObjArray *arr = &fHistoRMSArray;
return GetHisto(sector, arr, fNbinsRMS, fXminRMS, fXmaxRMS, "RMS", force);
}
TH2F* AliTPCCalibPulser::GetHistoTSec()
{
if ( !fHMeanTimeSector )
fHMeanTimeSector = new TH2F("fHMeanTimeSector","Abs mean time per sector",
20*(fLastTimeBin-fFirstTimeBin), fFirstTimeBin, fLastTimeBin,
72,0,72);
return fHMeanTimeSector;
}
TVectorF* AliTPCCalibPulser::GetPadInfoEvent(Int_t sector, TObjArray *arr, Bool_t force)
{
if ( !force || arr->UncheckedAt(sector) )
return (TVectorF*)arr->UncheckedAt(sector);
TVectorF *vect = new TVectorF(fROC->GetNChannels(sector));
arr->AddAt(vect,sector);
return vect;
}
TVectorF* AliTPCCalibPulser::GetPadTimesEvent(Int_t sector, Bool_t force)
{
TObjArray *arr = &fPadTimesArrayEvent;
return GetPadInfoEvent(sector,arr,force);
}
TVectorF* AliTPCCalibPulser::GetPadQEvent(Int_t sector, Bool_t force)
{
TObjArray *arr = &fPadQArrayEvent;
return GetPadInfoEvent(sector,arr,force);
}
TVectorF* AliTPCCalibPulser::GetPadRMSEvent(Int_t sector, Bool_t force)
{
TObjArray *arr = &fPadRMSArrayEvent;
return GetPadInfoEvent(sector,arr,force);
}
TVectorF* AliTPCCalibPulser::GetPadPedestalEvent(Int_t sector, Bool_t force)
{
TObjArray *arr = &fPadPedestalArrayEvent;
return GetPadInfoEvent(sector,arr,force);
}
AliTPCCalROC* AliTPCCalibPulser::GetCalRoc(Int_t sector, TObjArray* arr, Bool_t force) const
{
if ( !force || arr->UncheckedAt(sector) )
return (AliTPCCalROC*)arr->UncheckedAt(sector);
AliTPCCalROC *croc = new AliTPCCalROC(sector);
arr->AddAt(croc,sector);
return croc;
}
AliTPCCalROC* AliTPCCalibPulser::GetCalRocT0(Int_t sector, Bool_t force)
{
TObjArray *arr = &fCalRocArrayT0;
return GetCalRoc(sector, arr, force);
}
AliTPCCalROC* AliTPCCalibPulser::GetCalRocQ(Int_t sector, Bool_t force)
{
TObjArray *arr = &fCalRocArrayQ;
return GetCalRoc(sector, arr, force);
}
AliTPCCalROC* AliTPCCalibPulser::GetCalRocRMS(Int_t sector, Bool_t force)
{
TObjArray *arr = &fCalRocArrayRMS;
return GetCalRoc(sector, arr, force);
}
AliTPCCalROC* AliTPCCalibPulser::GetCalRocOutliers(Int_t sector, Bool_t force)
{
TObjArray *arr = &fCalRocArrayOutliers;
return GetCalRoc(sector, arr, force);
}
void AliTPCCalibPulser::ResetEvent()
{
fLastSector=-1;
fCurrentSector=-1;
fCurrentRow=-1;
fCurrentPad=-1;
fCurrentChannel=-1;
ResetPad();
fPadTimesArrayEvent.Delete();
fPadQArrayEvent.Delete();
fPadRMSArrayEvent.Delete();
fPadPedestalArrayEvent.Delete();
for ( Int_t i=0; i<72; ++i ){
fVTime0Offset[i]=0;
fVTime0OffsetCounter[i]=0;
}
}
void AliTPCCalibPulser::ResetPad()
{
for (Int_t i=fFirstTimeBin; i<fLastTimeBin+1; ++i)
fPadSignal[i] = 0;
fMaxTimeBin = -1;
fMaxPadSignal = -1;
fPadPedestal = -1;
fPadNoise = -1;
}
Bool_t AliTPCCalibPulser::IsEdgePad(Int_t sector, Int_t row, Int_t pad)
{
Int_t edge1 = 0;
Int_t edge2 = fROC->GetNPads(sector,row)-1;
if ( pad == edge1 || pad == edge2 ) return kTRUE;
return kFALSE;
}
void AliTPCCalibPulser::Merge(AliTPCCalibPulser * const sig)
{
MergeBase(sig);
for (Int_t iSec=0; iSec<72; ++iSec){
TH2S *hRefQmerge = sig->GetHistoQ(iSec);
TH2S *hRefT0merge = sig->GetHistoT0(iSec);
TH2S *hRefRMSmerge = sig->GetHistoRMS(iSec);
if ( hRefQmerge ){
TDirectory *dir = hRefQmerge->GetDirectory(); hRefQmerge->SetDirectory(0);
TH2S *hRefQ = GetHistoQ(iSec);
if ( hRefQ ) hRefQ->Add(hRefQmerge);
else {
TH2S *hist = new TH2S(*hRefQmerge);
hist->SetDirectory(0);
fHistoQArray.AddAt(hist, iSec);
}
hRefQmerge->SetDirectory(dir);
}
if ( hRefT0merge ){
TDirectory *dir = hRefT0merge->GetDirectory(); hRefT0merge->SetDirectory(0);
TH2S *hRefT0 = GetHistoT0(iSec);
if ( hRefT0 ) hRefT0->Add(hRefT0merge);
else {
TH2S *hist = new TH2S(*hRefT0merge);
hist->SetDirectory(0);
fHistoT0Array.AddAt(hist, iSec);
}
hRefT0merge->SetDirectory(dir);
}
if ( hRefRMSmerge ){
TDirectory *dir = hRefRMSmerge->GetDirectory(); hRefRMSmerge->SetDirectory(0);
TH2S *hRefRMS = GetHistoRMS(iSec);
if ( hRefRMS ) hRefRMS->Add(hRefRMSmerge);
else {
TH2S *hist = new TH2S(*hRefRMSmerge);
hist->SetDirectory(0);
fHistoRMSArray.AddAt(hist, iSec);
}
hRefRMSmerge->SetDirectory(dir);
}
}
if ( sig->fHMeanTimeSector ){
TDirectory *dir = sig->fHMeanTimeSector->GetDirectory(); sig->fHMeanTimeSector->SetDirectory(0);
if ( fHMeanTimeSector ) fHMeanTimeSector->Add(sig->fHMeanTimeSector);
else {
fHMeanTimeSector = new TH2F(*sig->fHMeanTimeSector);
fHMeanTimeSector->SetDirectory(0);
}
sig->fHMeanTimeSector->SetDirectory(dir);
}
}
Long64_t AliTPCCalibPulser::Merge(TCollection * const list)
{
Long64_t nmerged=1;
TIter next(list);
AliTPCCalibPulser *ce=0;
TObject *o=0;
while ( (o=next()) ){
ce=dynamic_cast<AliTPCCalibPulser*>(o);
if (ce){
Merge(ce);
++nmerged;
}
}
return nmerged;
}
void AliTPCCalibPulser::Analyse()
{
TVectorD paramQ(3);
TVectorD paramT0(3);
TVectorD paramRMS(3);
TMatrixD dummy(3,3);
TH1F hMeanTsec("hMeanTsec","hMeanTsec",20*(fLastTimeBin-fFirstTimeBin),fFirstTimeBin,fLastTimeBin);
fVMeanTimeSector.Zero();
for (Int_t iSec=0; iSec<72; ++iSec){
TH2S *hT0 = GetHistoT0(iSec);
if (!hT0 ) continue;
if ( fHMeanTimeSector ){
Int_t nbinsT = fHMeanTimeSector->GetNbinsX();
Int_t offset = (nbinsT+2)*(iSec+1);
Float_t *arrP=fHMeanTimeSector->GetArray()+offset;
Int_t entries=0;
for ( Int_t i=0; i<nbinsT; i++ ) entries+=(Int_t)arrP[i+1];
hMeanTsec.Set(nbinsT+2,arrP);
hMeanTsec.SetEntries(entries);
paramT0.Zero();
if ( entries>0 ) AliMathBase::TruncatedMean(&hMeanTsec,¶mT0,0.05,.95);
fVMeanTimeSector[iSec]=paramT0[1];
}
AliTPCCalROC *rocQ = GetCalRocQ (iSec,kTRUE);
AliTPCCalROC *rocT0 = GetCalRocT0 (iSec,kTRUE);
AliTPCCalROC *rocRMS = GetCalRocRMS(iSec,kTRUE);
AliTPCCalROC *rocOut = GetCalRocOutliers(iSec,kTRUE);
TH2S *hQ = GetHistoQ(iSec);
TH2S *hRMS = GetHistoRMS(iSec);
Short_t *arrayhQ = hQ->GetArray();
Short_t *arrayhT0 = hT0->GetArray();
Short_t *arrayhRMS = hRMS->GetArray();
UInt_t nChannels = fROC->GetNChannels(iSec);
Float_t meanTsec = fVMeanTimeSector[iSec];
Int_t row=0;
Int_t pad=0;
Int_t padc=0;
for (UInt_t iChannel=0; iChannel<nChannels; ++iChannel){
Float_t cogTime0 = -1000;
Float_t cogQ = -1000;
Float_t cogRMS = -1000;
Float_t cogOut = 0;
Int_t offsetQ = (fNbinsQ+2)*(iChannel+1)+1;
Int_t offsetT0 = (fNbinsT0+2)*(iChannel+1)+1;
Int_t offsetRMS = (fNbinsRMS+2)*(iChannel+1)+1;
cogQ = AliMathBase::GetCOG(arrayhQ+offsetQ,fNbinsQ,fXminQ,fXmaxQ);
cogTime0 = AliMathBase::GetCOG(arrayhT0+offsetT0,fNbinsT0,fXminT0,fXmaxT0);
cogRMS = AliMathBase::GetCOG(arrayhRMS+offsetRMS,fNbinsRMS,fXminRMS,fXmaxRMS);
rocQ->SetValue(iChannel, cogQ);
rocT0->SetValue(iChannel, cogTime0+meanTsec);
rocRMS->SetValue(iChannel, cogRMS);
rocOut->SetValue(iChannel, cogOut);
if (TMath::Abs(cogTime0-fXminT0)<1e-10){
rocQ->SetValue(iChannel, 0);
rocT0->SetValue(iChannel, 0);
rocRMS->SetValue(iChannel, 0);
}
if ( GetStreamLevel() > 2 ){
TTreeSRedirector *streamer=GetDebugStreamer();
if ( streamer ) {
while ( iChannel > (fROC->GetRowIndexes(iSec)[row]+fROC->GetNPads(iSec,row)-1) ) row++;
pad = iChannel-fROC->GetRowIndexes(iSec)[row];
padc = pad-(fROC->GetNPads(iSec,row)/2);
(*streamer) << "DataEnd" <<
"Sector=" << iSec <<
"Pad=" << pad <<
"PadC=" << padc <<
"Row=" << row <<
"PadSec=" << iChannel <<
"Q=" << cogQ <<
"T0=" << cogTime0 <<
"RMS=" << cogRMS <<
"\n";
}
}
}
}
}
TObjArray* AliTPCCalibPulser::TestBinning()
{
TObjArray *histArray = new TObjArray(6);
const Char_t *type[] = {"T0","Q","RMS"};
Int_t fNbins[3] = {fNbinsT0,fNbinsQ,fNbinsRMS};
for (Int_t itype = 0; itype<3; ++itype){
for (Int_t imode=0; imode<2; ++imode){
Int_t icount = itype*2+imode;
histArray->AddAt(new TH1F(Form("hTestBinning%s%d",type[itype],imode),
Form("Test Binning of '%s', mode - %d",type[itype],imode),
72,0,72),
icount);
}
}
TH2S *hRef=0x0;
Short_t *array=0x0;
for (Int_t itype = 0; itype<3; ++itype){
for (Int_t iSec=0; iSec<72; ++iSec){
if ( itype == 0 ) hRef = GetHistoT0(iSec);
if ( itype == 1 ) hRef = GetHistoQ(iSec);
if ( itype == 2 ) hRef = GetHistoRMS(iSec);
if ( hRef == 0x0 ) continue;
array = (hRef->GetArray());
UInt_t nChannels = fROC->GetNChannels(iSec);
Int_t nempty=0;
for (UInt_t iChannel=0; iChannel<nChannels; ++iChannel){
Int_t nfilled=0;
Int_t offset = (fNbins[itype]+2)*(iChannel+1)+1;
Int_t c1 = 0;
Int_t c2 = 0;
for (Int_t iBin=0; iBin<fNbins[itype]; ++iBin){
if ( array[offset+iBin]>0 ) {
nfilled++;
if ( c1 && c2 ) nempty++;
else c1 = 1;
}
else if ( c1 ) c2 = 1;
}
((TH1F*)histArray->At(itype*2))->Fill(nfilled);
}
((TH1F*)histArray->At(itype*2+1))->Fill(iSec,nempty);
}
}
return histArray;
}
AliTPCCalibPulser.cxx:100 AliTPCCalibPulser.cxx:101 AliTPCCalibPulser.cxx:102 AliTPCCalibPulser.cxx:103 AliTPCCalibPulser.cxx:104 AliTPCCalibPulser.cxx:105 AliTPCCalibPulser.cxx:106 AliTPCCalibPulser.cxx:107 AliTPCCalibPulser.cxx:108 AliTPCCalibPulser.cxx:109 AliTPCCalibPulser.cxx:110 AliTPCCalibPulser.cxx:111 AliTPCCalibPulser.cxx:112 AliTPCCalibPulser.cxx:113 AliTPCCalibPulser.cxx:114 AliTPCCalibPulser.cxx:115 AliTPCCalibPulser.cxx:116 AliTPCCalibPulser.cxx:117 AliTPCCalibPulser.cxx:118 AliTPCCalibPulser.cxx:119 AliTPCCalibPulser.cxx:120 AliTPCCalibPulser.cxx:121 AliTPCCalibPulser.cxx:122 AliTPCCalibPulser.cxx:123 AliTPCCalibPulser.cxx:124 AliTPCCalibPulser.cxx:125 AliTPCCalibPulser.cxx:126 AliTPCCalibPulser.cxx:127 AliTPCCalibPulser.cxx:128 AliTPCCalibPulser.cxx:129 AliTPCCalibPulser.cxx:130 AliTPCCalibPulser.cxx:131 AliTPCCalibPulser.cxx:132 AliTPCCalibPulser.cxx:133 AliTPCCalibPulser.cxx:134 AliTPCCalibPulser.cxx:135 AliTPCCalibPulser.cxx:136 AliTPCCalibPulser.cxx:137 AliTPCCalibPulser.cxx:138 AliTPCCalibPulser.cxx:139 AliTPCCalibPulser.cxx:140 AliTPCCalibPulser.cxx:141 AliTPCCalibPulser.cxx:142 AliTPCCalibPulser.cxx:143 AliTPCCalibPulser.cxx:144 AliTPCCalibPulser.cxx:145 AliTPCCalibPulser.cxx:146 AliTPCCalibPulser.cxx:147 AliTPCCalibPulser.cxx:148 AliTPCCalibPulser.cxx:149 AliTPCCalibPulser.cxx:150 AliTPCCalibPulser.cxx:151 AliTPCCalibPulser.cxx:152 AliTPCCalibPulser.cxx:153 AliTPCCalibPulser.cxx:154 AliTPCCalibPulser.cxx:155 AliTPCCalibPulser.cxx:156 AliTPCCalibPulser.cxx:157 AliTPCCalibPulser.cxx:158 AliTPCCalibPulser.cxx:159 AliTPCCalibPulser.cxx:160 AliTPCCalibPulser.cxx:161 AliTPCCalibPulser.cxx:162 AliTPCCalibPulser.cxx:163 AliTPCCalibPulser.cxx:164 AliTPCCalibPulser.cxx:165 AliTPCCalibPulser.cxx:166 AliTPCCalibPulser.cxx:167 AliTPCCalibPulser.cxx:168 AliTPCCalibPulser.cxx:169 AliTPCCalibPulser.cxx:170 AliTPCCalibPulser.cxx:171 AliTPCCalibPulser.cxx:172 AliTPCCalibPulser.cxx:173 AliTPCCalibPulser.cxx:174 AliTPCCalibPulser.cxx:175 AliTPCCalibPulser.cxx:176 AliTPCCalibPulser.cxx:177 AliTPCCalibPulser.cxx:178 AliTPCCalibPulser.cxx:179 AliTPCCalibPulser.cxx:180 AliTPCCalibPulser.cxx:181 AliTPCCalibPulser.cxx:182 AliTPCCalibPulser.cxx:183 AliTPCCalibPulser.cxx:184 AliTPCCalibPulser.cxx:185 AliTPCCalibPulser.cxx:186 AliTPCCalibPulser.cxx:187 AliTPCCalibPulser.cxx:188 AliTPCCalibPulser.cxx:189 AliTPCCalibPulser.cxx:190 AliTPCCalibPulser.cxx:191 AliTPCCalibPulser.cxx:192 AliTPCCalibPulser.cxx:193 AliTPCCalibPulser.cxx:194 AliTPCCalibPulser.cxx:195 AliTPCCalibPulser.cxx:196 AliTPCCalibPulser.cxx:197 AliTPCCalibPulser.cxx:198 AliTPCCalibPulser.cxx:199 AliTPCCalibPulser.cxx:200 AliTPCCalibPulser.cxx:201 AliTPCCalibPulser.cxx:202 AliTPCCalibPulser.cxx:203 AliTPCCalibPulser.cxx:204 AliTPCCalibPulser.cxx:205 AliTPCCalibPulser.cxx:206 AliTPCCalibPulser.cxx:207 AliTPCCalibPulser.cxx:208 AliTPCCalibPulser.cxx:209 AliTPCCalibPulser.cxx:210 AliTPCCalibPulser.cxx:211 AliTPCCalibPulser.cxx:212 AliTPCCalibPulser.cxx:213 AliTPCCalibPulser.cxx:214 AliTPCCalibPulser.cxx:215 AliTPCCalibPulser.cxx:216 AliTPCCalibPulser.cxx:217 AliTPCCalibPulser.cxx:218 AliTPCCalibPulser.cxx:219 AliTPCCalibPulser.cxx:220 AliTPCCalibPulser.cxx:221 AliTPCCalibPulser.cxx:222 AliTPCCalibPulser.cxx:223 AliTPCCalibPulser.cxx:224 AliTPCCalibPulser.cxx:225 AliTPCCalibPulser.cxx:226 AliTPCCalibPulser.cxx:227 AliTPCCalibPulser.cxx:228 AliTPCCalibPulser.cxx:229 AliTPCCalibPulser.cxx:230 AliTPCCalibPulser.cxx:231 AliTPCCalibPulser.cxx:232 AliTPCCalibPulser.cxx:233 AliTPCCalibPulser.cxx:234 AliTPCCalibPulser.cxx:235 AliTPCCalibPulser.cxx:236 AliTPCCalibPulser.cxx:237 AliTPCCalibPulser.cxx:238 AliTPCCalibPulser.cxx:239 AliTPCCalibPulser.cxx:240 AliTPCCalibPulser.cxx:241 AliTPCCalibPulser.cxx:242 AliTPCCalibPulser.cxx:243 AliTPCCalibPulser.cxx:244 AliTPCCalibPulser.cxx:245 AliTPCCalibPulser.cxx:246 AliTPCCalibPulser.cxx:247 AliTPCCalibPulser.cxx:248 AliTPCCalibPulser.cxx:249 AliTPCCalibPulser.cxx:250 AliTPCCalibPulser.cxx:251 AliTPCCalibPulser.cxx:252 AliTPCCalibPulser.cxx:253 AliTPCCalibPulser.cxx:254 AliTPCCalibPulser.cxx:255 AliTPCCalibPulser.cxx:256 AliTPCCalibPulser.cxx:257 AliTPCCalibPulser.cxx:258 AliTPCCalibPulser.cxx:259 AliTPCCalibPulser.cxx:260 AliTPCCalibPulser.cxx:261 AliTPCCalibPulser.cxx:262 AliTPCCalibPulser.cxx:263 AliTPCCalibPulser.cxx:264 AliTPCCalibPulser.cxx:265 AliTPCCalibPulser.cxx:266 AliTPCCalibPulser.cxx:267 AliTPCCalibPulser.cxx:268 AliTPCCalibPulser.cxx:269 AliTPCCalibPulser.cxx:270 AliTPCCalibPulser.cxx:271 AliTPCCalibPulser.cxx:272 AliTPCCalibPulser.cxx:273 AliTPCCalibPulser.cxx:274 AliTPCCalibPulser.cxx:275 AliTPCCalibPulser.cxx:276 AliTPCCalibPulser.cxx:277 AliTPCCalibPulser.cxx:278 AliTPCCalibPulser.cxx:279 AliTPCCalibPulser.cxx:280 AliTPCCalibPulser.cxx:281 AliTPCCalibPulser.cxx:282 AliTPCCalibPulser.cxx:283 AliTPCCalibPulser.cxx:284 AliTPCCalibPulser.cxx:285 AliTPCCalibPulser.cxx:286 AliTPCCalibPulser.cxx:287 AliTPCCalibPulser.cxx:288 AliTPCCalibPulser.cxx:289 AliTPCCalibPulser.cxx:290 AliTPCCalibPulser.cxx:291 AliTPCCalibPulser.cxx:292 AliTPCCalibPulser.cxx:293 AliTPCCalibPulser.cxx:294 AliTPCCalibPulser.cxx:295 AliTPCCalibPulser.cxx:296 AliTPCCalibPulser.cxx:297 AliTPCCalibPulser.cxx:298 AliTPCCalibPulser.cxx:299 AliTPCCalibPulser.cxx:300 AliTPCCalibPulser.cxx:301 AliTPCCalibPulser.cxx:302 AliTPCCalibPulser.cxx:303 AliTPCCalibPulser.cxx:304 AliTPCCalibPulser.cxx:305 AliTPCCalibPulser.cxx:306 AliTPCCalibPulser.cxx:307 AliTPCCalibPulser.cxx:308 AliTPCCalibPulser.cxx:309 AliTPCCalibPulser.cxx:310 AliTPCCalibPulser.cxx:311 AliTPCCalibPulser.cxx:312 AliTPCCalibPulser.cxx:313 AliTPCCalibPulser.cxx:314 AliTPCCalibPulser.cxx:315 AliTPCCalibPulser.cxx:316 AliTPCCalibPulser.cxx:317 AliTPCCalibPulser.cxx:318 AliTPCCalibPulser.cxx:319 AliTPCCalibPulser.cxx:320 AliTPCCalibPulser.cxx:321 AliTPCCalibPulser.cxx:322 AliTPCCalibPulser.cxx:323 AliTPCCalibPulser.cxx:324 AliTPCCalibPulser.cxx:325 AliTPCCalibPulser.cxx:326 AliTPCCalibPulser.cxx:327 AliTPCCalibPulser.cxx:328 AliTPCCalibPulser.cxx:329 AliTPCCalibPulser.cxx:330 AliTPCCalibPulser.cxx:331 AliTPCCalibPulser.cxx:332 AliTPCCalibPulser.cxx:333 AliTPCCalibPulser.cxx:334 AliTPCCalibPulser.cxx:335 AliTPCCalibPulser.cxx:336 AliTPCCalibPulser.cxx:337 AliTPCCalibPulser.cxx:338 AliTPCCalibPulser.cxx:339 AliTPCCalibPulser.cxx:340 AliTPCCalibPulser.cxx:341 AliTPCCalibPulser.cxx:342 AliTPCCalibPulser.cxx:343 AliTPCCalibPulser.cxx:344 AliTPCCalibPulser.cxx:345 AliTPCCalibPulser.cxx:346 AliTPCCalibPulser.cxx:347 AliTPCCalibPulser.cxx:348 AliTPCCalibPulser.cxx:349 AliTPCCalibPulser.cxx:350 AliTPCCalibPulser.cxx:351 AliTPCCalibPulser.cxx:352 AliTPCCalibPulser.cxx:353 AliTPCCalibPulser.cxx:354 AliTPCCalibPulser.cxx:355 AliTPCCalibPulser.cxx:356 AliTPCCalibPulser.cxx:357 AliTPCCalibPulser.cxx:358 AliTPCCalibPulser.cxx:359 AliTPCCalibPulser.cxx:360 AliTPCCalibPulser.cxx:361 AliTPCCalibPulser.cxx:362 AliTPCCalibPulser.cxx:363 AliTPCCalibPulser.cxx:364 AliTPCCalibPulser.cxx:365 AliTPCCalibPulser.cxx:366 AliTPCCalibPulser.cxx:367 AliTPCCalibPulser.cxx:368 AliTPCCalibPulser.cxx:369 AliTPCCalibPulser.cxx:370 AliTPCCalibPulser.cxx:371 AliTPCCalibPulser.cxx:372 AliTPCCalibPulser.cxx:373 AliTPCCalibPulser.cxx:374 AliTPCCalibPulser.cxx:375 AliTPCCalibPulser.cxx:376 AliTPCCalibPulser.cxx:377 AliTPCCalibPulser.cxx:378 AliTPCCalibPulser.cxx:379 AliTPCCalibPulser.cxx:380 AliTPCCalibPulser.cxx:381 AliTPCCalibPulser.cxx:382 AliTPCCalibPulser.cxx:383 AliTPCCalibPulser.cxx:384 AliTPCCalibPulser.cxx:385 AliTPCCalibPulser.cxx:386 AliTPCCalibPulser.cxx:387 AliTPCCalibPulser.cxx:388 AliTPCCalibPulser.cxx:389 AliTPCCalibPulser.cxx:390 AliTPCCalibPulser.cxx:391 AliTPCCalibPulser.cxx:392 AliTPCCalibPulser.cxx:393 AliTPCCalibPulser.cxx:394 AliTPCCalibPulser.cxx:395 AliTPCCalibPulser.cxx:396 AliTPCCalibPulser.cxx:397 AliTPCCalibPulser.cxx:398 AliTPCCalibPulser.cxx:399 AliTPCCalibPulser.cxx:400 AliTPCCalibPulser.cxx:401 AliTPCCalibPulser.cxx:402 AliTPCCalibPulser.cxx:403 AliTPCCalibPulser.cxx:404 AliTPCCalibPulser.cxx:405 AliTPCCalibPulser.cxx:406 AliTPCCalibPulser.cxx:407 AliTPCCalibPulser.cxx:408 AliTPCCalibPulser.cxx:409 AliTPCCalibPulser.cxx:410 AliTPCCalibPulser.cxx:411 AliTPCCalibPulser.cxx:412 AliTPCCalibPulser.cxx:413 AliTPCCalibPulser.cxx:414 AliTPCCalibPulser.cxx:415 AliTPCCalibPulser.cxx:416 AliTPCCalibPulser.cxx:417 AliTPCCalibPulser.cxx:418 AliTPCCalibPulser.cxx:419 AliTPCCalibPulser.cxx:420 AliTPCCalibPulser.cxx:421 AliTPCCalibPulser.cxx:422 AliTPCCalibPulser.cxx:423 AliTPCCalibPulser.cxx:424 AliTPCCalibPulser.cxx:425 AliTPCCalibPulser.cxx:426 AliTPCCalibPulser.cxx:427 AliTPCCalibPulser.cxx:428 AliTPCCalibPulser.cxx:429 AliTPCCalibPulser.cxx:430 AliTPCCalibPulser.cxx:431 AliTPCCalibPulser.cxx:432 AliTPCCalibPulser.cxx:433 AliTPCCalibPulser.cxx:434 AliTPCCalibPulser.cxx:435 AliTPCCalibPulser.cxx:436 AliTPCCalibPulser.cxx:437 AliTPCCalibPulser.cxx:438 AliTPCCalibPulser.cxx:439 AliTPCCalibPulser.cxx:440 AliTPCCalibPulser.cxx:441 AliTPCCalibPulser.cxx:442 AliTPCCalibPulser.cxx:443 AliTPCCalibPulser.cxx:444 AliTPCCalibPulser.cxx:445 AliTPCCalibPulser.cxx:446 AliTPCCalibPulser.cxx:447 AliTPCCalibPulser.cxx:448 AliTPCCalibPulser.cxx:449 AliTPCCalibPulser.cxx:450 AliTPCCalibPulser.cxx:451 AliTPCCalibPulser.cxx:452 AliTPCCalibPulser.cxx:453 AliTPCCalibPulser.cxx:454 AliTPCCalibPulser.cxx:455 AliTPCCalibPulser.cxx:456 AliTPCCalibPulser.cxx:457 AliTPCCalibPulser.cxx:458 AliTPCCalibPulser.cxx:459 AliTPCCalibPulser.cxx:460 AliTPCCalibPulser.cxx:461 AliTPCCalibPulser.cxx:462 AliTPCCalibPulser.cxx:463 AliTPCCalibPulser.cxx:464 AliTPCCalibPulser.cxx:465 AliTPCCalibPulser.cxx:466 AliTPCCalibPulser.cxx:467 AliTPCCalibPulser.cxx:468 AliTPCCalibPulser.cxx:469 AliTPCCalibPulser.cxx:470 AliTPCCalibPulser.cxx:471 AliTPCCalibPulser.cxx:472 AliTPCCalibPulser.cxx:473 AliTPCCalibPulser.cxx:474 AliTPCCalibPulser.cxx:475 AliTPCCalibPulser.cxx:476 AliTPCCalibPulser.cxx:477 AliTPCCalibPulser.cxx:478 AliTPCCalibPulser.cxx:479 AliTPCCalibPulser.cxx:480 AliTPCCalibPulser.cxx:481 AliTPCCalibPulser.cxx:482 AliTPCCalibPulser.cxx:483 AliTPCCalibPulser.cxx:484 AliTPCCalibPulser.cxx:485 AliTPCCalibPulser.cxx:486 AliTPCCalibPulser.cxx:487 AliTPCCalibPulser.cxx:488 AliTPCCalibPulser.cxx:489 AliTPCCalibPulser.cxx:490 AliTPCCalibPulser.cxx:491 AliTPCCalibPulser.cxx:492 AliTPCCalibPulser.cxx:493 AliTPCCalibPulser.cxx:494 AliTPCCalibPulser.cxx:495 AliTPCCalibPulser.cxx:496 AliTPCCalibPulser.cxx:497 AliTPCCalibPulser.cxx:498 AliTPCCalibPulser.cxx:499 AliTPCCalibPulser.cxx:500 AliTPCCalibPulser.cxx:501 AliTPCCalibPulser.cxx:502 AliTPCCalibPulser.cxx:503 AliTPCCalibPulser.cxx:504 AliTPCCalibPulser.cxx:505 AliTPCCalibPulser.cxx:506 AliTPCCalibPulser.cxx:507 AliTPCCalibPulser.cxx:508 AliTPCCalibPulser.cxx:509 AliTPCCalibPulser.cxx:510 AliTPCCalibPulser.cxx:511 AliTPCCalibPulser.cxx:512 AliTPCCalibPulser.cxx:513 AliTPCCalibPulser.cxx:514 AliTPCCalibPulser.cxx:515 AliTPCCalibPulser.cxx:516 AliTPCCalibPulser.cxx:517 AliTPCCalibPulser.cxx:518 AliTPCCalibPulser.cxx:519 AliTPCCalibPulser.cxx:520 AliTPCCalibPulser.cxx:521 AliTPCCalibPulser.cxx:522 AliTPCCalibPulser.cxx:523 AliTPCCalibPulser.cxx:524 AliTPCCalibPulser.cxx:525 AliTPCCalibPulser.cxx:526 AliTPCCalibPulser.cxx:527 AliTPCCalibPulser.cxx:528 AliTPCCalibPulser.cxx:529 AliTPCCalibPulser.cxx:530 AliTPCCalibPulser.cxx:531 AliTPCCalibPulser.cxx:532 AliTPCCalibPulser.cxx:533 AliTPCCalibPulser.cxx:534 AliTPCCalibPulser.cxx:535 AliTPCCalibPulser.cxx:536 AliTPCCalibPulser.cxx:537 AliTPCCalibPulser.cxx:538 AliTPCCalibPulser.cxx:539 AliTPCCalibPulser.cxx:540 AliTPCCalibPulser.cxx:541 AliTPCCalibPulser.cxx:542 AliTPCCalibPulser.cxx:543 AliTPCCalibPulser.cxx:544 AliTPCCalibPulser.cxx:545 AliTPCCalibPulser.cxx:546 AliTPCCalibPulser.cxx:547 AliTPCCalibPulser.cxx:548 AliTPCCalibPulser.cxx:549 AliTPCCalibPulser.cxx:550 AliTPCCalibPulser.cxx:551 AliTPCCalibPulser.cxx:552 AliTPCCalibPulser.cxx:553 AliTPCCalibPulser.cxx:554 AliTPCCalibPulser.cxx:555 AliTPCCalibPulser.cxx:556 AliTPCCalibPulser.cxx:557 AliTPCCalibPulser.cxx:558 AliTPCCalibPulser.cxx:559 AliTPCCalibPulser.cxx:560 AliTPCCalibPulser.cxx:561 AliTPCCalibPulser.cxx:562 AliTPCCalibPulser.cxx:563 AliTPCCalibPulser.cxx:564 AliTPCCalibPulser.cxx:565 AliTPCCalibPulser.cxx:566 AliTPCCalibPulser.cxx:567 AliTPCCalibPulser.cxx:568 AliTPCCalibPulser.cxx:569 AliTPCCalibPulser.cxx:570 AliTPCCalibPulser.cxx:571 AliTPCCalibPulser.cxx:572 AliTPCCalibPulser.cxx:573 AliTPCCalibPulser.cxx:574 AliTPCCalibPulser.cxx:575 AliTPCCalibPulser.cxx:576 AliTPCCalibPulser.cxx:577 AliTPCCalibPulser.cxx:578 AliTPCCalibPulser.cxx:579 AliTPCCalibPulser.cxx:580 AliTPCCalibPulser.cxx:581 AliTPCCalibPulser.cxx:582 AliTPCCalibPulser.cxx:583 AliTPCCalibPulser.cxx:584 AliTPCCalibPulser.cxx:585 AliTPCCalibPulser.cxx:586 AliTPCCalibPulser.cxx:587 AliTPCCalibPulser.cxx:588 AliTPCCalibPulser.cxx:589 AliTPCCalibPulser.cxx:590 AliTPCCalibPulser.cxx:591 AliTPCCalibPulser.cxx:592 AliTPCCalibPulser.cxx:593 AliTPCCalibPulser.cxx:594 AliTPCCalibPulser.cxx:595 AliTPCCalibPulser.cxx:596 AliTPCCalibPulser.cxx:597 AliTPCCalibPulser.cxx:598 AliTPCCalibPulser.cxx:599 AliTPCCalibPulser.cxx:600 AliTPCCalibPulser.cxx:601 AliTPCCalibPulser.cxx:602 AliTPCCalibPulser.cxx:603 AliTPCCalibPulser.cxx:604 AliTPCCalibPulser.cxx:605 AliTPCCalibPulser.cxx:606 AliTPCCalibPulser.cxx:607 AliTPCCalibPulser.cxx:608 AliTPCCalibPulser.cxx:609 AliTPCCalibPulser.cxx:610 AliTPCCalibPulser.cxx:611 AliTPCCalibPulser.cxx:612 AliTPCCalibPulser.cxx:613 AliTPCCalibPulser.cxx:614 AliTPCCalibPulser.cxx:615 AliTPCCalibPulser.cxx:616 AliTPCCalibPulser.cxx:617 AliTPCCalibPulser.cxx:618 AliTPCCalibPulser.cxx:619 AliTPCCalibPulser.cxx:620 AliTPCCalibPulser.cxx:621 AliTPCCalibPulser.cxx:622 AliTPCCalibPulser.cxx:623 AliTPCCalibPulser.cxx:624 AliTPCCalibPulser.cxx:625 AliTPCCalibPulser.cxx:626 AliTPCCalibPulser.cxx:627 AliTPCCalibPulser.cxx:628 AliTPCCalibPulser.cxx:629 AliTPCCalibPulser.cxx:630 AliTPCCalibPulser.cxx:631 AliTPCCalibPulser.cxx:632 AliTPCCalibPulser.cxx:633 AliTPCCalibPulser.cxx:634 AliTPCCalibPulser.cxx:635 AliTPCCalibPulser.cxx:636 AliTPCCalibPulser.cxx:637 AliTPCCalibPulser.cxx:638 AliTPCCalibPulser.cxx:639 AliTPCCalibPulser.cxx:640 AliTPCCalibPulser.cxx:641 AliTPCCalibPulser.cxx:642 AliTPCCalibPulser.cxx:643 AliTPCCalibPulser.cxx:644 AliTPCCalibPulser.cxx:645 AliTPCCalibPulser.cxx:646 AliTPCCalibPulser.cxx:647 AliTPCCalibPulser.cxx:648 AliTPCCalibPulser.cxx:649 AliTPCCalibPulser.cxx:650 AliTPCCalibPulser.cxx:651 AliTPCCalibPulser.cxx:652 AliTPCCalibPulser.cxx:653 AliTPCCalibPulser.cxx:654 AliTPCCalibPulser.cxx:655 AliTPCCalibPulser.cxx:656 AliTPCCalibPulser.cxx:657 AliTPCCalibPulser.cxx:658 AliTPCCalibPulser.cxx:659 AliTPCCalibPulser.cxx:660 AliTPCCalibPulser.cxx:661 AliTPCCalibPulser.cxx:662 AliTPCCalibPulser.cxx:663 AliTPCCalibPulser.cxx:664 AliTPCCalibPulser.cxx:665 AliTPCCalibPulser.cxx:666 AliTPCCalibPulser.cxx:667 AliTPCCalibPulser.cxx:668 AliTPCCalibPulser.cxx:669 AliTPCCalibPulser.cxx:670 AliTPCCalibPulser.cxx:671 AliTPCCalibPulser.cxx:672 AliTPCCalibPulser.cxx:673 AliTPCCalibPulser.cxx:674 AliTPCCalibPulser.cxx:675 AliTPCCalibPulser.cxx:676 AliTPCCalibPulser.cxx:677 AliTPCCalibPulser.cxx:678 AliTPCCalibPulser.cxx:679 AliTPCCalibPulser.cxx:680 AliTPCCalibPulser.cxx:681 AliTPCCalibPulser.cxx:682 AliTPCCalibPulser.cxx:683 AliTPCCalibPulser.cxx:684 AliTPCCalibPulser.cxx:685 AliTPCCalibPulser.cxx:686 AliTPCCalibPulser.cxx:687 AliTPCCalibPulser.cxx:688 AliTPCCalibPulser.cxx:689 AliTPCCalibPulser.cxx:690 AliTPCCalibPulser.cxx:691 AliTPCCalibPulser.cxx:692 AliTPCCalibPulser.cxx:693 AliTPCCalibPulser.cxx:694 AliTPCCalibPulser.cxx:695 AliTPCCalibPulser.cxx:696 AliTPCCalibPulser.cxx:697 AliTPCCalibPulser.cxx:698 AliTPCCalibPulser.cxx:699 AliTPCCalibPulser.cxx:700 AliTPCCalibPulser.cxx:701 AliTPCCalibPulser.cxx:702 AliTPCCalibPulser.cxx:703 AliTPCCalibPulser.cxx:704 AliTPCCalibPulser.cxx:705 AliTPCCalibPulser.cxx:706 AliTPCCalibPulser.cxx:707 AliTPCCalibPulser.cxx:708 AliTPCCalibPulser.cxx:709 AliTPCCalibPulser.cxx:710 AliTPCCalibPulser.cxx:711 AliTPCCalibPulser.cxx:712 AliTPCCalibPulser.cxx:713 AliTPCCalibPulser.cxx:714 AliTPCCalibPulser.cxx:715 AliTPCCalibPulser.cxx:716 AliTPCCalibPulser.cxx:717 AliTPCCalibPulser.cxx:718 AliTPCCalibPulser.cxx:719 AliTPCCalibPulser.cxx:720 AliTPCCalibPulser.cxx:721 AliTPCCalibPulser.cxx:722 AliTPCCalibPulser.cxx:723 AliTPCCalibPulser.cxx:724 AliTPCCalibPulser.cxx:725 AliTPCCalibPulser.cxx:726 AliTPCCalibPulser.cxx:727 AliTPCCalibPulser.cxx:728 AliTPCCalibPulser.cxx:729 AliTPCCalibPulser.cxx:730 AliTPCCalibPulser.cxx:731 AliTPCCalibPulser.cxx:732 AliTPCCalibPulser.cxx:733 AliTPCCalibPulser.cxx:734 AliTPCCalibPulser.cxx:735 AliTPCCalibPulser.cxx:736 AliTPCCalibPulser.cxx:737 AliTPCCalibPulser.cxx:738 AliTPCCalibPulser.cxx:739 AliTPCCalibPulser.cxx:740 AliTPCCalibPulser.cxx:741 AliTPCCalibPulser.cxx:742 AliTPCCalibPulser.cxx:743 AliTPCCalibPulser.cxx:744 AliTPCCalibPulser.cxx:745 AliTPCCalibPulser.cxx:746 AliTPCCalibPulser.cxx:747 AliTPCCalibPulser.cxx:748 AliTPCCalibPulser.cxx:749 AliTPCCalibPulser.cxx:750 AliTPCCalibPulser.cxx:751 AliTPCCalibPulser.cxx:752 AliTPCCalibPulser.cxx:753 AliTPCCalibPulser.cxx:754 AliTPCCalibPulser.cxx:755 AliTPCCalibPulser.cxx:756 AliTPCCalibPulser.cxx:757 AliTPCCalibPulser.cxx:758 AliTPCCalibPulser.cxx:759 AliTPCCalibPulser.cxx:760 AliTPCCalibPulser.cxx:761 AliTPCCalibPulser.cxx:762 AliTPCCalibPulser.cxx:763 AliTPCCalibPulser.cxx:764 AliTPCCalibPulser.cxx:765 AliTPCCalibPulser.cxx:766 AliTPCCalibPulser.cxx:767 AliTPCCalibPulser.cxx:768 AliTPCCalibPulser.cxx:769 AliTPCCalibPulser.cxx:770 AliTPCCalibPulser.cxx:771 AliTPCCalibPulser.cxx:772 AliTPCCalibPulser.cxx:773 AliTPCCalibPulser.cxx:774 AliTPCCalibPulser.cxx:775 AliTPCCalibPulser.cxx:776 AliTPCCalibPulser.cxx:777 AliTPCCalibPulser.cxx:778 AliTPCCalibPulser.cxx:779 AliTPCCalibPulser.cxx:780 AliTPCCalibPulser.cxx:781 AliTPCCalibPulser.cxx:782 AliTPCCalibPulser.cxx:783 AliTPCCalibPulser.cxx:784 AliTPCCalibPulser.cxx:785 AliTPCCalibPulser.cxx:786 AliTPCCalibPulser.cxx:787 AliTPCCalibPulser.cxx:788 AliTPCCalibPulser.cxx:789 AliTPCCalibPulser.cxx:790 AliTPCCalibPulser.cxx:791 AliTPCCalibPulser.cxx:792 AliTPCCalibPulser.cxx:793 AliTPCCalibPulser.cxx:794 AliTPCCalibPulser.cxx:795 AliTPCCalibPulser.cxx:796 AliTPCCalibPulser.cxx:797 AliTPCCalibPulser.cxx:798 AliTPCCalibPulser.cxx:799 AliTPCCalibPulser.cxx:800 AliTPCCalibPulser.cxx:801 AliTPCCalibPulser.cxx:802 AliTPCCalibPulser.cxx:803 AliTPCCalibPulser.cxx:804 AliTPCCalibPulser.cxx:805 AliTPCCalibPulser.cxx:806 AliTPCCalibPulser.cxx:807 AliTPCCalibPulser.cxx:808 AliTPCCalibPulser.cxx:809 AliTPCCalibPulser.cxx:810 AliTPCCalibPulser.cxx:811 AliTPCCalibPulser.cxx:812 AliTPCCalibPulser.cxx:813 AliTPCCalibPulser.cxx:814 AliTPCCalibPulser.cxx:815 AliTPCCalibPulser.cxx:816 AliTPCCalibPulser.cxx:817 AliTPCCalibPulser.cxx:818 AliTPCCalibPulser.cxx:819 AliTPCCalibPulser.cxx:820 AliTPCCalibPulser.cxx:821 AliTPCCalibPulser.cxx:822 AliTPCCalibPulser.cxx:823 AliTPCCalibPulser.cxx:824 AliTPCCalibPulser.cxx:825 AliTPCCalibPulser.cxx:826 AliTPCCalibPulser.cxx:827 AliTPCCalibPulser.cxx:828 AliTPCCalibPulser.cxx:829 AliTPCCalibPulser.cxx:830 AliTPCCalibPulser.cxx:831 AliTPCCalibPulser.cxx:832 AliTPCCalibPulser.cxx:833 AliTPCCalibPulser.cxx:834 AliTPCCalibPulser.cxx:835 AliTPCCalibPulser.cxx:836 AliTPCCalibPulser.cxx:837 AliTPCCalibPulser.cxx:838 AliTPCCalibPulser.cxx:839 AliTPCCalibPulser.cxx:840 AliTPCCalibPulser.cxx:841 AliTPCCalibPulser.cxx:842 AliTPCCalibPulser.cxx:843 AliTPCCalibPulser.cxx:844 AliTPCCalibPulser.cxx:845 AliTPCCalibPulser.cxx:846 AliTPCCalibPulser.cxx:847 AliTPCCalibPulser.cxx:848 AliTPCCalibPulser.cxx:849 AliTPCCalibPulser.cxx:850 AliTPCCalibPulser.cxx:851 AliTPCCalibPulser.cxx:852 AliTPCCalibPulser.cxx:853 AliTPCCalibPulser.cxx:854 AliTPCCalibPulser.cxx:855 AliTPCCalibPulser.cxx:856 AliTPCCalibPulser.cxx:857 AliTPCCalibPulser.cxx:858 AliTPCCalibPulser.cxx:859 AliTPCCalibPulser.cxx:860 AliTPCCalibPulser.cxx:861 AliTPCCalibPulser.cxx:862 AliTPCCalibPulser.cxx:863 AliTPCCalibPulser.cxx:864 AliTPCCalibPulser.cxx:865 AliTPCCalibPulser.cxx:866 AliTPCCalibPulser.cxx:867 AliTPCCalibPulser.cxx:868 AliTPCCalibPulser.cxx:869 AliTPCCalibPulser.cxx:870 AliTPCCalibPulser.cxx:871 AliTPCCalibPulser.cxx:872 AliTPCCalibPulser.cxx:873 AliTPCCalibPulser.cxx:874 AliTPCCalibPulser.cxx:875 AliTPCCalibPulser.cxx:876 AliTPCCalibPulser.cxx:877 AliTPCCalibPulser.cxx:878 AliTPCCalibPulser.cxx:879 AliTPCCalibPulser.cxx:880 AliTPCCalibPulser.cxx:881 AliTPCCalibPulser.cxx:882 AliTPCCalibPulser.cxx:883 AliTPCCalibPulser.cxx:884 AliTPCCalibPulser.cxx:885 AliTPCCalibPulser.cxx:886 AliTPCCalibPulser.cxx:887 AliTPCCalibPulser.cxx:888 AliTPCCalibPulser.cxx:889 AliTPCCalibPulser.cxx:890 AliTPCCalibPulser.cxx:891 AliTPCCalibPulser.cxx:892 AliTPCCalibPulser.cxx:893 AliTPCCalibPulser.cxx:894 AliTPCCalibPulser.cxx:895 AliTPCCalibPulser.cxx:896 AliTPCCalibPulser.cxx:897 AliTPCCalibPulser.cxx:898 AliTPCCalibPulser.cxx:899 AliTPCCalibPulser.cxx:900 AliTPCCalibPulser.cxx:901 AliTPCCalibPulser.cxx:902 AliTPCCalibPulser.cxx:903 AliTPCCalibPulser.cxx:904 AliTPCCalibPulser.cxx:905 AliTPCCalibPulser.cxx:906 AliTPCCalibPulser.cxx:907 AliTPCCalibPulser.cxx:908 AliTPCCalibPulser.cxx:909 AliTPCCalibPulser.cxx:910 AliTPCCalibPulser.cxx:911 AliTPCCalibPulser.cxx:912 AliTPCCalibPulser.cxx:913 AliTPCCalibPulser.cxx:914 AliTPCCalibPulser.cxx:915 AliTPCCalibPulser.cxx:916 AliTPCCalibPulser.cxx:917 AliTPCCalibPulser.cxx:918 AliTPCCalibPulser.cxx:919 AliTPCCalibPulser.cxx:920 AliTPCCalibPulser.cxx:921 AliTPCCalibPulser.cxx:922 AliTPCCalibPulser.cxx:923 AliTPCCalibPulser.cxx:924 AliTPCCalibPulser.cxx:925 AliTPCCalibPulser.cxx:926 AliTPCCalibPulser.cxx:927 AliTPCCalibPulser.cxx:928 AliTPCCalibPulser.cxx:929 AliTPCCalibPulser.cxx:930 AliTPCCalibPulser.cxx:931 AliTPCCalibPulser.cxx:932 AliTPCCalibPulser.cxx:933 AliTPCCalibPulser.cxx:934 AliTPCCalibPulser.cxx:935 AliTPCCalibPulser.cxx:936 AliTPCCalibPulser.cxx:937 AliTPCCalibPulser.cxx:938 AliTPCCalibPulser.cxx:939 AliTPCCalibPulser.cxx:940 AliTPCCalibPulser.cxx:941 AliTPCCalibPulser.cxx:942 AliTPCCalibPulser.cxx:943 AliTPCCalibPulser.cxx:944 AliTPCCalibPulser.cxx:945 AliTPCCalibPulser.cxx:946 AliTPCCalibPulser.cxx:947 AliTPCCalibPulser.cxx:948 AliTPCCalibPulser.cxx:949 AliTPCCalibPulser.cxx:950 AliTPCCalibPulser.cxx:951 AliTPCCalibPulser.cxx:952 AliTPCCalibPulser.cxx:953 AliTPCCalibPulser.cxx:954 AliTPCCalibPulser.cxx:955 AliTPCCalibPulser.cxx:956 AliTPCCalibPulser.cxx:957 AliTPCCalibPulser.cxx:958 AliTPCCalibPulser.cxx:959 AliTPCCalibPulser.cxx:960 AliTPCCalibPulser.cxx:961 AliTPCCalibPulser.cxx:962 AliTPCCalibPulser.cxx:963 AliTPCCalibPulser.cxx:964 AliTPCCalibPulser.cxx:965 AliTPCCalibPulser.cxx:966 AliTPCCalibPulser.cxx:967 AliTPCCalibPulser.cxx:968 AliTPCCalibPulser.cxx:969 AliTPCCalibPulser.cxx:970 AliTPCCalibPulser.cxx:971 AliTPCCalibPulser.cxx:972 AliTPCCalibPulser.cxx:973 AliTPCCalibPulser.cxx:974 AliTPCCalibPulser.cxx:975 AliTPCCalibPulser.cxx:976 AliTPCCalibPulser.cxx:977 AliTPCCalibPulser.cxx:978 AliTPCCalibPulser.cxx:979 AliTPCCalibPulser.cxx:980 AliTPCCalibPulser.cxx:981 AliTPCCalibPulser.cxx:982 AliTPCCalibPulser.cxx:983 AliTPCCalibPulser.cxx:984 AliTPCCalibPulser.cxx:985 AliTPCCalibPulser.cxx:986 AliTPCCalibPulser.cxx:987 AliTPCCalibPulser.cxx:988 AliTPCCalibPulser.cxx:989 AliTPCCalibPulser.cxx:990 AliTPCCalibPulser.cxx:991 AliTPCCalibPulser.cxx:992 AliTPCCalibPulser.cxx:993 AliTPCCalibPulser.cxx:994 AliTPCCalibPulser.cxx:995 AliTPCCalibPulser.cxx:996 AliTPCCalibPulser.cxx:997 AliTPCCalibPulser.cxx:998 AliTPCCalibPulser.cxx:999 AliTPCCalibPulser.cxx:1000 AliTPCCalibPulser.cxx:1001 AliTPCCalibPulser.cxx:1002 AliTPCCalibPulser.cxx:1003 AliTPCCalibPulser.cxx:1004 AliTPCCalibPulser.cxx:1005 AliTPCCalibPulser.cxx:1006 AliTPCCalibPulser.cxx:1007 AliTPCCalibPulser.cxx:1008 AliTPCCalibPulser.cxx:1009 AliTPCCalibPulser.cxx:1010 AliTPCCalibPulser.cxx:1011 AliTPCCalibPulser.cxx:1012 AliTPCCalibPulser.cxx:1013 AliTPCCalibPulser.cxx:1014 AliTPCCalibPulser.cxx:1015 AliTPCCalibPulser.cxx:1016 AliTPCCalibPulser.cxx:1017 AliTPCCalibPulser.cxx:1018 AliTPCCalibPulser.cxx:1019 AliTPCCalibPulser.cxx:1020 AliTPCCalibPulser.cxx:1021 AliTPCCalibPulser.cxx:1022 AliTPCCalibPulser.cxx:1023 AliTPCCalibPulser.cxx:1024 AliTPCCalibPulser.cxx:1025 AliTPCCalibPulser.cxx:1026 AliTPCCalibPulser.cxx:1027 AliTPCCalibPulser.cxx:1028 AliTPCCalibPulser.cxx:1029 AliTPCCalibPulser.cxx:1030 AliTPCCalibPulser.cxx:1031 AliTPCCalibPulser.cxx:1032 AliTPCCalibPulser.cxx:1033 AliTPCCalibPulser.cxx:1034 AliTPCCalibPulser.cxx:1035 AliTPCCalibPulser.cxx:1036 AliTPCCalibPulser.cxx:1037 AliTPCCalibPulser.cxx:1038 AliTPCCalibPulser.cxx:1039 AliTPCCalibPulser.cxx:1040 AliTPCCalibPulser.cxx:1041 AliTPCCalibPulser.cxx:1042 AliTPCCalibPulser.cxx:1043 AliTPCCalibPulser.cxx:1044 AliTPCCalibPulser.cxx:1045 AliTPCCalibPulser.cxx:1046 AliTPCCalibPulser.cxx:1047 AliTPCCalibPulser.cxx:1048 AliTPCCalibPulser.cxx:1049 AliTPCCalibPulser.cxx:1050 AliTPCCalibPulser.cxx:1051 AliTPCCalibPulser.cxx:1052 AliTPCCalibPulser.cxx:1053 AliTPCCalibPulser.cxx:1054 AliTPCCalibPulser.cxx:1055 AliTPCCalibPulser.cxx:1056 AliTPCCalibPulser.cxx:1057 AliTPCCalibPulser.cxx:1058 AliTPCCalibPulser.cxx:1059 AliTPCCalibPulser.cxx:1060 AliTPCCalibPulser.cxx:1061 AliTPCCalibPulser.cxx:1062 AliTPCCalibPulser.cxx:1063 AliTPCCalibPulser.cxx:1064 AliTPCCalibPulser.cxx:1065 AliTPCCalibPulser.cxx:1066 AliTPCCalibPulser.cxx:1067 AliTPCCalibPulser.cxx:1068 AliTPCCalibPulser.cxx:1069 AliTPCCalibPulser.cxx:1070 AliTPCCalibPulser.cxx:1071 AliTPCCalibPulser.cxx:1072 AliTPCCalibPulser.cxx:1073 AliTPCCalibPulser.cxx:1074 AliTPCCalibPulser.cxx:1075 AliTPCCalibPulser.cxx:1076 AliTPCCalibPulser.cxx:1077 AliTPCCalibPulser.cxx:1078 AliTPCCalibPulser.cxx:1079 AliTPCCalibPulser.cxx:1080 AliTPCCalibPulser.cxx:1081 AliTPCCalibPulser.cxx:1082 AliTPCCalibPulser.cxx:1083 AliTPCCalibPulser.cxx:1084 AliTPCCalibPulser.cxx:1085 AliTPCCalibPulser.cxx:1086 AliTPCCalibPulser.cxx:1087 AliTPCCalibPulser.cxx:1088 AliTPCCalibPulser.cxx:1089 AliTPCCalibPulser.cxx:1090 AliTPCCalibPulser.cxx:1091 AliTPCCalibPulser.cxx:1092 AliTPCCalibPulser.cxx:1093 AliTPCCalibPulser.cxx:1094 AliTPCCalibPulser.cxx:1095 AliTPCCalibPulser.cxx:1096 AliTPCCalibPulser.cxx:1097 AliTPCCalibPulser.cxx:1098 AliTPCCalibPulser.cxx:1099 AliTPCCalibPulser.cxx:1100 AliTPCCalibPulser.cxx:1101 AliTPCCalibPulser.cxx:1102 AliTPCCalibPulser.cxx:1103 AliTPCCalibPulser.cxx:1104 AliTPCCalibPulser.cxx:1105 AliTPCCalibPulser.cxx:1106 AliTPCCalibPulser.cxx:1107 AliTPCCalibPulser.cxx:1108 AliTPCCalibPulser.cxx:1109 AliTPCCalibPulser.cxx:1110 AliTPCCalibPulser.cxx:1111 AliTPCCalibPulser.cxx:1112 AliTPCCalibPulser.cxx:1113 AliTPCCalibPulser.cxx:1114 AliTPCCalibPulser.cxx:1115 AliTPCCalibPulser.cxx:1116 AliTPCCalibPulser.cxx:1117 AliTPCCalibPulser.cxx:1118 AliTPCCalibPulser.cxx:1119 AliTPCCalibPulser.cxx:1120 AliTPCCalibPulser.cxx:1121 AliTPCCalibPulser.cxx:1122 AliTPCCalibPulser.cxx:1123 AliTPCCalibPulser.cxx:1124 AliTPCCalibPulser.cxx:1125 AliTPCCalibPulser.cxx:1126 AliTPCCalibPulser.cxx:1127 AliTPCCalibPulser.cxx:1128 AliTPCCalibPulser.cxx:1129 AliTPCCalibPulser.cxx:1130 AliTPCCalibPulser.cxx:1131 AliTPCCalibPulser.cxx:1132 AliTPCCalibPulser.cxx:1133 AliTPCCalibPulser.cxx:1134 AliTPCCalibPulser.cxx:1135 AliTPCCalibPulser.cxx:1136 AliTPCCalibPulser.cxx:1137 AliTPCCalibPulser.cxx:1138 AliTPCCalibPulser.cxx:1139 AliTPCCalibPulser.cxx:1140 AliTPCCalibPulser.cxx:1141 AliTPCCalibPulser.cxx:1142 AliTPCCalibPulser.cxx:1143 AliTPCCalibPulser.cxx:1144 AliTPCCalibPulser.cxx:1145 AliTPCCalibPulser.cxx:1146 AliTPCCalibPulser.cxx:1147 AliTPCCalibPulser.cxx:1148 AliTPCCalibPulser.cxx:1149 AliTPCCalibPulser.cxx:1150 AliTPCCalibPulser.cxx:1151 AliTPCCalibPulser.cxx:1152 AliTPCCalibPulser.cxx:1153 AliTPCCalibPulser.cxx:1154 AliTPCCalibPulser.cxx:1155 AliTPCCalibPulser.cxx:1156 AliTPCCalibPulser.cxx:1157 AliTPCCalibPulser.cxx:1158 AliTPCCalibPulser.cxx:1159 AliTPCCalibPulser.cxx:1160 AliTPCCalibPulser.cxx:1161 AliTPCCalibPulser.cxx:1162 AliTPCCalibPulser.cxx:1163 AliTPCCalibPulser.cxx:1164 AliTPCCalibPulser.cxx:1165 AliTPCCalibPulser.cxx:1166 AliTPCCalibPulser.cxx:1167 AliTPCCalibPulser.cxx:1168 AliTPCCalibPulser.cxx:1169 AliTPCCalibPulser.cxx:1170 AliTPCCalibPulser.cxx:1171 AliTPCCalibPulser.cxx:1172 AliTPCCalibPulser.cxx:1173 AliTPCCalibPulser.cxx:1174 AliTPCCalibPulser.cxx:1175 AliTPCCalibPulser.cxx:1176 AliTPCCalibPulser.cxx:1177 AliTPCCalibPulser.cxx:1178 AliTPCCalibPulser.cxx:1179 AliTPCCalibPulser.cxx:1180 AliTPCCalibPulser.cxx:1181 AliTPCCalibPulser.cxx:1182 AliTPCCalibPulser.cxx:1183 AliTPCCalibPulser.cxx:1184 AliTPCCalibPulser.cxx:1185 AliTPCCalibPulser.cxx:1186 AliTPCCalibPulser.cxx:1187 AliTPCCalibPulser.cxx:1188 AliTPCCalibPulser.cxx:1189 AliTPCCalibPulser.cxx:1190 AliTPCCalibPulser.cxx:1191 AliTPCCalibPulser.cxx:1192 AliTPCCalibPulser.cxx:1193 AliTPCCalibPulser.cxx:1194 AliTPCCalibPulser.cxx:1195 AliTPCCalibPulser.cxx:1196 AliTPCCalibPulser.cxx:1197 AliTPCCalibPulser.cxx:1198 AliTPCCalibPulser.cxx:1199 AliTPCCalibPulser.cxx:1200 AliTPCCalibPulser.cxx:1201 AliTPCCalibPulser.cxx:1202 AliTPCCalibPulser.cxx:1203 AliTPCCalibPulser.cxx:1204 AliTPCCalibPulser.cxx:1205 AliTPCCalibPulser.cxx:1206 AliTPCCalibPulser.cxx:1207 AliTPCCalibPulser.cxx:1208 AliTPCCalibPulser.cxx:1209 AliTPCCalibPulser.cxx:1210 AliTPCCalibPulser.cxx:1211 AliTPCCalibPulser.cxx:1212 AliTPCCalibPulser.cxx:1213 AliTPCCalibPulser.cxx:1214 AliTPCCalibPulser.cxx:1215 AliTPCCalibPulser.cxx:1216 AliTPCCalibPulser.cxx:1217 AliTPCCalibPulser.cxx:1218 AliTPCCalibPulser.cxx:1219 AliTPCCalibPulser.cxx:1220 AliTPCCalibPulser.cxx:1221 AliTPCCalibPulser.cxx:1222 AliTPCCalibPulser.cxx:1223 AliTPCCalibPulser.cxx:1224 AliTPCCalibPulser.cxx:1225 AliTPCCalibPulser.cxx:1226 AliTPCCalibPulser.cxx:1227 AliTPCCalibPulser.cxx:1228 AliTPCCalibPulser.cxx:1229 AliTPCCalibPulser.cxx:1230 AliTPCCalibPulser.cxx:1231 AliTPCCalibPulser.cxx:1232 AliTPCCalibPulser.cxx:1233 AliTPCCalibPulser.cxx:1234 AliTPCCalibPulser.cxx:1235 AliTPCCalibPulser.cxx:1236 AliTPCCalibPulser.cxx:1237 AliTPCCalibPulser.cxx:1238 AliTPCCalibPulser.cxx:1239 AliTPCCalibPulser.cxx:1240 AliTPCCalibPulser.cxx:1241 AliTPCCalibPulser.cxx:1242 AliTPCCalibPulser.cxx:1243 AliTPCCalibPulser.cxx:1244 AliTPCCalibPulser.cxx:1245 AliTPCCalibPulser.cxx:1246 AliTPCCalibPulser.cxx:1247 AliTPCCalibPulser.cxx:1248 AliTPCCalibPulser.cxx:1249 AliTPCCalibPulser.cxx:1250 AliTPCCalibPulser.cxx:1251 AliTPCCalibPulser.cxx:1252 AliTPCCalibPulser.cxx:1253 AliTPCCalibPulser.cxx:1254 AliTPCCalibPulser.cxx:1255 AliTPCCalibPulser.cxx:1256 AliTPCCalibPulser.cxx:1257 AliTPCCalibPulser.cxx:1258 AliTPCCalibPulser.cxx:1259 AliTPCCalibPulser.cxx:1260 AliTPCCalibPulser.cxx:1261 AliTPCCalibPulser.cxx:1262 AliTPCCalibPulser.cxx:1263 AliTPCCalibPulser.cxx:1264 AliTPCCalibPulser.cxx:1265 AliTPCCalibPulser.cxx:1266 AliTPCCalibPulser.cxx:1267 AliTPCCalibPulser.cxx:1268