55 if (
act ==
"GenerateTreesSameFile") {
57 }
else if (
act.BeginsWith(
"GenerateTrees")) {
64 if (!
act.IsNull()) fDir =
act;
67 Warning(
"GetAction",
"unknown action: '%s'",
ntype->GetTitle());
76void ProofAux::Begin(
TTree * )
84void ProofAux::SlaveBegin(
TTree * )
93 fAction = GetAction(fInput);
97 if (
a) fNEvents =
a->GetVal();
131 Error(
"Process",
"action not specified!");
138 if (fInput && (
elemPair =
dynamic_cast<TPair *
>(fInput->FindObject(
"PROOF_CurrentElement")))) {
142 Error(
"Process",
"entry %lld: no file specified!",
entry);
152 Error(
"Process",
"problems generating tree (%lld, %s, %lld)",
160 if (
xf.Contains(
"tree")) {
161 xf.ReplaceAll(
"tree",
"friend");
163 if (
xf.EndsWith(
".root")) {
164 xf.ReplaceAll(
".root",
"_friend.root");
172 Error(
"Process",
"problems generating friend tree for %s (%s)",
176 }
else if (fAction == 1) {
180 Error(
"Process",
"problems generating tree (%lld, %s, %lld)",
186 Error(
"Process",
"problems generating friend tree for %s (%s)",
190 }
else if (fAction == 2) {
194 Error(
"Process",
"problems generating tree (%lld, %s, %lld)",
200 Warning(
"Process",
"do not know how to process action %d - do nothing", fAction);
208void ProofAux::SlaveTerminate()
219void ProofAux::Terminate()
240 Error(
"GenerateTree",
"file name undefined!");
244 if (!
strcmp(
uu.GetProtocol(),
"file") && !
fn.BeginsWith(
"/")) {
248 Error(
"GenerateTree",
"data directory undefined!");
257 Error(
"GenerateTree",
"problems creating directory %s to store the file", dir.
Data());
266 if (!
f ||
f->IsZombie()) {
267 Error(
"GenerateTree",
"problems opening file %s",
fn.Data());
274 if (!fDir.IsNull()) {
275 if (
f->mkdir(fDir.Data())) {
276 Info(
"GenerateTree",
"sub-directory '%s' successfully created", fDir.Data());
280 Error(
"GenerateTree",
"creating sub-directory '%s'", fDir.Data());
290 TTree *T =
new TTree(
"Tmain",
"Main tree for tutorial friends");
293 T->Branch(
"Run",&Run,
"Run/I");
295 T->Branch(
"Event",&
Event,
"Event/L");
297 T->Branch(
"x",&
x,
"x/F");
298 T->Branch(
"y",&
y,
"y/F");
299 T->Branch(
"z",&z,
"z/F");
302 if (i > 0 && i%1000 == 0) Run++;
318 Info(
"GenerateTree",
"file '%s' successfully created",
fn.Data());
322 if (!
strcmp(
uu.GetProtocol(),
"file")) {
337Int_t ProofAux::GenerateFriend(
const char *
fnt,
const char *
fnf)
351 Error(
"GenerateFriend",
"file name for the main tree undefined!");
356 Error(
"GenerateFriend",
"input file does not exist or cannot be read: %s",
fin.Data());
366 if (!
fout.IsNull()) {
373 Error(
"GenerateFriend",
"problems creating directory %s to store the file", dir.
Data());
384 if (!
fi ||
fi->IsZombie()) {
385 Error(
"GenerateFriend",
"problems opening input file %s",
fin.Data());
390 Error(
"GenerateFriend",
"problems getting tree 'Tmain' from file %s",
fin.Data());
396 Tin->SetBranchAddress(
"x", &
x);
397 Tin->SetBranchAddress(
"y", &
y);
398 Tin->SetBranchAddress(
"z", &z);
408 if (!
fo ||
fo->IsZombie()) {
409 Error(
"GenerateFriend",
"problems opening file %s",
fout.Data());
421 TTree *
Tfrnd =
new TTree(
"Tfrnd",
"Friend tree for tutorial 'friends'");
424 Tfrnd->Branch(
"r",&
r,
"r/F");
440 Tfrnd->SetDirectory(0);
446 Info(
"GenerateFriend",
"friend file '%s' successfully created",
fout.Data());
450 if (!
strcmp(
uu.GetProtocol(),
"file")) {
Selector used for auxiliary actions in the PROOF tutorials.
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
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.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void input
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
R__EXTERN TProofServ * gProofServ
R__EXTERN TSystem * gSystem
A TTree is a list of TBranches.
Manages an element of a TDSet.
Describe directory structure in memory.
A ROOT file is an on-disk file, usually with extension .root, that stores objects in a file-system-li...
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.
The TNamed class is the base class for all named ROOT classes.
const char * GetName() const override
Returns name of object.
Collectable string class.
Class used by TMap to store (key,value) pairs.
const char * GetOrdinal() const
const char * GetDataDir() const
This is the base class for the ROOT Random number generators.
const char * Data() const
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
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.
This class represents a WWW compatible URL.
const char * GetProtocol() const
Double_t Sqrt(Double_t x)
Returns the square root of x.