make AliVVevent abstract (=0)
[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;
accd913d 22class AliESDfriend;
a1408c4b 23class TTree;
24struct AliHLTTracksData;
2352edc3 25class 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 */
47class 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 107protected:
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