ATLAS Offline Software
InnerDetector
InDetRawEvent
InDetRawData
src
TRT_LoLumRawData.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
6
8
// TRT_LoLumRawData.cxx
9
// Implementation file for class TRT_LoLumRawData
11
// (c) ATLAS Detector software
13
// Version 1.0 13/08/2002 Veronique Boisvert
14
// Implementation provided by A. Zalite, February 2003
16
17
#include "
InDetRawData/TRT_LoLumRawData.h
"
18
#include "
InDetRawData/TRT_RDORawData.h
"
19
20
21
22
// default constructor
23
TRT_LoLumRawData::TRT_LoLumRawData
() :
24
TRT_RDORawData
(
Identifier
(), 0)
//call base-class constructor
25
{}
26
27
// Constructor with parameters:
28
TRT_LoLumRawData::TRT_LoLumRawData
(
const
Identifier
rdoId,
29
const
unsigned
int
word) :
30
TRT_RDORawData
( rdoId, word)
//call base-class constructor
31
{}
32
33
void
TRT_LoLumRawData::findLargestIsland
(
unsigned
int
word,
Island
& island) {
34
unsigned
long
mask
= 0x02000000;
// 0 0 10000000 0 00000000 0 00000000
35
unsigned
int
bestLength = 0;
36
unsigned
int
currentLength = 0;
37
38
// set 4 last bits to zero (to match data and MC bitmasks)
39
unsigned
int
wordLE = word &
m_maskFourLastBits
;
40
41
mask
>>=1;
// 0 0 01000000 0 00000000 0 00000000
42
bool
SawZero =
false
;
43
unsigned
int
k
= 1;
44
island.
m_leadingEdge
=0, island.
m_trailingEdge
=0;
45
unsigned
int
currentLeadingEdge=0, currentTrailingEdge=0;
46
47
// shift bitmask to the right until end
48
while
(
true
) {
49
if
(!(wordLE &
mask
) && !SawZero) SawZero =
true
;
// search for the first 0 to 1 transition
50
if
(SawZero) {
51
if
(wordLE &
mask
){
52
if
(currentLength==0) currentLeadingEdge=
k
;
53
currentTrailingEdge=
k
;
54
++currentLength;
55
}
else
{
// remember longest island, ignore islands of length 1 which are very likely noise
56
if
(currentLength >= bestLength && currentLeadingEdge<18 && currentLength > 1) {
57
bestLength = currentLength;
58
island.
m_leadingEdge
= currentLeadingEdge;
59
island.
m_trailingEdge
= currentTrailingEdge;
60
}
61
currentLength = 0;
62
}
63
}
64
mask
>>= 1;
65
if
(!(
mask
&
m_maskThreeLastBits
))
break
;
// stop after checking 20 LT bits
66
if
(
k
== 7 ||
k
== 15)
mask
>>= 1;
// ignore HT bits
67
assert(
k
< 20);
68
++
k
;
69
}
70
assert(
k
== 20);
71
// avoid very early TE, most likely from previous BX. Hit will still be used for tracking if it has a valid LE
72
if
(island.
m_trailingEdge
< 8) island.
m_trailingEdge
= 0;
73
}
TRT_RDORawData.h
TRT_LoLumRawData::Island
Definition:
TRT_LoLumRawData.h:92
TRT_LoLumRawData::TRT_LoLumRawData
TRT_LoLumRawData()
Definition:
TRT_LoLumRawData.cxx:23
TRT_LoLumRawData::m_maskThreeLastBits
static constexpr unsigned int m_maskThreeLastBits
Definition:
TRT_LoLumRawData.h:84
python.utils.AtlRunQueryLookup.mask
string mask
Definition:
AtlRunQueryLookup.py:460
TRT_RDORawData
Definition:
TRT_RDORawData.h:24
TRT_LoLumRawData::findLargestIsland
static void findLargestIsland(unsigned int word, Island &island)
Definition:
TRT_LoLumRawData.cxx:33
TRT_LoLumRawData::Island::m_leadingEdge
unsigned int m_leadingEdge
Definition:
TRT_LoLumRawData.h:93
TRT_LoLumRawData::Island::m_trailingEdge
unsigned int m_trailingEdge
Definition:
TRT_LoLumRawData.h:94
TRT_LoLumRawData::m_maskFourLastBits
static constexpr unsigned int m_maskFourLastBits
Definition:
TRT_LoLumRawData.h:83
fitman.k
k
Definition:
fitman.py:528
TRT_LoLumRawData.h
Identifier
Definition:
IdentifierFieldParser.cxx:14
Generated on Thu Nov 7 2024 21:30:39 for ATLAS Offline Software by
1.8.18