]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TRD/AliHLTTRDHistoMergerComponent.h
quit debug stream in calibration components if debug was enabled (Theo)
[u/mrichter/AliRoot.git] / HLT / TRD / AliHLTTRDHistoMergerComponent.h
1 //-*- Mode: C++ -*-
2 // $Id$
3
4 #ifndef ALIHLTTRDHISTOMERGERCOMPONENT_H
5 #define ALIHLTTRDHISTOMERGERCOMPONENT_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                               *
9
10
11 #include "AliHLTProcessor.h"
12
13 /**
14  * @class AliHLTTRDHistoMergerComponent
15  * Component for adding histos from the histoComponents if those are running partition wise (SM wise) .
16  * Expects all input blocks to be comparable.
17  * 
18  * Component ID: \b TRDHistoMerger <br>
19  * Library: \b libAliHLTTRD.
20  *
21  * Mandatory arguments: <br>
22  * 
23  * 
24  * Optional arguments: <br>
25  * 
26  *
27  * @ingroup alihlt_tpc_components
28  */
29
30 class TH1;
31 class AliHLTTRDHistoMergerComponent : public AliHLTProcessor
32 {
33 public:
34   /** default constructor */
35   AliHLTTRDHistoMergerComponent();
36   /** destructor */
37   virtual ~AliHLTTRDHistoMergerComponent();
38
39   // Public functions to implement AliHLTComponent's interface.
40   // These functions are required for the registration process
41
42   /** interface function, see AliHLTComponent for description */
43   const char* GetComponentID();
44   /** interface function, see AliHLTComponent for description */
45   void GetInputDataTypes(AliHLTComponentDataTypeList& list);
46   /** interface function, see AliHLTComponent for description */
47   AliHLTComponentDataType GetOutputDataType();
48   /** interface function, see AliHLTComponent for description */
49   virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
50   /** interface function, see AliHLTComponent for description */
51   AliHLTComponent* Spawn();
52
53 protected:
54
55   // Protected functions to implement AliHLTComponent's interface.
56   // These functions provide initialization as well as the actual processing
57   // capabilities of the component. 
58
59   /** interface function, see AliHLTComponent for description */
60   int DoInit( int argc, const char** argv );
61   /** interface function, see AliHLTComponent for description */
62   int DoDeinit();
63   /** interface function, see AliHLTComponent for description */
64   int DoEvent( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
65
66   using AliHLTProcessor::DoEvent;
67   
68   int Configure(const char* arguments);
69
70 private:
71   /** copy constructor prohibited */
72   AliHLTTRDHistoMergerComponent(const AliHLTTRDHistoMergerComponent&);
73   /** assignment operator prohibited */
74   AliHLTTRDHistoMergerComponent& operator=(const AliHLTTRDHistoMergerComponent&);
75   /**
76    * Configure the component.
77    * Parse a string for the configuration arguments and set the component
78    * properties.
79    */ 
80
81   AliHLTUInt32_t fOutputSize;   // output size
82   TH1* fHistoArr[9];            // array containing the added histos
83   Bool_t fIncSM[18];            // array for telling which super module was already added
84
85   ClassDef(AliHLTTRDHistoMergerComponent, 0);
86 };
87 #endif