Hi, I was wondering how to record the values of estimated uncertainty on a history by history basis - similar to Walters 2002 **History by history statistical estimators in the BEAM code system**.

I am trying to make a primitive scorer class that would be able to accumulate the values of three scored quantities x, x_squared, and the variance using them both could be accessible in multithreaded mode. Such that after N primary histories the variance on the scored quantity x can be estimated.

I know that in the RE02 example the primitive scorers can deal with accumulating a value e.g. the quantity y in the event map G4THitsMap class.

```
EvtMap->add(index, y);
```

So I was wondering if there was a way to perhaps make the EvtMap quantity y a vector of {x and x_squared}. This may involve changing:

```
G4THitsMap<G4double>* EvtMap;
```

to something like:

```
G4THitsMap<std::vector<G4double>>* EvtMap;
```

or instead have a couple of G4THitsMaps (defined in the header file with

```
G4PS_MY_CUSTOM_SCORER : public G4VPrimitiveScorer
```

which change in ProcessHits and only returns EvtMap at the conclusion of the RunAction.cc,

```
G4THitsMap<G4double>* end_x_value = re02Run->GetHitsMap("HitsMapName")
```

So that in the header you find:

```
private:
G4THitsMap<G4double>* x_Map;
G4THitsMap<G4double>* x_square_Map;
G4THitsMap<G4double>* EvtMap;
```

I would greatly appreciate any advice you have on which type of implementation would work best when using multithreaded mode.