CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
tfwliteselectortest::ThingsTSelector Class Reference

#include <ThingsTSelector.h>

Inheritance diagram for tfwliteselectortest::ThingsTSelector:
TFWLiteSelectorBasic

Public Member Functions

void begin (TList *&) override
 
void postProcessing (TList &) override
 
void preProcessing (const TList *, TList &) override
 
void process (const edm::Event &) override
 
void terminate (TList &) override
 
 ThingsTSelector ()
 
- Public Member Functions inherited from TFWLiteSelectorBasic
 TFWLiteSelectorBasic ()
 
 ~TFWLiteSelectorBasic () override
 

Private Member Functions

ThingsTSelector operator= (ThingsTSelector const &)
 
 ThingsTSelector (ThingsTSelector const &)
 

Private Attributes

edm::propagate_const< TH1F * > h_a
 histograms More...
 
edm::propagate_const< TH1F * > h_refA
 

Detailed Description

Definition at line 16 of file ThingsTSelector.h.

Constructor & Destructor Documentation

tfwliteselectortest::ThingsTSelector::ThingsTSelector ( )
inline

Definition at line 18 of file ThingsTSelector.h.

References begin(), postProcessing(), preProcessing(), process(), and terminate().

18 : h_a(nullptr), h_refA(nullptr) {}
edm::propagate_const< TH1F * > h_a
histograms
edm::propagate_const< TH1F * > h_refA
tfwliteselectortest::ThingsTSelector::ThingsTSelector ( ThingsTSelector const &  )
private

Member Function Documentation

void ThingsTSelector::begin ( TList *&  in)
overridevirtual

Called each time the 'client' begins processing (remote 'slaves' do not see this message)

Parameters
inan assignable pointer to a list of objects you want passed to 'preProcessing'. This list is used to communicate with remote slaves. NOTE: you are responsible for deleting this TList and its content once you are done with it.

Implements TFWLiteSelectorBasic.

Definition at line 14 of file ThingsTSelector.cc.

Referenced by ThingsTSelector().

14 {}
ThingsTSelector tfwliteselectortest::ThingsTSelector::operator= ( ThingsTSelector const &  )
private
void ThingsTSelector::postProcessing ( TList &  out)
overridevirtual

Called each time the 'slave' has seen all the events

Parameters
outthe list of objects that will be sent to 'terminate'. You can Add() additional objects to 'out' at this point as well.

Implements TFWLiteSelectorBasic.

Definition at line 73 of file ThingsTSelector.cc.

Referenced by ThingsTSelector().

73 {}
void ThingsTSelector::preProcessing ( const TList *  in,
TList &  out 
)
overridevirtual

Called each time the 'slave' is about to start processing

Parameters
ina pointer to the list of objects created in 'begin()'. The pointer can be 0
outa list of objects that are the result of processing (e.g. histograms). You should call 'Add()' for each object you want sent to the 'terminate' method.

Implements TFWLiteSelectorBasic.

Definition at line 16 of file ThingsTSelector.cc.

References edm::propagate_const< T >::get(), h_a, h_refA, kA, and kRefA.

Referenced by ThingsTSelector().

16  {
17  if (nullptr != h_a) {
18  out.Remove(h_a);
19  delete h_a.get();
20  h_a = nullptr;
21  }
22  h_a = new TH1F(kA, "a", 100, 0, 20);
23  out.Add(h_a);
24 
25  if (nullptr != h_refA) {
26  out.Remove(h_refA);
27  delete h_refA.get();
28  h_refA = nullptr;
29  }
30  h_refA = new TH1F(kRefA, "refA", 100, 0, 20);
31  out.Add(h_refA);
32 }
static const char * kA
static const char * kRefA
edm::propagate_const< TH1F * > h_a
histograms
edm::propagate_const< TH1F * > h_refA
element_type const * get() const
void ThingsTSelector::process ( const edm::Event event)
overridevirtual

Call each time the 'slave' gets a new Event

Parameters
eventa standard edm::Event which works just like it does in cmsRun

Implements TFWLiteSelectorBasic.

Definition at line 34 of file ThingsTSelector.cc.

References gather_cfg::cout, cppFunctionSkipper::exception, edm::Event::getByLabel(), h_a, h_refA, mps_fire::i, and cms::Exception::what().

Referenced by ThingsTSelector().

34  {
35  std::cout << "processing event " << std::endl;
36  // chain->GetEntry( entry );
37  using namespace edmtest;
39 
40  try {
41  iEvent.getByLabel("OtherThing", "testUserTag", hOThings);
42  std::cout << ">> other things found:" << hOThings->size() << std::endl;
43 
44  for (size_t i = 0; i < hOThings->size(); ++i) {
45  const OtherThing& thing = (*hOThings)[i];
46  h_refA->Fill(thing.ref->a);
47  std::cout << ">> ref->a: " << thing.ref->a << std::endl;
48  }
49 
51  iEvent.getByLabel("Thing", hThings);
52  const ThingCollection& things = *hThings;
53  std::cout << ">> things found:" << things.size() << std::endl;
54  for (size_t i = 0; i < things.size(); ++i) {
55  const Thing& thing = things[i];
56  h_a->Fill(thing.a);
57  std::cout << ">> a: " << thing.a << std::endl;
58  }
59  } catch (cms::Exception& x) {
60  std::cout << std::endl << "Failed with cms::Exception: " << std::endl;
61  std::cout << x.what() << std::endl;
62  abort();
63  } catch (std::exception& x) {
64  std::cout << std::endl << "Failed with std::exception" << std::endl;
65  std::cout << x.what() << std::endl;
66  abort();
67  } catch (...) {
68  std::cout << std::endl << "Failed with unknown exception" << std::endl;
69  abort();
70  }
71 }
char const * what() const override
Definition: Exception.cc:103
int iEvent
Definition: GenABIO.cc:224
edm::propagate_const< TH1F * > h_a
histograms
edm::propagate_const< TH1F * > h_refA
void ThingsTSelector::terminate ( TList &  out)
overridevirtual

Called each time the 'client' has finished processing.

Parameters
outcontains the accumulated output of all slaves.

Implements TFWLiteSelectorBasic.

Definition at line 75 of file ThingsTSelector.cc.

References svgfig::canvas(), gather_cfg::cout, create_public_lumi_plots::hist, kA, and kRefA.

Referenced by ThingsTSelector().

75  {
76  std::cout << "terminate" << std::endl;
77  TCanvas* canvas = new TCanvas();
78  {
79  TObject* hist = out.FindObject(kA);
80  if (nullptr != hist) {
81  hist->Draw();
82  canvas->SaveAs("a.jpg");
83  } else {
84  std::cout << "no '" << kA << "' histogram" << std::endl;
85  }
86  }
87  {
88  TObject* hist = out.FindObject(kRefA);
89  if (nullptr != hist) {
90  hist->Draw();
91  canvas->SaveAs("refA.jpg");
92  } else {
93  std::cout << "no '" << kRefA << "' histogram" << std::endl;
94  }
95  }
96  delete canvas;
97 }
static const char * kA
static const char * kRefA
def canvas(sub, attr)
Definition: svgfig.py:482

Member Data Documentation

edm::propagate_const<TH1F*> tfwliteselectortest::ThingsTSelector::h_a
private

histograms

Definition at line 27 of file ThingsTSelector.h.

Referenced by preProcessing(), and process().

edm::propagate_const<TH1F*> tfwliteselectortest::ThingsTSelector::h_refA
private

Definition at line 28 of file ThingsTSelector.h.

Referenced by preProcessing(), and process().