ZPrime Combine Manual
User Manual:
Open the PDF directly: View PDF .
Page Count: 13
Download | |
Open PDF In Browser | View PDF |
ZPrimeCombine Interface to the Higgs Combine Tool for the Z 0 → `` search User Manual Jan-Frederik Schulte Version 2.0.0, 2018/17/07 Contents Contents Contents 1 Introduction 3 2 Setup 3 3 Usage 3.1 Input creation . . . . . . . . . . . . . . . . . . . 3.2 Running statistical procedures . . . . . . . . . . . 3.2.1 Binned limits . . . . . . . . . . . . . . . 3.2.2 Single mass/Λ points . . . . . . . . . . . 3.2.3 Spin-2 limits . . . . . . . . . . . . . . . . 3.2.4 Signal injection and Look Elsewhere Effect 3.2.5 Contact Interaction limits . . . . . . . . . 3.2.6 Job submission . . . . . . . . . . . . . . 3.3 Output processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4 10 10 11 11 11 11 12 12 2 Contents 1 Introduction 1 Introduction The ZPrimeCombine package, to be found on Gitlab, provides an interface between the experimental results of the Z 0 → `` analysis, as well as the non-resonant interpretation in Contact Interactions, and the Higgs Combine Tool. This tool, referred to simply as “combine” going further, is in turn an interface to the underlying statistical tools provided by RooStats. This document aims to summarize the functionality of the the tool and give instructions how to use it to derive limits and significances for the analysis. 2 Setup The current implementation in the package is based on version v7.0.10 of combine. CMSSW_8_1_0 is used to set the environment, but this is only to ensure a consistent version of ROOT, Combine does not rely on CMSSW itself. Combine is installed using the following commands export SCRAM_ARCH=slc6_amd64_gcc530 cmsrel CMSSW_8_1_0 cd CMSSW_8_1_0/src cmsenv git clone https://github.com/cms-analysis/HiggsAnalysis-CombinedLimit.git HiggsAnalysis/CombinedLimit cd HiggsAnalysis/CombinedLimit cd $CMSSW_BASE/src/HiggsAnalysis/CombinedLimit git fetch origin git checkout v7.0.10 scramv1 b clean; scramv1 b # always make a clean build Detailed documentation of combine can be found on this Twiki page. To finish the setup, just clone the ZPrimeCombine repository from the link given above. Note that this is only possible for CMS members subscribed to the Z 0 e-group. This documentation refers to version 1.0 of the framework, which can be checked out using git checkout v1.0. At the moment of writing this, all developments are merged into the master branch. This might change in the future, so be aware that you might have to check out a different branch to find the functionality you need. 3 Usage The central entry point to the framework is the script runInterpretation.py. It steers both the creation of the inputs given to combine as well as the execution of it, either locally or via batch/grid jobs. Let’s have a look at its functionality: Steering tool for Zprime -> ll analysis interpretation in combine optional arguments: -h, --help -r, --redo show this help message and exit recreate datacards and workspaces for this 3 Contents 3 Usage configuration -w, --write create datacards and workspaces for this configuration -b, --binned use binned dataset -s, --submit submit jobs to cluster --signif run significance instead of limits --LEE run significance on BG only toys to estimate LEE --frequentist use frequentist CLs limits --hybrid use frequenstist-bayesian hybrid methods --plc use PLC for signifcance calculation -e, --expected expected limits -i, --inject inject signal --recreateToys recreate the toy dataset for this configuration --crab submit to crab -c CONFIG, --config CONFIG name of the congiguration to use -t TAG, --tag TAG tag to label output --workDir WORKDIR tells batch jobs where to put the datacards. Not for human use! -n NTOYSEXP, --nToysExp NTOYSEXP number of expected limits to be calculated in one job, overwrites then expToys option from the config file. Used for CONDOR jobs at LPC so far -m MASS, --mass MASS mass point -L LAMBDA, --Lambda LAMBDA Lambda values --CI calculate CI limits --usePhysicsModel use PhysicsModel to set limtsi of Lamda --singlebin use single bin counting for CI. The mass parameter now designates the lower mass threshold --Lower calculate lower limits --spin2 calculate limits for spin2 resonances --bias perform bias study In the following the use of these options for different purposes is described. The most important parameter is -c, which tells the framework, which configuration file to use for steering. It is the only argument which is mandatory to give, and the name of the configuration will be used to tag all inputs and results. The configuration files themselves are discussed in the next section. Another universal option is the -t option which can used to tag the in- and output of the tool. 3.1 Input creation The first task of the framework is to create the datacards and workspaces used as inputs for combine. To provide the framework with the necessary information, the user has to provide two different types of inputs. All experimental information is located in the input/ directory. Here, for each channel of the analysis, there is one channelConfig_channelName.py file. For example, for the barrel-barrel category in the dimuon channel for the 2016 result (EXO-16-047), 4 Contents 3 Usage it looks like the example shown below. Important things are commented throughout. 5 Contents 3 Usage i m p o r t ROOT , sys ROOT . gROOT . SetBatch ( True ) ROOT . g E r r o r I g n o r e L e v e l = 1 from ROOT i m p o r t ∗ from muonR esolutio n i m p o r t getResolution as getRes #e x t e r n a l s o u r c e f o r ←p a r a m e t r i z a t i o n o f dimuon r e s o l u t i o n nBkg = −1 dataFile = " i n p u t / dimuon_Mordion2017_BB . t x t " d e f a d d B k g U n c e r t P r i o r ( ws , label , channel , uncert ) : beta_bkg = RooRealVar ( ' beta_%s_%s ' %(label , channel ) , ' beta_%s_%s ' %(label , ←channel ) , 0 , − 5 , 5 ) g e t a t t r ( ws , ' i m p o r t ' ) ( beta_bkg , ROOT . RooCmdArg ( ) ) uncert = 1 . + uncert bkg_kappa = RooRealVar ( '%s_%s_kappa ' %(label , channel ) , '%s_%s_kappa ' %(label ←, channel ) , uncert ) bkg_kappa . setConstant ( ) g e t a t t r ( ws , ' i m p o r t ' ) ( bkg_kappa , ROOT . RooCmdArg ( ) ) ws . factory ( " PowFunc : : % s_%s _ n u i s (%s_%s_kappa , beta_%s_%s ) "%(label , channel , ←label , channel , label , channel ) ) ws . factory ( " p r o d : : % s_%s _ f o r U s e (%s_%s , %s_%s _ n u i s ) "%(label , channel , label , ←channel , label , channel ) ) #f u n c t i o n a l i t y t o add a u n c e r t a i n t y t o a b a c k g r o u n d f i t p a r a m e t e r d e f p r o v i d e S i g n a l S c a l i n g ( mass , spin2=False ) : nz = 53134 #From A l e x a n d e r ( 8 0X Moriond ReReco ) nsig_scale = 1 3 7 6 . 0 2 0 8 3 6 7 5 1 4 3 5 8 # p r e s c a l e / e f f _ z ( 1 6 7 . 7 3 6 9 4 / 0 . 1 2 1 9 ) ←−−> d e r i v e s t h e l u m i eff = signalEff ( mass , spin2 ) result = ( nsig_scale ∗ nz ∗ eff ) r e t u r n result #p r o v i d e s t h e s c a l i n g o f t h e s i g n a l c r o s s s e c t i o n t o t h e Z p e a k s o t h a t we can ←s e t l i m i t s on t h e c r o s s s e c t i o n r a t i o d e f signalEff ( mass , spin2=False ) : i f spin2 : eff_a = 1 . 0 2 0 3 8 2 eff_b = −1166.881533 eff_c = 1 4 6 8 . 9 8 9 4 9 6 eff_d = 0 . 0 0 0 0 4 4 r e t u r n eff_a + eff_b / ( mass + eff_c ) − mass ∗ eff_d else : i f mass <= 6 0 0 : a = 2.129 b = 0.1268 c = 119.2 d = 22.35 e = −2.386 f = −0.03619 from math i m p o r t exp r e t u r n a − b ∗ exp ( −(mass − c ) / d ) + e ∗ mass ∗∗ f else : eff_a eff_b eff_c eff_d #mass d e p e n d i n g s i g n a l = = = = 2.891 −2.291 e+04 8294. 0.0001247 return eff_a + eff_b / ( mass + eff_c ) − mass ∗ eff_d e f f i c i e n c y f o r the resonant search d e f s ig na lE f fU nc er t ( mass ) : 6 Contents 3 Usage i f mass <= 6 0 0 : a = 2.129 b = 0.1268 c = 119.2 d = 22.38 e = −2.386 f = −0.03623 from math i m p o r t exp eff_default = a − b ∗ exp ( −(mass − c ) / d ) + e ∗ mass ∗∗ f else : eff_a = 2.891 eff_b = −2.291 e+04 eff_c = 8294. eff_d = 0.0001247 eff_default = eff_a + eff_b / ( mass + eff_c ) − mass ∗ eff_d i f mass <= 6 0 0 : a = 2.13 b = 0.1269 c = 119.2 d = 22.42 e = −2.384 f = −0.03596 from math i m p o r t exp eff_syst = a − b ∗ exp ( −(mass − c ) / d ) + e ∗ mass ∗∗ f else : eff_a = 2.849 eff_b = −2.221 e+04 eff_c = 8166. eff_d = 0.0001258 eff_syst = eff_a + eff_b / ( mass + eff_c ) − mass ∗ eff_d effDown = eff_default / eff_syst r e t u r n [ 1 . / effDown , 1 . 0 ] #one−s i d e d s i g n a l e f f i c i e n c y u n c e r t a i n t y from h i g h momentum e f f i c i e n c y loss d e f p r o v i d e U n c e r t a i n t i e s ( mass ) : result = {} result [ " s i g E f f " ] = s ig na lE f fU nc er t ( mass ) result [ " m a s s S c a l e " ] = 0 . 0 1 result [ " b k g U n c e r t " ] = 1 . 4 result [ " r e s " ] = 0 . 1 5 result [ " bkgParams " ] = { " bkg_a " : 0 . 0 0 0 8 8 7 0 4 9 0 8 3 3 8 2 6 1 3 7 , " bkg_b "←: 0 . 0 7 3 5 0 8 0 0 5 8 2 2 4 1 6 3 , " bkg_c " : 0 . 0 2 0 8 6 5 2 6 5 7 6 0 1 9 7 7 7 4 , " bkg_d "←: 0 . 1 3 5 4 6 6 2 2 9 1 4 9 5 7 6 1 5 , " bkg_e " : 0 . 0 0 1 1 1 4 8 2 7 2 0 1 7 8 3 7 2 3 5 , " bkg_a2 "←: 0 . 0 0 2 8 5 8 7 7 6 4 4 3 6 8 2 1 0 4 4 , " bkg_b2 " : 0 . 0 0 8 5 0 6 1 1 3 7 6 9 2 7 1 6 6 5 , " bkg_c2 "←: 0 . 0 1 9 4 1 8 9 8 5 2 7 0 0 4 9 0 9 7 , " bkg_e2 " : 0 . 0 0 1 5 6 1 6 8 6 6 2 1 5 5 1 2 7 5 4 } r e t u r n result # provide s a l l the systematic u n c e r t a i n t i e s f o r the resonant a n a l y s i s d e f p r o v i d e U n c e r t a i n t i e s C I ( mass ) : result = {} result [ " t r i g " ] = 1 . 0 0 3 result [ " zPeak " ] = 1 . 0 5 result [ " x S e c O t h e r " ] = 1 . 0 7 result [ " j e t s " ] = 1 . 5 result [ " l u m i " ] = 1 . 0 2 5 result [ " s t a t s " ] = 0 . 0 ##dummy v a l u e s result [ " m a s s S c a l e " ] = 0 . 0 ##dummy v a l u e s result [ " r e s " ] = 0 . 0 ## dummy v a l u e s result [ " p d f " ] = 0 . 0 ## dummy v a l u e s result [ " ID " ] = 0 . 0 ## dummy v a l u e s 7 Contents 3 Usage result [ "PU" ] = 0 . 0 ## dummy v a l u e s r e t u r n result # s i m i l a r t o above , b u t t h i s t i m e f o r t h e non−r e s o n a n t a n a l y s i s . A v a l u e o f 0 ←i n d i c a t e s t h a t t h e s e u n c e r t a i n t i e s a r e mass−d e p e n d e n t and w i l l be p r o v i d e d a s ←external histograms d e f getResolution ( mass ) : result = {} params = getRes ( mass ) result [ ' a l p h a L ' ] = params [ ' a l p h a L ' ] [ 'BB ' ] result [ ' a l p h a R ' ] = params [ ' a l p h a R ' ] [ 'BB ' ] result [ ' r e s ' ] = params [ ' s i g m a ' ] [ 'BB ' ] result [ ' s c a l e ' ] = params [ ' s c a l e ' ] [ 'BB ' ] r e t u r n result # r e p a c k a g e s t h e mass d e p e n d e n t r e s o l u t i o n i n t o t h e f o r m a t u s e d i n t h e l i m i t tool d e f l o a d B a c k g r o u n d S h a p e ( ws , useSh apeUncer t=False ) : bkg_a = RooRealVar ( ' bkg_a_dimuon_Moriond2017_BB ' , ' ←bkg_a_dimuon_Moriond2017_BB ' , 3 3 . 8 2 ) bkg_b = RooRealVar ( ' bkg_b_dimuon_Moriond2017_BB ' , ' ←bkg_b_dimuon_Moriond2017_BB ' , − 0 . 0 0 0 1 3 7 4 ) bkg_c = RooRealVar ( ' bkg_c_dimuon_Moriond2017_BB ' , ' ←bkg_c_dimuon_Moriond2017_BB ' , −1.618 e −07) bkg_d = RooRealVar ( ' bkg_d_dimuon_Moriond2017_BB ' , ' ←bkg_d_dimuon_Moriond2017_BB ' , 3 . 6 5 7 E −12) bkg_e = RooRealVar ( ' bkg_e_dimuon_Moriond2017_BB ' , ' ←bkg_e_dimuon_Moriond2017_BB ' , − 4 . 4 8 5 ) bkg_a2 = RooRealVar ( ' bkg_a2_dimuon_Moriond2017_BB ' , ' ←bkg_a2_dimuon_Moriond2017_BB ' , 1 7 . 4 9 ) bkg_b2 = RooRealVar ( ' bkg_b2_dimuon_Moriond2017_BB ' , ' ←bkg_b2_dimuon_Moriond2017_BB ' , − 0 . 0 1 8 8 1 ) bkg_c2 = RooRealVar ( ' bkg_c2_dimuon_Moriond2017_BB ' , ' ←bkg_c2_dimuon_Moriond2017_BB ' , 1 . 2 2 2 e −05) bkg_e2 = RooRealVar ( ' bkg_e2_dimuon_Moriond2017_BB ' , ' ←bkg_e2_dimuon_Moriond2017_BB ' , − 0 . 8 4 8 6 ) bkg_a . setConstant ( ) bkg_b . setConstant ( ) bkg_c . setConstant ( ) bkg_d . setConstant ( ) bkg_e . setConstant ( ) bkg_a2 . setConstant ( ) bkg_b2 . setConstant ( ) bkg_c2 . setConstant ( ) bkg_e2 . setConstant ( ) g e t a t t r ( ws , ' i m p o r t ' ) ( bkg_a , ROOT . RooCmdArg ( ) ) g e t a t t r ( ws , ' i m p o r t ' ) ( bkg_b , ROOT . RooCmdArg ( ) ) g e t a t t r ( ws , ' i m p o r t ' ) ( bkg_c , ROOT . RooCmdArg ( ) ) g e t a t t r ( ws , ' i m p o r t ' ) ( bkg_d , ROOT . RooCmdArg ( ) ) g e t a t t r ( ws , ' i m p o r t ' ) ( bkg_e , ROOT . RooCmdArg ( ) ) g e t a t t r ( ws , ' i m p o r t ' ) ( bkg_a2 , ROOT . RooCmdArg ( ) ) g e t a t t r ( ws , ' i m p o r t ' ) ( bkg_b2 , ROOT . RooCmdArg ( ) ) g e t a t t r ( ws , ' i m p o r t ' ) ( bkg_c2 , ROOT . RooCmdArg ( ) ) g e t a t t r ( ws , ' i m p o r t ' ) ( bkg_e2 , ROOT . RooCmdArg ( ) ) # background s y s t e m a t i c s bkg_syst_a = RooRealVar ( ' b k g _ s y s t _ a ' , ' b k g _ s y s t _ a ' , 1 . 0 ) bkg_syst_b = RooRealVar ( ' b k g _ s y s t _ b ' , ' b k g _ s y s t _ b ' , 0 . 0 ) #b k g _ s y s t _ b = R o o R e a l V a r ( ' b k g _ s y s t _ b ' , ' b k g _ s y s t _ b ' , − 0 . 0 0 0 1 6 6 6 6 6 6 6 6 6 6 ) bkg_syst_a . setConstant ( ) bkg_syst_b . setConstant ( ) g e t a t t r ( ws , ' i m p o r t ' ) ( bkg_syst_a , ROOT . RooCmdArg ( ) ) g e t a t t r ( ws , ' i m p o r t ' ) ( bkg_syst_b , ROOT . RooCmdArg ( ) ) # background shape i f useSh apeUncer t : b kg Pa ra m sU nc er t = p r o v i d e U n c e r t a i n t i e s ( 1 0 0 0 ) [ " bkgParams " ] 8 Contents 3 Usage f o r uncert i n b kg Pa ra m sU nc er t : a d d B k g U n c e r t P r i o r ( ws , uncert , " dimuon_Moriond2017_BB " , ←b kg Pa ra ms U nc er t [ uncert ] ) ws . factory ( " ZPrimeMuonBkgPdf2 : : bkgpdf_dimuon_Moriond2017_BB ( ←mass_dimuon_Moriond2017_BB , ←bkg_a_dimuon_Moriond2017_BB_forUse , ←bkg_b_dimuon_Moriond2017_BB_forUse , ←bkg_c_dimuon_Moriond2017_BB_forUse , ←bkg_d_dimuon_Moriond2017_BB_forUse , ←bkg_e_dimuon_Moriond2017_BB_forUse , ←bkg_a2_dimuon_Moriond2017_BB_forUse , ←bkg_b2_dimuon_Moriond2017_BB_forUse , ←bkg_c2_dimuon_Moriond2017_BB_forUse , ←bkg_e2_dimuon_Moriond2017_BB_forUse , bkg_syst_a , b k g _ s y s t _ b ) " ) ws . factory ( " ZPrimeMuonBkgPdf2 : : b k g p d f _ f u l l R a n g e ( m a s s F u l l R a n g e , ←bkg_a_dimuon_Moriond2017_BB_forUse , ←bkg_b_dimuon_Moriond2017_BB_forUse , ←bkg_c_dimuon_Moriond2017_BB_forUse , ←bkg_d_dimuon_Moriond2017_BB_forUse , ←bkg_e_dimuon_Moriond2017_BB_forUse , ←bkg_a2_dimuon_Moriond2017_BB_forUse , ←bkg_b2_dimuon_Moriond2017_BB_forUse , ←bkg_c2_dimuon_Moriond2017_BB_forUse , ←bkg_e2_dimuon_Moriond2017_BB , bkg_syst_a , b k g _ s y s t _ b ) " ) else : ws . factory ( " ZPrimeMuonBkgPdf2 : : bkgpdf_dimuon_Moriond2017_BB ( ←mass_dimuon_Moriond2017_BB , bkg_a_dimuon_Moriond2017_BB , ←bkg_b_dimuon_Moriond2017_BB , bkg_c_dimuon_Moriond2017_BB , ←bkg_d_dimuon_Moriond2017_BB , bkg_e_dimuon_Moriond2017_BB , ←bkg_a2_dimuon_Moriond2017_BB , bkg_b2_dimuon_Moriond2017_BB , ←bkg_c2_dimuon_Moriond2017_BB , bkg_e2_dimuon_Moriond2017_BB , ←bkg_syst_a , b k g _ s y s t _ b ) " ) ws . factory ( " ZPrimeMuonBkgPdf2 : : b k g p d f _ f u l l R a n g e ( m a s s F u l l R a n g e , ←bkg_a_dimuon_Moriond2017_BB , bkg_b_dimuon_Moriond2017_BB , ←bkg_c_dimuon_Moriond2017_BB , bkg_d_dimuon_Moriond2017_BB , ←bkg_e_dimuon_Moriond2017_BB , bkg_a2_dimuon_Moriond2017_BB , ←bkg_b2_dimuon_Moriond2017_BB , bkg_c2_dimuon_Moriond2017_BB , ←bkg_e2_dimuon_Moriond2017_BB , bkg_syst_a , b k g _ s y s t _ b ) " ) r e t u r n ws # p r o v i d e s t o b a c k g r o u n d s h a p e s , one i n t h e mass window f o r t h e t e s t e d r e s o n a n c e ←mass , t h e o t h e r f o r t h e f u l l mass r a n g e . l o g −n o r m a l p r i o r s can be added t o ←the shape parameters i f d e s i r e d For each channel of the analysis (i.e. for each subcategory of the dielectron and dimuon channels), one such config has to be provided. The other input to the tool is located in the cfgs/ directory. Here, the scanConguration_ConfigName.py files contain all information needed to steer the actual interpretation, setting the channels to be considered, the mass range to be scanned, and similar features. Given here is the example for the combination of all four subcategories for the 2016 result. leptons = " elmu " # d i l e p t o n c o m b i n a t i o n , can a l s o be e l e l o r mumu systematics = [ " s i g E f f " , " b k g U n c e r t " , " m a s s S c a l e " , ' r e s ' , " bkgParams " ] # l i s t o f ←s y s t e m a t i c u n c e r t a i n t i e s t o be c o n s i d e r e d correlate = False #s h o u l d u n c e r t a i n t i e s be t r e a t e d a s c o r r e l a t e d b e t w e e n c h a n n e l s ←? masses = [ [ 5 , 2 0 0 , 1 0 0 0 ] , [ 1 0 , 1 0 0 0 , 2 0 0 0 ] , [ 2 0 , 2 0 0 0 , 5 5 0 0 ] ] #mass s c a n p a r a m e t e r s f o r ←o b s e r v e d l i m i t s /p−V a l u e s c a n s massesExp = [ [ 1 0 0 , 2 0 0 , 6 0 0 , 5 0 0 , 4 , 5 0 0 0 0 0 ] , [ 1 0 0 , 6 0 0 , 1 0 0 0 , 2 5 0 , 8 , 5 0 0 0 0 0 ] , ←[ 2 5 0 , 1 0 0 0 , 2 0 0 0 , 1 0 0 , 2 0 , 5 0 0 0 0 ] , [ 2 5 0 , 2 0 0 0 , 5 6 0 0 , 1 0 0 , 2 0 , 5 0 0 0 0 0 ] ] #mass s c a n ←parameters for expected l i m i t s 9 Contents 3 Usage libraries = [ " ZPrimeMuonBkgPdf2_cxx . s o " , " Z P r i m e E l e B k g P d f 3 _ c x x . s o " , " PowFunc_cxx . s o ←" , " R o o C r u i j f f _ c x x . s o " ] # l i b r a r i e s t o be added t o t h e combine c a l l channels = [ " d i e l e c t r o n _ M o r i o n d 2 0 1 7 _ E B E B " , " d i e l e c t r o n _ M o r i o n d 2 0 1 7 _ E B E E " , "←dimuon_Moriond2017_BB " , " dimuon_Moriond2017_BE " ] # l i s t o f c h a n n e l s t o be ←considered #Markov C h a i n p a r a m e t e r s numInt = 500000 numToys = 6 exptToys = 1000 width = 0 . 0 0 6 #s i g n a l w i d t h ( h e r e 0.6%) submitTo = "FNAL" #c o m p u t i n g r e s o u r c e s u s e d f o r b a t c h j o b s . R i g h t now Purdue and ←t h e LPC Condor c l u s t e r a r e s u p p o r t e d LPCUsername = " j s c h u l t e " # u s e r n a m e a t LPC , n e c e s s a r y t o r u n CONDOR j o b s t h e r e binWidth = 10 #b i n w i d t h f o r b i n n e d l i m i t s CB = True # u s e non−G a u s s i a n s i g n a l r e s o l u t i o n s h a p e . Does n o t n e c e s s a r i l y h a v e ←t o CB anymore s ig na lI n je ct io n = { " mass " : 7 5 0 , " w i d t h " : 0 . 1 0 0 0 , " n E v e n t s " : 0 , "CB" : True }#p a r a m e t e r s ←f o r t o y g e n e r a t i o n f o r MC s t u d i e s Using this input, the framework will create first the datacards for the single channels and afterwards combined datacards. For local running, this can be triggered by running with the -w or -r options. In the first case, the datacards are produced and the program is exited without performing any statistical procedures. In the latter case, the datacards are reproduced on the fly before performing statistical interpretations. If a local batch system is used, the input will be created inside the individual jobs to increase performance. When tasks are submitted to CRAB, the input is created locally. 3.2 Running statistical procedures If not called with the -w option (which will only write datacards, see above), the default behaviour of runInterpretation.py is to calculate observed limits using the Bayesian approach. For this, the mass binning and the configuration of the algorithm given in the scan configuration is given. There are numerous command line options to modify the statistical methods used • -e switches the limit calculation to expected limits • --signif switches to calculation of p-Values using an approximate formula. For full calculation with the ProfileLikelihoodCalculator, use this option in conjuction with --plc • --frequentist uses frequentist calculations for limits or p-Values • --hybrid uses Frequentist-Bayesian Hybrid method for the p-Values Apart from these fundamental options, there are several further modifications that can be made 3.2.1 Binned limits The --binned option triggers the use of binned instead of unbinned datasets. For this purpose, binned templates are generated from the background and signal PDFs. The binning is 10 Contents 3 Usage hardcoded within the createInputs.py script. The advantage of this approach is a large improvement in speed, the disadvantage is a very long time needed to generate the templates in the first place. 3.2.2 Single mass/Λ points To run a single mass (or Λ in case of CI) point instead of the full scan, the option -m mass (-L Lambda) can be used. 3.2.3 Spin-2 limits If run with the --spin2 option, the signal efficiency for spin-2 resonances will be used 3.2.4 Bias study If run with the --bias option, a bias study will be performed. Two sets of toy datasets are generated based on the datacards, with signal strength µ = 0 and µ = 1. These datasets are then fit with the background + signal model and the fitted µ̂ is recorded. These fit results can then be used to determine if there are biases in the modelling, as we expected the average < µ̂ > to be 0 and 1, respectively. 3.2.5 Signal injection and Look Elsewhere Effect For performance studies, pseudo-data can be generated in which the statistical interpretation is then performed. When run with the --inject option, pseudo background and signal events are generated according to the respective PDFs. The background is normalized to the yield observed in data in each channel, but can be scaled to a desired luminosity. The signal parameters used for the injection are taken from the scan configuration. The signal events are distributed between the sub-channels according to the signal efficiencies. The default behaviour is that a toy dataset for a given configuration is not over-written if the program is rerun, so that the same toy dataset can be processed with the same configuration. The option --recreateToys can be used to force the dataset to be overwritten. To account for the look elsewhere effect, the --LEE option can be used. Many background only datasets will be generated and p-Value scans will be performed. The tool readPValueToys.py can be used to harvest the large number of resulting result cards. 3.2.6 Contact Interaction limits So far most options discussed were mostly focused on the statistical analysis for the resonant analysis. To switch the program to perform the analysis for the CI signal, the option --CI can be used. This will by default run the multibin shape analysis for constructive interference. With 11 Contents 3 Usage the option --singlebin, it can be switched to single bin counting about a certain threshold. The threshold has to be chosen with the -m option. Setting limits not on the signal cross section but on the CI scale Λ will be possible with the --usePhysicsModel option, combined with the --Lower option to convert the limits from upper into lower limits (not supported in combine for MarkovChainMC calculation). This is still under development at this stage. 3.2.7 Job submission As the calculations used for the statistical interpretations, parallelization is unavoidable. The framework supports two options for it, submission to local batch systems and CRAB. The -s option triggers submission to batch system. At the moment, only the Purdue system is supported. However, the job configurations can be easily used for any qsub system and should be adaptable to others system as well. Less specific and giving access to much more computing resources is submission via crab. At the moment, only expected and observed Bayesian limits are supported. On the upside, submission is very easy, just run the tool with the --crab option. A valid GRID certificate is required. 3.3 Output processing The output of the combine tool are root files which contain the resulting limit or p-Value as entries in a ROOT tree. The script createLimitCard.py is available to convert these files into simple ascii files. This tool takes a variety of arguments, very similar to the main runInterpretation.py script: optional arguments: -h, --help show this help message and exit -c CONFIG, --config CONFIG configuration name (default: ) --input INPUT folder with input root files (default: ) -t TAG, --tag TAG tag (default: ) --exp write expected limits (default: False) --signif write pValues (default: False) --injected injected (default: False) --binned binned (default: False) --frequentist use results from frequentist limits (default: False) --hybrid use results from hybrid significance calculations (default: False) --merge merge expected limits first (default: False) --CI is CI (default: False) 12 Contents 3 Usage Basically you have to match up the configuration to the one used to create the output. Then you have the choice of either providing the location of the output to be processed with the --input option or leave the tool to figure it out for itself. In the latter case, if will take the newest result produced on a local batch system matching the configuration. Results produced via CRAB have to be downloaded from the respective resource, with the script harvestCRABResults.py, which will download and properly rename/merge the files so they can be used with the createLimitCard.py script optional arguments: -h, --help show this help message and exit -c CONFIG, --config CONFIG configuration name (default: ) -t TAG, --tag TAG tag (default: ) -u USER, --user USER name of the user running the script (default: ) --obs renamae obeserved limits (default: False) --merge merge expected limits (default: False) The plot scripst makeLimitPlot.py, makeLimitPlotWidths.py, makeLimitPlotCI.py, makeRLimitPlotCI.py, and makePValuePlot.py can be used to create plots from the ascii files previously created. 13
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.5 Linearized : No Page Count : 13 Page Mode : UseOutlines Author : Title : Subject : Creator : LaTeX with hyperref package Producer : pdfTeX-1.40.14 Create Date : 2018:07:20 11:06:44-04:00 Modify Date : 2018:07:20 11:06:44-04:00 Trapped : False PTEX Fullbanner : This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) kpathsea version 6.1.1EXIF Metadata provided by EXIF.tools