File indexing completed on 2026-04-04 08:09:26
0001 #include "EventShapeQA.h"
0002
0003 EventShapeQA::EventShapeQA(int verb, const std::string &name):
0004 SubsysReco(name)
0005 {
0006 std::cout << "Setting up the event shape QA module" << std::endl;
0007 this->verbosity=verb;
0008 }
0009
0010 EventShapeQA::~EventShapeQA()
0011 {
0012 if( verbosity > 1 ) std::cout << "EventShapeQA::~EventShapeQA() Calling dtor" << std::endl;
0013 }
0014
0015 int EventShapeQA::Init(PHCompositeNode *topNode)
0016 {
0017 if( verbosity > 0 ) std::cout << "EventShapeQA::Init(PHCompositeNode *topNode) Initializing" << std::endl;
0018
0019 std::string NodeName = topNode->getName();
0020 std::map<std::string, PHCompositeNode* >::const_iterator iter;
0021 std::map<std::string, PHCompositeNode*> topNodeMap;
0022 topNodeMap[NodeName] = topNode;
0023 PHPointerList<PHNode>& nodeList;
0024 HitPlots* dummy =new HitPlots();
0025 for(iter = topNodeMap.begin(); iter != topNodeMap.end(); ++iter)
0026 {
0027 PHNodeIterator nodeIter(iter->second);
0028 nodeList=nodeIter.ls();
0029 }
0030 for(auto subL = nodeList.begin(); subL != nodeList.end(); ++subL)
0031 {
0032 std::string subnodeName = subL->getName();
0033 bool isJet = false;
0034 std::string subnodeClass=subL->getClass();
0035 if(subnodeClass.find("Jet") != std::string::npos) isJet=true;
0036 if(subnodeName.find("G4TruthInfo") != std::string::npos)
0037 subnodeName="G4 Truth Map";
0038 dummy->convertToEnum(subnodeName, isJet);
0039 if(dummy.ComponentType != -1 || dummy.JetType != -1 ){
0040 std::pair<CompDataType, JetDataType> dt { dummy.ComponentType, dummy.JetType};
0041 HitPlots* additional = new HitPlots(subnodeName, dummy.isJet, false);
0042 HitPlots* additional_shift = new HitPlots(subnodeName, dummy.isJet, true);
0043
0044 std::pair<std::pair<CompDataTypes, JetDataTypes> , HitPlots*>>
0045 ca {dt, additional},
0046 cas {dt, additional_shift};
0047
0048 calo_jet_zero_axis->push_back(ca);
0049 calo_jet_shift_axis->push_back(cas);
0050 if(subnodeName.find("G4 Truth Map") != std::string::npos && isJet==false){
0051 subnodeName = "G4 Primary Particle";
0052 dummy->convertToEnum(subnodeName, isJet);
0053 std::pair<CompDataType, JetDataType> dt { dummy.ComponentType, dummy.JetType};
0054 HitPlots* additional = new HitPlots(subnodeName, dummy.isJet, false);
0055 HitPlots* additional_shift = new HitPlots(subnodeName, dummy.isJet, true);
0056
0057 std::pair<std::pair<CompDataTypes, JetDataTypes> , HitPlots*>>
0058 ca {dt, additional},
0059 cas {dt, additional_shift};
0060 calo_jet_zero_axis->push_back(ca);
0061 calo_jet_shift_axis->push_back(cas);
0062 }
0063 std::pair<std::pair<CompDataTypes, JetDataTypes> , PHCompositeNode*>> na {dt, subL};
0064 nodes.push_back(na);
0065 }
0066
0067 }
0068 return Fun4AllReturnCodes::EVENT_OK;
0069 }
0070 void EventShapeQA::doPHG4Analysis(std::pair<std::pair<CompDataTypes, JetDataTypes>, PHCompositeNode*>> taggedNode)
0071 {
0072 PHG4TruthInfoContianer* pn=(PHG4TruthInfoContianer*)taggedNode.second;
0073 if(pn)
0074 {
0075 PHG4TruthInfoContainer::ConstRange range = truthinfo->GetPrimaryParticleRange();
0076 for(auto iter = range.first; iter != range.second; ++iter)
0077 {
0078 PHG4Particle* part = iter->second;
0079
0080 return;
0081 }
0082 void EventShapeQA::doPHG4JetAnalysis(std::pair<std::pair<CompDataTypes, JetDataTypes>, PHCompositeNode*>> taggedNode)
0083 {
0084 return;
0085 }
0086 void EventShapeQA::doHepMCAnalysis(std::pair<std::pair<CompDataTypes, JetDataTypes>, PHCompositeNode*>> taggedNode)
0087 {
0088 return;
0089 }
0090 void EventShapeQA::doCaloAnalysis(std::pair<std::pair<CompDataTypes, JetDataTypes>, PHCompositeNode*>> taggedNode)
0091 {
0092
0093 return;
0094 }
0095 void EventShapeQA::doCaloJetAnalysis(std::pair<std::pair<CompDataTypes, JetDataTypes>, PHCompositeNode*>> taggedNode)
0096 {
0097 return;
0098 }
0099
0100 int EventShapeQA::process_event(PHCompositeNode *topNode)
0101 {
0102 if( verbosity > 1 ) std::cout << "Processing Event " <<n_evt << std::endl;
0103
0104 return Fun4AllReturnCodes::EVENT_OK;
0105 }
0106
0107 int EventShapeQA::End(PHCompositeNode *topNode)
0108 {
0109 if( verbosity > 0 ) std::cout << "This is the End..." << std::endl;
0110 return Fun4AllReturnCodes::EVENT_OK;
0111 }
0112
0113
0114 void EventShapeQA::Print(const std::string &what) const
0115 {
0116 if( verbosity > 0 ) std::cout << "EventShapeQA::Print(const std::string &what) const Printing info for " << what << std::endl;
0117 }