]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/global/AliHLTGlobalEsdConverterComponent.h
changing AliEMCALGeoUtils --> AliEMCALGeomery
[u/mrichter/AliRoot.git] / HLT / global / AliHLTGlobalEsdConverterComponent.h
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
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)
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_tpc_components
43  */
44 class 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
102 protected:
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