527 art::ServiceHandle<geo::Geometry const> geom;
528 art::ServiceHandle<art::TFileService>
tfs;
532 art::TFileDirectory topdir = tfs->mkdir(
"trkana",
"TrackAna histograms");
533 art::TFileDirectory
dir = topdir.mkdir(subdir);
538 dir.make<TH2F>(
"duvcosth",
"Delta(uv) vs. Colinearity", 100, 0.95, 1., 100, 0., 1.);
539 fHcosth = dir.make<TH1F>(
"colin",
"Colinearity", 100, 0.95, 1.);
540 fHmcu =
dir.make<TH1F>(
"mcu",
"MC Truth U", 100, -5., 5.);
541 fHmcv =
dir.make<TH1F>(
"mcv",
"MC Truth V", 100, -5., 5.);
542 fHmcw =
dir.make<TH1F>(
"mcw",
"MC Truth W", 100, -20., 20.);
543 fHupull =
dir.make<TH1F>(
"dupull",
"U Pull", 100, -20., 20.);
544 fHvpull =
dir.make<TH1F>(
"dvpull",
"V Pull", 100, -20., 20.);
545 fHmcdudw =
dir.make<TH1F>(
"mcdudw",
"MC Truth U Slope", 100, -0.2, 0.2);
546 fHmcdvdw =
dir.make<TH1F>(
"mcdvdw",
"MV Truth V Slope", 100, -0.2, 0.2);
547 fHdudwpull =
dir.make<TH1F>(
"dudwpull",
"U Slope Pull", 100, -10., 10.);
548 fHdvdwpull =
dir.make<TH1F>(
"dvdwpull",
"V Slope Pull", 100, -10., 10.);
549 fHHitEff =
dir.make<TH1F>(
"hiteff",
"MC Hit Efficiency", 100, 0., 1.0001);
550 fHHitPurity =
dir.make<TH1F>(
"hitpurity",
"MC Hit Purity", 100, 0., 1.0001);
551 fHstartdx =
dir.make<TH1F>(
"startdx",
"Start Delta x", 100, -10., 10.);
552 fHstartdy =
dir.make<TH1F>(
"startdy",
"Start Delta y", 100, -10., 10.);
553 fHstartdz =
dir.make<TH1F>(
"startdz",
"Start Delta z", 100, -10., 10.);
554 fHenddx =
dir.make<TH1F>(
"enddx",
"End Delta x", 100, -10., 10.);
555 fHenddy =
dir.make<TH1F>(
"enddy",
"End Delta y", 100, -10., 10.);
556 fHenddz =
dir.make<TH1F>(
"enddz",
"End Delta z", 100, -10., 10.);
558 "Reco Length vs. MC Truth Length",
561 1.1 * geom->DetLength(),
564 1.1 * geom->DetLength());
565 fHdl =
dir.make<TH1F>(
"dl",
"Track Length Minus MC Particle Length", 100, -50., 50.);
567 dir.make<TH2F>(
"pvsp",
"Reco Momentum vs. MC Truth Momentum", 100, 0., 5., 100, 0., 5.);
569 "pvspc",
"Reco Momentum vs. MC Truth Momentum (Contained Tracks)", 100, 0., 5., 100, 0., 5.);
570 fHdp =
dir.make<TH1F>(
"dp",
"Reco-MC Momentum Difference", 100, -5., 5.);
571 fHdpc =
dir.make<TH1F>(
"dpc",
"Reco-MC Momentum Difference (Contained Tracks)", 100, -5., 5.);
572 fHppull =
dir.make<TH1F>(
"ppull",
"Momentum Pull", 100, -10., 10.);
573 fHppullc =
dir.make<TH1F>(
"ppullc",
"Momentum Pull (Contained Tracks)", 100, -10., 10.);
576 "mcxstart",
"MC X Start Position", 10, -2. * geom->DetHalfWidth(), 4. * geom->DetHalfWidth());
578 "mcystart",
"MC Y Start Position", 10, -geom->DetHalfHeight(), geom->DetHalfHeight());
579 fHmcstartz =
dir.make<TH1F>(
"mczstart",
"MC Z Start Position", 10, 0., geom->DetLength());
581 "mcxend",
"MC X End Position", 10, -2. * geom->DetHalfWidth(), 4. * geom->DetHalfWidth());
583 "mcyend",
"MC Y End Position", 10, -geom->DetHalfHeight(), geom->DetHalfHeight());
584 fHmcendz =
dir.make<TH1F>(
"mczend",
"MC Z End Position", 10, 0., geom->DetLength());
585 fHmctheta =
dir.make<TH1F>(
"mctheta",
"MC Theta", 20, 0., 3.142);
586 fHmcphi =
dir.make<TH1F>(
"mcphi",
"MC Phi", 10, -3.142, 3.142);
587 fHmctheta_xz =
dir.make<TH1F>(
"mctheta_xz",
"MC Theta_xz", 40, -3.142, 3.142);
588 fHmctheta_yz =
dir.make<TH1F>(
"mctheta_yz",
"MC Theta_yz", 40, -3.142, 3.142);
589 fHmcmom =
dir.make<TH1F>(
"mcmom",
"MC Momentum", 10, 0., 10.);
590 fHmcmoml =
dir.make<TH1F>(
"mcmoml",
"MC Momentum", 10, 0., 1.);
591 fHmcke =
dir.make<TH1F>(
"mcke",
"MC Kinetic Energy", 10, 0., 10.);
592 fHmckel =
dir.make<TH1F>(
"mckel",
"MC Kinetic Energy", 10, 0., 1.);
593 fHmclen =
dir.make<TH1F>(
"mclen",
"MC Particle Length", 10, 0., 1.1 * geom->DetLength());
594 fHmclens =
dir.make<TH1F>(
"mclens",
"MC Particle Length", 10, 0., 0.1 * geom->DetLength());
597 "Good X Start Position",
599 -2. * geom->DetHalfWidth(),
600 4. * geom->DetHalfWidth());
602 "gystart",
"Good Y Start Position", 10, -geom->DetHalfHeight(), geom->DetHalfHeight());
603 fHgstartz =
dir.make<TH1F>(
"gzstart",
"Good Z Start Position", 10, 0., geom->DetLength());
605 "gxend",
"Good X End Position", 10, -2. * geom->DetHalfWidth(), 4. * geom->DetHalfWidth());
607 "gyend",
"Good Y End Position", 10, -geom->DetHalfHeight(), geom->DetHalfHeight());
608 fHgendz =
dir.make<TH1F>(
"gzend",
"Good Z End Position", 10, 0., geom->DetLength());
609 fHgtheta =
dir.make<TH1F>(
"gtheta",
"Good Theta", 20, 0., 3.142);
610 fHgphi =
dir.make<TH1F>(
"gphi",
"Good Phi", 10, -3.142, 3.142);
611 fHgtheta_xz =
dir.make<TH1F>(
"gtheta_xz",
"Good Theta_xz", 40, -3.142, 3.142);
612 fHgtheta_yz =
dir.make<TH1F>(
"gtheta_yz",
"Good Theta_yz", 40, -3.142, 3.142);
613 fHgmom =
dir.make<TH1F>(
"gmom",
"Good Momentum", 10, 0., 10.);
614 fHgmoml =
dir.make<TH1F>(
"gmoml",
"Good Momentum", 10, 0., 1.);
615 fHgke =
dir.make<TH1F>(
"gke",
"Good Kinetic Energy", 10, 0., 10.);
616 fHgkel =
dir.make<TH1F>(
"gkel",
"Good Kinetic Energy", 10, 0., 1.);
617 fHglen =
dir.make<TH1F>(
"glen",
"Good Particle Length", 10, 0., 1.1 * geom->DetLength());
618 fHglens =
dir.make<TH1F>(
"glens",
"Good Particle Length", 10, 0., 0.1 * geom->DetLength());
621 "Efficiency vs. X Start Position",
623 -2. * geom->DetHalfWidth(),
624 4. * geom->DetHalfWidth());
626 "Efficiency vs. Y Start Position",
628 -geom->DetHalfHeight(),
629 geom->DetHalfHeight());
631 dir.make<TH1F>(
"ezstart",
"Efficiency vs. Z Start Position", 10, 0., geom->DetLength());
633 "Efficiency vs. X End Position",
635 -2. * geom->DetHalfWidth(),
636 4. * geom->DetHalfWidth());
638 "eyend",
"Efficiency vs. Y End Position", 10, -geom->DetHalfHeight(), geom->DetHalfHeight());
639 fHeendz =
dir.make<TH1F>(
"ezend",
"Efficiency vs. Z End Position", 10, 0., geom->DetLength());
640 fHetheta =
dir.make<TH1F>(
"etheta",
"Efficiency vs. Theta", 20, 0., 3.142);
641 fHephi =
dir.make<TH1F>(
"ephi",
"Efficiency vs. Phi", 10, -3.142, 3.142);
642 fHetheta_xz =
dir.make<TH1F>(
"etheta_xz",
"Efficiency vs. Theta_xz", 40, -3.142, 3.142);
643 fHetheta_yz =
dir.make<TH1F>(
"etheta_yz",
"Efficiency vs. Theta_yz", 40, -3.142, 3.142);
644 fHemom =
dir.make<TH1F>(
"emom",
"Efficiency vs. Momentum", 10, 0., 10.);
645 fHemoml =
dir.make<TH1F>(
"emoml",
"Efficiency vs. Momentum", 10, 0., 1.);
646 fHeke =
dir.make<TH1F>(
"eke",
"Efficiency vs. Kinetic Energy", 10, 0., 10.);
647 fHekel =
dir.make<TH1F>(
"ekel",
"Efficiency vs. Kinetic Energy", 10, 0., 1.);
649 dir.make<TH1F>(
"elen",
"Efficiency vs. Particle Length", 10, 0., 1.1 * geom->DetLength());
651 dir.make<TH1F>(
"elens",
"Efficiency vs. Particle Length", 10, 0., 0.1 * geom->DetLength());
art::ServiceHandle< art::TFileService > tfs