]>
Commit | Line | Data |
---|---|---|
a1408c4b | 1 | //-*- Mode: C++ -*- |
2 | // $Id$ | |
3 | #ifndef ALIHLTGLOBALESDCONVERTERCOMPONENT_H | |
4 | #define ALIHLTGLOBALESDCONVERTERCOMPONENT_H | |
5 | //* This file is property of and copyright by the ALICE HLT Project * | |
6 | //* ALICE Experiment at CERN, All rights reserved. * | |
7 | //* See cxx source for full Copyright notice * | |
8 | ||
d57fc872 | 9 | // @file AliHLTGlobalEsdConverterComponent.h |
10 | // @author Matthias Richter | |
11 | // @date | |
12 | // @brief Global ESD converter component. | |
13 | // @note | |
a1408c4b | 14 | |
15 | #include "AliHLTProcessor.h" | |
57a4102f | 16 | #include "AliHLTComponentBenchmark.h" |
a1408c4b | 17 | #include <vector> |
18 | ||
19 | // forward declarations | |
20 | class AliESDEvent; | |
21 | class TTree; | |
22 | struct AliHLTTracksData; | |
23 | ||
24 | /** | |
25 | * @class AliHLTGlobalEsdConverterComponent | |
26 | * Global collector for information designated for the HLT ESD. | |
27 | * | |
28 | * componentid: \b GlobalEsdConverter <br> | |
29 | * componentlibrary: \b libAliHLTGlobal.so <br> | |
30 | * Arguments: <br> | |
31 | * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting --> | |
32 | * \li -notree <br> | |
33 | * write ESD directly to output (::kAliHLTDataTypeESDObject) | |
34 | * this has been made the default behavior in Sep 2008. | |
35 | * \li -tree <br> | |
36 | * write ESD directly to TTree and to output (::kAliHLTDataTypeESDTree) | |
d57fc872 | 37 | * \li -skipobject=name1,name2,... <br> |
38 | * comma separated list of ESD object names to be skipped, default is | |
39 | * AliESDZDC,AliESDFMD,Cascades,Kinks,AliRawDataErrorLogs,AliESDACORDE | |
40 | * leave blank to disable the option | |
a1408c4b | 41 | * |
42 | * @ingroup alihlt_tpc_components | |
43 | */ | |
44 | class AliHLTGlobalEsdConverterComponent : public AliHLTProcessor | |
45 | { | |
46 | public: | |
47 | /** standard constructor */ | |
48 | AliHLTGlobalEsdConverterComponent(); | |
49 | /** destructor */ | |
18ada816 | 50 | virtual ~AliHLTGlobalEsdConverterComponent(); |
a1408c4b | 51 | |
52 | // interface methods of base class | |
53 | const char* GetComponentID() {return "GlobalEsdConverter";}; | |
54 | void GetInputDataTypes(AliHLTComponentDataTypeList& list); | |
55 | AliHLTComponentDataType GetOutputDataType(); | |
56 | void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier); | |
57 | AliHLTComponent* Spawn() {return new AliHLTGlobalEsdConverterComponent;} | |
58 | ||
59 | protected: | |
60 | // interface methods of base class | |
61 | int DoInit(int argc, const char** argv); | |
62 | int DoDeinit(); | |
63 | int DoEvent( const AliHLTComponentEventData& evtData, | |
64 | AliHLTComponentTriggerData& trigData); | |
65 | ||
66 | using AliHLTProcessor::DoEvent; | |
67 | ||
68 | /** | |
69 | * Process the input data blocks. | |
70 | * @param pTree tree to be filled | |
71 | * @param pESD ESD to be filled | |
72 | * @return neg. error code if failed | |
73 | */ | |
74 | int ProcessBlocks(TTree* pTree, AliESDEvent* pESD); | |
75 | ||
76 | private: | |
77 | /** copy constructor prohibited */ | |
78 | AliHLTGlobalEsdConverterComponent(const AliHLTGlobalEsdConverterComponent&); | |
79 | /** assignment operator prohibited */ | |
80 | AliHLTGlobalEsdConverterComponent& operator=(const AliHLTGlobalEsdConverterComponent&); | |
81 | ||
82 | /** | |
83 | * (Re)Configure from the CDB | |
84 | * Loads the following objects: | |
85 | * - HLT/ConfigHLT/SolenoidBz | |
86 | */ | |
87 | int Reconfigure(const char* cdbEntry, const char* chainId); | |
88 | ||
89 | /** | |
90 | * Configure the component. | |
91 | * Parse a string for the configuration arguments and set the component | |
92 | * properties. | |
93 | */ | |
94 | int Configure(const char* arguments); | |
95 | ||
a1408c4b | 96 | /// write object to TTree or directly |
97 | int fWriteTree; //!transient | |
98 | ||
093b64dc | 99 | /// verbosity level |
100 | int fVerbosity; //!transient | |
101 | ||
18ada816 | 102 | protected: |
103 | ||
104 | /// the ESD | |
105 | AliESDEvent* fESD; //! transient value | |
106 | ||
107 | /// solenoid b field | |
108 | Double_t fSolenoidBz; //! transient | |
57a4102f | 109 | AliHLTComponentBenchmark fBenchmark; // benchmark |
18ada816 | 110 | |
a1408c4b | 111 | ClassDef(AliHLTGlobalEsdConverterComponent, 0) |
112 | }; | |
113 | #endif |