Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2024-09-28 07:03:01

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"]  =  new TH1I("Trajectories_trajectories_per_event",  "TRACKING Reconstructed trajectories/event;Ntrajectories",  201, -0.5, 200.5);
0025     hist1D["Trajectories_time"] =  new TH1D("Trajectories_time",  "TRACKING reconstructed particle time;time (ns)",  200, -100.0, 100.0);
0026     hist2D["Trajectories_xy"]  =  new TH2D("Trajectories_xy",  "TRACKING reconstructed position Y vs. X;x;y",  100, -1000.0, 1000.0,  100, -1000., 1000.0);
0027     hist1D["Trajectories_z"] =  new TH1D("Trajectories_z",  "TRACKING reconstructed position Z;z",  200, -50.0, 50.0);
0028 
0029     // Set some draw options
0030     hist2D["Trajectories_xy"]->SetOption("colz");
0031 }
0032 
0033 //-------------------------------------------
0034 // ProcessSequential
0035 //-------------------------------------------
0036 void TRACKINGcheckProcessor::ProcessSequential(const std::shared_ptr<const JEvent>& event) {
0037     auto Trajectories = event->Get<ActsExamples::Trajectories>("CentralCKFActsTrajectories");
0038 
0039     // Fill histograms here
0040 
0041     // Trajectories
0042     hist1D["Trajectories_trajectories_per_event"]->Fill(Trajectories.size());
0043 
0044     for( const auto *traj : Trajectories ){
0045         for( auto entryIndex : traj->tips() ){
0046             if( ! traj->hasTrackParameters( entryIndex) ) continue;
0047             auto trackparams = traj->trackParameters( entryIndex );
0048 
0049             auto pos = trackparams.position(Acts::GeometryContext());
0050             auto t = trackparams.time();
0051 
0052             hist1D["Trajectories_time"]->Fill( t );
0053             hist2D["Trajectories_xy"]->Fill( pos.x(), pos.y());
0054             hist1D["Trajectories_z"]->Fill( pos.z() );
0055         }
0056     }
0057 }
0058 
0059 //-------------------------------------------
0060 // FinishWithGlobalRootLock
0061 //-------------------------------------------
0062 void TRACKINGcheckProcessor::FinishWithGlobalRootLock() {
0063 
0064     // Do any final calculations here.
0065 
0066 }