//* provided "as is" without express or implied warranty. *
//**************************************************************************
-/** @file AliHLTDAQ.cxx
- @author Matthias Richter
- @date 24.10.2008
- @brief Virtual Interface to the AliDAQ class.
-*/
+/// @file AliHLTDAQ.cxx
+/// @author Matthias Richter
+/// @date 24.10.2008
+/// @brief Virtual Interface to the AliDAQ class.
+///
#include "AliHLTDAQ.h"
#include "AliHLTLogging.h"
+#include "AliHLTDataTypes.h"
#include "TClass.h"
#include "TSystem.h"
AliHLTDAQ* AliHLTDAQ::fgpInstance=NULL;
const char* AliHLTDAQ::fgkImplName="AliHLTDAQInterfaceImplementation";
const char* AliHLTDAQ::fgkImplLibrary="libHLTrec.so";
+const char* AliHLTDAQ::fgkOriginMapping[] = {
+ kAliHLTDataOriginITSSPD,
+ kAliHLTDataOriginITSSDD,
+ kAliHLTDataOriginITSSSD,
+ kAliHLTDataOriginTPC,
+ kAliHLTDataOriginTRD,
+ kAliHLTDataOriginTOF,
+ kAliHLTDataOriginHMPID,
+ kAliHLTDataOriginPHOS,
+ kAliHLTDataOriginCPV,
+ kAliHLTDataOriginPMD,
+ kAliHLTDataOriginMUON,
+ "", // MUONTRG
+ kAliHLTDataOriginFMD,
+ kAliHLTDataOriginT0,
+ kAliHLTDataOriginVZERO,
+ kAliHLTDataOriginZDC,
+ kAliHLTDataOriginACORDE,
+ kAliHLTDataOriginTRG,
+ kAliHLTDataOriginEMCAL,
+ NULL
+};
AliHLTDAQ::~AliHLTDAQ()
{
return NULL;
}
+const char *AliHLTDAQ::DetectorName(const char dataorigin[4])
+{
+ // see header file for class documentation
+ for (int i=0; fgkOriginMapping[i]!=NULL; i++) {
+ if (strncmp(fgkOriginMapping[i], dataorigin, kAliHLTComponentDataTypefOriginSize)==0) {
+ return DetectorName(i);
+ }
+ }
+
+ return NULL;
+}
+
Int_t AliHLTDAQ::DdlIDOffset(const char *detectorName)
{
// see header file for class documentation
return NULL;
}
+string AliHLTDAQ::HLTOrigin(const char *detectorName)
+{
+ // get HLT origin from detector name
+ return HLTOrigin(DetectorID(detectorName));
+}
+
+string AliHLTDAQ::HLTOrigin(Int_t detectorID)
+{
+ // get HLT origin from detector ID
+ string origin;
+ if (detectorID>=0 && detectorID<(int)sizeof(fgkOriginMapping)/sizeof(const char*)) {
+ origin.append(fgkOriginMapping[detectorID], kAliHLTComponentDataTypefOriginSize);
+ }
+ return origin;
+}
+
AliHLTDAQ* AliHLTDAQ::GetInstance()
{
// see header file for class documentation
//* ALICE Experiment at CERN, All rights reserved. *
//* See cxx source for full Copyright notice *
-/** @file AliHLTDAQ.h
- @author Matthias Richter
- @date 24.10.2008
- @brief Virtual Interface to the AliDAQ class.
-*/
+/// @file AliHLTDAQ.h
+/// @author Matthias Richter
+/// @date 24.10.2008
+/// @brief Virtual Interface to the AliDAQ class.
+///
#include "Rtypes.h"
+#include <string>
/**
* Virtual interface to the AliDAQ class.
* In order to keep the libHLTbase free of AliRoot dependencies, the
* implementation has been separated from libHLTbase.
* Implementation in libHLTrec.
+ *
+ * @author Matthias.Richter@ift.uib.no
+ * @ingroup alihlt_system
*/
class AliHLTDAQ {
public:
static Int_t DetectorID(const char *detectorName);
static const char *DetectorName(Int_t detectorID);
+ static const char *DetectorName(const char dataorigin[4]);
static Int_t DdlIDOffset(const char *detectorName);
static Int_t DdlIDOffset(Int_t detectorID);
static const char *OnlineName(const char *detectorName);
static const char *OnlineName(Int_t detectorID);
+ static std::string HLTOrigin(const char *detectorName);
+ static std::string HLTOrigin(Int_t detectorID);
+
static AliHLTDAQ* GetInstance();
private:
/** the library of the implementation */
static const char* fgkImplLibrary; //!
+
+ /// mapping between HLT data origin and AliDAQ detector number
+ static const char* fgkOriginMapping[]; //!
};
#endif //AliHLTDAQ