43 int main(
int argc,
char **argv)
48 using namespace KM3NETDAQ;
51 typedef JTriggeredFileScanner_t::multi_pointer_type multi_pointer_type;
57 size_t numberOfPrefits;
64 JParser<> zap(
"Program to histogram fit results from reconstructed data.");
68 zap[
'n'] =
make_field(numberOfEvents) = JLimit::max();
81 const double rad_to_deg = 180/M_PI;
82 const double R_m = 700.0;
83 const int MAX_OVERLAYS = 200;
84 const double zenith_min = -1.0;
85 const double zenith_max = 1.0;
86 const double MAX_TRIGGERED_HITS = 400;
89 TH1D job(
"job", NULL, 100, 0.5, 100.5);
90 TH1D hz (
"hz",
"; cos(#theta)" , 21 , zenith_min, zenith_max);
91 TH1D ho (
"ho",
"; #overlays" , MAX_OVERLAYS , -0.5, MAX_OVERLAYS-0.5);
92 TH2D hzo (
"hzo",
"; cos(#theta) ; #overlays" , 21, zenith_min, zenith_max, MAX_OVERLAYS , -0.5, MAX_OVERLAYS-0.5);
93 TH2D hxy (
"hxy",
"; x position ; y position" , 201, -R_m, R_m, 201, -R_m, R_m);
94 TH1D hn (
"hn",
"; # of triggered hits" , MAX_TRIGGERED_HITS, -0.5, MAX_TRIGGERED_HITS-0.5);
95 TH1D hN (
"hN",
"; JEnergy # of hits" , MAX_TRIGGERED_HITS, -0.5, MAX_TRIGGERED_HITS-0.5);
96 TH1D hq (
"hq",
"; quality parameter" , 100, -200.0, 800);
97 TH1D hb0 (
"hb0",
"; log(beta0)" , 60, -2, 3.5);
98 TH1D he (
"he",
"; log(Ereco [GeV])" , 75, -2, 4);
99 TH2D heo (
"heo",
"; log(Ereco [GeV]) ; #overlays" , 75, -2, 4, MAX_OVERLAYS , -0.5, MAX_OVERLAYS-0.5);
100 TH2D hzq (
"hzq",
"; cos(#theta); quality" , 21, zenith_min, zenith_max, 50, -10.0, 500.0);
101 TH2D hze (
"hze",
"; cos(#theta); log(Ereco [GeV])", 21, zenith_min, zenith_max, 75, -2, 4);
102 TH2D hzb0(
"hzb0",
"; cos(#theta); log(beta0)" , 21, zenith_min, zenith_max, 60, -2, 3.5);
104 while (inputFile.hasNext()) {
106 STATUS(
"event: " << setw(10) << inputFile.getCounter() <<
'\r');
DEBUG(endl);
108 multi_pointer_type ps = inputFile.next();
117 JEvt::iterator __end = partition(evt->begin(), evt->end(),
JHistory::is_event(application));
119 if (evt->begin() == __end) {
123 if (numberOfPrefits > 0) {
125 JEvt::iterator __q = __end;
127 advance(__end = evt->begin(), min(numberOfPrefits, (
size_t)
distance(evt->begin(), __q)));
136 if (numberOfPrefits > 0) {
137 advance(__end = evt->begin(), min(numberOfPrefits, evt->size()));
140 for (JEvt::const_iterator fit = evt->begin(); fit != __end; ++fit) {
148 hz .Fill(track.
getDZ());
149 hzo.Fill(track.
getDZ(), overlays) ;
150 hxy.Fill(track.
getX(), track.
getY());
151 hq .Fill(fit->getQ());
152 hzq.Fill(track.
getDZ(), fit->getQ() );
162 const double Efit = fit->getE();
163 he .Fill(log10(Efit));
164 hze.Fill(track.
getDZ(), log10(Efit) );
165 heo.Fill(log10(Efit), overlays );
169 STATUS(
"Number of events input " << setw(8) << right << job.GetBinContent(1) << endl);
static const int JMUONSTART
Utility class to parse command line options.
ROOT TTree parameter settings of various packages.
JTrack3E getTrack(const Trk &track)
Get track.
Synchronously read DAQ events and Monte Carlo events (and optionally other events).
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance.
General purpose sorter of fit results.
Auxiliary class to synchronously read DAQ events and Monte Carlo events (and optionally other events)...
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
unsigned int size() const
Get number of hits.
Auxiliary class for defining the range of iterations of objects.
static const int JMUONPREFIT
static const int JENERGY_NUMBER_OF_HITS
number of hits from JEnergy.cc
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Auxiliary class to test history.
static const int JMUONGANDALF
static const int JGANDALF_BETA0_RAD
KM3NeT Data Definitions v2.0.0 https://git.km3net.de/common/km3net-dataformat.
double getY() const
Get y position.
Reconstruction type dependent comparison of track quality.
General purpose messaging.
counter_type advance(counter_type &counter, const counter_type value, const counter_type limit=std::numeric_limits< counter_type >::max())
Advance counter.
Scanning of objects from multiple files according a format that follows from the extension of each fi...
static const int JMUONSIMPLEX
Utility class to parse command line options.
double getX() const
Get x position.
const JLimit & getLimit() const
Get limit.
double getDZ() const
Get z direction.
static const int JMUONENERGY
#define DEBUG(A)
Message macros.
int main(int argc, char *argv[])