This file is indexed.

/usr/include/root/RooStats/ProofConfig.h is in libroot-roofit-dev 5.34.30-0ubuntu8.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
// @(#)root/roostats:$Id$
// Author: Kyle Cranmer and Sven Kreiss  July 2010
/*************************************************************************
 * Copyright (C) 1995-2008, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

#ifndef ROOSTATS_ProofConfig
#define ROOSTATS_ProofConfig

//_________________________________________________
/*
BEGIN_HTML
<p>
Holds configuration options for proof and proof-lite.

This class will be expanded in the future to hold more specific configuration
options for the tools in RooStats.
</p>


<p>
Access to TProof::Mgr for configuration is still possible as usual
(e.g. to set Root Version to be used on workers). You can do:</p>
<ul>
  <li>TProof::Mgr("my.server.url")->ShowROOTVersions()</li>
  <li>TProof::Mgr("my.server.url")->SetROOTVersion("v5-27-06_dbg")</li>
</ul>

<p>
See doc: http://root.cern.ch/drupal/content/changing-default-root-version
</p>
END_HTML
*/
//

#ifndef ROOT_Rtypes
#include "Rtypes.h"
#endif

#include "RooWorkspace.h"
#include "RooStudyManager.h"

#include "TROOT.h"

namespace RooStats {

class ProofConfig {

   public:
      
      // configure proof with number of experiments and host session
      //  in case of Prooflite, it is better to define the number of workers as "worker=n" in the host string 

      ProofConfig(RooWorkspace &w, Int_t nExperiments = 0, const char *host = "", Bool_t showGui = kFALSE) :
         fWorkspace(w),
         fNExperiments(nExperiments),
         fHost(host),
         fShowGui(showGui)
      {

            // case of ProofLite
         if (fHost == "" || fHost.Contains("lite") ) { 
            fLite = true; 


            // get the default value of the machine - use CINT inetrface until we have a poper PROOF interface that we can call 
            int nMaxWorkers = gROOT->ProcessLineFast("TProofLite::GetNumberOfWorkers()");

            if (nExperiments == 0) {
               fNExperiments = nMaxWorkers;
            }

            if (nExperiments > nMaxWorkers) 
               std::cout << "ProofConfig - Warning: using a number of workers = " << nExperiments << " which is larger than the number of cores in the machine " 
                         << nMaxWorkers << std::endl;
            
            // set the number of workers in the Host string 
            fHost = TString::Format("workers=%d",fNExperiments);
         } 
         else { 
            fLite = false; 
            // have always a default number of experiments
            if (nExperiments == 0) fNExperiments = 8;  
         }
      }


      virtual ~ProofConfig() {
         ProofConfig::CloseProof();
      }

      /// close all proof connections
      static void CloseProof(Option_t *option = "s") { RooStudyManager::closeProof(option); }

      // returns fWorkspace
      RooWorkspace& GetWorkspace(void) const { return fWorkspace; }
      // returns fHost
      const char* GetHost(void) const { return fHost; }
      // return fNExperiments
      Int_t GetNExperiments(void) const { return fNExperiments; }
      // return fShowGui
      Bool_t GetShowGui(void) const { return fShowGui; }
      // return true if it is a Lite session (ProofLite) 
      Bool_t IsLite() const { return fLite; }

   protected:
      RooWorkspace& fWorkspace;   // workspace that is to be used with the RooStudyManager
      Int_t fNExperiments;        // number of experiments. This is sometimes called "events" in proof; "experiments" in RooStudyManager.
      TString fHost;              // Proof hostname. Use empty string (ie "") for proof-lite. Can also handle options like "workers=2" to run on two nodes.
      Bool_t fShowGui;            // Whether to show the Proof Progress window.
      Bool_t fLite;               // Whether we have a Proof Lite session

   protected:
   ClassDef(ProofConfig,1) // Configuration options for proof.
};
}


#endif