Line data Source code
1 : //-*- Mode: C++ -*-
2 : // ************************************************************************
3 : // This file is property of and copyright by the ALICE HLT Project *
4 : // ALICE Experiment at CERN, All rights reserved. *
5 : // See cxx source for full Copyright notice *
6 : // *
7 : //*************************************************************************
8 :
9 : /// @file AliHLTTPCdEdxComponent.h
10 : /// @author Sergey Gorbunov <sergey.gorbunov@kip.uni-heidelberg.de>
11 : /// @date June 2009
12 : /// @brief An ITS tracker processing component for the HLT
13 :
14 : #ifndef ALIHLTTPCDEDXCOMPONENT_H
15 : #define ALIHLTTPCDEDXCOMPONENT_H
16 :
17 : #include "AliHLTProcessor.h"
18 : #include "AliHLTDataTypes.h"
19 : class AliTPCclusterMI;
20 :
21 : /**
22 : * @class AliHLTTPCdEdxComponent
23 : * The dEdx calculator component for the HLT TPC
24 : *
25 : */
26 : class AliHLTTPCdEdxComponent : public AliHLTProcessor
27 : {
28 : public:
29 : /** standard constructor */
30 : AliHLTTPCdEdxComponent();
31 :
32 : /** dummy copy constructor, defined according to effective C++ style */
33 : AliHLTTPCdEdxComponent( const AliHLTTPCdEdxComponent& );
34 :
35 : /** dummy assignment op, but defined according to effective C++ style */
36 : AliHLTTPCdEdxComponent& operator=( const AliHLTTPCdEdxComponent& );
37 :
38 : /** standard destructor */
39 : virtual ~AliHLTTPCdEdxComponent();
40 :
41 : // Public functions to implement AliHLTComponent's interface.
42 : // These functions are required for the registration process
43 :
44 : /** @see component interface @ref AliHLTComponent::GetComponentID */
45 : const char* GetComponentID() ;
46 :
47 : /** @see component interface @ref AliHLTComponent::GetInputDataTypes */
48 : void GetInputDataTypes( vector<AliHLTComponentDataType>& list ) ;
49 :
50 : /** @see component interface @ref AliHLTComponent::GetOutputDataType */
51 : AliHLTComponentDataType GetOutputDataType() ;
52 :
53 : /** @see component interface @ref AliHLTComponent::GetOutputDataSize */
54 : virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier ) ;
55 :
56 : /** @see component interface @ref AliHLTComponent::Spawn */
57 : AliHLTComponent* Spawn() ;
58 :
59 : protected:
60 :
61 : // Protected functions to implement AliHLTComponent's interface.
62 : // These functions provide initialization as well as the actual processing
63 : // capabilities of the component.
64 :
65 : /** @see component interface @ref AliHLTComponent::DoInit */
66 : int DoInit( int argc, const char** argv );
67 :
68 : /** @see component interface @ref AliHLTComponent::DoDeinit */
69 : int DoDeinit();
70 :
71 : /** reconfigure **/
72 : int Reconfigure( const char* cdbEntry, const char* chainId );
73 :
74 : /** @see component interface @ref AliHLTProcessor::DoEvent */
75 : int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
76 : AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr,
77 : AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks );
78 :
79 : private:
80 :
81 : /** magnetic field */
82 : double fSolenoidBz; // see above
83 : double fStatTime; //* total time for DoEvent() [s]
84 : Long_t fStatNEvents; //* number of reconstructed events
85 : static const Int_t fkNPatches = 36*6; // number of patches in TPC
86 : AliTPCclusterMI *fPatchClusters[fkNPatches]; //! arrays of cluster data for each TPC patch
87 : Int_t fNPatchClusters[fkNPatches]; //! N of clusters for each TPC patch
88 :
89 : /** set configuration parameters **/
90 : void SetDefaultConfiguration();
91 : int ReadConfigurationString( const char* arguments );
92 : int ReadCDBEntry( const char* cdbEntry, const char* chainId );
93 : int Configure( const char* cdbEntry, const char* chainId, const char *commandLine );
94 :
95 6 : ClassDef( AliHLTTPCdEdxComponent, 0 );
96 :
97 : };
98 : #endif
|