4 #ifndef ALIHLTGLOBALESDCONVERTERCOMPONENT_H
5 #define ALIHLTGLOBALESDCONVERTERCOMPONENT_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 AliHLTGlobalEsdConverterComponent.h
11 // @author Matthias Richter
13 // @brief Global ESD converter component.
16 #include "AliHLTProcessor.h"
17 #include "AliHLTComponentBenchmark.h"
20 // forward declarations
23 struct AliHLTTracksData;
26 * @class AliHLTGlobalEsdConverterComponent
27 * Global collector for information designated for the HLT ESD.
29 * componentid: \b GlobalEsdConverter <br>
30 * componentlibrary: \b libAliHLTGlobal.so <br>
32 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
34 * write ESD directly to output (::kAliHLTDataTypeESDObject)
35 * this has been made the default behavior in Sep 2008.
37 * write ESD directly to TTree and to output (::kAliHLTDataTypeESDTree)
38 * \li -skipobject=name1,name2,... <br>
39 * comma separated list of ESD object names to be skipped, default is
40 * AliESDZDC,AliESDFMD,Cascades,Kinks,AliRawDataErrorLogs,AliESDACORDE
41 * leave blank to disable the option
43 * @ingroup alihlt_global_components
45 class AliHLTGlobalEsdConverterComponent : public AliHLTProcessor
48 /** standard constructor */
49 AliHLTGlobalEsdConverterComponent();
51 virtual ~AliHLTGlobalEsdConverterComponent();
53 // interface methods of base class
54 const char* GetComponentID() {return "GlobalEsdConverter";};
55 void GetInputDataTypes(AliHLTComponentDataTypeList& list);
56 AliHLTComponentDataType GetOutputDataType();
57 void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
58 AliHLTComponent* Spawn() {return new AliHLTGlobalEsdConverterComponent;}
61 // interface methods of base class
62 int DoInit(int argc, const char** argv);
64 int DoEvent( const AliHLTComponentEventData& evtData,
65 AliHLTComponentTriggerData& trigData);
67 using AliHLTProcessor::DoEvent;
70 * Process the input data blocks.
71 * @param pTree tree to be filled
72 * @param pESD ESD to be filled
73 * @return neg. error code if failed
75 int ProcessBlocks(TTree* pTree, AliESDEvent* pESD);
77 // void FillBenchmarkHistos(Double_t *statistics, TString *names);
79 /** copy constructor prohibited */
80 AliHLTGlobalEsdConverterComponent(const AliHLTGlobalEsdConverterComponent&);
81 /** assignment operator prohibited */
82 AliHLTGlobalEsdConverterComponent& operator=(const AliHLTGlobalEsdConverterComponent&);
85 * (Re)Configure from the CDB
86 * Loads the following objects:
87 * - HLT/ConfigHLT/SolenoidBz
89 int Reconfigure(const char* cdbEntry, const char* chainId);
92 * Configure the component.
93 * Parse a string for the configuration arguments and set the component
96 int Configure(const char* arguments);
98 /// write object to TTree or directly
99 int fWriteTree; //!transient
102 int fVerbosity; //!transient
107 AliESDEvent* fESD; //! transient value
110 Double_t fSolenoidBz; //! transient
111 AliHLTComponentBenchmark fBenchmark; // benchmark
113 ClassDef(AliHLTGlobalEsdConverterComponent, 0)