Line data Source code
1 : //-*- Mode: C++ -*-
2 : // $Id$
3 :
4 : #ifndef ALIHLTOUTHANDLEREQUID_H
5 : #define ALIHLTOUTHANDLEREQUID_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 AliHLTOUTHandlerEquId.h
11 : /// @author Matthias Richter
12 : /// @date
13 : /// @brief HLTOUT handler returning equipment id from data type and spec.
14 : ///
15 :
16 : #include "AliHLTOUTHandler.h"
17 :
18 : /**
19 : * @class AliHLTOUTHandlerEquId
20 : * Base class for DDL raw data redirection handlers.
21 : *
22 : * HLTOUT handlers of this type are used for the replacement of detector
23 : * reconstruction input by the corresponding data from the HLT output.
24 : * From the data type and specification of an HLT output block the
25 : * corresponding equipment id of the original detector streams is determined.
26 : *
27 : * The class introduces a layer in the HLTOUT handler hierarchy in order to
28 : * collect all handlers which can be used by the AliRawReaderHLT for
29 : * redirection of HLTOUT data blocks and replacement of original detector
30 : * data. The common denominator of all those handlers is the data format.
31 : * The data block itself or the decoded data produced by the handler have
32 : * exactly the detector raw data format. Thus, the data streams can be
33 : * transparently replaced in the AliRoot reconstruction.
34 : *
35 : * The handler might produce decoded data from the data block in order
36 : * the get the right data format. The AliRawReaderHLT will try to fetch
37 : * those data by calling AliHLTOUTHandler::GetProcessedData(). If no data
38 : * is provided, the input block itself is treated as the data to redirect.
39 : *
40 : * @ingroup alihlt_aliroot_reconstruction
41 : */
42 : class AliHLTOUTHandlerEquId : public AliHLTOUTHandler {
43 : public:
44 : /** standard constructor */
45 : AliHLTOUTHandlerEquId();
46 : /** standard destructor */
47 : virtual ~AliHLTOUTHandlerEquId();
48 :
49 : /**
50 : * Process a data block.
51 : * The handler retrieves the data and it's properties and derives the
52 : * equipment id from it. The default behavior returns the specification as
53 : * equipment id and does not touch the data itself.
54 : * @return equipment id the block should be used for.
55 : */
56 : virtual int ProcessData(AliHLTOUT* pData);
57 :
58 : private:
59 : /** copy constructor prohibited */
60 : AliHLTOUTHandlerEquId(const AliHLTOUTHandlerEquId&);
61 : /** assignment operator prohibited */
62 : AliHLTOUTHandlerEquId& operator=(const AliHLTOUTHandlerEquId&);
63 :
64 126 : ClassDef(AliHLTOUTHandlerEquId, 0)
65 : };
66 : #endif
|