16 InitJANAPlugin(locApplication);
72 dIDXAStreamMap[
"etaprm_2piqeta_2g"] =
new ofstream(
"etaprm_2piqeta_2g.idxa");
73 dIDXAStreamMap[
"etaprm_2piqeta_3pi0"] =
new ofstream(
"etaprm_2piqeta_3pi0.idxa");
74 dIDXAStreamMap[
"etaprm_2piqeta_3piq"] =
new ofstream(
"etaprm_2piqeta_3piq.idxa");
75 dIDXAStreamMap[
"etaprm_2piqg"] =
new ofstream(
"etaprm_2piqg.idxa");
76 dIDXAStreamMap[
"etaprm_2pi0eta_2g"] =
new ofstream(
"etaprm_2pi0eta_2g.idxa");
77 dIDXAStreamMap[
"etaprm_2pi0eta_3pi0"] =
new ofstream(
"etaprm_2pi0eta_3pi0.idxa");
78 dIDXAStreamMap[
"etaprm_2pi0eta_3piq"] =
new ofstream(
"etaprm_2pi0eta_3piq.idxa");
96 map<string, ofstream*>::iterator locStreamIterator =
dIDXAStreamMap.begin();
97 for(; locStreamIterator !=
dIDXAStreamMap.end(); ++locStreamIterator)
98 *(locStreamIterator->second) <<
"IDXA" << endl;
120 locEventLoop->GetSingle(locTrigger);
125 vector<const DMCThrown*> locMCThrowns;
126 locEventLoop->Get(locMCThrowns);
128 unsigned int locRunNumber = locEventLoop->GetJEvent().GetRunNumber();
129 unsigned int locUniqueID = locMCThrowns.empty() ? 1 :
Get_FileNumber(locEventLoop);
132 vector<const DChargedTrack*> locChargedTracks;
133 locEventLoop->Get(locChargedTracks);
134 size_t locNumQPlus = 0, locNumQMinus = 0;
135 for(
size_t loc_i = 0; loc_i < locChargedTracks.size(); ++loc_i)
137 if(locChargedTracks[loc_i]->Contains_Charge(1))
139 if(locChargedTracks[loc_i]->Contains_Charge(-1))
144 vector<const DNeutralShower*> locNeutralShowers;
145 locEventLoop->Get(locNeutralShowers);
148 set<ofstream*> locSaveSkimStreams;
157 if(locNumQMinus >= 1)
159 if(locNumQMinus >= 2)
163 if(locNeutralShowers.size() >= 1)
165 if(locNeutralShowers.size() >= 2)
167 if(locNeutralShowers.size() >= 3)
169 if(locNeutralShowers.size() >= 4)
171 if(locNeutralShowers.size() >= 5)
173 if(locNeutralShowers.size() >= 6)
179 vector<const DAnalysisResults*> locAnalysisResultsVector;
180 locEventLoop->Get(locAnalysisResultsVector);
183 for(
size_t loc_i = 0; loc_i < locAnalysisResultsVector.size(); ++loc_i)
185 const DAnalysisResults* locAnalysisResults = locAnalysisResultsVector[loc_i];
192 if(locReactionName ==
"skim_pi0")
194 else if(locReactionName ==
"skim_2pi0")
196 else if(locReactionName ==
"skim_3pi0")
200 else if(locReactionName ==
"skim_ks_2piq")
202 else if(locReactionName ==
"skim_ks_2pi0")
206 else if(locReactionName ==
"skim_eta_2g")
208 else if(locReactionName ==
"skim_eta_3pi0")
210 else if(locReactionName ==
"skim_eta_3piq")
214 else if(locReactionName ==
"skim_omega_3piq")
216 else if(locReactionName ==
"skim_omega_pi0g")
220 else if(locReactionName ==
"skim_etaprm_2piqeta_2g")
222 else if(locReactionName ==
"skim_etaprm_2piqeta_3pi0")
224 else if(locReactionName ==
"skim_etaprm_2piqeta_3piq")
226 else if(locReactionName ==
"skim_etaprm_2piqg")
228 else if(locReactionName ==
"skim_etaprm_2pi0eta_2g")
230 else if(locReactionName ==
"skim_etaprm_2pi0eta_3pi0")
232 else if(locReactionName ==
"skim_etaprm_2pi0eta_3piq")
236 else if(locReactionName ==
"skim_phi_2kq")
238 else if(locReactionName ==
"skim_phi_3piq")
242 else if(locReactionName ==
"skim_lambda")
244 else if(locReactionName ==
"skim_sigma0")
246 else if(locReactionName ==
"skim_sigma+")
248 else if(locReactionName ==
"skim_xi-")
250 else if(locReactionName ==
"skim_xi0")
254 else if(locReactionName ==
"skim_ee")
256 else if(locReactionName ==
"skim_jpsi_ee")
262 ostringstream locToPrintStream;
263 locToPrintStream << locRunNumber <<
" " << locEventNumber <<
" " << locUniqueID;
264 string locToPrintString = locToPrintStream.str();
267 set<ofstream*>::iterator locSetIterator = locSaveSkimStreams.begin();
270 for(; locSetIterator != locSaveSkimStreams.end(); ++locSetIterator)
271 (**locSetIterator) << locToPrintString << endl;
285 JEventSource* locEventSource = locEventLoop->GetJEvent().GetJEventSource();
286 if(locEventSource == NULL)
290 string locSourceFileName = locEventSource->GetSourceName();
293 size_t locUnderscoreIndex = locSourceFileName.rfind(
"_");
294 size_t locDotIndex = locSourceFileName.rfind(
".");
295 if((locUnderscoreIndex == string::npos) || (locDotIndex == string::npos))
298 size_t locNumberLength = locDotIndex - locUnderscoreIndex - 1;
299 string locFileNumberString = locSourceFileName.substr(locUnderscoreIndex + 1, locNumberLength);
301 int locFileNumber = -1;
302 istringstream locFileNumberStream(locFileNumberString);
303 locFileNumberStream >> locFileNumber;
305 return locFileNumber;
327 map<string, ofstream*>::iterator locStreamIterator =
dIDXAStreamMap.begin();
328 for(; locStreamIterator !=
dIDXAStreamMap.end(); ++locStreamIterator)
329 locStreamIterator->second->close();
jerror_t evnt(jana::JEventLoop *locEventLoop, uint64_t locEventNumber)
Called every event.
jerror_t erun(void)
Called every time run number changes, provided brun has been called.
map< string, ofstream * > dIDXAStreamMap
bool Get_IsPhysicsEvent(void) const
jerror_t brun(jana::JEventLoop *locEventLoop, int locRunNumber)
Called every time a new run number is detected.
jerror_t init(void)
Called once at program start.
string Get_ReactionName(void) const
const DReaction * Get_Reaction(void) const
jerror_t fini(void)
Called after last event of last event source has been processed.
int Get_FileNumber(JEventLoop *locEventLoop) const
size_t Get_NumPassedParticleCombos(void) const