////////////////////////////////////////////////////////////////////////
//
// Manage the input of Rootfile in SOC format. Takes a root file with a
// soc tree inside and provide the information to the analysis part of
// RAT.
//
// Author: P G Jones
- contact person
//
// REVISION HISTORY:
// 04 Oct 2012 : P.Jones - First revision
// 2014-04-26 : P. Jones - Refactor run knowledge.
// 2015-05-25 : D. Auty - Added code to allow part runs
//
////////////////////////////////////////////////////////////////////
#ifndef __RAT_InSOCProducer__
#define __RAT_InSOCProducer__
#include
#include
#include
class G4UIcmdWithAString;
class G4UIcommand;
namespace RAT
{
namespace DS
{
class Run;
}
class InSOCProducer : public Producer
{
public:
// Construct, set the ProcBlock to NULL
InSOCProducer();
// Construct with a ProcBlock
//
// block: block to use
InSOCProducer( ProcBlock* block );
// Override the G4UImessenger (from Producer) set method
//
// command: command to set
// newValue: new value to set
void SetNewValue( G4UIcommand* command, G4String newValue );
// Override the G4UImessenger (from Producer) get method
//
// command: command to query
// Returns the command value
G4String GetCurrentValue( G4UIcommand* command );
protected:
// Load the file into the TChains
//
// fileName: file to load and read
void LoadFile( const std::string& fileName );
// Read the events from the TChains
void ReadEntries();
// Initialise the producer
void Init();
TChain fSOCTree; // The DS::SOC TTree
TChain fRunTree; // The DS::Run TTree
G4UIcmdWithAString* fLoadCmd; // Command to load a defined file
G4UIcommand* fLoadDefaultCmd; // Command to load a file
G4UIcommand* fReadCmd; // Command to Start reading
};
} // namespace RAT
#endif