void KVIVRawDataReconstructor::InitRun()
{
   // Creates new ROOT file with TTree for reconstructed/calibrated events.
   // By default this file will be written in the same data repository as the raw data file we are reading.
   // This can be changed by setting the environment variable(s):
   //
   //     Reconstruction.DataAnalysisTask.OutputRepository:     [name of repository]
   //     [name of dataset].Reconstruction.DataAnalysisTask.OutputRepository:         [name of repository]
   //
   // If no value is set for the current dataset (second variable), the value of the
   // first variable will be used. If neither is defined, the new file will be written in the same repository as
   // the raw file (if possible, i.e. if repository is not remote).

   // Create new KVIVReconEvent used to reconstruct & store events
   // The condition used to seed new reconstructed particles (see KVReconstructedEvent::AnalyseTelescopes)
   // is set by reading the value of the environment variables:
   //     Reconstruction.DataAnalysisTask.ParticleSeedCond:        [all/any]
   //     [name of dataset].Reconstruction.DataAnalysisTask.ParticleSeedCond:     [all/any]
   // If no value is set for the current dataset (second variable), the value of the
   // first variable will be used.

   if (!recev) recev = fIVevent = new KVIVReconEvent;
   KVINDRARawDataReconstructor::InitRun();

   //Remove the first branch 'INDRAReconEvent' of tree created by KVINDRARawDataReconstructor::InitRun()
   //and replace it by new branch 'IVReconEvent' with a KVIVReconEvent object
   TObjArray* branches = tree->GetListOfBranches();
   delete branches->RemoveAt(0);
   branches->Compress();
   KVEvent::MakeEventBranch(tree, "IVReconEvent", "KVIVReconEvent", &fIVevent);

   //Detector events for INDRA and VAMOS
   fINDRADetEv = new KVDetectorEvent;
   fVAMOSDetEv = new KVDetectorEvent;

   //initialise number of reconstructed VAMOS events
   fNbVAMOSrecon = 0;
}