]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/BASE/AliHLTOUTHandlerEquId.h
Adding an abstract interface which provides OCDB functionality within the libHLTbase
[u/mrichter/AliRoot.git] / HLT / BASE / AliHLTOUTHandlerEquId.h
1 //-*- Mode: C++ -*-
2 // $Id$
3
4 #ifndef ALIHLTOUTHANDLEREQUID_H
5 #define ALIHLTOUTHANDLEREQUID_H
6 //* This file is property of and copyright by the ALICE HLT Project        * 
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   ClassDef(AliHLTOUTHandlerEquId, 0)
65 };
66 #endif