]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - HLT/global/AliHLTGlobalEsdConverterComponent.h
Update responsibles for MCH, MTR, HMP
[u/mrichter/AliRoot.git] / HLT / global / AliHLTGlobalEsdConverterComponent.h
... / ...
CommitLineData
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
9// @file AliHLTGlobalEsdConverterComponent.h
10// @author Matthias Richter
11// @date
12// @brief Global ESD converter component.
13// @note
14
15#include "AliHLTProcessor.h"
16#include "AliHLTComponentBenchmark.h"
17#include <vector>
18
19// forward declarations
20class AliESDEvent;
21class TTree;
22struct 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)
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
41 *
42 * @ingroup alihlt_global_components
43 */
44class AliHLTGlobalEsdConverterComponent : public AliHLTProcessor
45{
46 public:
47 /** standard constructor */
48 AliHLTGlobalEsdConverterComponent();
49 /** destructor */
50 virtual ~AliHLTGlobalEsdConverterComponent();
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
96 /// write object to TTree or directly
97 int fWriteTree; //!transient
98
99 /// verbosity level
100 int fVerbosity; //!transient
101
102protected:
103
104 /// the ESD
105 AliESDEvent* fESD; //! transient value
106
107 /// solenoid b field
108 Double_t fSolenoidBz; //! transient
109 AliHLTComponentBenchmark fBenchmark; // benchmark
110
111 ClassDef(AliHLTGlobalEsdConverterComponent, 0)
112};
113#endif