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 // $Id: G4TrajectoryModelFactories.cc 98766 2016-08-09 14:17:17Z gcosmo $ 26 // 27 // 27 // Jane Tinslay, John Allison, Joseph Perl Oct 28 // Jane Tinslay, John Allison, Joseph Perl October 2005 28 29 29 #include "G4ModelCompoundCommandsT.hh" 30 #include "G4ModelCompoundCommandsT.hh" 30 #include "G4ModelCommandsT.hh" 31 #include "G4ModelCommandsT.hh" 31 #include "G4ModelCommandUtils.hh" 32 #include "G4ModelCommandUtils.hh" 32 #include "G4TrajectoryDrawByAttribute.hh" 33 #include "G4TrajectoryDrawByAttribute.hh" 33 #include "G4TrajectoryDrawByCharge.hh" 34 #include "G4TrajectoryDrawByCharge.hh" 34 #include "G4TrajectoryDrawByOriginVolume.hh" 35 #include "G4TrajectoryDrawByOriginVolume.hh" 35 #include "G4TrajectoryDrawByParticleID.hh" 36 #include "G4TrajectoryDrawByParticleID.hh" 36 #include "G4TrajectoryDrawByEncounteredVolume. 37 #include "G4TrajectoryDrawByEncounteredVolume.hh" 37 #include "G4TrajectoryGenericDrawer.hh" 38 #include "G4TrajectoryGenericDrawer.hh" 38 #include "G4TrajectoryModelFactories.hh" 39 #include "G4TrajectoryModelFactories.hh" 39 #include "G4VisTrajContext.hh" 40 #include "G4VisTrajContext.hh" 40 41 41 // Draw by attribute 42 // Draw by attribute 42 G4TrajectoryDrawByAttributeFactory::G4Trajecto 43 G4TrajectoryDrawByAttributeFactory::G4TrajectoryDrawByAttributeFactory() 43 :G4VModelFactory<G4VTrajectoryModel>("drawBy 44 :G4VModelFactory<G4VTrajectoryModel>("drawByAttribute") 44 {} 45 {} 45 46 46 G4TrajectoryDrawByAttributeFactory::~G4Traject 47 G4TrajectoryDrawByAttributeFactory::~G4TrajectoryDrawByAttributeFactory() {} 47 48 48 ModelAndMessengers 49 ModelAndMessengers 49 G4TrajectoryDrawByAttributeFactory::Create(con 50 G4TrajectoryDrawByAttributeFactory::Create(const G4String& placement, const G4String& name) 50 { 51 { 51 Messengers messengers; 52 Messengers messengers; 52 53 53 // Create default context and model 54 // Create default context and model 54 G4VisTrajContext* context = new G4VisTrajCon 55 G4VisTrajContext* context = new G4VisTrajContext("default"); 55 56 56 G4TrajectoryDrawByAttribute* model = new G4T 57 G4TrajectoryDrawByAttribute* model = new G4TrajectoryDrawByAttribute(name, context); 57 58 58 // Create messengers for default context con 59 // Create messengers for default context configuration 59 G4ModelCommandUtils::AddContextMsgrs(context 60 G4ModelCommandUtils::AddContextMsgrs(context, messengers, placement+"/"+name); 60 61 61 messengers.push_back(new G4ModelCmdVerbose<G 62 messengers.push_back(new G4ModelCmdVerbose<G4TrajectoryDrawByAttribute>(model, placement)); 62 messengers.push_back(new G4ModelCmdSetString 63 messengers.push_back(new G4ModelCmdSetString<G4TrajectoryDrawByAttribute>(model, placement, "setAttribute")); 63 messengers.push_back(new G4ModelCmdAddInterv 64 messengers.push_back(new G4ModelCmdAddIntervalContext<G4TrajectoryDrawByAttribute>(model, placement, "addInterval")); 64 messengers.push_back(new G4ModelCmdAddValueC 65 messengers.push_back(new G4ModelCmdAddValueContext<G4TrajectoryDrawByAttribute>(model, placement, "addValue")); 65 66 66 return ModelAndMessengers(model, messengers) 67 return ModelAndMessengers(model, messengers); 67 } 68 } 68 69 69 G4TrajectoryGenericDrawerFactory::G4Trajectory 70 G4TrajectoryGenericDrawerFactory::G4TrajectoryGenericDrawerFactory() 70 :G4VModelFactory<G4VTrajectoryModel>("generi 71 :G4VModelFactory<G4VTrajectoryModel>("generic") 71 {} 72 {} 72 73 73 G4TrajectoryGenericDrawerFactory::~G4Trajector 74 G4TrajectoryGenericDrawerFactory::~G4TrajectoryGenericDrawerFactory() {} 74 75 75 ModelAndMessengers 76 ModelAndMessengers 76 G4TrajectoryGenericDrawerFactory::Create(const 77 G4TrajectoryGenericDrawerFactory::Create(const G4String& placement, const G4String& name) 77 { 78 { 78 Messengers messengers; 79 Messengers messengers; 79 80 80 // Create default context and model 81 // Create default context and model 81 G4VisTrajContext* context = new G4VisTrajCon 82 G4VisTrajContext* context = new G4VisTrajContext("default"); 82 G4TrajectoryGenericDrawer* model = new G4Tra 83 G4TrajectoryGenericDrawer* model = new G4TrajectoryGenericDrawer(name, context); 83 84 84 // Create messengers for default context con 85 // Create messengers for default context configuration 85 G4ModelCommandUtils::AddContextMsgrs(context 86 G4ModelCommandUtils::AddContextMsgrs(context, messengers, placement+"/"+name); 86 87 87 // Verbose command 88 // Verbose command 88 messengers.push_back(new G4ModelCmdVerbose<G 89 messengers.push_back(new G4ModelCmdVerbose<G4TrajectoryGenericDrawer>(model, placement)); 89 90 90 return ModelAndMessengers(model, messengers) 91 return ModelAndMessengers(model, messengers); 91 } 92 } 92 93 93 // drawByCharge 94 // drawByCharge 94 G4TrajectoryDrawByChargeFactory::G4TrajectoryD 95 G4TrajectoryDrawByChargeFactory::G4TrajectoryDrawByChargeFactory() 95 :G4VModelFactory<G4VTrajectoryModel>("drawBy 96 :G4VModelFactory<G4VTrajectoryModel>("drawByCharge") 96 {} 97 {} 97 98 98 G4TrajectoryDrawByChargeFactory::~G4Trajectory 99 G4TrajectoryDrawByChargeFactory::~G4TrajectoryDrawByChargeFactory() {} 99 100 100 ModelAndMessengers 101 ModelAndMessengers 101 G4TrajectoryDrawByChargeFactory::Create(const 102 G4TrajectoryDrawByChargeFactory::Create(const G4String& placement, const G4String& name) 102 { 103 { 103 Messengers messengers; 104 Messengers messengers; 104 105 105 // Create default context and model 106 // Create default context and model 106 G4VisTrajContext* context = new G4VisTrajCon 107 G4VisTrajContext* context = new G4VisTrajContext("default"); 107 G4TrajectoryDrawByCharge* model = new G4Traj 108 G4TrajectoryDrawByCharge* model = new G4TrajectoryDrawByCharge(name, context); 108 109 109 // Create messengers for default context con 110 // Create messengers for default context configuration 110 G4ModelCommandUtils::AddContextMsgrs(context 111 G4ModelCommandUtils::AddContextMsgrs(context, messengers, placement+"/"+name); 111 112 112 // Create messengers for drawer 113 // Create messengers for drawer 113 messengers.push_back(new G4ModelCmdSetString 114 messengers.push_back(new G4ModelCmdSetStringColour<G4TrajectoryDrawByCharge>(model, placement)); 114 messengers.push_back(new G4ModelCmdVerbose<G 115 messengers.push_back(new G4ModelCmdVerbose<G4TrajectoryDrawByCharge>(model, placement)); 115 116 116 return ModelAndMessengers(model, messengers) 117 return ModelAndMessengers(model, messengers); 117 } 118 } 118 119 119 //Draw by particle ID 120 //Draw by particle ID 120 G4TrajectoryDrawByParticleIDFactory::G4Traject 121 G4TrajectoryDrawByParticleIDFactory::G4TrajectoryDrawByParticleIDFactory() 121 :G4VModelFactory<G4VTrajectoryModel>("drawBy 122 :G4VModelFactory<G4VTrajectoryModel>("drawByParticleID") 122 {} 123 {} 123 124 124 G4TrajectoryDrawByParticleIDFactory::~G4Trajec 125 G4TrajectoryDrawByParticleIDFactory::~G4TrajectoryDrawByParticleIDFactory() {} 125 126 126 ModelAndMessengers 127 ModelAndMessengers 127 G4TrajectoryDrawByParticleIDFactory::Create(co 128 G4TrajectoryDrawByParticleIDFactory::Create(const G4String& placement, const G4String& name) 128 { 129 { 129 Messengers messengers; 130 Messengers messengers; 130 131 131 // Create default context and model 132 // Create default context and model 132 G4VisTrajContext* context = new G4VisTrajCon 133 G4VisTrajContext* context = new G4VisTrajContext("default"); 133 G4TrajectoryDrawByParticleID* model = new G4 134 G4TrajectoryDrawByParticleID* model = new G4TrajectoryDrawByParticleID(name, context); 134 135 135 // Create messengers for default context con 136 // Create messengers for default context configuration 136 G4ModelCommandUtils::AddContextMsgrs(context 137 G4ModelCommandUtils::AddContextMsgrs(context, messengers, placement+"/"+name); 137 138 138 // Create messengers for drawer 139 // Create messengers for drawer 139 messengers.push_back(new G4ModelCmdSetString 140 messengers.push_back(new G4ModelCmdSetStringColour<G4TrajectoryDrawByParticleID>(model, placement)); 140 messengers.push_back(new G4ModelCmdSetDefaul 141 messengers.push_back(new G4ModelCmdSetDefaultColour<G4TrajectoryDrawByParticleID>(model, placement)); 141 messengers.push_back(new G4ModelCmdVerbose<G 142 messengers.push_back(new G4ModelCmdVerbose<G4TrajectoryDrawByParticleID>(model, placement)); 142 143 143 return ModelAndMessengers(model, messengers) 144 return ModelAndMessengers(model, messengers); 144 } 145 } 145 146 146 //Draw by origin volume 147 //Draw by origin volume 147 G4TrajectoryDrawByOriginVolumeFactory::G4Traje 148 G4TrajectoryDrawByOriginVolumeFactory::G4TrajectoryDrawByOriginVolumeFactory() 148 :G4VModelFactory<G4VTrajectoryModel>("drawByOr 149 :G4VModelFactory<G4VTrajectoryModel>("drawByOriginVolume") 149 {} 150 {} 150 151 151 G4TrajectoryDrawByOriginVolumeFactory::~G4Traj 152 G4TrajectoryDrawByOriginVolumeFactory::~G4TrajectoryDrawByOriginVolumeFactory() {} 152 153 153 ModelAndMessengers 154 ModelAndMessengers 154 G4TrajectoryDrawByOriginVolumeFactory::Create( 155 G4TrajectoryDrawByOriginVolumeFactory::Create(const G4String& placement, const G4String& name) 155 { 156 { 156 Messengers messengers; 157 Messengers messengers; 157 158 158 // Create default context and model 159 // Create default context and model 159 G4VisTrajContext* context = new G4VisTrajCon 160 G4VisTrajContext* context = new G4VisTrajContext("default"); 160 G4TrajectoryDrawByOriginVolume* model = new 161 G4TrajectoryDrawByOriginVolume* model = new G4TrajectoryDrawByOriginVolume(name, context); 161 162 162 // Create messengers for default context con 163 // Create messengers for default context configuration 163 G4ModelCommandUtils::AddContextMsgrs(context 164 G4ModelCommandUtils::AddContextMsgrs(context, messengers, placement+"/"+name); 164 165 165 // Create messengers for drawer 166 // Create messengers for drawer 166 messengers.push_back(new G4ModelCmdSetString 167 messengers.push_back(new G4ModelCmdSetStringColour<G4TrajectoryDrawByOriginVolume>(model, placement)); 167 messengers.push_back(new G4ModelCmdSetDefaul 168 messengers.push_back(new G4ModelCmdSetDefaultColour<G4TrajectoryDrawByOriginVolume>(model, placement)); 168 messengers.push_back(new G4ModelCmdVerbose<G 169 messengers.push_back(new G4ModelCmdVerbose<G4TrajectoryDrawByOriginVolume>(model, placement)); 169 170 170 return ModelAndMessengers(model, messengers) 171 return ModelAndMessengers(model, messengers); 171 } 172 } 172 173 173 //Draw by encountered volume 174 //Draw by encountered volume 174 G4TrajectoryDrawByEncounteredVolumeFactory::G4 175 G4TrajectoryDrawByEncounteredVolumeFactory::G4TrajectoryDrawByEncounteredVolumeFactory() 175 :G4VModelFactory<G4VTrajectoryModel>("drawByEn 176 :G4VModelFactory<G4VTrajectoryModel>("drawByEncounteredVolume") 176 {} 177 {} 177 178 178 G4TrajectoryDrawByEncounteredVolumeFactory::~G 179 G4TrajectoryDrawByEncounteredVolumeFactory::~G4TrajectoryDrawByEncounteredVolumeFactory() {} 179 180 180 ModelAndMessengers 181 ModelAndMessengers 181 G4TrajectoryDrawByEncounteredVolumeFactory::Cr 182 G4TrajectoryDrawByEncounteredVolumeFactory::Create(const G4String& placement, const G4String& name) 182 { 183 { 183 Messengers messengers; 184 Messengers messengers; 184 185 185 // Create default context and model 186 // Create default context and model 186 G4VisTrajContext* context = new G4VisTrajCon 187 G4VisTrajContext* context = new G4VisTrajContext("default"); 187 G4TrajectoryDrawByEncounteredVolume* model = 188 G4TrajectoryDrawByEncounteredVolume* model = new G4TrajectoryDrawByEncounteredVolume(name, context); 188 189 189 // Create messengers for default context con 190 // Create messengers for default context configuration 190 G4ModelCommandUtils::AddContextMsgrs(context 191 G4ModelCommandUtils::AddContextMsgrs(context, messengers, placement+"/"+name); 191 192 192 // Create messengers for drawer 193 // Create messengers for drawer 193 messengers.push_back(new G4ModelCmdSetString 194 messengers.push_back(new G4ModelCmdSetStringColour<G4TrajectoryDrawByEncounteredVolume>(model, placement)); 194 messengers.push_back(new G4ModelCmdSetDefaul 195 messengers.push_back(new G4ModelCmdSetDefaultColour<G4TrajectoryDrawByEncounteredVolume>(model, placement)); 195 messengers.push_back(new G4ModelCmdVerbose<G 196 messengers.push_back(new G4ModelCmdVerbose<G4TrajectoryDrawByEncounteredVolume>(model, placement)); 196 197 197 return ModelAndMessengers(model, messengers) 198 return ModelAndMessengers(model, messengers); 198 } 199 } 199 200