372 if(idxColumn<0 || idxColumn>=
fNSegment[projAxis])
374 G4cerr <<
"Warning : Column number " << idxColumn <<
" is out of scoring mesh [0," <<
fNSegment[projAxis]-1 <<
375 "]. Method ignored." <<
G4endl;
382 std::vector<std::vector<std::vector<double> > > cell;
383 std::vector<double> ephi;
384 for(
int phi = 0; phi <
fNSegment[
IPHI]; phi++) ephi.push_back(0.);
385 std::vector<std::vector<double> > ezphi;
386 for(
int z = 0;
z < fNSegment[
IZ];
z++) ezphi.push_back(ephi);
387 for(
int r = 0;
r < fNSegment[
IR];
r++) cell.push_back(ezphi);
389 std::vector<std::vector<double> > rzcell;
390 std::vector<double> ez;
391 for(
int z = 0;
z < fNSegment[
IZ];
z++) ez.push_back(0.);
392 for(
int r = 0;
r < fNSegment[
IR];
r++) rzcell.push_back(ez);
394 std::vector<std::vector<double> > zphicell;
395 for(
int z = 0;
z < fNSegment[
IZ];
z++) zphicell.push_back(ephi);
397 std::vector<std::vector<double> > rphicell;
398 for(
int r = 0;
r < fNSegment[
IR];
r++) rphicell.push_back(ephi);
402 std::map<G4int, G4double*>::iterator itr = map->begin();
403 for(; itr != map->end(); itr++) {
410 if(projAxis ==
IR && q[
IR] == idxColumn) {
413 if(projAxis ==
IZ && q[
IZ] == idxColumn) {
416 if(projAxis ==
IPHI && q[
IPHI] == idxColumn) {
423 G4double rzmax = 0., zphimax = 0., rphimax = 0.;
424 for(
int r = 0;
r < fNSegment[
IR];
r++) {
425 for(
int phi = 0; phi < fNSegment[
IPHI]; phi++) {
426 if(rphimin > rphicell[
r][phi]) rphimin = rphicell[
r][phi];
427 if(rphimax < rphicell[
r][phi]) rphimax = rphicell[
r][phi];
429 for(
int z = 0;
z < fNSegment[
IZ];
z++) {
430 if(rzmin > rzcell[
r][
z]) rzmin = rzcell[
r][
z];
431 if(rzmax < rzcell[
r][z]) rzmax = rzcell[
r][
z];
434 for(
int z = 0;
z < fNSegment[
IZ];
z++) {
435 for(
int phi = 0; phi < fNSegment[
IPHI]; phi++) {
436 if(zphimin > zphicell[
z][phi]) zphimin = zphicell[
z][phi];
437 if(zphimax < zphicell[
z][phi]) zphimax = zphicell[
z][phi];
456 fSize[0]/fNSegment[
IR]*(idxColumn+1)};
457 for(
int phi = 0; phi < fNSegment[
IPHI]; phi++) {
458 for(
int z = 0;
z < fNSegment[
IZ];
z++) {
462 G4Tubs cylinder(
"z-phi", rsize[0], rsize[1], zhalf,
463 angle, dphi*0.99999);
480 pVisManager->
Draw(*poly);
485 }
else if(projAxis ==
IZ) {
489 for(
int phi = 0; phi < fNSegment[
IPHI]; phi++) {
490 for(
int r = 0;
r < fNSegment[
IR];
r++) {
496 G4Tubs cylinder(
"r-phi", rs[0], rs[1], dz,
497 angle, dphi*0.99999);
514 pVisManager->
Draw(*poly);
519 }
else if(projAxis ==
IPHI) {
526 for(
int z = 0;
z < fNSegment[
IZ];
z++) {
527 for(
int r = 0;
r < fNSegment[
IR];
r++) {
530 G4Tubs cylinder(
"z-phi", rs[0], rs[1], zhalf,
549 pVisManager->
Draw(*poly);
virtual void Draw(const G4Circle &, const G4Transform3D &objectTransformation=G4Transform3D())=0
void SetColour(const G4Colour &)
void SetPSName(G4String &psName)
G4ThreeVector fCenterPosition
static G4VVisManager * GetConcreteInstance()
void SetPSUnit(G4String &unit)
void GetRZPhi(G4int index, G4int q[3]) const
static G4double angle[DIM]
virtual void GetMapColor(G4double val, G4double color[4])=0
void SetForceSolid(G4bool)
HepPolyhedron & Transform(const G4Transform3D &t)
void SetMinMax(G4double minVal, G4double maxVal)
G4bool IfFloatMinMax() const
G4GLOB_DLL std::ostream G4cout
G4RotationMatrix * fRotationMatrix
static const double twopi
virtual void BeginDraw(const G4Transform3D &objectTransformation=G4Transform3D())=0
void SetForceAuxEdgeVisible(G4bool)
void SetVisAttributes(const G4VisAttributes *)
static const double radian
G4GLOB_DLL std::ostream G4cerr
virtual void DrawColorChart(G4int nPoint=5)