#include <TFile.h>
#include "AliITSOnlineSDDInjectors.h"
#include "AliLog.h"
#include <TH2F.h>
#include <TF1.h>
#include <TGraphErrors.h>
#include <TMath.h>
#include <TString.h>
ClassImp(AliITSOnlineSDDInjectors)
const Float_t AliITSOnlineSDDInjectors::fgkSaturation = 1008.;
const Float_t AliITSOnlineSDDInjectors::fgkDefaultLThreshold1 = 8.;
const Float_t AliITSOnlineSDDInjectors::fgkDefaultLThreshold = 15.;
const Float_t AliITSOnlineSDDInjectors::fgkDefaultHThreshold1 =15.;
const Float_t AliITSOnlineSDDInjectors::fgkDefaultHThreshold = 30.;
const Float_t AliITSOnlineSDDInjectors::fgkDefaultMinSpeed = 5.5;
const Float_t AliITSOnlineSDDInjectors::fgkDefaultMaxSpeed = 9.0;
const Float_t AliITSOnlineSDDInjectors::fgkDefaultMaxErr = 1.5;
const Int_t AliITSOnlineSDDInjectors::fgkDefaultPolDegree = 3;
const Float_t AliITSOnlineSDDInjectors::fgkDefaultTimeStep = 50.;
const UShort_t AliITSOnlineSDDInjectors::fgkDefaultTbMin[kInjLines] = {10,50,100};
const UShort_t AliITSOnlineSDDInjectors::fgkDefaultTbMax[kInjLines] = {20,70,120};
AliITSOnlineSDDInjectors::AliITSOnlineSDDInjectors():
AliITSOnlineSDD(),
fHisto(),
fTbZero(0.),
fRMSTbZero(0.),
fNEvents(0),
fParam(),
fPolDegree(0),
fActualPolDegree(0),
fMinDriftSpeed(0.),
fMaxDriftSpeed(0.),
fMaxDriftSpeedErr(0.),
fFirstPadForFit(0),
fLastPadForFit(0),
fPadStatusCutForFit(0),
fTimeStep(0.),
fUseTimeZeroSignal(kFALSE),
fMaxCellsAboveThreshold(40)
{
SetPositions();
SetDefaults();
SetTimeStep(fgkDefaultTimeStep);
for(Int_t i=0;i<kInjPads;i++){
fSumDriftSpeed[i]=0.;
fSumSqDriftSpeed[i]=0.;
fSumPadStatus[i]=0;
fSumPadStatusCut[i]=0;
fNEventsInPad[i]=0;
}
Reset();
}
AliITSOnlineSDDInjectors::AliITSOnlineSDDInjectors(Int_t nddl, Int_t ncarlos, Int_t sid):
AliITSOnlineSDD(nddl,ncarlos,sid),
fHisto(),
fTbZero(0.),
fRMSTbZero(0.),
fNEvents(0),
fParam(),
fPolDegree(0),
fActualPolDegree(0),
fMinDriftSpeed(0.),
fMaxDriftSpeed(0.),
fMaxDriftSpeedErr(0.),
fFirstPadForFit(0),
fLastPadForFit(0),
fPadStatusCutForFit(0),
fTimeStep(0.),
fUseTimeZeroSignal(kFALSE),
fMaxCellsAboveThreshold(40)
{
SetPositions();
SetDefaults();
SetTimeStep(fgkDefaultTimeStep);
for(Int_t i=0;i<kInjPads;i++){
fSumDriftSpeed[i]=0.;
fSumSqDriftSpeed[i]=0.;
fSumPadStatus[i]=0;
fSumPadStatusCut[i]=0;
fNEventsInPad[i]=0;
}
Reset();
}
AliITSOnlineSDDInjectors::~AliITSOnlineSDDInjectors(){
if(fParam) delete [] fParam;
}
void AliITSOnlineSDDInjectors::SetDefaults(){
for(Int_t i=0;i<kInjLines;i++) {
SetInjLineRange(i,fgkDefaultTbMin[i],fgkDefaultTbMax[i]);
SetUseLine(i,kTRUE);
SetThresholds(i,fgkDefaultLThreshold,fgkDefaultHThreshold);
}
SetThresholds(0,fgkDefaultLThreshold1,fgkDefaultHThreshold1);
SetPolDegree(fgkDefaultPolDegree);
SetMinDriftSpeed(fgkDefaultMinSpeed);
SetMaxDriftSpeed(fgkDefaultMaxSpeed);
SetMaxDriftSpeedErr(fgkDefaultMaxErr);
SetFitLimits(1,kInjPads-2);
SetPadStatusCutForFit();
}
void AliITSOnlineSDDInjectors::Set20MHzConfig(){
SetInjLineRange(0,10,20);
SetInjLineRange(1,50,70);
SetInjLineRange(2,100,120);
SetTimeStep(50.);
SetMaxNumberOfCellsPerAnode(40);
}
void AliITSOnlineSDDInjectors::Set40MHzConfig(){
SetInjLineRange(0,20,50);
SetInjLineRange(1,90,160);
SetInjLineRange(2,170,240);
SetTimeStep(25.);
SetMaxNumberOfCellsPerAnode(80);
}
void AliITSOnlineSDDInjectors::SetPositions(){
Double_t xLinFromCenterUm[kInjLines]={31860.,17460.,660.};
Double_t xAnodeFromCenterUm=35085;
for(Int_t i=0;i<kInjLines;i++){
fPosition[i]=xAnodeFromCenterUm-xLinFromCenterUm[i];
fPosition[i]/=10000.;
}
}
void AliITSOnlineSDDInjectors::Reset(){
for(Int_t i=0;i<kInjPads;i++){
fDriftSpeed[i]=0.;
fDriftSpeedErr[i]=0.;
}
for(Int_t i=0;i<kInjPads;i++){
for(Int_t j=0;j<kInjLines;j++){
fGoodInj[i][j]=0;
fCentroid[i][j]=0.;
fRMSCentroid[i][j]=0.;
}
}
}
void AliITSOnlineSDDInjectors::AnalyzeEvent(TH2F* his){
AddEvent(his);
FitDriftSpeedVsAnode();
}
void AliITSOnlineSDDInjectors::AddEvent(TH2F* his){
if(fNEvents==0){
for(Int_t i=0;i<kInjPads;i++){
fSumDriftSpeed[i]=0.;
fSumSqDriftSpeed[i]=0.;
fSumPadStatus[i]=0;
fSumPadStatusCut[i]=0;
fNEventsInPad[i]=0;
}
}
Reset();
fHisto=his;
FindGoodInjectors();
FindCentroids();
CalcTimeBinZero();
for(Int_t j=0;j<kInjPads;j++){
CalcDriftSpeed(j);
Int_t padStatus=GetInjPadStatus(j);
fSumPadStatus[j]+=padStatus;
if(padStatus>fPadStatusCutForFit){
fSumDriftSpeed[j]+=fDriftSpeed[j];
fSumSqDriftSpeed[j]+=fDriftSpeed[j]*fDriftSpeed[j];
fSumPadStatusCut[j]+=padStatus;
fNEventsInPad[j]++;
}
}
++fNEvents;
}
Double_t AliITSOnlineSDDInjectors::GetRMSDriftSpeed(Int_t ipad) const {
if(fNEventsInPad[ipad]<=1) return 0.;
Double_t mean=fSumDriftSpeed[ipad]/(Double_t)fNEventsInPad[ipad];
Double_t diff=fSumSqDriftSpeed[ipad]/(Double_t)fNEventsInPad[ipad]-mean*mean;
if(diff<0.) diff=0.;
return TMath::Sqrt(diff);
}
void AliITSOnlineSDDInjectors::FitMeanDriftSpeedVsAnode(){
if(fNEvents==0) return;
for(Int_t i=0;i<kInjPads;i++){
fDriftSpeed[i]=GetMeanDriftSpeed(i);
Int_t padStatusCut=(Int_t)(GetMeanPadStatusCut(i)+0.5);
for(Int_t ilin=0; ilin<kInjLines ; ilin++) fGoodInj[i][ilin]=(padStatusCut&1<<ilin)>>ilin;
if(fNEventsInPad[i]>1){
Double_t rms=GetRMSDriftSpeed(i);
if(rms>0.) fDriftSpeedErr[i]=rms/TMath::Sqrt(fNEventsInPad[i]);
}else{
for(Int_t ilin=0; ilin<kInjLines ; ilin++) fGoodInj[i][ilin]=0;
}
}
FitDriftSpeedVsAnode();
for(Int_t i=0;i<kInjPads;i++){
Int_t padStatus=(Int_t)(GetMeanPadStatusCut(i)+0.5);
for(Int_t ilin=0; ilin<kInjLines ; ilin++) fGoodInj[i][ilin]=(padStatus&1<<ilin)>>ilin;
}
}
TGraphErrors* AliITSOnlineSDDInjectors::GetTimeVsDistGraph(Int_t jpad) const{
const Int_t kPts=kInjLines+1;
Float_t x[kPts],y[kPts],ex[kPts],ey[kPts];
x[0]=0.;
ex[0]=0.;
y[0]=fTbZero;
ey[0]=0.;
for(Int_t i=0;i<kInjLines;i++){
x[i+1]=fPosition[i];
ex[i+1]=0.;
y[i+1]=fCentroid[jpad][i];
ey[i+1]=fRMSCentroid[jpad][i];
}
TGraphErrors *g=new TGraphErrors(4,x,y,ex,ey);
return g;
}
TGraphErrors* AliITSOnlineSDDInjectors::GetDriftSpeedGraph() const{
Int_t ipt=0;
TGraphErrors *g=new TGraphErrors(0);
for(Int_t i=0;i<kInjPads;i++){
if(fDriftSpeed[i]>0){
g->SetPoint(ipt,GetAnodeNumber(i),fDriftSpeed[i]);
g->SetPointError(ipt,0,fDriftSpeedErr[i]);
ipt++;
}
}
return g;
}
TGraphErrors* AliITSOnlineSDDInjectors::GetSelectedDriftSpeedGraph(Int_t minAcceptStatus) const{
Int_t ipt=0;
TGraphErrors *g=new TGraphErrors(0);
for(Int_t i=0;i<kInjPads;i++){
Int_t padStatus = GetInjPadStatus(i);
if(fDriftSpeed[i]>0 && padStatus >= minAcceptStatus ){
g->SetPoint(ipt,GetAnodeNumber(i),fDriftSpeed[i]);
g->SetPointError(ipt,0,fDriftSpeedErr[i]);
ipt++;
}
}
return g;
}
void AliITSOnlineSDDInjectors::CalcTimeBinZero(){
Double_t tzero=0.,intCont=0.,rmsPeak=0.;
Bool_t isTbUsed[256];
Int_t nTbUsed=0;
for(Int_t i=0;i<256;i++) isTbUsed[i]=0;
for(Int_t ian=0;ian<fgkNAnodes;ian++){
for(Int_t itb=1;itb<fTbMin[0];itb++){
Double_t cont=fHisto->GetBinContent(itb,ian+1);
Double_t contm1=fHisto->GetBinContent(itb+1,ian+1);
Double_t contp1=fHisto->GetBinContent(itb-1,ian+1);
if(cont>fLowThreshold[0]){
if(cont>fHighThreshold[0] &&(contm1>fLowThreshold[0] || contp1>fLowThreshold[0])){
tzero+=cont*float(itb);
rmsPeak+=cont*float(itb)*float(itb);
intCont+=cont;
if(!isTbUsed[itb]){
isTbUsed[itb]=1;
++nTbUsed;
}
}
}
}
}
if(intCont>0){
fTbZero=tzero/intCont;
fRMSTbZero=TMath::Sqrt(rmsPeak/intCont-fTbZero*fTbZero);
}
if(nTbUsed==1) fRMSTbZero=0.5;
}
void AliITSOnlineSDDInjectors::FitDriftSpeedVsAnode(){
Float_t rangeForMax[2]={78.,178.};
PolyFit(fPolDegree);
fActualPolDegree=fPolDegree;
if(fPolDegree==3){
Double_t deltasq=fParam[2]*fParam[2]-3*fParam[1]*fParam[3];
Double_t zero1=-999.;
Double_t zero2=-999.;
if(deltasq>=0. && TMath::Abs(fParam[3])>0.){
Double_t delta=TMath::Sqrt(deltasq);
zero1=(-fParam[2]+delta)/3./fParam[3];
zero2=(-fParam[2]-delta)/3./fParam[3];
}
Bool_t twoZeroes=kFALSE;
Bool_t oneZero=kFALSE;
if(zero1>0. && zero1<256. && zero2>0. && zero2<256.) twoZeroes=kTRUE;
if(zero1>rangeForMax[0] && zero1<rangeForMax[1]) oneZero=kTRUE;
if(zero2>rangeForMax[0] && zero2<rangeForMax[1]) oneZero=kTRUE;
if(!oneZero || twoZeroes){
PolyFit(2);
Double_t xmax=-999.;
if(fParam[2]<0.) xmax=-fParam[1]/2./fParam[2];
if(xmax>rangeForMax[0] && xmax<rangeForMax[1]){
fActualPolDegree=2;
}else{
Double_t averSpeed=0.;
Double_t sumWei=0.;
Int_t nUsedPts=0;
for(Int_t jpad=fFirstPadForFit; jpad<=fLastPadForFit; jpad++){
if(fDriftSpeed[jpad]>0 && GetInjPadStatus(jpad)>fPadStatusCutForFit){
Double_t wei=1./fDriftSpeedErr[jpad]/fDriftSpeedErr[jpad];
averSpeed+=wei*fDriftSpeed[jpad];
sumWei+=wei;
nUsedPts++;
}
}
if(sumWei>0.) averSpeed/=sumWei;
if(nUsedPts<fPolDegree+1) averSpeed=0;
fParam[0]=averSpeed;
for(Int_t i=1; i < fPolDegree+1; i++) fParam[i]=0.;
fActualPolDegree=0;
}
}
}
}
void AliITSOnlineSDDInjectors::PolyFit(Int_t degree){
const Int_t kNn=degree+1;
const Int_t kDimens=fPolDegree+1;
Double_t **mat = new Double_t*[kNn];
for(Int_t i=0; i < kNn; i++) mat[i] = new Double_t[kNn];
Double_t *vect = new Double_t[kNn];
for(Int_t k1=0;k1<kNn;k1++){
vect[k1]=0;
for(Int_t k2=0;k2<kNn;k2++){
mat[k1][k2]=0;
}
}
Int_t npts = 0;
for(Int_t k1=0;k1<kNn;k1++){
for(Int_t jpad=fFirstPadForFit; jpad<=fLastPadForFit; jpad++){
Double_t x=(Double_t)GetAnodeNumber(jpad);
if(fDriftSpeed[jpad]>0 && GetInjPadStatus(jpad)>fPadStatusCutForFit){
vect[k1]+=fDriftSpeed[jpad]*TMath::Power(x,k1)/TMath::Power(fDriftSpeedErr[jpad],2);
if(k1==0) npts++;
for(Int_t k2=0;k2<kNn;k2++){
mat[k1][k2]+=TMath::Power(x,k1+k2)/TMath::Power(fDriftSpeedErr[jpad],2);
}
}
}
}
if(npts<fPolDegree+1){
if(fParam) delete [] fParam;
fParam=new Double_t[kDimens];
for(Int_t i=0; i<kDimens;i++)fParam[i]=0;
}else{
Int_t *iPivot = new Int_t[kNn];
Int_t *indxR = new Int_t[kNn];
Int_t *indxC = new Int_t[kNn];
for(Int_t i=0;i<kNn;i++) iPivot[i]=0;
Int_t iCol=-1,iRow=-1;
for(Int_t i=0;i<kNn;i++){
Double_t big=0.;
for(Int_t j=0;j<kNn;j++){
if(iPivot[j]!=1){
for(Int_t k=0;k<kNn;k++){
if(iPivot[k]==0){
if(TMath::Abs(mat[j][k])>=big){
big=TMath::Abs(mat[j][k]);
iRow=j;
iCol=k;
}
}
}
}
}
iPivot[iCol]++;
Double_t aux;
if(iRow!=iCol){
for(Int_t l=0;l<kNn;l++){
aux=mat[iRow][l];
mat[iRow][l]=mat[iCol][l];
mat[iCol][l]=aux;
}
aux=vect[iRow];
vect[iRow]=vect[iCol];
vect[iCol]=aux;
}
indxR[i]=iRow;
indxC[i]=iCol;
if(mat[iCol][iCol]==0) break;
Double_t pivinv=1./mat[iCol][iCol];
mat[iCol][iCol]=1;
for(Int_t l=0;l<kNn;l++) mat[iCol][l]*=pivinv;
vect[iCol]*=pivinv;
for(Int_t m=0;m<kNn;m++){
if(m!=iCol){
aux=mat[m][iCol];
mat[m][iCol]=0;
for(Int_t n=0;n<kNn;n++) mat[m][n]-=mat[iCol][n]*aux;
vect[m]-=vect[iCol]*aux;
}
}
}
delete [] iPivot;
delete [] indxR;
delete [] indxC;
if(fParam) delete [] fParam;
fParam=new Double_t[kDimens];
for(Int_t i=0; i<kNn;i++)fParam[i]=vect[i];
if(degree<fPolDegree) for(Int_t i=kNn; i<kDimens;i++)fParam[i]=0.;
}
for(Int_t i=0; i < kNn; i++) delete [] mat[i];
delete [] mat;
delete [] vect;
}
void AliITSOnlineSDDInjectors::CalcDriftSpeed(Int_t jpad){
Double_t sumY=0,sumX=0,sumXX=0,sumYY=0.,sumXY=0,sumWEI=0.;
Int_t npt=0;
Double_t y[kInjLines],ey[kInjLines];
Double_t tzero=0,erry=0;
for(Int_t i=0;i<kInjLines;i++){
y[i]=fCentroid[jpad][i];
ey[i]=fRMSCentroid[jpad][i];
}
for(Int_t i=0;i<kInjLines;i++){
if(!fUseLine[i]) continue;
if(fGoodInj[jpad][i] && ey[i]!=0){
sumY+=y[i]/ey[i]/ey[i];
sumX+=fPosition[i]/ey[i]/ey[i];
sumXX+=fPosition[i]*fPosition[i]/ey[i]/ey[i];
sumYY+=y[i]*y[i]/ey[i]/ey[i];
sumXY+=fPosition[i]*y[i]/ey[i]/ey[i];
sumWEI+=1./ey[i]/ey[i];
tzero=fTbZero/ey[i]/ey[i];
erry=ey[i]/ey[i]/ey[i];
npt++;
}
}
Double_t slope=0.,eslope=0.;
if(npt==1){
slope=(sumY-tzero)/sumX;
eslope=erry/sumX;
}
if(npt>1){
if(fUseTimeZeroSignal){
sumY+=fTbZero/fRMSTbZero/fRMSTbZero;
sumX+=0.;
sumXX+=0.;
sumYY+=fTbZero*fTbZero/fRMSTbZero/fRMSTbZero;
sumXY+=0.;
sumWEI+=1./fRMSTbZero/fRMSTbZero;
}
slope=(sumWEI*sumXY-sumY*sumX)/(sumWEI*sumXX-sumX*sumX);
eslope=TMath::Sqrt(sumWEI/(sumWEI*sumXX-sumX*sumX));
}
Double_t vel=0,evel=0;
if(slope!=0. && fTimeStep>0.){
vel=1./slope*10000./fTimeStep;
evel=eslope/slope/slope*10000./fTimeStep;
}
if(vel>fMaxDriftSpeed||vel<fMinDriftSpeed || evel>fMaxDriftSpeedErr){
vel=0.;
evel=0.;
}
fDriftSpeed[jpad]=vel;
fDriftSpeedErr[jpad]=evel;
}
Int_t AliITSOnlineSDDInjectors::GetAnodeNumber(Int_t iInjPad) const{
Int_t ian=-1;
if(iInjPad>=kInjPads) return ian;
if(fSide==1){
ian=iInjPad*8;
if(iInjPad==32) ian--;
}else{
ian=iInjPad*8-1;
if(iInjPad==0) ian=0;
}
return ian;
}
Int_t AliITSOnlineSDDInjectors::GetInjPadNumberFromAnode(Int_t nAnode) const{
Int_t iInjPad=-1;
if(fSide==1){
if(nAnode%8==0) iInjPad=nAnode/8;
if(nAnode==255) iInjPad=32;
}else{
if(nAnode%8==7) iInjPad=1+nAnode/8;
if(nAnode==0) iInjPad=0;
}
if(nAnode>=256) iInjPad=-1;
return iInjPad;
}
Int_t AliITSOnlineSDDInjectors::GetInjPadStatus(Int_t jpad) const{
Int_t istatus=0;
if(jpad>=0 && jpad<kInjPads){
for(Int_t jlin=0;jlin<kInjLines;jlin++) istatus+=fGoodInj[jpad][jlin]<<jlin;
}
return istatus;
}
void AliITSOnlineSDDInjectors::FindGoodInjectors(){
for(Int_t jpad=0;jpad<kInjPads;jpad++){
Int_t ian=GetAnodeNumber(jpad);
Int_t countAbove=0;
for(Int_t jjj=0; jjj<fHisto->GetNbinsX(); jjj++){
Float_t c=fHisto->GetBinContent(jjj+1,ian+1);
if(c>0.5) countAbove++;
}
if(countAbove>fMaxCellsAboveThreshold){
for(Int_t jlin=0;jlin<kInjLines;jlin++) fGoodInj[jpad][jlin]=0;
}else{
for(Int_t jlin=0;jlin<kInjLines;jlin++){
for(Int_t jjj=fTbMin[jlin];jjj<fTbMax[jlin];jjj++){
Float_t c1=fHisto->GetBinContent(jjj,ian+1);
Float_t c2=fHisto->GetBinContent(jjj+1,ian+1);
if(c1>fLowThreshold[jlin] && c2>fLowThreshold[jlin]){
if(c1>fHighThreshold[jlin] || c2>fHighThreshold[jlin]){
fGoodInj[jpad][jlin]=1;
break;
}
}
}
}
}
}
}
void AliITSOnlineSDDInjectors::FindCentroids(){
for(Int_t jpad=0;jpad<kInjPads;jpad++){
Int_t ian=GetAnodeNumber(jpad);
for(Int_t jlin=0;jlin<kInjLines;jlin++){
if(!fGoodInj[jpad][jlin]) continue;
Double_t maxcont=0;
Int_t ilmax=-1;
for(Int_t jjj=fTbMin[jlin];jjj<fTbMax[jlin];jjj++){
Double_t cont=fHisto->GetBinContent(jjj,ian+1);
if(cont>maxcont){
maxcont=cont;
ilmax=jjj;
}
}
Double_t intCont=0;
Int_t jjj=ilmax;
while(1){
Double_t cont=fHisto->GetBinContent(jjj,ian+1);
if(cont<fLowThreshold[jlin]) break;
if(cont<fgkSaturation){
fCentroid[jpad][jlin]+=cont*(Double_t)jjj;
fRMSCentroid[jpad][jlin]+=cont*(Double_t)jjj*(Double_t)jjj;
intCont+=cont;
}
jjj--;
}
jjj=ilmax+1;
while(1){
Double_t cont=fHisto->GetBinContent(jjj,ian+1);
if(cont<fLowThreshold[jlin]) break;
if(cont<fgkSaturation){
fCentroid[jpad][jlin]+=cont*float(jjj);
fRMSCentroid[jpad][jlin]+=cont*(Double_t)jjj*(Double_t)jjj;
intCont+=cont;
}
jjj++;
}
if(intCont>0){
fCentroid[jpad][jlin]/=intCont;
fRMSCentroid[jpad][jlin]=TMath::Sqrt(fRMSCentroid[jpad][jlin]/intCont-fCentroid[jpad][jlin]*fCentroid[jpad][jlin])/TMath::Sqrt(intCont);
}
else{
fCentroid[jpad][jlin]=0.;
fRMSCentroid[jpad][jlin]=0.;
fGoodInj[jpad][jlin]=0;
}
if(fRMSCentroid[jpad][jlin]==0) fGoodInj[jpad][jlin]=0;
}
}
}
void AliITSOnlineSDDInjectors::PrintInjectorStatus(){
for(Int_t jpad=0;jpad<kInjPads;jpad++){
printf("Line%d-Anode%d: %d %d %d\n",jpad,GetAnodeNumber(jpad),fGoodInj[jpad][0],fGoodInj[jpad][1],fGoodInj[jpad][2]);
}
}
void AliITSOnlineSDDInjectors::PrintCentroids(){
for(Int_t jpad=0;jpad<kInjPads;jpad++){
printf("Line%d-Anode%d: %f+-%f %f+-%f %f+-%f\n",jpad,GetAnodeNumber(jpad),fCentroid[jpad][0],fRMSCentroid[jpad][0],fCentroid[jpad][1],fRMSCentroid[jpad][1],fCentroid[jpad][2],fRMSCentroid[jpad][2]);
}
}
void AliITSOnlineSDDInjectors::WriteToASCII(Int_t evNumb, UInt_t timeStamp, Int_t optAppend){
TString outfilnam;
outfilnam.Form("SDDinj_ddl%02dc%02d_sid%d.data",fDDL,fCarlos,fSide);
FILE* outf;
if(optAppend==0){
outf=fopen(outfilnam.Data(),"w");
fprintf(outf,"%d\n",fActualPolDegree);
}
else outf=fopen(outfilnam.Data(),"a");
fprintf(outf,"%d %d ",evNumb,timeStamp);
for(Int_t ic=0;ic<fPolDegree+1;ic++){
fprintf(outf,"%G ",fParam[ic]);
}
fprintf(outf,"\n");
fclose(outf);
}
TH1F* AliITSOnlineSDDInjectors::GetMeanDriftSpeedVsPadHisto() const{
TString hisnam;
hisnam.Form("hdrsp%02dc%02ds%d",fDDL,fCarlos,fSide);
TH1F* h=new TH1F(hisnam.Data(),"",kInjPads,-0.5,kInjPads-0.5);
if(fNEvents>0){
for(Int_t i=0;i<kInjPads;i++){
h->SetBinContent(i+1,GetMeanDriftSpeed(i));
Double_t rms=GetRMSDriftSpeed(i);
Double_t err=0.;
if(rms>0.) err=rms/TMath::Sqrt(fNEventsInPad[i]);
h->SetBinError(i+1,err);
}
}
return h;
}
Bool_t AliITSOnlineSDDInjectors::WriteToROOT(TFile *fil) const {
if(fil==0){
AliWarning("Invalid pointer to ROOT file");
return kFALSE;
}
TString hisnam;
fil->cd();
hisnam.Form("hdrsp%02dc%02ds%d",fDDL,fCarlos,fSide);
TH1F hdsp(hisnam.Data(),"",kInjPads,-0.5,kInjPads-0.5);
if(fNEvents==0){
AliWarning("Zero analyzed events");
return kFALSE;
}
for(Int_t i=0;i<kInjPads;i++){
hdsp.SetBinContent(i+1,GetMeanDriftSpeed(i));
Double_t rms=GetRMSDriftSpeed(i);
Double_t err=0.;
if(rms>0.) err=rms/TMath::Sqrt(fNEventsInPad[i]);
hdsp.SetBinError(i+1,err);
}
hdsp.Write();
return kTRUE;
}
void AliITSOnlineSDDInjectors::WriteInjectorStatusToASCII(){
TString outfilnam;
outfilnam.Form("SDDinj_ddl%02dc%02d_sid%d.data",fDDL,fCarlos,fSide);
FILE* outf=fopen(outfilnam.Data(),"a");
Int_t n[8]={0,0,0,0,0,0,0,0};
for(Int_t jpad=fFirstPadForFit; jpad<=fLastPadForFit; jpad++){
Int_t statusPad=GetInjPadStatus(jpad);
++n[statusPad];
}
UInt_t statusInj=0;
statusInj+=(n[7]&0x1F)<<25;
statusInj+=(n[6]&0x1F)<<20;
statusInj+=(n[5]&0x1F)<<15;
statusInj+=(n[4]&0x1F)<<10;
statusInj+=(n[3]&0x1F)<<5;
statusInj+=(n[2]&0x1F);
fprintf(outf,"-99 %u\n",statusInj);
fclose(outf);
}
AliITSOnlineSDDInjectors.cxx:1 AliITSOnlineSDDInjectors.cxx:2 AliITSOnlineSDDInjectors.cxx:3 AliITSOnlineSDDInjectors.cxx:4 AliITSOnlineSDDInjectors.cxx:5 AliITSOnlineSDDInjectors.cxx:6 AliITSOnlineSDDInjectors.cxx:7 AliITSOnlineSDDInjectors.cxx:8 AliITSOnlineSDDInjectors.cxx:9 AliITSOnlineSDDInjectors.cxx:10 AliITSOnlineSDDInjectors.cxx:11 AliITSOnlineSDDInjectors.cxx:12 AliITSOnlineSDDInjectors.cxx:13 AliITSOnlineSDDInjectors.cxx:14 AliITSOnlineSDDInjectors.cxx:15 AliITSOnlineSDDInjectors.cxx:16 AliITSOnlineSDDInjectors.cxx:17 AliITSOnlineSDDInjectors.cxx:18 AliITSOnlineSDDInjectors.cxx:19 AliITSOnlineSDDInjectors.cxx:20 AliITSOnlineSDDInjectors.cxx:21 AliITSOnlineSDDInjectors.cxx:22 AliITSOnlineSDDInjectors.cxx:23 AliITSOnlineSDDInjectors.cxx:24 AliITSOnlineSDDInjectors.cxx:25 AliITSOnlineSDDInjectors.cxx:26 AliITSOnlineSDDInjectors.cxx:27 AliITSOnlineSDDInjectors.cxx:28 AliITSOnlineSDDInjectors.cxx:29 AliITSOnlineSDDInjectors.cxx:30 AliITSOnlineSDDInjectors.cxx:31 AliITSOnlineSDDInjectors.cxx:32 AliITSOnlineSDDInjectors.cxx:33 AliITSOnlineSDDInjectors.cxx:34 AliITSOnlineSDDInjectors.cxx:35 AliITSOnlineSDDInjectors.cxx:36 AliITSOnlineSDDInjectors.cxx:37 AliITSOnlineSDDInjectors.cxx:38 AliITSOnlineSDDInjectors.cxx:39 AliITSOnlineSDDInjectors.cxx:40 AliITSOnlineSDDInjectors.cxx:41 AliITSOnlineSDDInjectors.cxx:42 AliITSOnlineSDDInjectors.cxx:43 AliITSOnlineSDDInjectors.cxx:44 AliITSOnlineSDDInjectors.cxx:45 AliITSOnlineSDDInjectors.cxx:46 AliITSOnlineSDDInjectors.cxx:47 AliITSOnlineSDDInjectors.cxx:48 AliITSOnlineSDDInjectors.cxx:49 AliITSOnlineSDDInjectors.cxx:50 AliITSOnlineSDDInjectors.cxx:51 AliITSOnlineSDDInjectors.cxx:52 AliITSOnlineSDDInjectors.cxx:53 AliITSOnlineSDDInjectors.cxx:54 AliITSOnlineSDDInjectors.cxx:55 AliITSOnlineSDDInjectors.cxx:56 AliITSOnlineSDDInjectors.cxx:57 AliITSOnlineSDDInjectors.cxx:58 AliITSOnlineSDDInjectors.cxx:59 AliITSOnlineSDDInjectors.cxx:60 AliITSOnlineSDDInjectors.cxx:61 AliITSOnlineSDDInjectors.cxx:62 AliITSOnlineSDDInjectors.cxx:63 AliITSOnlineSDDInjectors.cxx:64 AliITSOnlineSDDInjectors.cxx:65 AliITSOnlineSDDInjectors.cxx:66 AliITSOnlineSDDInjectors.cxx:67 AliITSOnlineSDDInjectors.cxx:68 AliITSOnlineSDDInjectors.cxx:69 AliITSOnlineSDDInjectors.cxx:70 AliITSOnlineSDDInjectors.cxx:71 AliITSOnlineSDDInjectors.cxx:72 AliITSOnlineSDDInjectors.cxx:73 AliITSOnlineSDDInjectors.cxx:74 AliITSOnlineSDDInjectors.cxx:75 AliITSOnlineSDDInjectors.cxx:76 AliITSOnlineSDDInjectors.cxx:77 AliITSOnlineSDDInjectors.cxx:78 AliITSOnlineSDDInjectors.cxx:79 AliITSOnlineSDDInjectors.cxx:80 AliITSOnlineSDDInjectors.cxx:81 AliITSOnlineSDDInjectors.cxx:82 AliITSOnlineSDDInjectors.cxx:83 AliITSOnlineSDDInjectors.cxx:84 AliITSOnlineSDDInjectors.cxx:85 AliITSOnlineSDDInjectors.cxx:86 AliITSOnlineSDDInjectors.cxx:87 AliITSOnlineSDDInjectors.cxx:88 AliITSOnlineSDDInjectors.cxx:89 AliITSOnlineSDDInjectors.cxx:90 AliITSOnlineSDDInjectors.cxx:91 AliITSOnlineSDDInjectors.cxx:92 AliITSOnlineSDDInjectors.cxx:93 AliITSOnlineSDDInjectors.cxx:94 AliITSOnlineSDDInjectors.cxx:95 AliITSOnlineSDDInjectors.cxx:96 AliITSOnlineSDDInjectors.cxx:97 AliITSOnlineSDDInjectors.cxx:98 AliITSOnlineSDDInjectors.cxx:99 AliITSOnlineSDDInjectors.cxx:100 AliITSOnlineSDDInjectors.cxx:101 AliITSOnlineSDDInjectors.cxx:102 AliITSOnlineSDDInjectors.cxx:103 AliITSOnlineSDDInjectors.cxx:104 AliITSOnlineSDDInjectors.cxx:105 AliITSOnlineSDDInjectors.cxx:106 AliITSOnlineSDDInjectors.cxx:107 AliITSOnlineSDDInjectors.cxx:108 AliITSOnlineSDDInjectors.cxx:109 AliITSOnlineSDDInjectors.cxx:110 AliITSOnlineSDDInjectors.cxx:111 AliITSOnlineSDDInjectors.cxx:112 AliITSOnlineSDDInjectors.cxx:113 AliITSOnlineSDDInjectors.cxx:114 AliITSOnlineSDDInjectors.cxx:115 AliITSOnlineSDDInjectors.cxx:116 AliITSOnlineSDDInjectors.cxx:117 AliITSOnlineSDDInjectors.cxx:118 AliITSOnlineSDDInjectors.cxx:119 AliITSOnlineSDDInjectors.cxx:120 AliITSOnlineSDDInjectors.cxx:121 AliITSOnlineSDDInjectors.cxx:122 AliITSOnlineSDDInjectors.cxx:123 AliITSOnlineSDDInjectors.cxx:124 AliITSOnlineSDDInjectors.cxx:125 AliITSOnlineSDDInjectors.cxx:126 AliITSOnlineSDDInjectors.cxx:127 AliITSOnlineSDDInjectors.cxx:128 AliITSOnlineSDDInjectors.cxx:129 AliITSOnlineSDDInjectors.cxx:130 AliITSOnlineSDDInjectors.cxx:131 AliITSOnlineSDDInjectors.cxx:132 AliITSOnlineSDDInjectors.cxx:133 AliITSOnlineSDDInjectors.cxx:134 AliITSOnlineSDDInjectors.cxx:135 AliITSOnlineSDDInjectors.cxx:136 AliITSOnlineSDDInjectors.cxx:137 AliITSOnlineSDDInjectors.cxx:138 AliITSOnlineSDDInjectors.cxx:139 AliITSOnlineSDDInjectors.cxx:140 AliITSOnlineSDDInjectors.cxx:141 AliITSOnlineSDDInjectors.cxx:142 AliITSOnlineSDDInjectors.cxx:143 AliITSOnlineSDDInjectors.cxx:144 AliITSOnlineSDDInjectors.cxx:145 AliITSOnlineSDDInjectors.cxx:146 AliITSOnlineSDDInjectors.cxx:147 AliITSOnlineSDDInjectors.cxx:148 AliITSOnlineSDDInjectors.cxx:149 AliITSOnlineSDDInjectors.cxx:150 AliITSOnlineSDDInjectors.cxx:151 AliITSOnlineSDDInjectors.cxx:152 AliITSOnlineSDDInjectors.cxx:153 AliITSOnlineSDDInjectors.cxx:154 AliITSOnlineSDDInjectors.cxx:155 AliITSOnlineSDDInjectors.cxx:156 AliITSOnlineSDDInjectors.cxx:157 AliITSOnlineSDDInjectors.cxx:158 AliITSOnlineSDDInjectors.cxx:159 AliITSOnlineSDDInjectors.cxx:160 AliITSOnlineSDDInjectors.cxx:161 AliITSOnlineSDDInjectors.cxx:162 AliITSOnlineSDDInjectors.cxx:163 AliITSOnlineSDDInjectors.cxx:164 AliITSOnlineSDDInjectors.cxx:165 AliITSOnlineSDDInjectors.cxx:166 AliITSOnlineSDDInjectors.cxx:167 AliITSOnlineSDDInjectors.cxx:168 AliITSOnlineSDDInjectors.cxx:169 AliITSOnlineSDDInjectors.cxx:170 AliITSOnlineSDDInjectors.cxx:171 AliITSOnlineSDDInjectors.cxx:172 AliITSOnlineSDDInjectors.cxx:173 AliITSOnlineSDDInjectors.cxx:174 AliITSOnlineSDDInjectors.cxx:175 AliITSOnlineSDDInjectors.cxx:176 AliITSOnlineSDDInjectors.cxx:177 AliITSOnlineSDDInjectors.cxx:178 AliITSOnlineSDDInjectors.cxx:179 AliITSOnlineSDDInjectors.cxx:180 AliITSOnlineSDDInjectors.cxx:181 AliITSOnlineSDDInjectors.cxx:182 AliITSOnlineSDDInjectors.cxx:183 AliITSOnlineSDDInjectors.cxx:184 AliITSOnlineSDDInjectors.cxx:185 AliITSOnlineSDDInjectors.cxx:186 AliITSOnlineSDDInjectors.cxx:187 AliITSOnlineSDDInjectors.cxx:188 AliITSOnlineSDDInjectors.cxx:189 AliITSOnlineSDDInjectors.cxx:190 AliITSOnlineSDDInjectors.cxx:191 AliITSOnlineSDDInjectors.cxx:192 AliITSOnlineSDDInjectors.cxx:193 AliITSOnlineSDDInjectors.cxx:194 AliITSOnlineSDDInjectors.cxx:195 AliITSOnlineSDDInjectors.cxx:196 AliITSOnlineSDDInjectors.cxx:197 AliITSOnlineSDDInjectors.cxx:198 AliITSOnlineSDDInjectors.cxx:199 AliITSOnlineSDDInjectors.cxx:200 AliITSOnlineSDDInjectors.cxx:201 AliITSOnlineSDDInjectors.cxx:202 AliITSOnlineSDDInjectors.cxx:203 AliITSOnlineSDDInjectors.cxx:204 AliITSOnlineSDDInjectors.cxx:205 AliITSOnlineSDDInjectors.cxx:206 AliITSOnlineSDDInjectors.cxx:207 AliITSOnlineSDDInjectors.cxx:208 AliITSOnlineSDDInjectors.cxx:209 AliITSOnlineSDDInjectors.cxx:210 AliITSOnlineSDDInjectors.cxx:211 AliITSOnlineSDDInjectors.cxx:212 AliITSOnlineSDDInjectors.cxx:213 AliITSOnlineSDDInjectors.cxx:214 AliITSOnlineSDDInjectors.cxx:215 AliITSOnlineSDDInjectors.cxx:216 AliITSOnlineSDDInjectors.cxx:217 AliITSOnlineSDDInjectors.cxx:218 AliITSOnlineSDDInjectors.cxx:219 AliITSOnlineSDDInjectors.cxx:220 AliITSOnlineSDDInjectors.cxx:221 AliITSOnlineSDDInjectors.cxx:222 AliITSOnlineSDDInjectors.cxx:223 AliITSOnlineSDDInjectors.cxx:224 AliITSOnlineSDDInjectors.cxx:225 AliITSOnlineSDDInjectors.cxx:226 AliITSOnlineSDDInjectors.cxx:227 AliITSOnlineSDDInjectors.cxx:228 AliITSOnlineSDDInjectors.cxx:229 AliITSOnlineSDDInjectors.cxx:230 AliITSOnlineSDDInjectors.cxx:231 AliITSOnlineSDDInjectors.cxx:232 AliITSOnlineSDDInjectors.cxx:233 AliITSOnlineSDDInjectors.cxx:234 AliITSOnlineSDDInjectors.cxx:235 AliITSOnlineSDDInjectors.cxx:236 AliITSOnlineSDDInjectors.cxx:237 AliITSOnlineSDDInjectors.cxx:238 AliITSOnlineSDDInjectors.cxx:239 AliITSOnlineSDDInjectors.cxx:240 AliITSOnlineSDDInjectors.cxx:241 AliITSOnlineSDDInjectors.cxx:242 AliITSOnlineSDDInjectors.cxx:243 AliITSOnlineSDDInjectors.cxx:244 AliITSOnlineSDDInjectors.cxx:245 AliITSOnlineSDDInjectors.cxx:246 AliITSOnlineSDDInjectors.cxx:247 AliITSOnlineSDDInjectors.cxx:248 AliITSOnlineSDDInjectors.cxx:249 AliITSOnlineSDDInjectors.cxx:250 AliITSOnlineSDDInjectors.cxx:251 AliITSOnlineSDDInjectors.cxx:252 AliITSOnlineSDDInjectors.cxx:253 AliITSOnlineSDDInjectors.cxx:254 AliITSOnlineSDDInjectors.cxx:255 AliITSOnlineSDDInjectors.cxx:256 AliITSOnlineSDDInjectors.cxx:257 AliITSOnlineSDDInjectors.cxx:258 AliITSOnlineSDDInjectors.cxx:259 AliITSOnlineSDDInjectors.cxx:260 AliITSOnlineSDDInjectors.cxx:261 AliITSOnlineSDDInjectors.cxx:262 AliITSOnlineSDDInjectors.cxx:263 AliITSOnlineSDDInjectors.cxx:264 AliITSOnlineSDDInjectors.cxx:265 AliITSOnlineSDDInjectors.cxx:266 AliITSOnlineSDDInjectors.cxx:267 AliITSOnlineSDDInjectors.cxx:268 AliITSOnlineSDDInjectors.cxx:269 AliITSOnlineSDDInjectors.cxx:270 AliITSOnlineSDDInjectors.cxx:271 AliITSOnlineSDDInjectors.cxx:272 AliITSOnlineSDDInjectors.cxx:273 AliITSOnlineSDDInjectors.cxx:274 AliITSOnlineSDDInjectors.cxx:275 AliITSOnlineSDDInjectors.cxx:276 AliITSOnlineSDDInjectors.cxx:277 AliITSOnlineSDDInjectors.cxx:278 AliITSOnlineSDDInjectors.cxx:279 AliITSOnlineSDDInjectors.cxx:280 AliITSOnlineSDDInjectors.cxx:281 AliITSOnlineSDDInjectors.cxx:282 AliITSOnlineSDDInjectors.cxx:283 AliITSOnlineSDDInjectors.cxx:284 AliITSOnlineSDDInjectors.cxx:285 AliITSOnlineSDDInjectors.cxx:286 AliITSOnlineSDDInjectors.cxx:287 AliITSOnlineSDDInjectors.cxx:288 AliITSOnlineSDDInjectors.cxx:289 AliITSOnlineSDDInjectors.cxx:290 AliITSOnlineSDDInjectors.cxx:291 AliITSOnlineSDDInjectors.cxx:292 AliITSOnlineSDDInjectors.cxx:293 AliITSOnlineSDDInjectors.cxx:294 AliITSOnlineSDDInjectors.cxx:295 AliITSOnlineSDDInjectors.cxx:296 AliITSOnlineSDDInjectors.cxx:297 AliITSOnlineSDDInjectors.cxx:298 AliITSOnlineSDDInjectors.cxx:299 AliITSOnlineSDDInjectors.cxx:300 AliITSOnlineSDDInjectors.cxx:301 AliITSOnlineSDDInjectors.cxx:302 AliITSOnlineSDDInjectors.cxx:303 AliITSOnlineSDDInjectors.cxx:304 AliITSOnlineSDDInjectors.cxx:305 AliITSOnlineSDDInjectors.cxx:306 AliITSOnlineSDDInjectors.cxx:307 AliITSOnlineSDDInjectors.cxx:308 AliITSOnlineSDDInjectors.cxx:309 AliITSOnlineSDDInjectors.cxx:310 AliITSOnlineSDDInjectors.cxx:311 AliITSOnlineSDDInjectors.cxx:312 AliITSOnlineSDDInjectors.cxx:313 AliITSOnlineSDDInjectors.cxx:314 AliITSOnlineSDDInjectors.cxx:315 AliITSOnlineSDDInjectors.cxx:316 AliITSOnlineSDDInjectors.cxx:317 AliITSOnlineSDDInjectors.cxx:318 AliITSOnlineSDDInjectors.cxx:319 AliITSOnlineSDDInjectors.cxx:320 AliITSOnlineSDDInjectors.cxx:321 AliITSOnlineSDDInjectors.cxx:322 AliITSOnlineSDDInjectors.cxx:323 AliITSOnlineSDDInjectors.cxx:324 AliITSOnlineSDDInjectors.cxx:325 AliITSOnlineSDDInjectors.cxx:326 AliITSOnlineSDDInjectors.cxx:327 AliITSOnlineSDDInjectors.cxx:328 AliITSOnlineSDDInjectors.cxx:329 AliITSOnlineSDDInjectors.cxx:330 AliITSOnlineSDDInjectors.cxx:331 AliITSOnlineSDDInjectors.cxx:332 AliITSOnlineSDDInjectors.cxx:333 AliITSOnlineSDDInjectors.cxx:334 AliITSOnlineSDDInjectors.cxx:335 AliITSOnlineSDDInjectors.cxx:336 AliITSOnlineSDDInjectors.cxx:337 AliITSOnlineSDDInjectors.cxx:338 AliITSOnlineSDDInjectors.cxx:339 AliITSOnlineSDDInjectors.cxx:340 AliITSOnlineSDDInjectors.cxx:341 AliITSOnlineSDDInjectors.cxx:342 AliITSOnlineSDDInjectors.cxx:343 AliITSOnlineSDDInjectors.cxx:344 AliITSOnlineSDDInjectors.cxx:345 AliITSOnlineSDDInjectors.cxx:346 AliITSOnlineSDDInjectors.cxx:347 AliITSOnlineSDDInjectors.cxx:348 AliITSOnlineSDDInjectors.cxx:349 AliITSOnlineSDDInjectors.cxx:350 AliITSOnlineSDDInjectors.cxx:351 AliITSOnlineSDDInjectors.cxx:352 AliITSOnlineSDDInjectors.cxx:353 AliITSOnlineSDDInjectors.cxx:354 AliITSOnlineSDDInjectors.cxx:355 AliITSOnlineSDDInjectors.cxx:356 AliITSOnlineSDDInjectors.cxx:357 AliITSOnlineSDDInjectors.cxx:358 AliITSOnlineSDDInjectors.cxx:359 AliITSOnlineSDDInjectors.cxx:360 AliITSOnlineSDDInjectors.cxx:361 AliITSOnlineSDDInjectors.cxx:362 AliITSOnlineSDDInjectors.cxx:363 AliITSOnlineSDDInjectors.cxx:364 AliITSOnlineSDDInjectors.cxx:365 AliITSOnlineSDDInjectors.cxx:366 AliITSOnlineSDDInjectors.cxx:367 AliITSOnlineSDDInjectors.cxx:368 AliITSOnlineSDDInjectors.cxx:369 AliITSOnlineSDDInjectors.cxx:370 AliITSOnlineSDDInjectors.cxx:371 AliITSOnlineSDDInjectors.cxx:372 AliITSOnlineSDDInjectors.cxx:373 AliITSOnlineSDDInjectors.cxx:374 AliITSOnlineSDDInjectors.cxx:375 AliITSOnlineSDDInjectors.cxx:376 AliITSOnlineSDDInjectors.cxx:377 AliITSOnlineSDDInjectors.cxx:378 AliITSOnlineSDDInjectors.cxx:379 AliITSOnlineSDDInjectors.cxx:380 AliITSOnlineSDDInjectors.cxx:381 AliITSOnlineSDDInjectors.cxx:382 AliITSOnlineSDDInjectors.cxx:383 AliITSOnlineSDDInjectors.cxx:384 AliITSOnlineSDDInjectors.cxx:385 AliITSOnlineSDDInjectors.cxx:386 AliITSOnlineSDDInjectors.cxx:387 AliITSOnlineSDDInjectors.cxx:388 AliITSOnlineSDDInjectors.cxx:389 AliITSOnlineSDDInjectors.cxx:390 AliITSOnlineSDDInjectors.cxx:391 AliITSOnlineSDDInjectors.cxx:392 AliITSOnlineSDDInjectors.cxx:393 AliITSOnlineSDDInjectors.cxx:394 AliITSOnlineSDDInjectors.cxx:395 AliITSOnlineSDDInjectors.cxx:396 AliITSOnlineSDDInjectors.cxx:397 AliITSOnlineSDDInjectors.cxx:398 AliITSOnlineSDDInjectors.cxx:399 AliITSOnlineSDDInjectors.cxx:400 AliITSOnlineSDDInjectors.cxx:401 AliITSOnlineSDDInjectors.cxx:402 AliITSOnlineSDDInjectors.cxx:403 AliITSOnlineSDDInjectors.cxx:404 AliITSOnlineSDDInjectors.cxx:405 AliITSOnlineSDDInjectors.cxx:406 AliITSOnlineSDDInjectors.cxx:407 AliITSOnlineSDDInjectors.cxx:408 AliITSOnlineSDDInjectors.cxx:409 AliITSOnlineSDDInjectors.cxx:410 AliITSOnlineSDDInjectors.cxx:411 AliITSOnlineSDDInjectors.cxx:412 AliITSOnlineSDDInjectors.cxx:413 AliITSOnlineSDDInjectors.cxx:414 AliITSOnlineSDDInjectors.cxx:415 AliITSOnlineSDDInjectors.cxx:416 AliITSOnlineSDDInjectors.cxx:417 AliITSOnlineSDDInjectors.cxx:418 AliITSOnlineSDDInjectors.cxx:419 AliITSOnlineSDDInjectors.cxx:420 AliITSOnlineSDDInjectors.cxx:421 AliITSOnlineSDDInjectors.cxx:422 AliITSOnlineSDDInjectors.cxx:423 AliITSOnlineSDDInjectors.cxx:424 AliITSOnlineSDDInjectors.cxx:425 AliITSOnlineSDDInjectors.cxx:426 AliITSOnlineSDDInjectors.cxx:427 AliITSOnlineSDDInjectors.cxx:428 AliITSOnlineSDDInjectors.cxx:429 AliITSOnlineSDDInjectors.cxx:430 AliITSOnlineSDDInjectors.cxx:431 AliITSOnlineSDDInjectors.cxx:432 AliITSOnlineSDDInjectors.cxx:433 AliITSOnlineSDDInjectors.cxx:434 AliITSOnlineSDDInjectors.cxx:435 AliITSOnlineSDDInjectors.cxx:436 AliITSOnlineSDDInjectors.cxx:437 AliITSOnlineSDDInjectors.cxx:438 AliITSOnlineSDDInjectors.cxx:439 AliITSOnlineSDDInjectors.cxx:440 AliITSOnlineSDDInjectors.cxx:441 AliITSOnlineSDDInjectors.cxx:442 AliITSOnlineSDDInjectors.cxx:443 AliITSOnlineSDDInjectors.cxx:444 AliITSOnlineSDDInjectors.cxx:445 AliITSOnlineSDDInjectors.cxx:446 AliITSOnlineSDDInjectors.cxx:447 AliITSOnlineSDDInjectors.cxx:448 AliITSOnlineSDDInjectors.cxx:449 AliITSOnlineSDDInjectors.cxx:450 AliITSOnlineSDDInjectors.cxx:451 AliITSOnlineSDDInjectors.cxx:452 AliITSOnlineSDDInjectors.cxx:453 AliITSOnlineSDDInjectors.cxx:454 AliITSOnlineSDDInjectors.cxx:455 AliITSOnlineSDDInjectors.cxx:456 AliITSOnlineSDDInjectors.cxx:457 AliITSOnlineSDDInjectors.cxx:458 AliITSOnlineSDDInjectors.cxx:459 AliITSOnlineSDDInjectors.cxx:460 AliITSOnlineSDDInjectors.cxx:461 AliITSOnlineSDDInjectors.cxx:462 AliITSOnlineSDDInjectors.cxx:463 AliITSOnlineSDDInjectors.cxx:464 AliITSOnlineSDDInjectors.cxx:465 AliITSOnlineSDDInjectors.cxx:466 AliITSOnlineSDDInjectors.cxx:467 AliITSOnlineSDDInjectors.cxx:468 AliITSOnlineSDDInjectors.cxx:469 AliITSOnlineSDDInjectors.cxx:470 AliITSOnlineSDDInjectors.cxx:471 AliITSOnlineSDDInjectors.cxx:472 AliITSOnlineSDDInjectors.cxx:473 AliITSOnlineSDDInjectors.cxx:474 AliITSOnlineSDDInjectors.cxx:475 AliITSOnlineSDDInjectors.cxx:476 AliITSOnlineSDDInjectors.cxx:477 AliITSOnlineSDDInjectors.cxx:478 AliITSOnlineSDDInjectors.cxx:479 AliITSOnlineSDDInjectors.cxx:480 AliITSOnlineSDDInjectors.cxx:481 AliITSOnlineSDDInjectors.cxx:482 AliITSOnlineSDDInjectors.cxx:483 AliITSOnlineSDDInjectors.cxx:484 AliITSOnlineSDDInjectors.cxx:485 AliITSOnlineSDDInjectors.cxx:486 AliITSOnlineSDDInjectors.cxx:487 AliITSOnlineSDDInjectors.cxx:488 AliITSOnlineSDDInjectors.cxx:489 AliITSOnlineSDDInjectors.cxx:490 AliITSOnlineSDDInjectors.cxx:491 AliITSOnlineSDDInjectors.cxx:492 AliITSOnlineSDDInjectors.cxx:493 AliITSOnlineSDDInjectors.cxx:494 AliITSOnlineSDDInjectors.cxx:495 AliITSOnlineSDDInjectors.cxx:496 AliITSOnlineSDDInjectors.cxx:497 AliITSOnlineSDDInjectors.cxx:498 AliITSOnlineSDDInjectors.cxx:499 AliITSOnlineSDDInjectors.cxx:500 AliITSOnlineSDDInjectors.cxx:501 AliITSOnlineSDDInjectors.cxx:502 AliITSOnlineSDDInjectors.cxx:503 AliITSOnlineSDDInjectors.cxx:504 AliITSOnlineSDDInjectors.cxx:505 AliITSOnlineSDDInjectors.cxx:506 AliITSOnlineSDDInjectors.cxx:507 AliITSOnlineSDDInjectors.cxx:508 AliITSOnlineSDDInjectors.cxx:509 AliITSOnlineSDDInjectors.cxx:510 AliITSOnlineSDDInjectors.cxx:511 AliITSOnlineSDDInjectors.cxx:512 AliITSOnlineSDDInjectors.cxx:513 AliITSOnlineSDDInjectors.cxx:514 AliITSOnlineSDDInjectors.cxx:515 AliITSOnlineSDDInjectors.cxx:516 AliITSOnlineSDDInjectors.cxx:517 AliITSOnlineSDDInjectors.cxx:518 AliITSOnlineSDDInjectors.cxx:519 AliITSOnlineSDDInjectors.cxx:520 AliITSOnlineSDDInjectors.cxx:521 AliITSOnlineSDDInjectors.cxx:522 AliITSOnlineSDDInjectors.cxx:523 AliITSOnlineSDDInjectors.cxx:524 AliITSOnlineSDDInjectors.cxx:525 AliITSOnlineSDDInjectors.cxx:526 AliITSOnlineSDDInjectors.cxx:527 AliITSOnlineSDDInjectors.cxx:528 AliITSOnlineSDDInjectors.cxx:529 AliITSOnlineSDDInjectors.cxx:530 AliITSOnlineSDDInjectors.cxx:531 AliITSOnlineSDDInjectors.cxx:532 AliITSOnlineSDDInjectors.cxx:533 AliITSOnlineSDDInjectors.cxx:534 AliITSOnlineSDDInjectors.cxx:535 AliITSOnlineSDDInjectors.cxx:536 AliITSOnlineSDDInjectors.cxx:537 AliITSOnlineSDDInjectors.cxx:538 AliITSOnlineSDDInjectors.cxx:539 AliITSOnlineSDDInjectors.cxx:540 AliITSOnlineSDDInjectors.cxx:541 AliITSOnlineSDDInjectors.cxx:542 AliITSOnlineSDDInjectors.cxx:543 AliITSOnlineSDDInjectors.cxx:544 AliITSOnlineSDDInjectors.cxx:545 AliITSOnlineSDDInjectors.cxx:546 AliITSOnlineSDDInjectors.cxx:547 AliITSOnlineSDDInjectors.cxx:548 AliITSOnlineSDDInjectors.cxx:549 AliITSOnlineSDDInjectors.cxx:550 AliITSOnlineSDDInjectors.cxx:551 AliITSOnlineSDDInjectors.cxx:552 AliITSOnlineSDDInjectors.cxx:553 AliITSOnlineSDDInjectors.cxx:554 AliITSOnlineSDDInjectors.cxx:555 AliITSOnlineSDDInjectors.cxx:556 AliITSOnlineSDDInjectors.cxx:557 AliITSOnlineSDDInjectors.cxx:558 AliITSOnlineSDDInjectors.cxx:559 AliITSOnlineSDDInjectors.cxx:560 AliITSOnlineSDDInjectors.cxx:561 AliITSOnlineSDDInjectors.cxx:562 AliITSOnlineSDDInjectors.cxx:563 AliITSOnlineSDDInjectors.cxx:564 AliITSOnlineSDDInjectors.cxx:565 AliITSOnlineSDDInjectors.cxx:566 AliITSOnlineSDDInjectors.cxx:567 AliITSOnlineSDDInjectors.cxx:568 AliITSOnlineSDDInjectors.cxx:569 AliITSOnlineSDDInjectors.cxx:570 AliITSOnlineSDDInjectors.cxx:571 AliITSOnlineSDDInjectors.cxx:572 AliITSOnlineSDDInjectors.cxx:573 AliITSOnlineSDDInjectors.cxx:574 AliITSOnlineSDDInjectors.cxx:575 AliITSOnlineSDDInjectors.cxx:576 AliITSOnlineSDDInjectors.cxx:577 AliITSOnlineSDDInjectors.cxx:578 AliITSOnlineSDDInjectors.cxx:579 AliITSOnlineSDDInjectors.cxx:580 AliITSOnlineSDDInjectors.cxx:581 AliITSOnlineSDDInjectors.cxx:582 AliITSOnlineSDDInjectors.cxx:583 AliITSOnlineSDDInjectors.cxx:584 AliITSOnlineSDDInjectors.cxx:585 AliITSOnlineSDDInjectors.cxx:586 AliITSOnlineSDDInjectors.cxx:587 AliITSOnlineSDDInjectors.cxx:588 AliITSOnlineSDDInjectors.cxx:589 AliITSOnlineSDDInjectors.cxx:590 AliITSOnlineSDDInjectors.cxx:591 AliITSOnlineSDDInjectors.cxx:592 AliITSOnlineSDDInjectors.cxx:593 AliITSOnlineSDDInjectors.cxx:594 AliITSOnlineSDDInjectors.cxx:595 AliITSOnlineSDDInjectors.cxx:596 AliITSOnlineSDDInjectors.cxx:597 AliITSOnlineSDDInjectors.cxx:598 AliITSOnlineSDDInjectors.cxx:599 AliITSOnlineSDDInjectors.cxx:600 AliITSOnlineSDDInjectors.cxx:601 AliITSOnlineSDDInjectors.cxx:602 AliITSOnlineSDDInjectors.cxx:603 AliITSOnlineSDDInjectors.cxx:604 AliITSOnlineSDDInjectors.cxx:605 AliITSOnlineSDDInjectors.cxx:606 AliITSOnlineSDDInjectors.cxx:607 AliITSOnlineSDDInjectors.cxx:608 AliITSOnlineSDDInjectors.cxx:609 AliITSOnlineSDDInjectors.cxx:610 AliITSOnlineSDDInjectors.cxx:611 AliITSOnlineSDDInjectors.cxx:612 AliITSOnlineSDDInjectors.cxx:613 AliITSOnlineSDDInjectors.cxx:614 AliITSOnlineSDDInjectors.cxx:615 AliITSOnlineSDDInjectors.cxx:616 AliITSOnlineSDDInjectors.cxx:617 AliITSOnlineSDDInjectors.cxx:618 AliITSOnlineSDDInjectors.cxx:619 AliITSOnlineSDDInjectors.cxx:620 AliITSOnlineSDDInjectors.cxx:621 AliITSOnlineSDDInjectors.cxx:622 AliITSOnlineSDDInjectors.cxx:623 AliITSOnlineSDDInjectors.cxx:624 AliITSOnlineSDDInjectors.cxx:625 AliITSOnlineSDDInjectors.cxx:626 AliITSOnlineSDDInjectors.cxx:627 AliITSOnlineSDDInjectors.cxx:628 AliITSOnlineSDDInjectors.cxx:629 AliITSOnlineSDDInjectors.cxx:630 AliITSOnlineSDDInjectors.cxx:631 AliITSOnlineSDDInjectors.cxx:632 AliITSOnlineSDDInjectors.cxx:633 AliITSOnlineSDDInjectors.cxx:634 AliITSOnlineSDDInjectors.cxx:635 AliITSOnlineSDDInjectors.cxx:636 AliITSOnlineSDDInjectors.cxx:637 AliITSOnlineSDDInjectors.cxx:638 AliITSOnlineSDDInjectors.cxx:639 AliITSOnlineSDDInjectors.cxx:640 AliITSOnlineSDDInjectors.cxx:641 AliITSOnlineSDDInjectors.cxx:642 AliITSOnlineSDDInjectors.cxx:643 AliITSOnlineSDDInjectors.cxx:644 AliITSOnlineSDDInjectors.cxx:645 AliITSOnlineSDDInjectors.cxx:646 AliITSOnlineSDDInjectors.cxx:647 AliITSOnlineSDDInjectors.cxx:648 AliITSOnlineSDDInjectors.cxx:649 AliITSOnlineSDDInjectors.cxx:650 AliITSOnlineSDDInjectors.cxx:651 AliITSOnlineSDDInjectors.cxx:652 AliITSOnlineSDDInjectors.cxx:653 AliITSOnlineSDDInjectors.cxx:654 AliITSOnlineSDDInjectors.cxx:655 AliITSOnlineSDDInjectors.cxx:656 AliITSOnlineSDDInjectors.cxx:657 AliITSOnlineSDDInjectors.cxx:658 AliITSOnlineSDDInjectors.cxx:659 AliITSOnlineSDDInjectors.cxx:660 AliITSOnlineSDDInjectors.cxx:661 AliITSOnlineSDDInjectors.cxx:662 AliITSOnlineSDDInjectors.cxx:663 AliITSOnlineSDDInjectors.cxx:664 AliITSOnlineSDDInjectors.cxx:665 AliITSOnlineSDDInjectors.cxx:666 AliITSOnlineSDDInjectors.cxx:667 AliITSOnlineSDDInjectors.cxx:668 AliITSOnlineSDDInjectors.cxx:669 AliITSOnlineSDDInjectors.cxx:670 AliITSOnlineSDDInjectors.cxx:671 AliITSOnlineSDDInjectors.cxx:672 AliITSOnlineSDDInjectors.cxx:673 AliITSOnlineSDDInjectors.cxx:674 AliITSOnlineSDDInjectors.cxx:675 AliITSOnlineSDDInjectors.cxx:676 AliITSOnlineSDDInjectors.cxx:677 AliITSOnlineSDDInjectors.cxx:678 AliITSOnlineSDDInjectors.cxx:679 AliITSOnlineSDDInjectors.cxx:680 AliITSOnlineSDDInjectors.cxx:681 AliITSOnlineSDDInjectors.cxx:682 AliITSOnlineSDDInjectors.cxx:683 AliITSOnlineSDDInjectors.cxx:684 AliITSOnlineSDDInjectors.cxx:685 AliITSOnlineSDDInjectors.cxx:686 AliITSOnlineSDDInjectors.cxx:687 AliITSOnlineSDDInjectors.cxx:688 AliITSOnlineSDDInjectors.cxx:689 AliITSOnlineSDDInjectors.cxx:690 AliITSOnlineSDDInjectors.cxx:691 AliITSOnlineSDDInjectors.cxx:692 AliITSOnlineSDDInjectors.cxx:693 AliITSOnlineSDDInjectors.cxx:694 AliITSOnlineSDDInjectors.cxx:695 AliITSOnlineSDDInjectors.cxx:696 AliITSOnlineSDDInjectors.cxx:697 AliITSOnlineSDDInjectors.cxx:698 AliITSOnlineSDDInjectors.cxx:699 AliITSOnlineSDDInjectors.cxx:700 AliITSOnlineSDDInjectors.cxx:701 AliITSOnlineSDDInjectors.cxx:702 AliITSOnlineSDDInjectors.cxx:703 AliITSOnlineSDDInjectors.cxx:704 AliITSOnlineSDDInjectors.cxx:705 AliITSOnlineSDDInjectors.cxx:706 AliITSOnlineSDDInjectors.cxx:707 AliITSOnlineSDDInjectors.cxx:708 AliITSOnlineSDDInjectors.cxx:709 AliITSOnlineSDDInjectors.cxx:710 AliITSOnlineSDDInjectors.cxx:711 AliITSOnlineSDDInjectors.cxx:712 AliITSOnlineSDDInjectors.cxx:713 AliITSOnlineSDDInjectors.cxx:714 AliITSOnlineSDDInjectors.cxx:715 AliITSOnlineSDDInjectors.cxx:716 AliITSOnlineSDDInjectors.cxx:717 AliITSOnlineSDDInjectors.cxx:718 AliITSOnlineSDDInjectors.cxx:719 AliITSOnlineSDDInjectors.cxx:720 AliITSOnlineSDDInjectors.cxx:721 AliITSOnlineSDDInjectors.cxx:722 AliITSOnlineSDDInjectors.cxx:723 AliITSOnlineSDDInjectors.cxx:724 AliITSOnlineSDDInjectors.cxx:725 AliITSOnlineSDDInjectors.cxx:726 AliITSOnlineSDDInjectors.cxx:727 AliITSOnlineSDDInjectors.cxx:728 AliITSOnlineSDDInjectors.cxx:729 AliITSOnlineSDDInjectors.cxx:730 AliITSOnlineSDDInjectors.cxx:731 AliITSOnlineSDDInjectors.cxx:732 AliITSOnlineSDDInjectors.cxx:733 AliITSOnlineSDDInjectors.cxx:734 AliITSOnlineSDDInjectors.cxx:735 AliITSOnlineSDDInjectors.cxx:736 AliITSOnlineSDDInjectors.cxx:737 AliITSOnlineSDDInjectors.cxx:738 AliITSOnlineSDDInjectors.cxx:739 AliITSOnlineSDDInjectors.cxx:740 AliITSOnlineSDDInjectors.cxx:741 AliITSOnlineSDDInjectors.cxx:742 AliITSOnlineSDDInjectors.cxx:743 AliITSOnlineSDDInjectors.cxx:744 AliITSOnlineSDDInjectors.cxx:745 AliITSOnlineSDDInjectors.cxx:746 AliITSOnlineSDDInjectors.cxx:747 AliITSOnlineSDDInjectors.cxx:748 AliITSOnlineSDDInjectors.cxx:749 AliITSOnlineSDDInjectors.cxx:750 AliITSOnlineSDDInjectors.cxx:751 AliITSOnlineSDDInjectors.cxx:752 AliITSOnlineSDDInjectors.cxx:753 AliITSOnlineSDDInjectors.cxx:754 AliITSOnlineSDDInjectors.cxx:755