45       art::ServiceHandle<evd::RecoDrawingOptions const>     recoOpt;
 
   46       art::ServiceHandle<evd::AnalysisDrawingOptions const> anaOpt;
 
   47       art::ServiceHandle<geo::Geometry const>               geom;
 
   49       for(
size_t imod = 0; imod < recoOpt->fTrackLabels.size(); ++imod) {
 
   53          art::InputTag which = recoOpt->fTrackLabels[imod];
 
   54          art::Handle<std::vector<recob::Track> > trackListHandle;
 
   55          evt.getByLabel(which,trackListHandle);
 
   56          std::vector<art::Ptr<recob::Track> > tracklist;
 
   57          art::fill_ptr_vector(tracklist, trackListHandle);
 
   60          for(
size_t cmod = 0; cmod < anaOpt->fCalorimetryLabels.size(); ++cmod) {
 
   61             std::string 
const callabel = anaOpt->fCalorimetryLabels[cmod];
 
   63             art::FindMany<anab::Calorimetry> fmcal(trackListHandle, 
evt, callabel);
 
   64             if (!fmcal.isValid()) 
continue;
 
   66             for(
size_t pmod = 0; pmod < anaOpt->fParticleIDLabels.size(); ++pmod) {
 
   67                std::string 
const pidlabel = anaOpt->fParticleIDLabels[pmod];
 
   69                art::FindMany<anab::ParticleID> fmpid(trackListHandle, 
evt, pidlabel);
 
   70                if (!fmpid.isValid()) 
continue;
 
   74                for(
size_t trkIter = 0; trkIter<tracklist.size(); ++trkIter){
 
   75                  if (anaOpt->fTrackID >=0 
and tracklist[trkIter]->ID() != anaOpt->fTrackID) 
continue;
 
   78                  std::vector<const anab::Calorimetry*> calos = fmcal.at(trkIter);
 
   79                  std::vector<const anab::ParticleID*> pids = fmpid.at(trkIter);
 
   80                  if (!calos.size()) 
continue;
 
   81                  if (calos.size()!=pids.size()) 
continue;
 
   86                  for (
size_t icalo = 0; icalo < calos.size(); ++icalo){
 
   87                    if (calos[icalo]->
dEdx().size() > nmaxhits){
 
   88                      nmaxhits = calos[icalo]->dEdx().size();
 
   89                      bestplane = calos[icalo]->PlaneID().Plane;
 
   92                  if (anaOpt->fCaloPlane>=0 
and anaOpt->fCaloPlane<
int(geom->Nplanes())){
 
   93                    for (
size_t icalo = 0; icalo < calos.size(); ++icalo){
 
   94                      if (
int(calos[icalo]->
PlaneID().
Plane)==anaOpt->fCaloPlane&&
 
   95                          calos[icalo]->dEdx().size())
 
   96                        bestplane = calos[icalo]->
PlaneID().Plane;
 
  100                  for (
size_t icalo = 0; icalo < calos.size(); ++icalo){
 
  101                    if (calos[icalo]->
PlaneID().Plane==bestplane){
 
  113                  TPolyMarker& pm = view->AddPolyMarker(calos[calopl]->
dEdx().
size(),
evd::kColor[color],8,0.8);
 
  114                  for(
size_t h = 0; 
h<calos[calopl]->dEdx().size();++
h){
 
  115                    double xvalue = calos[calopl]->ResidualRange().at(
h);
 
  116                    double yvalue = calos[calopl]->dEdx().at(
h);
 
  117                    pm.SetPoint(
h,xvalue,yvalue);
 
  119                    double error = yvalue*(0.04231 + 0.0001783*(yvalue*yvalue));
 
  120                    TLine& l = view->AddLine(xvalue,yvalue-
error,xvalue,yvalue+
error);
 
  130                  sprintf(trackinfo,
"Track #%d: K.E. = %.1f MeV , Range = %.1f cm",
 
  131                          int(tracklist[trkIter].key()),
 
  132                          calos[calopl]->KineticEnergy(),
 
  133                          calos[calopl]->Range());
 
  151                  double offset = (ntracks - 1)*10.0;
 
  152                  TLatex& track_tex  = view->AddLatex(13.0, (46.0)     - offset,trackinfo);
 
  153                  TLatex& pida_tex   = view->AddLatex(13.0, (46.0-2.5) - offset,pida);
 
  154                  TLatex& proton_tex = view->AddLatex(13.0, (46.0-5.0) - offset,proton);
 
  156                  TLatex& pion_tex   = view->AddLatex(13.0, (46.0-7.5) - offset,pion);
 
  164                  track_tex.SetTextSize(0.05);
 
  165                  proton_tex.SetTextSize(0.05);
 
  167                  pion_tex.SetTextSize(0.05);
 
  169                  pida_tex.SetTextSize(0.05);
 
BEGIN_PROLOG TPC Trig offset(g4 rise time) ProjectToHeight
 
BEGIN_PROLOG true icarus_rawdigitfilter FilterTools FilterPlane1 Plane
 
std::size_t size(FixedBins< T, C > const &) noexcept
 
IDparameter< geo::PlaneID > PlaneID
Member type of validated geo::PlaneID parameter. 
 
return match has_match and(match.match_pdg==11 or match.match_pdg==-11)
 
float dEdx(detinfo::DetectorClocksData const &clockData, detinfo::DetectorPropertiesData const &detProp, const TCSlice &slc, TP3D &tp3d)
 
static const int kColor[kNCOLS]