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
13 // @brief Declaration of a TRDCalibration component.
17 #include "AliHLTCalibrationProcessor.h"
19 class AliTRDCalibraFillHisto;
23 * @class AliHLTTRDCalibrationComponent
24 * @brief A TRDCalibration HLT processing component.
26 * - @ref InitCalibration (optional)
27 * - @ref ScanArgument (optional)
28 * - @ref DeinitCalibration (optional)
29 * - @ref ProcessCalibration
30 * - @ref ShipDataToFXS
31 * - @ref GetComponentID
32 * - @ref GetInputDataTypes
33 * - @ref GetOutputDataType
34 * - @ref GetOutputDataSize
36 * @ingroup alihlt_tutorial
38 class AliHLTTRDCalibrationComponent : public AliHLTCalibrationProcessor
41 AliHLTTRDCalibrationComponent();
42 virtual ~AliHLTTRDCalibrationComponent();
44 // Public functions to implement AliHLTComponent's interface.
45 // These functions are required for the registration process
47 const char* GetComponentID();
48 void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
49 AliHLTComponentDataType GetOutputDataType();
50 int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList);
51 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
52 AliHLTComponent* Spawn();
56 // Protected functions to implement AliHLTComponent's interface.
57 // These functions provide initialization as well as the actual processing
58 // capabilities of the component.
60 AliTRDCalibraFillHisto *fTRDCalibraFillHisto;
62 virtual Int_t InitCalibration();
63 virtual Int_t ScanArgument(int argc, const char** argv);
64 virtual Int_t DeinitCalibration();
65 virtual Int_t ProcessCalibration(const AliHLTComponent_EventData& evtData,
66 const AliHLTComponent_BlockData* blocks,
67 AliHLTComponent_TriggerData& trigData, AliHLTUInt8_t* outputPtr,
69 vector<AliHLTComponent_BlockData>& outputBlocks);
70 /* virtual Int_t ProcessCalibration( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData); */
71 virtual Int_t ShipDataToFXS(const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData);
72 virtual Int_t EORCalibration();
74 using AliHLTCalibrationProcessor::ProcessCalibration;
75 //using AliHLTCalibrationProcessor::ShipDataToFXS;
78 /** copy constructor prohibited */
79 AliHLTTRDCalibrationComponent(const AliHLTTRDCalibrationComponent&);
80 /** assignment operator prohibited */
81 AliHLTTRDCalibrationComponent& operator=(const AliHLTTRDCalibrationComponent&);
82 void FormOutput(Int_t param);
84 AliHLTUInt32_t fOutputSize; // output size
85 TClonesArray* fTracksArray; // array containing the input
86 TObjArray* fOutArray; // array containing the output
87 TObjArray* fAfterRunArray; // array with after run processing output
88 TObjArray* fDisplayArray; // array with online display histos
89 Bool_t fSavedTimeBins; // already saved the number of time bins?
90 TObjArray *fTrgStrings; // name of trigger classes to accept or reject
91 Int_t fAccRejTrg; // do we actually accept or reject the trigger strings?
92 Int_t fMinClusters; // minimal number of clusters/tracklet accepted to fill histos
93 Int_t fMinTracklets; // minimal number of tracklets/track accepted to fill histos
94 Bool_t fTakeAllEvents; // take all events, disregarding the triggers
96 ClassDef(AliHLTTRDCalibrationComponent, 2)