Back to home page

sPhenix code displayed by LXR

 
 

    


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

0001 #include "PHG4MicromegasDisplayAction.h"
0002 
0003 #include <g4main/PHG4DisplayAction.h>  // for PHG4DisplayAction
0004 
0005 #include <Geant4/G4Color.hh>
0006 #include <Geant4/G4LogicalVolume.hh>
0007 #include <Geant4/G4VisAttributes.hh>
0008 
0009 #include <iostream>  // for operator<<, basic_ostream, endl
0010 #include <string>
0011 #include <utility>  // for pair
0012 
0013 PHG4MicromegasDisplayAction::PHG4MicromegasDisplayAction(const std::string &name)
0014   : PHG4DisplayAction(name)
0015 {
0016 }
0017 
0018 PHG4MicromegasDisplayAction::~PHG4MicromegasDisplayAction()
0019 {
0020   for (auto &it : m_VisAttVec)
0021   {
0022     delete it;
0023   }
0024   m_VisAttVec.clear();
0025 }
0026 
0027 void PHG4MicromegasDisplayAction::ApplyDisplayAction(G4VPhysicalVolume * /*physvol*/)
0028 {
0029   for (auto it : m_LogicalVolumeMap)
0030   {
0031     G4LogicalVolume *logvol = it.first;
0032     if (logvol->GetVisAttributes())
0033     {
0034       continue;
0035     }
0036     G4VisAttributes *visatt = new G4VisAttributes();
0037     visatt->SetVisibility(true);
0038     visatt->SetForceSolid(true);
0039     m_VisAttVec.push_back(visatt);  // for later deletion
0040     if (it.first->GetName().find("invisible") != std::string::npos)
0041     {
0042       visatt->SetColour(it.second);
0043       visatt->SetVisibility(false);
0044     }
0045     else
0046     {
0047       visatt->SetColour(it.second);
0048     }
0049     logvol->SetVisAttributes(visatt);
0050   }
0051   return;
0052 }