3 #ifndef ALIHLTTPCDEDXMONITORINGCOMPONENT_H
4 #define ALIHLTTPCDEDXMONITORINGCOMPONENT_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 *
10 /// @file AliHLTTPCdEdxMonitoringComponent.h
11 /// @author Per-Ivar Lønne, Jochen Thaeder, Matthias Richter, Alexander Kalweit
13 /// @brief Component for reading ESD from chain and produce a dEdx monitoring plot
17 * @class AliHLTTPCdEdxMonitoringComponent
18 * A component meant to read ESD-files from the chain online
19 * and produce a plot for dEdx monitoring.
21 * description of what the component does in more detail
25 * <h2>General properties:</h2>
27 * Component ID: \b TPCdEdxMonitoring <br>
28 * Library: \b libAliHLTTPC.so <br>
29 * Input Data Types: @ref kAliHLTDataTypeESDObject|kAliHLTDataOriginAny <br>
30 * Output Data Types: @ref kAliHLTDataTypeHistogram|kAliHLTDataOriginHLT <br>
32 * <h2>Mandatory arguments:</h2>
34 * <h2>Optional arguments:</h2>
36 * <h2>Configuration</h2>
37 * \li -xbins <i> fxbins </i> <br>
38 * number of bins on x-axis
40 * <h2>Configuration</h2>
41 * \li -xbins <i> fxmin </i> <br>
42 * minimum value of x-axis
44 * <h2>Configuration</h2>
45 * \li -xbins <i> fxmax </i> <br>
46 * maximum value of x-axis
48 * <h2>Configuration</h2>
49 * \li -ybins <i> fybins </i> <br>
50 * number of bins on y-axis
52 * <h2>Configuration</h2>
53 * \li -ybins <i> fymin </i> <br>
54 * minimum value of y-axis
56 * <h2>Configuration</h2>
57 * \li -ybins <i> fymax </i> <br>
58 * maximum value of y-axis
60 * <h2>Default CDB entries:</h2>
62 * <h2>Performance:</h2>
64 * <h2>Memory Consumption:</h2>
66 * <h2>Output size:</h2>
72 #include "AliHLTProcessor.h"
74 class AliESDtrackCuts; // For setting track cuts
77 class AliHLTTPCdEdxMonitoringComponent : public AliHLTProcessor
81 /*----------------------------------------------------*
82 * Constructor and destructor
83 *----------------------------------------------------*/
85 AliHLTTPCdEdxMonitoringComponent();
87 virtual ~AliHLTTPCdEdxMonitoringComponent();
90 // AliHLTComponent interface functions
91 const char* GetComponentID();
92 void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
93 AliHLTComponentDataType GetOutputDataType();
94 void GetOutputDataSize( unsigned long& constBase, Double_t& inputMultiplier );
95 void GetOCDBObjectDescription( TMap* const targetMap);
97 // Spawn function, return new class instance
98 AliHLTComponent* Spawn();
101 // AliHLTComponent interface functions
102 Int_t DoInit( Int_t argc, const char** argv );
104 Int_t DoEvent( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData);
105 using AliHLTProcessor::DoEvent;
106 Int_t ScanConfigurationArgument(Int_t argc, const char** argv);
107 Int_t Reconfigure(const char* cdbEntry, const char* chainId);
108 Int_t ReadPreprocessorValues(const char* modules);
111 /** copy constructor prohibited */
112 AliHLTTPCdEdxMonitoringComponent(const AliHLTTPCdEdxMonitoringComponent&);
113 /** assignment operator prohibited */
114 AliHLTTPCdEdxMonitoringComponent& operator=(const AliHLTTPCdEdxMonitoringComponent&);
116 // Sets standard trackcuts
117 void SetDefaultConfiguration();
120 AliESDtrackCuts *fESDTrackCuts; //! transistent
123 TH2F *fHist; //! transistent
124 Int_t fxbins; //! transistent
125 Double_t fxmin; //! transistent
126 Double_t fxmax; //! transistent
127 Int_t fybins; //! transistent
128 Double_t fymin; //! transistent
129 Double_t fymax; //! transistent
132 // sets some plotstyles
135 ClassDef(AliHLTTPCdEdxMonitoringComponent, 0)