Line data Source code
1 : //-*- Mode: C++ -*-
2 : // $Id$
3 :
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 *
9 :
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.
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 126 : ClassDef(AliHLTOUTHandlerDetectorDDL, 0)
71 : };
72 : #endif
|