]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCCalibRawBase.cxx
Updates in the ITSsa track QA plotting (Leonardo)
[u/mrichter/AliRoot.git] / TPC / AliTPCCalibRawBase.cxx
index a28b1270be522d35290c4afd98fe46c3fabad82b..3e2ddb4fe98b023e890deca5818d82e16e0a4359 100644 (file)
@@ -34,7 +34,6 @@
 #include "AliAltroMapping.h"
 #include "AliAltroRawStream.h"
 #include "AliTPCROC.h"
-#include "AliTPCRawStreamFast.h"
 #include "AliTPCRawStreamV3.h"
 #include "AliTPCRawStream.h"
 #include "AliLog.h"
@@ -53,6 +52,8 @@ AliTPCCalibRawBase::AliTPCCalibRawBase() :
   fDebugLevel(0),
   fStreamLevel(0),
   fRunNumber(0),
+  fFirstTimeStamp(0),
+  fLastTimeStamp(0),
   fTimeStamp(0),
   fEventType(0),
   fAltroL1Phase(0),
@@ -80,7 +81,9 @@ AliTPCCalibRawBase::AliTPCCalibRawBase(const AliTPCCalibRawBase &calib) :
   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),
@@ -120,54 +123,7 @@ AliTPCCalibRawBase::~AliTPCCalibRawBase()
     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
@@ -179,23 +135,26 @@ Bool_t AliTPCCalibRawBase::ProcessEvent(AliTPCRawStreamV3 *rawStreamV3)
 //   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);
@@ -213,7 +172,7 @@ Bool_t AliTPCCalibRawBase::ProcessEvent(AliTPCRawStreamV3 *rawStreamV3)
   return withInput;
 }
 //_____________________________________________________________________
-Bool_t AliTPCCalibRawBase::ProcessEvent(AliRawReader *rawReader)
+Bool_t AliTPCCalibRawBase::ProcessEvent(AliRawReader * const rawReader)
 {
   //
   //  Event processing loop - AliRawReader
@@ -224,13 +183,18 @@ Bool_t AliTPCCalibRawBase::ProcessEvent(AliRawReader *rawReader)
     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
@@ -267,7 +231,7 @@ Bool_t AliTPCCalibRawBase::ProcessEvent(AliTPCRawStream *rawStream)
   return withInput;
 }
 //_____________________________________________________________________
-Bool_t AliTPCCalibRawBase::ProcessEventOld(AliRawReader *rawReader)
+Bool_t AliTPCCalibRawBase::ProcessEventOld(AliRawReader * const rawReader)
 {
   //
   //  Event processing loop - AliRawReader
@@ -284,15 +248,23 @@ Bool_t AliTPCCalibRawBase::ProcessEventOld(AliRawReader *rawReader)
   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;
 
 }
 //_____________________________________________________________________
@@ -337,3 +309,13 @@ TTreeSRedirector *AliTPCCalibRawBase::GetDebugStreamer(){
   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;
+}
+