R3BROOT
R3B analysis software
Loading...
Searching...
No Matches
R3BFileSource Class Reference

#include <R3BFileSource.h>

Public Member Functions

 R3BFileSource (TFile *f, const char *Title="InputRootFile", UInt_t identifier=0)
 
 R3BFileSource (const TString *RootFileName, const char *Title="InputRootFile", UInt_t identifier=0)
 
 R3BFileSource (const TString RootFileName, const char *Title="InputRootFile", UInt_t identifier=0)
 
 ~R3BFileSource () override
 
Bool_t Init () override
 
Int_t ReadEvent (UInt_t i=0) override
 
void Close () override
 
void Reset () override
 
Source_Type GetSourceType () override
 
void SetParUnpackers () override
 
Bool_t InitUnpackers () override
 
Bool_t ReInitUnpackers () override
 
Int_t CheckMaxEventNo (Int_t EvtEnd=0) override
 Check the maximum event number we can run to.
 
void ReadBranchEvent (const char *BrName) override
 Read the tree entry on one branch.
 
void ReadBranchEvent (const char *BrName, Int_t Entry) override
 Read specific tree entry on one branch.
 
void FillEventHeader (FairEventHeader *feh) override
 
const TFile * GetRootFile ()
 
void AddFriend (TString FileName)
 Add a friend file (input) by name)
 
void AddFile (TString FileName)
 Add ROOT file to input, the file will be chained to already added files.
 
void AddFriendsToChain ()
 
void PrintFriendList ()
 
Bool_t CompareBranchList (TFile *fileHandle, TString inputLevel)
 
void CheckFriendChains ()
 
void CreateNewFriendChain (TString inputFile, TString inputLevel)
 
TTree * GetInTree ()
 
TChain * GetInChain ()
 
TFile * GetInFile ()
 
void CloseInFile ()
 
void SetInTree (TTree *tempTree)
 Set the input tree when running on PROOF worker.
 
TObjArray * GetListOfFolders ()
 
TFolder * GetBranchDescriptionFolder ()
 
UInt_t GetEntries ()
 
void SetInputFile (TString name)
 
void SetBeamTime (Double_t beamTime, Double_t gapTime)
 Set the repetition time of the beam when it can interact (beamTime) and when no interaction happen (gapTime).
 
void SetEventTimeInterval (Double_t min, Double_t max)
 Set the min and max limit for event time in ns.
 
void SetEventMeanTime (Double_t mean)
 Set the mean time for the event in ns.
 
void SetEventTime ()
 
Double_t GetDeltaEventTime ()
 
void SetFileHeader (FairFileHeader *f)
 
Double_t GetEventTime ()
 
Bool_t ActivateObject (TObject **obj, const char *BrName) override
 
void SetEvtHeaderNew (Bool_t Status)
 Set the status of the EvtHeader.
 
Bool_t IsEvtHeaderNew ()
 
void SetCheckFileLayout (Bool_t enable)
 Allow to disable the testing the file layout when adding files to a chain.
 
void SetInputFileName (TString tstr)
 
Bool_t SpecifyRunId ()
 Read one event from source to find out which RunId to use.
 

Static Public Member Functions

static R3BFileSourceInstance ()
 static instance
 

Private Member Functions

Int_t GetRunid (uint64_t ts)
 GetRunid method to obtain the runid as function of timestamps.
 
 R3BFileSource (const R3BFileSource &)
 
R3BFileSource operator= (const R3BFileSource &)
 

Private Attributes

TString fInputTitle
 Title of input source, could be input, background or signal.
 
TFile * fRootFile
 ROOT file.
 
Int_t fCurrentEntryNr
 Current Entry number.
 
std::list< TString > fFriendFileList
 List of all files added with AddFriend.
 
std::list< TString > fInputChainList
 
std::map< TString, TChain * > fFriendTypeList
 
std::map< TString, std::list< TString > * > fCheckInputBranches
 
std::list< TString > fInputLevel
 
std::map< TString, std::multimap< TString, TArrayI > > fRunIdInfoAll
 
TChain * fInChain
 Input Chain.
 
TTree * fInTree
 Input Tree.
 
TObjArray * fListFolder
 list of folders from all input (and friends) files
 
FairRuntimeDb * fRtdb
 RuntimeDb.
 
TFolder * fFolderOut
 folder structure of output
 
TFolder * fFolderIn
 folder structure of input
 
UInt_t fSourceIdentifier
 
UInt_t fNoOfEntries
 No of Entries in this source.
 
Bool_t IsInitialized
 Initialization flag, true if initialized.
 
FairMCEventHeader * fMCHeader
 MC Event header.
 
R3BEventHeaderfEvtHeader
 Event Header.
 
FairFileHeader * fFileHeader
 File Header.
 
Bool_t fEventTimeInMCHeader
 This is true if the event time used, came from simulation.
 
Bool_t fEvtHeaderIsNew
 This flag is true if the event header was created in this session otherwise it is false which means the header was created in a previous data level and used here (e.g.
 
UInt_t fCurrentEntryNo
 for internal use, to return the same event time for the same entry
 
UInt_t fTimeforEntryNo
 for internal use, to return the same event time for the same entry
 
Double_t fEventTimeMin
 min time for one event (ns)
 
Double_t fEventTimeMax
 max time for one Event (ns)
 
Double_t fEventTime
 Time of event since th start (ns)
 
Double_t fBeamTime
 Time of particles in beam (ns)
 
Double_t fGapTime
 Time without particles in beam (gap) (ns)
 
Double_t fEventMeanTime
 EventMean time used (P(t)=1/fEventMeanTime*Exp(-t/fEventMeanTime)
 
TF1 * fTimeProb
 used to generate random numbers for event time;
 
Bool_t fCheckFileLayout
 True if the file layout should be checked when adding files to a chain.
 
std::ifstream fInputFile
 input file with runids
 
TString fInputFileName
 
UInt_t fExpid
 
std::vector< UInt_t > fRunid
 
std::vector< uint64_t > fTimestamp
 
uint64_t prevts
 
uint64_t nextts
 

Static Private Attributes

static TMCThreadLocal R3BFileSourcefSourceInstance = 0
 

Detailed Description

Definition at line 39 of file R3BFileSource.h.

Constructor & Destructor Documentation

◆ R3BFileSource() [1/4]

R3BFileSource::R3BFileSource ( TFile * f,
const char * Title = "InputRootFile",
UInt_t identifier = 0 )

Definition at line 51 of file R3BFileSource.cxx.

◆ R3BFileSource() [2/4]

R3BFileSource::R3BFileSource ( const TString * RootFileName,
const char * Title = "InputRootFile",
UInt_t identifier = 0 )

Definition at line 105 of file R3BFileSource.cxx.

◆ R3BFileSource() [3/4]

R3BFileSource::R3BFileSource ( const TString RootFileName,
const char * Title = "InputRootFile",
UInt_t identifier = 0 )

Definition at line 160 of file R3BFileSource.cxx.

◆ ~R3BFileSource()

R3BFileSource::~R3BFileSource ( )
override

Definition at line 217 of file R3BFileSource.cxx.

◆ R3BFileSource() [4/4]

R3BFileSource::R3BFileSource ( const R3BFileSource & )
private

Member Function Documentation

◆ ActivateObject()

Bool_t R3BFileSource::ActivateObject ( TObject ** obj,
const char * BrName )
override

Definition at line 836 of file R3BFileSource.cxx.

◆ AddFile()

void R3BFileSource::AddFile ( TString FileName)

Definition at line 511 of file R3BFileSource.cxx.

◆ AddFriend()

void R3BFileSource::AddFriend ( TString FileName)

Definition at line 509 of file R3BFileSource.cxx.

◆ AddFriendsToChain()

void R3BFileSource::AddFriendsToChain ( )

Definition at line 513 of file R3BFileSource.cxx.

◆ CheckFriendChains()

void R3BFileSource::CheckFriendChains ( )

Definition at line 633 of file R3BFileSource.cxx.

◆ CheckMaxEventNo()

Int_t R3BFileSource::CheckMaxEventNo ( Int_t EvtEnd = 0)
override

Definition at line 862 of file R3BFileSource.cxx.

◆ Close()

void R3BFileSource::Close ( )
override

Definition at line 505 of file R3BFileSource.cxx.

◆ CloseInFile()

void R3BFileSource::CloseInFile ( )
inline

Definition at line 87 of file R3BFileSource.h.

◆ CompareBranchList()

Bool_t R3BFileSource::CompareBranchList ( TFile * fileHandle,
TString inputLevel )

Definition at line 780 of file R3BFileSource.cxx.

◆ CreateNewFriendChain()

void R3BFileSource::CreateNewFriendChain ( TString inputFile,
TString inputLevel )

Get The list of branches from the friend file and add it to the actual list

Definition at line 719 of file R3BFileSource.cxx.

◆ FillEventHeader()

void R3BFileSource::FillEventHeader ( FairEventHeader * feh)
override

Definition at line 1020 of file R3BFileSource.cxx.

◆ GetBranchDescriptionFolder()

TFolder * R3BFileSource::GetBranchDescriptionFolder ( )
inline

Definition at line 97 of file R3BFileSource.h.

◆ GetDeltaEventTime()

Double_t R3BFileSource::GetDeltaEventTime ( )

Definition at line 921 of file R3BFileSource.cxx.

◆ GetEntries()

UInt_t R3BFileSource::GetEntries ( )
inline

Definition at line 98 of file R3BFileSource.h.

◆ GetEventTime()

Double_t R3BFileSource::GetEventTime ( )

Definition at line 937 of file R3BFileSource.cxx.

◆ GetInChain()

TChain * R3BFileSource::GetInChain ( )
inline

Definition at line 85 of file R3BFileSource.h.

◆ GetInFile()

TFile * R3BFileSource::GetInFile ( )
inline

Definition at line 86 of file R3BFileSource.h.

◆ GetInTree()

TTree * R3BFileSource::GetInTree ( )
inline

Definition at line 84 of file R3BFileSource.h.

◆ GetListOfFolders()

TObjArray * R3BFileSource::GetListOfFolders ( )
inline

Definition at line 96 of file R3BFileSource.h.

◆ GetRootFile()

const TFile * R3BFileSource::GetRootFile ( )
inline

Definition at line 74 of file R3BFileSource.h.

◆ GetRunid()

Int_t R3BFileSource::GetRunid ( uint64_t ts)
private

Definition at line 434 of file R3BFileSource.cxx.

◆ GetSourceType()

Source_Type R3BFileSource::GetSourceType ( )
inlineoverride

Definition at line 58 of file R3BFileSource.h.

◆ Init()

Bool_t R3BFileSource::Init ( )
override

Definition at line 225 of file R3BFileSource.cxx.

◆ InitUnpackers()

Bool_t R3BFileSource::InitUnpackers ( )
inlineoverride

Definition at line 62 of file R3BFileSource.h.

◆ Instance()

R3BFileSource * R3BFileSource::Instance ( )
static

Definition at line 215 of file R3BFileSource.cxx.

◆ IsEvtHeaderNew()

Bool_t R3BFileSource::IsEvtHeaderNew ( )
inline

Definition at line 121 of file R3BFileSource.h.

◆ operator=()

R3BFileSource R3BFileSource::operator= ( const R3BFileSource & )
private

◆ PrintFriendList()

void R3BFileSource::PrintFriendList ( )

Definition at line 603 of file R3BFileSource.cxx.

◆ ReadBranchEvent() [1/2]

void R3BFileSource::ReadBranchEvent ( const char * BrName)
override

fill the object with content if the other branches in this tree entry were already read

Definition at line 972 of file R3BFileSource.cxx.

◆ ReadBranchEvent() [2/2]

void R3BFileSource::ReadBranchEvent ( const char * BrName,
Int_t Entry )
override

Definition at line 994 of file R3BFileSource.cxx.

◆ ReadEvent()

Int_t R3BFileSource::ReadEvent ( UInt_t i = 0)
override

TODO We should use here the timestamp from the header to look for the right runId and set up the parameters for the analysis of the root files. std::cout << fEvtHeader->GetTimeStamp() << std::endl;

Definition at line 473 of file R3BFileSource.cxx.

◆ ReInitUnpackers()

Bool_t R3BFileSource::ReInitUnpackers ( )
inlineoverride

Definition at line 64 of file R3BFileSource.h.

◆ Reset()

void R3BFileSource::Reset ( )
override

Definition at line 507 of file R3BFileSource.cxx.

◆ SetBeamTime()

void R3BFileSource::SetBeamTime ( Double_t beamTime,
Double_t gapTime )

The total repetition time is beamTime + gapTime

Definition at line 893 of file R3BFileSource.cxx.

◆ SetCheckFileLayout()

void R3BFileSource::SetCheckFileLayout ( Bool_t enable)
inline

Definition at line 125 of file R3BFileSource.h.

◆ SetEventMeanTime()

void R3BFileSource::SetEventMeanTime ( Double_t mean)

Definition at line 876 of file R3BFileSource.cxx.

◆ SetEventTime()

void R3BFileSource::SetEventTime ( )

Definition at line 899 of file R3BFileSource.cxx.

◆ SetEventTimeInterval()

void R3BFileSource::SetEventTimeInterval ( Double_t min,
Double_t max )

Definition at line 885 of file R3BFileSource.cxx.

◆ SetEvtHeaderNew()

void R3BFileSource::SetEvtHeaderNew ( Bool_t Status)
inline
Parameters
StatusTrue: The header was creatged in this session and has to be filled FALSE: We use an existing header from previous data level

Definition at line 120 of file R3BFileSource.h.

◆ SetFileHeader()

void R3BFileSource::SetFileHeader ( FairFileHeader * f)
inline

Definition at line 111 of file R3BFileSource.h.

◆ SetInputFile()

void R3BFileSource::SetInputFile ( TString name)

Definition at line 852 of file R3BFileSource.cxx.

◆ SetInputFileName()

void R3BFileSource::SetInputFileName ( TString tstr)
inline

Definition at line 127 of file R3BFileSource.h.

◆ SetInTree()

void R3BFileSource::SetInTree ( TTree * tempTree)

Definition at line 423 of file R3BFileSource.cxx.

◆ SetParUnpackers()

void R3BFileSource::SetParUnpackers ( )
inlineoverride

Definition at line 60 of file R3BFileSource.h.

◆ SpecifyRunId()

Bool_t R3BFileSource::SpecifyRunId ( )

Definition at line 1012 of file R3BFileSource.cxx.

Member Data Documentation

◆ fBeamTime

Double_t R3BFileSource::fBeamTime
private

Definition at line 200 of file R3BFileSource.h.

◆ fCheckFileLayout

Bool_t R3BFileSource::fCheckFileLayout
private

Default value is true.

Definition at line 210 of file R3BFileSource.h.

◆ fCheckInputBranches

std::map<TString, std::list<TString>*> R3BFileSource::fCheckInputBranches
private

Definition at line 149 of file R3BFileSource.h.

◆ fCurrentEntryNo

UInt_t R3BFileSource::fCurrentEntryNo
private

Definition at line 189 of file R3BFileSource.h.

◆ fCurrentEntryNr

Int_t R3BFileSource::fCurrentEntryNr
private

Definition at line 144 of file R3BFileSource.h.

◆ fEventMeanTime

Double_t R3BFileSource::fEventMeanTime
private

Definition at line 204 of file R3BFileSource.h.

◆ fEventTime

Double_t R3BFileSource::fEventTime
private

Definition at line 198 of file R3BFileSource.h.

◆ fEventTimeInMCHeader

Bool_t R3BFileSource::fEventTimeInMCHeader
private

Definition at line 181 of file R3BFileSource.h.

◆ fEventTimeMax

Double_t R3BFileSource::fEventTimeMax
private

Definition at line 196 of file R3BFileSource.h.

◆ fEventTimeMin

Double_t R3BFileSource::fEventTimeMin
private

Definition at line 194 of file R3BFileSource.h.

◆ fEvtHeader

R3BEventHeader* R3BFileSource::fEvtHeader
private

Definition at line 175 of file R3BFileSource.h.

◆ fEvtHeaderIsNew

Bool_t R3BFileSource::fEvtHeaderIsNew
private

in the digi)

Definition at line 186 of file R3BFileSource.h.

◆ fExpid

UInt_t R3BFileSource::fExpid
private

Definition at line 219 of file R3BFileSource.h.

◆ fFileHeader

FairFileHeader* R3BFileSource::fFileHeader
private

Definition at line 178 of file R3BFileSource.h.

◆ fFolderIn

TFolder* R3BFileSource::fFolderIn
private

Definition at line 163 of file R3BFileSource.h.

◆ fFolderOut

TFolder* R3BFileSource::fFolderOut
private

Definition at line 161 of file R3BFileSource.h.

◆ fFriendFileList

std::list<TString> R3BFileSource::fFriendFileList
private

Definition at line 146 of file R3BFileSource.h.

◆ fFriendTypeList

std::map<TString, TChain*> R3BFileSource::fFriendTypeList
private

Definition at line 148 of file R3BFileSource.h.

◆ fGapTime

Double_t R3BFileSource::fGapTime
private

Definition at line 202 of file R3BFileSource.h.

◆ fInChain

TChain* R3BFileSource::fInChain
private

Definition at line 153 of file R3BFileSource.h.

◆ fInputChainList

std::list<TString> R3BFileSource::fInputChainList
private

Definition at line 147 of file R3BFileSource.h.

◆ fInputFile

std::ifstream R3BFileSource::fInputFile
private

Definition at line 216 of file R3BFileSource.h.

◆ fInputFileName

TString R3BFileSource::fInputFileName
private

Definition at line 217 of file R3BFileSource.h.

◆ fInputLevel

std::list<TString> R3BFileSource::fInputLevel
private

Definition at line 150 of file R3BFileSource.h.

◆ fInputTitle

TString R3BFileSource::fInputTitle
private

Definition at line 140 of file R3BFileSource.h.

◆ fInTree

TTree* R3BFileSource::fInTree
private

Definition at line 155 of file R3BFileSource.h.

◆ fListFolder

TObjArray* R3BFileSource::fListFolder
private

Definition at line 157 of file R3BFileSource.h.

◆ fMCHeader

FairMCEventHeader* R3BFileSource::fMCHeader
private

Definition at line 172 of file R3BFileSource.h.

◆ fNoOfEntries

UInt_t R3BFileSource::fNoOfEntries
private

Definition at line 167 of file R3BFileSource.h.

◆ fRootFile

TFile* R3BFileSource::fRootFile
private

Definition at line 142 of file R3BFileSource.h.

◆ fRtdb

FairRuntimeDb* R3BFileSource::fRtdb
private

Definition at line 159 of file R3BFileSource.h.

◆ fRunid

std::vector<UInt_t> R3BFileSource::fRunid
private

Definition at line 220 of file R3BFileSource.h.

◆ fRunIdInfoAll

std::map<TString, std::multimap<TString, TArrayI> > R3BFileSource::fRunIdInfoAll
private

Definition at line 151 of file R3BFileSource.h.

◆ fSourceIdentifier

UInt_t R3BFileSource::fSourceIdentifier
private

Definition at line 165 of file R3BFileSource.h.

◆ fSourceInstance

TMCThreadLocal R3BFileSource * R3BFileSource::fSourceInstance = 0
staticprivate

Definition at line 138 of file R3BFileSource.h.

◆ fTimeforEntryNo

UInt_t R3BFileSource::fTimeforEntryNo
private

Definition at line 191 of file R3BFileSource.h.

◆ fTimeProb

TF1* R3BFileSource::fTimeProb
private

Definition at line 206 of file R3BFileSource.h.

◆ fTimestamp

std::vector<uint64_t> R3BFileSource::fTimestamp
private

Definition at line 221 of file R3BFileSource.h.

◆ IsInitialized

Bool_t R3BFileSource::IsInitialized
private

Definition at line 169 of file R3BFileSource.h.

◆ nextts

uint64_t R3BFileSource::nextts
private

Definition at line 222 of file R3BFileSource.h.

◆ prevts

uint64_t R3BFileSource::prevts
private

Definition at line 222 of file R3BFileSource.h.


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