]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TRD/AliHLTTRDClusterHistoComponent.h
- add new calibration in the reconstruction macro (Theo)
[u/mrichter/AliRoot.git] / HLT / TRD / AliHLTTRDClusterHistoComponent.h
1 //-*- Mode: C++ -*-
2 // $Id$
3
4 #ifndef ALIHLTTRDCLUSTERHISTOCOMPONENT_H
5 #define ALIHLTTRDCLUSTERHISTOCOMPONENT_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 #include "TH1F.h"
13
14 /**
15  * @class AliHLTTRDClusterHistoComponent
16  * Component for ploting charge in clusters
17  * 
18  * Component ID: \b TRDClusterHisto <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 class TClonesArray;
30 class AliHLTTRDClusterHistoComponent : public AliHLTProcessor
31 {
32 public:
33   /** default constructor */
34   AliHLTTRDClusterHistoComponent();
35   /** destructor */
36   virtual ~AliHLTTRDClusterHistoComponent();
37
38   // Public functions to implement AliHLTComponent's interface.
39   // These functions are required for the registration process
40
41   /** interface function, see AliHLTComponent for description */
42   const char* GetComponentID();
43   /** interface function, see AliHLTComponent for description */
44   void GetInputDataTypes(AliHLTComponentDataTypeList& list);
45   /** interface function, see AliHLTComponent for description */
46   AliHLTComponentDataType GetOutputDataType();
47   /** interface function, see AliHLTComponent for description */
48   virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
49   /** interface function, see AliHLTComponent for description */
50   AliHLTComponent* Spawn();
51
52 protected:
53
54   // Protected functions to implement AliHLTComponent's interface.
55   // These functions provide initialization as well as the actual processing
56   // capabilities of the component. 
57
58   /** interface function, see AliHLTComponent for description */
59   int DoInit( int argc, const char** argv );
60   /** interface function, see AliHLTComponent for description */
61   int DoDeinit();
62   /** interface function, see AliHLTComponent for description */
63   int DoEvent( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
64
65   using AliHLTProcessor::DoEvent;
66
67   int Configure(const char* arguments);
68   
69 private:
70   /** copy constructor prohibited */
71   AliHLTTRDClusterHistoComponent(const AliHLTTRDClusterHistoComponent&);
72   /** assignment operator prohibited */
73   AliHLTTRDClusterHistoComponent& operator=(const AliHLTTRDClusterHistoComponent&);
74   /**
75    * Configure the component.
76    * Parse a string for the configuration arguments and set the component
77    * properties.
78    */ 
79
80   AliHLTUInt32_t fOutputSize;   // output size
81   AliHLTUInt32_t fSpec;         // accumulated specification
82   TClonesArray* fClusterArray;  // input array
83
84   TH1F *fNClsDet;               // distribution of detectors
85   TH1F *fClsAmp;                // distribution of charge
86   TH1F *fClsAmpDrift;           // distribution of charge in drift region
87   TH1F *fClsTB;                 // distribution of time bins
88
89   TH1F *fClsAmpDriftDet[540];
90   TH1F *fClsAmpDist; 
91
92   TH1F *fSClsDist;
93   TH1F *fNScls;
94
95   TH1F *fEvSize;                // Event size in kbyte
96
97   ClassDef(AliHLTTRDClusterHistoComponent, 0);
98 };
99 #endif