Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-06 08:19:07

0001 /*!
0002  * \file DSTTrackInfoReader.cc
0003  * \author Alex Patton <aopatton@mit.edu>
0004  */
0005 
0006 #include "DSTTrackInfoReader.h"
0007 #include <fun4all/Fun4AllReturnCodes.h>
0008 #include <g4main/PHG4Hit.h>
0009 #include <g4main/PHG4HitContainer.h>
0010 #include <g4main/PHG4Particle.h>
0011 #include <g4main/PHG4TruthInfoContainer.h>
0012 #include <intt/InttClusterizer.h>
0013 #include <micromegas/MicromegasDefs.h>
0014 #include <phool/PHCompositeNode.h>
0015 #include <phool/PHNodeIterator.h>
0016 #include <phool/getClass.h>
0017 #include <trackbase/InttDefs.h>
0018 #include <trackbase/MvtxDefs.h>
0019 #include <trackbase/TpcDefs.h>
0020 #include <trackbase/TrkrDefs.h>
0021 #include <trackbase/TrkrClusterContainer.h>
0022 #include <trackbase/TrkrClusterContainerv4.h>
0023 #include <trackbase/TrkrClusterHitAssoc.h>
0024 #include <trackbase/TrkrClusterv4.h>
0025 #include <trackbase/TrkrHit.h>
0026 #include <trackbase/TrkrHitSet.h>
0027 #include <trackbase/TrkrHitSetContainer.h>
0028 #include <trackbase/TrkrHitTruthAssoc.h>
0029 #include <trackbase_historic/SvtxTrack.h>
0030 #include <trackbase_historic/SvtxTrackMap.h>
0031 #include <trackbase_historic/SvtxTrackMap_v2.h>
0032 #include <trackbase_historic/SvtxTrackState_v1.h>
0033 #include <trackbase_historic/SvtxTrack_v4.h>
0034 #include <trackbase_historic/TrackSeedContainer_v1.h>
0035 
0036 
0037 #include <algorithm>
0038 #include <bitset>
0039 #include <cassert>
0040 #include <iostream>
0041 #include <numeric>
0042 
0043 //_____________________________________________________________________
0044 
0045 //_____________________________________________________________________
0046 DSTTrackInfoReader::DSTTrackInfoReader(const std::string& name)
0047   : SubsysReco(name)
0048 {
0049 }
0050 
0051 //_____________________________________________________________________
0052 int DSTTrackInfoReader::InitRun(PHCompositeNode* topNode)
0053 {
0054   // make a clusterContainer node and a trackmap node
0055   // assume writing macro removed them
0056   //  evalNode->addNode(newNode);
0057 
0058   // auto newNode = new PHIODataNode<PHObject>( new DSTContainerv3, "DSTContainer","PHObject");
0059   // evalNode->addNode(newNode);
0060 
0061   // TrackInfo container
0062   m_track_info_container = findNode::getClass<TrackInfoContainer_v1>(topNode, "TrackInfoContainer");
0063 
0064   // m_container = findNode::getClass<DSTContainer>(topNode, "DSTContainer");
0065 
0066   // svtxtrackmap constructer is protected
0067   // auto svtxNode = dynamic_cast<PHCompositeNode*>(iter.findFirst("PHCompositeNode", "SVTX"));
0068   // auto newNode = new PHIODataNode<PHObject>( new SvtxTrackMap, "SvtxTrackMap_2","PHObject");
0069   // svtxNode->addNode(newNode);
0070 
0071   return Fun4AllReturnCodes::EVENT_OK;
0072 }
0073 
0074 //_____________________________________________________________________
0075 int DSTTrackInfoReader::process_event(PHCompositeNode* topNode)
0076 {
0077   // Init(topNode);
0078   //  load nodes
0079   auto res = load_nodes(topNode);
0080   // std::cout <<"This is before I fill cluster map" << std::endl;
0081   // m_cluster_map->identify();
0082   if (res != Fun4AllReturnCodes::EVENT_OK)
0083   {
0084     return res;
0085   }
0086   evaluate_track_info();
0087 
0088   m_track_info_container->Reset();
0089 
0090   return Fun4AllReturnCodes::EVENT_OK;
0091 }
0092 
0093 //_____________________________________________________________________
0094 int DSTTrackInfoReader::load_nodes(PHCompositeNode* topNode)
0095 {
0096   // get necessary nodes
0097   // m_track_map = findNode::getClass<SvtxTrackMap>(topNode, "SvtxTrackMap");
0098 
0099   m_track_info_container = findNode::getClass<TrackInfoContainer_v1>(topNode, "TrackInfoContainer");
0100 
0101   return Fun4AllReturnCodes::EVENT_OK;
0102 }
0103 
0104 void DSTTrackInfoReader::evaluate_track_info()
0105 {
0106   if (Verbosity() > 1)
0107   {
0108     for (int iTrk = 0; iTrk < (int) m_track_info_container->size(); iTrk++)
0109     {
0110       std::cout << "size: " << m_track_info_container->size() << std::endl;
0111       std::cout << "hitbitmap: " << (m_track_info_container->get_trackinfo(iTrk))->get_hitbitmap() << std::endl;
0112       std::cout << "crossing: " << (m_track_info_container->get_trackinfo(iTrk))->get_crossing() << std::endl;
0113       std::cout << "chi^2: " << (m_track_info_container->get_trackinfo(iTrk))->get_chisq() << std::endl;
0114       std::cout << "NDF: " << unsigned((m_track_info_container->get_trackinfo(iTrk))->get_ndf()) << std::endl;
0115     }
0116   }
0117 }