]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/AliHLTTPCNoiseMapComponent.h
More code clean up.
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCNoiseMapComponent.h
1 // -*- Mode: C++ -*-
2 // $Id$
3
4 #ifndef ALIHLTTPCNOISEMAPCOMPONENT_H
5 #define ALIHLTTPCNOISEMAPCOMPONENT_H
6
7 //* This file is property of and copyright by the ALICE HLT Project        * 
8 //* ALICE Experiment at CERN, All rights reserved.                         *
9 //* See cxx source for full Copyright notice                               *
10
11 /** @file   AliHLTTPCNoiseMapComponent.h
12     @author Kalliopi Kanaki
13     @date   
14     @brief  Component for plotting TPC data and applying noise map
15 */
16
17 #include "AliHLTProcessor.h"
18
19 //forward declarations
20 class AliHLTTPCDigitReader;
21 class TH1;
22 class TH2;
23 class AliTPCCalPad;
24
25 /**
26  * @class AliHLTTPCNoiseMapComponent
27  * 
28  * Implementation of a component to fill histograms with TPC raw output 
29  * and read the noise map from HCDB by request.
30  * 
31  * The component implements the interface methods of the @ref AliHLTProcessor.
32  * It reads the raw data pad by pad and fills histograms per partition
33  * 
34  * The component has the following component arguments:
35  * <h2>General properties:</h2>
36  *
37  * Component ID: \b TPCNoiseMap <br>
38  * Library: \b libAliHLTTPC.so     <br>
39  * Input Data Types: @ref kAliHLTDataTypeDDLRaw <br>
40  * Output Data Types: @ref kAliHLTDataTypeHistogram <br>
41  *
42  * <h2>Mandatory arguments:</h2>
43  *
44  * <h2>Optional arguments:</h2>
45  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
46  * \li -read-noisemap      <i> teststring   </i> <br>
47  *      Reads the noise map from the HCDB (and plots it in a histogram)
48  *
49  * \li -reset-histograms       <br>
50  *      Resets histograms
51  *
52  * <h2>Configuration:</h2>
53  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
54  * \li -config1      <i> teststring   </i> <br>
55  *      a configuration argument with one parameter
56  * \li -config2                            <br>
57  *      a configuration argument without parameters
58  *
59  * <h2>Default CDB entries:</h2>
60  * The component has two CDB entries in
61  * <tt>HLT/ConfigTPC/TPCNoiseMapComponent</tt>.
62  * It does not load any configuration from the global <tt>ConfigHLT</tt>
63  * folder.
64  * \li -TObjString object holding a string with the configuration parameters
65  *      explained above
66  *
67  * <h2>Performance:</h2>
68  * No clue
69  *
70  * <h2>Memory consumption:</h2>
71  * No clue
72  *
73  * <h2>Output size:</h2>
74  * Much data
75  *
76  * More detailed description.
77  *
78  * @ingroup alihlt_tpc_components
79  */ 
80
81 class AliHLTTPCNoiseMapComponent : public AliHLTProcessor {
82     
83    public:
84    
85    /** standard constructor */    
86    AliHLTTPCNoiseMapComponent();           
87    /** destructor */
88    virtual ~AliHLTTPCNoiseMapComponent();
89
90       // Public functions to implement AliHLTComponent's interface.
91       // These functions are required for the registration process
92       
93       /** interface function, see AliHLTComponent for description */
94       const char* GetComponentID();                                                          
95       /** interface function, see AliHLTComponent for description */
96       void GetInputDataTypes( vector<AliHLTComponentDataType>& list);                        
97       /** interface function, see AliHLTComponent for description */
98       AliHLTComponentDataType GetOutputDataType();                                           
99       /** interface function, see AliHLTComponent for description */
100       int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList);                        
101       /** interface function, see AliHLTComponent for description */
102       virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier ); 
103       /** interface function, see AliHLTComponent for description */
104       AliHLTComponent* Spawn();                                                            
105       /** function for acting on the saving and cleaning histograms, after they are filled */
106       void MakeHistosPublic();
107   
108    protected:
109         
110       // Protected functions to implement AliHLTComponent's interface.
111       // These functions provide initialization as well as the actual processing capabilities of the component. 
112
113       int DoInit( int argc, const char** argv );
114       int DoDeinit();
115       int DoEvent( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
116       int Reconfigure(const char* cdbEntry, const char* chainId);
117
118       using AliHLTProcessor::DoEvent;
119
120    private:
121    
122       int Configure(const char* arguments);
123           
124       /** copy constructor prohibited */
125       AliHLTTPCNoiseMapComponent(const AliHLTTPCNoiseMapComponent&);
126
127       /** assignment operator prohibited */
128       AliHLTTPCNoiseMapComponent& operator=(const AliHLTTPCNoiseMapComponent&);
129       
130       void InitializeHistograms(UInt_t minSlice, UInt_t maxSlice, UInt_t minPartition, UInt_t maxPartition);
131       void ResetHistograms();
132       
133       AliHLTUInt32_t fSpecification;  //!transient
134
135       Bool_t fReadNoiseMap;    //!transient
136       Bool_t fResetHistograms; //!transient      
137       Bool_t fInitHist;        //!transient
138
139       Int_t fCurrentRow; //!transient
140       
141       TH1 *fHistSignal;     //!transient 
142      
143       TH2 *fHistSideAMaxSignal;  //!transient 
144       TH2 *fHistSideATotSignal;  //!transient 
145       TH2 *fHistSideAPadRMS;     //!transient 
146      
147       TH2 *fHistSideCMaxSignal;  //!transient 
148       TH2 *fHistSideCTotSignal;  //!transient 
149       TH2 *fHistSideCPadRMS;     //!transient 
150      
151       TH2 *fHistCDBMap;     //!transient 
152            
153       ClassDef(AliHLTTPCNoiseMapComponent, 0)  // HLT component for reading the TPC noise map from HCDB.
154     };
155
156 #endif