From d95484e4701262b57e6ec81bee7fdc182ecf9121 Mon Sep 17 00:00:00 2001 From: cblume Date: Fri, 4 Apr 2008 07:26:46 +0000 Subject: [PATCH] Update of DAQ DAs for trunk version --- TRD/AliTRDCalibPadStatus.cxx | 47 +++++++------- TRD/AliTRDCalibPadStatus.h | 2 +- TRD/AliTRDCalibraFillHisto.cxx | 109 ++++++++++++++++++--------------- TRD/AliTRDCalibraFillHisto.h | 3 +- 4 files changed, 84 insertions(+), 77 deletions(-) diff --git a/TRD/AliTRDCalibPadStatus.cxx b/TRD/AliTRDCalibPadStatus.cxx index 7ad6608fe8a..5b48c791061 100644 --- a/TRD/AliTRDCalibPadStatus.cxx +++ b/TRD/AliTRDCalibPadStatus.cxx @@ -95,7 +95,7 @@ AliTRDCalibPadStatus::AliTRDCalibPadStatus() : /*FOLD00*/ TObject(), fGeo(0), fAdcMin(0), - fAdcMax(20), + fAdcMax(21), fDetector(-1), fNumberOfTimeBins(0), fCalRocArrayMean(540), @@ -202,8 +202,10 @@ Int_t AliTRDCalibPadStatus::UpdateHisto(const Int_t icdet, /*FOLD00*/ // 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=fAdcMax ) || ((Int_t)csignalFill(csignal,nbchannel); GetHisto(icdet,kTRUE)->GetArray()[bin]++; @@ -237,7 +239,7 @@ Int_t AliTRDCalibPadStatus::ProcessEvent(AliTRDrawStreamBase *rawStream, Bool_t 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 { @@ -251,7 +253,6 @@ Int_t AliTRDCalibPadStatus::ProcessEvent(AliTRDrawStreamBase *rawStream, Bool_t //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 @@ -261,12 +262,8 @@ Int_t AliTRDCalibPadStatus::ProcessEvent(AliTRDrawStreamBase *rawStream, Bool_t } 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; @@ -291,21 +288,17 @@ Int_t AliTRDCalibPadStatus::ProcessEvent(AliTRDrawStreamBase *rawStream, Bool_t 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; @@ -363,7 +356,7 @@ Int_t AliTRDCalibPadStatus::ProcessEvent( } //_____________________________________________________________________ -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 @@ -373,12 +366,12 @@ Bool_t AliTRDCalibPadStatus::TestEventHisto(Int_t nevent, Int_t sm) /*FOLD00*/ gRandom->SetSeed(0); for (Int_t ism=sm; ismGetRowMax(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); } } @@ -432,7 +425,7 @@ TH2F* AliTRDCalibPadStatus::GetHisto(Int_t det, Bool_t force) /*FOLD00*/ // 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); } //_____________________________________________________________________ @@ -504,7 +497,7 @@ void AliTRDCalibPadStatus::AnalyseHisto() /*FOLD00*/ Int_t nbinsAdc = fAdcMax-fAdcMin; - TVectorD param(3); + TVectorD param(4); TMatrixD dummy(3,3); Float_t *arrayHP=0; @@ -516,6 +509,8 @@ void AliTRDCalibPadStatus::AnalyseHisto() /*FOLD00*/ continue; } + //printf("Entries for %d\n",idet); + AliTRDCalROC *rocMean = GetCalRocMean(idet,kTRUE); AliTRDCalROC *rocRMS = GetCalRocRMS(idet,kTRUE); @@ -524,8 +519,8 @@ void AliTRDCalibPadStatus::AnalyseHisto() /*FOLD00*/ for (Int_t iChannel=0; iChannelGetNumberOfTimeBins(); - fSf = parCom->GetSamplingFrequency(); - fRelativeScale = 20; + fTimeMax = cal->GetNumberOfTimeBins(); + fSf = parCom->GetSamplingFrequency(); + fRelativeScale = 20; + fNumberClustersf = fTimeMax; + fNumberClusters = (Int_t)(0.6*fTimeMax); //calib object from database used for reconstruction if(fCalDetGain) delete fCalDetGain; @@ -545,7 +547,7 @@ Bool_t AliTRDCalibraFillHisto::UpdateHistograms(AliTRDtrack *t) /////////////////////////////////////// Int_t row = cl->GetPadRow(); Int_t col = cl->GetPadCol(); - CheckGoodTracklet(detector,row,col); + CheckGoodTrackletV1(cl); Int_t group[2] = {0,0}; if(fCH2dOn) group[0] = CalculateCalibrationGroup(0,row,col); if(fPH2dOn) group[1] = CalculateCalibrationGroup(1,row,col); @@ -650,7 +652,7 @@ Bool_t AliTRDCalibraFillHisto::UpdateHistogramsV1(AliTRDtrackV1 *t) // Store the info bis of the tracklet Int_t row = cl->GetPadRow(); Int_t col = cl->GetPadCol(); - CheckGoodTracklet(detector,row,col); + CheckGoodTrackletV1(cl); Int_t group[2] = {0,0}; if(fCH2dOn) group[0] = CalculateCalibrationGroup(0,row,col); if(fPH2dOn) group[1] = CalculateCalibrationGroup(1,row,col); @@ -1598,7 +1600,18 @@ Bool_t AliTRDCalibraFillHisto::HandlePRFtrackletV1(const AliTRDseedV1 *tracklet, // Pad row col stuff: see if masked or not /////////////////////////////////////////////////////////////////////////////////////// //_____________________________________________________________________________ -void AliTRDCalibraFillHisto::CheckGoodTracklet(Int_t detector, Int_t row, Int_t col) +void AliTRDCalibraFillHisto::CheckGoodTrackletV1(AliTRDcluster *cl) +{ + // + // See if we are not near a masked pad + // + + if(cl->IsMasked()) fGoodTracklet = kFALSE; + + +} +//_____________________________________________________________________________ +void AliTRDCalibraFillHisto::CheckGoodTrackletV0(Int_t detector, Int_t row, Int_t col) { // // See if we are not near a masked pad @@ -2122,7 +2135,7 @@ Int_t AliTRDCalibraFillHisto::ProcessEventDAQ(AliTRDrawStreamBase *rawStream, Bo fMCMPrevious = -1; fROBPrevious = -1; Int_t nbtimebin = 0; - Int_t baseline = 0; + Int_t baseline = 10; if(!nocheck){ @@ -2134,7 +2147,9 @@ Int_t AliTRDCalibraFillHisto::ProcessEventDAQ(AliTRDrawStreamBase *rawStream, Bo Int_t idetector = rawStream->GetDet(); // current detector Int_t imcm = rawStream->GetMCM(); // current MCM Int_t irob = rawStream->GetROB(); // current ROB - + + //printf("Detector %d\n",idetector); + if((fDetectorPreviousTrack != idetector) && (fDetectorPreviousTrack != -1)){ // Fill @@ -2160,9 +2175,11 @@ Int_t AliTRDCalibraFillHisto::ProcessEventDAQ(AliTRDrawStreamBase *rawStream, Bo if((fTimeMax != 0) && (nbtimebin != fTimeMax)) return 0; fTimeMax = nbtimebin; - baseline = rawStream->GetCommonAdditive(); // common additive baseline - - Int_t iTimeBin = rawStream->GetTimeBin(); // current time bin + //baseline = rawStream->GetCommonAdditive(); // common additive baseline + fNumberClustersf = fTimeMax; + fNumberClusters = (Int_t)(0.6*fTimeMax); + + Int_t *signal = rawStream->GetSignals(); // current ADC signal Int_t col = rawStream->GetCol(); Int_t row = rawStream->GetRow(); @@ -2171,11 +2188,8 @@ Int_t AliTRDCalibraFillHisto::ProcessEventDAQ(AliTRDrawStreamBase *rawStream, Bo //printf("detector %d, signal[0] %d, signal[1] %d, signal[2] %d, baseline %d\n",idetector,signal[0],signal[1],signal[2], baseline); - Int_t fin = TMath::Min(fTimeMax,(iTimeBin+3)); - Int_t n = 0; - for(Int_t itime = iTimeBin; itime < fin; itime++){ - phvalue[row][col][itime] = signal[n]-baseline; - n++; + for(Int_t itime = 0; itime < nbtimebin; itime++){ + phvalue[row][col][itime] = signal[itime]-baseline; } } @@ -2204,6 +2218,8 @@ Int_t AliTRDCalibraFillHisto::ProcessEventDAQ(AliTRDrawStreamBase *rawStream, Bo Int_t imcm = rawStream->GetMCM(); // current MCM Int_t irob = rawStream->GetROB(); // current ROB + //printf("Detector %d\n",idetector); + if((fDetectorPreviousTrack != idetector) && (fDetectorPreviousTrack != -1)){ // Fill @@ -2223,22 +2239,20 @@ Int_t AliTRDCalibraFillHisto::ProcessEventDAQ(AliTRDrawStreamBase *rawStream, Bo fMCMPrevious = imcm; fROBPrevious = irob; - baseline = rawStream->GetCommonAdditive(); // common baseline + //baseline = rawStream->GetCommonAdditive(); // common baseline fTimeMax = rawStream->GetNumberOfTimeBins(); // number of time bins read from data - Int_t iTimeBin = rawStream->GetTimeBin(); // current time bin + fNumberClustersf = fTimeMax; + fNumberClusters = (Int_t)(0.6*fTimeMax); Int_t *signal = rawStream->GetSignals(); // current ADC signal Int_t col = rawStream->GetCol(); Int_t row = rawStream->GetRow(); - Int_t fin = TMath::Min(fTimeMax,(iTimeBin+3)); - Int_t n = 0; - + //printf("detector %d, signal[0] %d, signal[1] %d, signal[2] %d, baseline %d\n",idetector,signal[0],signal[1],signal[2], baseline); - for(Int_t itime = iTimeBin; itime < fin; itime++){ - phvalue[row][col][itime] = signal[n]-baseline; - n++; + for(Int_t itime = 0; itime < fTimeMax; itime++){ + phvalue[row][col][itime] = signal[itime]-baseline; } } @@ -2286,7 +2300,7 @@ Int_t AliTRDCalibraFillHisto::ProcessEventDAQV1(AliTRDrawStreamBase *rawStream, fROBPrevious = -1; Int_t row = -1; Int_t nbtimebin = 0; - Int_t baseline = 0; + Int_t baseline = 10; if(!nocheck){ @@ -2332,23 +2346,20 @@ Int_t AliTRDCalibraFillHisto::ProcessEventDAQV1(AliTRDrawStreamBase *rawStream, if(nbtimebin == 0) return 0; if((fTimeMax != 0) && (nbtimebin != fTimeMax)) return 0; fTimeMax = nbtimebin; + fNumberClustersf = fTimeMax; + fNumberClusters = (Int_t)(0.6*fTimeMax); param->SetTimeRange(0,fTimeMax); - baseline = rawStream->GetCommonAdditive(); // common additive baseline + //baseline = rawStream->GetCommonAdditive(); // common additive baseline - Int_t iTimeBin = rawStream->GetTimeBin(); // current time bin Int_t *signal = rawStream->GetSignals(); // current ADC signal Int_t adc = rawStream->GetADC(); //printf("detector %d, signal[0] %d, signal[1] %d, signal[2] %d, baseline %d\n",idetector,signal[0],signal[1],signal[2], baseline); - - Int_t fin = TMath::Min(fTimeMax,(iTimeBin+3)); - Int_t n = 0; - for(Int_t itime = iTimeBin; itime < fin; itime++){ - mcm.SetADC(adc,itime,(signal[n]-baseline)); - n++; + for(Int_t itime = 0; itime < nbtimebin; itime++){ + mcm.SetADC(adc,itime,(signal[itime]-baseline)); } } @@ -2397,23 +2408,20 @@ Int_t AliTRDCalibraFillHisto::ProcessEventDAQV1(AliTRDrawStreamBase *rawStream, fMCMPrevious = imcm; fROBPrevious = irob; - baseline = rawStream->GetCommonAdditive(); // common baseline + //baseline = rawStream->GetCommonAdditive(); // common baseline fTimeMax = rawStream->GetNumberOfTimeBins(); // number of time bins read from data + fNumberClustersf = fTimeMax; + fNumberClusters = (Int_t)(0.6*fTimeMax); param->SetTimeRange(0,fTimeMax); - Int_t iTimeBin = rawStream->GetTimeBin(); // current time bin Int_t *signal = rawStream->GetSignals(); // current ADC signal Int_t adc = rawStream->GetADC(); - - Int_t fin = TMath::Min(fTimeMax,(iTimeBin+3)); - Int_t n = 0; - + //printf("detector %d, signal[0] %d, signal[1] %d, signal[2] %d, baseline %d\n",idetector,signal[0],signal[1],signal[2], baseline); - for(Int_t itime = iTimeBin; itime < fin; itime++){ - mcm.SetADC(adc,itime,(signal[n]-baseline)); - n++; + for(Int_t itime = 0; itime < fTimeMax; itime++){ + mcm.SetADC(adc,itime,(signal[itime]-baseline)); } } @@ -2612,12 +2620,12 @@ Int_t AliTRDCalibraFillHisto::UpdateHistogramcm(AliTRDmcmTracklet *trk) Int_t used = 1; - fGoodTracklet = kTRUE; + //fGoodTracklet = kTRUE; // Localisation of the Xbins involved Int_t idect = trk->GetDetector(); Int_t idectrue = trk->GetDetector(); - idect = 0; + //idect = 0; Int_t nbclusters = trk->GetNclusters(); @@ -2646,7 +2654,7 @@ Int_t AliTRDCalibraFillHisto::UpdateHistogramcm(AliTRDmcmTracklet *trk) Int_t time = trk->GetClusterTime(icl); Int_t col = trk->GetClusterCol(icl); - CheckGoodTracklet(idect,row,col); + //CheckGoodTrackletV0(idect,row,col); amp[0] = trk->GetClusterADC(icl)[0] * correction; amp[1] = trk->GetClusterADC(icl)[1] * correction; @@ -2729,13 +2737,14 @@ Int_t AliTRDCalibraFillHisto::FillDAQ(Double_t phvalue[16][144][36]){ Int_t idect = fDetectorPreviousTrack; + //printf("Enter Detector %d\n",fDetectorPreviousTrack); Double_t sum[36]; for(Int_t tb = 0; tb < 36; tb++){ sum[tb] = 0.0; } - fGoodTracklet = kTRUE; - fDetectorPreviousTrack = 0; + //fGoodTracklet = kTRUE; + //fDetectorPreviousTrack = 0; /////////////////////////// @@ -2778,8 +2787,8 @@ Int_t AliTRDCalibraFillHisto::FillDAQ(Double_t phvalue[16][144][36]){ //printf("imaxRow %d, imaxCol %d, fTimeMax %d, integralMax %f\n",imaxRow,imaxCol,fTimeMax, integralMax); if((imaxRow == 0) || (imaxCol == 0)) used=1; - CheckGoodTracklet(fDetectorPreviousTrack,imaxRow,imaxCol); - if(!fGoodTracklet) used = 1;; + //CheckGoodTrackletV0(fDetectorPreviousTrack,imaxRow,imaxCol); + //if(!fGoodTracklet) used = 1;; // ///////////////////////////////////////////////////// // sum ober 2 row and 4 pad cols for each time bins @@ -2856,6 +2865,8 @@ Int_t AliTRDCalibraFillHisto::FillDAQ(Double_t phvalue[16][144][36]){ //((TH2I *)GetCH2d()->Fill(sumcharge/30.0,fDetectorPreviousTrack)); used = 2; + //printf("Pass Detector %d\n",fDetectorPreviousTrack); + } return used; diff --git a/TRD/AliTRDCalibraFillHisto.h b/TRD/AliTRDCalibraFillHisto.h index 830e210a5ab..ff0906de6d9 100644 --- a/TRD/AliTRDCalibraFillHisto.h +++ b/TRD/AliTRDCalibraFillHisto.h @@ -263,7 +263,8 @@ AliTRDCalibraVector *GetCalibraVector() const { r // row col calibration groups stuff Bool_t LocalisationDetectorXbins(Int_t detector); Int_t CalculateTotalNumberOfBins(Int_t i); - void CheckGoodTracklet(Int_t detector, Int_t row, Int_t col); + void CheckGoodTrackletV0(Int_t detector, Int_t row, Int_t col); + void CheckGoodTrackletV1(AliTRDcluster *cl); Int_t CalculateCalibrationGroup(Int_t i, Int_t row, Int_t col) const; // LinearFitter -- 2.43.0