#include "AliAltroMapping.h"
#include "AliAltroRawStream.h"
#include "AliTPCROC.h"
-#include "AliTPCRawStreamFast.h"
#include "AliTPCRawStreamV3.h"
#include "AliTPCRawStream.h"
#include "AliLog.h"
fDebugLevel(0),
fStreamLevel(0),
fRunNumber(0),
+ fFirstTimeStamp(0),
+ fLastTimeStamp(0),
fTimeStamp(0),
fEventType(0),
fAltroL1Phase(0),
fNevents(calib.fNevents),
fDebugLevel(calib.fDebugLevel),
fStreamLevel(calib.fStreamLevel),
- fRunNumber(0),
+ fRunNumber(calib.fRunNumber),
+ fFirstTimeStamp(calib.fFirstTimeStamp),
+ fLastTimeStamp(calib.fLastTimeStamp),
fTimeStamp(0),
fEventType(0),
fAltroL1Phase(0),
return *this;
}
//_____________________________________________________________________
-Bool_t AliTPCCalibRawBase::ProcessEventFast(AliTPCRawStreamFast *rawStreamFast)
-{
- //
- // Event Processing loop - AliTPCRawStreamFast
- //
- ResetEvent();
- Bool_t withInput = kFALSE;
- while ( rawStreamFast->NextDDL() ){
- while ( rawStreamFast->NextChannel() ){
- Int_t isector = rawStreamFast->GetSector(); // current sector
- Int_t iRow = rawStreamFast->GetRow(); // current row
- Int_t iPad = rawStreamFast->GetPad(); // current pad
-
- while ( rawStreamFast->NextBunch() ){
- Int_t startTbin = (Int_t)rawStreamFast->GetStartTimeBin();
- Int_t endTbin = (Int_t)rawStreamFast->GetEndTimeBin();
- for (Int_t iTimeBin = startTbin; iTimeBin < endTbin; iTimeBin++){
- Float_t signal=(Float_t)rawStreamFast->GetSignals()[iTimeBin-startTbin];
- Update(isector,iRow,iPad,iTimeBin+1,signal);
- withInput = kTRUE;
- }
- }
- }
- }
- if (withInput){
- EndEvent();
- }
- return withInput;
-}
-//_____________________________________________________________________
-Bool_t AliTPCCalibRawBase::ProcessEventFast(AliRawReader *rawReader)
-{
- //
- // Event processing loop - AliRawReader
- //
- AliRawEventHeaderBase* eventHeader = (AliRawEventHeaderBase*)rawReader->GetEventHeader();
- if (eventHeader){
- fTimeStamp = eventHeader->Get("Timestamp");
- fRunNumber = eventHeader->Get("RunNb");
- fEventType = eventHeader->Get("Type");
- }
- AliTPCRawStreamFast *rawStreamFast = new AliTPCRawStreamFast(rawReader, (AliAltroMapping**)fMapping);
- Bool_t res=ProcessEventFast(rawStreamFast);
- delete rawStreamFast;
- return res;
-}
-//_____________________________________________________________________
-Bool_t AliTPCCalibRawBase::ProcessEvent(AliTPCRawStreamV3 *rawStreamV3)
+Bool_t AliTPCCalibRawBase::ProcessEvent(AliTPCRawStreamV3 * const rawStreamV3)
{
//
// Event Processing loop - AliTPCRawStreamV3
// fAltroRawStream = static_cast<AliAltroRawStream*>(rawStreamV3);
while ( rawStreamV3->NextDDL() ){
if (AliLog::GetGlobalDebugLevel()>2) rawStreamV3->PrintRCUTrailer();
+ fPrevDDLNum=-1;
+ fCurrRCUId=rawStreamV3->GetRCUId();
+ fCurrDDLNum=rawStreamV3->GetDDLNumber();
if (fUseL1Phase){
// fAltroL1Phase = fAltroRawStream->GetL1Phase();
fAltroL1Phase = rawStreamV3->GetL1Phase();
fAltroL1PhaseTB = (fAltroL1Phase*1e09/100.);
- AliDebug(1, Form("L1Phase: %.2e\n",fAltroL1PhaseTB));
+ AliDebug(1, Form("L1Phase: %.2e (%03d)\n",fAltroL1PhaseTB,fCurrDDLNum));
}
- fCurrRCUId=rawStreamV3->GetRCUId();
- fCurrDDLNum=rawStreamV3->GetDDLNumber();
+ UpdateDDL();
while ( rawStreamV3->NextChannel() ){
Int_t isector = rawStreamV3->GetSector(); // current sector
Int_t iRow = rawStreamV3->GetRow(); // current row
Int_t iPad = rawStreamV3->GetPad(); // current pad
while ( rawStreamV3->NextBunch() ){
- Int_t startTbin = (Int_t)rawStreamV3->GetStartTimeBin();
+ UInt_t startTbin = rawStreamV3->GetStartTimeBin();
// Int_t endTbin = (Int_t)rawStreamV3->GetEndTimeBin();
- Int_t bunchlength = (Int_t)rawStreamV3->GetBunchLength();
+ Int_t bunchlength = rawStreamV3->GetBunchLength();
const UShort_t *sig = rawStreamV3->GetSignals();
+ ProcessBunch(isector,iRow,iPad,bunchlength,startTbin,sig);
for (Int_t iTimeBin = 0; iTimeBin<bunchlength; iTimeBin++){
Float_t signal=(Float_t)sig[iTimeBin];
// printf("%02d - %03d - %03d - %04d: %.1f\n",isector,iRow,iPad,startTbin,signal);
return withInput;
}
//_____________________________________________________________________
-Bool_t AliTPCCalibRawBase::ProcessEvent(AliRawReader *rawReader)
+Bool_t AliTPCCalibRawBase::ProcessEvent(AliRawReader * const rawReader)
{
//
// Event processing loop - AliRawReader
fRunNumber = eventHeader->Get("RunNb");
fEventType = eventHeader->Get("Type");
}
+ if (!fFirstTimeStamp) fFirstTimeStamp=fTimeStamp;
+
AliTPCRawStreamV3 *rawStreamV3 = new AliTPCRawStreamV3(rawReader, (AliAltroMapping**)fMapping);
Bool_t res=ProcessEvent(rawStreamV3);
+
+ fLastTimeStamp=fTimeStamp;
+
delete rawStreamV3;
return res;
}
//_____________________________________________________________________
-Bool_t AliTPCCalibRawBase::ProcessEvent(AliTPCRawStream *rawStream)
+Bool_t AliTPCCalibRawBase::ProcessEvent(AliTPCRawStream * const rawStream)
{
//
// Event Processing loop - AliTPCRawStream
return withInput;
}
//_____________________________________________________________________
-Bool_t AliTPCCalibRawBase::ProcessEventOld(AliRawReader *rawReader)
+Bool_t AliTPCCalibRawBase::ProcessEventOld(AliRawReader * const rawReader)
{
//
// Event processing loop - AliRawReader
return ProcessEvent(&rawStream);
}
//_____________________________________________________________________
-Bool_t AliTPCCalibRawBase::ProcessEvent(eventHeaderStruct *event)
+Bool_t AliTPCCalibRawBase::ProcessEvent(eventHeaderStruct * const event)
{
//
// Event processing loop - date event
//
- AliRawReader *rawReader = new AliRawReaderDate((void*)event);
- Bool_t result=ProcessEvent(rawReader);
- delete rawReader;
- return result;
+
+ fRunNumber=event->eventRunNb;
+ fTimeStamp=event->eventTimestamp;
+ if (!fFirstTimeStamp) fFirstTimeStamp=fTimeStamp;
+ fLastTimeStamp=fTimeStamp;
+ fEventType=event->eventType;
+ AliRawReader *rawReader = new AliRawReaderDate((void*)event);
+ AliTPCRawStreamV3 *rawStreamV3 = new AliTPCRawStreamV3(rawReader, (AliAltroMapping**)fMapping);
+ Bool_t result=ProcessEvent(rawStreamV3);
+ delete rawStreamV3;
+ delete rawReader;
+ return result;
}
//_____________________________________________________________________
fDebugStreamer = new TTreeSRedirector(dsName.Data());
return fDebugStreamer;
}
+//_____________________________________________________________________
+void AliTPCCalibRawBase::MergeBase(const AliTPCCalibRawBase *calib)
+{
+ //
+ // merge this with base
+ //
+ if (calib->fFirstTimeStamp<fFirstTimeStamp) fFirstTimeStamp=calib->fFirstTimeStamp;
+ if (calib->fLastTimeStamp>fLastTimeStamp) fLastTimeStamp =calib->fLastTimeStamp;
+}
+