ALIROOT-5433 Transition to CDHv3 in HLT
[u/mrichter/AliRoot.git] / HLT / MUON / AliHLTMUONConstants.h
CommitLineData
26a4668d 1#ifndef ALIHLTMUONCONSTANTS_H
2#define ALIHLTMUONCONSTANTS_H
e6357f88 3/**************************************************************************
4 * This file is property of and copyright by the ALICE HLT Project *
5 * All rights reserved. *
6 * *
7 * Primary Authors: *
8 * Indranil Das <indra.das@saha.ac.in> *
9 * Artur Szostak <artursz@iafrica.com> *
10 * *
11 * Permission to use, copy, modify and distribute this software and its *
12 * documentation strictly for non-commercial purposes is hereby granted *
13 * without fee, provided that the above copyright notice appears in all *
14 * copies and that both the copyright notice and this permission notice *
15 * appear in the supporting documentation. The authors make no claims *
16 * about the suitability of this software for any purpose. It is *
17 * provided "as is" without express or implied warranty. *
18 **************************************************************************/
26a4668d 19
1d8ae082 20// $Id$
26a4668d 21
22/**
23 * @file AliHLTMUONConstants.h
24 * @author Indranil Das <indra.das@saha.ac.in>,
25 * Artur Szostak <artursz@iafrica.com>
4d76a068 26 * @date 17 May 2007
26a4668d 27 * @brief Class containing various dimuon HLT constants used in the system.
28 */
29
33b1e2f2 30#include "TObject.h"
31
b12fe461 32// Forward declare structures.
33extern "C" {
34struct AliHLTComponentDataType;
35struct AliHLTMUONTriggerRecordStruct;
36struct AliHLTMUONTrigRecInfoStruct;
b12fe461 37struct AliHLTMUONRecHitStruct;
38struct AliHLTMUONChannelStruct;
39struct AliHLTMUONClusterStruct;
40struct AliHLTMUONMansoTrackStruct;
41struct AliHLTMUONMansoRoIStruct;
42struct AliHLTMUONMansoCandidateStruct;
a8982f78 43struct AliHLTMUONTrackStruct;
b12fe461 44struct AliHLTMUONTrackDecisionStruct;
45struct AliHLTMUONPairDecisionStruct;
46} // extern "C"
26a4668d 47
48/**
49 * AliHLTMUONConstants contains a list of global dimuon HLT specific constants
50 * and constant structures used in the system.
51 * Static methods are provided to access these values.
52 */
53class AliHLTMUONConstants
54{
55public:
56
bfd48318 57 // The following methods return null/nil structures that can also be used as sentinels:
58 static const AliHLTMUONTriggerRecordStruct& NilTriggerRecordStruct();
59 static const AliHLTMUONTrigRecInfoStruct& NilTrigRecInfoStruct();
60 static const AliHLTMUONRecHitStruct& NilRecHitStruct();
61 static const AliHLTMUONChannelStruct& NilChannelStruct();
62 static const AliHLTMUONClusterStruct& NilClusterStruct();
63 static const AliHLTMUONMansoTrackStruct& NilMansoTrackStruct();
64 static const AliHLTMUONMansoRoIStruct& NilMansoRoIStruct();
65 static const AliHLTMUONMansoCandidateStruct& NilMansoCandidateStruct();
66 static const AliHLTMUONTrackStruct& NilTrackStruct();
67 static const AliHLTMUONTrackDecisionStruct& NilTrackDecisionStruct();
68 static const AliHLTMUONPairDecisionStruct& NilPairDecisionStruct();
69
70 // Methods returning HLT component input and output data block types:
71
72 /**
73 * Returns the raw data type for MUON DDLs. To figure out if the DDL format
74 * will be for a tracking DDL or trigger DDL one needs to also check the
75 * sepcification word of the input data block. If one of the first 20 least
76 * significant bits are set then it is a tracker DDL otherwise if it is
77 * the 21st or 22nd bit then it is from the muon trigger.
78 */
79 static const AliHLTComponentDataType& DDLRawDataType();
80
81 static const AliHLTComponentDataType& TriggerRecordsBlockDataType();
82 static const AliHLTComponentDataType& TrigRecsDebugBlockDataType();
83 static const AliHLTComponentDataType& RecHitsBlockDataType();
84 static const AliHLTComponentDataType& ClusterBlockDataType();
85 static const AliHLTComponentDataType& ChannelBlockDataType();
86 static const AliHLTComponentDataType& MansoTracksBlockDataType();
87 static const AliHLTComponentDataType& MansoCandidatesBlockDataType();
88 static const AliHLTComponentDataType& TracksBlockDataType();
89 static const AliHLTComponentDataType& SinglesDecisionBlockDataType();
90 static const AliHLTComponentDataType& PairsDecisionBlockDataType();
91 static const AliHLTComponentDataType& RootifiedEventDataType();
92 static const AliHLTComponentDataType& ESDDataType();
93 static const AliHLTComponentDataType& ClusterStoreDataType();
94 static const AliHLTComponentDataType& HistogramDataType();
95
96
97 // Methods to return component ID names:
98 static const char* RecHitsSourceId();
99 static const char* TriggerRecordsSourceId();
100 static const char* TracksSourceId();
101 static const char* DigitPublisherId();
102 static const char* TriggerReconstructorId();
103 static const char* HitReconstructorId();
104 static const char* MansoTrackerFSMId();
105 static const char* FullTrackerId();
106 static const char* DecisionComponentId();
107 static const char* ESDMakerId();
108 static const char* RootifierComponentId();
109 static const char* EmptyEventFilterComponentId();
110 static const char* DataCheckerComponentId();
111 static const char* ClusterFinderId();
112 static const char* RawDataHistogrammerId();
113 static const char* ClusterHistogrammerId();
114
115 // Methods for returning the CDB path entries to configuration information:
116 static const char* TriggerReconstructorCDBPath();
117 static const char* HitReconstructorCDBPath();
118 static const char* MansoTrackerFSMCDBPath();
119 static const char* DecisionComponentCDBPath();
120 static const char* FieldIntegralsCDBPath();
bc5cb6d6 121
c6bc1026 122 /// Returns the typical X (non-bending plane) resolution of the hit reconstruction (units = cm).
bfd48318 123 static double DefaultNonBendingReso();
0999b15c 124
c6bc1026 125 /// Returns the typical Y (bending plane) resolution of the hit reconstruction (units = cm).
bfd48318 126 static double DefaultBendingReso();
26a4668d 127
128private:
90a74d7a 129
b12fe461 130 // Should never have to create, destroy or copy this object.
213499f0 131 AliHLTMUONConstants() {}
b12fe461 132 AliHLTMUONConstants(const AliHLTMUONConstants& obj);
213499f0 133 virtual ~AliHLTMUONConstants() {}
b12fe461 134 AliHLTMUONConstants& operator = (const AliHLTMUONConstants& obj);
c8ec7c7e 135
33b1e2f2 136 ClassDef(AliHLTMUONConstants, 0); // Interface class to dHLT constants.
26a4668d 137};
138
139#endif // ALIHLTMUONCONSTANTS_H