10 #include "evt/Head.hh"
34 int main(
int argc,
char **argv)
39 typedef JTriggeredFileScanner<JEvt> JTriggeredFileScanner_t;
40 typedef JTriggeredFileScanner_t::multi_pointer_type multi_pointer_type;
42 JTriggeredFileScanner_t inputFileA;
43 JTriggeredFileScanner_t inputFileB;
51 JParser<> zap(
"Example program to compare fit results from two files.");
56 zap[
'n'] =
make_field(numberOfEvents) = JLimit::max();
62 catch(
const exception& error) {
63 FATAL(error.what() << endl);
68 inputFileA.setLimit(numberOfEvents);
69 inputFileB.setLimit(numberOfEvents);
86 TH1D hA(
"h[A]", NULL, 100, -3.0, +2.3);
87 TH1D hB(
"h[B]", NULL, 100, -3.0, +2.3);
94 while (inputFileA.hasNext() && inputFileB.hasNext()) {
96 STATUS(
"event: " << setw(10) << inputFileA.getCounter() <<
'\r');
DEBUG(endl);
98 multi_pointer_type psA = inputFileA.next();
99 multi_pointer_type psB = inputFileB.next();
103 while (psA.get<Evt>()->mc_id < psB.get<Evt>()->mc_id && inputFileA.hasNext()) { psA = inputFileA.next(); }
104 while (psB.get<Evt>()->mc_id < psA.get<Evt>()->mc_id && inputFileB.hasNext()) { psB = inputFileB.next(); }
106 if (!psA.is_valid()) {
continue; }
107 if (!psB.is_valid()) {
continue; }
109 if (psA.get<Evt>()->mc_id == psB.get<Evt>()->mc_id) {
117 if (muon ==
event->mc_trks.end()) {
continue; }
119 if (evtA->empty()) {
continue; }
120 if (evtB->empty()) {
continue; }
122 JEvt::const_iterator fitA = evtA->begin();
123 JEvt::const_iterator fitB = evtB->begin();
128 hA.Fill(log10(angleA));
129 hB.Fill(log10(angleB));
131 h2.Fill(fitB->getQ() - fitA->getQ(), angleB - angleA);
133 if (angleA > angle_Deg) {
134 manager.Fill(*fitA, *fitB, angleB < angle_Deg);
void insert(const JKey &key, const Int_t nx, const Double_t xmin, const Double_t xmax, const double logx=false)
Insert set of histograms.
Utility class to parse command line options.
double getAngle(const JFirst_t &first, const JSecond_t &second)
Get space angle between objects.
Synchronously read DAQ events and Monte Carlo events (and optionally other events).
Auxiliary class to manage set of histograms.
bool is_muon(const Trk &track)
Test whether given track is a (anti-)muon.
Structure to store the ToT mean and standard deviation of the hits produced by a nanobeacon in a sour...
angular resolution [rad] from JGandalf.cc
JLimit JLimit_t
Type definition of limit.
Definition of fit parameters from various applications.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
angular resolution [rad] from JGandalf.cc
General purpose messaging.
uncorrected energy [GeV] from JEnergy.cc
number of hits from JGandalf.cc
number of photo-electrons up to the barycentre from JStart.cc
Data structure for set of track fit results.
Utility class to parse command line options.
ROOT TTree parameter settings.
distance between first and last hits in metres from JStart.cc
JDirection3D getDirection(const Vec &v)
Get direction.
number of photo-electrons along the whole track from JStart.cc
#define DEBUG(A)
Message macros.
int main(int argc, char *argv[])