3 #ifndef ALIHLTTPCRAWREADERPUBLISHERCOMPONENT_H
4 #define ALIHLTTPCRAWREADERPUBLISHERCOMPONENT_H
5 //* This file is property of and copyright by the ALICE HLT Project *
6 //* ALICE Experiment at CERN, All rights reserved. *
7 //* See cxx source for full Copyright notice *
9 /// @file AliHLTTPCRawReaderPublisherComponent.h
10 /// @author Matthias Richter
12 /// @brief Specific publisher for TPC raw data from the AliRawReader
15 #include "AliHLTRawReaderPublisherComponent.h"
19 * @class AliHLTTPCRawReaderPublisherComponent
20 * This component uses the functionality of AliHLTRawReaderPublisherComponent
21 * and overloads IsSelected and GetSpecificationFromEquipmentId. Blocks are
22 * only generated if the corresponding partition is missing in HLTOUT.
24 * It is used in an emulation chain which produces all compressed cluster
25 * blocks which are missing in HLTOUT. If TPC reconstruction requires HLT
26 * clusters, the emulator is automatically executed and the compressed
27 * data produced if raw data is available.
29 * <h2>General properties:</h2>
31 * Component ID: \b TPCRawReaderPublisher <br>
32 * Library: \b libAliHLTTPC.so <br>
33 * Input Data Types: <br>
34 * Output Data Types: <br>
36 * <h2>Mandatory arguments:</h2>
37 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
39 * <h2>Optional arguments:</h2>
40 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
42 * <h2>Configuration:</h2>
43 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
45 * <h2>Default CDB entries:</h2>
47 * <h2>Performance:</h2>
49 * <h2>Memory consumption:</h2>
51 * <h2>Output size:</h2>
56 class AliHLTTPCRawReaderPublisherComponent : public AliHLTRawReaderPublisherComponent {
58 /// standard constructor
59 AliHLTTPCRawReaderPublisherComponent();
61 ~AliHLTTPCRawReaderPublisherComponent();
63 /// inherited from AliHLTComponent: id of the component
64 virtual const char* GetComponentID();
66 /// inherited from AliHLTComponent: spawn function.
67 virtual AliHLTComponent* Spawn();
70 /// inherited from AliHLTDataSource: get one event
71 int GetEvent( const AliHLTComponentEventData& evtData,
72 AliHLTComponentTriggerData& trigData,
73 AliHLTUInt8_t* outputPtr,
75 vector<AliHLTComponentBlockData>& outputBlocks );
77 /// inherited from AliHLTComponent: initialize
78 int DoInit( int argc, const char** argv );
80 /// inherited from AliHLTComponent: cleanup
83 /// inherited from AliHLTComponent: argument scan
84 int ScanConfigurationArgument(int argc, const char** argv);
86 /// check the HLTOUT for availability of compressed data blocks
87 int InitMapFromHLTOUT(std::map<AliHLTUInt32_t, bool>& hltoutmap);
89 /// inherited from AliHLTRawReaderPublisherComponent: get specification
90 virtual int GetSpecificationFromEquipmentId(int id, AliHLTUInt32_t &specification) const;
92 /// inherited from AliHLTRawReaderPublisherComponent: check if a block is selected or not
93 virtual bool IsSelected(int equipmentId) const;
96 AliHLTTPCRawReaderPublisherComponent(const AliHLTTPCRawReaderPublisherComponent&);
97 AliHLTTPCRawReaderPublisherComponent& operator=(const AliHLTTPCRawReaderPublisherComponent&);
99 bool* fArraySelected; //! transient
101 ClassDef(AliHLTTPCRawReaderPublisherComponent, 0)
104 #endif //ALIHLTTPCRAWREADERPUBLISHERCOMPONENT_H