]> 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 ae46f50c88a68f4f55bcb93605c8f1038b59d642..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
@@ -194,10 +150,11 @@ Bool_t AliTPCCalibRawBase::ProcessEvent(AliTPCRawStreamV3 *rawStreamV3)
       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);
@@ -215,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
@@ -226,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
@@ -269,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
@@ -286,7 +248,7 @@ 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
@@ -294,6 +256,8 @@ Bool_t AliTPCCalibRawBase::ProcessEvent(eventHeaderStruct *event)
 
   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);
@@ -345,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;
+}
+