]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/MUON/utils/AliHLTMUONEmptyEventFilterComponent.h
Cluster indices are published via AliKalmanTrack::GetClusterIndex()
[u/mrichter/AliRoot.git] / HLT / MUON / utils / AliHLTMUONEmptyEventFilterComponent.h
CommitLineData
0528e93a 1#ifndef ALIHLTMUONEMPTYEVENTFILTERCOMPONENT_H
2#define ALIHLTMUONEMPTYEVENTFILTERCOMPONENT_H
3/* This file is property of and copyright by the ALICE HLT Project *
4 * ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
7/* $Id$ */
8
9///
10/// @file AliHLTMUONEmptyEventFilterComponent.h
11/// @author Artur Szostak <artursz@iafrica.com>
12/// @date 2007-12-12
13/// @brief Declaration of the empty event filter component.
14///
15
154cba94 16#include "AliHLTMUONProcessor.h"
0528e93a 17
18#if __GNUC__ && __GNUC__ < 3
19#define std
20#endif
21
22/**
23 * @class AliHLTMUONEmptyEventFilterComponent
24 * This component class is a utility component for debugging. It is used to filter
25 * empty dHLT events. (Specifically built for the Dec 2007 Cosmic tests where the
26 * muon spectrometer should not see any hits. Therefor we would be interested to
27 * analysis the raw data for those cases where the hit reconstructor actuall found
28 * something, because this would be strange/abnormal.)
29 * The component will look for dHLT data blocks containing results like dHLT
30 * reconstructed hits, trigger records and dHLT tracks,
31 * if any of the found blocks are not empty then every data block that it received
32 * will be forwarded to the output.
33 * This component would normally subscribe to all the front end DDL processing
34 * components like MUONHitReconstructor and MUONTriggerReconstructor, the DDL
35 * RORCPublishers for the DDL data and also the MUONMansoTrackerFSM component.
36 * A dump subscriber can then connect to the empty event filter component to
37 * make sure it only receives events that are not empty.
38 *
39 * command line parameters:
40 * -sendempty This parameter causes the component to behave like an anti-filter
41 * meaning that it will send all events for which the dHLT results data
42 * blocks were empty. This is useful for collecting those events where dHLT
43 * is not finding anything but perhaps it should.
44 */
154cba94 45class AliHLTMUONEmptyEventFilterComponent : public AliHLTMUONProcessor
0528e93a 46{
47public:
48 AliHLTMUONEmptyEventFilterComponent();
49 virtual ~AliHLTMUONEmptyEventFilterComponent();
50
51 // Public functions to implement AliHLTComponent's interface.
52 // These functions are required for the registration process.
53
54 virtual const char* GetComponentID();
ffb64d3e 55 virtual void GetInputDataTypes(AliHLTComponentDataTypeList& list);
0528e93a 56 virtual AliHLTComponentDataType GetOutputDataType();
ffb64d3e 57 virtual void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
0528e93a 58 virtual AliHLTComponent* Spawn();
59
60protected:
0528e93a 61
62 // Protected functions to implement AliHLTComponent's interface.
63 // These functions provide initialization as well as the actual processing
64 // capabilities of the component.
65
66 virtual int DoInit(int argc, const char** argv);
67 virtual int DoDeinit();
68 virtual int DoEvent(
69 const AliHLTComponentEventData& evtData,
70 const AliHLTComponentBlockData* blocks,
71 AliHLTComponentTriggerData& trigData,
72 AliHLTUInt8_t* outputPtr,
73 AliHLTUInt32_t& size,
ffb64d3e 74 AliHLTComponentBlockDataList& outputBlocks
0528e93a 75 );
ffb64d3e 76 virtual bool IgnoreArgument(const char* arg) const;
0528e93a 77
78 using AliHLTProcessor::DoEvent;
79
80private:
81
82 // Do not allow copying of this class.
83 AliHLTMUONEmptyEventFilterComponent(const AliHLTMUONEmptyEventFilterComponent& /*obj*/);
84 AliHLTMUONEmptyEventFilterComponent& operator = (const AliHLTMUONEmptyEventFilterComponent& /*obj*/);
85
86 bool fSendOnEmpty; //! Flag indicating if we should implement the inverse filter and only send everything if dHLT internal data blocks are empty.
87
154cba94 88 ClassDef(AliHLTMUONEmptyEventFilterComponent, 0) // Filter component for empty dHLT events.
0528e93a 89};
90
91#endif // ALIHLTMUONEMPTYEVENTFILTERCOMPONENT_H
92