]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/AliHLTTPCRawReaderPublisherComponent.h
Analysis task used to extract the VZERO event-plane flatenning parameters.
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCRawReaderPublisherComponent.h
1 //-*- Mode: C++ -*-
2 // $Id$
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                               *
8
9 /// @file   AliHLTTPCRawReaderPublisherComponent.h
10 /// @author Matthias Richter
11 /// @date   2011-11-18
12 /// @brief  Specific publisher for TPC raw data from the AliRawReader
13 ///         
14
15 #include "AliHLTRawReaderPublisherComponent.h"
16 #include <map>
17
18 /**
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.
23  *
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.
28  *
29  * <h2>General properties:</h2>
30  *
31  * Component ID: \b TPCRawReaderPublisher      <br>
32  * Library: \b libAliHLTTPC.so     <br>
33  * Input Data Types:  <br>
34  * Output Data Types: <br>
35  *
36  * <h2>Mandatory arguments:</h2>
37  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
38  *
39  * <h2>Optional arguments:</h2>
40  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
41
42  * <h2>Configuration:</h2>
43  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
44  *
45  * <h2>Default CDB entries:</h2>
46  *
47  * <h2>Performance:</h2>
48  *
49  * <h2>Memory consumption:</h2>
50  *
51  * <h2>Output size:</h2>
52  *
53  *
54  * @ingroup alihlt_tpc
55  */
56 class AliHLTTPCRawReaderPublisherComponent : public AliHLTRawReaderPublisherComponent {
57 public:
58   /// standard constructor
59   AliHLTTPCRawReaderPublisherComponent();
60   /// destructor
61   ~AliHLTTPCRawReaderPublisherComponent();
62
63   /// inherited from AliHLTComponent: id of the component
64   virtual const char* GetComponentID();
65
66   /// inherited from AliHLTComponent: spawn function.
67   virtual AliHLTComponent* Spawn();
68
69 protected:
70   /// inherited from AliHLTDataSource: get one event
71   int GetEvent( const AliHLTComponentEventData& evtData,
72                 AliHLTComponentTriggerData& trigData,
73                 AliHLTUInt8_t* outputPtr, 
74                 AliHLTUInt32_t& size,
75                 vector<AliHLTComponentBlockData>& outputBlocks );
76
77   /// inherited from AliHLTComponent: initialize
78   int DoInit( int argc, const char** argv );
79
80   /// inherited from AliHLTComponent: cleanup
81   int DoDeinit();
82
83   /// inherited from AliHLTComponent: argument scan
84   int ScanConfigurationArgument(int argc, const char** argv);
85
86   /// check the HLTOUT for availability of compressed data blocks
87   int InitMapFromHLTOUT(std::map<AliHLTUInt32_t, bool>& hltoutmap);
88
89   /// inherited from AliHLTRawReaderPublisherComponent: get specification
90   virtual int GetSpecificationFromEquipmentId(int id, AliHLTUInt32_t &specification) const;
91
92   /// inherited from AliHLTRawReaderPublisherComponent: check if a block is selected or not
93   virtual bool IsSelected(int equipmentId) const;
94
95 private:
96   AliHLTTPCRawReaderPublisherComponent(const AliHLTTPCRawReaderPublisherComponent&);
97   AliHLTTPCRawReaderPublisherComponent& operator=(const AliHLTTPCRawReaderPublisherComponent&);
98
99   bool* fArraySelected; //! transient
100
101   ClassDef(AliHLTTPCRawReaderPublisherComponent, 0)
102 };
103
104 #endif //ALIHLTTPCRAWREADERPUBLISHERCOMPONENT_H