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