Line data Source code
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. *
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 : **************************************************************************/
19 :
20 : // $Id$
21 :
22 : /**
23 : * @file AliHLTMUONConstants.h
24 : * @author Indranil Das <indra.das@saha.ac.in>,
25 : * Artur Szostak <artursz@iafrica.com>
26 : * @date 17 May 2007
27 : * @brief Class containing various dimuon HLT constants used in the system.
28 : */
29 :
30 : #include "TObject.h"
31 :
32 : // Forward declare structures.
33 : extern "C" {
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;
46 : } // extern "C"
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 : */
53 : class AliHLTMUONConstants
54 : {
55 : public:
56 :
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();
121 :
122 : /// Returns the typical X (non-bending plane) resolution of the hit reconstruction (units = cm).
123 : static double DefaultNonBendingReso();
124 :
125 : /// Returns the typical Y (bending plane) resolution of the hit reconstruction (units = cm).
126 : static double DefaultBendingReso();
127 :
128 : private:
129 :
130 : // Should never have to create, destroy or copy this object.
131 : AliHLTMUONConstants() {}
132 : AliHLTMUONConstants(const AliHLTMUONConstants& obj);
133 0 : virtual ~AliHLTMUONConstants() {}
134 : AliHLTMUONConstants& operator = (const AliHLTMUONConstants& obj);
135 :
136 6 : ClassDef(AliHLTMUONConstants, 0); // Interface class to dHLT constants.
137 : };
138 :
139 : #endif // ALIHLTMUONCONSTANTS_H
|