Line data Source code
1 : //-*- Mode: C++ -*-
2 : // $Id$
3 : #ifndef ALIHLTITSCLUSTERHISTOCOMPONENT_H
4 : #define ALIHLTITSCLUSTERHISTOCOMPONENT_H
5 : //* This file is property of and copyright by the ALICE HLT Project *
6 : //* ALICE Experiment at CERN, All rights reserved. *
7 : //* See cxx source for full Copyright notice *
8 :
9 : /** @file AliHLTITSClusterHistoComponent.h
10 : @author Gaute Ovrebekk
11 : @brief Component for ploting clusters
12 : */
13 :
14 : #include "AliHLTProcessor.h"
15 : #include "TH1F.h"
16 : #include "TH2F.h"
17 : #include "AliHLTITSSpacePointData.h"
18 : #include "TClonesArray.h"
19 : #include "AliITSRecPoint.h"
20 :
21 : /**
22 : * @class AliHLTITSQHistoComponent
23 : * Component for ploting charge in clusters
24 : *
25 : * Component ID: \b ITSClusterHisto <br>
26 : * Library: \b libAliHLTITS.so
27 : *
28 : * Mandatory arguments: <br>
29 : *
30 : *
31 : * Optional arguments: <br>
32 : * \li -plot-all <br>
33 : * will plot all histograms in the component.
34 : * \li -plot-xy <br>
35 : * will plot a historgam of the x and y projection of the clusters.
36 : * \li -plot-charge <i> multiplicity </i> <br>
37 : * will plot the charge of the clusters.
38 : * \li -plot-phieta <br>
39 : * will plot the phi vs eta distrubution of the clusters.
40 : * @ingroup alihlt_tpc_components
41 : */
42 : class AliHLTITSClusterHistoComponent : public AliHLTProcessor
43 : {
44 : public:
45 : /** default constructor */
46 : AliHLTITSClusterHistoComponent();
47 : /** destructor */
48 : virtual ~AliHLTITSClusterHistoComponent();
49 :
50 : // Public functions to implement AliHLTComponent's interface.
51 : // These functions are required for the registration process
52 :
53 : /** interface function, see AliHLTComponent for description */
54 : const char* GetComponentID();
55 : /** interface function, see AliHLTComponent for description */
56 : void GetInputDataTypes(AliHLTComponentDataTypeList& list);
57 : /** interface function, see AliHLTComponent for description */
58 : AliHLTComponentDataType GetOutputDataType();
59 : /** interface function, see AliHLTComponent for description */
60 : virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
61 : /** interface function, see AliHLTComponent for description */
62 : AliHLTComponent* Spawn();
63 :
64 : protected:
65 :
66 : // Protected functions to implement AliHLTComponent's interface.
67 : // These functions provide initialization as well as the actual processing
68 : // capabilities of the component.
69 :
70 : /** interface function, see AliHLTComponent for description */
71 : int DoInit( int argc, const char** argv );
72 : /** interface function, see AliHLTComponent for description */
73 : int DoDeinit();
74 : /** interface function, see AliHLTComponent for description */
75 : int DoEvent( const AliHLTComponentEventData& /*evtData*/, AliHLTComponentTriggerData& trigData );
76 :
77 : int Reconfigure(const char* cdbEntry, const char* chainId);
78 :
79 : using AliHLTProcessor::DoEvent;
80 :
81 : private:
82 : /** copy constructor prohibited */
83 : AliHLTITSClusterHistoComponent(const AliHLTITSClusterHistoComponent&);
84 : /** assignment operator prohibited */
85 : AliHLTITSClusterHistoComponent& operator=(const AliHLTITSClusterHistoComponent&);
86 : /**
87 : * Configure the component.
88 : * Parse a string for the configuration arguments and set the component
89 : * properties.
90 : */
91 : int Configure(const char* arguments);
92 :
93 : TH2F * fXY; //! transient
94 : TH2F **fPhieta; //! transient
95 : TH1F * fCharge; //! transient
96 :
97 : Bool_t fPlotCharge; //! transient
98 : Bool_t fPlotXYPhiEta; //! transient
99 :
100 : /// maximum required size of the output buffer
101 : /// dynamically adjusted
102 : int fOutputSize; //! transient
103 :
104 6 : ClassDef(AliHLTITSClusterHistoComponent, 3);
105 :
106 : };
107 : #endif
|