ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
graphics
VP1
VP1Systems
VP1PRDSystems
src
PRDCollHandle_Pixel.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
VP1PRDSystems/PRDCollHandle_Pixel.h
"
6
#include "
VP1PRDSystems/PRDHandle_Pixel.h
"
7
#include "
VP1PRDSystems/PRDSystemController.h
"
8
#include "
InDetPrepRawData/PixelCluster.h
"
9
#include <QColor>
10
11
#include "
VP1Utils/VP1JobConfigInfo.h
"
12
#include "
VP1Utils/VP1SGContentsHelper.h
"
13
#include "
InDetPrepRawData/PixelClusterContainer.h
"
14
15
//____________________________________________________________________
16
QStringList
PRDCollHandle_Pixel::availableCollections
(
IVP1System
*sys)
17
{
18
return
VP1JobConfigInfo::hasPixelGeometry
() ?
VP1SGContentsHelper
(sys).
getKeys
<InDet::PixelClusterContainer>() : QStringList();
19
}
20
21
//____________________________________________________________________
22
class
PRDCollHandle_Pixel::Imp
{
23
public
:
24
PRDCommonFlags::InDetPartsFlags
indetpartsflags
;
25
unsigned
minNRDOPerCluster
= 0U;
26
};
27
28
//____________________________________________________________________
29
PRDCollHandle_Pixel::PRDCollHandle_Pixel
(
PRDSysCommonData
* cd,
const
QString& key)
30
:
PRDCollHandleBase
(
PRDDetType
::
Pixel
,cd,key),
m_d
(new
Imp
)
31
{
32
m_d
->indetpartsflags = (
PRDCommonFlags::BarrelPositive
|
PRDCommonFlags::BarrelNegative
|
PRDCommonFlags::EndCapPositive
|
PRDCommonFlags::EndCapNegative
);
33
m_d
->minNRDOPerCluster = 2;
34
}
35
36
//____________________________________________________________________
37
PRDCollHandle_Pixel::~PRDCollHandle_Pixel
()
38
{
39
delete
m_d
;
40
}
41
42
//____________________________________________________________________
43
QColor
PRDCollHandle_Pixel::defaultColor
()
const
44
{
45
return
QColor::fromRgbF(1.0, 0.666667, 0.5 );
//beige
46
}
47
48
//____________________________________________________________________
49
PRDHandleBase
*
PRDCollHandle_Pixel::addPRD
(
const
Trk::PrepRawData
* prd )
50
{
51
assert(
dynamic_cast<
const
InDet::PixelCluster
*
>
(prd));
52
return
new
PRDHandle_Pixel
(
this
,
static_cast<
const
InDet::PixelCluster
*
>
(prd));
53
}
54
55
//____________________________________________________________________
56
bool
PRDCollHandle_Pixel::cut
(
PRDHandleBase
*handlebase)
57
{
58
PRDHandle_Pixel
* handle =
static_cast<
PRDHandle_Pixel
*
>
(handlebase);
59
assert(handle);
60
61
if
(
m_d
->indetpartsflags!=
PRDCommonFlags::All
) {
62
if
(handle->isBarrel()) {
63
if
(!(handle->isPositiveZ()?(
m_d
->indetpartsflags&
PRDCommonFlags::BarrelPositive
):(
m_d
->indetpartsflags&
PRDCommonFlags::BarrelNegative
)))
64
return
false
;
65
}
else
{
66
if
(!(handle->isPositiveZ()?(
m_d
->indetpartsflags&
PRDCommonFlags::EndCapPositive
):(
m_d
->indetpartsflags&
PRDCommonFlags::EndCapNegative
)))
67
return
false
;
68
}
69
}
70
if
(
m_d
->minNRDOPerCluster&&handle->cluster()->rdoList().size()<
m_d
->minNRDOPerCluster)
71
return
false
;
72
return
true
;
73
}
74
75
//____________________________________________________________________
76
void
PRDCollHandle_Pixel::setPartsFlags
(PRDCommonFlags::InDetPartsFlags flags ) {
77
//NB: The code is this method is very similar in PRDCollHandle_Pixel::setPartsFlags, PRDCollHandle_SCT::setPartsFlags,
78
//PRDCollHandle_TRT::setPartsFlags and and PRDCollHandle_SpacePoints::setPartsFlags
79
//Fixme: base decision to recheck on visibility also!
80
81
if
(
m_d
->indetpartsflags==flags)
82
return
;
83
84
bool
barrelPosChanged = (
m_d
->indetpartsflags&
PRDCommonFlags::BarrelPositive
)!=(flags&
PRDCommonFlags::BarrelPositive
);
85
bool
barrelNegChanged = (
m_d
->indetpartsflags&
PRDCommonFlags::BarrelNegative
)!=(flags&
PRDCommonFlags::BarrelNegative
);
86
bool
endcapPosChanged = (
m_d
->indetpartsflags&
PRDCommonFlags::EndCapPositive
)!=(flags&
PRDCommonFlags::EndCapPositive
);
87
bool
endcapNegChanged = (
m_d
->indetpartsflags&
PRDCommonFlags::EndCapNegative
)!=(flags&
PRDCommonFlags::EndCapNegative
);
88
bool
barrelChanged = (barrelPosChanged || barrelNegChanged);
89
bool
endcapChanged = (endcapPosChanged || endcapNegChanged);
90
m_d
->indetpartsflags=flags;
91
92
largeChangesBegin
();
93
std::vector<PRDHandleBase*>::iterator it(
getPrdHandles
().begin()),itE(
getPrdHandles
().end());
94
for
(;it!=itE;++it) {
95
PRDHandle_Pixel
* handle =
static_cast<
PRDHandle_Pixel
*
>
(*it);
96
97
if
(handle->isBarrel()) {
98
if
(barrelChanged&&(handle->isPositiveZ()?barrelPosChanged:barrelNegChanged))
99
recheckCutStatus
(handle);
100
}
else
{
101
if
(endcapChanged&&(handle->isPositiveZ()?endcapPosChanged:endcapNegChanged))
102
recheckCutStatus
(handle);
103
}
104
105
}
106
largeChangesEnd
();
107
108
}
109
110
//____________________________________________________________________
111
void
PRDCollHandle_Pixel::setMinNRDOPerCluster
(
unsigned
minnrdo)
112
{
113
if
(
m_d
->minNRDOPerCluster==minnrdo)
114
return
;
115
bool
cut_relaxed = minnrdo<
m_d
->minNRDOPerCluster;
116
m_d
->minNRDOPerCluster = minnrdo;
117
if
(cut_relaxed)
118
recheckCutStatusOfAllNotVisibleHandles
();
119
else
120
recheckCutStatusOfAllVisibleHandles
();
121
}
122
123
//____________________________________________________________________
124
void
PRDCollHandle_Pixel::setupSettingsFromControllerSpecific
(
PRDSystemController
*controller)
125
{
126
connect(controller,SIGNAL(inDetPartsFlagsChanged(PRDCommonFlags::InDetPartsFlags)),
this
,SLOT(
setPartsFlags
(PRDCommonFlags::InDetPartsFlags)));
127
setPartsFlags
(controller->
inDetPartsFlags
());
128
129
connect(controller,SIGNAL(pixelMinNRDOPerClusterChanged(
unsigned
)),
this
,SLOT(
setMinNRDOPerCluster
(
unsigned
)));
130
setMinNRDOPerCluster
(controller->
pixelMinNRDOPerCluster
());
131
}
PixelClusterContainer.h
PixelCluster.h
PRDCollHandle_Pixel.h
PRDHandle_Pixel.h
PRDSystemController.h
VP1JobConfigInfo.h
VP1SGContentsHelper.h
IVP1System
Definition
IVP1System.h:36
InDet::PixelCluster
Definition
InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/PixelCluster.h:49
PRDCollHandleBase::recheckCutStatusOfAllNotVisibleHandles
void recheckCutStatusOfAllNotVisibleHandles()
Definition
PRDCollHandleBase.cxx:603
PRDCollHandleBase::PRDCollHandleBase
PRDCollHandleBase(PRDDetType::Type, PRDSysCommonData *, const QString &key)
Definition
PRDCollHandleBase.cxx:80
PRDCollHandleBase::getPrdHandles
std::vector< PRDHandleBase * > & getPrdHandles()
Definition
PRDCollHandleBase.cxx:507
PRDCollHandleBase::recheckCutStatus
void recheckCutStatus(PRDHandleBase *)
Definition
PRDCollHandleBase.cxx:519
PRDCollHandleBase::recheckCutStatusOfAllVisibleHandles
void recheckCutStatusOfAllVisibleHandles()
Definition
PRDCollHandleBase.cxx:585
PRDCollHandle_Pixel::Imp
Definition
PRDCollHandle_Pixel.cxx:22
PRDCollHandle_Pixel::Imp::indetpartsflags
PRDCommonFlags::InDetPartsFlags indetpartsflags
Definition
PRDCollHandle_Pixel.cxx:24
PRDCollHandle_Pixel::Imp::minNRDOPerCluster
unsigned minNRDOPerCluster
Definition
PRDCollHandle_Pixel.cxx:25
PRDCollHandle_Pixel::PRDCollHandle_Pixel
PRDCollHandle_Pixel(PRDSysCommonData *, const QString &key)
Definition
PRDCollHandle_Pixel.cxx:29
PRDCollHandle_Pixel::setPartsFlags
void setPartsFlags(PRDCommonFlags::InDetPartsFlags)
Definition
PRDCollHandle_Pixel.cxx:76
PRDCollHandle_Pixel::~PRDCollHandle_Pixel
virtual ~PRDCollHandle_Pixel()
Definition
PRDCollHandle_Pixel.cxx:37
PRDCollHandle_Pixel::defaultColor
virtual QColor defaultColor() const override
Definition
PRDCollHandle_Pixel.cxx:43
PRDCollHandle_Pixel::addPRD
virtual PRDHandleBase * addPRD(const Trk::PrepRawData *) override
Definition
PRDCollHandle_Pixel.cxx:49
PRDCollHandle_Pixel::m_d
Imp * m_d
Definition
PRDCollHandle_Pixel.h:39
PRDCollHandle_Pixel::cut
virtual bool cut(PRDHandleBase *) override
Definition
PRDCollHandle_Pixel.cxx:56
PRDCollHandle_Pixel::setupSettingsFromControllerSpecific
virtual void setupSettingsFromControllerSpecific(PRDSystemController *) override
Definition
PRDCollHandle_Pixel.cxx:124
PRDCollHandle_Pixel::availableCollections
static QStringList availableCollections(IVP1System *)
Definition
PRDCollHandle_Pixel.cxx:16
PRDCollHandle_Pixel::setMinNRDOPerCluster
void setMinNRDOPerCluster(unsigned)
Definition
PRDCollHandle_Pixel.cxx:111
PRDCommonFlags::BarrelPositive
@ BarrelPositive
Definition
PRDCommonFlags.h:24
PRDCommonFlags::All
@ All
Definition
PRDCommonFlags.h:30
PRDCommonFlags::BarrelNegative
@ BarrelNegative
Definition
PRDCommonFlags.h:25
PRDCommonFlags::EndCapPositive
@ EndCapPositive
Definition
PRDCommonFlags.h:26
PRDCommonFlags::EndCapNegative
@ EndCapNegative
Definition
PRDCommonFlags.h:27
PRDDetType
Definition
PRDDetTypes.h:10
PRDHandleBase
Definition
PRDHandleBase.h:35
PRDHandle_Pixel
Definition
PRDHandle_Pixel.h:14
PRDSysCommonData
Definition
PRDSysCommonData.h:35
PRDSystemController
Definition
PRDSystemController.h:34
PRDSystemController::inDetPartsFlags
PRDCommonFlags::InDetPartsFlags inDetPartsFlags() const
Definition
PRDSystemController.cxx:378
PRDSystemController::pixelMinNRDOPerCluster
unsigned pixelMinNRDOPerCluster() const
Definition
PRDSystemController.cxx:420
Trk::PrepRawData
Definition
PrepRawData.h:62
VP1JobConfigInfo::hasPixelGeometry
static bool hasPixelGeometry()
Definition
VP1JobConfigInfo.cxx:130
VP1SGContentsHelper
Definition
VP1SGContentsHelper.h:26
VP1SGContentsHelper::getKeys
QStringList getKeys() const
Definition
VP1SGContentsHelper.h:55
VP1StdCollection::largeChangesEnd
virtual void largeChangesEnd()
Definition
VP1StdCollection.cxx:239
VP1StdCollection::largeChangesBegin
virtual void largeChangesBegin()
Definition
VP1StdCollection.cxx:228
Pixel
Definition
PixelFEUtils.h:17
Generated on
for ATLAS Offline Software by
1.17.0