]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/TPCLib/AliHLTTPCDefinitions.cxx
treatment of MC labels added
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCDefinitions.cxx
CommitLineData
71d7c760 1// $Id$
2
3/**************************************************************************
9be2600f 4 * This file is property of and copyright by the ALICE HLT Project *
5 * ALICE Experiment at CERN, All rights reserved. *
71d7c760 6 * *
9be2600f 7 * Primary Authors: Matthias Richter <Matthias.Richter@ift.uib.no> *
8 * Timm Steinbeck <timm@kip.uni-heidelberg.de> *
9 * for The ALICE HLT Project. *
71d7c760 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///////////////////////////////////////////////////////////////////////////////
21// //
22// Definitions for the HLT TPC components //
23// //
24///////////////////////////////////////////////////////////////////////////////
25
26#include "AliHLTTPCDefinitions.h"
27
28
96bda103 29/** ROOT macro for the implementation of ROOT specific class methods */
71d7c760 30ClassImp(AliHLTTPCDefinitions)
31
e5c0542d 32const AliHLTComponentDataType AliHLTTPCDefinitions::fgkDDLEncodedEntropyRawDataType = AliHLTComponentDataTypeInitializer("DDLENCEN", kAliHLTDataOriginTPC);
69347e0d 33
e5c0542d 34const AliHLTComponentDataType AliHLTTPCDefinitions::fgkPackedRawDataType = AliHLTComponentDataTypeInitializer("RAWPAKED", kAliHLTDataOriginTPC);
35const AliHLTComponentDataType AliHLTTPCDefinitions::fgkUnpackedRawDataType = AliHLTComponentDataTypeInitializer("RAWUNPAK", kAliHLTDataOriginTPC);
36const AliHLTComponentDataType AliHLTTPCDefinitions::fgkClustersDataType = AliHLTComponentDataTypeInitializer("CLUSTERS", kAliHLTDataOriginTPC);
5e75f4e0 37const AliHLTComponentDataType AliHLTTPCDefinitions::fgkRawClustersDataType = AliHLTComponentDataTypeInitializer("CLUSTRAW", kAliHLTDataOriginTPC);
6af4f584 38const AliHLTComponentDataType AliHLTTPCDefinitions::fgkHWClustersDataType = AliHLTComponentDataTypeInitializer("HWCLUST1", kAliHLTDataOriginTPC);
491d6af5 39const AliHLTComponentDataType AliHLTTPCDefinitions::fgkAlterClustersDataType = AliHLTComponentDataTypeInitializer("HWCL_ALT", kAliHLTDataOriginTPC);
e5c0542d 40const AliHLTComponentDataType AliHLTTPCDefinitions::fgkVertexDataType = AliHLTComponentDataTypeInitializer("VERTEX ", kAliHLTDataOriginTPC);
41const AliHLTComponentDataType AliHLTTPCDefinitions::fgkTrackSegmentsDataType = AliHLTComponentDataTypeInitializer("TRAKSEGS", kAliHLTDataOriginTPC);
42const AliHLTComponentDataType AliHLTTPCDefinitions::fgkTracksDataType = AliHLTComponentDataTypeInitializer("TRACKS ", kAliHLTDataOriginTPC);
ff2f0f94 43
e5c0542d 44const AliHLTComponentDataType AliHLTTPCDefinitions::fgkClusterTracksModelDataType = AliHLTComponentDataTypeInitializer("CLSTRKMD", kAliHLTDataOriginTPC);
45const AliHLTComponentDataType AliHLTTPCDefinitions::fgkRemainingClustersModelDataType = AliHLTComponentDataTypeInitializer("REMCLSMD", kAliHLTDataOriginTPC);
46const AliHLTComponentDataType AliHLTTPCDefinitions::fgkClusterTracksCompressedDataType = AliHLTComponentDataTypeInitializer("CLSTRKCM", kAliHLTDataOriginTPC);
47const AliHLTComponentDataType AliHLTTPCDefinitions::fgkRemainingClustersCompressedDataType = AliHLTComponentDataTypeInitializer("REMCLSCM", kAliHLTDataOriginTPC);
69347e0d 48
4f82526d 49const AliHLTComponentDataType& AliHLTTPCDefinitions::DDLEncodedEntropyRawDataType() {
50 static AliHLTComponentDataType dt = AliHLTComponentDataTypeInitializer("DDLENCEN", kAliHLTDataOriginTPC);
51 return dt;
52}
53const AliHLTComponentDataType& AliHLTTPCDefinitions::PackedRawDataType() {
54 static AliHLTComponentDataType dt = AliHLTComponentDataTypeInitializer("RAWPAKED", kAliHLTDataOriginTPC);
55 return dt;
56}
57const AliHLTComponentDataType& AliHLTTPCDefinitions::UnpackedRawDataType() {
58 static AliHLTComponentDataType dt = AliHLTComponentDataTypeInitializer("RAWUNPAK", kAliHLTDataOriginTPC);
59 return dt;
60}
61const AliHLTComponentDataType& AliHLTTPCDefinitions::ClustersDataType() {
62 static AliHLTComponentDataType dt = AliHLTComponentDataTypeInitializer("CLUSTERS", kAliHLTDataOriginTPC);
63 return dt;
64}
65const AliHLTComponentDataType& AliHLTTPCDefinitions::RawClustersDataType() {
66 static AliHLTComponentDataType dt = AliHLTComponentDataTypeInitializer("CLUSTRAW", kAliHLTDataOriginTPC);
67 return dt;
68}
69const AliHLTComponentDataType& AliHLTTPCDefinitions::HWClustersDataType() {
70 static AliHLTComponentDataType dt = AliHLTComponentDataTypeInitializer("HWCLUST1", kAliHLTDataOriginTPC);
71 return dt;
72}
73const AliHLTComponentDataType& AliHLTTPCDefinitions::AlterClustersDataType() {
74 static AliHLTComponentDataType dt = AliHLTComponentDataTypeInitializer("HWCL_ALT", kAliHLTDataOriginTPC);
75 return dt;
76}
77const AliHLTComponentDataType& AliHLTTPCDefinitions::VertexDataType() {
78 static AliHLTComponentDataType dt = AliHLTComponentDataTypeInitializer("VERTEX ", kAliHLTDataOriginTPC);
79 return dt;
80}
81const AliHLTComponentDataType& AliHLTTPCDefinitions::TrackSegmentsDataType() {
82 static AliHLTComponentDataType dt = AliHLTComponentDataTypeInitializer("TRAKSEGS", kAliHLTDataOriginTPC);
83 return dt;
84}
85const AliHLTComponentDataType& AliHLTTPCDefinitions::TracksDataType() {
86 static AliHLTComponentDataType dt = AliHLTComponentDataTypeInitializer("TRACKS ", kAliHLTDataOriginTPC);
87 return dt;
88}
89
90const AliHLTComponentDataType& AliHLTTPCDefinitions::ClusterTracksModelDataType() {
91 static AliHLTComponentDataType dt = AliHLTComponentDataTypeInitializer("CLSTRKMD", kAliHLTDataOriginTPC);
92 return dt;
93}
94const AliHLTComponentDataType& AliHLTTPCDefinitions::RemainingClustersModelDataType() {
95 static AliHLTComponentDataType dt = AliHLTComponentDataTypeInitializer("REMCLSMD", kAliHLTDataOriginTPC);
96 return dt;
97}
98const AliHLTComponentDataType& AliHLTTPCDefinitions::ClusterTracksCompressedDataType() {
99 static AliHLTComponentDataType dt = AliHLTComponentDataTypeInitializer("CLSTRKCM", kAliHLTDataOriginTPC);
100 return dt;
101}
29a647c6 102const AliHLTComponentDataType& AliHLTTPCDefinitions::ClusterIdTracksDataType() {
103 static AliHLTComponentDataType dt = AliHLTComponentDataTypeInitializer("CLIDSTRK", kAliHLTDataOriginTPC);
104 return dt;
105}
4f82526d 106const AliHLTComponentDataType& AliHLTTPCDefinitions::RemainingClustersCompressedDataType() {
107 static AliHLTComponentDataType dt = AliHLTComponentDataTypeInitializer("REMCLSCM", kAliHLTDataOriginTPC);
108 return dt;
109}
29a647c6 110const AliHLTComponentDataType& AliHLTTPCDefinitions::RemainingClusterIdsDataType() {
111 static AliHLTComponentDataType dt = AliHLTComponentDataTypeInitializer("REMCLIDS", kAliHLTDataOriginTPC);
112 return dt;
113}
4f82526d 114
d3dbc486 115const AliHLTComponentDataType& AliHLTTPCDefinitions::CalibPedestalDataType() {
116 static AliHLTComponentDataType dt = AliHLTComponentDataTypeInitializer("CAL_PED ", kAliHLTDataOriginTPC);
117 return dt;
118}
119const AliHLTComponentDataType& AliHLTTPCDefinitions::CalibPulserDataType() {
120 static AliHLTComponentDataType dt = AliHLTComponentDataTypeInitializer("CAL_PULS", kAliHLTDataOriginTPC);
121 return dt;
122}
123const AliHLTComponentDataType& AliHLTTPCDefinitions::CalibCEDataType() {
124 static AliHLTComponentDataType dt = AliHLTComponentDataTypeInitializer("CAL_CE ", kAliHLTDataOriginTPC);
125 return dt;
126}
127
128const AliHLTComponentDataType& AliHLTTPCDefinitions::OfflineCalibAlignDataType() {
129 static AliHLTComponentDataType dt = AliHLTComponentDataTypeInitializer("CALALIGN", kAliHLTDataOriginTPC);
130 return dt;
131}
132const AliHLTComponentDataType& AliHLTTPCDefinitions::OfflineCalibTracksDataType() {
133 static AliHLTComponentDataType dt = AliHLTComponentDataTypeInitializer("CALTRACK", kAliHLTDataOriginTPC);
134 return dt;
135}
136
137const AliHLTComponentDataType& AliHLTTPCDefinitions::OfflineCalibTracksGainDataType() {
138 static AliHLTComponentDataType dt = AliHLTComponentDataTypeInitializer("CALGAIN ", kAliHLTDataOriginTPC);
139 return dt;
140}
141
4f82526d 142const AliHLTComponentDataType& AliHLTTPCDefinitions::AliHLTDataTypeClusterMCInfo() {
143 static AliHLTComponentDataType dt = AliHLTComponentDataTypeInitializer("CLMCINFO", kAliHLTDataOriginTPC);
144 return dt;
145}
deba5d85 146const AliHLTComponentDataType AliHLTTPCDefinitions::fgkAliHLTDataTypeClusterMCInfo = AliHLTComponentDataTypeInitializer("CLMCINFO", kAliHLTDataOriginTPC);
147
e642ae99 148
71300445 149const AliHLTTPCDefinitions::AliClusterParameter AliHLTTPCDefinitions::fgkClusterParameterDefinitions[]= {
61e66346 150 {AliHLTTPCDefinitions::kPadRow, "padrow", 6, 1, 1}, // difference of rows, mostly 0 or 1
b97434b7 151 {AliHLTTPCDefinitions::kPad, "pad", 14, 12, 60}, // <100um for 6mm pads
152 {AliHLTTPCDefinitions::kTime, "time", 15, 13, 25}, // <100um for 2.5 mm timebin pitch
71300445 153 {AliHLTTPCDefinitions::kSigmaY2, "sigmaY2", 8, 5, 25},
154 {AliHLTTPCDefinitions::kSigmaZ2, "sigmaZ2", 8, 5, 10},
155 {AliHLTTPCDefinitions::kCharge, "charge", 16, 9, 1},
b97434b7 156 {AliHLTTPCDefinitions::kQMax, "qmax", 10, 6, 1},
157 {AliHLTTPCDefinitions::kResidualPad, "respad", 9, 4, 60}, // <100um for 6mm pads, sign stored in separate bit
158 {AliHLTTPCDefinitions::kResidualTime,"restime", 8, 4, 25}, // <100um for 2.5 mm timebin pitch, separate bit for sign
b97434b7 159 {AliHLTTPCDefinitions::kClusterCount,"clustercount", 6, 3, 1} // number of clusters on that row
71300445 160};
161
162unsigned AliHLTTPCDefinitions::GetNumberOfClusterParameterDefinitions()
163{
164 return sizeof(fgkClusterParameterDefinitions)/sizeof(AliClusterParameter);
165}
166
b97434b7 167// NOTE! those values are related to the number of bits in
168// fgkClusterParameterDefinitions
169const unsigned AliHLTTPCDefinitions::fgkMaxClusterDeltaPad=8;
170const unsigned AliHLTTPCDefinitions::fgkMaxClusterDeltaTime=10;
171
2a083ac4 172AliHLTTPCDefinitions::AliHLTTPCDefinitions()
173{
96bda103 174 // see header file for class documentation
175 // or
176 // refer to README to build package
177 // or
178 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
2a083ac4 179}
180
181AliHLTTPCDefinitions::~AliHLTTPCDefinitions()
182{
96bda103 183 // see header file for class documentation
2a083ac4 184}
185
625b072f 186bool AliHLTTPCDefinitions::DDLIdToSlicePatch(AliHLTInt32_t ddlid, AliHLTUInt8_t& slice, AliHLTUInt8_t& patch)
187{
188 // Convert DDL ID to patch and slice numbers.
189
190 if ((AliHLTUInt32_t(ddlid) >> 8) != 0x3) return false; // Check that detector is TPC.
191 AliHLTUInt32_t ddl = (AliHLTUInt32_t(ddlid) & 0xFF);
192 if (ddl > 215) return false;
193 if (ddl < 72)
194 {
195 slice = ddl / 2;
196 patch = ddl % 2;
197 }
198 else
199 {
200 ddl -= 72;
201 slice = ddl / 4;
202 patch = ddl % 4 + 2;
203 }
204 return true;
205}
71d7c760 206