Selector used for auxiliary actions in the PROOF tutorials.
#define ProofAux_cxx
ProofAux::ProofAux()
{
fAction = -1;
fNEvents= -1;
fMainList = 0;
fFriendList = 0;
fDir = "";
}
ProofAux::~ProofAux()
{
}
{
if (ntype) {
if (act == "GenerateTreesSameFile") {
action = 1;
} else if (act.BeginsWith("GenerateTrees")) {
action = 0;
action = 2;
act.Remove(0, icol+1);
if (!act.IsNull()) fDir = act;
}
} else {
}
}
return action;
}
void ProofAux::Begin(
TTree * )
{
}
void ProofAux::SlaveBegin(
TTree * )
{
fAction = GetAction(fInput);
if (
a) fNEvents =
a->GetVal();
if (fAction < 2) {
}
}
{
if (fAction < 0) {
Error(
"Process",
"action not specified!");
}
if (fInput && (elemPair =
dynamic_cast<TPair *
>(fInput->FindObject(
"PROOF_CurrentElement")))) {
Info(
"Process",
"entry %lld: file: '%s'", entry, fCurrent->
GetName());
} else {
Error(
"Process",
"entry %lld: no file specified!", entry);
}
}
if (fAction == 0) {
if (GenerateTree(fCurrent->
GetName(), fNEvents, fnt) != 0) {
Error(
"Process",
"problems generating tree (%lld, %s, %lld)",
entry, fCurrent->
GetName(), fNEvents);
}
} else {
} else {
xf += "_friend";
}
}
if (GenerateFriend(fnt, fnf) != 0) {
Error(
"Process",
"problems generating friend tree for %s (%s)",
}
} else if (fAction == 1) {
if (GenerateTree(fCurrent->
GetName(), fNEvents, fnt) != 0) {
Error(
"Process",
"problems generating tree (%lld, %s, %lld)",
entry, fCurrent->
GetName(), fNEvents);
}
if (GenerateFriend(fnt) != 0) {
Error(
"Process",
"problems generating friend tree for %s (%s)",
}
} else if (fAction == 2) {
if (GenerateTree(fCurrent->
GetName(), fNEvents, fnt) != 0) {
Error(
"Process",
"problems generating tree (%lld, %s, %lld)",
entry, fCurrent->
GetName(), fNEvents);
}
} else {
Warning(
"Process",
"do not know how to process action %d - do nothing", fAction);
}
}
void ProofAux::SlaveTerminate()
{
if (fMainList && fMainList->GetSize() > 0) fOutput->Add(fMainList);
if (fFriendList && fFriendList->GetSize() > 0) fOutput->Add(fFriendList);
}
void ProofAux::Terminate()
{
}
{
fn = fnt;
Error(
"GenerateTree",
"file name undefined!");
return rc;
}
if (!strcmp(uu.GetProtocol(),
"file") && !fn.
BeginsWith(
"/")) {
Error(
"GenerateTree",
"data directory undefined!");
return rc;
}
Error(
"GenerateTree",
"problems creating directory %s to store the file", dir.
Data());
return rc;
}
}
}
if (!
f ||
f->IsZombie()) {
Error(
"GenerateTree",
"problems opening file %s", fn.
Data());
return rc;
}
if (!fDir.IsNull()) {
if (
f->mkdir(fDir.Data())) {
Info(
"GenerateTree",
"sub-directory '%s' successfully created", fDir.Data());
} else {
Error(
"GenerateTree",
"creating sub-directory '%s'", fDir.Data());
return rc;
}
}
rc = 0;
TTree *
T =
new TTree(
"Tmain",
"Main tree for tutorial friends");
T->SetDirectory(destdir);
T->Branch(
"Run",&Run,
"Run/I");
T->Branch(
"Event",&Event,
"Event/L");
if (i > 0 && i%1000 == 0) Run++;
Event = i;
}
Info(
"GenerateTree",
"file '%s' successfully created", fn.
Data());
if (!strcmp(uu.GetProtocol(), "file")) {
} else {
}
}
return rc;
}
Int_t ProofAux::GenerateFriend(
const char *fnt,
const char *fnf)
{
if (fin.IsNull()) {
Error(
"GenerateFriend",
"file name for the main tree undefined!");
return rc;
}
Error(
"GenerateFriend",
"input file does not exist or cannot be read: %s", fin.Data());
return rc;
}
const char *openMain = "UPDATE";
if (!fout.IsNull()) {
openMain = "READ";
Error(
"GenerateFriend",
"problems creating directory %s to store the file", dir.
Data());
return rc;
}
}
} else {
fout = fin;
}
Error(
"GenerateFriend",
"problems opening input file %s", fin.Data());
return rc;
}
if (!Tin) {
Error(
"GenerateFriend",
"problems getting tree 'Tmain' from file %s", fin.Data());
delete fi;
return rc;
}
if (!sameFile) {
fo =
new TFile(fout,
"RECREATE");
Error(
"GenerateFriend",
"problems opening file %s", fout.Data());
delete fi;
return rc;
}
} else {
fo = fi;
}
rc = 0;
TTree *Tfrnd =
new TTree(
"Tfrnd",
"Friend tree for tutorial 'friends'");
}
if (!sameFile) {
delete fi;
}
delete fo;
delete Tfrnd;
Info(
"GenerateFriend",
"friend file '%s' successfully created", fout.Data());
if (!strcmp(uu.GetProtocol(), "file")) {
} else {
}
}
return rc;
}
Selector used for auxiliary actions in the PROOF tutorials.
void Info(const char *location, const char *msgfmt,...)
Use this function for informational messages.
void Error(const char *location, const char *msgfmt,...)
Use this function in case an error occurred.
void Warning(const char *location, const char *msgfmt,...)
Use this function in warning situations.
R__EXTERN TProofServ * gProofServ
R__EXTERN TSystem * gSystem
A TTree is a list of TBranches.
virtual Int_t GetEntry(Long64_t entry=0, Int_t getall=0)
Read all leaves of entry and return total number of bytes read.
void SetName(const char *name)
Manages an element of a TDSet.
Bool_t cd(const char *path=nullptr) override
Change current directory to "this" directory.
TObject * Get(const char *namecycle) override
Return pointer to object identified by namecycle.
Describe directory structure in memory.
virtual Bool_t cd(const char *path=nullptr)
Change current directory to "this" directory.
A ROOT file is a suite of consecutive data records (TKey instances) with a well defined format.
static TFile * Open(const char *name, Option_t *option="", const char *ftitle="", Int_t compress=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault, Int_t netopt=0)
Create / open a file.
void Close(Option_t *option="") override
Close a file.
virtual TObject * FindObject(const char *name) const
Find an object in this list using its name.
The TNamed class is the base class for all named ROOT classes.
virtual const char * GetTitle() const
Returns title of object.
virtual const char * GetName() const
Returns name of object.
Collectable string class.
virtual TObject * FindObject(const char *name) const
Must be redefined in derived classes.
R__ALWAYS_INLINE Bool_t IsZombie() const
Class used by TMap to store (key,value) pairs.
Named parameter, streamable and storable.
const char * GetOrdinal() const
const char * GetDataDir() const
This is the base class for the ROOT Random number generators.
TString & Insert(Ssiz_t pos, const char *s)
Bool_t EndsWith(const char *pat, ECaseCompare cmp=kExact) const
Return true if string ends with the specified string.
const char * Data() const
TString & ReplaceAll(const TString &s1, const TString &s2)
Bool_t BeginsWith(const char *s, ECaseCompare cmp=kExact) const
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
virtual const char * Getenv(const char *env)
Get environment variable.
virtual int mkdir(const char *name, Bool_t recursive=kFALSE)
Make a file system directory.
virtual Bool_t AccessPathName(const char *path, EAccessMode mode=kFileExists)
Returns FALSE if one can access a file using the specified access mode.
virtual const char * BaseName(const char *pathname)
Base name of a file name. Base name of /user/root is root.
virtual const char * HostName()
Return the system's host name.
virtual TString GetDirName(const char *pathname)
Return the directory name in pathname.
A TTree represents a columnar dataset.
virtual Int_t Fill()
Fill all branches.
virtual TBranch * GetBranch(const char *name)
Return pointer to the branch with the given name in this tree or its friends.
virtual Int_t SetBranchAddress(const char *bname, void *add, TBranch **ptr=0)
Change branch address, dealing with clone trees properly.
virtual void SetDirectory(TDirectory *dir)
Change the tree's directory.
virtual Long64_t GetEntries() const
virtual void Print(Option_t *option="") const
Print a summary of the tree contents.
TBranch * Branch(const char *name, T *obj, Int_t bufsize=32000, Int_t splitlevel=99)
Add a new branch, and infer the data type from the type of obj being passed.
virtual Int_t Write(const char *name=0, Int_t option=0, Int_t bufsize=0)
Write this object to the current directory.
This class represents a WWW compatible URL.
const char * GetProtocol() const
Double_t Sqrt(Double_t x)