4 #ifndef ALIHLTTRDCALIBRATIONCOMPONENT_H
5 #define ALIHLTTRDCALIBRATIONCOMPONENT_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 *
10 /** @file AliHLTTRDCalibrationComponent.h
11 @author Timm Steinbeck, Matthias Richter
13 @brief Declaration of a TRDCalibration component. */
16 #include "AliHLTCalibrationProcessor.h"
18 class AliTRDCalibraFillHisto;
22 * @class AliHLTTRDCalibrationComponent
23 * @brief A TRDCalibration HLT processing component.
25 * - @ref InitCalibration (optional)
26 * - @ref ScanArgument (optional)
27 * - @ref DeinitCalibration (optional)
28 * - @ref ProcessCalibration
29 * - @ref ShipDataToFXS
30 * - @ref GetComponentID
31 * - @ref GetInputDataTypes
32 * - @ref GetOutputDataType
33 * - @ref GetOutputDataSize
35 * @ingroup alihlt_tutorial
37 class AliHLTTRDCalibrationComponent : public AliHLTCalibrationProcessor
40 AliHLTTRDCalibrationComponent();
41 virtual ~AliHLTTRDCalibrationComponent();
43 // Public functions to implement AliHLTComponent's interface.
44 // These functions are required for the registration process
46 const char* GetComponentID();
47 void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
48 AliHLTComponentDataType GetOutputDataType();
49 int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList);
50 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
51 AliHLTComponent* Spawn();
55 // Protected functions to implement AliHLTComponent's interface.
56 // These functions provide initialization as well as the actual processing
57 // capabilities of the component.
59 AliTRDCalibraFillHisto *fTRDCalibraFillHisto;
61 virtual Int_t InitCalibration();
62 virtual Int_t ScanArgument(int argc, const char** argv);
63 virtual Int_t DeinitCalibration();
64 virtual Int_t ProcessCalibration(const AliHLTComponent_EventData& evtData,
65 const AliHLTComponent_BlockData* blocks,
66 AliHLTComponent_TriggerData& trigData, AliHLTUInt8_t* outputPtr,
68 vector<AliHLTComponent_BlockData>& outputBlocks);
69 /* virtual Int_t ProcessCalibration( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData); */
70 virtual Int_t ShipDataToFXS(const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData);
71 virtual Int_t EORCalibration();
73 using AliHLTCalibrationProcessor::ProcessCalibration;
74 //using AliHLTCalibrationProcessor::ShipDataToFXS;
77 /** copy constructor prohibited */
78 AliHLTTRDCalibrationComponent(const AliHLTTRDCalibrationComponent&);
79 /** assignment operator prohibited */
80 AliHLTTRDCalibrationComponent& operator=(const AliHLTTRDCalibrationComponent&);
81 void FormOutput(Int_t param);
83 AliHLTUInt32_t fOutputSize; // output size
84 TClonesArray* fTracksArray; // array containing the input
85 TObjArray* fOutArray; // array containing the output
86 TObjArray* fAfterRunArray; // array with after run processing output
87 TObjArray* fDisplayArray; // array with online display histos
88 Bool_t fSavedTimeBins; // already saved the number of time bins?
89 TObjArray *fTrgStrings; // name of trigger classes to accept or reject
90 Int_t fAccRejTrg; // do we actually accept or reject the trigger strings?
91 UInt_t fMinClusters; // minimal number of clusters/tracklet accepted to fill histos
92 UInt_t fMinTracklets; // minimal number of tracklets/track accepted to fill histos
94 ClassDef(AliHLTTRDCalibrationComponent, 2)