Updated SNM Glauber fit
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCdEdxMonitoringComponent.h
1 //-*- Mode: C++ -*-
2 // $Id$
3 #ifndef ALIHLTTPCDEDXMONITORINGCOMPONENT_H
4 #define ALIHLTTPCDEDXMONITORINGCOMPONENT_H
5
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
10 /// @file   AliHLTTPCdEdxMonitoringComponent.h
11 /// @author Per-Ivar L√łnne, Jochen Thaeder, Matthias Richter, Alexander Kalweit
12 /// @date   21.08.2011
13 /// @brief  Component for reading ESD from chain and produce a dEdx monitoring plot
14 ///
15
16 /**
17  * @class AliHLTTPCdEdxMonitoringComponent
18  * A component meant to read ESD-files from the chain online
19  * and produce a plot for dEdx monitoring.
20  * 
21  * description of what the component does in more detail
22  * bla
23  * bla
24  *
25  * <h2>General properties:</h2>
26  *
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>
31  *
32  * <h2>Mandatory arguments:</h2>
33  *
34  * <h2>Optional arguments:</h2>
35  * 
36  * <h2>Configuration</h2>
37  * \li -xbins <i> fxbins </i> <br>
38  *     number of bins on x-axis
39  *
40  * <h2>Configuration</h2>
41  * \li -xbins <i> fxmin </i> <br>
42  *     minimum value of x-axis
43  *
44  * <h2>Configuration</h2>
45  * \li -xbins <i> fxmax </i> <br>
46  *     maximum value of x-axis
47  *
48  * <h2>Configuration</h2>
49  * \li -ybins <i> fybins </i> <br>
50  *     number of bins on y-axis
51  *
52  * <h2>Configuration</h2>
53  * \li -ybins <i> fymin </i> <br>
54  *     minimum value of y-axis
55  *
56  * <h2>Configuration</h2>
57  * \li -ybins <i> fymax </i> <br>
58  *     maximum value of y-axis
59  *
60  * <h2>Default CDB entries:</h2>
61  *
62  * <h2>Performance:</h2>
63  *
64  * <h2>Memory Consumption:</h2>
65  *
66  * <h2>Output size:</h2>
67  * 4096
68  *
69  * @ingroup alihlt
70  */
71
72 #include "AliHLTProcessor.h"
73
74 class AliESDtrackCuts; // For setting track cuts
75 class TH2F;
76
77 class AliHLTTPCdEdxMonitoringComponent : public AliHLTProcessor 
78 {
79 public:
80
81   /*----------------------------------------------------*
82    *          Constructor and destructor 
83    *----------------------------------------------------*/
84     
85   AliHLTTPCdEdxMonitoringComponent();
86
87   virtual ~AliHLTTPCdEdxMonitoringComponent();
88
89
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);
96
97   // Spawn function, return new class instance
98   AliHLTComponent* Spawn();
99
100  protected:
101   // AliHLTComponent interface functions
102   Int_t DoInit( Int_t argc, const char** argv );
103   Int_t DoDeinit();
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);
109
110 private:
111   /** copy constructor prohibited */
112   AliHLTTPCdEdxMonitoringComponent(const AliHLTTPCdEdxMonitoringComponent&);
113   /** assignment operator prohibited */
114   AliHLTTPCdEdxMonitoringComponent& operator=(const AliHLTTPCdEdxMonitoringComponent&);
115
116   // Sets standard trackcuts
117   void SetDefaultConfiguration();
118
119   // trackcuts
120   AliESDtrackCuts *fESDTrackCuts; //! transistent
121
122   // histogram
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
130   
131
132   // sets some plotstyles
133   void Plotstyle();
134
135   ClassDef(AliHLTTPCdEdxMonitoringComponent, 0)
136 };
137 #endif