Fireworks
Muons
plugins
FWME0DigiProxyBuilder.cc
Go to the documentation of this file.
1
//#include "TEveStraightLineSet.h"
2
#include "TEveBoxSet.h"
3
#include "TEveCompound.h"
4
#include "TEveGeoNode.h"
5
6
#include "
Fireworks/Core/interface/FWProxyBuilderBase.h
"
7
#include "
Fireworks/Core/interface/FWEventItem.h
"
8
#include "
Fireworks/Core/interface/FWGeometry.h
"
9
#include "
Fireworks/Core/interface/fwLog.h
"
10
11
#include "
DataFormats/GEMDigi/interface/ME0DigiPreRecoCollection.h
"
12
#include "
Geometry/GEMGeometry/interface/ME0Geometry.h
"
13
#include "
Geometry/GEMGeometry/interface/ME0EtaPartition.h
"
14
15
class
FWME0DigiProxyBuilder
:
public
FWProxyBuilderBase
{
16
public
:
17
FWME0DigiProxyBuilder
() {}
18
~FWME0DigiProxyBuilder
()
override
{}
19
20
REGISTER_PROXYBUILDER_METHODS
();
21
22
private
:
23
void
build
(
const
FWEventItem
* iItem, TEveElementList* product,
const
FWViewContext
*)
override
;
24
FWME0DigiProxyBuilder
(
const
FWME0DigiProxyBuilder
&) =
delete
;
25
const
FWME0DigiProxyBuilder
&
operator=
(
const
FWME0DigiProxyBuilder
&) =
delete
;
26
};
27
28
void
FWME0DigiProxyBuilder::build
(
const
FWEventItem
* iItem, TEveElementList* product,
const
FWViewContext
*) {
29
const
ME0DigiPreRecoCollection
* digis =
nullptr
;
30
31
iItem->
get
(digis);
32
33
if
(!digis) {
34
fwLog
(
fwlog::kWarning
) <<
"Failed to get ME0Digis"
<< std::endl;
35
return
;
36
}
37
const
FWGeometry
*
geom
= iItem->
getGeom
();
38
39
for
(
ME0DigiPreRecoCollection::DigiRangeIterator
dri = digis->begin(), driEnd = digis->end(); dri != driEnd; ++dri) {
40
unsigned
int
rawid = (*dri).first.rawId();
41
const
ME0DigiPreRecoCollection::Range
&
range
= (*dri).second;
42
43
if
(!
geom
->contains(rawid)) {
44
fwLog
(
fwlog::kWarning
) <<
"Failed to get geometry of ME0 roll with detid: "
<< rawid << std::endl;
45
46
TEveCompound* compound =
createCompound
();
47
setupAddElement
(compound, product);
48
49
continue
;
50
}
51
52
for
(
ME0DigiPreRecoCollection::const_iterator
dit =
range
.first; dit !=
range
.second; ++dit) {
53
TEveBoxSet* stripDigiSet =
new
TEveBoxSet;
54
setupAddElement
(stripDigiSet, product);
55
56
float
localPoint[3] = {(*dit).x(), (*dit).y(), 0.0};
57
float
globalPoint[3];
58
59
geom
->localToGlobal(rawid, localPoint, globalPoint);
60
61
stripDigiSet->AddBox(globalPoint[0], globalPoint[1], globalPoint[2], (*dit).ex(), (*dit).ey(), 0.1);
62
}
63
}
64
}
65
66
REGISTER_FWPROXYBUILDER
(
FWME0DigiProxyBuilder
,
67
ME0DigiPreRecoCollection
,
68
"ME0Digi"
,
69
FWViewType::kAll3DBits
|
FWViewType::kAllRPZBits
);
FastTimerService_cff.range
range
Definition:
FastTimerService_cff.py:34
fwLog
#define fwLog(_level_)
Definition:
fwLog.h:45
ME0DigiPreRecoCollection
FWGeometry
Definition:
FWGeometry.h:27
FWViewType::kAllRPZBits
static const int kAllRPZBits
Definition:
FWViewType.h:67
REGISTER_FWPROXYBUILDER
#define REGISTER_FWPROXYBUILDER(_name_, _type_, _purpose_, _view_)
Definition:
FWProxyBuilderFactory.h:33
FWEventItem::get
void get(const T *&oData) const
Definition:
FWEventItem.h:78
FWProxyBuilderBase.h
REGISTER_PROXYBUILDER_METHODS
#define REGISTER_PROXYBUILDER_METHODS()
Definition:
register_dataproxybuilder_macro.h:27
FWProxyBuilderBase::createCompound
TEveCompound * createCompound(bool set_color=true, bool propagate_color_to_all_children=false) const
Definition:
FWProxyBuilderBase.cc:374
MuonDigiCollection::const_iterator
std::vector< DigiType >::const_iterator const_iterator
Definition:
MuonDigiCollection.h:94
FWViewType::kAll3DBits
static const int kAll3DBits
Definition:
FWViewType.h:68
FWME0DigiProxyBuilder
Definition:
FWME0DigiProxyBuilder.cc:15
FWME0DigiProxyBuilder::~FWME0DigiProxyBuilder
~FWME0DigiProxyBuilder() override
Definition:
FWME0DigiProxyBuilder.cc:18
relativeConstraints.geom
geom
Definition:
relativeConstraints.py:72
FWGeometry.h
FWME0DigiProxyBuilder::operator=
const FWME0DigiProxyBuilder & operator=(const FWME0DigiProxyBuilder &)=delete
FWProxyBuilderBase::setupAddElement
void setupAddElement(TEveElement *el, TEveElement *parent, bool set_color=true) const
Definition:
FWProxyBuilderBase.cc:350
fwlog::kWarning
Definition:
fwLog.h:35
fwLog.h
FWProxyBuilderBase::build
void build()
Definition:
FWProxyBuilderBase.cc:110
FWEventItem.h
FWViewContext
Definition:
FWViewContext.h:32
FWEventItem::getGeom
const FWGeometry * getGeom() const
Definition:
FWEventItem.cc:548
ME0Geometry.h
FWME0DigiProxyBuilder::FWME0DigiProxyBuilder
FWME0DigiProxyBuilder()
Definition:
FWME0DigiProxyBuilder.cc:17
FWEventItem
Definition:
FWEventItem.h:56
ME0DigiPreRecoCollection.h
FWProxyBuilderBase
Definition:
FWProxyBuilderBase.h:46
ME0EtaPartition.h
MuonDigiCollection::Range
std::pair< const_iterator, const_iterator > Range
Definition:
MuonDigiCollection.h:95
DigiContainerIterator
Definition:
MuonDigiCollection.h:30
Generated for CMSSW Reference Manual by
1.8.16