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