4 #ifndef ALIHLTOUTHANDLERDETECTORDDL_H
5 #define ALIHLTOUTHANDLERDETECTORDDL_H
6 //* This file is property of and copyright by the ALICE HLT Project *
7 //* ALICE Experiment at CERN, All rights reserved. *
8 //* See cxx source for full Copyright notice *
10 /** @file AliHLTOUTHandlerDetectorDDL.h
11 @author Matthias Richter
13 @brief Default HLTOUT handler returning equipment id from data type and
17 #include "AliHLTOUTHandlerEquId.h"
20 * @class AliHLTOUTHandlerDetectorDDL
21 * A default handler class for DDL raw data redirection handlers.
23 * This class implements an AliHLTOUTHandlerEquId which extracts the
24 * equipment Id from the bit pattern in the specification. All detectors
25 * with up to 32 DDL links follow this convention. The bit no in the
26 * data specification word corresponds to the DDL number within the
29 * DDL offsets for sub-detectors can be fetched by means of AliDAQ.
30 * The class must be initialized with the detector identification and the
31 * data type it should be used for.
32 * @note The detector identification is according to AliDAQ. E.g. for ITS
33 * and MUON there are ITSSPD, ITSSDD, ITSSSD, and MUONTRK and MUONTRG
36 * @ingroup alihlt_aliroot_reconstruction
38 class AliHLTOUTHandlerDetectorDDL : public AliHLTOUTHandlerEquId {
41 * the class is initialized with the detector identification and the
42 * data type it should be used for. Note: the detector identification
43 * is according to AliDAQ. E.g. for ITS and MUON there are ITSSPD,
44 * ITSSDD, ITSSSD, and MUONTRK and MUONTRG respectively.
46 AliHLTOUTHandlerDetectorDDL(const char* detector, AliHLTComponentDataType dt);
47 /** standard destructor */
48 virtual ~AliHLTOUTHandlerDetectorDDL();
51 * Process a data block.
52 * Derives the eqipment ID from the DDL offset of the detector and
53 * the DDL no within the detector which corresponds to a bit in the
54 * data specification. Only one bit is allowed to be set.
55 * @return equipment id the block should be used for.
57 virtual int ProcessData(AliHLTOUT* pData);
60 /** standard constructor prohibited */
61 AliHLTOUTHandlerDetectorDDL();
62 /** copy constructor prohibited */
63 AliHLTOUTHandlerDetectorDDL(const AliHLTOUTHandlerDetectorDDL&);
64 /** assignment operator prohibited */
65 AliHLTOUTHandlerDetectorDDL& operator=(const AliHLTOUTHandlerDetectorDDL&);
67 int fDDLOffset; //!transient
68 int fNumberOfDDLs; //!transient
69 AliHLTComponentDataType fDt; //!transient
71 ClassDef(AliHLTOUTHandlerDetectorDDL, 0)