This file is indexed.

/usr/include/root/RooStats/FeldmanCousins.h is in libroot-roofit-dev 5.34.00-2.

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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
// @(#)root/roostats:$Id: FeldmanCousins.h 44368 2012-05-30 15:38:44Z axel $
// Author: Kyle Cranmer, Lorenzo Moneta, Gregory Schott, Wouter Verkerke
/*************************************************************************
 * 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_FeldmanCousins
#define ROOSTATS_FeldmanCousins


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

#ifndef ROOSTATS_IntervalCalculator
#include "RooStats/IntervalCalculator.h"
#endif

#include "RooStats/ToyMCSampler.h"
#include "RooStats/ConfidenceBelt.h"
#include "RooStats/PointSetInterval.h"

#include "RooAbsData.h"
#include "RooAbsPdf.h"
#include "RooArgSet.h"
#include "TList.h"

class RooAbsData; 

namespace RooStats {

   class ConfInterval; 

   class FeldmanCousins : public IntervalCalculator {

   public:

     //     FeldmanCousins();

     // Common constructor
     FeldmanCousins(RooAbsData& data, ModelConfig& model);

     virtual ~FeldmanCousins();
    
      // Main interface to get a ConfInterval (will be a PointSetInterval)
      virtual PointSetInterval* GetInterval() const;

      // Get the size of the test (eg. rate of Type I error)
      virtual Double_t Size() const {return fSize;}
      // Get the Confidence level for the test
      virtual Double_t ConfidenceLevel()  const {return 1.-fSize;}  
      // Set the DataSet
      virtual void SetData(RooAbsData& /*data*/) {  
	std::cout << "DEPRECATED, set data in constructor" << std::endl;
      }    
      // Set the Pdf
      virtual void SetPdf(RooAbsPdf& /*pdf*/) { 
	std::cout << "DEPRECATED, use ModelConfig" << std::endl;
      }	

      // specify the parameters of interest in the interval
      virtual void SetParameters(const RooArgSet& /*set*/) { 
	std::cout << "DEPRECATED, use ModelConfig" << std::endl;
      }

      // specify the nuisance parameters (eg. the rest of the parameters)
      virtual void SetNuisanceParameters(const RooArgSet& /*set*/) {
	std::cout << "DEPRECATED, use ModelConfig" << std::endl;
      }

      // User-defined set of points to test
      void SetParameterPointsToTest(RooAbsData& pointsToTest) {
	fPointsToTest = &pointsToTest;
      }

      // User-defined set of points to test
      void SetPOIPointsToTest(RooAbsData& poiToTest) {
	fPOIToTest = &poiToTest;
      }

      // set the size of the test (rate of Type I error) ( Eg. 0.05 for a 95% Confidence Interval)
      virtual void SetTestSize(Double_t size) {fSize = size;}
      // set the confidence level for the interval (eg. 0.95 for a 95% Confidence Interval)
      virtual void SetConfidenceLevel(Double_t cl) {fSize = 1.-cl;}

      virtual void SetModel(const ModelConfig &); 

      RooAbsData* GetPointsToScan() {
	if(!fPointsToTest) CreateParameterPoints();	  
	return fPointsToTest;
      }

      ConfidenceBelt* GetConfidenceBelt() {return fConfBelt;}

      void UseAdaptiveSampling(bool flag=true){fAdaptiveSampling=flag;}

      void AdditionalNToysFactor(double fact){fAdditionalNToysFactor = fact;}

      void SetNBins(Int_t bins) {fNbins = bins;}

      void FluctuateNumDataEntries(bool flag=true){fFluctuateData = flag;}

      void SaveBeltToFile(bool flag=true){
	fSaveBeltToFile = flag;
	if(flag) fCreateBelt = true;
      }
      void CreateConfBelt(bool flag=true){fCreateBelt = flag;}

      // Returns instance of TestStatSampler. Use to change properties of
      // TestStatSampler, e.g. GetTestStatSampler.SetTestSize(Double_t size);
      TestStatSampler* GetTestStatSampler() const;

      
   private:

      // initializes fPointsToTest data member (mutable)
      void CreateParameterPoints() const;

      // initializes fTestStatSampler data member (mutable)
      void CreateTestStatSampler() const;

      Double_t fSize; // size of the test (eg. specified rate of Type I error)
      ModelConfig &fModel;
      RooAbsData & fData; // data set 

      /*
      RooAbsPdf * fPdf; // common PDF
      RooArgSet fPOI; // RooArgSet specifying  parameters of interest for interval
      RooArgSet fNuisParams;// RooArgSet specifying  nuisance parameters for interval
      RooArgSet fObservables;// RooArgSet specifying  nuisance parameters for interval
      */

      mutable ToyMCSampler* fTestStatSampler; // the test statistic sampler
      mutable RooAbsData* fPointsToTest; // points to perform the construction
      mutable RooAbsData* fPOIToTest; // value of POI points to perform the construction
      mutable ConfidenceBelt* fConfBelt;
      Bool_t fAdaptiveSampling; // controls use of adaptive sampling algorithm
      Double_t fAdditionalNToysFactor; // give user ability to ask for more toys
      Int_t fNbins; // number of samples per variable
      Bool_t fFluctuateData;  // tell ToyMCSampler to fluctuate number of entries in dataset
      Bool_t fDoProfileConstruction; // instead of full construction over nuisance parametrs, do profile
      Bool_t fSaveBeltToFile; // controls use if ConfidenceBelt should be saved to a TFile
      Bool_t fCreateBelt; // controls use if ConfidenceBelt should be saved to a TFile

   protected:
      ClassDef(FeldmanCousins,2)   // Interface for tools setting limits (producing confidence intervals)
   };
}


#endif