Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:18:13

0001 #include "PHG4MvtxDisplayAction.h"
0002 
0003 #include <g4main/PHG4Utils.h>
0004 #include "g4main/PHG4DisplayAction.h"  // for PHG4DisplayAction
0005 
0006 #include <Geant4/G4LogicalVolume.hh>
0007 #include <Geant4/G4VisAttributes.hh>
0008 
0009 #include <utility>  // for pair
0010 
0011 PHG4MvtxDisplayAction::PHG4MvtxDisplayAction(const std::string &name)
0012   : PHG4DisplayAction(name)
0013 {
0014 }
0015 
0016 PHG4MvtxDisplayAction::~PHG4MvtxDisplayAction()
0017 {
0018   for (auto &it : m_VisAttVec)
0019   {
0020     delete it;
0021   }
0022   m_VisAttVec.clear();
0023 }
0024 
0025 void PHG4MvtxDisplayAction::ApplyDisplayAction(G4VPhysicalVolume * /*physvol*/)
0026 {
0027   // check if vis attributes exist, if so someone else has set them and we do nothing
0028   for (const auto &it : m_LogicalVolumeMap)
0029   {
0030     G4LogicalVolume *logvol = it.first;
0031     if (logvol->GetVisAttributes())
0032     {
0033       continue;
0034     }
0035     G4VisAttributes *visatt = new G4VisAttributes();
0036     m_VisAttVec.push_back(visatt);  // for later deletion
0037     if (it.second == "Carbon")
0038     {
0039       visatt->SetColour(0.5, 0.5, 0.5, .25);
0040     }
0041     else if (it.second == "MVTX_CarbonFiber$")
0042     {
0043       visatt->SetColour(0.4, 0.4, 0.4, 1);
0044     }
0045     else if (it.second == "M60J3K")
0046     {
0047       visatt->SetColour(0.25, 0.25, 0.25, .25);
0048     }
0049     else if (it.second == "WATER" || it.second == "G4_WATER")
0050     {
0051       visatt->SetColour(0.0, 0.5, 0.0, .25);
0052     }
0053     else if (it.second == "SI")
0054     {
0055       PHG4Utils::SetColour(visatt, "G4_Si");
0056     }
0057     else if (it.second == "KAPTON")
0058     {
0059       PHG4Utils::SetColour(visatt, "G4_KAPTON");
0060     }
0061     else if (it.second == "ALUMINUM")
0062     {
0063       PHG4Utils::SetColour(visatt, "G4_Al");
0064     }
0065     else if (it.second == "G4_Cu")
0066     {
0067       PHG4Utils::SetColour(visatt, "G4_Cu");
0068     }
0069     else if (it.second == "G4_POLYETHYLENE")
0070     {
0071       visatt->SetColour(0., 0., 0., 1.);
0072     }
0073     else if (it.second == "red")
0074     {
0075       visatt->SetColour(1., 0., 0., 1.);
0076     }
0077     else if (it.second == "green")
0078     {
0079       visatt->SetColour(0., 1., 0., 1.);
0080     }
0081     else if (it.second == "blue")
0082     {
0083       visatt->SetColour(0., 0., 1., 1.);
0084     }
0085     else if (it.second == "black")
0086     {
0087       visatt->SetColour(0., 0., 0., 1.);
0088     }
0089     else if (it.second == "white")
0090     {
0091       visatt->SetColour(1., 1., 1., 1.);
0092     }
0093     else
0094     {
0095       visatt->SetColour(.2, .2, .7, .25);
0096     }
0097     visatt->SetVisibility(true);
0098     visatt->SetForceSolid(true);
0099     logvol->SetVisAttributes(visatt);
0100   }
0101   return;
0102 }