Geant4 Cross Reference |
1 // 1 // 2 // ******************************************* 2 // ******************************************************************** 3 // * License and Disclaimer 3 // * License and Disclaimer * 4 // * 4 // * * 5 // * The Geant4 software is copyright of th 5 // * The Geant4 software is copyright of the Copyright Holders of * 6 // * the Geant4 Collaboration. It is provided 6 // * the Geant4 Collaboration. It is provided under the terms and * 7 // * conditions of the Geant4 Software License 7 // * conditions of the Geant4 Software License, included in the file * 8 // * LICENSE and available at http://cern.ch/ 8 // * LICENSE and available at http://cern.ch/geant4/license . These * 9 // * include a list of copyright holders. 9 // * include a list of copyright holders. * 10 // * 10 // * * 11 // * Neither the authors of this software syst 11 // * Neither the authors of this software system, nor their employing * 12 // * institutes,nor the agencies providing fin 12 // * institutes,nor the agencies providing financial support for this * 13 // * work make any representation or warran 13 // * work make any representation or warranty, express or implied, * 14 // * regarding this software system or assum 14 // * regarding this software system or assume any liability for its * 15 // * use. Please see the license in the file 15 // * use. Please see the license in the file LICENSE and URL above * 16 // * for the full disclaimer and the limitatio 16 // * for the full disclaimer and the limitation of liability. * 17 // * 17 // * * 18 // * This code implementation is the result 18 // * This code implementation is the result of the scientific and * 19 // * technical work of the GEANT4 collaboratio 19 // * technical work of the GEANT4 collaboration. * 20 // * By using, copying, modifying or distri 20 // * By using, copying, modifying or distributing the software (or * 21 // * any work based on the software) you ag 21 // * any work based on the software) you agree to acknowledge its * 22 // * use in resulting scientific publicati 22 // * use in resulting scientific publications, and indicate your * 23 // * acceptance of all terms of the Geant4 Sof 23 // * acceptance of all terms of the Geant4 Software license. * 24 // ******************************************* 24 // ******************************************************************** 25 // 25 // 26 // 26 // 27 // Jane Tinslay, John Allison, Joseph Perl Oct 27 // Jane Tinslay, John Allison, Joseph Perl October 2005 28 28 29 #include "G4ModelCompoundCommandsT.hh" 29 #include "G4ModelCompoundCommandsT.hh" 30 #include "G4ModelCommandsT.hh" 30 #include "G4ModelCommandsT.hh" 31 #include "G4ModelCommandUtils.hh" 31 #include "G4ModelCommandUtils.hh" 32 #include "G4TrajectoryDrawByAttribute.hh" 32 #include "G4TrajectoryDrawByAttribute.hh" 33 #include "G4TrajectoryDrawByCharge.hh" 33 #include "G4TrajectoryDrawByCharge.hh" 34 #include "G4TrajectoryDrawByOriginVolume.hh" 34 #include "G4TrajectoryDrawByOriginVolume.hh" 35 #include "G4TrajectoryDrawByParticleID.hh" 35 #include "G4TrajectoryDrawByParticleID.hh" 36 #include "G4TrajectoryDrawByEncounteredVolume. 36 #include "G4TrajectoryDrawByEncounteredVolume.hh" 37 #include "G4TrajectoryGenericDrawer.hh" 37 #include "G4TrajectoryGenericDrawer.hh" 38 #include "G4TrajectoryModelFactories.hh" 38 #include "G4TrajectoryModelFactories.hh" 39 #include "G4VisTrajContext.hh" 39 #include "G4VisTrajContext.hh" 40 40 41 // Draw by attribute 41 // Draw by attribute 42 G4TrajectoryDrawByAttributeFactory::G4Trajecto 42 G4TrajectoryDrawByAttributeFactory::G4TrajectoryDrawByAttributeFactory() 43 :G4VModelFactory<G4VTrajectoryModel>("drawBy 43 :G4VModelFactory<G4VTrajectoryModel>("drawByAttribute") 44 {} 44 {} 45 45 46 G4TrajectoryDrawByAttributeFactory::~G4Traject 46 G4TrajectoryDrawByAttributeFactory::~G4TrajectoryDrawByAttributeFactory() {} 47 47 48 ModelAndMessengers 48 ModelAndMessengers 49 G4TrajectoryDrawByAttributeFactory::Create(con 49 G4TrajectoryDrawByAttributeFactory::Create(const G4String& placement, const G4String& name) 50 { 50 { 51 Messengers messengers; 51 Messengers messengers; 52 52 53 // Create default context and model 53 // Create default context and model 54 G4VisTrajContext* context = new G4VisTrajCon 54 G4VisTrajContext* context = new G4VisTrajContext("default"); 55 55 56 G4TrajectoryDrawByAttribute* model = new G4T 56 G4TrajectoryDrawByAttribute* model = new G4TrajectoryDrawByAttribute(name, context); 57 57 58 // Create messengers for default context con 58 // Create messengers for default context configuration 59 G4ModelCommandUtils::AddContextMsgrs(context 59 G4ModelCommandUtils::AddContextMsgrs(context, messengers, placement+"/"+name); 60 60 61 messengers.push_back(new G4ModelCmdVerbose<G 61 messengers.push_back(new G4ModelCmdVerbose<G4TrajectoryDrawByAttribute>(model, placement)); 62 messengers.push_back(new G4ModelCmdSetString 62 messengers.push_back(new G4ModelCmdSetString<G4TrajectoryDrawByAttribute>(model, placement, "setAttribute")); 63 messengers.push_back(new G4ModelCmdAddInterv 63 messengers.push_back(new G4ModelCmdAddIntervalContext<G4TrajectoryDrawByAttribute>(model, placement, "addInterval")); 64 messengers.push_back(new G4ModelCmdAddValueC 64 messengers.push_back(new G4ModelCmdAddValueContext<G4TrajectoryDrawByAttribute>(model, placement, "addValue")); 65 65 66 return ModelAndMessengers(model, messengers) 66 return ModelAndMessengers(model, messengers); 67 } 67 } 68 68 69 G4TrajectoryGenericDrawerFactory::G4Trajectory 69 G4TrajectoryGenericDrawerFactory::G4TrajectoryGenericDrawerFactory() 70 :G4VModelFactory<G4VTrajectoryModel>("generi 70 :G4VModelFactory<G4VTrajectoryModel>("generic") 71 {} 71 {} 72 72 73 G4TrajectoryGenericDrawerFactory::~G4Trajector 73 G4TrajectoryGenericDrawerFactory::~G4TrajectoryGenericDrawerFactory() {} 74 74 75 ModelAndMessengers 75 ModelAndMessengers 76 G4TrajectoryGenericDrawerFactory::Create(const 76 G4TrajectoryGenericDrawerFactory::Create(const G4String& placement, const G4String& name) 77 { 77 { 78 Messengers messengers; 78 Messengers messengers; 79 79 80 // Create default context and model 80 // Create default context and model 81 G4VisTrajContext* context = new G4VisTrajCon 81 G4VisTrajContext* context = new G4VisTrajContext("default"); 82 G4TrajectoryGenericDrawer* model = new G4Tra 82 G4TrajectoryGenericDrawer* model = new G4TrajectoryGenericDrawer(name, context); 83 83 84 // Create messengers for default context con 84 // Create messengers for default context configuration 85 G4ModelCommandUtils::AddContextMsgrs(context 85 G4ModelCommandUtils::AddContextMsgrs(context, messengers, placement+"/"+name); 86 86 87 // Verbose command 87 // Verbose command 88 messengers.push_back(new G4ModelCmdVerbose<G 88 messengers.push_back(new G4ModelCmdVerbose<G4TrajectoryGenericDrawer>(model, placement)); 89 89 90 return ModelAndMessengers(model, messengers) 90 return ModelAndMessengers(model, messengers); 91 } 91 } 92 92 93 // drawByCharge 93 // drawByCharge 94 G4TrajectoryDrawByChargeFactory::G4TrajectoryD 94 G4TrajectoryDrawByChargeFactory::G4TrajectoryDrawByChargeFactory() 95 :G4VModelFactory<G4VTrajectoryModel>("drawBy 95 :G4VModelFactory<G4VTrajectoryModel>("drawByCharge") 96 {} 96 {} 97 97 98 G4TrajectoryDrawByChargeFactory::~G4Trajectory 98 G4TrajectoryDrawByChargeFactory::~G4TrajectoryDrawByChargeFactory() {} 99 99 100 ModelAndMessengers 100 ModelAndMessengers 101 G4TrajectoryDrawByChargeFactory::Create(const 101 G4TrajectoryDrawByChargeFactory::Create(const G4String& placement, const G4String& name) 102 { 102 { 103 Messengers messengers; 103 Messengers messengers; 104 104 105 // Create default context and model 105 // Create default context and model 106 G4VisTrajContext* context = new G4VisTrajCon 106 G4VisTrajContext* context = new G4VisTrajContext("default"); 107 G4TrajectoryDrawByCharge* model = new G4Traj 107 G4TrajectoryDrawByCharge* model = new G4TrajectoryDrawByCharge(name, context); 108 108 109 // Create messengers for default context con 109 // Create messengers for default context configuration 110 G4ModelCommandUtils::AddContextMsgrs(context 110 G4ModelCommandUtils::AddContextMsgrs(context, messengers, placement+"/"+name); 111 111 112 // Create messengers for drawer 112 // Create messengers for drawer 113 messengers.push_back(new G4ModelCmdSetString 113 messengers.push_back(new G4ModelCmdSetStringColour<G4TrajectoryDrawByCharge>(model, placement)); 114 messengers.push_back(new G4ModelCmdVerbose<G 114 messengers.push_back(new G4ModelCmdVerbose<G4TrajectoryDrawByCharge>(model, placement)); 115 115 116 return ModelAndMessengers(model, messengers) 116 return ModelAndMessengers(model, messengers); 117 } 117 } 118 118 119 //Draw by particle ID 119 //Draw by particle ID 120 G4TrajectoryDrawByParticleIDFactory::G4Traject 120 G4TrajectoryDrawByParticleIDFactory::G4TrajectoryDrawByParticleIDFactory() 121 :G4VModelFactory<G4VTrajectoryModel>("drawBy 121 :G4VModelFactory<G4VTrajectoryModel>("drawByParticleID") 122 {} 122 {} 123 123 124 G4TrajectoryDrawByParticleIDFactory::~G4Trajec 124 G4TrajectoryDrawByParticleIDFactory::~G4TrajectoryDrawByParticleIDFactory() {} 125 125 126 ModelAndMessengers 126 ModelAndMessengers 127 G4TrajectoryDrawByParticleIDFactory::Create(co 127 G4TrajectoryDrawByParticleIDFactory::Create(const G4String& placement, const G4String& name) 128 { 128 { 129 Messengers messengers; 129 Messengers messengers; 130 130 131 // Create default context and model 131 // Create default context and model 132 G4VisTrajContext* context = new G4VisTrajCon 132 G4VisTrajContext* context = new G4VisTrajContext("default"); 133 G4TrajectoryDrawByParticleID* model = new G4 133 G4TrajectoryDrawByParticleID* model = new G4TrajectoryDrawByParticleID(name, context); 134 134 135 // Create messengers for default context con 135 // Create messengers for default context configuration 136 G4ModelCommandUtils::AddContextMsgrs(context 136 G4ModelCommandUtils::AddContextMsgrs(context, messengers, placement+"/"+name); 137 137 138 // Create messengers for drawer 138 // Create messengers for drawer 139 messengers.push_back(new G4ModelCmdSetString 139 messengers.push_back(new G4ModelCmdSetStringColour<G4TrajectoryDrawByParticleID>(model, placement)); 140 messengers.push_back(new G4ModelCmdSetDefaul 140 messengers.push_back(new G4ModelCmdSetDefaultColour<G4TrajectoryDrawByParticleID>(model, placement)); 141 messengers.push_back(new G4ModelCmdVerbose<G 141 messengers.push_back(new G4ModelCmdVerbose<G4TrajectoryDrawByParticleID>(model, placement)); 142 142 143 return ModelAndMessengers(model, messengers) 143 return ModelAndMessengers(model, messengers); 144 } 144 } 145 145 146 //Draw by origin volume 146 //Draw by origin volume 147 G4TrajectoryDrawByOriginVolumeFactory::G4Traje 147 G4TrajectoryDrawByOriginVolumeFactory::G4TrajectoryDrawByOriginVolumeFactory() 148 :G4VModelFactory<G4VTrajectoryModel>("drawByOr 148 :G4VModelFactory<G4VTrajectoryModel>("drawByOriginVolume") 149 {} 149 {} 150 150 151 G4TrajectoryDrawByOriginVolumeFactory::~G4Traj 151 G4TrajectoryDrawByOriginVolumeFactory::~G4TrajectoryDrawByOriginVolumeFactory() {} 152 152 153 ModelAndMessengers 153 ModelAndMessengers 154 G4TrajectoryDrawByOriginVolumeFactory::Create( 154 G4TrajectoryDrawByOriginVolumeFactory::Create(const G4String& placement, const G4String& name) 155 { 155 { 156 Messengers messengers; 156 Messengers messengers; 157 157 158 // Create default context and model 158 // Create default context and model 159 G4VisTrajContext* context = new G4VisTrajCon 159 G4VisTrajContext* context = new G4VisTrajContext("default"); 160 G4TrajectoryDrawByOriginVolume* model = new 160 G4TrajectoryDrawByOriginVolume* model = new G4TrajectoryDrawByOriginVolume(name, context); 161 161 162 // Create messengers for default context con 162 // Create messengers for default context configuration 163 G4ModelCommandUtils::AddContextMsgrs(context 163 G4ModelCommandUtils::AddContextMsgrs(context, messengers, placement+"/"+name); 164 164 165 // Create messengers for drawer 165 // Create messengers for drawer 166 messengers.push_back(new G4ModelCmdSetString 166 messengers.push_back(new G4ModelCmdSetStringColour<G4TrajectoryDrawByOriginVolume>(model, placement)); 167 messengers.push_back(new G4ModelCmdSetDefaul 167 messengers.push_back(new G4ModelCmdSetDefaultColour<G4TrajectoryDrawByOriginVolume>(model, placement)); 168 messengers.push_back(new G4ModelCmdVerbose<G 168 messengers.push_back(new G4ModelCmdVerbose<G4TrajectoryDrawByOriginVolume>(model, placement)); 169 169 170 return ModelAndMessengers(model, messengers) 170 return ModelAndMessengers(model, messengers); 171 } 171 } 172 172 173 //Draw by encountered volume 173 //Draw by encountered volume 174 G4TrajectoryDrawByEncounteredVolumeFactory::G4 174 G4TrajectoryDrawByEncounteredVolumeFactory::G4TrajectoryDrawByEncounteredVolumeFactory() 175 :G4VModelFactory<G4VTrajectoryModel>("drawByEn 175 :G4VModelFactory<G4VTrajectoryModel>("drawByEncounteredVolume") 176 {} 176 {} 177 177 178 G4TrajectoryDrawByEncounteredVolumeFactory::~G 178 G4TrajectoryDrawByEncounteredVolumeFactory::~G4TrajectoryDrawByEncounteredVolumeFactory() {} 179 179 180 ModelAndMessengers 180 ModelAndMessengers 181 G4TrajectoryDrawByEncounteredVolumeFactory::Cr 181 G4TrajectoryDrawByEncounteredVolumeFactory::Create(const G4String& placement, const G4String& name) 182 { 182 { 183 Messengers messengers; 183 Messengers messengers; 184 184 185 // Create default context and model 185 // Create default context and model 186 G4VisTrajContext* context = new G4VisTrajCon 186 G4VisTrajContext* context = new G4VisTrajContext("default"); 187 G4TrajectoryDrawByEncounteredVolume* model = 187 G4TrajectoryDrawByEncounteredVolume* model = new G4TrajectoryDrawByEncounteredVolume(name, context); 188 188 189 // Create messengers for default context con 189 // Create messengers for default context configuration 190 G4ModelCommandUtils::AddContextMsgrs(context 190 G4ModelCommandUtils::AddContextMsgrs(context, messengers, placement+"/"+name); 191 191 192 // Create messengers for drawer 192 // Create messengers for drawer 193 messengers.push_back(new G4ModelCmdSetString 193 messengers.push_back(new G4ModelCmdSetStringColour<G4TrajectoryDrawByEncounteredVolume>(model, placement)); 194 messengers.push_back(new G4ModelCmdSetDefaul 194 messengers.push_back(new G4ModelCmdSetDefaultColour<G4TrajectoryDrawByEncounteredVolume>(model, placement)); 195 messengers.push_back(new G4ModelCmdVerbose<G 195 messengers.push_back(new G4ModelCmdVerbose<G4TrajectoryDrawByEncounteredVolume>(model, placement)); 196 196 197 return ModelAndMessengers(model, messengers) 197 return ModelAndMessengers(model, messengers); 198 } 198 } 199 199