]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCCalibRawBase.cxx
Script supersceeded by AliForwarddNdetaTask.C and
[u/mrichter/AliRoot.git] / TPC / AliTPCCalibRawBase.cxx
index a28b1270be522d35290c4afd98fe46c3fabad82b..561cf5126bbc837db7ebe14d5766be670c6fce88 100644 (file)
@@ -53,6 +53,8 @@ AliTPCCalibRawBase::AliTPCCalibRawBase() :
   fDebugLevel(0),
   fStreamLevel(0),
   fRunNumber(0),
+  fFirstTimeStamp(0),
+  fLastTimeStamp(0),
   fTimeStamp(0),
   fEventType(0),
   fAltroL1Phase(0),
@@ -80,7 +82,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,7 +124,7 @@ AliTPCCalibRawBase::~AliTPCCalibRawBase()
     return *this;
   }
 //_____________________________________________________________________
-Bool_t AliTPCCalibRawBase::ProcessEventFast(AliTPCRawStreamFast *rawStreamFast)
+Bool_t AliTPCCalibRawBase::ProcessEventFast(AliTPCRawStreamFast * const rawStreamFast)
 {
   //
   // Event Processing loop - AliTPCRawStreamFast
@@ -150,7 +154,7 @@ Bool_t AliTPCCalibRawBase::ProcessEventFast(AliTPCRawStreamFast *rawStreamFast)
   return withInput;
 }
 //_____________________________________________________________________
-Bool_t AliTPCCalibRawBase::ProcessEventFast(AliRawReader *rawReader)
+Bool_t AliTPCCalibRawBase::ProcessEventFast(AliRawReader * const rawReader)
 {
   //
   //  Event processing loop - AliRawReader
@@ -161,13 +165,16 @@ Bool_t AliTPCCalibRawBase::ProcessEventFast(AliRawReader *rawReader)
     fRunNumber = eventHeader->Get("RunNb");
     fEventType = eventHeader->Get("Type");
   }
+  if (!fFirstTimeStamp) fFirstTimeStamp=fTimeStamp;
+  fLastTimeStamp=fTimeStamp;
+  
   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 +186,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 +223,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 +234,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 +282,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 +299,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 +360,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;
+}
+