4 #ifndef ALIHLTTPCALIBTRACKSCOMPONENT_H
5 #define ALIHLTTPCALIBTRACKSCOMPONENT_H
7 //* This file is property of and copyright by the ALICE HLT Project *
8 //* ALICE Experiment at CERN, All rights reserved. *
9 //* See cxx source for full Copyright notice *
11 /** @file AliHLTTPCCalibTracksComponent.h
12 @author Kalliopi Kanaki
14 @brief A tracks gain calibration component for the TPC.
17 #include "AliHLTCalibrationProcessor.h"
18 #include "AliHLTTPCDefinitions.h"
19 #include "AliHLTTPCSpacePointData.h"
20 #include "AliHLTTPCTrackSegmentData.h"
21 #include "TObjArray.h"
23 class AliTPCClusterParam;
24 class AliTPCcalibTracksCuts;
26 class AliTPCcalibAlign;
27 class AliTPCcalibTracksGain;
28 class AliTPCcalibTracks;
31 class AliTPCclusterMI;
32 class AliHLTTPCOfflineCluster;
35 * @class AliHLTTPCCalibTracksComponent
37 * This class is the calibration component for the AliTPCCalibPedestal class
38 * used for pedestal calibration of the TPC.
40 * It inherits from the AliHLTCalibrationProcessor and uses the high-level
41 * interface. The output is the class AliTPCCalibPedestal as a TObject.
43 * The component has the following component arguments:
44 * -enableanalysis : enable analysis before shipping data to FXS
46 * @ingroup alihlt_tpc_components
48 class AliHLTTPCCalibTracksComponent : public AliHLTCalibrationProcessor{
52 AliHLTTPCCalibTracksComponent();
54 virtual ~AliHLTTPCCalibTracksComponent();
56 // Public functions to implement AliHLTComponent's interface.
57 // These functions are required for the registration process
59 const char* GetComponentID();
60 void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
61 AliHLTComponentDataType GetOutputDataType();
62 Int_t GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList);
63 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
64 AliHLTComponent* Spawn();
68 using AliHLTCalibrationProcessor::ProcessCalibration;
69 using AliHLTCalibrationProcessor::ShipDataToFXS;
71 //int Reconfigure(const char* /*cdbEntry*/, const char* /*chainId*/);
73 // Protected functions to implement AliHLTComponent's interface.
74 // These functions provide initialization as well as the actual processing
75 // capabilities of the component.
77 /** Initialize the calibration component. */
78 Int_t InitCalibration();
80 /** Scan commandline arguments of the calibration component. */
81 Int_t ScanArgument( Int_t argc, const char** argv );
83 /** DeInitialize the calibration component. */
84 Int_t DeinitCalibration();
86 /** Process the data in the calibration component. */
87 Int_t ProcessCalibration( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
89 /** Ship the data to the FXS at end of run or eventmodulo. */
90 Int_t ShipDataToFXS( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
92 Int_t Reconfigure(const char* cdbEntry, const char* chainId);
95 /** copy constructor prohibited */
96 AliHLTTPCCalibTracksComponent(const AliHLTTPCCalibTracksComponent&);
97 /** assignment operator prohibited */
98 AliHLTTPCCalibTracksComponent& operator=(const AliHLTTPCCalibTracksComponent&);
100 Int_t Configure(const char* arguments);
101 void ReadTracks(const AliHLTComponentBlockData* iter, Int_t &tt);
103 AliTPCClusterParam *fClustParam; //! TPC cluster parameters
104 AliTPCcalibTracksCuts *fTrackCuts; //! TPC track cuts
106 AliTPCcalibTracksGain *fCalibTracksGain; //!transient
107 AliTPCcalibAlign *fCalibAlign; //!transient
108 AliTPCcalibTracks *fCalibTracks; //!transient
110 /** Minimum patch specifcation for this component */
111 AliHLTUInt8_t fMinPatch; // see above
113 /** Minimum patch specifcation for this component */
114 AliHLTUInt8_t fMaxPatch; // see above
116 /** The Specification for this component */
117 AliHLTUInt32_t fSpecification; // see above
119 /** Analyze calibration data before shipping to FXS */
120 Bool_t fEnableAnalysis; //! transient
122 /** seed argument for the Process(AliTPCseed*) function */
123 AliTPCseed *fSeed; // see above
125 vector<AliHLTTPCSpacePointData> fClusters; //! transient
126 vector<AliHLTTPCTrackSegmentData> fTracks; //! transient
127 vector<UInt_t> fTrackClusterID[36][6]; //! transient
130 AliHLTTPCOfflineCluster *pConv; //! transient
131 TObjArray fOffArray; //! transient
133 Bool_t fReadMergedTracks; //! transient
134 Bool_t fReadSliceTracks; //! transient
136 ClassDef(AliHLTTPCCalibTracksComponent, 0)