12 #include <background/modules/BeamBkgTagSetter/BeamBkgTagSetterModule.h>
16 #include <framework/datastore/DataStore.h>
17 #include <framework/datastore/StoreArray.h>
18 #include <framework/datastore/StoreObjPtr.h>
21 #include <framework/logging/Logger.h>
24 #include <framework/dataobjects/EventMetaData.h>
49 setDescription(
"Sets beam background tag variable in SimHits and "
50 "adds BackgroundMetaData branch in persistent tree; "
51 "returns true if at least one of the SimHit store arrays "
52 "has entries. Return value can be used to discard empty "
56 setPropertyFlags(c_ParallelProcessingCertified);
59 addParam(
"backgroundType", m_backgroundType,
60 "one of: " + m_bgTypes.getBGTypes());
61 addParam(
"realTime", m_realTime,
62 "equivalent time of superKEKB running in [ns] to obtain this sample");
63 addParam(
"specialFor", m_specialFor,
64 "tag ordinary file (default) or additional file ('ECL' or 'PXD')",
66 addParam(
"Phase", m_phase,
67 "specify the Phase: 1 for Phase 1, 2 for Phase 2, 3 for Physics Run or Phase 3", 3);
71 BeamBkgTagSetterModule::~BeamBkgTagSetterModule()
75 void BeamBkgTagSetterModule::initialize()
77 if (m_realTime <= 0) B2FATAL(
"invalid realTime: " << m_realTime);
79 m_backgroundTag = m_bgTypes.getTag(m_backgroundType);
80 if (m_backgroundTag == 0) {
81 B2ERROR(
"Unknown beam background type: " << m_backgroundType <<
"\n"
82 "Possible are: " + m_bgTypes.getBGTypes());
83 m_backgroundTag = BackgroundMetaData::bg_other;
86 if (m_specialFor !=
"") {
87 if (m_specialFor ==
"ECL") {m_fileType = BackgroundMetaData::c_ECL;}
88 else if (m_specialFor ==
"PXD") {m_fileType = BackgroundMetaData::c_PXD;}
89 else {B2ERROR(
"specialFor " << m_specialFor <<
"not supported");}
94 bkgMetaData.registerInDataStore();
97 bkgMetaData->setBackgroundType(m_backgroundType);
98 bkgMetaData->setBackgroundTag(m_backgroundTag);
99 bkgMetaData->setRealTime(m_realTime);
100 bkgMetaData->setFileType(m_fileType);
103 m_pxdSimHits.isOptional();
104 m_svdSimHits.isOptional();
105 m_cdcSimHits.isOptional();
106 m_topSimHits.isOptional();
107 m_arichSimHits.isOptional();
108 m_eclSimHits.isOptional();
109 m_eclHits.isOptional();
110 m_bklmSimHits.isOptional();
111 m_eklmSimHits.isOptional();
114 m_diaSimHits.isOptional();
115 m_clw2SimHits.isOptional();
116 m_clw1SimHits.isOptional();
117 m_fngSimHits.isOptional();
118 m_plmSimHits.isOptional();
119 m_pinSimHits.isOptional();
120 m_he3SimHits.isOptional();
121 m_tpcSimHits.isOptional();
122 m_sciSimHits.isOptional();
123 m_bgoSimHits.isOptional();
124 m_csiSimHits.isOptional();
127 void BeamBkgTagSetterModule::beginRun()
131 void BeamBkgTagSetterModule::event()
134 if (m_phase == 2 || m_phase == 3) {
135 n += setBackgroundTag(m_pxdSimHits);
136 n += setBackgroundTag(m_svdSimHits);
137 n += setBackgroundTag(m_cdcSimHits);
138 n += setBackgroundTag(m_topSimHits);
139 n += setBackgroundTag(m_arichSimHits);
140 n += setBackgroundTag(m_eclSimHits);
141 n += setBackgroundTag(m_eclHits);
142 n += setBackgroundTag(m_bklmSimHits);
143 n += setBackgroundTag(m_eklmSimHits);
146 if (m_phase == 1 || m_phase == 2) {
147 n += setBackgroundTag(m_diaSimHits);
149 n += setBackgroundTag(m_clw1SimHits);
150 n += setBackgroundTag(m_csiSimHits);
151 n += setBackgroundTag(m_bgoSimHits);
154 n += setBackgroundTag(m_clw2SimHits);
155 n += setBackgroundTag(m_fngSimHits);
156 n += setBackgroundTag(m_plmSimHits);
158 n += setBackgroundTag(m_pinSimHits);
159 n += setBackgroundTag(m_he3SimHits);
160 n += setBackgroundTag(m_tpcSimHits);
161 n += setBackgroundTag(m_sciSimHits);
164 if (m_fileType == BackgroundMetaData::c_ECL) n = m_eclHits.getEntries();
165 if (m_fileType == BackgroundMetaData::c_PXD) n = m_pxdSimHits.getEntries();
167 setReturnValue(n > 0);
170 B2INFO(
"Exp " << evtMetaData->getExperiment() <<
171 " Run " << evtMetaData->getRun() <<
172 " Event " << evtMetaData->getEvent() <<
173 " number of SimHits = " << n);
178 void BeamBkgTagSetterModule::endRun()
182 void BeamBkgTagSetterModule::terminate()