* kAliHLTDataTypeTriggerDecision (TRIG_DEC)
* kAliHLTDataTypeGlobalTrigger (GLOBTRIG)
* kAliHLTDataTypeStreamerInfo (ROOTSTRI)
- */
-#define ALIHLT_DATA_TYPES_VERSION 12
+ * 13 Changed AliHLTEventDDL to now contain 31 words. The extra word is
+ * for the EMCAL detector, which needs 46 DDLs after DCAL was added.
+ * 14 Adding new data block type for HLT global trigger counters.
+ * Adding data block type for ESD content
+ * Adding data block type for forwarded component table blocks
+ * Adding new event type for software triggers.
+ * 15 Modifying data block types for trigger counter blocks.
+ * 16 Adding data type for the meta data block to be forwarded by the
+ * TCPDumpSubscriber for the Common Data Header (CDH) and readout
+ * list information.
+ * 17 New CDH v3 (10 32bit words, 100 trigger classes, etc.)
+ */
+#define ALIHLT_DATA_TYPES_VERSION 17
//////////////////////////////////////////////////////////////////////////
//
*/
extern const char kAliHLTDataOriginITS[kAliHLTComponentDataTypefOriginSize];
+/** Data origin ITSOut
+ * @ingroup alihlt_component_datatypes
+ */
+extern const char kAliHLTDataOriginITSOut[kAliHLTComponentDataTypefOriginSize];
+
/** Data origin ITS SPD
* @ingroup alihlt_component_datatypes
*/
*/
extern const char kAliHLTDataOriginEMCAL[kAliHLTComponentDataTypefOriginSize];
+/** Data origin TOF
+ * @ingroup alihlt_component_datatypes
+ */
+extern const char kAliHLTDataOriginTOF[kAliHLTComponentDataTypefOriginSize];
+
+/** Data origin HMPID
+ * @ingroup alihlt_component_datatypes
+ */
+extern const char kAliHLTDataOriginHMPID[kAliHLTComponentDataTypefOriginSize];
+
+/** Data origin CPV
+ * @ingroup alihlt_component_datatypes
+ */
+extern const char kAliHLTDataOriginCPV[kAliHLTComponentDataTypefOriginSize];
+
+/** Data origin PMD
+ * @ingroup alihlt_component_datatypes
+ */
+extern const char kAliHLTDataOriginPMD[kAliHLTComponentDataTypefOriginSize];
+
+/** Data origin T0
+ * @ingroup alihlt_component_datatypes
+ */
+extern const char kAliHLTDataOriginT0[kAliHLTComponentDataTypefOriginSize];
+
+/** Data origin VZERO
+ * @ingroup alihlt_component_datatypes
+ */
+extern const char kAliHLTDataOriginVZERO[kAliHLTComponentDataTypefOriginSize];
+
+/** Data origin ZDC
+ * @ingroup alihlt_component_datatypes
+ */
+extern const char kAliHLTDataOriginZDC[kAliHLTComponentDataTypefOriginSize];
+
+/** Data origin ACORDE
+ * @ingroup alihlt_component_datatypes
+ */
+
+extern const char kAliHLTDataOriginACORDE[kAliHLTComponentDataTypefOriginSize];
+
+/** Data origin TRG
+ * @ingroup alihlt_component_datatypes
+ */
+extern const char kAliHLTDataOriginTRG[kAliHLTComponentDataTypefOriginSize];
+
//////////////////////////////////////////////////////////////////////////
//
// HLT common data type defines
*/
# define kAliHLTDAQRDOUTDataTypeID "DAQRDOUT"
+/** HLT readout list.
+ * @ingroup alihlt_component_datatypes
+ */
+# define kAliHLTReadoutListDataTypeID {'H','L','T','R','D','L','S','T'}
+
/** EventType event
* - empty payload, specification gives eventType
* @ingroup alihlt_component_datatypes
*/
# define kAliHLTMCObjectDataTypeID {'A','L','I','M','C','_','V','0'}
+/** ESDVertex data block
+ * an AliESDVertex object of varying origin
+ * The 'V0' at the end allows a versioning
+ * @ingroup alihlt_component_datatypes
+ */
+# define kAliHLTESDVertexDataTypeID {'E','S','D','V','T','X','V','0'}
+
+/** KFVertex data block
+ * an AliKFVertex object of varying origin
+ * The 'V0' at the end allows a versioning
+ * @ingroup alihlt_component_datatypes
+ */
+# define kAliHLTKFVertexDataTypeID {'A','L','I','K','F','V','V','0'}
+
+
+/** output of the GlobalVertexer data block
+ * The 'V0' at the end allows a versioning
+ * @ingroup alihlt_component_datatypes
+ */
+# define kAliHLTDataTypeGlobalVertexerID {'G','L','B','V','T','X','V','0'}
+
+/** output of the PrimaryFinder data block
+ * The 'V0' at the end allows a versioning
+ * @ingroup alihlt_component_datatypes
+ */
+# define kAliHLTDataTypePrimaryFinderID {'P','R','I','V','T','X','V','0'}
+
+/** output of the V0Finder data block
+ * The 'V0' at the end allows a versioning
+ * @ingroup alihlt_component_datatypes
+ */
+# define kAliHLTDataTypeV0FinderID {'V','0','S','V','T','X','V','0'}
+
/** ESD data block
* an AliESD object of varying origin
* The 'V0' at the end allows a versioning
*/
# define kAliHLTESDObjectDataTypeID {'A','L','I','E','S','D','V','0'}
+/** ESD
+ * data blocks designated for the ESD
+ * @ingroup alihlt_component_datatypes
+ */
+# define kAliHLTESDContentDataTypeID {'E','S','D','_','C','O','N','T'}
+
/** ESD tree data block
* TTree with an AliESD object of varying origin
* @ingroup alihlt_component_datatypes
*/
# define kAliHLTComponentTableDataTypeID {'C','O','M','P','T','A','B','L'}
+/** Forwarded component table
+ * @ingroup alihlt_component_datatypes
+ */
+# define kAliHLTComponentFwdTableDataTypeID {'C','O','M','P','T','A','B','F'}
+
/** general ROOT TObject
* - a general TObject exported from the HLT analysis
* - varying origin
*/
#define kAliHLTJetDataTypeID {'H','L','T','J','E','T','V','0'}
-using namespace std;
+/** dEdx data
+ * Common data type for the dEdx
+ * format depends on the origin (detector)
+ * @ingroup alihlt_component_datatypes
+ */
+# define kAliHLTdEdxDataTypeID {'D','E','D','X',' ',' ',' ',' '}
+
+/** dNdPt data
+ * Common data type for the dNdPt output object
+ * @ingroup alihlt_component_datatypes
+ */
+# define kAliHLTdNdPtDataTypeID {'D','N','D','P','T',' ',' ',' '}
+
+/** Global input trigger counters data block type.
+ * @ingroup alihlt_component_datatypes
+ */
+# define kAliHLTInputTriggerCountersDataTypeID {'I','N','T','R','G','C','N','T'}
+
+/** Global output trigger counters data block type.
+ * @ingroup alihlt_component_datatypes
+ */
+# define kAliHLTOutputTriggerCountersDataTypeID {'O','T','T','R','G','C','N','T'}
+
+/** Generic meta data block type ID.
+ * @ingroup alihlt_component_datatypes
+ */
+# define kAliHLTMetaDataTypeID {'M','E','T','A','D','A','T','A'}
extern "C" {
//////////////////////////////////////////////////////////////////////////
AliHLTComponentDataType fDataType;
/** data specification of the data block */
AliHLTUInt32_t fSpecification;
+
+ AliHLTComponentDataType GetDataType() const {return fDataType;}
+ AliHLTUInt32_t GetSpecification() const {return fSpecification;}
};
/**
/**
* @struct AliHLTComponentTableEntry
- * Structure to be send on SOR event through the chain. Each component
- * adds its chain id and component arguments to the list.
+ * Structure to be send on SOR event through the chain.
* The 'length' of the structure is variable and depends on the length
- * of the strings in the buffer at the end.
+ * of the buffer at the end.
*
- * ComponentTableEntries are identified by a 32bit Id generated by a CRC
+ * ComponentTableEntries are sent with data type @ref kAliHLTDataTypeComponentTable
+ * and are identified by a 32bit Id specification generated by a CRC
* algorithm from the chain Id of the component. This is not a 100% unique
* id but with a high probability. This approach accounts for the fact
- * that all components are separated processes.
+ * that all components are separated processes.
+ *
+ * The buffer consists of an array of 32bit Ids containing the Ids of
+ * all direct parents taken from the specification of the data blocks.
+ * The number of parents is stored in fNofParents. Each component forwards the
+ * incoming component table entries with data type @ref kAliHLTDataTypeComponentFwdTable
+ * by that the direct parents can be identified.
+ *
+ * Following this array a description string contains the chain id, component args, and
+ * maybe more properties in the future. The current format is
+ * 'chain_id{component_id:component args}' e.g. TPC-CF_00_0{TPCClusterFinder32Bit:-deconvolute-time}
*/
struct AliHLTComponentTableEntry
{
- /** Size of this structure in bytes. */
- AliHLTUInt32_t fStructSize;
- /** size of the array of parent ids */
- AliHLTUInt16_t fNofParents;
- /** size of the description string in the appended buffer */
- AliHLTUInt8_t fSizeDescription;
- /** the strings: chain id, component args, reserved */
- AliHLTUInt8_t fBuffer[1];
+ AliHLTUInt32_t fStructSize; /// Size of this structure in bytes.
+ AliHLTUInt32_t fLevel; /// Indicates from which processing stage this information is from.
+ AliHLTUInt16_t fNofParents; /// size of the array of parent ids
+ AliHLTUInt8_t fSizeDescription; /// size of the description string in the appended buffer
+ AliHLTUInt8_t fBuffer[1]; /// the strings: chain id, component args, reserved
};
//////////////////////////////////////////////////////////////////////////
const int gkAliHLTBlockDAttributeCount = 8;
/** field size of fCommonHeader */
- const int gkAliHLTCommonHeaderCount = 8;
+ const int gkAliHLTCommonHeaderCountV2 = 8;
+ const int gkAliHLTCommonHeaderCountV3 = 10;
+ const int gkAliHLTCommonHeaderCount = gkAliHLTCommonHeaderCountV3;
+
+ /** size of the DDL list first version */
+ const int gkAliHLTDDLListSizeV0 = 30;
+
+ /** size of the DDL list after DCAL added to EMCAL */
+ const int gkAliHLTDDLListSizeV1 = 31;
/** size of the DDL list */
- const int gkAliHLTDDLListSize = 30;
+ const int gkAliHLTDDLListSize = gkAliHLTDDLListSizeV1;
/** Number of Trigger Classes of CTP in CDH */
- const int gkNCTPTriggerClasses = 50;
+ const int gkNCTPTriggerClassesV2 = 50;
+ const int gkNCTPTriggerClassesV3 = 100;
+ const int gkNCTPTriggerClasses = gkNCTPTriggerClassesV3;
+
+ // make it also available as define for templates
+#define NCTPTRIGGERCLASSES 100
/**
- * @struct AliHLTEventDDL
- * DDL list event.
+ * @struct AliHLTEventDDLV0
+ * First version of the DDL list event.
* The struct is send with the DDLLIST event.
* Used in the trigger structure for internal apperance of
* the DLLs as well as for the HLT readout list send to DAQ
* ( as DataType : kAliHLTDataTypeDDL )
*/
- struct AliHLTEventDDL
+ struct AliHLTEventDDLV0
+ {
+ AliHLTUInt32_t fCount; /// Indicates the number of words in fList.
+ AliHLTUInt32_t fList[gkAliHLTDDLListSizeV0]; /// The list of DDL enable/disable bits.
+ };
+
+ /**
+ * @struct AliHLTEventDDLV1
+ * DDL list event structure with extra word for DCAL bits.
+ */
+ struct AliHLTEventDDLV1
{
AliHLTUInt32_t fCount; /// Indicates the number of words in fList.
- AliHLTUInt32_t fList[gkAliHLTDDLListSize]; /// The list of DDL enable/disable bits.
+ AliHLTUInt32_t fList[gkAliHLTDDLListSizeV1]; /// The list of DDL enable/disable bits.
};
+
+ /**
+ * @typedef AliHLTEventDDL
+ * Current used default version of the AliHLTEventDDL structure.
+ */
+ typedef AliHLTEventDDLV1 AliHLTEventDDL;
/**
* @struct AliHLTEventTriggerData
AliHLTUInt64_t fHLTStatus; /// Bit field
AliHLTUInt32_t fCommonHeaderWordCnt; /// Number of words in fCommonHeader.
AliHLTUInt32_t fCommonHeader[gkAliHLTCommonHeaderCount]; /// The common header words.
- AliHLTEventDDL fReadoutList; /// The readout list structure.
+ union
+ {
+ AliHLTEventDDL fReadoutList; /// The default readout list structure.
+ AliHLTEventDDLV0 fReadoutListV0; /// Access to the old version of the readout list structure.
+ AliHLTEventDDLV1 fReadoutListV1; /// Access to the readout list structure with DCAL included.
+ };
};
/**
const AliHLTUInt32_t gkAliEventTypeCorruptID=8;
/** Calibration eventType specification */
const AliHLTUInt32_t gkAliEventTypeCalibration=16;
+ /** Software eventType specification */
+ const AliHLTUInt32_t gkAliEventTypeSoftware=24;
/** DataReplay eventType specification */
const AliHLTUInt32_t gkAliEventTypeDataReplay=32;
/** Configuration eventType specification */
*/
extern const AliHLTComponentDataType kAliHLTDataTypeMCObject;
+ /** ESD vertex object data specification, origin is 'any'
+ * @ingroup alihlt_component_datatypes
+ */
+ extern const AliHLTComponentDataType kAliHLTDataTypeESDVertex;
+
+ /** KF vertex object data specification, origin is 'any'
+ * @ingroup alihlt_component_datatypes
+ */
+ extern const AliHLTComponentDataType kAliHLTDataTypeKFVertex;
+
+ /** global vertexer data specification, origin is 'any'
+ * @ingroup alihlt_component_datatypes
+ */
+ extern const AliHLTComponentDataType kAliHLTDataTypeGlobalVertexer;
+
+ /** primary finder data specification, origin is 'any'
+ * @ingroup alihlt_component_datatypes
+ */
+ extern const AliHLTComponentDataType kAliHLTDataTypePrimaryFinder;
+
+ /** primary finder data specification, origin is 'any'
+ * @ingroup alihlt_component_datatypes
+ */
+ extern const AliHLTComponentDataType kAliHLTDataTypeV0Finder;
+
/** ESD object data specification, origin is 'any'
* @ingroup alihlt_component_datatypes
*/
extern const AliHLTComponentDataType kAliHLTDataTypeESDObject;
+ /** ESD content data specification, origin is 'any'
+ * @ingroup alihlt_component_datatypes
+ */
+ extern const AliHLTComponentDataType kAliHLTDataTypeESDContent;
+
/** ESD Tree data specification, origin is 'any'
* @ingroup alihlt_component_datatypes
*/
*/
extern const AliHLTComponentDataType kAliHLTDataTypeTriggerDecision; // {TRIG_DEC:HLT }
+ /** Trigger decision
+ * - origin : kAliHLTDataOriginOut ( HLT )
+ * @ingroup alihlt_component_datatypes
+ */
+ extern const AliHLTComponentDataType kAliHLTDataTypeReadoutList; // {HLTRDLST:HLT }
+
/** Global trigger decision
* - origin : kAliHLTDataOriginOut ( HLT )
* @ingroup alihlt_component_datatypes
*/
extern const AliHLTComponentDataType kAliHLTDataTypeComponentTable;
+ /** Forwarded component table
+ * To be sent on SOR event, each component forwards blocks of type
+ * @ref kAliHLTDataTypeComponentTable was kAliHLTDataTypeComponentFwdTable
+ * after adding the parent ids to its own table struct.
+ * @ingroup alihlt_component_datatypes
+ */
+ extern const AliHLTComponentDataType kAliHLTDataTypeComponentFwdTable;
+
+ /**
+ * Data type for the Common Data Header and readout list information sent by TCPDumpSubscriber.
+ * @ingroup alihlt_component_datatypes
+ */
+ extern const AliHLTComponentDataType kAliHLTDataTypeTriggerMetaBlock; // {METADATA:PRIV}
+
//////////////////////////////////////////////////////////////////////////
//
// Data Types for Monitoring objects
*/
extern const AliHLTComponentDataType kAliHLTDataTypeTNtuple; // {ROOTTUPL,"***"}
+ /** Global input trigger counters.
+ * - origin : kAliHLTDataOriginOut ( HLT )
+ * @ingroup alihlt_component_datatypes
+ */
+ extern const AliHLTComponentDataType kAliHLTDataTypeInputTriggerCounters; // {INTRGCNT:HLT }
+
+ /** Global output trigger counters.
+ * - origin : kAliHLTDataOriginOut ( HLT )
+ * @ingroup alihlt_component_datatypes
+ */
+ extern const AliHLTComponentDataType kAliHLTDataTypeOutputTriggerCounters; // {OTTRGCNT:HLT }
+
/** General track array for the barrel tracks based on AliExternalTrackParam
* Data format defined by AliHLTTracksData
*
*/
extern const AliHLTComponentDataType kAliHLTDataTypeCaloCluster;
+ /** Container of dEdx
+ * @ingroup alihlt_component_datatypes
+ */
+ extern const AliHLTComponentDataType kAliHLTDataTypedEdx;
+
+ /** Container of dNdPt
+ * @ingroup alihlt_component_datatypes
+ */
+ extern const AliHLTComponentDataType kAliHLTDataTypedNdPt;
+
//////////////////////////////////////////////////////////////////////////
//
// FXS subscriber meta information
//
//////////////////////////////////////////////////////////////////////////
+ /** definition of a void fct pointer */
+ typedef void (*AliHLTfctVoid)();
+
/** logging function */
typedef int (*AliHLTfctLogging)( void* param,
AliHLTComponentLogSeverity severity,
}
+#include <bitset>
+typedef std::bitset<NCTPTRIGGERCLASSES> AliHLTTriggerMask_t;
+
+using namespace std;
+
//////////////////////////////////////////////////////////////////////////
//
// Data type helper functions