]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/MUON/OnlineAnalysis/AliHLTMUONMansoTrackerFSMCallback.h
ALIROOT-5433 Transition to CDHv3 in HLT
[u/mrichter/AliRoot.git] / HLT / MUON / OnlineAnalysis / AliHLTMUONMansoTrackerFSMCallback.h
CommitLineData
b92524d0 1#ifndef ALIHLTMUONMANSOTRACKERFSMCALLBACK_H
2#define ALIHLTMUONMANSOTRACKERFSMCALLBACK_H
3/**************************************************************************
4 * This file is property of and copyright by the ALICE HLT Project *
5 * All rights reserved. *
6 * *
7 * Primary Authors: *
8 * Artur Szostak <artursz@iafrica.com> *
9 * *
10 * Permission to use, copy, modify and distribute this software and its *
11 * documentation strictly for non-commercial purposes is hereby granted *
12 * without fee, provided that the above copyright notice appears in all *
13 * copies and that both the copyright notice and this permission notice *
14 * appear in the supporting documentation. The authors make no claims *
15 * about the suitability of this software for any purpose. It is *
16 * provided "as is" without express or implied warranty. *
17 **************************************************************************/
18
1d8ae082 19// $Id$
b92524d0 20
21/**
22 * @file AliHLTMUONMansoTrackerFSMCallback.h
23 * @author Artur Szostak <artursz@iafrica.com>
24 * @date
25 * @brief This is the abstract callback interface required by the Finite
26 * State Machine (FSM) implementation of the Manso algorithm.
27 */
28
29#include "AliHLTMUONDataTypes.h"
30#include <cassert>
31
32class AliHLTMUONMansoTrackerFSM;
33
34class AliHLTMUONMansoTrackerFSMCallback
35{
36public:
37
38 virtual ~AliHLTMUONMansoTrackerFSMCallback() {};
39
40 /* All clusters that fall within the specified boundary box on the specified
41 chamber should be returned to the tracker, by calling the ReturnClusters
42 method of the given tracker. The same tag parameter must be passed on the
43 ReturnClusters method's parameter list.
44 @param left The left border of the boundary box (x direction).
45 @param right The right border of the boundary box (x direction).
46 @param bottom The bottom border of the boundary box (y direction).
47 @param top The top border of the boundary box (y direction).
48 */
49 virtual void RequestClusters(
50 AliHLTMUONMansoTrackerFSM* tracker,
51 AliHLTFloat32_t left, AliHLTFloat32_t right,
52 AliHLTFloat32_t bottom, AliHLTFloat32_t top,
53 AliHLTMUONChamberName chamber, const void* tag
54 ) = 0;
55
56 /* When this method is called then one knows no more RequestClusters method
57 calls are expected.
58 */
59 virtual void EndOfClusterRequests(AliHLTMUONMansoTrackerFSM* tracker) = 0;
60
61 /* This method is called when the tracker has found a track. The FillTrackData
62 method of the given tracker should be called to receive the track data.
63 At this point all cluster blocks can be released.
64 */
65 virtual void FoundTrack(AliHLTMUONMansoTrackerFSM* tracker) = 0;
66
67 /* When the tracker is finished with its work but no track was found then
68 this method is called. At this point no more work should be performed by
69 the tracker and all cluster blocks can be released.
70 */
71 virtual void NoTrackFound(AliHLTMUONMansoTrackerFSM* tracker) = 0;
72};
73
74#endif // ALIHLTMUONMANSOTRACKERFSMCALLBACK_H