// // ******************************************************************** // * License and Disclaimer * // * * // * The Geant4 software is copyright of the Copyright Holders of * // * the Geant4 Collaboration. It is provided under the terms and * // * conditions of the Geant4 Software License, included in the file * // * LICENSE and available at http://cern.ch/geant4/license . These * // * include a list of copyright holders. * // * * // * Neither the authors of this software system, nor their employing * // * institutes,nor the agencies providing financial support for this * // * work make any representation or warranty, express or implied, * // * regarding this software system or assume any liability for its * // * use. Please see the license in the file LICENSE and URL above * // * for the full disclaimer and the limitation of liability. * // * * // * This code implementation is the result of the scientific and * // * technical work of the GEANT4 collaboration. * // * By using, copying, modifying or distributing the software (or * // * any work based on the software) you agree to acknowledge its * // * use in resulting scientific publications, and indicate your * // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // // // $Id: G4TrajectoriesModel.cc,v 1.24 2006/11/14 14:42:08 allison Exp $ // GEANT4 tag $Name: $ // // // John Allison 26th August 1998. // Model which knows how to draw GEANT4 trajectories. #include "G4TrajectoriesModel.hh" #include "G4ModelingParameters.hh" #include "G4VGraphicsScene.hh" #include "G4Event.hh" #include "G4AttValue.hh" #include "G4AttDef.hh" #include "G4AttCheck.hh" G4TrajectoriesModel::G4TrajectoriesModel (G4int drawingMode): fDrawingMode(drawingMode), fpCurrentTrajectory(0) { fGlobalTag = "G4TrajectoriesModel for all trajectories."; fGlobalDescription = fGlobalTag; } G4TrajectoriesModel::~G4TrajectoriesModel () {} void G4TrajectoriesModelDebugG4AttValues(const G4VTrajectory*); void G4TrajectoriesModel::DescribeYourselfTo (G4VGraphicsScene& sceneHandler) { const G4Event* event = fpMP->GetEvent(); if (event) { G4TrajectoryContainer* TC = event -> GetTrajectoryContainer (); if (TC) { for (G4int iT = 0; iT < TC->entries(); iT++) { fpCurrentTrajectory = (*TC) [iT]; // Debug trajectory: // fpCurrentTrajectory->ShowTrajectory(); G4cout << G4endl; // Debug G4AttValues: // G4TrajectoriesModelDebugG4AttValues(fpCurrentTrajectory); if (fpCurrentTrajectory) sceneHandler.AddCompound (*fpCurrentTrajectory); } } } } // Debug material... #include "G4VTrajectoryPoint.hh" void G4TrajectoriesModelDebugG4AttValues(const G4VTrajectory* pTraj) { std::vector* attValues = pTraj->CreateAttValues(); if (attValues) { G4AttCheck attCheck(attValues, pTraj->GetAttDefs()); G4cout << "\nProvided G4Atts:\n" << attCheck; if (attCheck.Check()) G4cout << "Error" << G4endl; else { std::vector standardValues; std::map standardDefinitions; attCheck.Standard(&standardValues, &standardDefinitions); G4cout << "\nStandard G4Atts:\n" << G4AttCheck(&standardValues, &standardDefinitions); } delete attValues; } for (G4int i = 0; i < pTraj->GetPointEntries(); i++) { G4VTrajectoryPoint* aPoint = pTraj->GetPoint(i); std::vector* attValues = aPoint->CreateAttValues(); if (attValues) { G4AttCheck attCheck(attValues, aPoint->GetAttDefs()); G4cout << "\nProvided G4Atts:\n" << attCheck; if (attCheck.Check()) G4cout << "Error" << G4endl; else { std::vector standardValues; std::map standardDefinitions; attCheck.Standard(&standardValues, &standardDefinitions); G4cout << "\nStandard G4Atts:\n" << G4AttCheck(&standardValues, &standardDefinitions); } delete attValues; } } }