Geant4  10.02.p03
CompareMaterial Struct Reference

#include <G4DNAMolecularMaterial.hh>

Collaboration diagram for CompareMaterial:

Public Member Functions

bool operator() (const G4Material *mat1, const G4Material *mat2) const
 

Detailed Description

Definition at line 58 of file G4DNAMolecularMaterial.hh.

Member Function Documentation

◆ operator()()

bool CompareMaterial::operator() ( const G4Material mat1,
const G4Material mat2 
) const

Definition at line 42 of file G4DNAMolecularMaterial.cc.

44 {
45  if (mat1 == 0 && mat2 == 0) return false; //(mat1 == mat2)
46  if (mat1 == 0) return true; // mat1 < mat2
47  if (mat2 == 0) return false; //mat2 < mat1
48 
49  const G4Material* baseMat1 = mat1->GetBaseMaterial();
50  const G4Material* baseMat2 = mat2->GetBaseMaterial();
51 
52  if ((baseMat1 || baseMat2) == 0) // None of the materials derives from a base material
53  {
54  return mat1 < mat2;
55  }
56  else if (baseMat1 && baseMat2) // Both materials derive from a base material
57  {
58  return baseMat1 < baseMat2;
59  }
60 
61  else if (baseMat1 && (baseMat2 == 0)) // Only the material 1 derives from a base material
62  {
63  return baseMat1 < mat2;
64  }
65  // only case baseMat1==0 && baseMat2 remains
66  return mat1 < baseMat2;
67 }
const G4Material * GetBaseMaterial() const
Definition: G4Material.hh:233
Here is the call graph for this function:

The documentation for this struct was generated from the following files: