KaliVeda  1.13/01
Heavy-Ion Analysis Toolkit
List of all members | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
KVGANILDataReader Class Reference

Reads GANIL acquisition files (EBYEDAT)

Open and initialise a GANIL data file in EBYEDAT format for reading. If file cannot be opened, this object will be made a zombie. Do not use. To test if file is open, use IsOpen(). The basename of the file (excluding any path) can be obtained using GetName() The full pathname of the file can be obtained using GetTitle()

If the dataset corresponding to the data to be read is known i.e. if gDataSet has been defined and points to the correct dataset, this will allow to build the necessary multidetector object if it has not already been done, and to set the calibration parameters etc. as a function of the run number.

If not (i.e. if no information is available on detectors, calibrations, geometry, etc.), then a list of KVACQParam objects will be generated and connected ready for reading the data.

To fill a TTree with all data in the file, do the following:

KVGANILDataReader* runfile = new KVGANILDataReader("run1.dat");
TFile* file = new TFile("run1.root","recreate");
TTree* T = new TTree("Run1", "Raw data for Run1");
runfile->ConnectRawDataParameters();
runfile->SetUserTree(T);
while( runfile->GetNextEvent() ) ;
file->Write();
file->Close();

<br<blockquote>

See method SetUserTree() for more details. See below if you want to include a TTree containing scaler data in the file.

Scaler buffers management

By default, scaler buffers are ignored (GTGanilData::SetScalerBuffersManagement(GTGanilData::kSkipScaler)). This can be changed by changing the value of

KVGANILDataReader.ScalerBuffersManagement:       kSkipScaler


For possible values, see GTGanilData::SetScalerBuffersManagement().

You can also add a second TTree to the user tree generated above containing the values of all scaler buffers written in the data file. The TTree will be called 'Scalers'. You need to add "SCALERS" to the option given to method SetUserTree() (see below).

Definition at line 58 of file KVGANILDataReader.h.

Public Member Functions

 KVGANILDataReader ()
 
 KVGANILDataReader (const Char_t *, Option_t *)
 
virtual ~KVGANILDataReader ()
 Destructor. More...
 
void ConnectRawDataParameters ()
 
TString GetDataFormat () const
 
Int_t GetEventCount () const
 
const KVSeqCollectionGetFiredDataParameters () const
 
virtual GTGanilDataGetGanTapeInterface ()
 
virtual Bool_t GetNextEvent ()
 
Int_t GetNumberOfScalers () const
 
const KVSeqCollectionGetRawDataParameters () const
 
Int_t GetRunNumberReadFromFile () const
 
UInt_t GetScalerCount (Int_t index) const
 
Int_t GetScalerStatus (Int_t index) const
 
Bool_t HasScalerBuffer () const
 
void init ()
 default initialisations More...
 
void OpenFile (const Char_t *, Option_t *dataset)
 
virtual void SetUserTree (TTree *, Option_t *="arrays")
 
- Public Member Functions inherited from KVRawDataReader
 KVRawDataReader ()
 Default constructor. More...
 
virtual ~KVRawDataReader ()
 Destructor. More...
 
const KVNameValueListGetRunInfos () const
 
virtual Int_t GetStatus () const
 
- Public Member Functions inherited from KVBase
 KVBase ()
 Default constructor. More...
 
 KVBase (const Char_t *name, const Char_t *title="")
 Ctor for object with given name and type. More...
 
 KVBase (const KVBase &)
 copy ctor More...
 
virtual ~ KVBase ()
 
virtual void Clear (Option_t *opt="")
 Clear object properties : name, type/title, number, label. More...
 
virtual void Copy (TObject &) const
 Make a copy of this object. More...
 
const Char_tGetLabel () const
 
UInt_t GetNumber () const
 
UInt_t GetNumberOfObjects () const
 
virtual TObjectGetObject () const
 
virtual const Char_tGetType () const
 
Bool_t HasLabel () const
 
virtual Bool_t IsCalled (const Char_t *name) const
 
Bool_t IsLabelled (const Char_t *l) const
 
virtual Bool_t IsType (const Char_t *typ) const
 
virtual void List ()
 
KVBaseoperator= (const KVBase &)
 copy assignment operator More...
 
virtual void Print (Option_t *option="") const
 
Double_t ProtectedGetX (const TF1 *func, Double_t val, int &status, Double_t xmin=0.0, Double_t xmax=0.0) const
 
void SetLabel (const Char_t *lab)
 
virtual void SetNumber (UInt_t num)
 
virtual void SetType (const Char_t *str)
 
- Public Member Functions inherited from TNamed
 TNamed ()
 
 TNamed (const char *name, const char *title)
 
 TNamed (const TNamed &named)
 
 TNamed (const TString &name, const TString &title)
 
virtual ~TNamed ()
 
virtual TObjectClone (const char *newname="") const
 
virtual Int_t Compare (const TObject *obj) const
 
virtual void FillBuffer (char *&buffer)
 
virtual const char * GetName () const
 
virtual const char * GetTitle () const
 
virtual ULong_t Hash () const
 
virtual Bool_t IsSortable () const
 
virtual void ls (Option_t *option="") const
 
TNamedoperator= (const TNamed &rhs)
 
virtual void SetName (const char *name)
 
virtual void SetNameTitle (const char *name, const char *title)
 
virtual void SetTitle (const char *title="")
 
virtual Int_t Sizeof () const
 
- Public Member Functions inherited from TObject
 TObject ()
 
 TObject (const TObject &object)
 
virtual ~TObject ()
 
void AbstractMethod (const char *method) const
 
virtual void AppendPad (Option_t *option="")
 
virtual void Browse (TBrowser *b)
 
ULong_t CheckedHash ()
 
virtual const char * ClassName () const
 
virtual void Delete (Option_t *option="")
 
virtual Int_t DistancetoPrimitive (Int_t px, Int_t py)
 
virtual void Draw (Option_t *option="")
 
virtual void DrawClass () const
 
virtual TObjectDrawClone (Option_t *option="") const
 
virtual void Dump () const
 
virtual void Error (const char *method, const char *msgfmt,...) const
 
virtual void Execute (const char *method, const char *params, Int_t *error=0)
 
virtual void Execute (TMethod *method, TObjArray *params, Int_t *error=0)
 
virtual void ExecuteEvent (Int_t event, Int_t px, Int_t py)
 
virtual void Fatal (const char *method, const char *msgfmt,...) const
 
virtual TObjectFindObject (const char *name) const
 
virtual TObjectFindObject (const TObject *obj) const
 
virtual Option_tGetDrawOption () const
 
virtual const char * GetIconName () const
 
virtual char * GetObjectInfo (Int_t px, Int_t py) const
 
virtual Option_tGetOption () const
 
virtual UInt_t GetUniqueID () const
 
virtual Bool_t HandleTimer (TTimer *timer)
 
Bool_t HasInconsistentHash () const
 
virtual void Info (const char *method, const char *msgfmt,...) const
 
virtual Bool_t InheritsFrom (const char *classname) const
 
virtual Bool_t InheritsFrom (const TClass *cl) const
 
virtual void Inspect () const
 
void InvertBit (UInt_t f)
 
virtual Bool_t IsEqual (const TObject *obj) const
 
virtual Bool_t IsFolder () const
 
R__ALWAYS_INLINE Bool_t IsOnHeap () const
 
R__ALWAYS_INLINE Bool_t IsZombie () const
 
void MayNotUse (const char *method) const
 
virtual Bool_t Notify ()
 
void Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const
 
void operator delete (void *ptr)
 
void operator delete[] (void *ptr)
 
voidoperator new (size_t sz)
 
voidoperator new (size_t sz, void *vp)
 
voidoperator new[] (size_t sz)
 
voidoperator new[] (size_t sz, void *vp)
 
TObjectoperator= (const TObject &rhs)
 
virtual void Paint (Option_t *option="")
 
virtual void Pop ()
 
virtual Int_t Read (const char *name)
 
virtual void RecursiveRemove (TObject *obj)
 
void ResetBit (UInt_t f)
 
virtual void SaveAs (const char *filename="", Option_t *option="") const
 
virtual void SavePrimitive (std::ostream &out, Option_t *option="")
 
void SetBit (UInt_t f)
 
void SetBit (UInt_t f, Bool_t set)
 
virtual void SetDrawOption (Option_t *option="")
 
virtual void SetUniqueID (UInt_t uid)
 
virtual void SysError (const char *method, const char *msgfmt,...) const
 
R__ALWAYS_INLINE Bool_t TestBit (UInt_t f) const
 
Int_t TestBits (UInt_t f) const
 
virtual void UseCurrentStyle ()
 
virtual void Warning (const char *method, const char *msgfmt,...) const
 
virtual Int_t Write (const char *name=0, Int_t option=0, Int_t bufsize=0)
 
virtual Int_t Write (const char *name=0, Int_t option=0, Int_t bufsize=0) const
 

Static Public Member Functions

static KVGANILDataReaderOpen (const Char_t *filename, Option_t *opt="")
 
- Static Public Member Functions inherited from KVRawDataReader
static KVRawDataReaderOpenFile (const TString &type, const TString &filename)
 
- Static Public Member Functions inherited from KVBase
static Bool_t AreEqual (Double_t x, Double_t y, Long64_t maxdif=1)
 Comparison between two 64-bit floating-point values. More...
 
static void BackupFileWithDate (const Char_t *path)
 
static void CombineFiles (const Char_t *file1, const Char_t *file2, const Char_t *newfilename, Bool_t keep=kTRUE)
 
static void Deprecated (const char *method, const char *advice)
 
static Bool_t FindClassSourceFiles (const Char_t *class_name, KVString &imp_file, KVString &dec_file, const Char_t *dir_name=".")
 
static Bool_t FindExecutable (TString &exec, const Char_t *path="$(PATH)")
 
static const Char_tFindFile (const Char_t *search, TString &wfil)
 
static const Char_tGetBINDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetDATABASEFilePath ()
 
static const Char_tGetDATADIRFilePath (const Char_t *namefile="")
 
static Bool_t GetDataSetEnv (const Char_t *dataset, const Char_t *type, Bool_t defval)
 
static const Char_tGetDataSetEnv (const Char_t *dataset, const Char_t *type, const Char_t *defval)
 
static Double_t GetDataSetEnv (const Char_t *dataset, const Char_t *type, Double_t defval)
 
static const Char_tGetETCDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetExampleFilePath (const Char_t *library, const Char_t *namefile)
 Return full path to example file for given library (="KVMultiDet", "BackTrack", etc.) More...
 
static const Char_tGetINCDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetKVBuildDate ()
 Returns KaliVeda build date. More...
 
static const Char_tGetKVBuildDir ()
 Returns top-level directory used for build. More...
 
static const Char_tGetKVBuildTime ()
 Returns KaliVeda build time. More...
 
static const Char_tGetKVBuildType ()
 Returns KaliVeda build type (cmake build: Release, Debug, RelWithDebInfo, ...) More...
 
static const Char_tGetKVBuildUser ()
 Returns username of person who performed build. More...
 
static const Char_tGetKVSourceDir ()
 Returns top-level directory of source tree used for build. More...
 
static const Char_tGetKVVersion ()
 Returns KaliVeda version string. More...
 
static const Char_tGetLIBDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetListOfPlugins (const Char_t *base)
 
static const Char_tGetListOfPluginURIs (const Char_t *base)
 
static const Char_tGetPluginURI (const Char_t *base, const Char_t *plugin)
 
static void GetTempFileName (TString &base)
 
static const Char_tGetTEMPLATEDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetWORKDIRFilePath (const Char_t *namefile="")
 
static const Char_tgitBranch ()
 Returns git branch of sources. More...
 
static const Char_tgitCommit ()
 Returns last git commit of sources. More...
 
static void InitEnvironment ()
 
static bool is_gnuinstall ()
 
static Bool_t IsThisAPlugin (const TString &uri, TString &base)
 
static TPluginHandlerLoadPlugin (const Char_t *base, const Char_t *uri="0")
 
static Bool_t OpenContextMenu (const char *method, TObject *obj, const char *alt_method_name="")
 
static void OpenTempFile (TString &base, std::ofstream &fp)
 
static void PrintSplashScreen ()
 Prints welcome message and infos on version etc. More...
 
static Bool_t SearchAndOpenKVFile (const Char_t *name, KVSQLite::database &dbfile, const Char_t *kvsubdir="")
 
static Bool_t SearchAndOpenKVFile (const Char_t *name, std::ifstream &file, const Char_t *kvsubdir="", KVLockfile *locks=0)
 
static Bool_t SearchAndOpenKVFile (const Char_t *name, std::ofstream &file, const Char_t *kvsubdir="", KVLockfile *locks=0)
 
static Bool_t SearchKVFile (const Char_t *name, TString &fullpath, const Char_t *kvsubdir="")
 
static const Char_tWorkingDirectory ()
 
- Static Public Member Functions inherited from TObject
static Longptr_t GetDtorOnly ()
 
static Bool_t GetObjectStat ()
 
static void SetDtorOnly (void *obj)
 
static void SetObjectStat (Bool_t stat)
 

Protected Member Functions

void FillFiredParameterList ()
 clears and then fills list fFired with all fired acquisition parameters in event More...
 
GTGanilDataNewGanTapeInterface (Option_t *dataset)
 
- Protected Member Functions inherited from TObject
virtual void DoError (int level, const char *location, const char *fmt, va_list va) const
 
void MakeZombie ()
 

Protected Attributes

KVUniqueNameList fFired
 list of fired parameters in one event More...
 
GTGanilDatafGanilData
 object used to read GANIL acquisition file More...
 
KVUniqueNameList fParameters
 list of all data parameters contained in file More...
 
TTreefUserTree
 user TTree to fill with data More...
 
Bool_t make_arrays
 
Bool_t make_leaves
 
Int_t NbParFired
 
UInt_tParNum
 
UShort_tParVal
 
- Protected Attributes inherited from KVRawDataReader
KVNameValueList fRunInfos
 informations on run extracted from file More...
 
- Protected Attributes inherited from KVBase
TString fLabel
 label for the object More...
 
- Protected Attributes inherited from TNamed
TString fName
 
TString fTitle
 
- Protected Attributes inherited from TObject
 kOnlyPrepStep
 

Additional Inherited Members

- Public Types inherited from KVBase
enum  EKaliVedaBits { kIsKaliVedaObject = BIT(23) }
 
- Public Types inherited from TObject
enum  EDeprecatedStatusBits
 
enum  EStatusBits
 
- Public Attributes inherited from TObject
 kBitMask
 
 kCanDelete
 
 kCannotPick
 
 kHasUUID
 
 kInconsistent
 
 kInvalidObject
 
 kIsOnHeap
 
 kIsReferenced
 
 kMustCleanup
 
 kNoContextMenu
 
 kNotDeleted
 
 kObjInCanvas
 
 kOverwrite
 
 kSingleKey
 
 kWriteDelete
 
 kZombie
 

#include <KVGANILDataReader.h>

Inheritance diagram for KVGANILDataReader:
Inheritance graph
[legend]

Constructor & Destructor Documentation

◆ KVGANILDataReader() [1/2]

KVGANILDataReader::KVGANILDataReader ( )
inline

Definition at line 76 of file KVGANILDataReader.h.

◆ KVGANILDataReader() [2/2]

KVGANILDataReader::KVGANILDataReader ( const Char_t file,
Option_t dataset 
)

Open and initialise a GANIL data file for reading. By default, Scaler buffers are ignored. If file cannot be opened, this object will be made a zombie. Do not use. To test if file is open, use IsOpen(). The basename of the file (excluding any path) can be obtained using GetName() The full pathname of the file can be obtained using GetTitle()

Definition at line 26 of file KVGANILDataReader.cpp.

◆ ~KVGANILDataReader()

KVGANILDataReader::~KVGANILDataReader ( )
virtual

Destructor.

Definition at line 44 of file KVGANILDataReader.cpp.

Member Function Documentation

◆ ConnectRawDataParameters()

void KVGANILDataReader::ConnectRawDataParameters ( )

Generate all required KVEBYEDAT_ACQParam objects corresponding to parameters in file

fParameters is filled with a KVEBYEDAT_ACQParam for every acquisition parameter in the file.

To access the full list of data parameters in the file after this method has been called (i.e. after the file is opened), use GetRawDataParameters().

Definition at line 350 of file KVGANILDataReader.cpp.

◆ FillFiredParameterList()

void KVGANILDataReader::FillFiredParameterList ( )
protected

clears and then fills list fFired with all fired acquisition parameters in event

Definition at line 465 of file KVGANILDataReader.cpp.

◆ GetDataFormat()

TString KVGANILDataReader::GetDataFormat ( ) const
inlinevirtual

Implements KVRawDataReader.

Definition at line 111 of file KVGANILDataReader.h.

◆ GetEventCount()

Int_t KVGANILDataReader::GetEventCount ( ) const

Definition at line 517 of file KVGANILDataReader.cpp.

◆ GetFiredDataParameters()

const KVSeqCollection& KVGANILDataReader::GetFiredDataParameters ( ) const
inline

returns list of fired acquisition parameters of current event. this list is filled automatically when GetNextEvent() is called.

Definition at line 96 of file KVGANILDataReader.h.

◆ GetGanTapeInterface()

GTGanilData * KVGANILDataReader::GetGanTapeInterface ( )
virtual

Definition at line 440 of file KVGANILDataReader.cpp.

◆ GetNextEvent()

Bool_t KVGANILDataReader::GetNextEvent ( )
virtual

Read next event in raw data file. Returns false if no event found (end of file). The list of all fired acquisition parameters is filled, and can be retrieved with GetFiredDataParameters(). If SetUserTree(TTree*) has been called, the TTree is filled with the values of all parameters in this event.

Implements KVRawDataReader.

Definition at line 383 of file KVGANILDataReader.cpp.

◆ GetNumberOfScalers()

Int_t KVGANILDataReader::GetNumberOfScalers ( ) const

Definition at line 487 of file KVGANILDataReader.cpp.

◆ GetRawDataParameters()

const KVSeqCollection& KVGANILDataReader::GetRawDataParameters ( ) const
inline

Definition at line 91 of file KVGANILDataReader.h.

◆ GetRunNumberReadFromFile()

Int_t KVGANILDataReader::GetRunNumberReadFromFile ( ) const
virtual

Return run number of file being read. Only call when file has been successfully opened.

Implements KVRawDataReader.

Definition at line 528 of file KVGANILDataReader.cpp.

◆ GetScalerCount()

UInt_t KVGANILDataReader::GetScalerCount ( Int_t  index) const

Definition at line 497 of file KVGANILDataReader.cpp.

◆ GetScalerStatus()

Int_t KVGANILDataReader::GetScalerStatus ( Int_t  index) const

Definition at line 507 of file KVGANILDataReader.cpp.

◆ HasScalerBuffer()

Bool_t KVGANILDataReader::HasScalerBuffer ( ) const

Definition at line 478 of file KVGANILDataReader.cpp.

◆ init()

void KVGANILDataReader::init ( void  )

default initialisations

Definition at line 57 of file KVGANILDataReader.cpp.

◆ NewGanTapeInterface()

GTGanilData * KVGANILDataReader::NewGanTapeInterface ( Option_t dataset)
protected

Creates and returns new instance of class derived from GTGanilData used to read GANIL acquisition data Actual class is determined by Plugin.GTGanilData in environment files and name of dataset. check and load plugin library

Definition at line 419 of file KVGANILDataReader.cpp.

◆ Open()

KVGANILDataReader * KVGANILDataReader::Open ( const Char_t filename,
Option_t dataset = "" 
)
static

Static method, used by KVDataSet::Open The name of the dataset is passed in the option string

Definition at line 452 of file KVGANILDataReader.cpp.

◆ OpenFile()

void KVGANILDataReader::OpenFile ( const Char_t file,
Option_t dataset 
)

Open and initialise a GANIL data file for reading. By default, scaler buffers are ignored. This can be changed by changing the value of

KVGANILDataReader.ScalerBuffersManagement: kSkipScaler

If file cannot be opened, this object will be made a zombie. Do not use. To test if file is open, use IsOpen(). The basename of the file (excluding any path) can be obtained using GetName() The full pathname of the file can be obtained using GetTitle()

Definition at line 283 of file KVGANILDataReader.cpp.

◆ SetUserTree()

void KVGANILDataReader::SetUserTree ( TTree T,
Option_t opt = "arrays" 
)
virtual

To fill a TTree with the data in the current file, create a TTree: TFile* file = new TFile("run1.root","recreate"); TTree* T = new TTree("Run1", "Raw data for Run1"); and then call this method: SetUserTree(T) If you read all events of the file, the TTree will be automatically filled with data : while( runfile->GetNextEvent() ) ;

Two different TTree structures are available, depending on the option string:

opt = "arrays": [default]

The TTree will have the following structure:

Br 0 :NbParFired : NbParFired/I = number of fired parameters in event *............................................................................ Br 1 :ParNum : ParNum[NbParFired]/i = array of indices of fired parameters *............................................................................ *Br 2 :ParVal : ParVal[NbParFired]/s = array of values of fired parameters

This structure is the fastest to fill and produces the smallest file sizes. In order to be able to directly access the parameters as if option "leaves" were used (i.e. one branch/leaf for each parameter), we add two aliases for each parameter to the tree: PARNAME = value of parameter if present in event PARNAME_M = number of times parameter appears in event Assuming that each parameter only appears at most once in each event, i.e. PARNAME_M=0 or 1, then root[0] T->Draw("PARNAME", "PARNAME_M") will histogram the value of PARNAME for each event in which it is present. (if the selection condition "PARNAME_M" is not used, the histogram will also be filled with a 0 for each event in which PARNAME does not appear). N.B. the PARNAME alias is in fact the sum of the values of PARNAME in each event. If PARNAME_M>1 in some events, it is not the individual values but their sum which will be histogrammed in this case.

Thus, if the data file has parameters called "PAR_1" and "PAR_2", the following command will work

root[0] T->Draw("PAR_1:PAR_2", "PAR_1_M&&PAR_2_M", "col")

even though no branches "PAR_1" or "PAR_2" exist.

opt = "leaves":

The TTree will have a branch/leaf for each parameter. This option is slower and produces larger files.

If the option string contains both "arrays" and "leaves", then both structures will be used (in this case there is a high redundancy, as each parameter is stored twice).

The full list of parameters is stored in a TObjArray in the list returned by TTree::GetUserInfo(). Each parameter is represented by a TNamed object. In order to retrieve the name of the parameter with index 674 (e.g. taken from branch ParNum), do: TObjArray* parlist = (TObjArray*) T->GetUserInfo()->FindObject("ParameterList"); cout << "Par 674 name = " << (*parlist)[674]->GetName() << endl;

Automatic creation & filling of Scalers TTree

give an option string containing "scalers", i.e. "leaves,scalers", or "ARRAYS+SCALERS", etc. a TTree with name 'Scalers' will be created, all scaler buffers will be written in it.

Definition at line 138 of file KVGANILDataReader.cpp.

Member Data Documentation

◆ fFired

KVUniqueNameList KVGANILDataReader::fFired
protected

list of fired parameters in one event

Definition at line 69 of file KVGANILDataReader.h.

◆ fGanilData

GTGanilData* KVGANILDataReader::fGanilData
protected

object used to read GANIL acquisition file

Definition at line 60 of file KVGANILDataReader.h.

◆ fParameters

KVUniqueNameList KVGANILDataReader::fParameters
protected

list of all data parameters contained in file

Definition at line 68 of file KVGANILDataReader.h.

◆ fUserTree

TTree* KVGANILDataReader::fUserTree
protected

user TTree to fill with data

Definition at line 61 of file KVGANILDataReader.h.

◆ make_arrays

Bool_t KVGANILDataReader::make_arrays
protected

Definition at line 65 of file KVGANILDataReader.h.

◆ make_leaves

Bool_t KVGANILDataReader::make_leaves
protected

Definition at line 66 of file KVGANILDataReader.h.

◆ NbParFired

Int_t KVGANILDataReader::NbParFired
protected

Definition at line 62 of file KVGANILDataReader.h.

◆ ParNum

UInt_t* KVGANILDataReader::ParNum
protected

Definition at line 64 of file KVGANILDataReader.h.

◆ ParVal

UShort_t* KVGANILDataReader::ParVal
protected

Definition at line 63 of file KVGANILDataReader.h.


The documentation for this class was generated from the following files: