Back to home page

sPhenix code displayed by LXR

 
 

    


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     //find all available types of objects in order to decided which QA plots to make
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 }