--- /dev/null
+// $Id$
+
+//**************************************************************************
+//* This file is property of and copyright by the ALICE HLT Project *
+//* ALICE Experiment at CERN, All rights reserved. *
+//* *
+//* Primary Authors: Matthias Richter <Matthias.Richter@ift.uib.no> *
+//* for The ALICE HLT Project. *
+//* *
+//* Permission to use, copy, modify and distribute this software and its *
+//* documentation strictly for non-commercial purposes is hereby granted *
+//* without fee, provided that the above copyright notice appears in all *
+//* copies and that both the copyright notice and this permission notice *
+//* appear in the supporting documentation. The authors make no claims *
+//* about the suitability of this software for any purpose. It is *
+//* provided "as is" without express or implied warranty. *
+//**************************************************************************
+
+/// @file AliHLTRecoParamComponent.cxx
+/// @author Matthias Richter
+/// @date 2010-10-18
+/// @brief Online HLT RecoParam generator component
+///
+
+#include "AliHLTRecoParamComponent.h"
+
+/** ROOT macro for the implementation of ROOT specific class methods */
+ClassImp(AliHLTRecoParamComponent)
+
+AliHLTRecoParamComponent::AliHLTRecoParamComponent()
+ : AliHLTCalibrationProcessor()
+{
+ // see header file for class documentation
+ // or
+ // refer to README to build package
+ // or
+ // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
+
+}
+
+AliHLTRecoParamComponent::~AliHLTRecoParamComponent()
+{
+ // see header file for class documentation
+}
+
+void AliHLTRecoParamComponent::GetInputDataTypes(AliHLTComponentDataTypeList& list)
+{
+ // see header file for class documentation
+ list.push_back(kAliHLTAnyDataType);
+}
+
+AliHLTComponentDataType AliHLTRecoParamComponent::GetOutputDataType()
+{
+ // see header file for class documentation
+ return kAliHLTDataTypeFXSCalib;
+}
+
+void AliHLTRecoParamComponent::GetOutputDataSize(unsigned long& constBase, double& inputMultiplier)
+{
+ // see header file for class documentation
+
+ // this is nothing more than an assumption, in fact it's very difficult to predict how
+ // much output the component produces
+ constBase=100*1024;
+ inputMultiplier=1;
+}
+
+void AliHLTRecoParamComponent::GetOCDBObjectDescription( TMap* const /*targetArray*/)
+{
+ // see header file for class documentation
+}
+
+int AliHLTRecoParamComponent::InitCalibration()
+{
+ // see header file for class documentation
+
+ int iResult=0;
+
+ return 0;
+}
+
+int AliHLTRecoParamComponent::DeinitCalibration()
+{
+ // see header file for class documentation
+
+ return 0;
+}
+
+int AliHLTRecoParamComponent::ProcessCalibration( const AliHLTComponentEventData& /*evtData*/,
+ AliHLTComponentTriggerData& /*trigData*/ )
+{
+ // see header file for class documentation
+ int iResult=0;
+
+ return iResult;
+}
+
+int AliHLTRecoParamComponent::ShipDataToFXS( const AliHLTComponentEventData& /*evtData*/,
+ AliHLTComponentTriggerData& /*trigData*/)
+{
+ // see header file for class documentation
+
+ return 0;
+}
+
+int AliHLTRecoParamComponent::ScanConfigurationArgument(int argc, const char** argv)
+{
+ // see header file for class documentation
+ int iResult=0;
+ if (argc<=0) return 0;
+ int i=0;
+ TString argument=argv[i];
+
+ // -firstarg
+ if (argument.Contains("-firstarg")) {
+ return 1;
+ }
+
+ return iResult;
+}
--- /dev/null
+// -*- Mode: C++ -*-
+// $Id$
+
+#ifndef ALIHLTRECOPARAMCOMPONENT_H
+#define ALIHLTRECOPARAMCOMPONENT_H
+//* This file is property of and copyright by the ALICE HLT Project *
+//* ALICE Experiment at CERN, All rights reserved. *
+//* See cxx source for full Copyright notice *
+
+/// @file AliHLTRecoParamComponent.h
+/// @author Matthias Richter
+/// @date 2010-10-18
+/// @brief Online HLT RecoParam generator component
+///
+
+#include "AliHLTCalibrationProcessor.h"
+
+/**
+ * @class AliHLTRecoParamComponent
+ * Collects online configuration info and in the future other parameters
+ * and produces the corresponding calibration object for reconstruction of HLT.
+ *
+ * <h2>General properties:</h2>
+ *
+ * Component ID: \b RecoParamGenerator <br>
+ * Library: \b libAliHLTUtil.so <br>
+ * Input Data Types: ::kAliHLTAnyDataType <br>
+ * Output Data Types: none <br>
+ *
+ * <h2>Mandatory arguments:</h2>
+ * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
+ *
+ * <h2>Optional arguments:</h2>
+ * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
+ *
+ * <h2>Configuration:</h2>
+ * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
+ * Configuration by component arguments.
+ *
+ * <h2>Default CDB entries:</h2>
+ * The component loads no CDB entries.
+ *
+ * <h2>Performance:</h2>
+ * The component does not process any event data.
+ *
+ * <h2>Memory consumption:</h2>
+ * The component does not process any event data.
+ *
+ * <h2>Output size:</h2>
+ * Depending on the mode.
+ *
+ * @ingroup alihlt_util_components
+ */
+class AliHLTRecoParamComponent : public AliHLTCalibrationProcessor
+{
+ public:
+ /// standard constructor
+ AliHLTRecoParamComponent();
+ /// destructor
+ virtual ~AliHLTRecoParamComponent();
+
+ /// inherited from AliHLTComponent: return id of the component.
+ virtual const char* GetComponentID() {return "RecoParamGenerator";};
+ /// inherited from AliHLTComponent: input data types
+ virtual void GetInputDataTypes(AliHLTComponentDataTypeList&);
+ /// inherited from AliHLTComponent: output data types
+ virtual AliHLTComponentDataType GetOutputDataType();
+ /// inherited from AliHLTComponent: output data size
+ virtual void GetOutputDataSize(unsigned long&, double&);
+ /// inherited from AliHLTComponent: description of required CDB objects
+ void GetOCDBObjectDescription( TMap* const targetArray);
+
+ /// inherited from AliHLTComponent: spawn function, create an instance.
+ virtual AliHLTComponent* Spawn() {return new AliHLTRecoParamComponent;}
+
+ protected:
+ /// inherited from AliHLTCalibrationProcessor: custom initialization
+ int InitCalibration();
+ /// inherited from AliHLTCalibrationProcessor: custom argument scan
+ /// the AliHLTCalibrationProcessor so far does not use the base class
+ /// methods for argument scan.
+ int ScanArgument( int argc, const char** argv ) {
+ int result=ScanConfigurationArgument(argc, argv); return result>0?result-1:result;
+ }
+ /// inherited from AliHLTCalibrationProcessor: cleanup
+ int DeinitCalibration();
+
+ /// inherited from AliHLTCalibrationProcessor processing
+ virtual int ProcessCalibration( const AliHLTComponentEventData& evtData,
+ AliHLTComponentTriggerData& trigData );
+
+ using AliHLTCalibrationProcessor::ProcessCalibration;
+
+ /// inherited from AliHLTCalibrationProcessor processing
+ int ShipDataToFXS( const AliHLTComponentEventData& evtData,
+ AliHLTComponentTriggerData& trigData);
+
+ using AliHLTCalibrationProcessor::ShipDataToFXS;
+
+ /**
+ * Inherited from AliHLTComponent
+ * Scan one argument and adjacent parameters.
+ * @return number of scanned parameters, neg. error code if failed
+ */
+ virtual int ScanConfigurationArgument(int argc, const char** argv);
+
+private:
+ /** copy constructor prohibited */
+ AliHLTRecoParamComponent(const AliHLTRecoParamComponent&);
+ /** assignment operator prohibited */
+ AliHLTRecoParamComponent& operator=(const AliHLTRecoParamComponent&);
+
+ static const char* fgkConfigurationObject; //! configuration object
+
+ ClassDef(AliHLTRecoParamComponent, 0) // Online HLT RecoParam generator component
+};
+#endif