]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/AliHLTTPCNoiseMapComponent.h
correcting doxygen warnings
[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 the component to fill histograms with TPC output and read
29  * the noise map from HCDB by request.
30  * 
31  * The component implements the interface methods of the @ref AliHLTProcessor.
32  * It reads the data pad by pad and fills histograms.
33  * 
34  * The component has the following component arguments:
35  * 
36  * The histograms are filled on partition level and no argument is foreseen for this.
37  * 
38  * In the rare case we want to fill them per TPC side, the following 2 arguments can be used.
39  * 
40  * -plot-side-a   Histograms the TPC side A
41  *          
42  * -plot-side-c   Histograms the TPC side C
43  *
44  * -apply-noisemap  Reads the noise map from the HCDB (and plots it in a histogram)
45  *
46  * It returns an AliTPCCalPad object that can be used 
47  * for other plots (e.g. noise subtraction in histograms) 
48  *
49  * It makes use of the class AliHLTTPCNoise (see header for usage).
50  *
51  * -reset-histograms Resets histograms
52  *
53  * @ingroup alihlt_tpc
54  */
55  
56 class AliHLTTPCNoiseMapComponent : public AliHLTProcessor {
57     
58    public:
59    
60    /** standard constructor */    
61    AliHLTTPCNoiseMapComponent();           
62    /** destructor */
63    virtual ~AliHLTTPCNoiseMapComponent();
64
65       // Public functions to implement AliHLTComponent's interface.
66       // These functions are required for the registration process
67       
68       /** interface function, see AliHLTComponent for description */
69       const char* GetComponentID();                                                          
70       /** interface function, see AliHLTComponent for description */
71       void GetInputDataTypes( vector<AliHLTComponentDataType>& list);                        
72       /** interface function, see AliHLTComponent for description */
73       AliHLTComponentDataType GetOutputDataType();                                           
74       /** interface function, see AliHLTComponent for description */
75       int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList);                        
76       /** interface function, see AliHLTComponent for description */
77       virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier ); 
78       /** interface function, see AliHLTComponent for description */
79       AliHLTComponent* Spawn();                                                            
80       /** function for acting on the saving and cleaning histograms, after they are filled */
81       void MakeHistosPublic();
82   
83    protected:
84         
85       // Protected functions to implement AliHLTComponent's interface.
86       // These functions provide initialization as well as the actual processing capabilities of the component. 
87
88       int DoInit( int argc, const char** argv );
89       int DoDeinit();
90       int DoEvent( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
91       int Reconfigure(const char* cdbEntry, const char* chainId);
92
93       using AliHLTProcessor::DoEvent;
94
95    private:
96    
97       int Configure(const char* arguments);
98           
99       /** copy constructor prohibited */
100       AliHLTTPCNoiseMapComponent(const AliHLTTPCNoiseMapComponent&);
101
102       /** assignment operator prohibited */
103       AliHLTTPCNoiseMapComponent& operator=(const AliHLTTPCNoiseMapComponent&);
104
105       void ResetHistograms();
106       
107       AliHLTUInt32_t fSpecification;  //!transient
108
109       Bool_t fPlotSideA;      //!transient
110       Bool_t fPlotSideC;      //!transient
111       Bool_t fApplyNoiseMap;  //!transient
112       Bool_t fResetHistograms;//!transient
113       Bool_t fIsPacked;       //!transient   
114       Bool_t fIsUnpacked;     //!transient
115             
116       Int_t fCurrentSlice;     //!transient
117       Int_t fCurrentPartition; //!transient
118       Int_t fCurrentRow;       //!transient
119       
120       TH1 *fHistSignal;     //!transient 
121       TH2 *fHistMaxSignal;  //!transient 
122       TH2 *fHistTotSignal;  //!transient 
123       TH2 *fHistPadRMS;     //!transient 
124       TH2 *fHistCDBMap;     //!transient 
125       TH2 *fHistSideA;      //!transient    
126       TH2 *fHistSideC;      //!transient  
127            
128       ClassDef(AliHLTTPCNoiseMapComponent, 3)
129     };
130
131 #endif