1 #ifndef ALIHLTMUONCONSTANTS_H
2 #define ALIHLTMUONCONSTANTS_H
3 /**************************************************************************
4 * This file is property of and copyright by the ALICE HLT Project *
5 * All rights reserved. *
8 * Indranil Das <indra.das@saha.ac.in> *
9 * Artur Szostak <artursz@iafrica.com> *
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 **************************************************************************/
23 * @file AliHLTMUONConstants.h
24 * @author Indranil Das <indra.das@saha.ac.in>,
25 * Artur Szostak <artursz@iafrica.com>
27 * @brief Class containing various dimuon HLT constants used in the system.
32 // Forward declare structures.
34 struct AliHLTComponentDataType;
35 struct AliHLTMUONTriggerRecordStruct;
36 struct AliHLTMUONTrigRecInfoStruct;
37 struct AliHLTMUONRecHitStruct;
38 struct AliHLTMUONChannelStruct;
39 struct AliHLTMUONClusterStruct;
40 struct AliHLTMUONMansoTrackStruct;
41 struct AliHLTMUONMansoRoIStruct;
42 struct AliHLTMUONMansoCandidateStruct;
43 struct AliHLTMUONTrackStruct;
44 struct AliHLTMUONTrackDecisionStruct;
45 struct AliHLTMUONPairDecisionStruct;
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.
53 class AliHLTMUONConstants
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();
70 // Methods returning HLT component input and output data block types:
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.
79 static const AliHLTComponentDataType& DDLRawDataType();
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();
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();
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();
122 /// Returns the typical X (non-bending plane) resolution of the hit reconstruction (units = cm).
123 static double DefaultNonBendingReso();
125 /// Returns the typical Y (bending plane) resolution of the hit reconstruction (units = cm).
126 static double DefaultBendingReso();
130 // Should never have to create, destroy or copy this object.
131 AliHLTMUONConstants() {}
132 AliHLTMUONConstants(const AliHLTMUONConstants& obj);
133 virtual ~AliHLTMUONConstants() {}
134 AliHLTMUONConstants& operator = (const AliHLTMUONConstants& obj);
136 ClassDef(AliHLTMUONConstants, 0); // Interface class to dHLT constants.
139 #endif // ALIHLTMUONCONSTANTS_H