4 #ifndef ALIHLTOUTHANDLERDETECTORDDL_H
5 #define ALIHLTOUTHANDLERDETECTORDDL_H
6 //* This file is property of and copyright by the *
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
14 /// bit pattern in spec.
16 #include "AliHLTOUTHandlerEquId.h"
19 * @class AliHLTOUTHandlerDetectorDDL
20 * A default handler class for DDL raw data redirection handlers.
22 * This class implements an AliHLTOUTHandlerEquId which extracts the
23 * equipment Id from the bit pattern in the specification. All detectors
24 * with up to 32 DDL links follow this convention. The bit no in the
25 * data specification word corresponds to the DDL number within the
28 * DDL offsets for sub-detectors can be fetched by means of AliDAQ.
29 * The class must be initialized with the detector identification and the
30 * data type it should be used for.
31 * @note The detector identification is according to AliDAQ. E.g. for ITS
32 * and MUON there are ITSSPD, ITSSDD, ITSSSD, and MUONTRK and MUONTRG
35 * @ingroup alihlt_aliroot_reconstruction
37 class AliHLTOUTHandlerDetectorDDL : public AliHLTOUTHandlerEquId {
40 * the class is initialized with the detector identification and the
41 * data type it should be used for. Note: the detector identification
42 * is according to AliDAQ. E.g. for ITS and MUON there are ITSSPD,
43 * ITSSDD, ITSSSD, and MUONTRK and MUONTRG respectively.
45 AliHLTOUTHandlerDetectorDDL(const char* detector, AliHLTComponentDataType dt);
46 /** standard destructor */
47 virtual ~AliHLTOUTHandlerDetectorDDL();
50 * Process a data block.
51 * Derives the eqipment ID from the DDL offset of the detector and
52 * the DDL no within the detector which corresponds to a bit in the
53 * data specification. Only one bit is allowed to be set.
54 * @return equipment id the block should be used for.
56 virtual int ProcessData(AliHLTOUT* pData);
59 /** standard constructor prohibited */
60 AliHLTOUTHandlerDetectorDDL();
61 /** copy constructor prohibited */
62 AliHLTOUTHandlerDetectorDDL(const AliHLTOUTHandlerDetectorDDL&);
63 /** assignment operator prohibited */
64 AliHLTOUTHandlerDetectorDDL& operator=(const AliHLTOUTHandlerDetectorDDL&);
66 int fDDLOffset; //!transient
67 int fNumberOfDDLs; //!transient
68 AliHLTComponentDataType fDt; //!transient
70 ClassDef(AliHLTOUTHandlerDetectorDDL, 0)