Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/visualization/modeling/src/G4TrajectoryDrawByEncounteredVolume.cc

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /visualization/modeling/src/G4TrajectoryDrawByEncounteredVolume.cc (Version 11.3.0) and /visualization/modeling/src/G4TrajectoryDrawByEncounteredVolume.cc (Version 9.5)


  1 //                                                  1 
  2 // *******************************************    
  3 // * License and Disclaimer                       
  4 // *                                              
  5 // * The  Geant4 software  is  copyright of th    
  6 // * the Geant4 Collaboration.  It is provided    
  7 // * conditions of the Geant4 Software License    
  8 // * LICENSE and available at  http://cern.ch/    
  9 // * include a list of copyright holders.         
 10 // *                                              
 11 // * Neither the authors of this software syst    
 12 // * institutes,nor the agencies providing fin    
 13 // * work  make  any representation or  warran    
 14 // * regarding  this  software system or assum    
 15 // * use.  Please see the license in the file     
 16 // * for the full disclaimer and the limitatio    
 17 // *                                              
 18 // * This  code  implementation is the result     
 19 // * technical work of the GEANT4 collaboratio    
 20 // * By using,  copying,  modifying or  distri    
 21 // * any work based  on the software)  you  ag    
 22 // * use  in  resulting  scientific  publicati    
 23 // * acceptance of all terms of the Geant4 Sof    
 24 // *******************************************    
 25 //                                                
 26 //                                                
 27 // John Allison February 2016, based on           
 28 // G4TrajectoryDrawByVolume.hh  Jane Tinslay M    
 29                                                   
 30 #include "G4TrajectoryDrawByEncounteredVolume.    
 31 #include "G4TrajectoryDrawerUtils.hh"             
 32 #include "G4VTrajectory.hh"                       
 33 #include "G4VisTrajContext.hh"                    
 34 #include "G4VTrajectoryPoint.hh"                  
 35 #include "G4AttDef.hh"                            
 36 #include "G4AttValue.hh"                          
 37                                                   
 38 G4TrajectoryDrawByEncounteredVolume::G4Traject    
 39 (const G4String& name, G4VisTrajContext* conte    
 40   :G4VTrajectoryModel(name, context)              
 41   ,fDefault(G4Colour::Grey())                     
 42 {}                                                
 43                                                   
 44 G4TrajectoryDrawByEncounteredVolume::~G4Trajec    
 45                                                   
 46 void                                              
 47 G4TrajectoryDrawByEncounteredVolume::Draw(cons    
 48 {                                                 
 49   // Check the required G4Att exists              
 50   const auto& aPointAttDefs = traj.GetPoint(0)    
 51   if (aPointAttDefs->find("PostVPath") != aPoi    
 52                                                   
 53     // Must be a rich trajectory                  
 54     const auto& richTrajectory = traj;            
 55                                                   
 56     G4Colour colour(fDefault);                    
 57     G4String soughtPVName("none");                
 58                                                   
 59     for (const auto& item: fMap.GetBasicMap())    
 60       soughtPVName = item.first;                  
 61       for (G4int iPoint = 0; iPoint < richTraj    
 62         G4VTrajectoryPoint* point = richTrajec    
 63         if (!point) continue;                     
 64         std::vector<G4AttValue>* attValues = p    
 65         std::vector<G4AttValue>::const_iterato    
 66         for (iAtt = attValues->begin(); iAtt !    
 67           if (iAtt->GetName() == "PostVPath" &    
 68               G4StrUtil::contains(iAtt->GetVal    
 69         }                                         
 70         if (iAtt != attValues->end()) {  // Re    
 71           fMap.GetColour(soughtPVName, colour)    
 72           break;  // First found pvname determ    
 73         }                                         
 74       }                                           
 75     }                                             
 76                                                   
 77     G4VisTrajContext myContext(GetContext());     
 78                                                   
 79     myContext.SetLineColour(colour);              
 80                                                   
 81     if (GetVerbose()) {                           
 82       G4cout                                      
 83       << "G4TrajectoryDrawByEncounteredVolume     
 84       << ", drawing trajectory touching physic    
 85       << ", with configuration:" << G4endl;       
 86       myContext.Print(G4cout);                    
 87     }                                             
 88                                                   
 89     G4TrajectoryDrawerUtils::DrawLineAndPoints    
 90                                                   
 91   } else {                                        
 92                                                   
 93     G4ExceptionDescription ed;                    
 94     ed << "Requires G4RichTrajectory - \"/vis/    
 95     G4Exception                                   
 96     ("G4TrajectoryDrawByEncounteredVolume::Dra    
 97      "modeling0125",                              
 98      JustWarning, ed);                            
 99                                                   
100   }                                               
101 }                                                 
102                                                   
103 void                                              
104 G4TrajectoryDrawByEncounteredVolume::SetDefaul    
105 {                                                 
106   G4Colour myColour;                              
107                                                   
108   // Will not modify default colour if colour     
109   if (!G4Colour::GetColour(colour, myColour))     
110     G4ExceptionDescription ed;                    
111     ed << "G4Colour with key "<<colour<<" does    
112     G4Exception                                   
113       ("G4TrajectoryDrawByEncounteredParticleI    
114        "modeling0123", JustWarning, ed);          
115     return;                                       
116   }                                               
117                                                   
118   SetDefault(myColour);                           
119 }                                                 
120                                                   
121 void                                              
122 G4TrajectoryDrawByEncounteredVolume::SetDefaul    
123 {                                                 
124   fDefault = colour;                              
125 }                                                 
126                                                   
127 void                                              
128 G4TrajectoryDrawByEncounteredVolume::Set(const    
129 {                                                 
130   fMap.Set(pvname, colour);                       
131 }                                                 
132                                                   
133 void                                              
134 G4TrajectoryDrawByEncounteredVolume::Set(const    
135 {                                                 
136   fMap[pvname] = colour;                          
137 }                                                 
138                                                   
139 void                                              
140 G4TrajectoryDrawByEncounteredVolume::Print(std    
141 {                                                 
142   ostr                                            
143   << "G4TrajectoryDrawByEncounteredVolume mode    
144   << ", colour scheme: "                          
145   << ", Default " << fDefault                     
146   << std::endl;                                   
147                                                   
148   fMap.Print(ostr);                               
149                                                   
150   ostr << "Default configuration:" << std::end    
151   GetContext().Print(ostr);                       
152 }                                                 
153