]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/BASE/util/AliHLTEsdCollectorComponent.h
added collector component and HLTOUT handler for component statistics blocks and
[u/mrichter/AliRoot.git] / HLT / BASE / util / AliHLTEsdCollectorComponent.h
CommitLineData
c1292031 1// -*- Mode: C++ -*-
2// $Id$
3
4#ifndef ALIHLTESDCOLLECTORCOMPONENT_H
5#define ALIHLTESDCOLLECTORCOMPONENT_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 AliHLTEsdCollectorComponent.h
11 @author Matthias Richter
12 @date
13 @brief Collect ESDs of multiple events and write toi file
14*/
15
16#include "AliHLTFileWriter.h"
17
18class AliHLTEsdManager;
19
20/**
21 * @class AliHLTEsdCollectorComponent
22 * The EsdCollector component merges ESDs from multiple events into one
23 * ESD file per origin using the AliHLTEsdManager class.
24 * \b Note: The component just merges ESDs of the same type/origin from
25 * multiple events into one file. It does not implement merging of ESDs
26 * from one event but several origins.
27 *
a7ad9794 28 * <h2>General properties:</h2>
c1292031 29 *
a7ad9794 30 * Component ID: \b EsdCollector <br>
31 * Library: \b libAliHLTUtil.so <br>
32 * Input Data Types: kAliHLTDataTypeESDObject, kAliHLTDataTypeESDTree <br>
33 * Output Data Types: none <br>
34 *
35 * <h2>Mandatory arguments:</h2>
c1292031 36 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
37 *
a7ad9794 38 * <h2>Optional arguments:</h2>
39 * The only AliHLTFileWriter argument of relevance is the \em -directory
40 * argument. See AliHLTFileWriter for full list of arguments.
41 *
42 * <h2>Configuration:</h2>
c1292031 43 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
a7ad9794 44 * Configuration by component arguments.
45 *
46 * <h2>Default CDB entries:</h2>
47 * The component loads no CDB entries.
48 *
49 * <h2>Performance:</h2>
50 * The component does not process any event data.
51 *
52 * <h2>Memory consumption:</h2>
53 * The component does not process any event data.
54 *
55 * <h2>Output size:</h2>
56 * No data published (AliHLTDataSink).
c1292031 57 *
a7ad9794 58 * @ingroup alihlt_util_components
c1292031 59 */
60class AliHLTEsdCollectorComponent : public AliHLTFileWriter
61{
62 public:
63 /** standard constructor */
64 AliHLTEsdCollectorComponent();
65 /** destructor */
66 virtual ~AliHLTEsdCollectorComponent();
67
68 /**
69 * The id of the component.
70 * @return component id (string)
71 */
72 const char* GetComponentID() {return "EsdCollector";};
73
74 /**
75 * Spawn function.
76 * @return new class instance
77 */
78 AliHLTComponent* Spawn() {return new AliHLTEsdCollectorComponent;}
79
80 protected:
81 // interface functions
82 int InitWriter();
83 int CloseWriter();
84 int DumpEvent( const AliHLTComponentEventData& evtData,
85 const AliHLTComponentBlockData* blocks,
86 AliHLTComponentTriggerData& trigData );
87
88 using AliHLTFileWriter::DumpEvent;
89 int ScanArgument(int argc, const char** argv);
90
91private:
92 /** copy constructor prohibited */
93 AliHLTEsdCollectorComponent(const AliHLTEsdCollectorComponent&);
94 /** assignment operator prohibited */
95 AliHLTEsdCollectorComponent& operator=(const AliHLTEsdCollectorComponent&);
96
97 /** the ESD manager instance writes the ESDs */
98 AliHLTEsdManager* fpManager; //! transient
99
100 ClassDef(AliHLTEsdCollectorComponent, 0)
101};
102#endif