]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TRD/AliHLTTRDClusterHistoComponent.h
HLT TRD update and cleanup, changes according to offline TRD (Theodor)
[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 "TH1D.h"
13 #include "TH2F.h"
14
15 /**
16  * @class AliHLTTRDQHistoComponent
17  * Component for ploting charge in clusters
18  * 
19  * Component ID: \b TRDQHisto <br>
20  * Library: \b libAliHLTTRD.
21  *
22  * Mandatory arguments: <br>
23  * 
24  * 
25  * Optional arguments: <br>
26  * 
27  *
28  * @ingroup alihlt_tpc_components
29  */
30 class TClonesArray;
31 class AliHLTTRDClusterHistoComponent : public AliHLTProcessor
32 {
33 public:
34   /** default constructor */
35   AliHLTTRDClusterHistoComponent();
36   /** destructor */
37   virtual ~AliHLTTRDClusterHistoComponent();
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   AliHLTTRDClusterHistoComponent(const AliHLTTRDClusterHistoComponent&);
73   /** assignment operator prohibited */
74   AliHLTTRDClusterHistoComponent& operator=(const AliHLTTRDClusterHistoComponent&);
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   TClonesArray* fClusterArray;  // input array
83   UInt_t fNevent;               // number of processed events
84   UInt_t feveryNevent;          // push back every nth event
85
86   TH1D *fNClsDet;
87   TH1D *fClsAmp;
88   TH1D *fClsAmpDrift;
89   TH1D *fClsTB;
90
91   TH1D *fClsAmpDriftDet[540];
92   TH1D *fClsAmpDist; 
93
94   TH1D *fSClsDist;
95   TH1D *fNScls;
96
97   // kryptogramm
98   TH2F fSlidingWindow[540];
99   TH2F *fClusterDist;
100   TH1D *fClusterCandCharge;
101
102   ClassDef(AliHLTTRDClusterHistoComponent, 0);
103 };
104 #endif