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