Hall-D Software  alpha
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
JEventProcessor_2trackskim.cc
Go to the documentation of this file.
1 //
2 // JEventProcessor_2trackskim.cc
3 //
4 // JANA event processor plugin to skim 2-track events to an EVIO file
5 //
6 // Paul Mattione, 19-November-2014
7 
9 
10 // for initializing plugins
11 extern "C" {
12  void InitPlugin(JApplication *app)
13  {
14  InitJANAPlugin(app);
15  app->AddProcessor(new JEventProcessor_2trackskim(), true);
16  }
17 } // "extern C"
18 
19 //-------------------------------
20 // init
21 //-------------------------------
23 {
24  return NOERROR;
25 }
26 
27 //-------------------------------
28 // brun
29 //-------------------------------
30 jerror_t JEventProcessor_2trackskim::brun(JEventLoop *locEventLoop, int32_t runnumber)
31 {
32  return NOERROR;
33 }
34 
35 //-------------------------------
36 // evnt
37 //-------------------------------
38 jerror_t JEventProcessor_2trackskim::evnt(JEventLoop *locEventLoop, uint64_t eventnumber)
39 {
40 
41  const DEventWriterEVIO* locEventWriterEVIO = NULL;
42  locEventLoop->GetSingle(locEventWriterEVIO);
43 
44  //Save EPICS events
45  vector<const DEPICSvalue*> locEPICSValues;
46  locEventLoop->Get(locEPICSValues);
47  if(!locEPICSValues.empty())
48  {
49  locEventWriterEVIO->Write_EVIOEvent(locEventLoop, "2tracks");
50  return NOERROR;
51  }
52 
53  vector<const DChargedTrack*> locChargedTracks;
54  locEventLoop->Get(locChargedTracks, "PreSelect");
55  if(locChargedTracks.size() >= 2)
56  {
57  locEventWriterEVIO->Write_EVIOEvent(locEventLoop, "2tracks");
58  return NOERROR;
59  }
60 
61  return NOERROR;
62 }
63 
64 //-------------------------------
65 // erun
66 //-------------------------------
68 {
69  return NOERROR;
70 }
71 
72 //-------------------------------
73 // fini
74 //-------------------------------
76 {
77  return NOERROR;
78 }
79 
jerror_t fini(void)
Called after last event of last event source has been processed.
jerror_t brun(JEventLoop *loop, int32_t runnumber)
Called everytime a new run number is detected.
InitPlugin_t InitPlugin
jerror_t init(void)
Called once at program start.
jerror_t erun(void)
Called everytime run number changes, provided brun has been called.
jerror_t evnt(JEventLoop *loop, uint64_t eventnumber)
Called every event.
bool Write_EVIOEvent(JEventLoop *locEventLoop, string locOutputFileNameSubString) const