//-*- Mode: C++ -*-
// $Id$
#ifndef ALIHLTTPCDEDXMONITORINGCOMPONENT_H
#define ALIHLTTPCDEDXMONITORINGCOMPONENT_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 AliHLTTPCdEdxMonitoringComponent.h
/// @author Per-Ivar Lønne, Jochen Thaeder, Matthias Richter, Alexander Kalweit
/// @date 21.08.2011
/// @brief Component for reading ESD from chain and produce a dEdx monitoring plot
///
/**
* @class AliHLTTPCdEdxMonitoringComponent
* A component meant to read ESD-files from the chain online
* and produce a plot for dEdx monitoring.
*
* description of what the component does in more detail
* bla
* bla
*
*
General properties:
*
* Component ID: \b TPCdEdxMonitoring
* Library: \b libAliHLTTPC.so
* Input Data Types: @ref kAliHLTDataTypeESDObject|kAliHLTDataOriginAny
* Output Data Types: @ref kAliHLTDataTypeHistogram|kAliHLTDataOriginHLT
*
* Mandatory arguments:
*
* Optional arguments:
*
* Configuration
* \li -xbins fxbins
* number of bins on x-axis
*
* Configuration
* \li -xbins fxmin
* minimum value of x-axis
*
* Configuration
* \li -xbins fxmax
* maximum value of x-axis
*
* Configuration
* \li -ybins fybins
* number of bins on y-axis
*
* Configuration
* \li -ybins fymin
* minimum value of y-axis
*
* Configuration
* \li -ybins fymax
* maximum value of y-axis
*
* Default CDB entries:
*
* Performance:
*
* Memory Consumption:
*
* Output size:
* 4096
*
* @ingroup alihlt
*/
#include "AliHLTProcessor.h"
class AliESDtrackCuts; // For setting track cuts
class TH2F;
class AliHLTTPCdEdxMonitoringComponent : public AliHLTProcessor
{
public:
/*----------------------------------------------------*
* Constructor and destructor
*----------------------------------------------------*/
AliHLTTPCdEdxMonitoringComponent();
virtual ~AliHLTTPCdEdxMonitoringComponent();
// AliHLTComponent interface functions
const char* GetComponentID();
void GetInputDataTypes( vector& list);
AliHLTComponentDataType GetOutputDataType();
void GetOutputDataSize( unsigned long& constBase, Double_t& inputMultiplier );
void GetOCDBObjectDescription( TMap* const targetMap);
// Spawn function, return new class instance
AliHLTComponent* Spawn();
protected:
// AliHLTComponent interface functions
Int_t DoInit( Int_t argc, const char** argv );
Int_t DoDeinit();
Int_t DoEvent( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData);
using AliHLTProcessor::DoEvent;
Int_t ScanConfigurationArgument(Int_t argc, const char** argv);
Int_t Reconfigure(const char* cdbEntry, const char* chainId);
Int_t ReadPreprocessorValues(const char* modules);
private:
/** copy constructor prohibited */
AliHLTTPCdEdxMonitoringComponent(const AliHLTTPCdEdxMonitoringComponent&);
/** assignment operator prohibited */
AliHLTTPCdEdxMonitoringComponent& operator=(const AliHLTTPCdEdxMonitoringComponent&);
// Sets standard trackcuts
void SetDefaultConfiguration();
// trackcuts
AliESDtrackCuts *fESDTrackCuts; //! transistent
// histogram
TH2F *fHist; //! transistent
Int_t fxbins; //! transistent
Double_t fxmin; //! transistent
Double_t fxmax; //! transistent
Int_t fybins; //! transistent
Double_t fymin; //! transistent
Double_t fymax; //! transistent
// sets some plotstyles
void Plotstyle();
ClassDef(AliHLTTPCdEdxMonitoringComponent, 0)
};
#endif