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 *
10 /// @file AliHLTOUTHandlerEquId.h
11 /// @author Matthias Richter
13 /// @brief HLTOUT handler returning equipment id from data type and spec.
16 #include "AliHLTOUTHandler.h"
19 * @class AliHLTOUTHandlerEquId
20 * Base class for DDL raw data redirection handlers.
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.
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.
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.
40 * @ingroup alihlt_aliroot_reconstruction
42 class AliHLTOUTHandlerEquId : public AliHLTOUTHandler {
44 /** standard constructor */
45 AliHLTOUTHandlerEquId();
46 /** standard destructor */
47 virtual ~AliHLTOUTHandlerEquId();
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.
56 virtual int ProcessData(AliHLTOUT* pData);
59 /** copy constructor prohibited */
60 AliHLTOUTHandlerEquId(const AliHLTOUTHandlerEquId&);
61 /** assignment operator prohibited */
62 AliHLTOUTHandlerEquId& operator=(const AliHLTOUTHandlerEquId&);
64 ClassDef(AliHLTOUTHandlerEquId, 0)