diff --git a/macro/geometry/total_mass.C b/macro/geometry/total_mass.C
index a669bee088c16170d244439c9b716f6597b3d582..b4d224700ded6ec6a5adf210e66d7fbc4f69b4de 100644
--- a/macro/geometry/total_mass.C
+++ b/macro/geometry/total_mass.C
@@ -2,12 +2,14 @@
    SPDX-License-Identifier: GPL-3.0-only
    Authors: Eoin Clerkin [committer] */
 
-#include <time.h>
-#include <stdlib.h>
 #include "TGeoManager.h"
 #include "TGeoNavigator.h"
+
+#include <time.h>
+
 #include <regex.h>
 #include <stdio.h>
+#include <stdlib.h>
 #include <string.h>
 
 TGeoManager* gman;
@@ -20,174 +22,173 @@ double tmp_den;
 #define SAMPLING 100000000
 
 typedef struct node_list {
-	char* NAME=(char *) calloc(200,sizeof(char)); // zero 200 characters
-	long int COUNT=0;
-	int MATERIAL_ID = 0;	// Given by the TGeoManager
+  char* NAME      = (char*) calloc(200, sizeof(char));  // zero 200 characters
+  long int COUNT  = 0;
+  int MATERIAL_ID = 0;  // Given by the TGeoManager
 } node_list;
 
 // find nodal number or return next free.
-int find_node(char* strname, node_list* NODE_COUNT){
-	int j=0;
-
-	while(true){
-	//printf("%d COMPARE %s to %s is  %d\n", j, NODE_COUNT[j].NAME, strname, strcmp(NODE_COUNT[j].NAME,strname));
-	if(!*NODE_COUNT[j].NAME)goto not_allocated;
-	if(!strcmp(NODE_COUNT[j].NAME,strname)){
-		return j; // If not yet allocated.
-	};
-	j++;
-	if(j==NODE_MAX)fprintf(stderr,"WARNING: NODE_MAX EXCEEDED\n");
-	};
+int find_node(char* strname, node_list* NODE_COUNT)
+{
+  int j = 0;
+
+  while (true) {
+    //printf("%d COMPARE %s to %s is  %d\n", j, NODE_COUNT[j].NAME, strname, strcmp(NODE_COUNT[j].NAME,strname));
+    if (!*NODE_COUNT[j].NAME) goto not_allocated;
+    if (!strcmp(NODE_COUNT[j].NAME, strname)) {
+      return j;  // If not yet allocated.
+    };
+    j++;
+    if (j == NODE_MAX) fprintf(stderr, "WARNING: NODE_MAX EXCEEDED\n");
+  };
 not_allocated:
-return j;
+  return j;
 }
-void total_mass(
-int output=2
-){
-	// output as output controll variable
-	// output = 0 debuging
-	// output = 1 (default) list out the global materials
-	// output = 2 total list of individual nodes
+void total_mass(int output = 2)
+{
+  // output as output controll variable
+  // output = 0 debuging
+  // output = 1 (default) list out the global materials
+  // output = 2 total list of individual nodes
 
-	int NUM=SAMPLING;
+  int NUM = SAMPLING;
 
-	node_list NODE_COUNT[NODE_MAX];
-        strcpy(NODE_COUNT[0].NAME, "/cave_1");
+  node_list NODE_COUNT[NODE_MAX];
+  strcpy(NODE_COUNT[0].NAME, "/cave_1");
 
-	char strname[200];
-	char NODE_PATH[200];
+  char strname[200];
+  char NODE_PATH[200];
 
-	char ARRAY_PATH[20][40];
+  char ARRAY_PATH[20][40];
 
-	double TOTAL_MASS=0, SUM_DENSITY=0;
+  double TOTAL_MASS = 0, SUM_DENSITY = 0;
 
-	TFile file("test.geo.root","READ");
-	file.GetListOfKeys()->Print();
-	gman = (TGeoManager*) file.Get("FAIRGeom");
-	if (gman == nullptr) gman = gGeoManager;
+  TFile file("test.geo.root", "READ");
+  file.GetListOfKeys()->Print();
+  gman = (TGeoManager*) file.Get("FAIRGeom");
+  if (gman == nullptr) gman = gGeoManager;
 
-	TGeoNavigator *navig =  gman->AddNavigator();
+  TGeoNavigator* navig = gman->AddNavigator();
 
-	int i=0,j=0,k=0;
+  int i = 0, j = 0, k = 0;
 
-	int NUMBER_OF_MATERIALS=gman->GetListOfMaterials()->Last()->GetUniqueID();
-	long int MATERIAL_COUNT[100];
+  int NUMBER_OF_MATERIALS = gman->GetListOfMaterials()->Last()->GetUniqueID();
+  long int MATERIAL_COUNT[100];
 
-	for(i=0;i<NUMBER_OF_MATERIALS;i++)MATERIAL_COUNT[i]=0; 
+  for (i = 0; i < NUMBER_OF_MATERIALS; i++)
+    MATERIAL_COUNT[i] = 0;
 
-	srand(time(NULL));
-	Double_t x, y, z;
+  srand(time(NULL));
+  Double_t x, y, z;
 
-	// Full jpsi volume
-/*	double XMIN=-700, XMAX=700;
+  // Full jpsi volume
+  /*	double XMIN=-700, XMAX=700;
 	double YMIN=-570, YMAX=540;
 	double ZMIN=-100, ZMAX=1882;*/
-	//double ZMIN=-150, ZMAX=150;
-
-	// rich_v22a test
-	double XMIN=-265, XMAX=265;
-	double YMIN=-251, YMAX=251;
-	double ZMIN=110, ZMAX=335;
-
-	if(output==2)printf("RANDMAX IS %d\nResolution in X, Y, Z is %e %e %e\n", RAND_MAX, (XMAX-XMIN)/RAND_MAX, (YMAX-YMIN)/RAND_MAX, (ZMAX-ZMIN)/RAND_MAX);
-	double TOTAL_VOLUME = (XMAX-XMIN)*(YMAX-YMIN)*(ZMAX-ZMIN); // in cm3       for m3  times 10^-6 
-	if(output==2)printf("Total volume is %f m3 \n", (double) TOTAL_VOLUME/1000000 ); 
-
-	// I prevent rastoring bias when number of points is very large.
-	// My range will be modified by the random resolution to avoid fixing the single grid.
-	XMIN-=-1.0*( (rand()/RAND_MAX)*((XMAX-XMIN)/RAND_MAX) );
-	XMAX+=( (rand()/RAND_MAX)*((XMAX-XMIN)/RAND_MAX) );
-
-	YMIN-=-1.0*( (rand()/RAND_MAX)*((YMAX-YMIN)/RAND_MAX) );
-	YMAX+=( (rand()/RAND_MAX)*((YMAX-YMIN)/RAND_MAX) );
-
-	ZMIN-=-1.0*( (rand()/RAND_MAX)*((ZMAX-ZMIN)/RAND_MAX) );
-	ZMAX+=( (rand()/RAND_MAX)*((ZMAX-ZMIN)/RAND_MAX) );
-
-	// Position of STS  Tz=59.5
-	// double XMIN=-162, XMAX=162;
-	// double YMIN=-72, YMAX=72;
-	// double ZMIN=-102+59.5, ZMAX=20+59.5;
-
-	TOTAL_VOLUME = (XMAX-XMIN)*(YMAX-YMIN)*(ZMAX-ZMIN); // in cm3       for m3  times 10^-6 
-	if(output==2)printf("Modified total volume is %f m3 \n", (double) TOTAL_VOLUME/1000000 ); 
-	
-	for(i=1; i<=NUM; i++){
-
-        	x = (double) rand() / RAND_MAX * (XMAX-XMIN) + XMIN;
-        	y = (double) rand() / RAND_MAX * (YMAX-YMIN) + YMIN;
-        	z = (double) rand() / RAND_MAX * (ZMAX-ZMIN) + ZMIN;
-
-        	tmp_node = navig->FindNode(x,y,z);
-        	tmp_med = tmp_node->GetMedium();
-	        tmp_mat = tmp_med->GetMaterial();
-	        tmp_den = tmp_mat->GetDensity();
-
-		SUM_DENSITY += tmp_den;
-
-		MATERIAL_COUNT[gman->GetMaterialIndex(tmp_mat->GetName())]++;
-
-        j=0;
-        while(navig->GetMother(j)!=nullptr){
-                strcpy(ARRAY_PATH[j],(navig->GetMother(j)->GetName()));
-                j++;
-        };
-
-	strname[0]='\0';
-	while(j-->0){
-		strcat(strname,"/");
-		strcat(strname,ARRAY_PATH[j]);
-		ARRAY_PATH[j][0]='\0'; // zeroing
-	};
-
-//	printf("STRING WROTE: %s \n", strname);
-
-	j=find_node(strname, NODE_COUNT);
-	NODE_COUNT[j].COUNT++;
-	strcpy(NODE_COUNT[j].NAME,strname);
-
-	NODE_COUNT[j].MATERIAL_ID=gman->GetMaterialIndex(tmp_mat->GetName());
-
-	j=0;
-	};
-
-	// Ratio of materials 	         	    MATERIAL_COUNT/TOTAL_COUNT
-	// VOLUME OF MATERIAL 			    [ABOVE]*TOTAL_VOLUME
-	// TOTAL MASS OF MATERIAL		    [ABOVE]*DENSITY_OF_MATERIAL
-
-	long int TOTAL_COUNT=NUM;
-	double VC_RATIO  = (double) TOTAL_VOLUME/TOTAL_COUNT;
-
-		printf("TOTAL COUNT: %ld \n", TOTAL_COUNT);
-		printf("\n\n");
-		printf("\nCOUNT OF MATERIALS: ");
-		for(i=0;i<NUMBER_OF_MATERIALS;i++)printf("%f%% ", (double) 100*MATERIAL_COUNT[i]/TOTAL_COUNT );
-		printf("\n");
-		printf("\n\n");
-	        for(i=0;i<NUMBER_OF_MATERIALS;i++)printf("VOLUME OF %s IS %f \n", 
-		gman->GetMaterial(i)->GetName(),
-		(double) TOTAL_VOLUME*MATERIAL_COUNT[i]/TOTAL_COUNT);
-		printf("\n\n");
-		for(i=0;i<NUMBER_OF_MATERIALS;i++)if(output==2)printf("MASS OF %s IS %f kg\n", 
-		gman->GetMaterial(i)->GetName(), 
-		0.001*(gman->GetMaterial(i)->GetDensity())*TOTAL_VOLUME*MATERIAL_COUNT[i]/TOTAL_COUNT
-		);
-
-
-		printf("NODE \t COUNT \t VOLUME \t MATERIAL \t MASS \n");
-		printf("---------- \t ---------- \t ---------- \t ---------- \t ---------- \n");
-	
-		for(int k=0; k<5000; k++){
-			if(NODE_COUNT[k].COUNT==0)break;
-			printf(
-			"%s \t %ld \t %f \t %s \t %f \n", 
-			NODE_COUNT[k].NAME, 
-			NODE_COUNT[k].COUNT, 
-			(float) NODE_COUNT[k].COUNT*VC_RATIO, 
-			gman->GetMaterial(NODE_COUNT[k].MATERIAL_ID)->GetName(),
-			(float) NODE_COUNT[k].COUNT*VC_RATIO*(gman->GetMaterial(NODE_COUNT[k].MATERIAL_ID)->GetDensity())
-			);
-			}
-
-return;
+  //double ZMIN=-150, ZMAX=150;
+
+  // rich_v22a test
+  double XMIN = -265, XMAX = 265;
+  double YMIN = -251, YMAX = 251;
+  double ZMIN = 110, ZMAX = 335;
+
+  if (output == 2)
+    printf("RANDMAX IS %d\nResolution in X, Y, Z is %e %e %e\n", RAND_MAX, (XMAX - XMIN) / RAND_MAX,
+           (YMAX - YMIN) / RAND_MAX, (ZMAX - ZMIN) / RAND_MAX);
+  double TOTAL_VOLUME = (XMAX - XMIN) * (YMAX - YMIN) * (ZMAX - ZMIN);  // in cm3       for m3  times 10^-6
+  if (output == 2) printf("Total volume is %f m3 \n", (double) TOTAL_VOLUME / 1000000);
+
+  // I prevent rastoring bias when number of points is very large.
+  // My range will be modified by the random resolution to avoid fixing the single grid.
+  XMIN -= -1.0 * ((rand() / RAND_MAX) * ((XMAX - XMIN) / RAND_MAX));
+  XMAX += ((rand() / RAND_MAX) * ((XMAX - XMIN) / RAND_MAX));
+
+  YMIN -= -1.0 * ((rand() / RAND_MAX) * ((YMAX - YMIN) / RAND_MAX));
+  YMAX += ((rand() / RAND_MAX) * ((YMAX - YMIN) / RAND_MAX));
+
+  ZMIN -= -1.0 * ((rand() / RAND_MAX) * ((ZMAX - ZMIN) / RAND_MAX));
+  ZMAX += ((rand() / RAND_MAX) * ((ZMAX - ZMIN) / RAND_MAX));
+
+  // Position of STS  Tz=59.5
+  // double XMIN=-162, XMAX=162;
+  // double YMIN=-72, YMAX=72;
+  // double ZMIN=-102+59.5, ZMAX=20+59.5;
+
+  TOTAL_VOLUME = (XMAX - XMIN) * (YMAX - YMIN) * (ZMAX - ZMIN);  // in cm3       for m3  times 10^-6
+  if (output == 2) printf("Modified total volume is %f m3 \n", (double) TOTAL_VOLUME / 1000000);
+
+  for (i = 1; i <= NUM; i++) {
+
+    x = (double) rand() / RAND_MAX * (XMAX - XMIN) + XMIN;
+    y = (double) rand() / RAND_MAX * (YMAX - YMIN) + YMIN;
+    z = (double) rand() / RAND_MAX * (ZMAX - ZMIN) + ZMIN;
+
+    tmp_node = navig->FindNode(x, y, z);
+    tmp_med  = tmp_node->GetMedium();
+    tmp_mat  = tmp_med->GetMaterial();
+    tmp_den  = tmp_mat->GetDensity();
+
+    SUM_DENSITY += tmp_den;
+
+    MATERIAL_COUNT[gman->GetMaterialIndex(tmp_mat->GetName())]++;
+
+    j = 0;
+    while (navig->GetMother(j) != nullptr) {
+      strcpy(ARRAY_PATH[j], (navig->GetMother(j)->GetName()));
+      j++;
+    };
+
+    strname[0] = '\0';
+    while (j-- > 0) {
+      strcat(strname, "/");
+      strcat(strname, ARRAY_PATH[j]);
+      ARRAY_PATH[j][0] = '\0';  // zeroing
+    };
+
+    //	printf("STRING WROTE: %s \n", strname);
+
+    j = find_node(strname, NODE_COUNT);
+    NODE_COUNT[j].COUNT++;
+    strcpy(NODE_COUNT[j].NAME, strname);
+
+    NODE_COUNT[j].MATERIAL_ID = gman->GetMaterialIndex(tmp_mat->GetName());
+
+    j = 0;
+  };
+
+  // Ratio of materials 	         	    MATERIAL_COUNT/TOTAL_COUNT
+  // VOLUME OF MATERIAL 			    [ABOVE]*TOTAL_VOLUME
+  // TOTAL MASS OF MATERIAL		    [ABOVE]*DENSITY_OF_MATERIAL
+
+  long int TOTAL_COUNT = NUM;
+  double VC_RATIO      = (double) TOTAL_VOLUME / TOTAL_COUNT;
+
+  printf("TOTAL COUNT: %ld \n", TOTAL_COUNT);
+  printf("\n\n");
+  printf("\nCOUNT OF MATERIALS: ");
+  for (i = 0; i < NUMBER_OF_MATERIALS; i++)
+    printf("%f%% ", (double) 100 * MATERIAL_COUNT[i] / TOTAL_COUNT);
+  printf("\n");
+  printf("\n\n");
+  for (i = 0; i < NUMBER_OF_MATERIALS; i++)
+    printf("VOLUME OF %s IS %f \n", gman->GetMaterial(i)->GetName(),
+           (double) TOTAL_VOLUME * MATERIAL_COUNT[i] / TOTAL_COUNT);
+  printf("\n\n");
+  for (i = 0; i < NUMBER_OF_MATERIALS; i++)
+    if (output == 2)
+      printf("MASS OF %s IS %f kg\n", gman->GetMaterial(i)->GetName(),
+             0.001 * (gman->GetMaterial(i)->GetDensity()) * TOTAL_VOLUME * MATERIAL_COUNT[i] / TOTAL_COUNT);
+
+
+  printf("NODE \t COUNT \t VOLUME \t MATERIAL \t MASS \n");
+  printf("---------- \t ---------- \t ---------- \t ---------- \t ---------- \n");
+
+  for (int k = 0; k < 5000; k++) {
+    if (NODE_COUNT[k].COUNT == 0) break;
+    printf("%s \t %ld \t %f \t %s \t %f \n", NODE_COUNT[k].NAME, NODE_COUNT[k].COUNT,
+           (float) NODE_COUNT[k].COUNT * VC_RATIO, gman->GetMaterial(NODE_COUNT[k].MATERIAL_ID)->GetName(),
+           (float) NODE_COUNT[k].COUNT * VC_RATIO * (gman->GetMaterial(NODE_COUNT[k].MATERIAL_ID)->GetDensity()));
+  }
+
+  return;
 }