Using new factory method AliRawReader::Create whenever possible
authorlaphecet <laphecet@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 22 Apr 2008 13:01:12 +0000 (13:01 +0000)
committerlaphecet <laphecet@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 22 Apr 2008 13:01:12 +0000 (13:01 +0000)
MUON/MUONOfflineShift.C
MUON/MUONRawStreamTracker.C
MUON/MUONRawStreamTrigger.C
MUON/MUONTimeRawStreamTracker.C

index f4b168c..e5d50d4 100644 (file)
@@ -50,8 +50,6 @@
 #include "AliMpConstants.h"
 #include "AliMpDEIterator.h"
 #include "AliRawReader.h"
-#include "AliRawReaderDate.h"
-#include "AliRawReaderRoot.h"
 #include <Riostream.h>
 #include <TFile.h>
 #include <TGrid.h>
@@ -68,7 +66,8 @@ Int_t DataMakerReading(const char* input,
                        const char* calibMode="",
                        Bool_t histogram=kFALSE,
                        Double_t xmin = 0.0,
-                       Double_t xmax = 4096.0)
+                       Double_t xmax = 4096.0,
+                       Bool_t fastDecoder=kFALSE)
 {
   /// Run over the data and calibrate it if so required (if cdbPath != "")
   /// calibMode can be :
@@ -78,17 +77,7 @@ Int_t DataMakerReading(const char* input,
   
   TString fileName(gSystem->ExpandPathName(input));
   
-  AliRawReader* rawReader(0x0);
-  
-  // check extention to choose the rawdata file format
-  if (fileName.EndsWith(".root")) 
-  {
-    rawReader = new AliRawReaderRoot(fileName);
-  }
-  else if (!fileName.IsNull()) 
-  {
-    rawReader = new AliRawReaderDate(fileName); // DATE file
-  }
+  AliRawReader* rawReader = AliRawReader::Create(fileName.Data());
   
   if (!rawReader) return 0;
   
@@ -100,7 +89,7 @@ Int_t DataMakerReading(const char* input,
   }
   else  
   {
-    dm = new AliMUONTrackerRawDataMaker(rawReader,kTRUE);
+    dm = new AliMUONTrackerRawDataMaker(rawReader,histogram,fastDecoder);
   }
   
   AliMUONPainterRegistry::Instance()->Register(dm);
@@ -231,19 +220,23 @@ void MUONOfflineShift(const char* input="alien:///alice/data/2008/LHC08a/0000219
   AliCDBManager::Instance()->SetRun(0);
   AliMpCDB::LoadDDLStore();
   
+  TStopwatch timer0;
   TStopwatch timer1;
   TStopwatch timer2;
   TStopwatch timer3;
   TStopwatch timer4;
   
-  Int_t n1 = DataMakerReading(input,timer1);
-  
+  Int_t n0 = DataMakerReading(input,timer0,"","",kTRUE,0,0,kFALSE); // using old decoder
+
+  Int_t n1 = DataMakerReading(input,timer1,"","",kTRUE,0,0,kTRUE); // using new decoder
+
   Int_t n2 = DataMakerReading(input,timer2,ocdbPath,"NOGAIN",kTRUE);
 
   Int_t n3 = DataMakerReading(input,timer3,ocdbPath,"GAINCONSTANTCAPA",kTRUE);
 
   Int_t n4 = DataMakerReading(input,timer4,ocdbPath,"GAIN",kTRUE);
 
+  Print("DataMakerReading(HRAW)",timer0,n0);  
   Print("DataMakerReading(HRAW)",timer1,n1);  
   Print("DataMakerReading(HCALZ)",timer2,n2);
   Print("DataMakerReading(HCALG)",timer3,n3);
@@ -264,4 +257,6 @@ void MUONOfflineShift(const char* input="alien:///alice/data/2008/LHC08a/0000219
   
   f.Close();
   
+  AliCodeTimer::Instance()->Print();
+
 }
index 8f98aa3..8e5d662 100644 (file)
@@ -44,9 +44,7 @@
 #if !defined(__CINT__) || defined(__MAKECINT__)
 
 // RAW includes
-#include "AliRawReaderDate.h"
-#include "AliRawReaderFile.h"
-#include "AliRawReaderRoot.h"
+#include "AliRawReader.h"
 
 // MUON includes
 #include "AliMUONRawStreamTracker.h"
@@ -69,16 +67,7 @@ void MUONRawStreamTrackerExpert(TString fileName = "./", Int_t maxEvent = 1000,
   TStopwatch timer;
   timer.Start(kTRUE);
   
-  AliRawReader* rawReader = 0x0;
-  
-  // check extention to choose the rawdata file format
-  if (fileName.EndsWith("/")) {
-    rawReader = new AliRawReaderFile(fileName); // DDL files
-  } else if (fileName.EndsWith(".root")) {
-    rawReader = new AliRawReaderRoot(fileName);
-  } else if (!fileName.IsNull()) {
-    rawReader = new AliRawReaderDate(fileName); // DATE file
-  }
+  AliRawReader* rawReader = AliRawReader::Create(fileName.Data());
   
   // raw stream
   AliMUONRawStreamTracker* rawStream  = new AliMUONRawStreamTracker(rawReader);    
@@ -174,16 +163,7 @@ void MUONRawStreamTrackerHPExpert(TString fileName = "./", Int_t maxEvent = 1000
   TStopwatch timer;
   timer.Start(kTRUE);
   
-  AliRawReader* rawReader = 0x0;
-  
-  // check extention to choose the rawdata file format
-  if (fileName.EndsWith("/")) {
-    rawReader = new AliRawReaderFile(fileName); // DDL files
-  } else if (fileName.EndsWith(".root")) {
-    rawReader = new AliRawReaderRoot(fileName);
-  } else if (!fileName.IsNull()) {
-    rawReader = new AliRawReaderDate(fileName); // DATE file
-  }
+  AliRawReader* rawReader = AliRawReader::Create(fileName.Data());
   
   // raw stream
   AliMUONRawStreamTrackerHP* rawStream  = new AliMUONRawStreamTrackerHP(rawReader);
@@ -265,16 +245,7 @@ void MUONRawStreamTrackerHPExpert2(TString fileName = "./", Int_t maxEvent = 100
   TStopwatch timer;
   timer.Start(kTRUE);
   
-  AliRawReader* rawReader = 0x0;
-  
-  // check extention to choose the rawdata file format
-  if (fileName.EndsWith("/")) {
-    rawReader = new AliRawReaderFile(fileName); // DDL files
-  } else if (fileName.EndsWith(".root")) {
-    rawReader = new AliRawReaderRoot(fileName);
-  } else if (!fileName.IsNull()) {
-    rawReader = new AliRawReaderDate(fileName); // DATE file
-  }
+  AliRawReader* rawReader = AliRawReader::Create(fileName.Data());
   
   // raw stream
   AliMUONRawStreamTrackerHP* rawStream  = new AliMUONRawStreamTrackerHP(rawReader);
@@ -356,16 +327,7 @@ void MUONRawStreamTrackerHPExpert3(TString fileName = "./", Int_t maxEvent = 100
   TStopwatch timer;
   timer.Start(kTRUE);
   
-  AliRawReader* rawReader = 0x0;
-  
-  // check extention to choose the rawdata file format
-  if (fileName.EndsWith("/")) {
-    rawReader = new AliRawReaderFile(fileName); // DDL files
-  } else if (fileName.EndsWith(".root")) {
-    rawReader = new AliRawReaderRoot(fileName);
-  } else if (!fileName.IsNull()) {
-    rawReader = new AliRawReaderDate(fileName); // DATE file
-  }
+  AliRawReader* rawReader = AliRawReader::Create(fileName.Data());
   
   // raw stream
   AliMUONRawStreamTrackerHP* rawStream  = new AliMUONRawStreamTrackerHP(rawReader);
@@ -450,16 +412,7 @@ void MUONRawStreamTrackerSimple(TString fileName = "./", Int_t maxEvent = 1000)
   TStopwatch timer;
   timer.Start(kTRUE);
   
-  AliRawReader* rawReader = 0x0;
-  
-  // check extention to choose the rawdata file format
-  if (fileName.EndsWith("/")) {
-    rawReader = new AliRawReaderFile(fileName); // DDL files
-  } else if (fileName.EndsWith(".root")) {
-    rawReader = new AliRawReaderRoot(fileName);
-  } else if (!fileName.IsNull()) {
-    rawReader = new AliRawReaderDate(fileName); // DATE file
-  }
+  AliRawReader* rawReader = AliRawReader::Create(fileName.Data());
   
   // raw stream
   AliMUONRawStreamTracker* rawStream  = new AliMUONRawStreamTracker(rawReader);    
@@ -500,16 +453,7 @@ void MUONRawStreamTrackerHPSimple(TString fileName = "./", Int_t maxEvent = 1000
   TStopwatch timer;
   timer.Start(kTRUE);
   
-  AliRawReader* rawReader = 0x0;
-  
-  // check extention to choose the rawdata file format
-  if (fileName.EndsWith("/")) {
-    rawReader = new AliRawReaderFile(fileName); // DDL files
-  } else if (fileName.EndsWith(".root")) {
-    rawReader = new AliRawReaderRoot(fileName);
-  } else if (!fileName.IsNull()) {
-    rawReader = new AliRawReaderDate(fileName); // DATE file
-  }
+  AliRawReader* rawReader = AliRawReader::Create(fileName.Data());
   
   // raw stream
   AliMUONRawStreamTrackerHP* rawStream  = new AliMUONRawStreamTrackerHP(rawReader);    
@@ -550,16 +494,7 @@ void MUONRawStreamTrackerHPSimple2(TString fileName = "./", Int_t maxEvent = 100
   TStopwatch timer;
   timer.Start(kTRUE);
   
-  AliRawReader* rawReader = 0x0;
-  
-  // check extention to choose the rawdata file format
-  if (fileName.EndsWith("/")) {
-    rawReader = new AliRawReaderFile(fileName); // DDL files
-  } else if (fileName.EndsWith(".root")) {
-    rawReader = new AliRawReaderRoot(fileName);
-  } else if (!fileName.IsNull()) {
-    rawReader = new AliRawReaderDate(fileName); // DATE file
-  }
+  AliRawReader* rawReader = AliRawReader::Create(fileName.Data());
   
   // raw stream
   AliMUONRawStreamTrackerHP* rawStream  = new AliMUONRawStreamTrackerHP(rawReader);    
index 402befb..74e4bcd 100644 (file)
@@ -36,9 +36,7 @@
 #if !defined(__CINT__) || defined(__MAKECINT__)
 
 // RAW includes
-#include "AliRawReaderDate.h"
-#include "AliRawReaderFile.h"
-#include "AliRawReaderRoot.h"
+#include "AliRawReader.h"
 
 // MUON includes
 #include "AliMUONRawStreamTrigger.h"
@@ -61,15 +59,8 @@ void MUONRawStreamTrigger(Int_t maxEvent = 1, Int_t minDDL = 0, Int_t maxDDL = 1
    TStopwatch timer;
    timer.Start(kTRUE);
 
-   AliRawReader* rawReader = 0x0;
+   AliRawReader* rawReader = AliRawReader::Create(fileName.Data());
 
-   if (fileName.EndsWith("/")) {
-     rawReader = new AliRawReaderFile(fileName);// DDL files
-   } else if (fileName.EndsWith(".root")) {
-     rawReader = new AliRawReaderRoot(fileName);
-   } 
-    
-   
    // Load mapping
      if ( ! AliMpCDB::LoadDDLStore() ) {
        printf("Could not access mapping from OCDB !\n");
index f2bc644..e3366ce 100644 (file)
@@ -37,6 +37,8 @@
 
 #if !defined(__CINT__) || defined(__MAKECINT__)
 
+#include "AliCodeTimer.h"
+
 // MUON includes
 #include "AliMUONRawStreamTracker.h"
 #include "AliMUONRawStreamTrackerHP.h"
@@ -46,9 +48,7 @@
 #include "AliMUONDDLTracker.h"
 
 // RAW includes
-#include "AliRawReaderDate.h"
-#include "AliRawReaderFile.h"
-#include "AliRawReaderRoot.h"
+#include "AliRawReader.h"
 #include "AliRawReaderMemory.h"
 #include "AliRawDataHeader.h"
 
@@ -82,21 +82,7 @@ UInt_t LoadFiles(AliBufferInfo*& list, TString fileName = "./", Int_t maxEvent =
 {
        /// Reads in the DDL files into memory buffers as a linked list.
 
-       AliRawReader* rawReader = NULL;
-  
-       // check extention to choose the rawdata file format
-       if (fileName.EndsWith("/"))
-       {
-               rawReader = new AliRawReaderFile(fileName); // DDL files
-       }
-       else if (fileName.EndsWith(".root"))
-       {
-               rawReader = new AliRawReaderRoot(fileName);
-       }
-       else if (!fileName.IsNull())
-       {
-               rawReader = new AliRawReaderDate(fileName); // DATE file
-       }
+       AliRawReader* rawReader = AliRawReader::Create(fileName.Data()); 
 
        if (rawReader == NULL)
        {
@@ -318,6 +304,62 @@ Double_t TimeUsingNewDecoderOldInterface(AliBufferInfo* list, AliDigitInfo* buff
        return timer.RealTime();
 }
 
+void Loop(const char* filename, Bool_t newDecoder)
+{
+  AliCodeTimerAutoGeneral(Form("Loop %s",(newDecoder ? "NEW":"OLD")));
+  
+  AliRawReader* reader = AliRawReader::Create(filename);
+  
+  AliMUONVRawStreamTracker* stream;
+  
+  if ( newDecoder ) 
+  {
+    stream = new AliMUONRawStreamTrackerHP(reader);
+  }
+  else
+  {
+    stream = new AliMUONRawStreamTracker(reader);
+  }
+
+  Int_t busPatch;
+  UShort_t manuId, adc;
+  UChar_t manuChannel;
+  
+  while ( reader->NextEvent() ) 
+  {
+    stream->First();
+    
+    while ( stream->Next(busPatch,manuId,manuChannel,adc) ) 
+    {
+      adc *= 2;
+    }
+  }
+  
+  delete stream;
+  delete reader;
+}
+
+void MUONTimeRawStreamTrackerDumb(TString fileName)
+{
+  AliCodeTimer::Instance()->Reset();
+  
+  // first check we can open the stream
+  AliRawReader* reader = AliRawReader::Create(fileName.Data());
+  if (!reader)
+  {
+    cerr << "Cannot create reader from " << fileName.Data() << endl;
+    return;
+  }
+  delete reader;
+  
+  // now start the timing per se
+  
+  Loop(fileName,kFALSE);
+  
+  Loop(fileName,kTRUE);
+  
+  AliCodeTimer::Instance()->Print();
+}
 
 void MUONTimeRawStreamTracker(TString fileName = "./", Int_t maxEvent = 1000)
 {