]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/BASE/AliHLTOUTHandlerEquId.h
- HLT simulation writes digit data in addition to raw data
[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  * HLT output handler returning equipment ids for redirection of data blocks
21  * of the HLTOUT stream to the original detector streams.
22  *
23  * The class introduces a layer in the HLTOUT handler hierarchy in order to
24  * collect all handlers which can be used by the AliRawReaderHLT for
25  * redirection of HLTOUT data blocks and replacement of original detector
26  * data. The common denominator of all those handlers is the data format.
27  * The data block itsself or the decoded data produced by the handler have
28  * exactly the detector raw data format. Thus, the data streams can be
29  * transparently replaced in the AliRoot reconstruction.
30  *
31  * The handler might produce decoded data from the data block in order
32  * the get the right data format. The AliRawReaderHLT will try to fetch
33  * those data by calling AliHLTOUTHandler::GetProcessedData(). If no data
34  * is provided, the input block itsself is treated as the data to redirect.
35  */
36 class AliHLTOUTHandlerEquId : public AliHLTOUTHandler {
37  public:
38   /** standard constructor */
39   AliHLTOUTHandlerEquId();
40   /** standard destructor */
41   virtual ~AliHLTOUTHandlerEquId();
42
43   /**
44    * Process a data block.
45    * The handler retrieves the data and it's properties and derives the
46    * equipment id from it. The default behavior returns the specification as
47    * equipment id and does not touch the data itsself.
48    * @return equipment id the block should be used for.
49    */
50   virtual int ProcessData(AliHLTOUT* pData);
51
52  private:
53   /** copy constructor prohibited */
54   AliHLTOUTHandlerEquId(const AliHLTOUTHandlerEquId&);
55   /** assignment operator prohibited */
56   AliHLTOUTHandlerEquId& operator=(const AliHLTOUTHandlerEquId&);
57
58   ClassDef(AliHLTOUTHandlerEquId, 0)
59 };
60 #endif