Possibility to specify event selection criteria within the raw-data input URI. The...
authorcvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 18 Jul 2008 16:26:30 +0000 (16:26 +0000)
committercvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 18 Jul 2008 16:26:30 +0000 (16:26 +0000)
12 files changed:
HLT/rec/AliRawReaderHLT.cxx
HLT/rec/AliRawReaderHLT.h
HLT/sim/AliHLTSimulation.cxx
ITS/AliITSBeamTestDigitizer.cxx
ITS/AliITSFindClustersV2.C
ITS/AliITSHandleDaSSD.cxx
ITS/ITSSDDQA.C
ITS/ITSSDDQAMaker.C
RAW/AliRawReader.cxx
RAW/AliRawReader.h
STEER/AliSimulation.cxx
TRD/Macros/AliTRDanalyzeBlackEventsLHC.C

index 51f5d1c..9532307 100644 (file)
@@ -407,6 +407,7 @@ void AliRawReaderHLT::SkipInvalid(Bool_t skip)
   fpParentReader->SkipInvalid(skip);
 }
 
+/*
 void AliRawReaderHLT::SelectEvents(Int_t type)
 {
   // see header file for class documentation
@@ -415,6 +416,7 @@ void AliRawReaderHLT::SelectEvents(Int_t type)
   AliRawReader::SelectEvents(type);
   fpParentReader->SelectEvents(type);
 }
+*/
 
 int AliRawReaderHLT::ScanOptions(const char* options)
 {
index 760bafd..42985e5 100644 (file)
@@ -99,7 +99,7 @@ class AliRawReaderHLT : public AliRawReader, public AliHLTReconstructorBase {
                           Int_t minEquipmentId = -1, 
                           Int_t maxEquipmentId = -1);
   void     SkipInvalid(Bool_t skip = kTRUE);
-  void     SelectEvents(Int_t type);
+  //  void     SelectEvents(Int_t type);
 
   UInt_t   GetType() const;
   UInt_t   GetRunNumber() const;
index f29b2d1..600cc05 100644 (file)
@@ -123,7 +123,6 @@ int AliHLTSimulation::Init(AliRunLoader* pRunLoader, const char* options)
        } else if (!param.IsNull()) {
          AliInfo(Form("creating AliRawReaderDate (%s)", param.Data()));
          fpRawReader = new AliRawReaderDate(param);
-         fpRawReader->SelectEvents(7);
        }
        if (fpRawReader) {
            fpRawReader->RewindEvents();
index b1ac155..b30f8bd 100644 (file)
@@ -198,8 +198,11 @@ void AliITSBeamTestDigitizer::ExecDigitization(){
  
   AliRawReader* rd;
 
-  if(GetOptDate()) rd = new AliRawReaderDate(fRawdataFileName,fEvIn);
-  else rd = new AliRawReaderRoot(fRawdataFileName,fEvIn);
+
+  TString strFile = fRawdataFileName;
+  strFile += Form("?EventType=%d",fDATEEvType);
+  if(GetOptDate()) rd = new AliRawReaderDate(strFile.Data(),fEvIn);
+  else rd = new AliRawReaderRoot(strFile.Data(),fEvIn);
 
   AliHeader* header = fRunLoader->GetHeader();
   Int_t iev=fEvIn-1;
@@ -219,7 +222,6 @@ void AliITSBeamTestDigitizer::ExecDigitization(){
     fRunLoader->SetEventNumber(iev);
    
     rd->RequireHeader(fFlagHeader);
-    rd->SelectEvents(fDATEEvType);
  
     digSDD->SetRawReader(rd);
     digSPD->SetRawReader(rd);
index 87f5946..eb08cf9 100644 (file)
@@ -78,7 +78,6 @@ Int_t AliITSFindClustersV2(char *inputRawData = NULL,TString filename="galice.ro
     else {
       cout<<"Raw data format - DATE file \n";
       rawreader = new AliRawReaderDate(fileRaw);  // DATE format
-      rawreader->SelectEvents(7);
     }
     //    if (!fEquipIdMap.IsNull() && fRawReader)fRawReader->LoadEquipmentIdsMap(fEquipIdMap);
     Reconstruct(rl,rawreader,opt);
index f7bb273..a0ca0ea 100644 (file)
@@ -256,7 +256,6 @@ Bool_t AliITSHandleDaSSD::Init(Char_t *rdfname)
     rawreaderdate->RewindEvents();
   } else { MakeZombie(); return kFALSE; }
   if (fModules) Reset();
-  rawreaderdate->SelectEvents(-1);
   rawreaderdate->Select("ITSSSD");  
   nofstrips = 0;
   while (rawreaderdate->NextEvent()) {
@@ -508,7 +507,6 @@ Int_t AliITSHandleDaSSD::ReadModuleRawData (const Int_t modulesnumber)
   if (!fDDLModuleMap) if (!ReadDDLModuleMap()) AliWarning("DDL map is not defined, ModuleID will be set to 0!");
   stream = new AliITSRawStreamSSD(rawreaderdate);
   stream->Setv11HybridDDLMapping();
-  rawreaderdate->SelectEvents(-1);
   modind = 0;
   while (rawreaderdate->NextEvent()) {
     if ((rawreaderdate->GetType() != PHYSICS_EVENT) && (rawreaderdate->GetType() != CALIBRATION_EVENT)) continue;
index cd8ed45..10e0c6a 100644 (file)
@@ -57,7 +57,9 @@ for(Int_t imod=0; imod<nSDDmodules;imod++){
 }
 delete [] cindex;
 
-  AliRawReader *rd = new AliRawReaderDate(iFile,FirstEvt);  // open run
+  TString strFile = iFile;
+  strFile += "?EventType=7";
+  AliRawReader *rd = new AliRawReaderDate(strFile.Data(),FirstEvt);  // open run
   Int_t evCounter = 0;
 
   //AliITS *itsRun = new AliITS();
@@ -75,7 +77,6 @@ delete [] cindex;
      cout << "Read Event: " << evCounter+FirstEvt-1 << endl;
 
     rd->RequireHeader(kFALSE);             
-    rd->SelectEvents(7);                   // read only events with the given type. no selection is applied if a value < 0 is used. 
 
     rd->SelectEquipment(17,eqOffset+1,eqOffset+DDLid_range);
 
index 50b9fc4..b673f07 100644 (file)
@@ -50,7 +50,9 @@ Char_t *hisnam3 = new Char_t[50];
    }
  }
 
-  AliRawReader *rd = new AliRawReaderDate(iFile,FirstEvt);  // open run
+  TString strFile = iFile;
+  strFile += "?EventType=7";
+  AliRawReader *rd = new AliRawReaderDate(strFile.Data(),FirstEvt);  // open run
   Int_t evCounter = 0;
   Int_t eqOffset = 256;
   Int_t DDLid_range = 24;
@@ -59,7 +61,6 @@ Char_t *hisnam3 = new Char_t[50];
     cout << "Read Event: " << evCounter+FirstEvt-1 << endl;
 
     rd->RequireHeader(kFALSE);             
-    rd->SelectEvents(7);                  
     rd->SelectEquipment(17,eqOffset+1,eqOffset+DDLid_range);  //17 states for "DRorc acquisition"
     rd->Reset();                           // reset the current position to the beginning of the event
  
index 9656644..6833844 100644 (file)
@@ -184,20 +184,23 @@ AliRawReader* AliRawReader::Create(const char *uri)
     return NULL;
   }
 
+  TObjArray *fields = strURI.Tokenize("?");
+  TString &fileURI = ((TObjString*)fields->At(0))->String();
+
   AliRawReader *rawReader = NULL;
-  if (!strURI.BeginsWith("mem://")) {
-    AliInfoClass(Form("Creating raw-reader in order to read raw-data file: %s",strURI.Data()));
-    if (strURI.EndsWith("/")) {
-      rawReader = new AliRawReaderFile(strURI);
-    } else if (strURI.EndsWith(".root")) {
-      rawReader = new AliRawReaderRoot(strURI);
+  if (!fileURI.BeginsWith("mem://")) {
+    AliInfoClass(Form("Creating raw-reader in order to read raw-data file: %s",fileURI.Data()));
+    if (fileURI.EndsWith("/")) {
+      rawReader = new AliRawReaderFile(fileURI);
+    } else if (fileURI.EndsWith(".root")) {
+      rawReader = new AliRawReaderRoot(fileURI);
     } else {
-      rawReader = new AliRawReaderDate(strURI);
+      rawReader = new AliRawReaderDate(fileURI);
     }
   }
   else {
-    strURI.ReplaceAll("mem://","");
-    AliInfoClass(Form("Creating raw-reader in order to read events in shared memory (option=%s)",strURI.Data()));
+    fileURI.ReplaceAll("mem://","");
+    AliInfoClass(Form("Creating raw-reader in order to read events in shared memory (option=%s)",fileURI.Data()));
 
     TPluginManager* pluginManager = gROOT->GetPluginManager();
     TString rawReaderName = "AliRawReaderDateOnline";
@@ -209,13 +212,40 @@ AliRawReader* AliRawReader::Create(const char *uri)
       pluginHandler = pluginManager->FindHandler("AliRawReader", "online");
     }
     if (pluginHandler && (pluginHandler->LoadPlugin() == 0)) {
-      rawReader = (AliRawReader*)pluginHandler->ExecPlugin(1,strURI.Data());
+      rawReader = (AliRawReader*)pluginHandler->ExecPlugin(1,fileURI.Data());
     }
     else {
       return NULL;
     }
   }
 
+  // Now apply event selection criteria (if specified)
+  if (fields->GetEntries() > 1) {
+    Int_t eventType = -1;
+    ULong64_t triggerMask = 0;
+    for(Int_t i = 1; i < fields->GetEntries(); i++) {
+      if (!fields->At(i)) continue;
+      TString &option = ((TObjString*)fields->At(i))->String();
+      if (option.BeginsWith("EventType=",TString::kIgnoreCase)) {
+       option.ReplaceAll("EventType=","");
+       eventType = option.Atoi();
+       continue;
+      }
+      if (option.BeginsWith("Trigger=",TString::kIgnoreCase)) {
+       option.ReplaceAll("Trigger=","");
+       triggerMask = option.Atoll();
+       continue;
+      }
+      AliWarningClass(Form("Ignoring invalid event selection option: %s",option.Data()));
+    }
+    AliInfoClass(Form("Event selection criteria specified:   eventype=%d   trigger mask=%llx",
+                eventType,triggerMask));
+    rawReader->SelectEvents(eventType,triggerMask);
+  }
+
+  fields->Delete();
+  delete fields;
+
   return rawReader;
 }
 
index d6c1fbf..9913c33 100644 (file)
@@ -38,7 +38,6 @@ class AliRawReader: public TObject {
                                     Int_t maxEquipmentId = -1);
     virtual void     SkipInvalid(Bool_t skip = kTRUE)
       {fSkipInvalid = skip;};
-    virtual void     SelectEvents(Int_t type, ULong64_t triggerMask = 0);
     virtual void     RequireHeader(Bool_t required)
       {fRequireHeader = required;};
 
@@ -155,6 +154,7 @@ class AliRawReader: public TObject {
     virtual Bool_t   UseAutoSaveESD() const { return kFALSE; }
 
   protected :
+    virtual void     SelectEvents(Int_t type, ULong64_t triggerMask = 0);
     Bool_t           IsSelected() const;
     Bool_t           IsEventSelected() const;
 
index 3422106..00d40ae 100644 (file)
@@ -1579,7 +1579,6 @@ Bool_t AliSimulation::ConvertRaw2SDigits(const char* rawDirectory, const char* e
       rawReader = new AliRawReaderRoot(fileName);
     } else if (!fileName.IsNull()) {
       rawReader = new AliRawReaderDate(fileName);
-      rawReader->SelectEvents(7);
     }
 //     if (!fEquipIdMap.IsNull() && fRawReader)
 //       fRawReader->LoadEquipmentIdsMap(fEquipIdMap);
index 0535581..f6335e5 100644 (file)
@@ -2,10 +2,11 @@
 void AliTRDanalyzeBlackEventsLHC(const char *filename) {
 
 
-  AliRawReaderRoot *reader = new AliRawReaderRoot(filename, 0);
+  TString strFile = filename;
+  strFile += "?EventType=7";
+  AliRawReaderRoot *reader = new AliRawReaderRoot(strFile.Data(), 0);
   reader->SelectEquipment(0, 1024, 1041);
   reader->Select("TRD");
-  reader->SelectEvents(7);
 
   //AliTRDRawStreamTB::SupressWarnings(kTRUE);
   //AliTRDrawStreamTB::SetForceCleanDataOnly();