+//-*- Mode: C++ -*-
+// $Id$
#ifndef ALIHLTTRDTRACKERV1COMPONENT_H
#define ALIHLTTRDTRACKERV1COMPONENT_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
/** @file AliHLTTRDTrackerV1Component.h
- @author Timm Steinbeck, Matthias Richter
+ @author Theodor Rascanu
@date
@brief Declaration of a TRDTracker component. */
#include "AliHLTProcessor.h"
+#include "AliESDEvent.h"
class TFile;
-class TTree;
-
class TGeoManager;
class AliCDBManager;
class AliMagF;
class AliTRDtrackerV1;
class AliTRDrecoParam;
class AliTRDReconstructor;
+class TClonesArray;
+class TBuffer;
/**
* @class AliHLTTRDTrackerV1Component
* @brief A TRDTrackerV1 HLT processing component.
*
* Uses the second generation TRD tracker AliTRDtrackerV1
-*/
+ */
class AliHLTTRDTrackerV1Component : public AliHLTProcessor
- {
- public:
- AliHLTTRDTrackerV1Component();
- virtual ~AliHLTTRDTrackerV1Component();
-
- // Public functions to implement AliHLTComponent's interface.
- // These functions are required for the registration process
-
- const char* GetComponentID();
- void GetInputDataTypes( vector<AliHLTComponent_DataType>& list);
- AliHLTComponent_DataType GetOutputDataType();
- virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
- AliHLTComponent* Spawn();
-
- protected:
- AliHLTUInt32_t TransportTracks(TClonesArray *inTracksArray, AliHLTUInt8_t* output,
- vector<AliHLTComponent_BlockData>& outputBlocks, AliHLTUInt32_t inOffset, AliHLTUInt32_t inSpec);
-
- // Protected functions to implement AliHLTComponent's interface.
- // These functions provide initialization as well as the actual processing
- // capabilities of the component.
-
- int DoInit( int argc, const char** argv );
- int DoDeinit();
- int DoEvent( const AliHLTComponentEventData& evtData,
- const AliHLTComponentBlockData* blocks,
- AliHLTComponent_TriggerData& /*trigData*/,
- AliHLTUInt8_t* outputPtr,
- AliHLTUInt32_t& size,
- vector<AliHLTComponent_BlockData>& outputBlocks );
- using AliHLTProcessor::DoEvent;
-
- private:
- /** copy constructor prohibited */
- AliHLTTRDTrackerV1Component(const AliHLTTRDTrackerV1Component&);
- /** assignment operator prohibited */
- AliHLTTRDTrackerV1Component& operator=(const AliHLTTRDTrackerV1Component&);
+{
+protected:
- // The size of the output data produced, as a percentage of the input data's size.
- // Can be greater than 100 (%)
- unsigned fOutputPercentage; // Output volume in percentage of the input
+ class AliHLTTRDESDEvent : public AliESDEvent
+ {
+ // Here we use our own slim version of AliESDEvent
+ // by overwriting AliESDEvent::CreateStdContent
+ public:
+ void CreateStdContent();
- string fStrorageDBpath; // Default path for OCDB
- AliCDBManager *fCDB; //! Pointer to OCDB
+ // streamer function is prohibited, class for internal use only
+ void Streamer(TBuffer &R__b);
+ };
- string fGeometryFileName; // Path to geometry file
-
- AliTRDtrackerV1 *fTracker;//! Offline-pure/HLT tracker V1
- AliTRDrecoParam *fRecoParam; //! Offline reco params
- AliTRDReconstructor * fReconstructor;
+public:
+ AliHLTTRDTrackerV1Component();
+ virtual ~AliHLTTRDTrackerV1Component();
+
+ // Public functions to implement AliHLTComponent's interface.
+ // These functions are required for the registration process
+
+ const char* GetComponentID();
+ void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
+ AliHLTComponentDataType GetOutputDataType();
+ int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList);
+ virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
+ AliHLTComponent* Spawn();
+ void GetOCDBObjectDescription(TMap* const targetMap);
+
+protected:
+ // Protected functions to implement AliHLTComponent's interface.
+ // These functions provide initialization as well as the actual processing
+ // capabilities of the component.
+
+ int DoInit( int argc, const char** argv );
+ int DoDeinit();
+ int DoEvent( const AliHLTComponentEventData& evtData,
+ const AliHLTComponentBlockData* blocks,
+ AliHLTComponent_TriggerData& /*trigData*/,
+ AliHLTUInt8_t* outputPtr,
+ AliHLTUInt32_t& size,
+ vector<AliHLTComponent_BlockData>& outputBlocks );
+ int Reconfigure(const char* cdbEntry, const char* chainId);
+ int ReadPreprocessorValues(const char* modules);
+
+ using AliHLTProcessor::DoEvent;
+
+ int Configure(const char* arguments);
+ virtual int SetParams();
+
+protected:
+ /** copy constructor prohibited */
+ AliHLTTRDTrackerV1Component(const AliHLTTRDTrackerV1Component&);
+ /** assignment operator prohibited */
+ AliHLTTRDTrackerV1Component& operator=(const AliHLTTRDTrackerV1Component&);
+
+ // The size of the output data produced, as a percentage of the input data's size.
+ // Can be greater than 100 (%)
+ unsigned fOutputPercentage; // Output volume in percentage of the input
- ClassDef(AliHLTTRDTrackerV1Component, 0)
+ AliTRDtrackerV1 *fTracker;//! Offline-pure/HLT tracker V1
+ AliTRDrecoParam *fRecoParam; //! Offline reco params
+ AliTRDReconstructor* fReconstructor;
+ AliHLTTRDESDEvent* fESD;
+
+ TClonesArray* fClusterArray;
+
+ Int_t fRecoParamType; // default will be the low flux
+ Int_t fNtimeBins; // number of time bins for the tracker to use
+ Int_t fPIDmethod; // 0=LikelyHood(LH) 1=NeuronalNetwork(NN) 2=TruncatedMean(TM)
+ TString fgeometryFileName;
+ Bool_t fHLTflag; // use HLT flag in reconstructor
+ Bool_t fOutputV1Tracks; // output TRD tracks, needed for calibration and ESDfriends
+ Bool_t fHighLevelOutput; // do we what to have high level output (only for debuging)
+ Bool_t fEmulateHLTTracks; // for debugging data containers
+ Bool_t fImproveTracklets; // improve tracklets?
+
+ ClassDef(AliHLTTRDTrackerV1Component, 4)
- };
+};
#endif