ROOT logo
//-*- Mode: C++ -*-
// $Id$

#ifndef ALIHLTOUTHANDLEREQUID_H
#define ALIHLTOUTHANDLEREQUID_H
//* This file is property of and copyright by the                          * 
//* ALICE Experiment at CERN, All rights reserved.                         *
//* See cxx source for full Copyright notice                               *

/// @file   AliHLTOUTHandlerEquId.h
/// @author Matthias Richter
/// @date   
/// @brief  HLTOUT handler returning equipment id from data type and spec.
///

#include "AliHLTOUTHandler.h"

/**
 * @class AliHLTOUTHandlerEquId
 * Base class for DDL raw data redirection handlers.
 *
 * HLTOUT handlers of this type are used for the replacement of detector
 * reconstruction input by the corresponding data from the HLT output.
 * From the data type and specification of an HLT output block the
 * corresponding equipment id of the original detector streams is determined.
 *
 * The class introduces a layer in the HLTOUT handler hierarchy in order to
 * collect all handlers which can be used by the AliRawReaderHLT for
 * redirection of HLTOUT data blocks and replacement of original detector
 * data. The common denominator of all those handlers is the data format.
 * The data block itself or the decoded data produced by the handler have
 * exactly the detector raw data format. Thus, the data streams can be
 * transparently replaced in the AliRoot reconstruction.
 *
 * The handler might produce decoded data from the data block in order
 * the get the right data format. The AliRawReaderHLT will try to fetch
 * those data by calling AliHLTOUTHandler::GetProcessedData(). If no data
 * is provided, the input block itself is treated as the data to redirect.
 *
 * @ingroup alihlt_aliroot_reconstruction
 */
class AliHLTOUTHandlerEquId : public AliHLTOUTHandler {
 public:
  /** standard constructor */
  AliHLTOUTHandlerEquId();
  /** standard destructor */
  virtual ~AliHLTOUTHandlerEquId();

  /**
   * Process a data block.
   * The handler retrieves the data and it's properties and derives the
   * equipment id from it. The default behavior returns the specification as
   * equipment id and does not touch the data itself.
   * @return equipment id the block should be used for.
   */
  virtual int ProcessData(AliHLTOUT* pData);

 private:
  /** copy constructor prohibited */
  AliHLTOUTHandlerEquId(const AliHLTOUTHandlerEquId&);
  /** assignment operator prohibited */
  AliHLTOUTHandlerEquId& operator=(const AliHLTOUTHandlerEquId&);

  ClassDef(AliHLTOUTHandlerEquId, 0)
};
#endif
 AliHLTOUTHandlerEquId.h:1
 AliHLTOUTHandlerEquId.h:2
 AliHLTOUTHandlerEquId.h:3
 AliHLTOUTHandlerEquId.h:4
 AliHLTOUTHandlerEquId.h:5
 AliHLTOUTHandlerEquId.h:6
 AliHLTOUTHandlerEquId.h:7
 AliHLTOUTHandlerEquId.h:8
 AliHLTOUTHandlerEquId.h:9
 AliHLTOUTHandlerEquId.h:10
 AliHLTOUTHandlerEquId.h:11
 AliHLTOUTHandlerEquId.h:12
 AliHLTOUTHandlerEquId.h:13
 AliHLTOUTHandlerEquId.h:14
 AliHLTOUTHandlerEquId.h:15
 AliHLTOUTHandlerEquId.h:16
 AliHLTOUTHandlerEquId.h:17
 AliHLTOUTHandlerEquId.h:18
 AliHLTOUTHandlerEquId.h:19
 AliHLTOUTHandlerEquId.h:20
 AliHLTOUTHandlerEquId.h:21
 AliHLTOUTHandlerEquId.h:22
 AliHLTOUTHandlerEquId.h:23
 AliHLTOUTHandlerEquId.h:24
 AliHLTOUTHandlerEquId.h:25
 AliHLTOUTHandlerEquId.h:26
 AliHLTOUTHandlerEquId.h:27
 AliHLTOUTHandlerEquId.h:28
 AliHLTOUTHandlerEquId.h:29
 AliHLTOUTHandlerEquId.h:30
 AliHLTOUTHandlerEquId.h:31
 AliHLTOUTHandlerEquId.h:32
 AliHLTOUTHandlerEquId.h:33
 AliHLTOUTHandlerEquId.h:34
 AliHLTOUTHandlerEquId.h:35
 AliHLTOUTHandlerEquId.h:36
 AliHLTOUTHandlerEquId.h:37
 AliHLTOUTHandlerEquId.h:38
 AliHLTOUTHandlerEquId.h:39
 AliHLTOUTHandlerEquId.h:40
 AliHLTOUTHandlerEquId.h:41
 AliHLTOUTHandlerEquId.h:42
 AliHLTOUTHandlerEquId.h:43
 AliHLTOUTHandlerEquId.h:44
 AliHLTOUTHandlerEquId.h:45
 AliHLTOUTHandlerEquId.h:46
 AliHLTOUTHandlerEquId.h:47
 AliHLTOUTHandlerEquId.h:48
 AliHLTOUTHandlerEquId.h:49
 AliHLTOUTHandlerEquId.h:50
 AliHLTOUTHandlerEquId.h:51
 AliHLTOUTHandlerEquId.h:52
 AliHLTOUTHandlerEquId.h:53
 AliHLTOUTHandlerEquId.h:54
 AliHLTOUTHandlerEquId.h:55
 AliHLTOUTHandlerEquId.h:56
 AliHLTOUTHandlerEquId.h:57
 AliHLTOUTHandlerEquId.h:58
 AliHLTOUTHandlerEquId.h:59
 AliHLTOUTHandlerEquId.h:60
 AliHLTOUTHandlerEquId.h:61
 AliHLTOUTHandlerEquId.h:62
 AliHLTOUTHandlerEquId.h:63
 AliHLTOUTHandlerEquId.h:64
 AliHLTOUTHandlerEquId.h:65
 AliHLTOUTHandlerEquId.h:66