63 if(ereco < other.
ereco )
return true;
65 if(ereco == other.
ereco &&
66 cvwgt < other.
cvwgt)
return true;
68 if(ereco == other.
ereco &&
69 cvwgt == other.
cvwgt &&
70 etrue < other.
etrue)
return true;
72 if(ereco == other.
ereco &&
73 cvwgt == other.
cvwgt &&
74 etrue == other.
etrue &&
75 pdg < other.
pdg)
return true;
77 if(ereco == other.
ereco &&
78 cvwgt == other.
cvwgt &&
79 etrue == other.
etrue &&
81 ccnc < other.
ccnc)
return true;
90 if (ereco == other.
ereco &&
91 cvwgt == other.
cvwgt &&
92 etrue == other.
etrue)
return true;
127 if(run < other.
run )
return true;
129 if(run == other.
run &&
130 subrun < other.
subrun)
return true;
132 if(run == other.
run &&
134 event < other.
event )
return true;
136 if(run == other.
run &&
138 event == other.
event &&
139 slice < other.
slice )
return true;
141 if(run == other.
run &&
143 event == other.
event &&
144 slice == other.
slice &&
145 cycle < other.
cycle )
return true;
165 std::ifstream eventLists(fileName);
169 << eventLists.is_open()
177 while( !eventLists.eof() && eventLists.is_open() ){
178 eventLists >> run >> subrun >>
event >> slice >> cycle
179 >> lepe >> hade >> ecalo >> ereco >> etrue >> pdg >> ccnc >>
cvwgt;
193 EventInfo evIn(lepe, hade, ecalo, ereco, etrue, pdg, ccnc, cvwgt);
195 if(eventContainer.
eventMap.size() < 10)
210 eventContainer.
eventMap[evId] = evIn;
225 differentEventSample.
name = baseSample.
name +
"NotIn" + searchSample.
name;
227 std::map<EventID, EventInfo> baseMap = baseSample.
eventMap;
228 std::map<EventID, EventInfo> searchMap = searchSample.
eventMap;
232 for (
auto& itr : baseMap){
235 if (searchMap.find(itr.first) != searchMap.end()){
237 if (itr.second == searchMap[itr.first]){
241 differentEventSample.
eventMap[itr.first] = itr.second;
249 << itr.first.run <<
" " 250 << itr.first.subrun <<
" " 251 << itr.first.event <<
" " 252 << itr.first.slice <<
" " 258 <<
". Printing information." 259 <<
"\n ereco " << itr.second.ereco
260 <<
"\n etrue " << itr.second.etrue
261 <<
"\n pdg " << itr.second.pdg
262 <<
"\n ccnc " << itr.second.ccnc
263 <<
"\n cvwgt " << itr.second.cvwgt
272 <<
" events in base sample not in search sample" 275 return differentEventSample;
281 TFile* eventDifferences =
new TFile(
"eventDifferences.root",
"recreate");
282 TTree*
t =
new TTree(
"ed",
"Event Differences");
304 t->Branch(
"run" , &run);
305 t->Branch(
"subrun" , &subrun);
306 t->Branch(
"event" , &event);
307 t->Branch(
"slice" , &slice);
308 t->Branch(
"cycle" , &cycle);
309 t->Branch(
"cmf_lepe" , &cmf_lepe);
310 t->Branch(
"cmf_hade" , &cmf_hade);
311 t->Branch(
"cmf_ecalo" , &cmf_ecalo);
312 t->Branch(
"cmf_ereco" , &cmf_ereco);
313 t->Branch(
"cmf_etrue" , &cmf_etrue);
314 t->Branch(
"cmf_pdg" , &cmf_pdg);
315 t->Branch(
"cmf_ccnc" , &cmf_ccnc);
316 t->Branch(
"cmf_cvwgt" , &cmf_cvwgt);
317 t->Branch(
"caf_lepe" , &caf_lepe);
318 t->Branch(
"caf_hade" , &caf_hade);
319 t->Branch(
"caf_ecalo" , &caf_ecalo);
320 t->Branch(
"caf_ereco" , &caf_ereco);
321 t->Branch(
"caf_etrue" , &caf_etrue);
322 t->Branch(
"caf_pdg" , &caf_pdg);
323 t->Branch(
"caf_ccnc" , &caf_ccnc);
324 t->Branch(
"caf_cvwgt" , &caf_cvwgt);
328 subrun = itr.first.subrun;
329 event = itr.first.event;
330 cycle = itr.first.cycle;
331 slice = itr.first.slice;
333 cmf_lepe = itr.second.lepe;
334 cmf_hade = itr.second.hade;
335 cmf_ecalo = itr.second.ecalo;
336 cmf_ereco = itr.second.ereco;
337 cmf_etrue = itr.second.etrue;
338 cmf_pdg = itr.second.pdg;
339 cmf_ccnc = itr.second.ccnc;
340 cmf_cvwgt = itr.second.cvwgt;
342 caf_lepe = caf.
eventMap[itr.first].lepe;
343 caf_hade = caf.
eventMap[itr.first].hade;
344 caf_ecalo = caf.
eventMap[itr.first].ecalo;
345 caf_ereco = caf.
eventMap[itr.first].ereco;
346 caf_etrue = caf.
eventMap[itr.first].etrue;
347 caf_pdg = caf.
eventMap[itr.first].pdg;
348 caf_ccnc = caf.
eventMap[itr.first].ccnc;
349 caf_cvwgt = caf.
eventMap[itr.first].cvwgt;
362 cmfEvents.
name =
"cmf";
363 cafEvents.
name =
"caf";
366 <<
"Configured with " 367 <<
"\n -- cmf file: " << cmfFile
368 <<
"\n -- caf file: " << cafFile
std::map< EventID, EventInfo > eventMap
void saveToFile(EventContainer cmf, EventContainer caf)
void compareTextLists(std::string cmfFile, std::string cafFile)
EventID(long r, long sr, long ev, long sl, long c)
bool operator<(EventInfo const &other) const
bool operator==(EventInfo const &other) const
EventContainer findMissingFiles(EventContainer &baseSample, EventContainer &searchSample)
bool operator<(EventID const &other) const
EventInfo(double le, double he, double ec, double er, double et, double p, double cc, double ew)
Module to combine a set of results into a single file currently only does one data product type at a ...
void fillEventMapFromFile(EventContainer &eventContainer, std::string const &fileName)
This module creates Common Analysis Files.