![]() |
KaliVeda
Toolkit for HIC analysis
|
Base class to convert output from different simulation codes into TTrees containing KVSimEvent event objects.
Created by KVClassFactory on Wed Jun 30 17:45:01 2010 Author: bonnet
Specific classes derived from this one can be used to read a variety of simulation output files and transform them into ROOT files containing a TTree with KVSimEvent objects in a branch called 'Simulated_events'.
To see the list of available classes/models:
Usually for each model there is a class [XXX] and a class [XXX]_asym. The first one is for reading "primary" events (e.g. before secondary decay), the second one is for converting "asymptotic" events (e.g. just before detection).
To generate an instance of the appropriate reader object, use the static method KVSimReader::MakeReader("[model name]_[asym]") (or simply instantiate directly the appropriate class).
To convert asymptotic events from an MMM simulation in file "mmm.out", do:
To convert primary events (before secondary decay) from an ELIE simulation in file "elie.out", do:
For large output files, you can limit the number of events in each of the ROOT files generated by KVSimReader:
This will produce as many files as necessary with the same 'stub' filename plus an index.
The methods ReadFileHeader(), ReadEventHeader(), ReadEvent() all return a bool and if any of them returns a false boolean value, reading of the file will stop.
In order to implement a functioning reader as a daughter class, only one method must be overridden: ReadEvent(). This may use a user-defined implementation overriding the ReadNucleus() method (which is not implemented by default).
The other methods which may be overridden to customize behaviour are:
See the documentation for each method for implementation details. Use the methods of base class KVFileReader where needed in these methods to read the data in the input file.
ROOT files and TTrees will be generated with names/titles according to the values which can be set with:
In order to be effective, these must be called before the first output file is initialized by InitializeOutputFileAndTree(), so at the latest in a user-defined implementation of ReadFileHeader() (see schema above).
Definition at line 116 of file KVSimReader.h.
#include <KVSimReader.h>

Public Member Functions | |
| KVSimReader () | |
| void | ConvertAndSaveEventsInFile (KVString filename) |
| Read events, convert and save in ROOT file(s) More... | |
| void | ConvertEventsInFile (KVString filename) |
| int | GetEventNumber () const |
| KVString | GetTreeTitle () const |
| virtual bool | NeedToIterateReadEvent () |
| virtual void | NotifyChangeOfOutputFile () |
| virtual Bool_t | ReadEvent (KVSimEvent *evt)=0 |
| virtual Bool_t | ReadEventHeader (KVSimEvent *) |
| virtual Bool_t | ReadFileHeader () |
| virtual Bool_t | ReadNucleus (KVSimNucleus *) |
| void | SetBranchName (KVString n) |
| void | SetFileIndex (Int_t i) |
| void | SetMaxNumEventsPerOutputFile (int nev) |
| void | SetMultiFiles (Bool_t on=kTRUE) |
| void | SetOutputDirectory (const TString &where) |
| void | SetROOTFileName (KVString name) |
| void | SetTreeName (KVString n) |
| void | SetTreeTitle (KVString n) |
Public Member Functions inherited from KVFileReader | |
| KVFileReader (const KVString &comments="") | |
| void | Clear (Option_t *="") override |
| void | CloseFile () |
| KVString | GetCurrentLine () |
| Double_t | GetDoubleReadPar (Int_t pos) const |
| KVString | GetFileName () |
| Int_t | GetIntReadPar (Int_t pos) const |
| Int_t | GetNlineRead () const |
| Int_t | GetNparRead () const |
| KVString | GetReadPar (Int_t pos) const |
| KVString | GetReadStatus (ReadStatus s) |
| Bool_t | IsOK () |
| Bool_t | OpenFileToRead (const KVString &filename) |
| Bool_t | PreparForReadingAgain () |
| ReadStatus | ReadLine (const KVString &pattern="") |
| ReadStatus | ReadLineAndAdd (const KVString &pattern="") |
| ReadStatus | ReadLineAndCheck (Int_t nexpect, const KVString &pattern) |
| ReadStatus | ReuseLineAndCheck (Int_t nexpect, const KVString &pattern) |
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... | |
| void | Copy (TObject &) const override |
| Make a copy of this object. More... | |
| const Char_t * | GetLabel () const |
| UInt_t | GetNumber () const |
| virtual TObject * | GetObject () const |
| virtual const Char_t * | GetType () const |
| Bool_t | HasLabel () const |
| Bool_t | IsCalled (const Char_t *name, bool case_insensitive=false) const |
| Bool_t | IsLabelled (const Char_t *l, bool case_insensitive=false) const |
| Bool_t | IsType (const Char_t *typ, bool case_insensitive=false) const |
| virtual void | List () |
| KVBase & | operator= (const KVBase &) |
| copy assignment operator More... | |
| void | Print (Option_t *option="") const override |
| 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 () |
| TObject * | Clone (const char *newname="") const override |
| Int_t | Compare (const TObject *obj) const override |
| virtual void | FillBuffer (char *&buffer) |
| const char * | GetName () const override |
| const char * | GetTitle () const override |
| ULong_t | Hash () const override |
| TClass * | IsA () const override |
| Bool_t | IsSortable () const override |
| void | ls (Option_t *option="") const override |
| TNamed & | operator= (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 |
| void | Streamer (TBuffer &) override |
| void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
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 TObject * | DrawClone (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=nullptr) |
| virtual void | Execute (TMethod *method, TObjArray *params, Int_t *error=nullptr) |
| virtual void | ExecuteEvent (Int_t event, Int_t px, Int_t py) |
| virtual void | Fatal (const char *method, const char *msgfmt,...) const |
| virtual TObject * | FindObject (const char *name) const |
| virtual TObject * | FindObject (const TObject *obj) const |
| virtual Option_t * | GetDrawOption () const |
| virtual const char * | GetIconName () const |
| virtual char * | GetObjectInfo (Int_t px, Int_t py) const |
| virtual Option_t * | GetOption () 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) |
| Bool_t | IsDestructed () const |
| 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, void *vp) |
| void | operator delete[] (void *ptr) |
| void | operator delete[] (void *ptr, void *vp) |
| void * | operator new (size_t sz) |
| void * | operator new (size_t sz, void *vp) |
| void * | operator new[] (size_t sz) |
| void * | operator new[] (size_t sz, void *vp) |
| TObject & | operator= (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) |
| void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
| 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=nullptr, Int_t option=0, Int_t bufsize=0) |
| virtual Int_t | Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0) const |
Static Public Member Functions | |
| static KVSimReader * | MakeSimReader (const char *model_uri) |
| Returns an instance of a child class specific to given model. More... | |
Static Public Member Functions inherited from KVBase | |
| static std::optional< TString > | AbsoluteUnixPath (const TString &) |
| 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 KVString &class_name, KVString &imp_file, KVString &dec_file, const KVString &dir_name=".") |
| static Bool_t | FindExecutable (TString &exec, const Char_t *path="$(PATH)") |
| static const Char_t * | FindFile (const Char_t *search, TString &wfil) |
| static const Char_t * | GetBINDIRFilePath (const Char_t *namefile="") |
| static const Char_t * | GetDATABASEFilePath () |
| static const Char_t * | GetDATADIRFilePath (const Char_t *namefile="") |
| template<typename ValType > | |
| static ValType | GetDataSetEnv (const KVString &dataset, const KVString &type, const ValType &defval={}) |
| static const Char_t * | GetETCDIRFilePath (const Char_t *namefile="") |
| static const Char_t * | GetExampleFilePath (const Char_t *library, const Char_t *namefile) |
| Return full path to example file for given library (="KVMultiDet", "BackTrack", etc.) More... | |
| static const Char_t * | GetINCDIRFilePath (const Char_t *namefile="") |
| static const Char_t * | GetKVBuildDate () |
| Returns KaliVeda build date. More... | |
| static const Char_t * | GetKVBuildDir () |
| Returns top-level directory used for build. More... | |
| static const Char_t * | GetKVBuildTime () |
| Returns KaliVeda build time. More... | |
| static const Char_t * | GetKVBuildType () |
| Returns KaliVeda build type (cmake build: Release, Debug, RelWithDebInfo, ...) More... | |
| static const Char_t * | GetKVBuildUser () |
| Returns username of person who performed build. More... | |
| static int | GetKVMajorVersion () |
| static int | GetKVMinorVersion () |
| static int | GetKVPatchVersion () |
| static const Char_t * | GetKVSourceDir () |
| Returns top-level directory of source tree used for build. More... | |
| static const Char_t * | GetKVVersion () |
| Returns KaliVeda version string. More... | |
| static const Char_t * | GetLIBDIRFilePath (const Char_t *namefile="") |
| static const Char_t * | GetListOfPlugins (const Char_t *base) |
| static const Char_t * | GetListOfPluginURIs (const Char_t *base) |
| static const Char_t * | GetPluginURI (const Char_t *base, const Char_t *plugin) |
| static void | GetTempFileName (TString &base) |
| static const Char_t * | GetTEMPLATEDIRFilePath (const Char_t *namefile="") |
| static const Char_t * | GetWORKDIRFilePath (const Char_t *namefile="") |
| static const Char_t * | gitBranch () |
| Returns git branch of sources. More... | |
| static const Char_t * | gitCommit () |
| Returns last git commit of sources. More... | |
| static void | InitEnvironment () |
| static bool | is_gnuinstall () |
| static Bool_t | IsEnvInit () |
| static Bool_t | IsThisAPlugin (const TString &uri, TString &base) |
| static TPluginHandler * | LoadPlugin (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 Double_t | ProtectedGetX (const TF1 &func, Double_t val, GetX_status &status, std::optional< Double_t > xmin={}, std::optional< Double_t > xmax={}) |
| static Double_t | ProtectedGetX (const TF1 *func, Double_t val, GetX_status &status, std::optional< Double_t > xmin={}, std::optional< Double_t > xmax={}) |
| 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_t * | WorkingDirectory () |
Static Public Member Functions inherited from TNamed | |
| static TClass * | Class () |
| static const char * | Class_Name () |
| static constexpr Version_t | Class_Version () |
| static const char * | DeclFileName () |
Static Public Member Functions inherited from TObject | |
| static TClass * | Class () |
| static const char * | Class_Name () |
| static constexpr Version_t | Class_Version () |
| static const char * | DeclFileName () |
| static Longptr_t | GetDtorOnly () |
| static Bool_t | GetObjectStat () |
| static void | SetDtorOnly (void *obj) |
| static void | SetObjectStat (Bool_t stat) |
Additional Inherited Members | |
Public Types inherited from KVFileReader | |
| enum class | ReadStatus { EmptyLine , OK , ParamMismatch , CommentLine , EndOfFile } |
| status returned by each method used to read a line in the file More... | |
Public Types inherited from KVBase | |
| enum | EKaliVedaBits { kIsKaliVedaObject = BIT(23) } |
| enum class | GetX_status { ok , above_maximum , below_minimum , at_maximum , at_minimum } |
Public Types inherited from TObject | |
| enum | EDeprecatedStatusBits |
| enum | EStatusBits |
Public Attributes inherited from KVFileReader | |
| std::ifstream | f_in |
Public Attributes inherited from TObject | |
| kBitMask | |
| kCanDelete | |
| kCannotPick | |
| kHasUUID | |
| kInconsistent | |
| kInvalidObject | |
| kIsOnHeap | |
| kIsReferenced | |
| kMustCleanup | |
| kNoContextMenu | |
| kNotDeleted | |
| kObjInCanvas | |
| kOverwrite | |
| kSingleKey | |
| kWriteDelete | |
| kZombie | |
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 inherited from TNamed | |
| TString | fName |
| TString | fTitle |
Protected Attributes inherited from TObject | |
| kOnlyPrepStep | |
| KVSimReader::KVSimReader | ( | ) |
Definition at line 13 of file KVSimReader.cpp.
Read events, convert and save in ROOT file(s)
Definition at line 265 of file KVSimReader.cpp.
Definition at line 24 of file KVSimReader.cpp.
|
inline |
Definition at line 190 of file KVSimReader.h.
|
inline |
Definition at line 242 of file KVSimReader.h.
|
static |
Returns an instance of a child class specific to given model.
Definition at line 278 of file KVSimReader.cpp.
|
virtual |
The usual loop for reading, converting and saving events is
If several separate events share the same header and need to be read sequentially, this can be achieved if this method is overriden to return true as many times as needed, by adding this effective loop:
Definition at line 59 of file KVSimReader.cpp.
|
virtual |
This method will be called just before initialising a new output file during conversion of events (note that the previous file will already have been written to disk and closed at this point).
It can be overridden in child classes if necessary, e.g. to reset histograms or other statistics.
Reimplemented in KVSimReader_HIPSE.
Definition at line 236 of file KVSimReader.cpp.
|
pure virtual |
Fill the KVSimEvent with informations for a new event read from the input file. This is the only method which daughter classes must override.
There is no need to call KVSimEvent::Clear(): the event object will be ready to be filled with new informations.
Implemented in KVSimReader_SMF_asym, KVSimReader_SMF, KVSimReader_IQMD, KVSimReader_HaC, KVSimReader_MMM, KVSimReader_HIPSE, KVSimReader_ELIE, and KVSimReader_DIT.
|
virtual |
Implement as needed to read informations present at the beginning of each new event, if present.
There is no need to call KVSimEvent::Clear(): the event object will be ready to be filled with new informations.
Reimplemented in KVSimReader_SMF_asym, KVSimReader_SMF, KVSimReader_MMM_asym, KVSimReader_HaC, KVSimReader_MMM, KVSimReader_HIPSE_asym, KVSimReader_HIPSE, KVSimReader_ELIE2023, and KVSimReader_ELIE.
Definition at line 202 of file KVSimReader.cpp.
|
virtual |
Implement as needed to read informations at the beginning of the input file, if present.
Such informations may be used in ReadFileHeader() to set the names of output files/TTrees, using the methods
Reimplemented in KVSimReader_IQMD, KVSimReader_HIPSE, KVSimReader_ELIE2023, KVSimReader_ELIE, and KVSimReader_DIT.
Definition at line 177 of file KVSimReader.cpp.
|
virtual |
If required, this method can be implemented in child classes, to be used in ReadEvent(). As the implementation of ReadEvent() is the user's responsibility, the meaning of the returned bool value is also up to the user.
Reimplemented in KVSimReader_SMF_asym, KVSimReader_SMF, KVSimReader_MMM_asym, KVSimReader_IQMD, KVSimReader_HaC, KVSimReader_MMM, KVSimReader_HIPSE_asym, KVSimReader_HIPSE, KVSimReader_ELIE_asym, KVSimReader_ELIE2023, and KVSimReader_ELIE.
Definition at line 219 of file KVSimReader.cpp.
Set name used for branch of TTree used to store KVSimEvent objects
Definition at line 256 of file KVSimReader.h.
Definition at line 204 of file KVSimReader.h.
|
inline |
Limit the total number of converted events in output files, leading to a set of output files being created, each with a name given by the same basic 'stub' (defined by SetROOTFileName()) along with a sequential index number.
Definition at line 192 of file KVSimReader.h.
Definition at line 200 of file KVSimReader.h.
Definition at line 208 of file KVSimReader.h.
Use to set a basic 'stub' for the output filename(s), without the '.root' extension.
The value given will be used to name files [name].root, [name].0.root, [name].1.root, etc.
Definition at line 247 of file KVSimReader.h.
Set name used for TTree in output file
Definition at line 232 of file KVSimReader.h.
Set the title used for TTree in output file
Definition at line 237 of file KVSimReader.h.