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 *
10 /** @file AliHLTEsdCollectorComponent.h
11 @author Matthias Richter
13 @brief Collect ESDs of multiple events and write toi file
16 #include "AliHLTFileWriter.h"
18 class AliHLTEsdManager;
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.
28 * <h2>General properties:</h2>
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>
35 * <h2>Mandatory arguments:</h2>
36 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
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.
42 * <h2>Configuration:</h2>
43 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
44 * Configuration by component arguments.
46 * <h2>Default CDB entries:</h2>
47 * The component loads no CDB entries.
49 * <h2>Performance:</h2>
50 * The component does not process any event data.
52 * <h2>Memory consumption:</h2>
53 * The component does not process any event data.
55 * <h2>Output size:</h2>
56 * No data published (AliHLTDataSink).
58 * @ingroup alihlt_util_components
60 class AliHLTEsdCollectorComponent : public AliHLTFileWriter
63 /** standard constructor */
64 AliHLTEsdCollectorComponent();
66 virtual ~AliHLTEsdCollectorComponent();
69 * The id of the component.
70 * @return component id (string)
72 const char* GetComponentID() {return "EsdCollector";};
76 * @return new class instance
78 AliHLTComponent* Spawn() {return new AliHLTEsdCollectorComponent;}
81 // interface functions
84 int DumpEvent( const AliHLTComponentEventData& evtData,
85 const AliHLTComponentBlockData* blocks,
86 AliHLTComponentTriggerData& trigData );
88 using AliHLTFileWriter::DumpEvent;
89 int ScanArgument(int argc, const char** argv);
92 /** copy constructor prohibited */
93 AliHLTEsdCollectorComponent(const AliHLTEsdCollectorComponent&);
94 /** assignment operator prohibited */
95 AliHLTEsdCollectorComponent& operator=(const AliHLTEsdCollectorComponent&);
97 /** the ESD manager instance writes the ESDs */
98 AliHLTEsdManager* fpManager; //! transient
100 ClassDef(AliHLTEsdCollectorComponent, 0)