TObject(),
fGeo(0),
fAdcMin(0),
- fAdcMax(20),
+ fAdcMax(21),
fDetector(-1),
fNumberOfTimeBins(0),
fCalRocArrayMean(540),
// Attention: the entry counter of the histogram is not increased
// this means that e.g. the colz draw option gives an empty plot
Int_t bin = 0;
- if ( !(((Int_t)csignal>fAdcMax ) || ((Int_t)csignal<fAdcMin)) )
+ if ( !(((Int_t)csignal>=fAdcMax ) || ((Int_t)csignal<fAdcMin)) )
bin = (nbchannel+1)*(fAdcMax-fAdcMin+2)+((Int_t)csignal-fAdcMin+1);
+
+ //GetHisto(icdet,kTRUE)->Fill(csignal,nbchannel);
GetHisto(icdet,kTRUE)->GetArray()[bin]++;
Int_t iCol = rawStream->GetCol(); // current col
- Int_t iADC = 21-rawStream->GetADC(); // current ADC
+ Int_t iADC = 21-rawStream->GetADC(); // current ADC
Int_t col = 0;
if(iADC == 1) col = 1;
else {
//Bool_t shared = rawStream->IsCurrentPadShared();
//printf("ADC %d, iCol %d, col %d, mcm %d, shared %d\n",iADC,iCol,col,mcm,(Int_t)shared);
- Int_t iTimeBin = rawStream->GetTimeBin(); // current time bin
Int_t *signal = rawStream->GetSignals(); // current ADC signal
Int_t nbtimebin = rawStream->GetNumberOfTimeBins(); // number of time bins read from data
}
fNumberOfTimeBins = nbtimebin;
- Int_t fin = TMath::Min(nbtimebin,(iTimeBin+3));
- Int_t n = 0;
-
- for(Int_t k = iTimeBin; k < fin; k++){
- if(signal[n]>0) UpdateHisto(idetector,iRow,iCol,signal[n],iRowMax,col,mcm);
- n++;
+ for(Int_t k = 0; k < fNumberOfTimeBins; k++){
+ if(signal[k]>0) UpdateHisto(idetector,iRow,iCol,signal[k],iRowMax,col,mcm);
}
withInput = 2;
if(col > 1) mcm -= 1;
if(col ==1) mcm += 1;
- Int_t iTimeBin = rawStream->GetTimeBin(); // current time bin
Int_t *signal = rawStream->GetSignals(); // current ADC signal
Int_t nbtimebin = rawStream->GetNumberOfTimeBins(); // number of time bins read from data
- Int_t fin = TMath::Min(nbtimebin,(iTimeBin+3));
- Int_t n = 0;
-
+
//printf("det %d, row %d, signal[0] %d, signal[1] %d, signal [2] %d\n", idetector, iRow, signal[0], signal[1], signal[2]);
- for(Int_t k = iTimeBin; k < fin; k++){
- if(signal[n]>0) {
- UpdateHisto(idetector,iRow,iCol,signal[n],iRowMax,col,mcm);
+ for(Int_t k = 0; k < nbtimebin; k++){
+ if(signal[k]>0) {
+ UpdateHisto(idetector,iRow,iCol,signal[k],iRowMax,col,mcm);
//printf("Update with det %d, row %d, col %d, signal %d, rowmax %d, col %d, mcm %d\n",idetector,iRow,iCol,signal[n],iRowMax,col,mcm);
}
- n++;
}
withInput = 2;
}
//_____________________________________________________________________
-Bool_t AliTRDCalibPadStatus::TestEventHisto(Int_t nevent, Int_t sm) /*FOLD00*/
+Bool_t AliTRDCalibPadStatus::TestEventHisto(Int_t nevent, Int_t sm, Int_t ch) /*FOLD00*/
{
//
// Test event loop
gRandom->SetSeed(0);
for (Int_t ism=sm; ism<sm+1; ism++){
- for (Int_t ich=0; ich < 5; ich++){
+ for (Int_t ich=ch; ich < ch+1; ich++){
for (Int_t ipl=0; ipl < 6; ipl++){
for(Int_t irow = 0; irow < fGeo->GetRowMax(ipl,ich,ism); irow++){
for(Int_t icol = 0; icol < fGeo->GetColMax(ipl); icol++){
for (Int_t iTimeBin=0; iTimeBin<(30*nevent); iTimeBin++){
- Int_t signal=(Int_t)(gRandom->Gaus(10.0,1.2));
+ Int_t signal=TMath::Nint(gRandom->Gaus(10,1.5));
if ( signal>0 )UpdateHisto((ipl+ich*6+ism*6*5),irow,icol,signal,fGeo->GetRowMax(ipl,ich,ism),0,0);
}
}
// if force is true create a new histogram if it doesn't exist allready
//
TObjArray *arr = &fHistoArray;
- return GetHisto(det, arr, fAdcMax-fAdcMin, fAdcMin, fAdcMax, "Pedestal", force);
+ return GetHisto(det, arr, fAdcMax-fAdcMin, fAdcMin-0.5, fAdcMax-0.5, "Pedestal", force);
}
//_____________________________________________________________________
Int_t nbinsAdc = fAdcMax-fAdcMin;
- TVectorD param(3);
+ TVectorD param(4);
TMatrixD dummy(3,3);
Float_t *arrayHP=0;
continue;
}
+ //printf("Entries for %d\n",idet);
+
AliTRDCalROC *rocMean = GetCalRocMean(idet,kTRUE);
AliTRDCalROC *rocRMS = GetCalRocRMS(idet,kTRUE);
for (Int_t iChannel=0; iChannel<nChannels; iChannel++){
Int_t offset = (nbinsAdc+2)*(iChannel+1)+1;
- Double_t ret = AliMathBase::FitGaus(arrayHP+offset,nbinsAdc,fAdcMin,fAdcMax,¶m,&dummy);
- // if the fitting failed set noise and pedestal to 0
+ Double_t ret = AliMathBase::FitGaus(arrayHP+offset,nbinsAdc,fAdcMin-0.5,fAdcMax-0.5,¶m,&dummy);
+ // if the fitting failed set noise and pedestal to 0
if ((ret==-4) || (ret==-1) || (ret==-2)) {
param[1]=0.0;
param[2]=0.0;
for (Int_t iChannel=shift; iChannel<total; iChannel++){
Int_t offset = (nbinsAdc+2)*(iChannel+1)+1;
- Double_t ret = AliMathBase::FitGaus(arrayHP+offset,nbinsAdc,fAdcMin,fAdcMax,¶m,&dummy);
+ Double_t ret = AliMathBase::FitGaus(arrayHP+offset,nbinsAdc,fAdcMin-0.5,fAdcMax-0.5,¶m,&dummy);
// if the fitting failed set noise and pedestal to 0
if ((ret==-4) || (ret==-1) || (ret==-2)) {
param[1]=0.0;