]>
Commit | Line | Data |
---|---|---|
7c4d1228 | 1 | //-*- Mode: C++ -*- |
2 | // $Id$ | |
3 | ||
4 | #ifndef ALIHLTOUTHANDLERDETECTORDDL_H | |
5 | #define ALIHLTOUTHANDLERDETECTORDDL_H | |
2dfe97e6 | 6 | //* This file is property of and copyright by the * |
7c4d1228 | 7 | //* ALICE Experiment at CERN, All rights reserved. * |
8 | //* See cxx source for full Copyright notice * | |
9 | ||
2dfe97e6 | 10 | /// @file AliHLTOUTHandlerDetectorDDL.h |
11 | /// @author Matthias Richter | |
12 | /// @date 2008-09-09 | |
13 | /// @brief Default HLTOUT handler returning equipment id from data type and | |
14 | /// bit pattern in spec. | |
7c4d1228 | 15 | |
16 | #include "AliHLTOUTHandlerEquId.h" | |
17 | ||
18 | /** | |
19 | * @class AliHLTOUTHandlerDetectorDDL | |
20 | * A default handler class for DDL raw data redirection handlers. | |
21 | * | |
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 | |
26 | * sub-detector. | |
27 | * | |
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 | |
33 | * respectively. | |
34 | * | |
35 | * @ingroup alihlt_aliroot_reconstruction | |
36 | */ | |
37 | class AliHLTOUTHandlerDetectorDDL : public AliHLTOUTHandlerEquId { | |
38 | public: | |
39 | /** constructor | |
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. | |
44 | */ | |
45 | AliHLTOUTHandlerDetectorDDL(const char* detector, AliHLTComponentDataType dt); | |
46 | /** standard destructor */ | |
47 | virtual ~AliHLTOUTHandlerDetectorDDL(); | |
48 | ||
49 | /** | |
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. | |
55 | */ | |
56 | virtual int ProcessData(AliHLTOUT* pData); | |
57 | ||
58 | private: | |
59 | /** standard constructor prohibited */ | |
60 | AliHLTOUTHandlerDetectorDDL(); | |
61 | /** copy constructor prohibited */ | |
62 | AliHLTOUTHandlerDetectorDDL(const AliHLTOUTHandlerDetectorDDL&); | |
63 | /** assignment operator prohibited */ | |
64 | AliHLTOUTHandlerDetectorDDL& operator=(const AliHLTOUTHandlerDetectorDDL&); | |
65 | ||
66 | int fDDLOffset; //!transient | |
67 | int fNumberOfDDLs; //!transient | |
68 | AliHLTComponentDataType fDt; //!transient | |
69 | ||
70 | ClassDef(AliHLTOUTHandlerDetectorDDL, 0) | |
71 | }; | |
72 | #endif |