127      gROOT->GetListOfCleanups()->Add(
this);
 
 
  144   gROOT->GetListOfCleanups()->Remove(
this);
 
 
  153   if (
dynamic_cast<const TChain*
>(T)) {
 
  155      if (
index->IsZombie()) {
 
  157         Error(
"BuildIndex", 
"Creating a TChainIndex unsuccessful - switching to TTreeIndex");
 
 
  201   if (tree == 
nullptr) 
return nullptr;
 
  206   for (
Int_t i = 0; i < 
nb; ++i) {
 
 
  325      Warning(
"DrawScript",
"TTreeProxy does not work in interpreted mode yet. The script will be compiled.");
 
  330   Info(
"DrawScript",
"%s",
Form(
"Will process tree/chain using %s",
selname.Data()));
 
 
  369               "Drawing using a C++ file currently requires that both the expression and the selection are files\n\t\"%s\" is not a file",
 
  388               "Drawing using a C++ file currently requires that both the expression and the selection are files\n\t\"%s\" is not a file",
 
  420         gROOT->ProcessLineFast(
"new TCanvas();");
 
  457            gPad->DrawFrame(-1.,-1.,1.,1.);
 
  466         Warning(
"DrawSelect", 
"The selected TTree subset is empty.");
 
  484         if (
l == 0 || opt == 
"same") 
graph = 
true;
 
  501      } 
else if (
action == 33) {
 
  523      for (
Int_t col=0;col<ncolors;col++) {
 
  534         gROOT->ProcessLine(
Form(
"TParallelCoord::SetEntryList((TParallelCoord*)0x%zx,(TEntryList*)0x%zx)",
 
  539      gROOT->ProcessLineFast(
Form(
"(new TGL5DDataSet((TTree *)0x%zx))->Draw(\"%s\");", (
size_t)
fTree, opt.
Data()));
 
 
  572   char *opt = 
new char[
nch];
 
  579   Int_t fitResult = -1;
 
 
  641   return column.c_str();
 
 
  654   if ( 
branch->GetNleaves() <= 1 ) {
 
  679         if (*bname == 
'.') *bname=
'_';
 
  680         if (*bname == 
',') *bname=
'_';
 
  681         if (*bname == 
':') *bname=
'_';
 
  682         if (*bname == 
'<') *bname=
'_';
 
  683         if (*bname == 
'>') *bname=
'_';
 
  684         if (*bname == 
'#') *bname=
'_';
 
  685         if (*bname == 
'@') *bname=
'_';
 
 
  739   thead.Form(
"%s.h", classname);
 
  742      Error(
"MakeClass",
"cannot open output file %s", 
thead.Data());
 
  746   tcimp.Form(
"%s.C", classname);
 
  749      Error(
"MakeClass",
"cannot open output file %s", 
tcimp.Data());
 
  772   fprintf(fp,
"//////////////////////////////////////////////////////////\n");
 
  773   fprintf(fp,
"// This class has been automatically generated on\n");
 
  774   fprintf(fp,
"// %s by ROOT version %s\n",
td.AsString(),
gROOT->GetVersion());
 
  781   fprintf(fp,
"//////////////////////////////////////////////////////////\n");
 
  783   fprintf(fp,
"#ifndef %s_h\n",classname);
 
  784   fprintf(fp,
"#define %s_h\n",classname);
 
  786   fprintf(fp,
"#include <TROOT.h>\n");
 
  787   fprintf(fp,
"#include <TChain.h>\n");
 
  788   fprintf(fp,
"#include <TFile.h>\n");
 
  794   fprintf(fp,
"\n// Header file for the classes stored in the TTree if any.\n");
 
  804            static const char *
precstl = 
"prec_stl/";
 
  847         chain->LoadTree(first);
 
  861      fprintf(fp,
"class %s : public TSelector {\n",classname);
 
  863      fprintf(fp,
"   TTree          *fChain;   //!pointer to the analyzed TTree or TChain\n");
 
  865      fprintf(fp,
"class %s {\n",classname);
 
  867      fprintf(fp,
"   TTree          *fChain;   //!pointer to the analyzed TTree or TChain\n");
 
  868      fprintf(fp,
"   Int_t           fCurrent; //!current Tree number in a TChain\n");
 
  871   fprintf(fp,
"\n// Fixed size dimensions of array or collections stored in the TTree if any.\n");
 
  878         if (*bname == 
'.') *bname=
'_';
 
  879         if (*bname == 
',') *bname=
'_';
 
  880         if (*bname == 
':') *bname=
'_';
 
  881         if (*bname == 
'<') *bname=
'_';
 
  882         if (*bname == 
'>') *bname=
'_';
 
  898   fprintf(fp,
"\n   // Declaration of leaf types\n");
 
  925      if ( 
branch->GetNleaves() > 1) {
 
  939         if (*bname == 
'.') *bname=
'_';
 
  940         if (*bname == 
',') *bname=
'_';
 
  941         if (*bname == 
':') *bname=
'_';
 
  942         if (*bname == 
'<') *bname=
'_';
 
  943         if (*bname == 
'>') *bname=
'_';
 
  947         if (
branch->GetListOfBranches()->GetEntriesFast()) {
leafStatus[
l] = 1; 
continue;}
 
  960            if (*bname == 
'.') *bname=
'_';
 
  961            if (*bname == 
',') *bname=
'_';
 
  962            if (*bname == 
':') *bname=
'_';
 
  963            if (*bname == 
'<') *bname=
'_';
 
  964            if (*bname == 
'>') *bname=
'_';
 
  973         if (
bre->GetType() != 3 && 
bre->GetType() != 4
 
  974             && 
bre->GetStreamerType() <= 0 && 
bre->GetListOfBranches()->GetEntriesFast()) {
 
  977         if (
bre->GetType() == 3 || 
bre->GetType() == 4) {
 
  981         if (
bre->IsBranchFolder()) {
 
  988         if (
bre->GetStreamerType() < 0) {
 
  989            if (
branch->GetListOfBranches()->GetEntriesFast()) {
 
  997         if (
bre->GetStreamerType() == 0) {
 
 1003         if (
bre->GetStreamerType() > 60) {
 
 1039         const char *
stars = 
" ";
 
 1040         if (
bre && 
bre->GetBranchCount2()) {
 
 1056         if (
bre && 
bre->GetBranchCount2()) {
 
 1057            TLeaf * 
l2 = (
TLeaf*)
bre->GetBranchCount2()->GetListOfLeaves()->At(0);
 
 1061               if (*bname == 
'.') *bname=
'_';
 
 1062               if (*bname == 
',') *bname=
'_';
 
 1063               if (*bname == 
':') *bname=
'_';
 
 1064               if (*bname == 
'<') *bname=
'_';
 
 1065               if (*bname == 
'>') *bname=
'_';
 
 1071            if (kmax) 
fprintf(fp,
"   %-14s %s%s[kMax%s]%s;   //[%s]\n",
leaf->GetTypeName(), 
stars,
 
 1079         if (
stars[0]==
'*') {
 
 1097   fprintf(fp,
"   // List of branches\n");
 
 1107      fprintf(fp,
"   %s(TTree * /*tree*/ =0) : fChain(0) { }\n",classname) ;
 
 1108      fprintf(fp,
"   ~%s() override { }\n",classname);
 
 1109      fprintf(fp,
"   Int_t  Version() const override { return 2; }\n");
 
 1110      fprintf(fp,
"   void   Begin(TTree *tree) override;\n");
 
 1111      fprintf(fp,
"   void   SlaveBegin(TTree *tree) override;\n");
 
 1112      fprintf(fp,
"   void   Init(TTree *tree) override;\n");
 
 1113      fprintf(fp,
"   bool   Notify() override;\n");
 
 1114      fprintf(fp,
"   bool   Process(Long64_t entry) override;\n");
 
 1115      fprintf(fp,
"   Int_t  GetEntry(Long64_t entry, Int_t getall = 0) override { return fChain ? fChain->GetTree()->GetEntry(entry, getall) : 0; }\n");
 
 1116      fprintf(fp,
"   void   SetOption(const char *option) override { fOption = option; }\n");
 
 1117      fprintf(fp,
"   void   SetObject(TObject *obj) override { fObject = obj; }\n");
 
 1118      fprintf(fp,
"   void   SetInputList(TList *input) override { fInput = input; }\n");
 
 1119      fprintf(fp,
"   TList* GetOutputList() const override { return fOutput; }\n");
 
 1120      fprintf(fp,
"   void   SlaveTerminate() override;\n");
 
 1121      fprintf(fp,
"   void   Terminate() override;\n\n");
 
 1122      fprintf(fp,
"   ClassDefOverride(%s,0);\n",classname);
 
 1129      fprintf(fp,
"   %s(TTree *tree=0);\n",classname);
 
 1130      fprintf(fp,
"   virtual ~%s();\n",classname);
 
 1131      fprintf(fp,
"   virtual Int_t    Cut(Long64_t entry);\n");
 
 1132      fprintf(fp,
"   virtual Int_t    GetEntry(Long64_t entry);\n");
 
 1133      fprintf(fp,
"   virtual Long64_t LoadTree(Long64_t entry);\n");
 
 1134      fprintf(fp,
"   virtual void     Init(TTree *tree);\n");
 
 1135      fprintf(fp,
"   virtual void     Loop();\n");
 
 1136      fprintf(fp,
"   virtual bool     Notify();\n");
 
 1137      fprintf(fp,
"   virtual void     Show(Long64_t entry = -1);\n");
 
 1144   fprintf(fp,
"#ifdef %s_cxx\n",classname);
 
 1146      fprintf(fp,
"%s::%s(TTree *tree) : fChain(0) \n",classname,classname);
 
 1148      fprintf(fp,
"// if parameter tree is not specified (or zero), connect the file\n");
 
 1149      fprintf(fp,
"// used to generate this class and read the Tree.\n");
 
 1150      fprintf(fp,
"   if (tree == 0) {\n");
 
 1152         fprintf(fp,
"\n#ifdef SINGLE_TREE\n");
 
 1153         fprintf(fp,
"      // The following code should be used if you want this class to access\n");
 
 1154         fprintf(fp,
"      // a single tree instead of a chain\n");
 
 1157         fprintf(fp,
"      THbookFile *f = (THbookFile*)gROOT->GetListOfBrowsables()->FindObject(\"%s\");\n",
 
 1164         fprintf(fp,
"      tree = (TTree*)f->Get(%d);\n\n",
hid);
 
 1166         fprintf(fp,
"      TFile *f = (TFile*)gROOT->GetListOfFiles()->FindObject(\"%s\");\n",
treefile.Data());
 
 1167         fprintf(fp,
"      if (!f || !f->IsOpen()) {\n");
 
 1178         fprintf(fp,
"#else // SINGLE_TREE\n\n");
 
 1179         fprintf(fp,
"      // The following code should be used if you want this class to access a chain\n");
 
 1180         fprintf(fp,
"      // of trees.\n");
 
 1181         fprintf(fp,
"      TChain * chain = new TChain(\"%s\",\"%s\");\n",
 
 1191         fprintf(fp,
"      tree = chain;\n");
 
 1192         fprintf(fp,
"#endif // SINGLE_TREE\n\n");
 
 1202      fprintf(fp,
"%s::~%s()\n",classname,classname);
 
 1204      fprintf(fp,
"   if (!fChain) return;\n");
 
 1208         fprintf(fp,
"   delete fChain->GetCurrentFile();\n");
 
 1215      fprintf(fp,
"Int_t %s::GetEntry(Long64_t entry)\n",classname);
 
 1217      fprintf(fp,
"// Read contents of entry.\n");
 
 1219      fprintf(fp,
"   if (!fChain) return 0;\n");
 
 1220      fprintf(fp,
"   return fChain->GetEntry(entry);\n");
 
 1225      fprintf(fp,
"Long64_t %s::LoadTree(Long64_t entry)\n",classname);
 
 1227      fprintf(fp,
"// Set the environment to read one entry\n");
 
 1228      fprintf(fp,
"   if (!fChain) return -5;\n");
 
 1229      fprintf(fp,
"   Long64_t centry = fChain->LoadTree(entry);\n");
 
 1230      fprintf(fp,
"   if (centry < 0) return centry;\n");
 
 1231      fprintf(fp,
"   if (fChain->GetTreeNumber() != fCurrent) {\n");
 
 1232      fprintf(fp,
"      fCurrent = fChain->GetTreeNumber();\n");
 
 1235      fprintf(fp,
"   return centry;\n");
 
 1241   fprintf(fp,
"void %s::Init(TTree *tree)\n",classname);
 
 1243   fprintf(fp,
"   // The Init() function is called when the selector needs to initialize\n" 
 1244              "   // a new tree or chain. Typically here the branch addresses and branch\n" 
 1245              "   // pointers of the tree will be set.\n" 
 1246              "   // It is normally not necessary to make changes to the generated\n" 
 1247              "   // code, but the routine can be extended by the user if needed.\n" 
 1248              "   // Init() will be called many times when running on PROOF\n" 
 1249              "   // (once per file to be processed).\n\n");
 
 1253      fprintf(fp,
"   // Set object pointer\n");
 
 1254      while( (obj = next()) ) {
 
 1263            if (*bname == 
'.') *bname=
'_';
 
 1264            if (*bname == 
',') *bname=
'_';
 
 1265            if (*bname == 
':') *bname=
'_';
 
 1266            if (*bname == 
'<') *bname=
'_';
 
 1267            if (*bname == 
'>') *bname=
'_';
 
 1276      fprintf(fp,
"   // Set array pointer\n");
 
 1278         fprintf(fp,
"   for(int i=0; i<%s; ++i) %s[i] = 0;\n",
info->GetTitle(),
info->GetName());
 
 1282   fprintf(fp,
"   // Set branch addresses and branch pointers\n");
 
 1283   fprintf(fp,
"   if (!tree) return;\n");
 
 1284   fprintf(fp,
"   fChain = tree;\n");
 
 1286   fprintf(fp,
"   fChain->SetMakeClass(1);\n");
 
 1296      if ( 
branch->GetNleaves() > 1) {
 
 1316         if (*bname == 
'.') *bname=
'_';
 
 1317         if (*bname == 
',') *bname=
'_';
 
 1318         if (*bname == 
':') *bname=
'_';
 
 1319         if (*bname == 
'<') *bname=
'_';
 
 1320         if (*bname == 
'>') *bname=
'_';
 
 1325         Error(
"MakeClass",
"The branch named %s (full path name: %s) is hidden by another branch of the same name and its data will not be loaded.",
branch->GetName(),
R__GetBranchPointerName(
leaf,
false).Data());
 
 1329         if (
branch->GetListOfBranches()->GetEntriesFast()) {
 
 1340      if (
len > 1) 
fprintf(fp,
"%s   fChain->SetBranchAddress(\"%s\", %s, &b_%s);\n",
 
 1342      else         fprintf(fp,
"%s   fChain->SetBranchAddress(\"%s\", &%s, &b_%s);\n",
 
 1354   fprintf(fp,
"bool %s::Notify()\n",classname);
 
 1356   fprintf(fp,
"   // The Notify() function is called when a new file is opened. This\n" 
 1357              "   // can be either for a new TTree in a TChain or when when a new TTree\n" 
 1358              "   // is started when using PROOF. It is normally not necessary to make changes\n" 
 1359              "   // to the generated code, but the routine can be extended by the\n" 
 1360              "   // user if needed. The return value is currently not used.\n\n");
 
 1361   fprintf(fp,
"   return true;\n");
 
 1367      fprintf(fp,
"void %s::Show(Long64_t entry)\n",classname);
 
 1369      fprintf(fp,
"// Print contents of entry.\n");
 
 1370      fprintf(fp,
"// If entry is not specified, print current entry\n");
 
 1372      fprintf(fp,
"   if (!fChain) return;\n");
 
 1373      fprintf(fp,
"   fChain->Show(entry);\n");
 
 1378      fprintf(fp,
"Int_t %s::Cut(Long64_t entry)\n",classname);
 
 1380      fprintf(fp,
"// This function may be called from Loop.\n");
 
 1381      fprintf(fp,
"// returns  1 if entry is accepted.\n");
 
 1382      fprintf(fp,
"// returns -1 otherwise.\n");
 
 1387   fprintf(fp,
"#endif // #ifdef %s_cxx\n",classname);
 
 1400      fprintf(
fpc,
"//   In a ROOT session, you can do:\n");
 
 1403      fprintf(
fpc,
"//      root> t.GetEntry(12); // Fill t data members with entry number 12\n");
 
 1404      fprintf(
fpc,
"//      root> t.Show();       // Show values of entry 12\n");
 
 1405      fprintf(
fpc,
"//      root> t.Show(16);     // Read and show values of entry 16\n");
 
 1406      fprintf(
fpc,
"//      root> t.Loop();       // Loop on all entries\n");
 
 1408      fprintf(
fpc,
"\n//     This is the loop skeleton where:\n");
 
 1409      fprintf(
fpc,
"//    jentry is the global entry number in the chain\n");
 
 1410      fprintf(
fpc,
"//    ientry is the entry number in the current Tree\n");
 
 1411      fprintf(
fpc,
"//  Note that the argument to GetEntry must be:\n");
 
 1412      fprintf(
fpc,
"//    jentry for TChain::GetEntry\n");
 
 1413      fprintf(
fpc,
"//    ientry for TTree::GetEntry and TBranch::GetEntry\n");
 
 1415      fprintf(
fpc,
"//       To read only selected branches, Insert statements like:\n");
 
 1417      fprintf(
fpc,
"//    fChain->SetBranchStatus(\"*\",0);  // disable all branches\n");
 
 1418      fprintf(
fpc,
"//    fChain->SetBranchStatus(\"branchname\",1);  // activate branchname\n");
 
 1420      fprintf(
fpc,
"//    fChain->GetEntry(jentry);       //read all branches\n");
 
 1421      fprintf(
fpc,
"//by  b_branchname->GetEntry(ientry); //read only this branch\n");
 
 1423      fprintf(
fpc,
"\n   Long64_t nentries = fChain->GetEntriesFast();\n");
 
 1424      fprintf(
fpc,
"\n   Long64_t nbytes = 0, nb = 0;\n");
 
 1425      fprintf(
fpc,
"   for (Long64_t jentry=0; jentry<nentries;jentry++) {\n");
 
 1426      fprintf(
fpc,
"      Long64_t ientry = LoadTree(jentry);\n");
 
 1428      fprintf(
fpc,
"      nb = fChain->GetEntry(jentry);   nbytes += nb;\n");
 
 1429      fprintf(
fpc,
"      // if (Cut(ientry) < 0) continue;\n");
 
 1436      fprintf(
fpc,
"// The class definition in %s.h has been generated automatically\n",classname);
 
 1437      fprintf(
fpc,
"// by the ROOT utility TTree::MakeSelector(). This class is derived\n");
 
 1438      fprintf(
fpc,
"// from the ROOT class TSelector. For more information on the TSelector\n" 
 1439                  "// framework see $ROOTSYS/README/README.SELECTOR or the ROOT User Manual.\n\n");
 
 1440      fprintf(
fpc,
"// The following methods are defined in this file:\n");
 
 1441      fprintf(
fpc,
"//    Begin():        called every time a loop on the tree starts,\n");
 
 1442      fprintf(
fpc,
"//                    a convenient place to create your histograms.\n");
 
 1443      fprintf(
fpc,
"//    SlaveBegin():   called after Begin(), when on PROOF called only on the\n" 
 1444                  "//                    slave servers.\n");
 
 1445      fprintf(
fpc,
"//    Process():      called for each event, in this function you decide what\n");
 
 1446      fprintf(
fpc,
"//                    to read and fill your histograms.\n");
 
 1447      fprintf(
fpc,
"//    SlaveTerminate: called at the end of the loop on the tree, when on PROOF\n" 
 1448                  "//                    called only on the slave servers.\n");
 
 1449      fprintf(
fpc,
"//    Terminate():    called at the end of the loop on the tree,\n");
 
 1450      fprintf(
fpc,
"//                    a convenient place to draw/fit your histograms.\n");
 
 1452      fprintf(
fpc,
"// To use this file, try the following session on your Tree T:\n");
 
 1454      fprintf(
fpc,
"// root> T->Process(\"%s.C\")\n",classname);
 
 1455      fprintf(
fpc,
"// root> T->Process(\"%s.C\",\"some options\")\n",classname);
 
 1456      fprintf(
fpc,
"// root> T->Process(\"%s.C+\")\n",classname);
 
 1464      fprintf(
fpc,
"void %s::Begin(TTree * /*tree*/)\n",classname);
 
 1466      fprintf(
fpc,
"   // The Begin() function is called at the start of the query.\n");
 
 1467      fprintf(
fpc,
"   // When running with PROOF Begin() is only called on the client.\n");
 
 1468      fprintf(
fpc,
"   // The tree argument is deprecated (on PROOF 0 is passed).\n");
 
 1470      fprintf(
fpc,
"   TString option = GetOption();\n");
 
 1475      fprintf(
fpc,
"void %s::SlaveBegin(TTree * /*tree*/)\n",classname);
 
 1477      fprintf(
fpc,
"   // The SlaveBegin() function is called after the Begin() function.\n");
 
 1478      fprintf(
fpc,
"   // When running with PROOF SlaveBegin() is called on each slave server.\n");
 
 1479      fprintf(
fpc,
"   // The tree argument is deprecated (on PROOF 0 is passed).\n");
 
 1481      fprintf(
fpc,
"   TString option = GetOption();\n");
 
 1486      fprintf(
fpc,
"bool %s::Process(Long64_t entry)\n",classname);
 
 1488      fprintf(
fpc,
"   // The Process() function is called for each entry in the tree (or possibly\n" 
 1489                  "   // keyed object in the case of PROOF) to be processed. The entry argument\n" 
 1490                  "   // specifies which entry in the currently loaded tree is to be processed.\n" 
 1491                  "   // It can be passed to either %s::GetEntry() or TBranch::GetEntry()\n" 
 1492                  "   // to read either all or the required parts of the data. When processing\n" 
 1493                  "   // keyed objects with PROOF, the object is already loaded and is available\n" 
 1494                  "   // via the fObject pointer.\n" 
 1496                  "   // This function should contain the \"body\" of the analysis. It can contain\n" 
 1497                  "   // simple or elaborate selection criteria, run algorithms on the data\n" 
 1498                  "   // of the event and typically fill histograms.\n" 
 1500                  "   // The processing can be stopped by calling Abort().\n" 
 1502                  "   // Use fStatus to set the return value of TTree::Process().\n" 
 1504                  "   // The return value is currently not used.\n\n", classname);
 
 1510      fprintf(
fpc,
"void %s::SlaveTerminate()\n",classname);
 
 1512      fprintf(
fpc,
"   // The SlaveTerminate() function is called after all entries or objects\n" 
 1513                  "   // have been processed. When running with PROOF SlaveTerminate() is called\n" 
 1514                  "   // on each slave server.");
 
 1520      fprintf(
fpc,
"void %s::Terminate()\n",classname);
 
 1522      fprintf(
fpc,
"   // The Terminate() function is the last function to be called during\n" 
 1523                  "   // a query. It always runs on the client, it can be used to present\n" 
 1524                  "   // the results graphically or save the results to file.");
 
 
 1570      Error(
"MakeCode",
"cannot open output file %s", tfile.
Data());
 
 1589   fprintf(fp,
"//////////////////////////////////////////////////////////\n");
 
 1590   fprintf(fp,
"//   This file has been automatically generated \n");
 
 1591   fprintf(fp,
"//     (%s by ROOT version%s)\n",
td.AsString(),
gROOT->GetVersion());
 
 1598   fprintf(fp,
"//////////////////////////////////////////////////////////\n");
 
 1604   fprintf(fp,
"//Reset ROOT and connect tree file\n");
 
 1605   fprintf(fp,
"   gROOT->Reset();\n");
 
 1607      fprintf(fp,
"\n#ifdef SINGLE_TREE\n");
 
 1608      fprintf(fp,
"   // The following code should be used if you want this code to access\n");
 
 1609      fprintf(fp,
"   // a single tree instead of a chain\n");
 
 1611   fprintf(fp,
"   TFile *f = (TFile*)gROOT->GetListOfFiles()->FindObject(\"%s\");\n",
treefile.Data());
 
 1622      fprintf(fp,
"#else // SINGLE_TREE\n\n");
 
 1623      fprintf(fp,
"   // The following code should be used if you want this code to access a chain\n");
 
 1624      fprintf(fp,
"   // of trees.\n");
 
 1625      fprintf(fp,
"   TChain *%s = new TChain(\"%s\",\"%s\");\n",
 
 1635      fprintf(fp,
"#endif // SINGLE_TREE\n\n");
 
 1639   fprintf(fp,
"//Declaration of leaves types\n");
 
 1644   const char *
headOK  = 
"   ";
 
 1653      if (
branch->GetListOfBranches()->GetEntriesFast() > 0) 
continue;
 
 1655      if ( 
branch->GetNleaves() > 1) {
 
 1663            if (dim) dim[0] = 0;
 
 1672         if (*bname == 
'.') *bname=
'_';
 
 1673         if (*bname == 
',') *bname=
'_';
 
 1674         if (*bname == 
':') *bname=
'_';
 
 1675         if (*bname == 
'<') *bname=
'_';
 
 1676         if (*bname == 
'>') *bname=
'_';
 
 1712   fprintf(fp,
"\n   // Set branch addresses.\n");
 
 1719      if ( 
branch->GetNleaves() > 1) {
 
 1727            if (dim) dim[0] = 0;
 
 1735         if (*bname == 
'.') *bname=
'_';
 
 1736         if (*bname == 
',') *bname=
'_';
 
 1737         if (*bname == 
':') *bname=
'_';
 
 1738         if (*bname == 
'<') *bname=
'_';
 
 1739         if (*bname == 
'>') *bname=
'_';
 
 1756   fprintf(fp,
"\n//     This is the loop skeleton\n");
 
 1757   fprintf(fp,
"//       To read only selected branches, Insert statements like:\n");
 
 1758   fprintf(fp,
"// %s->SetBranchStatus(\"*\",0);  // disable all branches\n",
fTree->
GetName());
 
 1759   fprintf(fp,
"// %s->SetBranchStatus(\"branchname\",1);  // activate branchname\n",
GetName());
 
 1761   fprintf(fp,
"\n   Long64_t nbytes = 0;\n");
 
 1762   fprintf(fp,
"//   for (Long64_t i=0; i<nentries;i++) {\n");
 
 
 1931      Error(
"MakeProxy",
"A file name for the user script is required");
 
 
 2018   std::vector<TString> 
cnames;
 
 2044      for (i=0;i<
ncols;i++) {
 
 2055   for (i=0;i<
ncols;i++) {
 
 2103            for (i=0;i<
ncols;i++) {
 
 2109         for (i=0;i<
ncols;i++) {
 
 
 2206   if (!selector) 
return -1;
 
 
 2304         if (
gROOT->IsInterrupted()) 
break;
 
 2329            if (
tpf) 
tpf->SetEntryRange(0,0);
 
 
 2454      int start = opt.
Index(
"lenmax=");
 
 2465      int start = opt.
Index(
"colsize=");
 
 2478      int start = opt.
Index(
"precision=");
 
 2490      int start = opt.
Index(
"col=");
 
 2524      for(; i<
flist.Length(); ++i) {
 
 2525         int next = 
flist.Index(
":",i);
 
 2528         } 
else if (next==
kNPOS) {
 
 2541   std::vector<TString> 
cnames;
 
 2547   const char *
fname = 
nullptr;
 
 2559      out.open(
fname, std::ios::out);
 
 2561         Error(
"Scan",
"Can not open file for redirection");
 
 2566   if (
leaves==
nullptr) 
return 0;
 
 2589         if (
lf->GetBranch()->GetListOfBranches()->GetEntries() > 0) 
continue;
 
 2590         cnames.push_back( 
lf->GetBranch()->GetMother()->GetName() );
 
 2598               if (
mother->GetType() == 3 || 
mother->GetType() == 4) {
 
 2605            if (!
strchr(
lf->GetBranch()->GetName() ,
'[') ) {
 
 2611             strcmp( 
lf->GetBranch()->GetName(), 
lf->GetName() ) != 0 ) {
 
 2642         if (
select->GetManager()->GetMultiplicity() > 0 ) {
 
 2652         switch( 
form->GetManager()->GetMultiplicity() ) {
 
 2677      out<<
onerow.Data()<<
"*"<<std::endl;
 
 2687      out<<
onerow.Data()<<
"*"<<std::endl;
 
 2697      out<<
onerow.Data()<<
"*"<<std::endl;
 
 2732               if (
ndata < var[
ui]->GetNdata() ) {
 
 2772            out<<
onerow.Data()<<
"*"<<std::endl;
 
 2797      out<<
onerow.Data()<<
"*"<<std::endl;
 
 
 2822   std::vector<TString> 
cnames;
 
 2838      if (!
select) 
return nullptr;
 
 2839      if (!
select->GetNdim()) { 
delete select; 
return nullptr; }
 
 2847      for (i=0;i<
ncols;i++) {
 
 2857   for (i=0;i<
ncols;i++) {
 
 2864   for (i = 0; i < 
ncols; i++) {
 
 2865      res->
AddField(i, var[i]->PrintValue(-1));
 
 2902         if (
select->EvalInstance(0) == 0) 
continue;
 
 2917            for (i=0;i<
ncols;i++) {
 
 2922         for (i=0;i<
ncols;i++) {
 
 
 2978   if (
gROOT->IsBatch()) {
 
 2979      if ((
hname != 
"RTreeViewer") || 
gROOT->IsWebDisplayBatch()) {
 
 2980         Warning(
"StartViewer", 
"The tree viewer cannot run in batch mode");
 
 2985   if (
auto h = 
gROOT->GetPluginManager()->FindHandler(
"TVirtualTreeViewer", 
hname.Data())) {
 
 2986      if (
h->LoadPlugin() != -1)
 
 
 3069   if (
npar <=0) { 
Error(
"UnbinnedFit", 
"Illegal number of parameters = %d",
npar); 
return 0; }
 
 3094      Info(
"UnbinnedFit",
"Ignore option D with more than 4 variables");
 
 3102      Error(
"UnbinnedFit", 
"Cannot fit: no entries selected");
 
 3113   std::vector<double *> 
vlist(ndim);
 
 3114   for (
int i = 0; i < ndim; ++i)
 
 3136         hf->SetLineWidth(3);
 
 3140         for (
Int_t bin=1;bin<=nbins;bin++) {
 
 3142            hf->SetBinContent(bin,func);
 
 
 3188         lnk->GetObject()->Notify();
 
 
R__EXTERN TApplication * gApplication
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
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 Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char filename
 
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 Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t result
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t index
 
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 Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t UChar_t len
 
R__EXTERN TVirtualMutex * gROOTMutex
 
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
 
void Printf(const char *fmt,...)
Formats a string in a circular formatting buffer and prints the string.
 
R__EXTERN TStyle * gStyle
 
R__EXTERN TSystem * gSystem
 
R__EXTERN Foption_t Foption
 
static TString R__GetBranchPointerName(TLeaf *leaf, bool replace=true)
Return the name of the branch pointer needed by MakeClass/MakeSelector.
 
R__EXTERN TVirtualMonitoringWriter * gMonitoringWriter
 
#define R__LOCKGUARD(mutex)
 
Class describing the un-binned data sets (just x coordinates values) of any dimensions.
 
const_iterator begin() const
 
void InitializeGraphics(Bool_t only_web=kFALSE)
Initialize the graphics environment.
 
static void CreateApplication()
Static function used to create a default application environment.
 
static void NeedGraphicsLibs()
Static method.
 
virtual Double_t GetBinWidth(Int_t bin) const
Return bin width.
 
A Branch for the case of an object.
 
A TTree is a list of TBranches.
 
A TChainElement describes a component of a TChain.
 
A chain is a collection of files containing TTree objects.
 
TClass instances represent classes, structs and namespaces in the ROOT type system.
 
Bool_t IsLoaded() const
Return true if the shared library of this class is currently in the a process's memory.
 
const char * GetDeclFileName() const
Return name of the file containing the declaration of this class.
 
static TClass * GetClass(const char *name, Bool_t load=kTRUE, Bool_t silent=kFALSE)
Static method returning pointer to TClass of the specified class name.
 
virtual void SetOwner(Bool_t enable=kTRUE)
Set whether this collection is the owner (enable==true) of its content.
 
virtual Int_t GetSize() const
Return the capacity of the collection, i.e.
 
This class stores the date and time with a precision of one second in an unsigned 32 bit word (950130...
 
TDirectory::TContext keeps track and restore the current directory.
 
virtual const char * GetPath() const
Returns the full path of the directory.
 
virtual TFile * GetFile() const
 
A List of entry numbers in a TTree or TChain.
 
virtual void SetTree(const TTree *tree)
If a list for a tree with such name and filename exists, sets it as the current sublist If not,...
 
virtual Long64_t GetN() const
 
virtual Int_t GetValue(const char *name, Int_t dflt) const
Returns the integer value for a resource.
 
<div class="legacybox"><h2>Legacy Code</h2> TEventList is a legacy interface: there will be no bug fi...
 
A ROOT file is an on-disk file, usually with extension .root, that stores objects in a file-system-li...
 
static Long64_t GetFileBytesRead()
Static function returning the total number of bytes read from all files.
 
Provides an indirection to the TFitResult class and with a semantics identical to a TFitResult pointe...
 
TH1 is the base class of all histogram classes in ROOT.
 
@ kNoAxis
NOTE: Must always be 0 !!!
 
virtual Int_t GetDimension() const
 
virtual TFitResultPtr Fit(const char *formula, Option_t *option="", Option_t *goption="", Double_t xmin=0, Double_t xmax=0)
Fit histogram with function fname.
 
void Draw(Option_t *option="") override
Draw this histogram with options.
 
virtual UInt_t SetCanExtend(UInt_t extendBitMask)
Make the histogram axes extendable / not extendable according to the bit mask returns the previous bi...
 
TList * GetListOfFunctions() const
 
virtual void Scale(Double_t c1=1, Option_t *option="")
Multiply this histogram by a constant c1.
 
TObject * Clone(const char *newname="") const override
Make a complete copy of the underlying object.
 
virtual Double_t GetSumOfWeights() const
Return the sum of weights excluding under/overflows.
 
virtual void LabelsDeflate(Option_t *axis="X")
Reduce the number of bins for the axis passed in the option to the number of bins having a label.
 
A TLeaf for a general object derived from TObject.
 
A TLeaf describes individual elements of a TBranch See TBranch structure in TTree.
 
void Clear(Option_t *option="") override
Remove all objects from the list.
 
TObject * FindObject(const char *name) const override
Find an object in this list using its name.
 
void Add(TObject *obj) override
 
virtual TObjLink * FirstLink() const
 
void Delete(Option_t *option="") override
Remove all objects from the list AND delete all heap based objects.
 
TObject * At(Int_t idx) const override
Returns the object at position idx. Returns 0 if idx is out of range.
 
The TNamed class is the base class for all named ROOT classes.
 
const char * GetName() const override
Returns name of object.
 
const char * GetTitle() const override
Returns title of object.
 
Wrapper around a TObject so it can be stored in a TList.
 
Collectable string class.
 
const char * GetName() const override
Returns name of object.
 
Mother of all ROOT objects.
 
virtual const char * GetName() const
Returns name of object.
 
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
 
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
 
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
 
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
 
@ kCanDelete
if object in a list can be deleted
 
virtual void Info(const char *method, const char *msgfmt,...) const
Issue info message.
 
Principal Components Analysis (PCA)
 
A container proxy, which allows to access references stored in a TRefArray from TTree::Draw.
 
A specialized TSelector for TTree::Draw.
 
virtual void SetEstimate(Long64_t n)
Set number of entries to estimate variable limits.
 
TTreeFormula * GetVar3() const
See TSelectorDraw::GetVar.
 
virtual Long64_t GetDrawFlag() const
 
TH1 * GetOldHistogram() const
 
virtual UInt_t SplitNames(const TString &varexp, std::vector< TString > &names)
Build Index array for names in varexp.
 
TObject * GetObject() const
 
TTreeFormula * GetVar2() const
See TSelectorDraw::GetVar.
 
virtual Int_t GetAction() const
 
TTreeFormula * GetVar1() const
See TSelectorDraw::GetVar.
 
virtual Int_t GetDimension() const
 
virtual Double_t * GetVal(Int_t i) const
Return the last values corresponding to the i-th component of the formula being processed (where the ...
 
bool Notify() override
This function is called at the first entry of a new tree in a chain.
 
virtual bool GetCleanElist() const
 
The class is derived from the ROOT class TSelector.
 
virtual Long64_t GetSelectedRows() const
 
A TSelector object is used by the TTree::Draw, TTree::Scan, TTree::Process to navigate in a TTree and...
 
virtual EAbort GetAbort() const
 
virtual void ProcessFill(Long64_t)
This method is called for all selected entries.
 
virtual void Init(TTree *)
 
virtual int Version() const
 
virtual bool ProcessCut(Long64_t)
This method is called before processing entry.
 
virtual bool Process(Long64_t)
The Process() function is called for each entry in the tree (or possibly keyed object in the case of ...
 
TClass * IsA() const override
 
virtual void SlaveBegin(TTree *)
 
bool Notify() override
This method must be overridden to handle object notification (the base implementation is no-op).
 
virtual void SetOption(const char *option)
 
virtual Long64_t GetStatus() const
 
virtual void SetInputList(TList *input)
 
virtual TList * GetOutputList() const
 
virtual void SlaveTerminate()
 
virtual void ResetAbort()
 
virtual void Begin(TTree *)
 
static TSelector * GetSelector(const char *filename)
The code in filename is loaded (interpreted or compiled, see below), filename must contain a valid cl...
 
void ToLower()
Change string to lower-case.
 
const char * Data() const
 
TString & ReplaceAll(const TString &s1, const TString &s2)
 
void ToUpper()
Change string to upper case.
 
TString & Remove(Ssiz_t pos)
 
void Form(const char *fmt,...)
Formats a string using a printf style format descriptor.
 
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
 
Ssiz_t Index(const char *pat, Ssiz_t i=0, ECaseCompare cmp=kExact) const
 
Bool_t GetCanvasPreferGL() const
 
void SetCanvasPreferGL(Bool_t prefer=kTRUE)
 
Int_t GetNumberOfColors() const
Return number of colors in the color palette.
 
virtual Bool_t IsFileInIncludePath(const char *name, char **fullpath=nullptr)
Return true if 'name' is a file that can be found in the ROOT include path or the current directory.
 
virtual TString SplitAclicMode(const char *filename, TString &mode, TString &args, TString &io) const
This method split a filename of the form:
 
Base class for several text objects.
 
A cache to speed-up the reading of ROOT datasets.
 
A Tree Index with majorname and minorname.
 
Implement some of the functionality of the class TTree requiring access to extra libraries (Histogram...
 
Int_t MakeCode(const char *filename) override
Generate skeleton function for this Tree.
 
TTree * CopyTree(const char *selection, Option_t *option, Long64_t nentries, Long64_t firstentry) override
Copy a Tree with selection, make a clone of this Tree header, then copy the selected entries.
 
Long64_t DrawSelect(const char *varexp, const char *selection, Option_t *option, Long64_t nentries, Long64_t firstentry) override
Draw expression varexp for specified entries that matches the selection.
 
TList * fInput
! input list to the selector
 
void DeleteSelectorFromFile()
Delete any selector created by this object.
 
void SetEstimate(Long64_t n) override
Set number of entries to estimate variable limits.
 
Int_t UnbinnedFit(const char *formula, const char *varexp, const char *selection, Option_t *option, Long64_t nentries, Long64_t firstentry) override
Unbinned fit of one or more variable(s) from a Tree.
 
void RecursiveRemove(TObject *obj) override
cleanup pointers in the player pointing to obj
 
Long64_t DrawScript(const char *wrapperPrefix, const char *macrofilename, const char *cutfilename, Option_t *option, Long64_t nentries, Long64_t firstentry) override
Draw the result of a C++ script.
 
TSelectorDraw * fSelector
! Pointer to current selector
 
void SetTree(TTree *t) override
 
Long64_t GetSelectedRows() const override
 
Int_t MakeReader(const char *classname, Option_t *option) override
Generate skeleton selector class for this tree.
 
const char * GetNameByIndex(TString &varexp, Int_t *index, Int_t colindex)
Return name corresponding to colindex in varexp.
 
Long64_t fSelectedRows
Number of selected entries.
 
Long64_t Scan(const char *varexp, const char *selection, Option_t *option, Long64_t nentries, Long64_t firstentry) override
Loop on Tree and print entries passing selection.
 
TSelector * fSelectorFromFile
! Pointer to a user defined selector created by this TTreePlayer object
 
const char * fScanFileName
Name of the file where Scan is redirected.
 
TList * fFormulaList
! Pointer to a list of coordinated list TTreeFormula (used by Scan and Query)
 
bool fScanRedirect
Switch to redirect TTree::Scan output to a file.
 
TTree * fTree
! Pointer to current Tree
 
void StartViewer(Int_t ww, Int_t wh) override
Start the TTreeViewer on this TTree.
 
Int_t MakeProxy(const char *classname, const char *macrofilename=nullptr, const char *cutfilename=nullptr, const char *option=nullptr, Int_t maxUnrolling=3) override
Generate a skeleton analysis class for this Tree using TBranchProxy.
 
Int_t MakeClass(const char *classname, Option_t *option) override
Generate skeleton analysis class for this Tree.
 
TPrincipal * Principal(const char *varexp, const char *selection, Option_t *option, Long64_t nentries, Long64_t firstentry) override
Interface to the Principal Components Analysis class.
 
TSelector * fSelectorUpdate
! Set to the selector address when it's entry list needs to be updated by the UpdateFormulaLeaves fun...
 
TH1 * fHistogram
! Pointer to histogram used for the projection
 
void UpdateFormulaLeaves() override
this function is called by TChain::LoadTree when a new Tree is loaded.
 
Long64_t Process(const char *filename, Option_t *option, Long64_t nentries, Long64_t firstentry) override
Process this tree executing the TSelector code in the specified filename.
 
TSQLResult * Query(const char *varexp, const char *selection, Option_t *option, Long64_t nentries, Long64_t firstentry) override
Loop on Tree and return TSQLResult object containing entries passing selection.
 
TClass * fSelectorClass
! Pointer to the actual class of the TSelectorFromFile
 
Long64_t GetEntries(const char *selection) override
Return the number of entries matching the selection.
 
Int_t GetDimension() const override
 
Int_t fDimension
Dimension of the current expression.
 
TTreePlayer()
Default Tree constructor.
 
TVirtualIndex * BuildIndex(const TTree *T, const char *majorname, const char *minorname, bool long64major=false, bool long64minor=false) override
Build the index for the tree (see TTree::BuildIndex)
 
~TTreePlayer() override
Tree destructor.
 
Int_t Fit(const char *formula, const char *varexp, const char *selection, Option_t *option, Option_t *goption, Long64_t nentries, Long64_t firstentry) override
Fit a projected item(s) from a Tree.
 
virtual Long64_t GetEntriesToProcess(Long64_t firstentry, Long64_t nentries) const
return the number of entries to be processed this function checks that nentries is not bigger than th...
 
Class defining interface to a TTree query result with the same interface as for SQL databases.
 
void AddRow(TSQLRow *row)
Adopt a row to result set.
 
void AddField(Int_t field, const char *fieldname)
Add field name to result set.
 
Class defining interface to a row of a TTree query result.
 
A TTree represents a columnar dataset.
 
bool EnableCache()
Enable the TTreeCache unless explicitly disabled for this TTree by a prior call to SetCacheSize(0).
 
virtual TBranch * GetBranch(const char *name)
Return pointer to the branch with the given name in this tree or its friends.
 
virtual Int_t GetScanField() const
 
virtual Int_t GetEntry(Long64_t entry, Int_t getall=0)
Read all branches of entry and return total number of bytes read.
 
virtual Long64_t GetEstimate() const
 
virtual TObjArray * GetListOfLeaves()
 
TFile * GetCurrentFile() const
Return pointer to the current file.
 
void Draw(Option_t *opt) override
Default Draw method for all objects.
 
virtual void SetNotify(TObject *obj)
Sets the address of the object to be notified when the tree is loaded.
 
TDirectory * GetDirectory() const
 
virtual TEntryList * GetEntryList()
Returns the entry list assigned to this tree.
 
virtual Long64_t Process(const char *filename, Option_t *option="", Long64_t nentries=kMaxEntries, Long64_t firstentry=0)
Process this tree executing the TSelector code in the specified filename.
 
virtual Long64_t GetEntries() const
 
virtual void SetEstimate(Long64_t nentries=1000000)
Set number of entries to estimate variable limits.
 
virtual Long64_t GetEntryNumber(Long64_t entry) const
Return entry number corresponding to entry.
 
virtual TTree * CloneTree(Long64_t nentries=-1, Option_t *option="")
Create a clone of this tree and copy nentries.
 
virtual TTree * GetTree() const
 
virtual void SetEntryList(TEntryList *list, Option_t *opt="")
Set an EntryList.
 
virtual Long64_t LoadTree(Long64_t entry)
Set current entry.
 
TEventList * GetEventList() const
 
virtual Long64_t GetEntriesFriend() const
Return pointer to the 1st Leaf named name in any Branch of this Tree or any branch in the list of fri...
 
virtual Int_t GetTreeNumber() const
 
virtual Int_t GetTimerInterval() const
 
virtual void SetScanField(Int_t n=50)
 
virtual Long64_t GetCacheSize() const
 
virtual Long64_t GetMaxEntryLoop() const
 
Abstract Base Class for Fitting.
 
Abstract interface for Tree Index.
 
virtual Bool_t SendProcessingProgress(Double_t, Double_t, Bool_t=kFALSE)
 
virtual Bool_t SendProcessingStatus(const char *, Bool_t=kFALSE)
 
TFitResultPtr UnBinFit(ROOT::Fit::UnBinData *data, TF1 *f1, Foption_t &option, const ROOT::Math::MinimizerOptions &moption)
fit an unbin data set (from tree or from histogram buffer) using a TF1 pointer and fit options.
 
Short_t Max(Short_t a, Short_t b)
Returns the largest of a and b.
 
Short_t Min(Short_t a, Short_t b)
Returns the smallest of a and b.