--- UserCode/claudioc/ScansICHEP2012/code/Functions.cc 2012/06/16 01:51:53 1.1 +++ UserCode/claudioc/ScansICHEP2012/code/Functions.cc 2012/07/02 04:42:05 1.2 @@ -5,7 +5,7 @@ double observedLimitOnNumberOfEvents( in int SR ; - float err,obs,exp, myUL, myMinErr = 9999; + float err,obs,exp, exp_PlusSigma, exp_MinusSigma, myUL, myMinErr = 9999; TString MyFile = "empty"; @@ -21,7 +21,7 @@ double observedLimitOnNumberOfEvents( in return 1; } - while( fLimits >> SR >> err >> exp >> obs ){ + while( fLimits >> SR >> err >> exp >> obs >> exp_PlusSigma >> exp_MinusSigma ){ if( SR == mySR ){ @@ -43,7 +43,7 @@ double expectedLimitOnNumberOfEvents( in int SR ; - float err,obs,exp, myUL, myMinErr = 9999; + float err,obs,exp, exp_PlusSigma, exp_MinusSigma, myUL, myMinErr = 9999; TString MyFile = "empty"; @@ -59,7 +59,7 @@ double expectedLimitOnNumberOfEvents( in return 1; } - while( fLimits >> SR >> err >> exp >> obs ){ + while( fLimits >> SR >> err >> exp >> obs >> exp_PlusSigma >> exp_MinusSigma ){ if( SR == mySR ){ @@ -71,6 +71,84 @@ double expectedLimitOnNumberOfEvents( in } } } + + return myUL; +} + + + +double expectedMinusOneSigmaLimitOnNumberOfEvents( int mySR, float accUncertainty, bool Posteriori ){ + + + int SR ; + float err,obs,exp, exp_PlusSigma, exp_MinusSigma, myUL, myMinErr = 9999; + TString MyFile = "empty"; + + + //input files: + if( Posteriori ) + MyFile = "LandsOutput_Posterior.txt"; + else + MyFile = "LandsOutput_Apriori.txt"; + + ifstream fLimits(""+MyFile+"", ifstream::in); + if( !fLimits.is_open() ){ + cerr << "[ERROR] Limit file is null " << endl; + return 1; + } + + while( fLimits >> SR >> err >> exp >> obs >> exp_PlusSigma >> exp_MinusSigma ){ + + if( SR == mySR ){ + + // To Find the UL for a given accUncert!! + float dAncc = TMath::Abs( err - accUncertainty ); + if( dAncc < myMinErr ){ + myMinErr = dAncc ; + myUL = exp_MinusSigma ; + } + } + } + + return myUL; +} + + + + + +double expectedPlusOneSigmaLimitOnNumberOfEvents( int mySR, float accUncertainty, bool Posteriori ){ + + + int SR ; + float err,obs,exp, exp_PlusSigma, exp_MinusSigma, myUL, myMinErr = 9999; + TString MyFile = "empty"; + + + //input files: + if( Posteriori ) + MyFile = "LandsOutput_Posterior.txt"; + else + MyFile = "LandsOutput_Apriori.txt"; + + ifstream fLimits(""+MyFile+"", ifstream::in); + if( !fLimits.is_open() ){ + cerr << "[ERROR] Limit file is null " << endl; + return 1; + } + + while( fLimits >> SR >> err >> exp >> obs >> exp_PlusSigma >> exp_MinusSigma ){ + + if( SR == mySR ){ + + // To Find the UL for a given accUncert!! + float dAncc = TMath::Abs( err - accUncertainty ); + if( dAncc < myMinErr ){ + myMinErr = dAncc ; + myUL = exp_PlusSigma ; + } + } + } return myUL; }