#include "./Cal/AliTRDCalPad.h"
#include "./Cal/AliTRDCalSingleChamberStatus.h"
-#include "AliTRDrawFastStream.h"
#include "AliTRDdigitsManager.h"
#include "AliTRDdigitsParam.h"
#include "AliTRDSignalIndex.h"
#include "AliTRDarrayADC.h"
#include "AliTRDfeeParam.h"
+#include "AliTRDrawStream.h"
+
#ifdef ALI_DATE
#include "event.h"
#endif
}
//_____________________________________________________________________
+
Int_t AliTRDCalibPadStatus::ProcessEvent2(AliRawReader *rawReader)
{
+ //
+ // RawReader = AliTRDrawStream (Jochen Klein)
//
// Event Processing loop - AliTRDRawStreamCosmic
// 0 time bin problem or zero suppression
// 2,4 and [32,63] zero suppressed
//
- Int_t withInput = 1;
+
- AliTRDrawFastStream *rawStream = new AliTRDrawFastStream(rawReader);
- rawStream->SetSharedPadReadout(kTRUE);
+ Int_t withInput = 1;
AliTRDdigitsManager *digitsManager = new AliTRDdigitsManager(kTRUE);
digitsManager->CreateArrays();
+
+ AliTRDrawStream *rawStream = new AliTRDrawStream(rawReader);
+ rawStream->SetDigitsManager(digitsManager);
+ //rawStream->SetNoErrorWarning();
+ //rawStream->SetSharedPadReadout(kTRUE);
AliTRDfeeParam *feeParam = AliTRDfeeParam::Instance();
Int_t det = 0;
while ((det = rawStream->NextChamber(digitsManager, NULL, NULL)) >= 0) { //idetector
if (digitsManager->GetIndexes(det)->HasEntry()) {//QA
- // printf("there is ADC data on this chamber!\n");
+ // printf("there is ADC data on this chamber!\n");
AliTRDarrayADC *digits = (AliTRDarrayADC *) digitsManager->GetDigits(det); //mod
if (digits->HasData()) { //array
Int_t iRow = 0;
Int_t iCol = 0;
indexes->ResetCounters();
-
+
while (indexes->NextRCIndex(iRow, iCol)) { //column,row
-
-
+
AliTRDdigitsParam *digitParam = (AliTRDdigitsParam *)digitsManager->GetDigitsParam();
Int_t mcm = 0; // MCM from AliTRDfeeParam
Int_t rob = 0; // ROB from AliTRDfeeParam
- Int_t extCol = 0; // extended column from AliTRDfeeParam
+ Int_t extCol = 0; // extended column from AliTRDfeeParam
mcm = feeParam->GetMCMfromPad(iRow,iCol);
rob = feeParam->GetROBfromPad(iRow,iCol);
-
+
Int_t idetector = det; // current detector
- Int_t iRowMax = rawStream->GetMaxRow(); // current rowmax
-
+ Int_t iRowMax = 16; // current rowmax
+ if(GetStack(det) == 2) iRowMax = 12;
+
Int_t adc = 20 - (iCol%18) -1; // current adc
Int_t col = 0; // col!=0 ->Shared Pad
extCol = feeParam->GetExtendedPadColFromADC(rob,mcm,adc);
//printf(" iCol %d iRow %d iRowMax %d rob %d mcm %d adc %d extCol %d\n",iCol,iRow,iRowMax,rob,mcm,adc,extCol);
// Signal for regular pads
- Int_t nbtimebin = digitParam->GetNTimeBins(); // number of time bins read from data
+ Int_t nbtimebin = digitParam->GetNTimeBins(idetector); // number of time bins read from data
for(Int_t k = 0; k < nbtimebin; k++){
Short_t signal = 0;
signal = digits->GetData(iRow,iCol,k);
-
+
if(signal>0) {
UpdateHisto2(idetector,iRow,iCol,signal,iRowMax,col,mcm,rob);
}
}
-
- if((adc==3-1 || adc==20-1 || adc==19-1) && (iCol > 1 && iCol <142) /* && fSharedPadsOn*/ ) { //SHARED PADS
+
+ if((adc==3-1 || adc==20-1 || adc==19-1) && (iCol > 1 && iCol <142) ) { //SHARED PADS
+
+ switch(adc) {
+ case 2:
+ adc = 20; //shared Pad adc
+ mcm = feeParam->GetMCMfromSharedPad(iRow,iCol); //shared Pad mcm
+ col = 1;
+ break;
+ case 19:
+ adc = 1; //shared Pad adc
+ mcm = feeParam->GetMCMfromSharedPad(iRow,iCol); //shared Pad mcm
+ col = 2;
+ break;
+ case 18:
+ adc = 0; //shared Pad adc
+ mcm = feeParam->GetMCMfromSharedPad(iRow,iCol); //shared Pad mcm
+ col = 3;
+ break;
+ }
+ rob = feeParam->GetROBfromSharedPad(iRow,iCol); //shared Pad rob
- switch(adc) {
- case 2:
- adc = 20; //shared Pad adc
- mcm = feeParam->GetMCMfromSharedPad(iRow,iCol); //shared Pad mcm
- col = 1;
- break;
- case 19:
- adc = 1; //shared Pad adc
- mcm = feeParam->GetMCMfromSharedPad(iRow,iCol); //shared Pad mcm
- col = 2;
- break;
- case 18:
- adc = 0; //shared Pad adc
- mcm = feeParam->GetMCMfromSharedPad(iRow,iCol); //shared Pad mcm
- col = 3;
- break;
- }
- rob = feeParam->GetROBfromSharedPad(iRow,iCol); //shared Pad rob
-
extCol = feeParam->GetExtendedPadColFromADC(rob,mcm,adc); //extended pad col via the shared pad rob,mcm and adc
}
}
} //shared pads end
-
+
withInput = 2;
}//column,row
delete digitsManager;
delete rawStream;
return withInput;
+
}
+
//_____________________________________________________________________
Bool_t AliTRDCalibPadStatus::TestEventHisto(Int_t nevent, Int_t sm, Int_t ch) /*FOLD00*/
{
// if we are forced and histogram doesn't yes exist create it
Char_t name[255], title[255];
- sprintf(name,"hCalib%s%.3d",type,det);
- sprintf(title,"%s calibration histogram detector %.2d;ADC channel;Channel (pad)",type,det);
+ snprintf(name,255,"hCalib%s%.3d",type,det);
+ snprintf(title,255,"%s calibration histogram detector %.2d;ADC channel;Channel (pad)",type,det);
Int_t nbchannels = fGeo->GetRowMax(GetLayer(det),GetStack(det),GetSector(det))*fGeo->GetColMax(GetLayer(det));