Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-07-13 07:54:05

0001 
0002 //
0003 // Template for this file generated with eicmkplugin.py
0004 //
0005 
0006 #include <Acts/Geometry/GeometryContext.hpp>
0007 #include <ActsExamples/EventData/Trajectories.hpp>
0008 #include <JANA/JApplication.h>
0009 #include <TDirectory.h>
0010 #include <vector>
0011 
0012 #include "TRACKINGcheckProcessor.h"
0013 #include "services/rootfile/RootFile_service.h"
0014 
0015 //-------------------------------------------
0016 // InitWithGlobalRootLock
0017 //-------------------------------------------
0018 void TRACKINGcheckProcessor::InitWithGlobalRootLock() {
0019 
0020   auto rootfile_svc = GetApplication()->GetService<RootFile_service>();
0021   auto* rootfile    = rootfile_svc->GetHistFile();
0022   rootfile->mkdir("TRACKING")->cd();
0023 
0024   hist1D["Trajectories_trajectories_per_event"] =
0025       new TH1I("Trajectories_trajectories_per_event",
0026                "TRACKING Reconstructed trajectories/event;Ntrajectories", 201, -0.5, 200.5);
0027   hist1D["Trajectories_time"] = new TH1D(
0028       "Trajectories_time", "TRACKING reconstructed particle time;time (ns)", 200, -100.0, 100.0);
0029   hist2D["Trajectories_xy"] =
0030       new TH2D("Trajectories_xy", "TRACKING reconstructed position Y vs. X;x;y", 100, -1000.0,
0031                1000.0, 100, -1000., 1000.0);
0032   hist1D["Trajectories_z"] =
0033       new TH1D("Trajectories_z", "TRACKING reconstructed position Z;z", 200, -50.0, 50.0);
0034 
0035   // Set some draw options
0036   hist2D["Trajectories_xy"]->SetOption("colz");
0037 }
0038 
0039 //-------------------------------------------
0040 // ProcessSequential
0041 //-------------------------------------------
0042 void TRACKINGcheckProcessor::ProcessSequential(const std::shared_ptr<const JEvent>& event) {
0043   auto Trajectories = event->Get<ActsExamples::Trajectories>("CentralCKFActsTrajectories");
0044 
0045   // Fill histograms here
0046 
0047   // Trajectories
0048   hist1D["Trajectories_trajectories_per_event"]->Fill(Trajectories.size());
0049 
0050   for (const auto* traj : Trajectories) {
0051     for (auto entryIndex : traj->tips()) {
0052       if (!traj->hasTrackParameters(entryIndex)) {
0053         continue;
0054       }
0055       auto trackparams = traj->trackParameters(entryIndex);
0056 
0057       auto pos = trackparams.position(Acts::GeometryContext());
0058       auto t   = trackparams.time();
0059 
0060       hist1D["Trajectories_time"]->Fill(t);
0061       hist2D["Trajectories_xy"]->Fill(pos.x(), pos.y());
0062       hist1D["Trajectories_z"]->Fill(pos.z());
0063     }
0064   }
0065 }
0066 
0067 //-------------------------------------------
0068 // FinishWithGlobalRootLock
0069 //-------------------------------------------
0070 void TRACKINGcheckProcessor::FinishWithGlobalRootLock() {
0071 
0072   // Do any final calculations here.
0073 }