]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/AliHLTTPCHistogramHandlerComponent.h
added some more summed histograms in the HistogramHandlerComponent; cleanup in the...
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCHistogramHandlerComponent.h
1 // -*- Mode: C++ -*-
2 // $Id$
3
4 #ifndef ALIHLTTPCHISTOGRAMHANDLERCOMPONENT_H
5 #define ALIHLTTPCHISTOGRAMHANDLERCOMPONENT_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   AliHLTTPCHistogramHandlerComponent.h
12     @author Kalliopi Kanaki
13     @date   
14     @brief  Component for acting upon histograms
15 */
16
17 // see below for class documentation
18 // or
19 // refer to README to build package
20 // or
21 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
22
23 #include "AliHLTProcessor.h"
24
25 class TH1;
26 class TH2;
27
28 /**
29  * @class AliHLTTPCHistogramHandlerComponent
30  * Implementation of the component to read histograms from other
31  * components and add, divide etc.
32  * The component implements the interface methods of the @ref AliHLTProcessor.
33  *  
34  * The component has the following component arguments:
35  *
36  * -sum-noise-histograms Loops over the output of TPCNoiseMap and adds the histograms
37  *
38  * It loops over histogram input and sums up the TPC histograms per side (at the moment).
39  * 
40  * @ingroup alihlt_tpc
41  */
42 class AliHLTTPCHistogramHandlerComponent : public AliHLTProcessor {
43     
44    public:
45    
46    /** standard constructor */    
47    AliHLTTPCHistogramHandlerComponent();           
48    /** destructor */
49    virtual ~AliHLTTPCHistogramHandlerComponent();
50
51       // Public functions to implement AliHLTComponent's interface.
52       // These functions are required for the registration process
53       
54       /** interface function, see @ref AliHLTComponent for description */
55       const char* GetComponentID();                                                          
56       /** interface function, see @ref AliHLTComponent for description */
57       void GetInputDataTypes( vector<AliHLTComponentDataType>& list);                        
58       /** interface function, see @ref AliHLTComponent for description */
59       AliHLTComponentDataType GetOutputDataType();                                           
60       /** interface function, see @ref AliHLTComponent for description */
61       int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList);                        
62       /** interface function, see @ref AliHLTComponent for description */
63       virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier ); 
64       /** interface function, see @ref AliHLTComponent for description */
65       AliHLTComponent* Spawn();                                                            
66       /** function for acting on the saving and cleaning histograms, after they are filled */
67       void MakeHistosPublic();
68
69    protected:
70         
71       // Protected functions to implement AliHLTComponent's interface.
72       // These functions provide initialization as well as the actual processing capabilities of the component. 
73
74       int DoInit( int argc, const char** argv );
75       int DoDeinit();
76       int DoEvent( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
77       int Reconfigure(const char* cdbEntry, const char* chainId);
78
79       using AliHLTProcessor::DoEvent;
80
81    private:
82    
83       int Configure(const char* arguments);
84           
85       /** copy constructor prohibited */
86       AliHLTTPCHistogramHandlerComponent(const AliHLTTPCHistogramHandlerComponent&);
87
88       /** assignment operator prohibited */
89       AliHLTTPCHistogramHandlerComponent& operator=(const AliHLTTPCHistogramHandlerComponent&);
90
91       /** the reader object for data decoding */
92       AliHLTUInt32_t fSpecification;  //!transient
93       
94       
95       Bool_t fNoiseHistograms;   //!transient
96       Bool_t fKryptonHistograms; //!transient
97       
98       Int_t fSlice;  //!transient
99       
100       TH1 *fHistTH1Tmp;                //!transient  
101       TH1 *fTotalClusterChargeIROCAll; //!transient
102       TH1 *fTotalClusterChargeOROCAll; //!transient
103       TH1 *fQMaxPartitionAll;          //!transient
104       TH1 *fPlotQmaxROCAll;            //!transient
105       TH1 *fNumberOfClusters;          //!transient
106             
107       TH2 *fHistTH2Tmp;    //!transient
108       TH2 *fHistTPCSideAmax;  //!transient      
109       TH2 *fHistTPCSideCmax;  //!transient  
110       TH2 *fHistTPCSideAtot;  //!transient      
111       TH2 *fHistTPCSideCtot;  //!transient  
112       TH2 *fHistTPCSideArms;  //!transient      
113       TH2 *fHistTPCSideCrms;  //!transient  
114
115             
116       ClassDef(AliHLTTPCHistogramHandlerComponent, 2)
117     };
118
119 #endif