ROOT
master
Reference Guide
Loading...
Searching...
No Matches
RNewSampleNotifier.hxx
Go to the documentation of this file.
1
// Author: Enrico Guiraud, 2021
2
3
/*************************************************************************
4
* Copyright (C) 1995-2021, Rene Brun and Fons Rademakers. *
5
* All rights reserved. *
6
* *
7
* For the licensing terms see $ROOTSYS/LICENSE. *
8
* For the list of contributors see $ROOTSYS/README/CREDITS. *
9
*************************************************************************/
10
11
#ifndef ROOT_RDF_RNEWSAMPLENOTIFIER
12
#define ROOT_RDF_RNEWSAMPLENOTIFIER
13
14
#include <
TNotifyLink.h
>
15
16
#include <memory>
17
18
namespace
ROOT
{
19
namespace
Internal
{
20
namespace
RDF {
21
22
struct
RNewSampleFlag
{
23
bool
fFlag
=
false
;
24
25
public
:
26
void
SetFlag
() {
fFlag
=
true
; }
27
void
UnsetFlag
() {
fFlag
=
false
; }
28
bool
CheckFlag
()
const
{
return
fFlag
; }
29
bool
Notify
()
30
{
31
SetFlag
();
32
return
true
;
33
}
34
};
35
36
class
RNewSampleNotifier
{
37
// TNotifyLink and RNewSampleFlags per processing slot
38
std::vector<std::unique_ptr<TNotifyLink<RNewSampleFlag>>>
fNotifyLink
{};
39
std::vector<RNewSampleFlag>
fFlags
{};
40
41
public
:
42
RNewSampleNotifier
() =
default
;
43
RNewSampleNotifier
(
unsigned
int
nSlots
) :
fNotifyLink
(
nSlots
),
fFlags
(
nSlots
) {}
44
bool
CheckFlag
(
unsigned
int
slot
)
const
{
return
fFlags
[
slot
].CheckFlag(); }
45
void
SetFlag
(
unsigned
int
slot
) {
fFlags
[
slot
].SetFlag(); }
46
void
UnsetFlag
(
unsigned
int
slot
) {
fFlags
[
slot
].UnsetFlag(); }
47
TNotifyLink<RNewSampleFlag>
&
GetChainNotifyLink
(
unsigned
int
slot
)
48
{
49
if
(
fNotifyLink
[
slot
] ==
nullptr
)
50
fNotifyLink
[
slot
] = std::make_unique<TNotifyLink<RNewSampleFlag>>(&
fFlags
[
slot
]);
51
return
*
fNotifyLink
[
slot
];
52
}
53
};
54
}
// namespace RDF
55
}
// namespace Internal
56
}
// namespace ROOT
57
58
#endif
// ROOT_RDF_RDATABLOCKNOTIFIER
TRangeDynCast
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Definition
TCollection.h:358
TNotifyLink.h
ROOT::Detail::TRangeCast
Definition
TCollection.h:311
ROOT::Internal::RDF::RNewSampleNotifier
Definition
RNewSampleNotifier.hxx:36
ROOT::Internal::RDF::RNewSampleNotifier::RNewSampleNotifier
RNewSampleNotifier(unsigned int nSlots)
Definition
RNewSampleNotifier.hxx:43
ROOT::Internal::RDF::RNewSampleNotifier::SetFlag
void SetFlag(unsigned int slot)
Definition
RNewSampleNotifier.hxx:45
ROOT::Internal::RDF::RNewSampleNotifier::fNotifyLink
std::vector< std::unique_ptr< TNotifyLink< RNewSampleFlag > > > fNotifyLink
Definition
RNewSampleNotifier.hxx:38
ROOT::Internal::RDF::RNewSampleNotifier::CheckFlag
bool CheckFlag(unsigned int slot) const
Definition
RNewSampleNotifier.hxx:44
ROOT::Internal::RDF::RNewSampleNotifier::fFlags
std::vector< RNewSampleFlag > fFlags
Definition
RNewSampleNotifier.hxx:39
ROOT::Internal::RDF::RNewSampleNotifier::RNewSampleNotifier
RNewSampleNotifier()=default
ROOT::Internal::RDF::RNewSampleNotifier::UnsetFlag
void UnsetFlag(unsigned int slot)
Definition
RNewSampleNotifier.hxx:46
ROOT::Internal::RDF::RNewSampleNotifier::GetChainNotifyLink
TNotifyLink< RNewSampleFlag > & GetChainNotifyLink(unsigned int slot)
Definition
RNewSampleNotifier.hxx:47
ROOT::Minuit2::GradientParameterSpace::Internal
@ Internal
ROOT
Definition
EExecutionPolicy.hxx:4
ROOT::Internal::RDF::RNewSampleFlag
Definition
RNewSampleNotifier.hxx:22
ROOT::Internal::RDF::RNewSampleFlag::Notify
bool Notify()
Definition
RNewSampleNotifier.hxx:29
ROOT::Internal::RDF::RNewSampleFlag::CheckFlag
bool CheckFlag() const
Definition
RNewSampleNotifier.hxx:28
ROOT::Internal::RDF::RNewSampleFlag::fFlag
bool fFlag
Definition
RNewSampleNotifier.hxx:23
ROOT::Internal::RDF::RNewSampleFlag::SetFlag
void SetFlag()
Definition
RNewSampleNotifier.hxx:26
ROOT::Internal::RDF::RNewSampleFlag::UnsetFlag
void UnsetFlag()
Definition
RNewSampleNotifier.hxx:27
tree
dataframe
inc
ROOT
RDF
RNewSampleNotifier.hxx
ROOT master - Reference Guide Generated on Sun Sep 21 2025 15:08:05 (GVA Time) using Doxygen 1.10.0