Main Page
Namespaces
Classes
Package Documentation
CVS Directory
WorkBook
Offline Guide
Release schedule
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Pages
src
DataFormats
Common
interface
RefItemGet.h
Go to the documentation of this file.
1
#ifndef DataFormats_Common_RefItemGet_h
2
#define DataFormats_Common_RefItemGet_h
3
4
/*----------------------------------------------------------------------
5
6
RefItemGet: Free function to get pointer to a referenced item.
7
8
$Id: RefItemGet.h,v 1.2 2007/07/09 07:28:49 llista Exp $
9
10
----------------------------------------------------------------------*/
11
#include "
DataFormats/Common/interface/RefCore.h
"
12
#include "
DataFormats/Common/interface/RefItem.h
"
13
#include "
DataFormats/Common/interface/RefCoreGet.h
"
14
15
namespace
edm {
16
17
namespace
refitem {
18
template
<
typename
C,
typename
T,
typename
F,
typename
KEY>
19
struct
GetPtrImpl
{
20
static
T
const
*
getPtr_
(
RefCore
const
& product,
RefItem<KEY>
const
& item) {
21
C
const
*
prod
=
edm::template
getProduct<C>(product);
22
/*
23
typename C::const_iterator it = prod->begin();
24
std::advance(it, item.key());
25
T const* p = it.operator->();
26
*/
27
F func;
28
T
const
*
p
= func(*prod, item.
key
());
29
return
p
;
30
}
31
};
32
}
33
34
template
<
typename
C,
typename
T,
typename
F,
typename
KEY>
35
inline
36
T
const
*
getPtr_
(
RefCore
const
& product,
RefItem<KEY>
const
& item) {
37
return
refitem::GetPtrImpl<C, T, F, KEY>::getPtr_
(product, item);
38
}
39
40
template
<
typename
C,
typename
T,
typename
F,
typename
KEY>
41
inline
42
T
const
*
getPtr
(
RefCore
const
& product,
RefItem<KEY>
const
& item) {
43
T
const
*
p
=
static_cast<
T
const
*
>
(item.
ptr
());
44
if
(0==p){
45
p=getPtr_<C, T, F>(product,item);
46
item.
setPtr
(p);
47
}
48
return
p
;
49
}
50
}
51
52
#endif
RefItem.h
edm::RefItem< KEY >
edm::getPtr_
T const * getPtr_(RefCore const &product, RefItem< KEY > const &item)
Definition:
RefItemGet.h:36
RefCore.h
funct::C
C
Definition:
Factorize.h:141
edm::getPtr
T const * getPtr(RefCore const &product, RefItem< KEY > const &item)
Definition:
RefItemGet.h:42
edm::refitem::GetPtrImpl::getPtr_
static T const * getPtr_(RefCore const &product, RefItem< KEY > const &item)
Definition:
RefItemGet.h:20
RefCoreGet.h
edm::RefCore
Definition:
RefCore.h:15
CrabTask.prod
tuple prod
Definition:
CrabTask.py:87
edm::RefItem::setPtr
void const * setPtr(void const *p) const
Definition:
RefItem.h:29
L1TEmulatorMonitor_cff.p
tuple p
Definition:
L1TEmulatorMonitor_cff.py:48
edm::refitem::GetPtrImpl
Definition:
RefItemGet.h:19
edm::RefItem::key
key_type key() const
Definition:
RefItem.h:27
edm::RefItem::ptr
void const * ptr() const
Definition:
RefItem.h:28
svgfig.template
def template
Definition:
svgfig.py:520
Generated for CMSSW Reference Manual by
1.8.5