#include <G4DNAMolecularMaterial.hh>
Public Member Functions | |
bool | operator() (const G4Material *mat1, const G4Material *mat2) const |
Definition at line 39 of file G4DNAMolecularMaterial.hh.
bool CompareMaterial::operator() | ( | const G4Material * | mat1, | |
const G4Material * | mat2 | |||
) | const |
Definition at line 36 of file G4DNAMolecularMaterial.cc.
References G4Material::GetBaseMaterial().
00037 { 00038 if(mat1==0 && mat2==0) return false; //(mat1 == mat2) 00039 if(mat1==0) return true; // mat1 < mat2 00040 if(mat2==0) return false; //mat2 < mat1 00041 00042 const G4Material* baseMat1 = mat1->GetBaseMaterial(); 00043 const G4Material* baseMat2 = mat2->GetBaseMaterial(); 00044 00045 if((baseMat1 || baseMat2) == 0) // None of the materials derives from a base material 00046 { 00047 return mat1 < mat2; 00048 } 00049 else if(baseMat1 && baseMat2) // Both materials derive from a base material 00050 { 00051 return baseMat1 < baseMat2; 00052 } 00053 00054 else if(baseMat1 && (baseMat2 == 0)) // Only the material 1 derives from a base material 00055 { 00056 return baseMat1 < mat2; 00057 } 00058 // only case baseMat1==0 && baseMat2 remains 00059 return mat1 < baseMat2; 00060 }