From 73305a9321519200f12f8d7646333715eecf1c0a Mon Sep 17 00:00:00 2001 From: richterm Date: Sat, 7 Nov 2009 01:00:54 +0000 Subject: [PATCH] adding method to retrieve trigger mask from RawReader --- HLT/BASE/AliHLTMisc.cxx | 6 ++++++ HLT/BASE/AliHLTMisc.h | 4 ++++ HLT/rec/AliHLTMiscImplementation.cxx | 15 +++++++++++++++ HLT/rec/AliHLTMiscImplementation.h | 2 ++ 4 files changed, 27 insertions(+) diff --git a/HLT/BASE/AliHLTMisc.cxx b/HLT/BASE/AliHLTMisc.cxx index f0298d03fea..686e8f4ff42 100644 --- a/HLT/BASE/AliHLTMisc.cxx +++ b/HLT/BASE/AliHLTMisc.cxx @@ -118,6 +118,12 @@ int AliHLTMisc::InitMagneticField() const return -EFAULT; } +AliHLTUInt64_t AliHLTMisc::GetTriggerMask(AliRawReader* /*rawReader*/) const +{ + // default method, functionality is implemented in the child class + return 0; +} + ostream &operator<<(ostream &out, const AliHLTComponentDataType &dt) { // printout of AliHLTComponentDataType struct diff --git a/HLT/BASE/AliHLTMisc.h b/HLT/BASE/AliHLTMisc.h index 33006308474..666af139642 100644 --- a/HLT/BASE/AliHLTMisc.h +++ b/HLT/BASE/AliHLTMisc.h @@ -15,9 +15,11 @@ #include "TObject.h" #include "AliHLTStdIncludes.h" +#include "AliHLTDataTypes.h" class AliCDBManager; class AliCDBEntry; +class AliRawReader; class AliHLTComponentDataType; class AliHLTMisc : public TObject { @@ -40,6 +42,8 @@ class AliHLTMisc : public TObject { virtual int InitMagneticField() const; + virtual AliHLTUInt64_t GetTriggerMask(AliRawReader* rawReader) const; + private: static AliHLTMisc* fgInstance; diff --git a/HLT/rec/AliHLTMiscImplementation.cxx b/HLT/rec/AliHLTMiscImplementation.cxx index 44a54ac8176..04511655d3d 100644 --- a/HLT/rec/AliHLTMiscImplementation.cxx +++ b/HLT/rec/AliHLTMiscImplementation.cxx @@ -27,6 +27,7 @@ #include "AliCDBStorage.h" #include "AliCDBEntry.h" #include "AliGRPManager.h" +#include "AliRawReader.h" #include "TGeoGlobalMagField.h" /** ROOT macro for the implementation of ROOT specific class methods */ @@ -129,3 +130,17 @@ int AliHLTMiscImplementation::InitMagneticField() const return -ENOENT; } + +AliHLTUInt64_t AliHLTMiscImplementation::GetTriggerMask(AliRawReader* rawReader) const +{ + // see header file for function documentation + if (!rawReader) return 0; + AliHLTUInt64_t trgMask=0; + if (rawReader) { + const UInt_t* pattern=rawReader->GetTriggerPattern(); + trgMask=pattern[1]&0xfffffff; // 28 upper bits of the 50 bit mask + trgMask<<=32; + trgMask|=pattern[0]; // 32 lower bits of the mask + } + return trgMask; +} diff --git a/HLT/rec/AliHLTMiscImplementation.h b/HLT/rec/AliHLTMiscImplementation.h index a46b10e472c..833d979c999 100644 --- a/HLT/rec/AliHLTMiscImplementation.h +++ b/HLT/rec/AliHLTMiscImplementation.h @@ -31,6 +31,8 @@ class AliHLTMiscImplementation : public AliHLTMisc int InitMagneticField() const; + AliHLTUInt64_t GetTriggerMask(AliRawReader* rawReader) const; + private: ClassDef(AliHLTMiscImplementation, 0) -- 2.39.3