Index: trunk/HiggsBounds-5/HiggsBounds_subroutines.F90 =================================================================== --- trunk/HiggsBounds-5/HiggsBounds_subroutines.F90 (revision 597) +++ trunk/HiggsBounds-5/HiggsBounds_subroutines.F90 (revision 598) @@ -1,2860 +1,2860 @@ ! This file is part of HiggsBounds ! -KW -!************************************************************ +!************************************************************ subroutine initialize_HiggsBounds(nHiggsneut,nHiggsplus,whichanalyses_in) ! This the first Higgsbounds subroutine that should be called ! by the user. ! It calls subroutines to read in the tables of Standard Model data, ! read in the tables of LEP, Tevatron and LHC data, -! set up lists of processes which should be checked against +! set up lists of processes which should be checked against ! the experimental results, allocate arrays etc ! Arguments (input): -! * nHiggs= number of neutral Higgs in the model +! * nHiggs= number of neutral Higgs in the model ! (see subroutine check_nH_nHplus in input.f90 for more details) -! * nHiggsplus= number of singly,positively charged Higgs in the model +! * nHiggsplus= number of singly,positively charged Higgs in the model ! (see subroutine check_nH_nHplus in input.f90 for more details) ! * whichanalyses_in= which combination of experimental results to use ! (see subroutine check_whichanalyses in input.f90 for more details) !************************************************************ use usefulbits, only : np,Hneut,Hplus,Chineut,Chiplus,debug,inputmethod, & & theo,whichanalyses,HiggsBounds_info,just_after_run,BRdirectinput,& & file_id_debug1,file_id_debug2,allocate_if_stats_required,run_HB_classic! ,inputsub use input, only : setup_input,check_number_of_particles,check_whichanalyses use S95tables, only : setup_S95tables,S95_t2 use likelihoods, only : setup_likelihoods use theory_BRfunctions, only : setup_BRSM - use theory_XS_SM_functions, only : setup_XSSM + use theory_XS_SM_functions, only : setup_XSSM use channels, only : setup_channels use output, only : setup_output #ifdef enableCHISQ use S95tables_type3, only : clsb_t3,fillt3needs_M2_gt_2M1 #endif #if defined(NAGf90Fortran) use F90_UNIX_IO, only : flush #endif !#define FORFITTINO implicit none !--------------------------------------input integer,intent(in) :: nHiggsneut ! integer,intent(in),optional :: nHiggsplus ! character(LEN=5),intent(in),optional :: whichanalyses_in integer,intent(in) :: nHiggsplus character(LEN=5),intent(in) :: whichanalyses_in !-----------------------------------internal integer :: i - logical :: messages + logical :: messages !------------------------------------------- -! if((.not.present(nHiggsplus)).or.(.not.present(whichanalyses_in)))then +! if((.not.present(nHiggsplus)).or.(.not.present(whichanalyses_in)))then !Actually, this doesn't work as I wanted it to !because if initialize_HiggsBounds is called in the old way, the program !usually just crashes..... but leaving it in for now, in case !some compilers accept it ! call attempting_to_use_an_old_HB_version('init') ! endif #ifdef FORFITTINO write(*,*)'The arguments passed to initialize_HiggsBounds are:' write(*,*)'nHiggsneut=',nHiggsneut write(*,*)'nHiggsplus=',nHiggsplus write(*,*)'whichanalyses_in=','~'//trim(adjustl(whichanalyses_in))//'~' #endif #ifdef DEBUGGING debug=.True. #else debug=.False. #endif messages=debug.or.(inputmethod=='datfile') ! inputmethod='subrout' !('datfile' or 'website' are also possible, but not here) np(Hneut)=nHiggsneut np(Hplus)=nHiggsplus - + np(Chineut)=0! do not change this without contacting us first! np(Chiplus)=0! do not change this without contacting us first! whichanalyses=whichanalyses_in - + if(inputmethod=='subrout') then if(allocated(theo))then stop 'subroutine HiggsBounds_initialize has already been called once' endif if(messages)write(*,*)'doing other preliminary tasks...' ; call flush(6) call setup_input ! allocate(inputsub( 4 )) !(1)np(Hneut)>0 (2)np(Hplus)>0 (3)np(Chineut)>0 (4)np(Chineut)>0 and np(Chiplus)>0 ! | np ! |Hneu Hcha Chineut Chiplus - ! | ==0 ==0 ==0 ==0 + ! | ==0 ==0 ==0 ==0 ! inputsub(1)%desc='HiggsBounds_neutral_input_*' ! inputsub(1)%req=req( 0, 1, 1, 1) ! inputsub(2)%desc='HiggsBounds_charged_input' ! inputsub(2)%req=req( 1, 0, 1, 1) ! inputsub(3)%desc='SUSYBounds_neutralinoonly_input' ! inputsub(3)%req=req( 1, 1, 0, 1) ! inputsub(4)%desc='SUSYBounds_neutralinochargino_input' ! inputsub(4)%req=req( 1, 1, 0, 0) ! do i=1,ubound(inputsub,dim=1) ! inputsub(i)%stat=0 ! enddo - endif + endif #ifndef WEBVERSION if(inputmethod.ne.'datfile') call HiggsBounds_info if (run_HB_classic.EQV..True.) then PRINT *, "run_HB_classic=True - HiggsBounds is running in classic mode" endif - + #endif - if(messages)write(*,*)'reading in Standard Model tables...' ; call flush(6) - call setup_BRSM + if(messages)write(*,*)'reading in Standard Model tables...' ; call flush(6) + call setup_BRSM call setup_XSSM - + if(messages)write(*,*)'reading in S95tables...' ; call flush(6) - call setup_S95tables + call setup_S95tables if(messages)write(*,*)'reading in likelihoods...' ; call flush(6) call setup_likelihoods if(messages)then open(file_id_debug2,file='debug_predratio.txt') open(file_id_debug1,file='debug_channels.txt') endif if(messages)write(*,*)'sorting out processes to be checked...'; call flush(6) - call setup_channels - + call setup_channels + if(messages)write(*,*)'preparing output arrays...' ; call flush(6) call setup_output #ifdef enableCHISQ if(allocated(allocate_if_stats_required))then call fillt3needs_M2_gt_2M1(clsb_t3,S95_t2) - endif + endif #endif just_after_run=.False. BRdirectinput=.False. - -! contains + +! contains ! ! | np ! ! |Hneu Hcha Chineut Chiplus -! ! | ==0 ==0 ==0 ==0 +! ! | ==0 ==0 ==0 ==0 ! function req(Hneu,Hcha, Chneu, Chcha) ! integer, intent(in) ::Hneu,Hcha, Chneu, Chcha ! integer :: req -! +! ! req=1 ! if(np(Hneut)==0) req= Hneu * req ! if(np(Hplus)==0) req= Hcha * req ! if(np(Chineut)==0)req= Chneu * req ! if(np(Chiplus)==0)req= Chcha * req -! -! end function req +! +! end function req end subroutine initialize_HiggsBounds -!************************************************************ +!************************************************************ -!************************************************************ +!************************************************************ ! Version of initialize_HiggsBounds which takes an integer as -! the third argument. More useful for library linking to +! the third argument. More useful for library linking to ! non-Fortran codes. subroutine initialize_HiggsBounds_int(nHn,nHp,flag) - + implicit none integer nHn,nHp,flag interface subroutine initialize_HiggsBounds(nHiggsneut, nHiggsplus, whichanalyses_in) integer,intent(in) :: nHiggsneut integer,intent(in) :: nHiggsplus character(LEN=5),intent(in) :: whichanalyses_in ! integer,intent(in),optional :: nHiggsplus ! character(LEN=5),intent(in),optional :: whichanalyses_in end subroutine initialize_HiggsBounds - end interface + end interface IF (flag.EQ.1) then call initialize_HiggsBounds(nHn,nHp, "onlyL") elseif (flag.EQ.2) then call initialize_HiggsBounds(nHn,nHp, "onlyH") elseif (flag.EQ.3) then call initialize_HiggsBounds(nHn,nHp, "LandH") elseif (flag.EQ.4) then call initialize_HiggsBounds(nHn,nHp, "onlyP") else stop "Illegal value for flag in call to initialize_HB" endif - + end subroutine -!************************************************************ +!************************************************************ -!************************************************************ +!************************************************************ subroutine attempting_to_use_an_old_HB_version(subroutineid) use usefulbits, only : vers character(len=4),intent(in) :: subroutineid select case(subroutineid) case('init') write(*,*)'The subroutine initialize_HiggsBounds has been called with the' write(*,*)'wrong number of arguments. It should be called as:' write(*,*)'initialize_HiggsBounds(nHiggsneut,nHiggsplus,whichanalyses)' write(*,*) write(*,*)'Note that in early versions of HiggsBounds (HB 1.*.*)' write(*,*)'this subroutine was called as:' write(*,*)'initialize_HiggsBounds(nHiggsneut,whichanalyses)' write(*,*) case('effC','part','hadr') write(*,*)'The subroutine run_HiggsBounds_'//subroutineid//' has been discontinued in this' write(*,*)'version of HiggsBounds.' case default stop 'wrong input to subroutine attempting_to_use_an_old_HB_version' end select write(*,*)'If you have code written for use with HB 1.*.*, you have two choices:' write(*,*) - write(*,*)' (1) You can edit your code, such that it works with this' + write(*,*)' (1) You can edit your code, such that it works with this' write(*,*)' version of HiggsBounds (HB'//trim(adjustl(vers))//').' write(*,*)' This has the advantage that you can test your model against many, many' write(*,*)' more Higgs search limits , including charged Higgs search limits.' write(*,*)' See the updated manual for more information.' write(*,*) write(*,*)' (2) You can download the most recent HB 1.*.* from the HiggsBounds' write(*,*)' website. This contains the LEP Higgs search limits which are' write(*,*)' generally the most useful when constraining new physics models.' write(*,*)' We will continue to support this code.' stop 'Incorrect call to a HiggsBounds subroutine.' end subroutine attempting_to_use_an_old_HB_version -!************************************************************ +!************************************************************ subroutine HiggsBounds_input_SLHA(infile) ! This subroutine can be called by the user after subroutine initialize_HiggsBounds ! has been called. ! Arguments (input): SLHA filename !************************************************************ use usefulbits, only : whichinput,infile1,theo,g2,effC,just_after_run, & & np,Hneut,Hplus! ,inputsub use extra_bits_for_SLHA #if defined(NAGf90Fortran) use F90_UNIX_IO, only : flush #endif implicit none !----------------------------------------input character(len=300),intent(in) :: infile !--------------------------------------internal integer :: n !---------------------------------------------- - + whichinput='SLHA' ! if(np(Hneut).gt.0)inputsub(Hneut)%stat=inputsub(Hneut)%stat+1 ! if(np(Hplus).gt.0)inputsub(Hplus)%stat=inputsub(Hplus)%stat+1 - ! note: can't be used for charginos or neutralinos yet + ! note: can't be used for charginos or neutralinos yet - n=1 + n=1 if(.not.allocated(theo))then stop 'subroutine HiggsBounds_initialize must be called first' endif - - infile1=infile - call getSLHAdata(theo(n),effC(n),infile1) + infile1=infile + + call getSLHAdata(theo(n),effC(n),infile1) just_after_run=.False. end subroutine HiggsBounds_input_SLHA -!************************************************************ +!************************************************************ ! ! HB5 GENERAL INPUT ROUTINES ! -!************************************************************ +!************************************************************ subroutine HiggsBounds_neutral_input_properties(Mh,GammaTotal_hj,CP_value) -!************************************************************ +!************************************************************ use usefulbits, only : theo,np,Hneut,just_after_run!,inputsub #if defined(NAGf90Fortran) use F90_UNIX_IO, only : flush #endif implicit none !----------------------------------------input double precision,intent(in) :: Mh(np(Hneut)),GammaTotal_hj(np(Hneut)),CP_value(np(Hneut)) !--------------------------------------internal integer :: n ! integer :: subtype !---------------------------------------------- ! subtype=1 - n=1 + n=1 ! inputsub(subtype)%stat=inputsub(subtype)%stat+1 if(.not.allocated(theo))then stop 'subroutine HiggsBounds_initialize must be called first' endif if(np(Hneut).eq.0)then write(*,*)'subroutine HiggsBounds_neutral_input_mass_width should' write(*,*)'only be called if np(Hneut)>0' stop 'error in subroutine HiggsBounds_neutral_input_mass_width' endif theo(n)%particle(Hneut)%M = Mh - theo(n)%particle(Hneut)%Mc = Mh + theo(n)%particle(Hneut)%Mc = Mh theo(n)%particle(Hneut)%GammaTot= GammaTotal_hj theo(n)%CP_value = CP_value - - just_after_run=.False. + + just_after_run=.False. end subroutine HiggsBounds_neutral_input_properties -!************************************************************ -subroutine HiggsBounds_neutral_input_effC( & +!************************************************************ +subroutine HiggsBounds_neutral_input_effC( & & ghjss_s,ghjss_p,ghjcc_s,ghjcc_p, & & ghjbb_s,ghjbb_p,ghjtt_s,ghjtt_p, & & ghjmumu_s,ghjmumu_p, & & ghjtautau_s,ghjtautau_p, & & ghjWW,ghjZZ,ghjZga, & & ghjgaga,ghjgg,ghjhiZ)!, & ! & BR_hjinvisible,BR_hjhihi_nHbynH) -! New neutral Higgs effective coupling input routine. +! New neutral Higgs effective coupling input routine. ! BR's are set separately. !************************************************************ use usefulbits, only : theo,np,Hneut,effC,whichinput,just_after_run!,inputsub #if defined(NAGf90Fortran) use F90_UNIX_IO, only : flush #endif implicit none !----------------------------------------input - double precision,intent(in) :: &!Mh( np(Hneut) ),GammaTotal_hj( np(Hneut) ),& + double precision,intent(in) :: &!Mh( np(Hneut) ),GammaTotal_hj( np(Hneut) ),& & ghjss_s( np(Hneut) ),ghjss_p( np(Hneut) ), & & ghjcc_s( np(Hneut) ),ghjcc_p( np(Hneut) ), & & ghjbb_s( np(Hneut) ),ghjbb_p( np(Hneut) ), & & ghjtt_s( np(Hneut) ),ghjtt_p( np(Hneut) ), & & ghjmumu_s( np(Hneut) ),ghjmumu_p( np(Hneut) ), & & ghjtautau_s( np(Hneut) ),ghjtautau_p( np(Hneut) ), & & ghjWW( np(Hneut) ),ghjZZ( np(Hneut) ),ghjZga( np(Hneut) ), & & ghjgaga( np(Hneut) ),ghjgg( np(Hneut) ), & & ghjhiZ(np(Hneut),np(Hneut)) -! & BR_hjinvisible( np(Hneut) ),BR_hjhihi_nHbynH(np(Hneut),np(Hneut)) +! & BR_hjinvisible( np(Hneut) ),BR_hjhihi_nHbynH(np(Hneut),np(Hneut)) !--------------------------------------internal integer :: n ! integer :: subtype !---------------------------------------------- - + whichinput='effC' ! subtype=1 - n=1 + n=1 ! inputsub(subtype)%stat=inputsub(subtype)%stat+1 if(.not.allocated(theo))then stop 'subroutine HiggsBounds_initialize must be called first' endif if(np(Hneut).eq.0)then write(*,*)'subroutine HiggsBounds_neutral_input_effC should' write(*,*)'only be called if np(Hneut)>0' stop 'error in subroutine HiggsBounds_neutral_input_effC' endif ! theo(n)%particle(Hneut)%M = Mh -! theo(n)%particle(Hneut)%Mc = Mh +! theo(n)%particle(Hneut)%Mc = Mh ! theo(n)%particle(Hneut)%GammaTot= GammaTotal_hj effC(n)%hjss_s = ghjss_s effC(n)%hjss_p = ghjss_p effC(n)%hjcc_s = ghjcc_s effC(n)%hjcc_p = ghjcc_p effC(n)%hjbb_s = ghjbb_s effC(n)%hjbb_p = ghjbb_p effC(n)%hjtt_s = ghjtt_s effC(n)%hjtt_p = ghjtt_p effC(n)%hjmumu_s = ghjmumu_s effC(n)%hjmumu_p = ghjmumu_p effC(n)%hjtautau_s = ghjtautau_s effC(n)%hjtautau_p = ghjtautau_p - + effC(n)%hjWW = ghjWW - effC(n)%hjZZ = ghjZZ - effC(n)%hjZga = ghjZga + effC(n)%hjZZ = ghjZZ + effC(n)%hjZga = ghjZga effC(n)%hjgaga = ghjgaga effC(n)%hjgg = ghjgg ! g2(n)%hjggZ = g2hjggZ effC(n)%hjhiZ = ghjhiZ -! theo(n)%BR_hjinvisible = BR_hjinvisible -! theo(n)%BR_hjhihi = BR_hjhihi_nHbynH +! theo(n)%BR_hjinvisible = BR_hjinvisible +! theo(n)%BR_hjhihi = BR_hjhihi_nHbynH ! write(*,*) "HiggsBounds_neutral_input_effC hWW coupling = ",effC(n)%hjWW - just_after_run=.False. + just_after_run=.False. end subroutine HiggsBounds_neutral_input_effC -!************************************************************ +!************************************************************ subroutine HiggsBounds_neutral_input_SMBR(BR_hjss,BR_hjcc,BR_hjbb, & & BR_hjtt,BR_hjmumu, & & BR_hjtautau,BR_hjWW, & & BR_hjZZ,BR_hjZga,BR_hjgaga, & & BR_hjgg) -! Input for the SM branching ratios +! Input for the SM branching ratios !************************************************************ use usefulbits, only : theo,np,Hneut,whichinput,just_after_run,BRdirectinput #if defined(NAGf90Fortran) use F90_UNIX_IO, only : flush #endif implicit none !----------------------------------------input double precision,intent(in) :: BR_hjss( np(Hneut) ),BR_hjcc( np(Hneut) ), & & BR_hjbb( np(Hneut) ),BR_hjtt( np(Hneut) ), & & BR_hjmumu( np(Hneut) ),BR_hjtautau( np(Hneut) ), & & BR_hjWW( np(Hneut) ),BR_hjZZ( np(Hneut) ), & & BR_hjZga( np(Hneut) ),BR_hjgaga( np(Hneut) ), & & BR_hjgg( np(Hneut) ) !-------------------------------------internal integer :: n !--------------------------------------------- - n=1 + n=1 if(.not.allocated(theo))then stop 'subroutine HiggsBounds_initialize must be called first' endif if(np(Hneut).eq.0)then write(*,*)'subroutine HiggsBounds_neutral_input_SMBR should' write(*,*)'only be called if np(Hneut)>0' stop 'error in subroutine HiggsBounds_neutral_input_SMBR' endif -! +! theo(n)%BR_hjss = BR_hjss - theo(n)%BR_hjcc = BR_hjcc + theo(n)%BR_hjcc = BR_hjcc theo(n)%BR_hjbb = BR_hjbb - theo(n)%BR_hjtt = BR_hjtt + theo(n)%BR_hjtt = BR_hjtt theo(n)%BR_hjmumu = BR_hjmumu - theo(n)%BR_hjtautau = BR_hjtautau + theo(n)%BR_hjtautau = BR_hjtautau theo(n)%BR_hjWW = BR_hjWW theo(n)%BR_hjZZ = BR_hjZZ - theo(n)%BR_hjZga = BR_hjZga + theo(n)%BR_hjZga = BR_hjZga theo(n)%BR_hjgaga = BR_hjgaga theo(n)%BR_hjgg = BR_hjgg just_after_run=.False. - BRdirectinput=.True. - + BRdirectinput=.True. + end subroutine HiggsBounds_neutral_input_SMBR -!************************************************************ +!************************************************************ subroutine HiggsBounds_neutral_input_nonSMBR(BR_hjinvisible,BR_hkhjhi,BR_hjhiZ,& & BR_hjemu,BR_hjetau,BR_hjmutau,BR_hjHpiW) ! Input for the non-SM branching ratios !************************************************************ use usefulbits, only : theo,np,Hneut,Hplus,whichinput,just_after_run!,inputsub #if defined(NAGf90Fortran) use F90_UNIX_IO, only : flush #endif implicit none !----------------------------------------input double precision,intent(in) :: BR_hjinvisible( np(Hneut) ), & & BR_hkhjhi(np(Hneut),np(Hneut),np(Hneut)), & & BR_hjhiZ(np(Hneut),np(Hneut)), & & BR_hjemu(np(Hneut)),& & BR_hjetau(np(Hneut)),& & BR_hjmutau(np(Hneut)) - double precision,intent(in) :: BR_hjHpiW(np(Hneut),np(Hplus)) + double precision,intent(in) :: BR_hjHpiW(np(Hneut),np(Hplus)) !--------------------------------------internal integer :: n - n=1 + n=1 if(.not.allocated(theo))then stop 'subroutine HiggsBounds_initialize must be called first' endif if(np(Hneut).eq.0)then write(*,*)'subroutine HiggsBounds_neutral_input_nonSMBR should' write(*,*)'only be called if np(Hneut)>0' stop 'error in subroutine HiggsBounds_neutral_input_nonSMBR' endif - theo(n)%BR_hjinvisible = BR_hjinvisible + theo(n)%BR_hjinvisible = BR_hjinvisible theo(n)%BR_hkhjhi = BR_hkhjhi theo(n)%BR_hjhiZ = BR_hjhiZ theo(n)%BR_hjemu = BR_hjemu theo(n)%BR_hjetau = BR_hjetau theo(n)%BR_hjmutau = BR_hjmutau ! write(*,*) "HiggsBounds_neutral_input_nonSMBR" ! write(*,*) theo(n)%BR_hjHpiW ! if(present(BR_hjHpiW)) then theo(n)%BR_hjHpiW = BR_hjHpiW ! endif - - just_after_run=.False. + + just_after_run=.False. end subroutine HiggsBounds_neutral_input_nonSMBR -!************************************************************ +!************************************************************ subroutine HiggsBounds_neutral_input_LEP(XS_ee_hjZ_ratio,XS_ee_bbhj_ratio, & XS_ee_tautauhj_ratio,XS_ee_hjhi_ratio) -!************************************************************ +!************************************************************ use usefulbits, only : theo,np,Hneut,whichinput,just_after_run implicit none !--------------------------------------------- double precision, intent(in) :: XS_ee_hjZ_ratio(np(Hneut)),& XS_ee_bbhj_ratio(np(Hneut)),XS_ee_tautauhj_ratio(np(Hneut)),& XS_ee_hjhi_ratio(np(Hneut),np(Hneut)) !-------------------------------------internal integer :: n - !--------------------------------------------- + !--------------------------------------------- whichinput='hadr' ! What if effC otherwise used? - n=1 + n=1 if(.not.allocated(theo))then stop 'subroutine HiggsBounds_initialize must be called first' endif if(np(Hneut).eq.0)then write(*,*)'subroutine HiggsBounds_neutral_input_LEP should' write(*,*)'only be called if np(Hneut)>0' stop 'error in subroutine HiggsBounds_neutral_input_LEP' endif theo(n)%lep%XS_hjZ_ratio = XS_ee_hjZ_ratio theo(n)%lep%XS_bbhj_ratio = XS_ee_bbhj_ratio theo(n)%lep%XS_tautauhj_ratio = XS_ee_tautauhj_ratio theo(n)%lep%XS_hjhi_ratio = XS_ee_hjhi_ratio - + just_after_run=.False. end subroutine HiggsBounds_neutral_input_LEP -!************************************************************ +!************************************************************ subroutine HiggsBounds_neutral_input_hadr(collider,CS_hj_ratio, & & CS_gg_hj_ratio,CS_bb_hj_ratio, & & CS_hjW_ratio,CS_hjZ_ratio, & & CS_vbf_ratio,CS_tthj_ratio, & & CS_thj_tchan_ratio,CS_thj_schan_ratio, & & CS_hjhi) !************************************************************ use usefulbits, only : theo,np,Hneut,whichinput,just_after_run,hadroncolliderdataset #if defined(NAGf90Fortran) use F90_UNIX_IO, only : flush #endif implicit none double precision,intent(in) :: CS_hj_ratio( np(Hneut) ), & & CS_gg_hj_ratio( np(Hneut) ),CS_bb_hj_ratio( np(Hneut) ), & & CS_hjW_ratio( np(Hneut) ) ,CS_hjZ_ratio( np(Hneut) ), & & CS_vbf_ratio( np(Hneut) ) ,CS_tthj_ratio( np(Hneut) ), & & CS_thj_tchan_ratio( np(Hneut) ),CS_thj_schan_ratio( np(Hneut) ), & & CS_hjhi( np(Hneut), np(Hneut) ) integer, intent(in) :: collider !-------------------------------------internal integer :: n ! type(hadroncolliderdataset) :: dataset !--------------------------------------------- whichinput='hadr' - n=1 + n=1 if(.not.allocated(theo))then stop 'subroutine HiggsBounds_initialize must be called first' endif if(np(Hneut).eq.0)then write(*,*)'subroutine HiggsBounds_neutral_input_hadr should' write(*,*)'only be called if np(Hneut)>0' stop 'error in subroutine HiggsBounds_neutral_input_hadr' endif select case(collider) case(2) call set_input(theo(n)%tev,CS_hj_ratio, & & CS_gg_hj_ratio,CS_bb_hj_ratio, & & CS_hjW_ratio,CS_hjZ_ratio, & & CS_vbf_ratio,CS_tthj_ratio, & & CS_thj_tchan_ratio,CS_thj_schan_ratio, & & CS_hjhi) case(7) call set_input(theo(n)%lhc7,CS_hj_ratio, & & CS_gg_hj_ratio,CS_bb_hj_ratio, & & CS_hjW_ratio,CS_hjZ_ratio, & & CS_vbf_ratio,CS_tthj_ratio, & & CS_thj_tchan_ratio,CS_thj_schan_ratio, & & CS_hjhi) - case(8) + case(8) call set_input(theo(n)%lhc8,CS_hj_ratio, & & CS_gg_hj_ratio,CS_bb_hj_ratio, & & CS_hjW_ratio,CS_hjZ_ratio, & & CS_vbf_ratio,CS_tthj_ratio, & & CS_thj_tchan_ratio,CS_thj_schan_ratio, & & CS_hjhi) - case(13) + case(13) call set_input(theo(n)%lhc13,CS_hj_ratio, & & CS_gg_hj_ratio,CS_bb_hj_ratio, & & CS_hjW_ratio,CS_hjZ_ratio, & & CS_vbf_ratio,CS_tthj_ratio, & & CS_thj_tchan_ratio,CS_thj_schan_ratio, & & CS_hjhi) case default stop 'wrong input for collider to subroutine HiggsBounds_neutral_input_hadr' end select - just_after_run=.False. - + just_after_run=.False. + contains - + subroutine set_input(dataset,CS_hj_ratio, & & CS_gg_hj_ratio,CS_bb_hj_ratio, & & CS_hjW_ratio,CS_hjZ_ratio, & & CS_vbf_ratio,CS_tthj_ratio, & & CS_thj_tchan_ratio,CS_thj_schan_ratio, & & CS_hjhi) implicit none double precision,intent(in) :: CS_hj_ratio( np(Hneut) ), & & CS_gg_hj_ratio( np(Hneut) ),CS_bb_hj_ratio( np(Hneut) ), & & CS_hjW_ratio( np(Hneut) ) ,CS_hjZ_ratio( np(Hneut) ), & & CS_vbf_ratio( np(Hneut) ) ,CS_tthj_ratio( np(Hneut) ), & & CS_thj_tchan_ratio( np(Hneut) ),CS_thj_schan_ratio( np(Hneut) ), & & CS_hjhi( np(Hneut), np(Hneut) ) type(hadroncolliderdataset) :: dataset - + dataset%XS_hj_ratio = CS_hj_ratio dataset%XS_gg_hj_ratio = CS_gg_hj_ratio dataset%XS_bb_hj_ratio = CS_bb_hj_ratio dataset%XS_hjW_ratio = CS_hjW_ratio dataset%XS_hjZ_ratio = CS_hjZ_ratio dataset%XS_gg_hjZ_ratio = CS_hjZ_ratio ! assume here that the SM-normalized ratio is equal! - dataset%XS_qq_hjZ_ratio = CS_hjZ_ratio ! assume here that the SM-normalized ratio is equal! + dataset%XS_qq_hjZ_ratio = CS_hjZ_ratio ! assume here that the SM-normalized ratio is equal! dataset%XS_vbf_ratio = CS_vbf_ratio dataset%XS_tthj_ratio = CS_tthj_ratio dataset%XS_thj_tchan_ratio = CS_thj_tchan_ratio - dataset%XS_thj_schan_ratio = CS_thj_schan_ratio - dataset%XS_hjhi = CS_hjhi + dataset%XS_thj_schan_ratio = CS_thj_schan_ratio + dataset%XS_hjhi = CS_hjhi + + end subroutine set_input - end subroutine set_input - end subroutine HiggsBounds_neutral_input_hadr -!************************************************************ +!************************************************************ ! subroutine HiggsBounds_neutral_input_ZHprod(collider,CS_qq_hjZ_ratio,CS_gg_hjZ_ratio) !************************************************************ -!************************************************************ +!************************************************************ subroutine HiggsBounds_neutral_input_hadr_channelrates(collider,channelrates) ! n.b.: Elements of the matrix channelrates with values < 0 will be overwritten ! by XS times BR using the narrow width approximation. !************************************************************ use usefulbits, only : theo,np,Hneut,whichinput,just_after_run,hadroncolliderdataset,& & Nprod,Ndecay #if defined(NAGf90Fortran) use F90_UNIX_IO, only : flush #endif implicit none double precision,intent(in) :: channelrates(np(Hneut),Nprod,Ndecay) integer, intent(in) :: collider !-------------------------------------internal integer :: n !--------------------------------------------- whichinput='hadr' - n=1 + n=1 if(.not.allocated(theo))then stop 'subroutine HiggsBounds_initialize must be called first' endif if(np(Hneut).eq.0)then write(*,*)'subroutine HiggsBounds_neutral_input_hadr_channelrates should' write(*,*)'only be called if np(Hneut)>0' stop 'error in subroutine HiggsBounds_neutral_input_hadr' endif select case(collider) case(2) theo(n)%tev%channelrates_tmp=channelrates case(7) - theo(n)%lhc7%channelrates_tmp=channelrates - case(8) - theo(n)%lhc8%channelrates_tmp=channelrates - case(13) - theo(n)%lhc13%channelrates_tmp=channelrates + theo(n)%lhc7%channelrates_tmp=channelrates + case(8) + theo(n)%lhc8%channelrates_tmp=channelrates + case(13) + theo(n)%lhc13%channelrates_tmp=channelrates case default stop 'wrong input for collider to subroutine HiggsBounds_neutral_input_hadr_channelrates' end select - just_after_run=.False. - + just_after_run=.False. + end subroutine HiggsBounds_neutral_input_hadr_channelrates -!************************************************************ +!************************************************************ subroutine HiggsBounds_charged_input(Mhplus,GammaTotal_Hpj, & & CS_ee_HpjHmj_ratio, & & BR_tWpb,BR_tHpjb, & & BR_Hpjcs,BR_Hpjcb,BR_Hpjtaunu,BR_Hpjtb, & & BR_HpjWZ,BR_HpjhiW) -! This subroutine can be called by the user after subroutine +! This subroutine can be called by the user after subroutine ! initialize_HiggsBounds has been called. ! Arguments (input): theoretical predictions (see manual for definitions) ! HB-5: Extended input by charged Higgs decays to tb, WZ, hiW !************************************************************ use usefulbits, only : theo,np,Hplus,Hneut,just_after_run!,inputsub #if defined(NAGf90Fortran) use F90_UNIX_IO, only : flush #endif implicit none !----------------------------------------input double precision,intent(in) :: Mhplus( np(Hplus) ),GammaTotal_Hpj( np(Hplus) ), & & CS_ee_HpjHmj_ratio( np(Hplus) ), & & BR_tWpb,BR_tHpjb( np(Hplus) ), & & BR_Hpjcs( np(Hplus) ),BR_Hpjcb( np(Hplus) ),BR_Hpjtaunu( np(Hplus) ), & - & BR_Hpjtb( np(Hplus) ),BR_HpjWZ( np(Hplus) ) + & BR_Hpjtb( np(Hplus) ),BR_HpjWZ( np(Hplus) ) double precision,intent(in) :: BR_HpjhiW(np(Hplus),np(Hneut)) !--------------------------------------internal integer :: n ! integer :: j ! integer :: subtype !---------------------------------------------- - - n=1 + + n=1 ! subtype=2 ! inputsub(subtype)%stat=inputsub(subtype)%stat+1 if(.not.allocated(theo))then stop 'subroutine HiggsBounds_initialize must be called first' endif if(np(Hplus).eq.0)then write(*,*)'subroutine HiggsBounds_charged_input should' write(*,*)'only be called if np(Hplus)>0' stop 'error in subroutine HiggsBounds_charged_input' endif - theo(n)%particle(Hplus)%M = Mhplus - theo(n)%particle(Hplus)%Mc = Mhplus + theo(n)%particle(Hplus)%M = Mhplus + theo(n)%particle(Hplus)%Mc = Mhplus theo(n)%particle(Hplus)%GammaTot= GammaTotal_Hpj theo(n)%lep%XS_HpjHmj_ratio = CS_ee_HpjHmj_ratio theo(n)%BR_tWpb = BR_tWpb - theo(n)%BR_tHpjb = BR_tHpjb + theo(n)%BR_tHpjb = BR_tHpjb theo(n)%BR_Hpjcs = BR_Hpjcs theo(n)%BR_Hpjcb = BR_Hpjcb theo(n)%BR_Hpjtaunu = BR_Hpjtaunu theo(n)%BR_Hpjtb = BR_Hpjtb theo(n)%BR_HpjWZ = BR_HpjWZ theo(n)%BR_HpjhiW = BR_HpjhiW ! write(*,*) 'HiggsBounds_charged_input' -! write(*,*) theo(n)%BR_HpjhiW +! write(*,*) theo(n)%BR_HpjhiW ! if(present(BR_HpjhiW_in)) then ! write(*,*) "BR_HpjhiW given: ", BR_HpjhiW_in ! theo(n)%BR_HpjhiW = BR_HpjhiW_in ! else ! if(np(Hneut).gt.0) then ! theo(n)%BR_HpjhiW = 0.0D0 -! endif +! endif ! endif ! write(*,*) theo(n)%BR_HpjhiW - just_after_run=.False. + just_after_run=.False. end subroutine HiggsBounds_charged_input -!************************************************************ -subroutine HiggsBounds_charged_input_hadr(collider, CS_Hpjtb, CS_Hpjcb, & -& CS_Hpjbjet, CS_Hpjcjet, CS_Hpjjetjet, CS_HpjW, & -& CS_HpjZ, CS_vbf_Hpj, CS_HpjHmj, CS_Hpjhi) +!************************************************************ +subroutine HiggsBounds_charged_input_hadr(collider, CS_Hpmjtb, CS_Hpmjcb, & +& CS_Hpmjbjet, CS_Hpmjcjet, CS_Hpmjjetjet, CS_HpmjW, & +& CS_HpmjZ, CS_vbf_Hpmj, CS_HpjHmj, CS_Hpmjhi) ! This subroutine can be called by the user after subroutine initialize_HiggsBounds ! has been called. ! Arguments (input): theoretical predictions (see manual for definitions) !************************************************************ use usefulbits, only : theo,np,Hplus,Hneut,just_after_run,hadroncolliderdataset!,inputsub #if defined(NAGf90Fortran) use F90_UNIX_IO, only : flush #endif implicit none !----------------------------------------input - double precision,intent(in) :: CS_Hpjtb( np(Hplus) ), CS_Hpjcb( np(Hplus) ),& -& CS_Hpjbjet( np(Hplus) ), CS_Hpjcjet( np(Hplus) ),& -& CS_Hpjjetjet( np(Hplus) ), & -& CS_HpjW( np(Hplus) ), CS_HpjZ( np(Hplus) ),& -& CS_vbf_Hpj( np(Hplus) ), CS_HpjHmj( np(Hplus) ) + double precision,intent(in) :: CS_Hpmjtb( np(Hplus) ), CS_Hpmjcb( np(Hplus) ),& +& CS_Hpmjbjet( np(Hplus) ), CS_Hpmjcjet( np(Hplus) ),& +& CS_Hpmjjetjet( np(Hplus) ), & +& CS_HpmjW( np(Hplus) ), CS_HpmjZ( np(Hplus) ),& +& CS_vbf_Hpmj( np(Hplus) ), CS_HpjHmj( np(Hplus) ) integer, intent(in) :: collider - double precision,intent(in) :: CS_Hpjhi( np(Hplus),np(Hneut) ) + double precision,intent(in) :: CS_Hpmjhi( np(Hplus),np(Hneut) ) !--------------------------------------internal integer :: n !---------------------------------------------- - n=1 - + n=1 + if(.not.allocated(theo))then stop 'subroutine HiggsBounds_initialize must be called first' endif if(np(Hplus).eq.0)then write(*,*)'subroutine HiggsBounds_charged_input should' write(*,*)'only be called if np(Hplus)>0' stop 'error in subroutine HiggsBounds_charged_input' endif select case(collider) case(2) -! if(present(CS_Hpjhi)) then - call set_input(theo(n)%tev,CS_Hpjtb, CS_Hpjcb, CS_Hpjbjet, & -& CS_Hpjcjet, CS_Hpjjetjet, CS_HpjW, & -& CS_HpjZ, CS_vbf_Hpj, CS_HpjHmj, CS_Hpjhi) +! if(present(CS_Hpmjhi)) then + call set_input(theo(n)%tev,CS_Hpmjtb, CS_Hpmjcb, CS_Hpmjbjet, & +& CS_Hpmjcjet, CS_Hpmjjetjet, CS_HpmjW, & +& CS_HpmjZ, CS_vbf_Hpmj, CS_HpjHmj, CS_Hpmjhi) ! else -! call set_input(theo(n)%tev,CS_Hpjtb, CS_Hpjbjet, CS_HpjW, & -! & CS_HpjZ, CS_vbf_Hpj, CS_HpjHmj) +! call set_input(theo(n)%tev,CS_Hpmjtb, CS_Hpmjbjet, CS_HpmjW, & +! & CS_HpmjZ, CS_vbf_Hmpj, CS_HpjHmj) ! endif case(7) -! if(present(CS_Hpjhi)) then - call set_input(theo(n)%lhc7,CS_Hpjtb, CS_Hpjcb, CS_Hpjbjet, & -& CS_Hpjcjet, CS_Hpjjetjet, CS_HpjW, & -& CS_HpjZ, CS_vbf_Hpj, CS_HpjHmj, CS_Hpjhi) +! if(present(CS_Hpjhi)) then + call set_input(theo(n)%lhc7,CS_Hpmjtb, CS_Hpmjcb, CS_Hpmjbjet, & +& CS_Hpmjcjet, CS_Hpmjjetjet, CS_HpmjW, & +& CS_HpmjZ, CS_vbf_Hpmj, CS_HpjHmj, CS_Hpmjhi) ! else -! call set_input(theo(n)%lhc7,CS_Hpjtb, CS_Hpjbjet, CS_HpjW, & -! & CS_HpjZ, CS_vbf_Hpj, CS_HpjHmj) +! call set_input(theo(n)%lhc7,CS_Hpmjtb, CS_Hpmjbjet, CS_HpmjW, & +! & CS_HpmjZ, CS_vbf_Hmpj, CS_HpjHmj) ! endif - case(8) -! if(present(CS_Hpjhi)) then - call set_input(theo(n)%lhc8,CS_Hpjtb, CS_Hpjcb, CS_Hpjbjet, & -& CS_Hpjcjet, CS_Hpjjetjet, CS_HpjW, & -& CS_HpjZ, CS_vbf_Hpj, CS_HpjHmj, CS_Hpjhi) + case(8) +! if(present(CS_Hpjhi)) then + call set_input(theo(n)%lhc8,CS_Hpmjtb, CS_Hpmjcb, CS_Hpmjbjet, & +& CS_Hpmjcjet, CS_Hpmjjetjet, CS_HpmjW, & +& CS_HpmjZ, CS_vbf_Hpmj, CS_HpjHmj, CS_Hpmjhi) ! else -! call set_input(theo(n)%lhc8,CS_Hpjtb, CS_Hpjbjet, CS_HpjW, & -! & CS_HpjZ, CS_vbf_Hpj, CS_HpjHmj) +! call set_input(theo(n)%lhc8,CS_Hpmjtb, CS_Hpmjbjet, CS_HpmjW, & +! & CS_HpmjZ, CS_vbf_Hmpj, CS_HpjHmj) ! endif - case(13) -! if(present(CS_Hpjhi)) then - call set_input(theo(n)%lhc13,CS_Hpjtb, CS_Hpjcb, CS_Hpjbjet, & -& CS_Hpjcjet, CS_Hpjjetjet, CS_HpjW, & -& CS_HpjZ, CS_vbf_Hpj, CS_HpjHmj, CS_Hpjhi) + case(13) +! if(present(CS_Hpjhi)) then + call set_input(theo(n)%lhc13,CS_Hpmjtb, CS_Hpmjcb, CS_Hpmjbjet, & +& CS_Hpmjcjet, CS_Hpmjjetjet, CS_HpmjW, & +& CS_HpmjZ, CS_vbf_Hpmj, CS_HpjHmj, CS_Hpmjhi) ! else -! call set_input(theo(n)%lhc13,CS_Hpjtb, CS_Hpjbjet, CS_HpjW, & -! & CS_HpjZ, CS_vbf_Hpj, CS_HpjHmj) +! call set_input(theo(n)%lhc13,CS_Hpmjtb, CS_Hpmjbjet, CS_HpmjW, & +! & CS_HpmjZ, CS_vbf_Hmpj, CS_HpjHmj) ! endif case default stop 'wrong input for collider to subroutine HiggsBounds_charged_input_hadr' end select - just_after_run=.False. + just_after_run=.False. contains - - subroutine set_input(dataset,CS_Hpjtb, CS_Hpjcb, CS_Hpjbjet, & -& CS_Hpjcjet, CS_Hpjjetjet, CS_HpjW, & -& CS_HpjZ, CS_vbf_Hpj, CS_HpjHmj, CS_Hpjhi) - - double precision,intent(in) :: CS_Hpjtb( np(Hplus) ), CS_Hpjcb( np(Hplus) ),& -& CS_Hpjbjet( np(Hplus) ), CS_Hpjcjet( np(Hplus) ),& -& CS_Hpjjetjet( np(Hplus) ), & -& CS_HpjW( np(Hplus) ), CS_HpjZ( np(Hplus) ),& -& CS_vbf_Hpj( np(Hplus) ), CS_HpjHmj( np(Hplus) ) - double precision,intent(in) :: CS_Hpjhi( np(Hplus),np(Hneut) ) + + subroutine set_input(dataset,CS_Hpmjtb, CS_Hpmjcb, CS_Hpmjbjet, & +& CS_Hpmjcjet, CS_Hpmjjetjet, CS_HpmjW, & +& CS_HpmjZ, CS_vbf_Hpmj, CS_HpjHmj, CS_Hpmjhi) + + double precision,intent(in) :: CS_Hpmjtb( np(Hplus) ), CS_Hpmjcb( np(Hplus) ),& +& CS_Hpmjbjet( np(Hplus) ), CS_Hpmjcjet( np(Hplus) ),& +& CS_Hpmjjetjet( np(Hplus) ), & +& CS_HpmjW( np(Hplus) ), CS_HpmjZ( np(Hplus) ),& +& CS_vbf_Hpmj( np(Hplus) ), CS_HpjHmj( np(Hplus) ) + double precision,intent(in) :: CS_Hpmjhi( np(Hplus),np(Hneut) ) type(hadroncolliderdataset) :: dataset - dataset%XS_Hpjtb = CS_Hpjtb - dataset%XS_Hpjcb = CS_Hpjcb - dataset%XS_Hpjbjet = CS_Hpjbjet - dataset%XS_Hpjcjet = CS_Hpjcjet - dataset%XS_Hpjjetjet = CS_Hpjjetjet - dataset%XS_vbf_Hpj = CS_vbf_Hpj - dataset%XS_HpjW = CS_HpjW - dataset%XS_HpjZ = CS_HpjZ + dataset%XS_Hpmjtb = CS_Hpmjtb + dataset%XS_Hpmjcb = CS_Hpmjcb + dataset%XS_Hpmjbjet = CS_Hpmjbjet + dataset%XS_Hpmjcjet = CS_Hpmjcjet + dataset%XS_Hpmjjetjet = CS_Hpmjjetjet + dataset%XS_vbf_Hpmj = CS_vbf_Hpmj + dataset%XS_HpmjW = CS_HpmjW + dataset%XS_HpmjZ = CS_HpmjZ dataset%XS_HpjHmj = CS_HpjHmj -! if(present(CS_Hpjhi)) then - dataset%XS_Hpjhi = CS_Hpjhi -! endif +! if(present(CS_Hpmjhi)) then + dataset%XS_Hpmjhi = CS_Hpmjhi +! endif end subroutine set_input - + end subroutine HiggsBounds_charged_input_hadr -!************************************************************ +!************************************************************ subroutine HiggsBounds_get_neutral_hadr_CS(i,collider,& & singleH, ggH, bbH, VBF, WH, ZH, ttH, tH_tchan, tH_schan) use usefulbits, only : theo, np, Hneut, hadroncolliderdataset implicit none - + integer, intent(in) :: i, collider double precision, intent(out) :: singleH, ggH, bbH, VBF, WH, ZH, ttH, tH_tchan, tH_schan if(.not.allocated(theo))then stop 'subroutine HiggsBounds_initialize must be called first' endif if(i.gt.np(Hneut)) then - write(*,"(A,I2,A)") 'WARNING: Requested neutral Higgs h',i,' not part of the model!' + write(*,"(A,I2,A)") 'WARNING: Requested neutral Higgs h',i,' not part of the model!' else select case(collider) case(2) call get_cross_section(theo(1)%tev,i, singleH, ggH, bbH, VBF, WH, ZH, ttH, tH_tchan, tH_schan) case(7) call get_cross_section(theo(1)%lhc7,i, singleH, ggH, bbH, VBF, WH, ZH, ttH, tH_tchan, tH_schan) case(8) call get_cross_section(theo(1)%lhc8,i, singleH, ggH, bbH, VBF, WH, ZH, ttH, tH_tchan, tH_schan) - case(13) + case(13) call get_cross_section(theo(1)%lhc13,i, singleH, ggH, bbH, VBF, WH, ZH, ttH, tH_tchan, tH_schan) case default stop 'wrong input for collider to subroutine HiggsBounds_get_neutral_SMnormalizedCS' end select endif contains - + subroutine get_cross_section(dataset,i, singleH, ggH, bbH, VBF, WH, ZH, ttH, tH_tchan, tH_schan) integer, intent(in) :: i double precision, intent(inout) :: singleH, ggH, bbH, VBF, WH, ZH, ttH, tH_tchan, tH_schan type(hadroncolliderdataset) :: dataset singleH = dataset%XS_hj_ratio(i) ggH = dataset%XS_gg_hj_ratio(i) bbH = dataset%XS_bb_hj_ratio(i) VBF = dataset%XS_vbf_ratio(i) WH = dataset%XS_hjW_ratio(i) ZH = dataset%XS_hjZ_ratio(i) ttH = dataset%XS_tthj_ratio(i) tH_tchan = dataset%XS_thj_tchan_ratio(i) tH_schan = dataset%XS_thj_schan_ratio(i) end subroutine get_cross_section !************************************************************ end subroutine HiggsBounds_get_neutral_hadr_CS !************************************************************ subroutine HiggsBounds_get_neutral_BR(i,BR_hjss,BR_hjcc,BR_hjbb,& & BR_hjtt,BR_hjmumu,BR_hjtautau,BR_hjWW,BR_hjZZ,BR_hjZga,& & BR_hjgaga,BR_hjgg) use usefulbits, only : theo, np, Hneut implicit none - + integer, intent(in) :: i double precision, intent(out) :: BR_hjss,BR_hjcc,BR_hjbb,& & BR_hjtt,BR_hjmumu,BR_hjtautau,BR_hjWW,BR_hjZZ,BR_hjZga,& & BR_hjgaga,BR_hjgg if(.not.allocated(theo))then stop 'subroutine HiggsBounds_initialize must be called first' endif if(i.gt.np(Hneut)) then - write(*,"(A,I2,A)") 'WARNING: Requested neutral Higgs h',i,' not part of the model!' + write(*,"(A,I2,A)") 'WARNING: Requested neutral Higgs h',i,' not part of the model!' else BR_hjss = theo(1)%BR_hjss(i) BR_hjcc = theo(1)%BR_hjcc(i) BR_hjbb = theo(1)%BR_hjbb(i) BR_hjtt = theo(1)%BR_hjtt(i) - BR_hjmumu = theo(1)%BR_hjmumu(i) + BR_hjmumu = theo(1)%BR_hjmumu(i) BR_hjtautau = theo(1)%BR_hjtautau(i) BR_hjWW = theo(1)%BR_hjWW(i) - BR_hjZZ = theo(1)%BR_hjZZ(i) - BR_hjZga = theo(1)%BR_hjZga(i) + BR_hjZZ = theo(1)%BR_hjZZ(i) + BR_hjZga = theo(1)%BR_hjZga(i) BR_hjgaga = theo(1)%BR_hjgaga(i) - BR_hjgg = theo(1)%BR_hjgg(i) + BR_hjgg = theo(1)%BR_hjgg(i) endif end subroutine HiggsBounds_get_neutral_BR !************************************************************ subroutine HiggsBounds_set_mass_uncertainties(dMhneut, dMhch) -!************************************************************ +!************************************************************ ! Assigns the mass uncertainties in the subroutine version. ! use usefulbits, only : theo,np,Hneut,Hplus - + implicit none - + double precision, intent(in) :: dMhneut(np(Hneut)) double precision, intent(in) :: dMhch(np(Hplus)) - + theo(1)%particle(Hneut)%dMh = dMhneut - theo(1)%particle(Hplus)%dMh = dMhch - + theo(1)%particle(Hplus)%dMh = dMhch + end subroutine HiggsBounds_set_mass_uncertainties -!************************************************************ +!************************************************************ subroutine get_mass_variation_param(n) use usefulbits, only : theo,np,Hneut,Hplus,diffMhneut,diffMhch,ndmh,dmhsteps,small_mh implicit none integer, intent(in) :: n double precision :: dMhneut(np(Hneut)) - double precision :: dMhch(np(Hplus)) + double precision :: dMhch(np(Hplus)) integer :: km(np(Hneut)+np(Hplus)) integer :: dm(dmhsteps**(np(Hneut)+np(Hplus)),np(Hneut)+np(Hplus)) integer i,j,k,kp if(np(Hneut).gt.0) dMhneut = theo(n)%particle(Hneut)%dMh if(np(Hplus).gt.0) dMhch = theo(n)%particle(Hplus)%dMh if (modulo(dmhsteps,2).NE.1) then stop 'Wrong number of steps in set_mass_uncertainty: must be odd (>=3)' - endif + endif ndmh = 0 do i=1,np(Hneut) - + IF (dMhneut(i).GT.small_mh) THEN ndmh = ndmh + 1 ENDIF km(i)=-(dmhsteps-1)/2 enddo - + do i=1,np(Hplus) IF (dMhch(i).GT.small_mh) ndmh = ndmh + 1 km(i+np(Hneut))=-(dmhsteps-1)/2 enddo - + IF (ndmh.EQ.0) THEN RETURN ENDIF - + ! print *, "Number of mass uncertainties: ", ndmh if(allocated(diffMhneut)) deallocate(diffMhneut) if(allocated(diffMhch)) deallocate(diffMhch) - + allocate(diffMhneut(dmhsteps**(np(Hneut)+np(Hplus)),np(Hneut))) allocate(diffMhch(dmhsteps**(np(Hneut)+np(Hplus)),np(Hplus))) k = 1 do i=1,dmhsteps**ndmh do j=1,ndmh dm(i,j) = km(j) enddo km(k) = km(k)+1 do j=2,ndmh IF (modulo(i,dmhsteps**(j-1)).EQ.0) THEN km(j) = km(j)+1 km(j-1) = -1 ENDIF ENDDO - enddo - - + enddo + + do i=1,dmhsteps**ndmh k=1 - + do j=1,np(Hneut) IF (dMhneut(j).GT.small_mh) THEN diffMhneut(i,j)=theo(n)%particle(Hneut)%M(j)+dm(i,k)*dMhneut(k)/((dmhsteps-1)/2) k = k +1 ELSE diffMhneut(i,j)=theo(n)%particle(Hneut)%M(j) ENDIF enddo - + kp = k do j=1,np(Hplus) IF (dMhch(j).GT.small_mh) THEN diffMhch(i,j)=theo(n)%particle(Hplus)%M(j)+dm(i,k)*dMhch(k-(kp-1))/((dmhsteps-1)/2) k = k +1 ELSE diffMhch(i,j)=theo(n)%particle(Hplus)%M(j) ENDIF enddo - - + + ! print *, i, (diffMhneut(i,j),j=1,np(Hneut)),(diffMhch(i,j),j=1,np(Hplus)) - + enddo - + end subroutine get_mass_variation_param subroutine SUSYBounds_neutralinoonly_input(MN,GammaTotal_N, & & CS_NjNi, & & BR_NjqqNi,BR_NjZNi & & ) ! This subroutine can be called by the user after subroutine initialize_HiggsBounds ! has been called. ! Arguments (input): theoretical predictions (see manual for definitions) !************************************************************ use usefulbits, only : theo,np,Chineut,just_after_run!,inputsub, #if defined(NAGf90Fortran) use F90_UNIX_IO, only : flush #endif implicit none !----------------------------------------input double precision,intent(in) :: MN( np(Chineut) ),GammaTotal_N( np(Chineut) ) , & & CS_NjNi( np(Chineut),np(Chineut) ), & - & BR_NjqqNi( np(Chineut),np(Chineut) ),BR_NjZNi( np(Chineut),np(Chineut) ) + & BR_NjqqNi( np(Chineut),np(Chineut) ),BR_NjZNi( np(Chineut),np(Chineut) ) !--------------------------------------internal integer :: n ! integer :: subtype !---------------------------------------------- - - n=1 + + n=1 ! subtype=3 ! inputsub(subtype)%stat=inputsub(subtype)%stat+1 if(.not.allocated(theo))then stop 'subroutine HiggsBounds_initialize must be called first' endif if(np(Chineut).eq.0)then write(*,*)'subroutine SUSYBounds_neutralinoonly_input should' write(*,*)'only be called if np(Chineut)>0' stop 'error in SUSYBounds_neutralinoonly_input' endif theo(n)%particle(Chineut)%M = MN theo(n)%particle(Chineut)%GammaTot= GammaTotal_N theo(n)%lep%XS_NjNi = CS_NjNi theo(n)%BR_NjqqNi = BR_NjqqNi - theo(n)%BR_NjZNi = BR_NjZNi + theo(n)%BR_NjZNi = BR_NjZNi - just_after_run=.False. + just_after_run=.False. end subroutine SUSYBounds_neutralinoonly_input -!************************************************************ +!************************************************************ subroutine SUSYBounds_neutralinochargino_input(MC,GammaTotal_C, & & CS_CpjCmj, & & BR_CjqqNi, & & BR_CjlnuNi, & & BR_CjWNi & & ) ! This subroutine can be called by the user after subroutine initialize_HiggsBounds ! has been called. ! Arguments (input): theoretical predictions (see manual for definitions) !************************************************************ use usefulbits, only : theo,np,Chineut,Chiplus,just_after_run!,inputsub #if defined(NAGf90Fortran) use F90_UNIX_IO, only : flush #endif implicit none !----------------------------------------input double precision,intent(in) :: MC( np(Chiplus) ),GammaTotal_C( np(Chiplus) ), & & CS_CpjCmj( np(Chiplus) ), & & BR_CjqqNi( np(Chiplus),np(Chineut) ), & & BR_CjlnuNi( np(Chiplus),np(Chineut) ), & - & BR_CjWNi( np(Chiplus),np(Chineut) ) + & BR_CjWNi( np(Chiplus),np(Chineut) ) !--------------------------------------internal integer :: n integer :: subtype !---------------------------------------------- - - n=1 + + n=1 ! subtype=4 ! inputsub(subtype)%stat=inputsub(subtype)%stat+1 if(.not.allocated(theo))then stop 'subroutine HiggsBounds_initialize must be called first' endif if((np(Chineut).eq.0).or.(np(Chiplus).eq.0))then write(*,*)'subroutine SUSYBounds_neutralinochargino_input should' write(*,*)'only be called if np(Chineut)>0 and np(Chiplus)>0' stop 'error in subroutine SUSYBounds_neutralinochargino_input' endif theo(n)%particle(Chineut)%M = MC theo(n)%particle(Chineut)%GammaTot= GammaTotal_C theo(n)%lep%XS_CpjCmj = CS_CpjCmj theo(n)%BR_CjqqNi = BR_CjqqNi theo(n)%BR_CjlnuNi = BR_CjlnuNi - theo(n)%BR_CjWNi = BR_CjWNi + theo(n)%BR_CjWNi = BR_CjWNi - just_after_run=.False. + just_after_run=.False. end subroutine SUSYBounds_neutralinochargino_input !************************************************************ subroutine run_HiggsBounds(HBresult, chan, obsratio, ncombined) ! This subroutine can be called by the user after HiggsBounds_initialize has been called. ! The input routines, where required, should be called before calling run_HiggsBounds. -! It takes theoretical predictions for a particular parameter point -! in the model and calls subroutines which compare these predictions +! It takes theoretical predictions for a particular parameter point +! in the model and calls subroutines which compare these predictions ! to the experimental limits -! Arguments (output): +! Arguments (output): ! * HBresult = 1 if point is unexcluded, 0 if excluded, -1 if parameter point is invalid ! * chan = number of channel predicted to have the highest statistical sensitivity, as defined in Key.dat ! * obsratio = ratio of the theoretical rate to the observed limit for this channel ! * ncombined = number of Higgs combined in order to calculate this obsratio ! (see manual for more precise definitions)) ! (TS 30/01/2012): Note, that if many data points are tested at the same time (as for ! inputmethod==datfiles), this subroutine only returns the results of ! the last datapoint. The full results are saved in fullHBres. use usefulbits, only : np, Hneut, Hplus, run_HB_classic implicit none integer HBresult, chan, ncombined double precision obsratio - + integer hbres(0:np(Hneut)+np(Hplus)), hbchan(0:np(Hneut)+np(Hplus)), hbcomb(0:np(Hneut)+np(Hplus)) double precision hbobs(0:np(Hneut)+np(Hplus)) ! Check if we are using the old 'classic' method if (run_HB_classic.EQV..True.) then call run_HiggsBounds_classic(HBresult,chan,obsratio,ncombined) return endif - + ! Call the new ('full') method call run_HiggsBounds_full(hbres, hbchan, hbobs, hbcomb) - + ! Combined results are contained in the zero elements of result arrays HBresult = hbres(0) chan = hbchan(0) obsratio = hbobs(0) ncombined = hbcomb(0) - + end subroutine run_HiggsBounds !************************************************************ subroutine run_HiggsBounds_single(h, HBresult, chan, obsratio, ncombined) ! This subroutine can be used to get the exclusion results ! for a single Higgs boson (specified by the index h). ! ! To obtain individual results from more than one Higgs boson, it ! is more efficient to use run_HiggsBounds_full rather than this method. use usefulbits, only : np, Hneut, Hplus implicit none integer, intent(in) :: h integer, intent(out) :: HBresult, chan, ncombined double precision, intent(out) :: obsratio - + integer hbres(0:np(Hneut)+np(Hplus)), hbchan(0:np(Hneut)+np(Hplus)), hbcomb(0:np(Hneut)+np(Hplus)) double precision hbobs(0:np(Hneut)+np(Hplus)) - + IF (h.LT.0) stop "Illegal number of Higgs boson: h < 0" if (h.GT.np(Hneut)+np(Hplus)) stop "Illegal number of Higgs boson" - + call run_HiggsBounds_full(hbres, hbchan, hbobs, hbcomb) HBresult = hbres(h) chan = hbchan(h) obsratio = hbobs(h) ncombined = hbcomb(h) end subroutine run_HiggsBounds_single !************************************************************ subroutine run_HiggsBounds_full( HBresult,chan, & & obsratio, ncombined ) ! This subroutine can be called by the user after HiggsBounds_initialize has been called. ! The input routines, where required, should be called before calling run_HiggsBounds. -! It takes theoretical predictions for a particular parameter point -! in the model and calls subroutines which compare these predictions +! It takes theoretical predictions for a particular parameter point +! in the model and calls subroutines which compare these predictions ! to the experimental limits. -! -! The results are given as (n+1)-component arrays (starting from 0), +! +! The results are given as (n+1)-component arrays (starting from 0), ! where n is the total number of Higgs bosons in the model (neutral+charged). ! The zeroth component gives the combined results (equivalent to run_HiggsBounds). ! -! Arguments (output): +! Arguments (output): ! * HBresult = 1 if point is unexcluded, 0 if excluded, -1 if parameter point is invalid ! * chan = number of channel predicted to have the highest statistical sensitivity, as defined in Key.dat ! * obsratio = ratio of the theoretical rate to the observed limit for this channel ! * ncombined = number of Higgs combined in order to calculate this obsratio ! (see manual for more precise definitions)) use usefulbits, only : theo,res,just_after_run,ndmh,debug,numres, & & np,Hneut,Hplus,dmhsteps,ndat,fullHBres,small_mh,& HBresult_all,ncombined_all,chan_all,obsratio_all,predratio_all use channels, only : check_channels !use input, only : test_input use theo_manip, only : HB5_complete_theo, HB5_recalculate_theo_for_datapoint #if defined(NAGf90Fortran) use F90_UNIX_IO, only : flush #endif - implicit none + implicit none !----------------------------------------output integer,intent(out):: HBresult(0:np(Hneut)+np(Hplus)) integer,intent(out):: chan(0:np(Hneut)+np(Hplus)) integer,intent(out):: ncombined(0:np(Hneut)+np(Hplus)) double precision,intent(out) :: obsratio(0:np(Hneut)+np(Hplus)) - + double precision :: Mhneut(np(Hneut)) double precision :: Mhch(np(Hplus)) !-------------------------------------internal integer :: n,i,j,ind,part,k !--------------------------------------------- ! print *, "Running HiggsBounds in Normal Mode (most sensitive limit considered for each Higgs boson)" - + if (lbound(HBresult,dim=1).NE.0) stop "run_HiggsBounds_full: Array HBresult must begin with element 0" if (ubound(HBresult,dim=1).NE.(np(Hneut)+np(Hplus))) then stop "run_HiggsBounds_full: Upper limit of array HBresult must be equal to number of Higgses" - endif + endif if (lbound(chan,dim=1).NE.0) stop "run_HiggsBounds_full: Array chan must begin with element 0" if (ubound(chan,dim=1).NE.(np(Hneut)+np(Hplus))) then stop "run_HiggsBounds_full: Upper limit of array chan must be equal to number of Higgses" - endif + endif if (lbound(obsratio,dim=1).NE.0) stop "run_HiggsBounds_full: Array obsratio must begin with element 0" if (ubound(obsratio,dim=1).NE.(np(Hneut)+np(Hplus))) then stop "run_HiggsBounds_full: Upper limit of array obsratio must be equal to number of Higgses" - endif + endif if (lbound(ncombined,dim=1).NE.0) stop "run_HiggsBounds_full: Array ncombined must begin with element 0" if (ubound(ncombined,dim=1).NE.(np(Hneut)+np(Hplus))) then stop "run_HiggsBounds_full: Upper limit of array ncombined must be equal to number of Higgses" - endif + endif if(.not.allocated(theo))then stop 'subroutine HiggsBounds_initialize must be called first' endif if(.not.allocated(HBresult_all)) allocate(HBresult_all(0:np(Hneut)+np(Hplus),numres)) if(.not.allocated(chan_all)) allocate(chan_all(0:np(Hneut)+np(Hplus),numres)) - if(.not.allocated(ncombined_all)) allocate(ncombined_all(0:np(Hneut)+np(Hplus),numres)) - if(.not.allocated(obsratio_all)) allocate(obsratio_all(0:np(Hneut)+np(Hplus),numres)) - if(.not.allocated(predratio_all)) allocate(predratio_all(0:np(Hneut)+np(Hplus),numres)) + if(.not.allocated(ncombined_all)) allocate(ncombined_all(0:np(Hneut)+np(Hplus),numres)) + if(.not.allocated(obsratio_all)) allocate(obsratio_all(0:np(Hneut)+np(Hplus),numres)) + if(.not.allocated(predratio_all)) allocate(predratio_all(0:np(Hneut)+np(Hplus),numres)) ! do i=1,ubound(inputsub,dim=1) ! if( inputsub(i)%req .ne. inputsub(i)%stat )then ! write(*,*)'subroutine '//trim(adjustl(inputsub(i)%desc)) ! write(*,*)'should be called once and only once before each call to' ! write(*,*)'subroutine run_HiggsBounds.' ! stop 'error in subroutine run_HiggsBounds' ! endif ! inputsub(i)%stat=0!now we have used this input, set back to zero ! enddo - call HB5_complete_theo - + call HB5_complete_theo + do n=1,ndat ! if(debug) then ! write(*,*) "DEBUG BRs: ", theo(n)%BR_hjWW, theo(n)%BR_hjZZ, theo(n)%BR_hjgaga - + ! endif - + theo(n)%particle(Hneut)%Mc = theo(n)%particle(Hneut)%M theo(n)%particle(Hplus)%Mc = theo(n)%particle(Hplus)%M call get_mass_variation_param(n) do i=0,ubound(Hbresult,dim=1) obsratio_all(i,:) = -999d0 - predratio_all(i,:) = -999d0 + predratio_all(i,:) = -999d0 HBresult_all(i,:) = 1 chan_all(i,:) = -999 ncombined_all(i,:) = -999 obsratio(i) = -999d0 HBresult(i) = 1 chan(i) = -999 ncombined(i) = -999 enddo ! Do we have mass uncertainties to take care off IF (ndmh.GT.0) THEN - + ! print *, "Running HiggsBounds with Higgs mass uncertainties" ! write(*,*) theo(n)%particle(Hplus)%dM - - if(np(Hneut).ne.0) Mhneut = theo(n)%particle(Hneut)%M + + if(np(Hneut).ne.0) Mhneut = theo(n)%particle(Hneut)%M if(np(Hplus).ne.0) Mhch = theo(n)%particle(Hplus)%M ! Loop over all Higgses do i=1,np(Hneut)+np(Hplus) obsratio_all(i,:) = 1.D23 IF (i.LE.np(Hneut)) THEN ind = i part = Hneut ELSE ind = i-np(Hneut) part = Hplus ENDIF - + ! Check for mass steps for this particular Higgs boson IF(theo(n)%particle(part)%dMh(ind).GT.small_mh) THEN ! theo(n)%particle(part)%M(ind)=theo(n)%particle(part)%M(ind) & ! & -(dmhsteps-1)/2*theo(n)%particle(part)%dMh(ind) theo(n)%particle(part)%M(ind)=theo(n)%particle(part)%M(ind) & & -theo(n)%particle(part)%dMh(ind) - do j=1,dmhsteps - + do j=1,dmhsteps + ! print *, theo(n)%particle(Hneut)%M, theo(n)%particle(Hplus)%M - call HB5_recalculate_theo_for_datapoint(n) + call HB5_recalculate_theo_for_datapoint(n) call check_channels(theo(n),res(n),i) - + do k=1,size(res(n)%obsratio) ! write(*,*) "i,k,res(n)%obsratio(k),res(n)%chan(k) = ",i,k,res(n)%obsratio(k),res(n)%chan(k) - + IF (res(n)%obsratio(k).LT.obsratio_all(i,k)) THEN -! write(*,*) "i,k,res(n)%obsratio(k),res(n)%chan(k) = ",i,k,res(n)%obsratio(k),res(n)%chan(k) +! write(*,*) "i,k,res(n)%obsratio(k),res(n)%chan(k) = ",i,k,res(n)%obsratio(k),res(n)%chan(k) HBresult_all(i,k) = res(n)%allowed95(k) - chan_all(i,k) = res(n)%chan(k) + chan_all(i,k) = res(n)%chan(k) obsratio_all(i,k) = res(n)%obsratio(k) predratio_all(i,k) = res(n)%predratio(k) - ncombined_all(i,k) = res(n)%ncombined(k) + ncombined_all(i,k) = res(n)%ncombined(k) ENDIF enddo - + ! print *, i,theo(n)%particle(part)%M(ind),HBresult(i),chan(i),obsratio(i),ncombined(i) - + theo(n)%particle(part)%M(ind)= theo(n)%particle(part)%M(ind) & & +theo(n)%particle(part)%dMh(ind)/(dmhsteps-1)*2 - + enddo else call HB5_recalculate_theo_for_datapoint(n) call check_channels(theo(n),res(n),i) do k=1,size(res(n)%obsratio) -! write(*,*) "i,k,res(n)%obsratio(k),res(n)%chan(k) = ",i,k,res(n)%obsratio(k),res(n)%chan(k) +! write(*,*) "i,k,res(n)%obsratio(k),res(n)%chan(k) = ",i,k,res(n)%obsratio(k),res(n)%chan(k) HBresult_all(i,k) = res(n)%allowed95(k) - chan_all(i,k) = res(n)%chan(k) + chan_all(i,k) = res(n)%chan(k) obsratio_all(i,k) = res(n)%obsratio(k) - predratio_all(i,k) = res(n)%predratio(k) + predratio_all(i,k) = res(n)%predratio(k) ncombined_all(i,k) = res(n)%ncombined(k) enddo -! HBresult(i) = res(n)%allowed95(1) -! chan(i) = res(n)%chan(1) +! HBresult(i) = res(n)%allowed95(1) +! chan(i) = res(n)%chan(1) ! obsratio(i) = res(n)%obsratio(1) -! ncombined(i) = res(n)%ncombined(1) - endif - - +! ncombined(i) = res(n)%ncombined(1) + endif + + HBresult(i) = HBresult_all(i,1) chan(i) = chan_all(i,1) obsratio(i) = obsratio_all(i,1) ncombined(i) = ncombined_all(i,1) - + ! Logical OR between exclusions (one Higgs excluded = combined exclusion) HBresult(0) = HBresult(0) * HBresult(i) - -! Save the data for the Higgs that has the highest ratio of theory/obs + +! Save the data for the Higgs that has the highest ratio of theory/obs IF (obsratio(i).GT.obsratio(0)) THEN - chan(0) = chan(i) + chan(0) = chan(i) obsratio(0) = obsratio(i) - ncombined(0) = ncombined(i) + ncombined(0) = ncombined(i) ENDIF - + theo(n)%particle(Hneut)%M = Mhneut theo(n)%particle(Hplus)%M = Mhch - + enddo - ! return - + ! return + ELSE - - + + ! print *, "Running HiggsBounds without Higgs mass uncertainties" - call HB5_recalculate_theo_for_datapoint(n) + call HB5_recalculate_theo_for_datapoint(n) ! write(*,*) "Higgses = " , np(Hneut)+np(Hplus) do i=1,np(Hneut)+np(Hplus) call check_channels(theo(n),res(n),i) - + ! do k=1,size(res(n)%obsratio) ! write(*,*) "i,k,res(n)%obsratio(k),res(n)%chan(k) = ",i,k,res(n)%obsratio(k),res(n)%chan(k) ! enddo - + do k=1,size(res(n)%obsratio) -! write(*,*) "i,k,res(n)%obsratio(k),res(n)%chan(k) = ",i,k,res(n)%obsratio(k),res(n)%chan(k) +! write(*,*) "i,k,res(n)%obsratio(k),res(n)%chan(k) = ",i,k,res(n)%obsratio(k),res(n)%chan(k) HBresult_all(i,k) = res(n)%allowed95(k) - chan_all(i,k) = res(n)%chan(k) + chan_all(i,k) = res(n)%chan(k) obsratio_all(i,k) = res(n)%obsratio(k) - predratio_all(i,k) = res(n)%predratio(k) + predratio_all(i,k) = res(n)%predratio(k) ncombined_all(i,k) = res(n)%ncombined(k) enddo HBresult(i) = HBresult_all(i,1) chan(i) = chan_all(i,1) obsratio(i) = obsratio_all(i,1) ncombined(i) = ncombined_all(i,1) ! HBresult(i) = res(n)%allowed95(1) -! chan(i) = res(n)%chan(1) +! chan(i) = res(n)%chan(1) ! obsratio(i) = res(n)%obsratio(1) -! ncombined(i) = res(n)%ncombined(1) -! +! ncombined(i) = res(n)%ncombined(1) +! ! write(*,*) "hello: i=",i," HBres, chan, obsratio = ", HBresult(i), chan(i), obsratio(i) - + HBresult(0) = HBresult(0) * res(n)%allowed95(1) - + IF (obsratio(i).GT.obsratio(0)) THEN ! write(*,*) "hello: ", n, i - chan(0) = res(n)%chan(1) + chan(0) = res(n)%chan(1) obsratio(0) = res(n)%obsratio(1) - ncombined(0) = res(n)%ncombined(1) + ncombined(0) = res(n)%ncombined(1) ENDIF - + ! IF (i.LE.np(Hneut)) THEN -! print *, i,theo(n)%particle(Hneut)%M(i),HBresult(i),chan(i),obsratio(i),ncombined(i),HBresult(0), obsratio(0) +! print *, i,theo(n)%particle(Hneut)%M(i),HBresult(i),chan(i),obsratio(i),ncombined(i),HBresult(0), obsratio(0) ! ELSE -! print *, i,theo(n)%particle(Hplus)%M(i-np(Hneut)),HBresult(i),chan(i),obsratio(i),ncombined(i),HBresult(0), obsratio(0) +! print *, i,theo(n)%particle(Hplus)%M(i-np(Hneut)),HBresult(i),chan(i),obsratio(i),ncombined(i),HBresult(0), obsratio(0) ! endif enddo ENDIF ! write(*,*) "run_HB_full, obsratio: ", obsratio -! write(*,*) "run_HB_full, chan : ", chan +! write(*,*) "run_HB_full, chan : ", chan fullHBres(n)%allowed95=HBresult(0) fullHBres(n)%chan=chan(0) fullHBres(n)%obsratio=obsratio(0) fullHBres(n)%ncombined=ncombined(0) - + enddo just_after_run=.True. - + ! print *, "HB: run done" end subroutine run_HiggsBounds_full !************************************************************ subroutine HiggsBounds_get_most_sensitive_channels_per_Higgs(nH,pos,HBresult,chan,obsratio,predratio,ncombined) !************************************************************ use usefulbits, only : HBresult_all,obsratio_all,chan_all,ncombined_all,predratio_all,& & just_after_run,np,Hneut,Hplus,numres integer, intent(in) :: nH, pos integer, intent(out) :: HBresult, chan, ncombined double precision, intent(out) :: obsratio, predratio HBresult = 0 chan = 0 obsratio = 0 predratio = 0 ncombined = 0 - + if(just_after_run.and.allocated(HBresult_all)) then if(nH.le.np(Hneut)+np(Hplus)) then if(pos.le.numres) then HBresult = HBresult_all(nH,pos) - chan = chan_all(nH,pos) + chan = chan_all(nH,pos) obsratio = obsratio_all(nH,pos) - predratio = predratio_all(nH,pos) + predratio = predratio_all(nH,pos) ncombined = ncombined_all(nH,pos) else write(*,*) 'WARNING: request exceeds the number of stored most sensitive channels (',numres,')' endif else write(*,*) 'WARNING: requested Higgs boson is invalid (choose between 1 and ',np(Hneut)+np(Hplus),'!)' endif else write(*,*) 'WARNING: Please call run_HiggsBounds or run_HiggsBounds_full before calling',& & ' HiggsBounds_get_most_sensitive_channels!' - endif + endif end subroutine HiggsBounds_get_most_sensitive_channels_per_Higgs !************************************************************ subroutine HiggsBounds_get_most_sensitive_channels(pos,HBresult,chan,obsratio,predratio,ncombined) !************************************************************ use usefulbits, only : HBresult_all,obsratio_all,predratio_all,chan_all,ncombined_all,& & just_after_run,np,Hneut,Hplus,numres integer, intent(in) :: pos integer, intent(out) :: HBresult, chan, ncombined double precision, intent(out) :: obsratio,predratio integer :: i,j,count - integer,allocatable :: nH_rank(:),pos_rank(:), posflat(:) + integer,allocatable :: nH_rank(:),pos_rank(:), posflat(:) double precision, allocatable :: predratio_tmp(:) - + allocate(nH_rank(numres),pos_rank(numres),posflat(numres),predratio_tmp(numres*(np(Hneut)+np(Hplus)))) HBresult = 0 chan = 0 obsratio = 0 ncombined = 0 - + predratio_tmp = 0 - + count=0 if(just_after_run.and.allocated(HBresult_all)) then if(pos.le.numres) then do j=1,np(Hneut)+np(Hplus) do i=1,numres count=count+1 predratio_tmp(count)=predratio_all(j,i) enddo enddo - + do i=1,numres posflat(i) = maxloc(predratio_tmp,1) predratio_tmp(posflat(i)) = -1.0D0 - enddo + enddo count=0 - + do j=1,np(Hneut)+np(Hplus) do i=1,numres - count=count+1 + count=count+1 do k=1,numres if(count.eq.posflat(k)) then nH_rank(k) = j pos_rank(k) = i endif - enddo + enddo enddo enddo - + HBresult = HBresult_all(nH_rank(pos),pos_rank(pos)) - chan = chan_all(nH_rank(pos),pos_rank(pos)) + chan = chan_all(nH_rank(pos),pos_rank(pos)) obsratio = obsratio_all(nH_rank(pos),pos_rank(pos)) - predratio = predratio_all(nH_rank(pos),pos_rank(pos)) + predratio = predratio_all(nH_rank(pos),pos_rank(pos)) ncombined = ncombined_all(nH_rank(pos),pos_rank(pos)) - + else write(*,*) 'WARNING: request exceeds the number of stored most sensitive channels (',numres,')' endif else write(*,*) 'WARNING: Please call run_HiggsBounds or run_HiggsBounds_full before calling',& & ' HiggsBounds_get_most_sensitive_channels!' - endif + endif deallocate(nH_rank,pos_rank,posflat,predratio_tmp) end subroutine HiggsBounds_get_most_sensitive_channels !************************************************************ subroutine run_HiggsBounds_classic( HBresult,chan,obsratio,ncombined) ! This subroutine can be called by the user after HiggsBounds_initialize has been called. ! The input routines, where required, should be called before calling run_HiggsBounds. -! It takes theoretical predictions for a particular parameter point -! in the model and calls subroutines which compare these predictions +! It takes theoretical predictions for a particular parameter point +! in the model and calls subroutines which compare these predictions ! to the experimental limits -! Arguments (output): +! Arguments (output): ! * HBresult = 1 if point is unexcluded, 0 if excluded, -1 if parameter point is invalid ! * chan = number of channel predicted to have the highest statistical sensitivity, as defined in Key.dat ! * obsratio = ratio of the theoretical rate to the observed limit for this channel ! * ncombined = number of Higgs combined in order to calculate this obsratio ! (see manual for more precise definitions)) use usefulbits, only : theo,res,debug,just_after_run,ndmh,diffmhneut,diffmhch, & np,Hneut,Hplus,full_dmth_variation,dmhsteps, ndat,fullHBres!,inputsub use channels, only : check_channels !use input, only : test_input use theo_manip, only : HB5_complete_theo, HB5_recalculate_theo_for_datapoint #if defined(NAGf90Fortran) use F90_UNIX_IO, only : flush #endif - implicit none + implicit none !----------------------------------------output integer,intent(out):: HBresult,chan,ncombined double precision,intent(out) :: obsratio - + double precision :: Mhneut(np(Hneut)) double precision :: Mhch(np(Hplus)) !-------------------------------------internal integer :: n,i integer :: HBresult_tmp,chan_tmp,ncombined_tmp double precision :: obsratio_tmp !--------------------------------------------- ! n=1 - + ! print *, "Running HiggsBounds in Classic Mode (globally most sensitive limit only)" - - + + if(.not.allocated(theo))then stop 'subroutine HiggsBounds_initialize must be called first' endif ! do i=1,ubound(inputsub,dim=1) ! if( inputsub(i)%req .ne. inputsub(i)%stat )then ! write(*,*)'subroutine '//trim(adjustl(inputsub(i)%desc)) ! write(*,*)'should be called once and only once before each call to' ! write(*,*)'subroutine run_HiggsBounds.' ! stop 'error in subroutine run_HiggsBounds' ! endif ! inputsub(i)%stat=0!now we have used this input, set back to zero ! enddo - call HB5_complete_theo + call HB5_complete_theo do n=1,ndat - + theo(n)%particle(Hneut)%Mc = theo(n)%particle(Hneut)%M call get_mass_variation_param(n) IF (ndmh.GT.0) THEN - - if(np(Hneut).ne.0) Mhneut = theo(n)%particle(Hneut)%M + + if(np(Hneut).ne.0) Mhneut = theo(n)%particle(Hneut)%M if(np(Hplus).ne.0) Mhch = theo(n)%particle(Hplus)%M - + obsratio_tmp = 10.0E6 ! Set to very large initial value - do i=1,dmhsteps**ndmh + do i=1,dmhsteps**ndmh theo(n)%particle(Hneut)%M = diffMhneut(i,:) theo(n)%particle(Hplus)%M = diffMhch(i,:) - + if(debug)write(*,*)'manipulating input...' ; call flush(6) call HB5_recalculate_theo_for_datapoint(n) - - if(debug)write(*,*)'compare each data point to the experimental bounds...' ; call flush(6) + + if(debug)write(*,*)'compare each data point to the experimental bounds...' ; call flush(6) call check_channels(theo(n),res(n),0) - + HBresult = res(n)%allowed95(1) - chan = res(n)%chan(1) + chan = res(n)%chan(1) obsratio = res(n)%obsratio(1) - ncombined = res(n)%ncombined(1) + ncombined = res(n)%ncombined(1) ! print *, HBresult, chan, obsratio, ncombined - + IF (.NOT.full_dmth_variation) THEN IF (HBresult.EQ.1) THEN ! theo(n)%particle(Hneut)%M = Mhneut ! theo(n)%particle(Hplus)%M = Mhch just_after_run=.True. exit ENDIF ELSE IF (obsratio.lt.obsratio_tmp) THEN HBresult_tmp = HBresult chan_tmp = chan obsratio_tmp = obsratio ncombined_tmp = ncombined ENDIF - ENDIF + ENDIF enddo - + IF (full_dmth_variation) THEN HBresult = HBresult_tmp chan = chan_tmp obsratio = obsratio_tmp ncombined = ncombined ! theo(n)%particle(Hneut)%M = Mhneut ! theo(n)%particle(Hplus)%M = Mhch just_after_run=.True. ! return ENDIF - + theo(n)%particle(Hneut)%M = Mhneut theo(n)%particle(Hplus)%M = Mhch call HB5_recalculate_theo_for_datapoint(n) call check_channels(theo(n),res(n),0) ELSE - + if(debug)write(*,*)'manipulating input...' ; call flush(6) call HB5_recalculate_theo_for_datapoint(n) - if(debug)write(*,*)'compare each data point to the experimental bounds...' ; call flush(6) - + if(debug)write(*,*)'compare each data point to the experimental bounds...' ; call flush(6) + call check_channels(theo(n),res(n),0) - + HBresult = res(n)%allowed95(1) - chan = res(n)%chan(1) + chan = res(n)%chan(1) obsratio = res(n)%obsratio(1) - ncombined = res(n)%ncombined(1) + ncombined = res(n)%ncombined(1) just_after_run=.True. ENDIF fullHBres(n)%allowed95=HBresult fullHBres(n)%chan=chan fullHBres(n)%obsratio=obsratio fullHBres(n)%ncombined=ncombined - enddo + enddo - just_after_run=.True. + just_after_run=.True. end subroutine run_HiggsBounds_classic !************************************************************ subroutine HiggsBounds_get_likelihood(analysisID, Hindex, nc, cbin, M, llh, obspred) !************************************************************ use usefulbits, only : theo,np,Hneut,Hplus use theo_manip, only : HB5_complete_theo use likelihoods, only : get_likelihood, calcpredratio_llh implicit none - + integer, intent(in) :: analysisID integer, intent(out) :: Hindex, nc, cbin double precision, intent(out) :: llh, M - character(LEN=*), intent(in) :: obspred + character(LEN=*), intent(in) :: obspred integer :: i - double precision, allocatable :: expllh(:) + double precision, allocatable :: expllh(:) ! double precision :: fact double precision, allocatable :: mass(:) ! predratio(:) - integer, allocatable :: nclist(:) + integer, allocatable :: nclist(:) ! call complete_theo ! allocate(predratio(np(Hneut))) ! predratio = 0.0D0 -! write(*,*) "Calling HiggsBounds_get_likelihood..." +! write(*,*) "Calling HiggsBounds_get_likelihood..." allocate(expllh(np(Hneut)),mass(np(Hneut)),nclist(np(Hneut))) expllh = 0.0D0 - + ! select case(analysisID) ! case(14029) ! c=1 ! case(16037) ! c=2 ! case(170907242) ! c=3 ! case default -! stop 'Unknown analysisID in subroutine HiggsBounds_get_likelihood!' -! end select - - call HB5_complete_theo - +! stop 'Unknown analysisID in subroutine HiggsBounds_get_likelihood!' +! end select + + call HB5_complete_theo + ! Determine most sensitive combination do i=1,np(Hneut) call get_likelihood(analysisID, i, theo(1), expllh(i), mass(i), nclist(i), cbin, 'pred') enddo Hindex = maxloc(expllh,dim=1) - + call get_likelihood(analysisID, Hindex, theo(1), llh, M, nc, cbin, obspred) - + deallocate(mass,nclist,expllh) !predratio end subroutine HiggsBounds_get_likelihood !************************************************************ subroutine HiggsBounds_get_combined_likelihood(analysisID, llh, obspred) !************************************************************ use usefulbits, only : theo,np,Hneut,Hplus, vsmall integer, intent(in) :: analysisID - character(LEN=*), intent(in), optional :: obspred + character(LEN=*), intent(in), optional :: obspred double precision, intent(out) :: llh double precision :: M, llh_tmp integer :: i, j, nc, cbin, Hindex, cbin_end, cbin_in - + write(*,*) 'WARNING: The subroutine HiggsBounds_get_combined_likelihood is NOT ' - write(*,*) ' officially validated and approved. Use it on your own risk!' - + write(*,*) ' officially validated and approved. Use it on your own risk!' + cbin_end = 0 do i= 1,np(Hneut) cbin_end = cbin_end + 2**(i-1) - enddo - + enddo + llh = -1.0D0 cbin_in = 0 llh_tmp = 0.0D0 - + do while(cbin_in.lt.cbin_end) if(present(obspred)) then call HiggsBounds_get_likelihood_for_comb(analysisID, cbin_in, Hindex, nc, cbin, M, llh, obspred) else call HiggsBounds_get_likelihood_for_comb(analysisID, cbin_in, Hindex, nc, cbin, M, llh, 'obs') - endif + endif if(llh.ge.0.0D0) then llh_tmp = llh_tmp + llh else exit - endif + endif cbin_in = cbin_in + cbin - enddo + enddo - if(llh_tmp.gt.0.0D0) then + if(llh_tmp.gt.0.0D0) then llh = llh_tmp - endif + endif + - end subroutine HiggsBounds_get_combined_likelihood !************************************************************ subroutine HiggsBounds_get_likelihood_for_Higgs(analysisID, cbin_in, Hindex, nc, cbin, M, llh, obspred) !************************************************************ use usefulbits, only : theo,np,Hneut,Hplus use theo_manip, only : HB5_complete_theo use likelihoods, only : get_likelihood, calcpredratio_llh implicit none - + integer, intent(in) :: analysisID,Hindex integer, intent(out) :: nc, cbin double precision, intent(out) :: llh, M integer, intent(in) :: cbin_in - character(LEN=*), intent(in) :: obspred + character(LEN=*), intent(in) :: obspred integer :: i - + ! select case(analysisID) ! case(3316,14029) ! c=1 ! case default -! stop 'Unknown analysisID in subroutine HiggsBounds_get_likelihood_for_Higgs!' +! stop 'Unknown analysisID in subroutine HiggsBounds_get_likelihood_for_Higgs!' ! end select - call HB5_complete_theo - - call get_likelihood(analysisID, Hindex, theo(1), llh, M, nc, cbin, obspred, cbin_in) - + call HB5_complete_theo + + call get_likelihood(analysisID, Hindex, theo(1), llh, M, nc, cbin, obspred, cbin_in) + end subroutine HiggsBounds_get_likelihood_for_Higgs !************************************************************ subroutine HiggsBounds_get_likelihood_for_comb(analysisID, cbin_in, Hindex, nc, cbin, M, llh, obspred) !************************************************************ use usefulbits, only : theo,np,Hneut,Hplus use theo_manip, only : HB5_complete_theo use likelihoods, only : get_likelihood, calcpredratio_llh implicit none - + integer, intent(in) :: analysisID, cbin_in integer, intent(out) :: Hindex, nc, cbin double precision, intent(out) :: llh, M - character(LEN=*), intent(in) :: obspred + character(LEN=*), intent(in) :: obspred integer :: i - double precision, allocatable :: obsllh(:) + double precision, allocatable :: obsllh(:) double precision, allocatable :: mass(:) integer, allocatable :: nclist(:), cbinlist(:) allocate(obsllh(np(Hneut)),mass(np(Hneut)),nclist(np(Hneut)),cbinlist(np(Hneut))) obsllh = 0.0D0 - + ! select case(analysisID) ! case(3316,14029) ! c=1 ! case default -! stop 'Unknown analysisID in subroutine HiggsBounds_get_likelihood_for_comb!' +! stop 'Unknown analysisID in subroutine HiggsBounds_get_likelihood_for_comb!' ! end select - call HB5_complete_theo - + call HB5_complete_theo + ! Determine most sensitive combination do i=1,np(Hneut) call get_likelihood(analysisID, i, theo(1), obsllh(i), mass(i), nclist(i),cbinlist(i),obspred, cbin_in) enddo - Hindex = maxloc(obsllh,dim=1) + Hindex = maxloc(obsllh,dim=1) llh = obsllh(Hindex) M = mass(Hindex) nc = nclist(Hindex) cbin = cbinlist(Hindex) - + deallocate(mass,nclist,obsllh,cbinlist) end subroutine HiggsBounds_get_likelihood_for_comb -!************************************************************ +!************************************************************ subroutine HiggsBounds_SLHA_output -!**** ******************************************************** +!**** ******************************************************** use usefulbits, only : whichinput,just_after_run use output, only : do_output if(.not.just_after_run)then - stop 'subroutine run_HiggsBounds should be called before subroutine HiggsBounds_SLHA_output' - endif + stop 'subroutine run_HiggsBounds should be called before subroutine HiggsBounds_SLHA_output' + endif select case(whichinput) - case('SLHA') + case('SLHA') call do_output case default stop 'The subroutine HiggsBounds_SLHA_output should only be used when whichinput=SLHA' end select end subroutine HiggsBounds_SLHA_output #ifdef enableCHISQ -!************************************************************ +!************************************************************ subroutine initialize_HiggsBounds_chisqtables ! use S95tables, only : S95_t2 use S95tables_type3 use usefulbits, only : allocate_if_stats_required,theo - implicit none - + implicit none + if(allocated(theo))then stop 'subroutine initialize_HiggsBounds_chisqtables should be called before subroutine HiggsBounds_initialize' elseif(allocated(clsb_t3))then stop 'subroutine initialize_HiggsBounds_chisqtables has already been called once' - endif + endif allocate(clsb_t3(ntable3)) call initializetables_type3_blank(clsb_t3) call initializetables3(clsb_t3) call readclsbfiles_binary if(allocated(allocate_if_stats_required))then stop 'error in subroutine initialize_HiggsBounds_chisqtables' else allocate(allocate_if_stats_required(1)) endif end subroutine initialize_HiggsBounds_chisqtables !************************************************************ subroutine finish_HiggsBounds_chisqtables !************************************************************ use S95tables_type3 use usefulbits, only : allocate_if_stats_required - implicit none - integer :: x + implicit none + integer :: x if(.not.allocated(clsb_t3))then stop 'initialize_HiggsBounds_chisqtables should be called first' endif do x=lbound(clsb_t3,dim=1),ubound(clsb_t3,dim=1) deallocate(clsb_t3(x)%dat) enddo deallocate(filename) deallocate(clsb_t3) deallocate(allocate_if_stats_required) end subroutine finish_HiggsBounds_chisqtables !************************************************************ subroutine HB_calc_stats(theory_uncertainty_1s,chisq_withouttheory,chisq_withtheory,chan2) !************************************************************ ! this is in the middle of development! DO NOT USE! use usefulbits, only : res,theo,pr,just_after_run,vsmall use interpolate use S95tables_type1 use S95tables_type3 use S95tables use extra_bits_for_chisquared - implicit none + implicit none integer,intent(out)::chan2 integer :: x,c,z,y integer :: id double precision, intent(in) :: theory_uncertainty_1s double precision :: chisq_withouttheory,chisq_withtheory double precision :: low_chisq,sigma x=1 low_chisq=1.0D-2 if(.not.allocated(theo))then stop 'subroutine HiggsBounds_initialize must be called first' elseif(.not.allocated(clsb_t3))then stop 'subroutine initialize_HiggsBounds_chisqtables must be called first' elseif(.not.just_after_run)then stop 'subroutine run_HiggsBounds must be called first' endif sigma=theory_uncertainty_1s - if(sigma.lt.vsmall)then + if(sigma.lt.vsmall)then write(*,*)'Warning: will not calculate chi^2 with theory uncertainty' endif chisq_withtheory = -2.0D0 chisq_withouttheory = -2.0D0 z=2; c= res(x)%chan(z) chan2=c if(res(x)%allowed95(z).eq.-1)then! labels an unphysical parameter point chisq_withtheory =-1.0D0 chisq_withouttheory =-1.0D0 - elseif( c.gt.0 )then ! labels a physical parameter point and a real channel - + elseif( c.gt.0 )then ! labels a physical parameter point and a real channel + id=S95_t1_or_S95_t2_idfromelementnumber(pr(c)%ttype,pr(c)%tlist) y=clsb_t3elementnumber_from_S95table(pr(c)%ttype,id) if(y.gt.0)then !------------------------------ call get_chisq(sigma,res(x)%axis_i(z),res(x)%axis_j(z),res(x)%sfactor(z), & & y,chisq_withouttheory,chisq_withtheory) !------------------------------- else write(*,*)'hello y=',y stop 'problem here with y' endif else chisq_withtheory =0.0D0 chisq_withouttheory =0.0D0 - endif + endif end subroutine HB_calc_stats #endif !************************************************************ subroutine finish_HiggsBounds ! This subroutine needs to be called right at the end, to close files ! and deallocate arrays !************************************************************ use usefulbits, only : deallocate_usefulbits,debug,theo,debug, & & file_id_debug1,file_id_debug2!,inputsub use S95tables, only : deallocate_S95tables use theory_BRfunctions, only : deallocate_BRSM use theory_XS_SM_functions, only: deallocate_XSSM #if defined(NAGf90Fortran) use F90_UNIX_IO, only : flush #endif - + if(debug)then close(file_id_debug2) close(file_id_debug1) endif if(.not.allocated(theo))then stop 'HiggsBounds_initialize should be called first' endif if(debug)write(*,*)'finishing off...' ; call flush(6) call deallocate_BRSM call deallocate_XSSM call deallocate_S95tables call deallocate_usefulbits if(debug)write(*,*)'finished' ; call flush(6) - + ! if(allocated(inputsub)) deallocate(inputsub) end subroutine finish_HiggsBounds ! ! HB-5 additions ! Do we need control functions to guarantee all theory input is up-to-date and reset? !subroutine HB5_reset_input !end subroutine HB5_reset_input - -!************************************************************ + +!************************************************************ ! ! SIMPLIFIED EFFC INPUT ROUTINES ! -!************************************************************ +!************************************************************ subroutine HiggsBounds_neutral_input_effC_single(quantity,val) -!************************************************************ +!************************************************************ use usefulbits, only : theo,np,Hneut,effC,whichinput,just_after_run!,inputsub implicit none !--------------------------------------------- - character(LEN=*), intent(in) :: quantity + character(LEN=*), intent(in) :: quantity double precision, intent(in) :: val(np(Hneut)) !-------------------------------------internal integer :: n ! integer :: subtype - !--------------------------------------------- + !--------------------------------------------- whichinput='effC' ! subtype=1 - n=1 + n=1 ! inputsub(subtype)%stat=inputsub(subtype)%stat+1 ! WHAT IS THIS DOING? if(.not.allocated(theo))then stop 'subroutine HiggsBounds_initialize must be called first' endif if(np(Hneut).eq.0)then write(*,*)'subroutine HiggsBounds_neutral_input_effC_single should' write(*,*)'only be called if np(Hneut)>0' stop 'error in subroutine HiggsBounds_neutral_input_effC_single' endif select case(trim(adjustl(quantity))) case("ghjcc_s") effC(n)%hjcc_s=val case("ghjcc_p") effC(n)%hjcc_p=val case("ghjss_s") effC(n)%hjss_s=val case("ghjss_p") effC(n)%hjss_p=val case("ghjbb_s") effC(n)%hjbb_s=val case("ghjbb_p") effC(n)%hjbb_p=val case("ghjtt_s") effC(n)%hjtt_s=val case("ghjtt_p") effC(n)%hjtt_p=val case("ghjmumu_s") effC(n)%hjmumu_s=val case("ghjmumu_p") effC(n)%hjmumu_p=val case("ghjtautau_s") effC(n)%hjtautau_s=val case("ghjtautau_p") effC(n)%hjtautau_p=val case("ghjWW") effC(n)%hjWW=val case("ghjZZ") effC(n)%hjZZ=val case("ghjZga") effC(n)%hjZga=val case("ghjgaga") effC(n)%hjgaga=val case("ghjgg") effC(n)%hjgg=val case default - stop 'wrong input for quantity to subroutine HiggsBounds_neutral_input_effC_single' + stop 'wrong input for quantity to subroutine HiggsBounds_neutral_input_effC_single' end select - + just_after_run=.False. end subroutine HiggsBounds_neutral_input_effC_single -!************************************************************ +!************************************************************ subroutine HiggsBounds_neutral_input_effC_double(quantity,val) -!************************************************************ +!************************************************************ use usefulbits, only : theo,np,Hneut,effC,whichinput,just_after_run!,inputsub implicit none !--------------------------------------------- - character(LEN=*), intent(in) :: quantity + character(LEN=*), intent(in) :: quantity double precision, intent(in) :: val(np(Hneut),np(Hneut)) !-------------------------------------internal integer :: n ! integer :: subtype - !--------------------------------------------- + !--------------------------------------------- whichinput='effC' ! subtype=1 - n=1 + n=1 ! inputsub(subtype)%stat=inputsub(subtype)%stat+1 ! WHAT IS THIS DOING? if(.not.allocated(theo))then stop 'subroutine HiggsBounds_initialize must be called first' endif if(np(Hneut).eq.0)then write(*,*)'subroutine HiggsBounds_neutral_input_effC_double should' write(*,*)'only be called if np(Hneut)>0' stop 'error in subroutine HiggsBounds_neutral_input_effC_double' endif select case(trim(adjustl(quantity))) - case("ghjhiZ") - effC(n)%hjhiZ = val + case("ghjhiZ") + effC(n)%hjhiZ = val case default - stop 'wrong input for quantity to subroutine HiggsBounds_neutral_input_effC_double' + stop 'wrong input for quantity to subroutine HiggsBounds_neutral_input_effC_double' end select just_after_run=.False. end subroutine HiggsBounds_neutral_input_effC_double -!************************************************************ +!************************************************************ ! ! SIMPLIFIED LEP/HADRONIC XS INPUT ROUTINES ! -!************************************************************ +!************************************************************ subroutine HiggsBounds_neutral_input_LEP_single(quantity,val) -!************************************************************ +!************************************************************ use usefulbits, only : theo,np,Hneut,whichinput,just_after_run!,inputsub implicit none !--------------------------------------------- - character(LEN=*), intent(in) :: quantity + character(LEN=*), intent(in) :: quantity double precision, intent(in) :: val(np(Hneut)) !-------------------------------------internal integer :: n ! integer :: subtype - !--------------------------------------------- + !--------------------------------------------- whichinput='hadr' ! subtype=1 - n=1 + n=1 ! inputsub(subtype)%stat=inputsub(subtype)%stat+1 ! WHAT IS THIS DOING? if(.not.allocated(theo))then stop 'subroutine HiggsBounds_initialize must be called first' endif if(np(Hneut).eq.0)then write(*,*)'subroutine HiggsBounds_neutral_input_LEP_single should' write(*,*)'only be called if np(Hneut)>0' stop 'error in subroutine HiggsBounds_neutral_input_LEP_single' endif select case(trim(adjustl(quantity))) case("XS_hjZ_ratio") theo(n)%lep%XS_hjZ_ratio = val case("XS_bbhj_ratio") theo(n)%lep%XS_bbhj_ratio = val case("XS_tautauhj_ratio") theo(n)%lep%XS_tautauhj_ratio = val case default - stop 'wrong input for quantity to subroutine HiggsBounds_neutral_input_LEP_single' + stop 'wrong input for quantity to subroutine HiggsBounds_neutral_input_LEP_single' end select - + just_after_run=.False. end subroutine HiggsBounds_neutral_input_LEP_single -!************************************************************ +!************************************************************ subroutine HiggsBounds_neutral_input_LEP_double(quantity,val) -!************************************************************ +!************************************************************ use usefulbits, only : theo,np,Hneut,whichinput,just_after_run!,inputsub implicit none !--------------------------------------------- - character(LEN=*), intent(in) :: quantity + character(LEN=*), intent(in) :: quantity double precision, intent(in) :: val(np(Hneut),np(Hneut)) !-------------------------------------internal integer :: n ! integer :: subtype - !--------------------------------------------- + !--------------------------------------------- whichinput='hadr' ! subtype=1 - n=1 + n=1 ! inputsub(subtype)%stat=inputsub(subtype)%stat+1 ! WHAT IS THIS DOING? if(.not.allocated(theo))then stop 'subroutine HiggsBounds_initialize must be called first' endif if(np(Hneut).eq.0)then write(*,*)'subroutine HiggsBounds_neutral_input_LEP_double should' write(*,*)'only be called if np(Hneut)>0' stop 'error in subroutine HiggsBounds_neutral_input_LEP_double' endif select case(trim(adjustl(quantity))) - case("XS_hjhi_ratio") - theo(n)%lep%XS_hjhi_ratio = val + case("XS_hjhi_ratio") + theo(n)%lep%XS_hjhi_ratio = val case default - stop 'wrong input for quantity to subroutine HiggsBounds_neutral_input_LEP_double' + stop 'wrong input for quantity to subroutine HiggsBounds_neutral_input_LEP_double' end select just_after_run=.False. end subroutine HiggsBounds_neutral_input_LEP_double -!************************************************************ +!************************************************************ subroutine HiggsBounds_neutral_input_hadr_single(collider,quantity,val) -!************************************************************ +!************************************************************ use usefulbits, only : theo,np,Hneut,whichinput,just_after_run, & & hadroncolliderdataset !,inputsub implicit none !--------------------------------------------- integer, intent(in) :: collider - character(LEN=*), intent(in) :: quantity + character(LEN=*), intent(in) :: quantity double precision, intent(in) :: val(np(Hneut)) !-------------------------------------internal integer :: n ! integer :: subtype ! type(hadroncolliderdataset) :: dataset - !--------------------------------------------- + !--------------------------------------------- whichinput='hadr' ! subtype=1 - n=1 + n=1 ! inputsub(subtype)%stat=inputsub(subtype)%stat+1 ! WHAT IS THIS DOING? if(.not.allocated(theo))then stop 'subroutine HiggsBounds_initialize must be called first' endif if(np(Hneut).eq.0)then write(*,*)'subroutine HiggsBounds_neutral_input_hadr_single should' write(*,*)'only be called if np(Hneut)>0' stop 'error in subroutine HiggsBounds_neutral_input_hadr_single' endif select case(collider) case(2) call set_input(theo(n)%tev,quantity,val) case(7) call set_input(theo(n)%lhc7,quantity,val) case(8) call set_input(theo(n)%lhc8,quantity,val) - case(13) + case(13) call set_input(theo(n)%lhc13,quantity,val) case default stop 'wrong input for collider to subroutine HiggsBounds_neutral_input_hadr_single' end select - + just_after_run=.False. contains - + subroutine set_input(dataset,quantity,val) - character(LEN=*), intent(in) :: quantity + character(LEN=*), intent(in) :: quantity double precision, intent(in) :: val(np(Hneut)) type(hadroncolliderdataset) :: dataset select case(trim(adjustl(quantity))) case("XS_hj_ratio") dataset%XS_hj_ratio=val case("XS_gg_hj_ratio") dataset%XS_gg_hj_ratio=val case("XS_bb_hj_ratio") - dataset%XS_bb_hj_ratio=val + dataset%XS_bb_hj_ratio=val dataset%XS_hjb_ratio=val case("XS_vbf_ratio") dataset%XS_vbf_ratio=val case("XS_hjZ_ratio") dataset%XS_hjZ_ratio=val case("XS_gg_hjZ_ratio") - dataset%XS_gg_hjZ_ratio=val + dataset%XS_gg_hjZ_ratio=val case("XS_qq_hjZ_ratio") dataset%XS_qq_hjZ_ratio=val case("XS_hjW_ratio") dataset%XS_hjW_ratio=val case("XS_tthj_ratio") dataset%XS_tthj_ratio=val case("XS_thj_tchan_ratio") dataset%XS_thj_tchan_ratio=val case("XS_thj_schan_ratio") dataset%XS_thj_schan_ratio=val case default - stop 'wrong input for quantity to subroutine HiggsBounds_neutral_input_hadr_single' + stop 'wrong input for quantity to subroutine HiggsBounds_neutral_input_hadr_single' end select end subroutine set_input end subroutine HiggsBounds_neutral_input_hadr_single -!************************************************************ +!************************************************************ subroutine HiggsBounds_neutral_input_hadr_double(collider,quantity,val) -!************************************************************ +!************************************************************ use usefulbits, only : theo,np,Hneut,whichinput,just_after_run, & & hadroncolliderdataset! ,inputsub implicit none !--------------------------------------------- integer, intent(in) :: collider - character(LEN=*), intent(in) :: quantity + character(LEN=*), intent(in) :: quantity double precision, intent(in) :: val(np(Hneut),np(Hneut)) !-------------------------------------internal integer :: n - !--------------------------------------------- + !--------------------------------------------- whichinput='hadr' - n=1 + n=1 if(.not.allocated(theo))then stop 'subroutine HiggsBounds_initialize must be called first' endif if(np(Hneut).eq.0)then write(*,*)'subroutine HiggsBounds_neutral_input_hadr_double should' write(*,*)'only be called if np(Hneut)>0' stop 'error in subroutine HiggsBounds_neutral_input_hadr_double' endif select case(trim(adjustl(quantity))) case("XS_hjhi") select case(collider) case(2) theo(n)%tev%XS_hjhi=val case(7) theo(n)%lhc7%XS_hjhi=val - case(8) + case(8) theo(n)%lhc8%XS_hjhi=val - case(13) + case(13) theo(n)%lhc13%XS_hjhi=val case default stop 'wrong input for collider to subroutine HiggsBounds_neutral_input_hadr_double' end select case default - stop 'wrong input for quantity to subroutine HiggsBounds_neutral_input_hadr_double' + stop 'wrong input for quantity to subroutine HiggsBounds_neutral_input_hadr_double' end select - + just_after_run=.False. end subroutine HiggsBounds_neutral_input_hadr_double !************************************************************ subroutine HiggsBounds_neutral_input_hadr_channelrates_single(collider,nHiggs,p,d,val) ! n.b.: Elements of the matrix channelrates with values < 0 will be overwritten ! by XS times BR using the narrow width approximation. !************************************************************ use usefulbits, only : theo,np,Hneut,whichinput,just_after_run,hadroncolliderdataset,& & Nprod,Ndecay #if defined(NAGf90Fortran) use F90_UNIX_IO, only : flush #endif implicit none double precision,intent(in) :: val integer, intent(in) :: collider,p,d,nHiggs !-------------------------------------internal integer :: n !--------------------------------------------- whichinput='hadr' - n=1 + n=1 if(.not.allocated(theo))then stop 'subroutine HiggsBounds_initialize must be called first' endif if(nHiggs.gt.np(Hneut))then write(*,*)'subroutine HiggsBounds_neutral_input_hadr_channelrates_single should' write(*,*)'only be called with nHiggs <= np(Hneut)' stop 'error in subroutine HiggsBounds_neutral_input_hadr_channelrates_single' endif select case(collider) case(2) theo(n)%tev%channelrates_tmp(nHiggs,p,d)=val case(7) theo(n)%lhc7%channelrates_tmp(nHiggs,p,d)=val - case(8) - theo(n)%lhc8%channelrates_tmp(nHiggs,p,d)=val - case(13) + case(8) + theo(n)%lhc8%channelrates_tmp(nHiggs,p,d)=val + case(13) theo(n)%lhc13%channelrates_tmp(nHiggs,p,d)=val case default stop 'wrong input for collider to subroutine HiggsBounds_neutral_input_hadr_channelrates_single' end select - just_after_run=.False. - + just_after_run=.False. + end subroutine HiggsBounds_neutral_input_hadr_channelrates_single !************************************************************ subroutine HiggsBounds_neutral_input_hadr_channelrates_clean !************************************************************ use theo_manip,only : clean_channelrates implicit none call clean_channelrates - + end subroutine HiggsBounds_neutral_input_hadr_channelrates_clean !************************************************************ ! HB-4 legacy routines -!************************************************************ -! subroutine HiggsBounds_neutral_input_effC(Mh,GammaTotal_hj, & +!************************************************************ +! subroutine HiggsBounds_neutral_input_effC(Mh,GammaTotal_hj, & ! & g2hjss_s,g2hjss_p,g2hjcc_s,g2hjcc_p, & ! & g2hjbb_s,g2hjbb_p,g2hjtoptop_s,g2hjtoptop_p, & ! & g2hjmumu_s,g2hjmumu_p, & ! & g2hjtautau_s,g2hjtautau_p, & ! & g2hjWW,g2hjZZ,g2hjZga, & ! & g2hjgaga,g2hjgg,g2hjggZ,g2hjhiZ_nHbynH, & ! & BR_hjinvisible,BR_hjhihi_nHbynH ) ! ! This subroutine can be called by the user after subroutine initialize_HiggsBounds ! ! has been called. ! ! Arguments (input): theoretical predictions (see manual for definitions) ! !************************************************************ ! use usefulbits, only : theo,np,Hneut,g2,whichinput,just_after_run!,inputsub -! +! ! #if defined(NAGf90Fortran) ! use F90_UNIX_IO, only : flush ! #endif -! +! ! implicit none -! +! ! !----------------------------------------input -! double precision,intent(in) :: Mh( np(Hneut) ),GammaTotal_hj( np(Hneut) ), & +! double precision,intent(in) :: Mh( np(Hneut) ),GammaTotal_hj( np(Hneut) ), & ! & g2hjss_s( np(Hneut) ),g2hjss_p( np(Hneut) ),g2hjcc_s( np(Hneut) ),g2hjcc_p( np(Hneut) ), & ! & g2hjbb_s( np(Hneut) ),g2hjbb_p( np(Hneut) ),g2hjtoptop_s( np(Hneut) ),g2hjtoptop_p( np(Hneut) ),& ! & g2hjmumu_s( np(Hneut) ),g2hjmumu_p( np(Hneut) ), & ! & g2hjtautau_s( np(Hneut) ),g2hjtautau_p( np(Hneut) ), & ! & g2hjWW( np(Hneut) ),g2hjZZ( np(Hneut) ),g2hjZga( np(Hneut) ), & ! & g2hjgaga( np(Hneut) ),g2hjgg( np(Hneut) ),g2hjggZ( np(Hneut) ),g2hjhiZ_nHbynH(np(Hneut),np(Hneut)),& -! & BR_hjinvisible( np(Hneut) ),BR_hjhihi_nHbynH(np(Hneut),np(Hneut)) +! & BR_hjinvisible( np(Hneut) ),BR_hjhihi_nHbynH(np(Hneut),np(Hneut)) ! !--------------------------------------internal ! integer :: n ! ! integer :: subtype ! !---------------------------------------------- -! +! ! whichinput='effC' ! ! subtype=1 -! n=1 +! n=1 ! ! inputsub(subtype)%stat=inputsub(subtype)%stat+1 -! +! ! if(.not.allocated(theo))then ! stop 'subroutine HiggsBounds_initialize must be called first' ! endif -! +! ! if(np(Hneut).eq.0)then ! write(*,*)'subroutine HiggsBounds_neutral_input_effC should' ! write(*,*)'only be called if np(Hneut)>0' ! stop 'error in subroutine HiggsBounds_neutral_input_effC' ! endif -! +! ! theo(n)%particle(Hneut)%M = Mh -! theo(n)%particle(Hneut)%Mc = Mh +! theo(n)%particle(Hneut)%Mc = Mh ! theo(n)%particle(Hneut)%GammaTot= GammaTotal_hj -! +! ! g2(n)%hjss_s = g2hjss_s ! g2(n)%hjss_p = g2hjss_p ! g2(n)%hjcc_s = g2hjcc_s ! g2(n)%hjcc_p = g2hjcc_p ! g2(n)%hjbb_s = g2hjbb_s ! g2(n)%hjbb_p = g2hjbb_p ! g2(n)%hjtoptop_s = g2hjtoptop_s ! g2(n)%hjtoptop_p = g2hjtoptop_p ! g2(n)%hjmumu_s = g2hjmumu_s ! g2(n)%hjmumu_p = g2hjmumu_p ! g2(n)%hjtautau_s = g2hjtautau_s ! g2(n)%hjtautau_p = g2hjtautau_p -! +! ! g2(n)%hjWW = g2hjWW -! g2(n)%hjZZ = g2hjZZ -! g2(n)%hjZga = g2hjZga +! g2(n)%hjZZ = g2hjZZ +! g2(n)%hjZga = g2hjZga ! g2(n)%hjgaga = g2hjgaga ! g2(n)%hjgg = g2hjgg ! g2(n)%hjggZ = g2hjggZ -! +! ! g2(n)%hjhiZ = g2hjhiZ_nHbynH -! -! theo(n)%BR_hjinvisible = BR_hjinvisible -! theo(n)%BR_hjhihi = BR_hjhihi_nHbynH -! -! just_after_run=.False. -! +! +! theo(n)%BR_hjinvisible = BR_hjinvisible +! theo(n)%BR_hjhihi = BR_hjhihi_nHbynH +! +! just_after_run=.False. +! ! end subroutine HiggsBounds_neutral_input_effC -! !************************************************************ +! !************************************************************ ! subroutine HiggsBounds_neutral_input_part(Mh,GammaTotal_hj,CP_value, & ! & CS_lep_hjZ_ratio, & ! & CS_lep_bbhj_ratio,CS_lep_tautauhj_ratio, & ! & CS_lep_hjhi_ratio_nHbynH, & ! & CS_gg_hj_ratio,CS_bb_hj_ratio, & ! & CS_bg_hjb_ratio, & -! & CS_ud_hjWp_ratio,CS_cs_hjWp_ratio, & -! & CS_ud_hjWm_ratio,CS_cs_hjWm_ratio, & +! & CS_ud_hjWp_ratio,CS_cs_hjWp_ratio, & +! & CS_ud_hjWm_ratio,CS_cs_hjWm_ratio, & ! & CS_gg_hjZ_ratio, & ! & CS_dd_hjZ_ratio,CS_uu_hjZ_ratio, & ! & CS_ss_hjZ_ratio,CS_cc_hjZ_ratio, & ! & CS_bb_hjZ_ratio, & ! & CS_tev_vbf_ratio,CS_tev_tthj_ratio, & ! & CS_lhc7_vbf_ratio,CS_lhc7_tthj_ratio, & ! & CS_lhc8_vbf_ratio,CS_lhc8_tthj_ratio, & ! & BR_hjss,BR_hjcc, & ! & BR_hjbb,BR_hjmumu,BR_hjtautau, & -! & BR_hjWW,BR_hjZZ,BR_hjZga, BR_hjgaga,BR_hjgg, & +! & BR_hjWW,BR_hjZZ,BR_hjZga, BR_hjgaga,BR_hjgg, & ! & BR_hjinvisible,BR_hjhihi_nHbynH ) ! ! This subroutine can be called by the user after subroutine initialize_HiggsBounds ! ! has been called. ! ! (see manual for full description) ! !************************************************************ ! use usefulbits, only : theo,np,Hneut,partR,whichinput,just_after_run!,inputsub -! +! ! #if defined(NAGf90Fortran) ! use F90_UNIX_IO, only : flush ! #endif -! +! ! implicit none ! !----------------------------------------input ! double precision,intent(in) :: Mh( np(Hneut) ),GammaTotal_hj( np(Hneut) ) ! integer,intent(in) ::CP_value( np(Hneut) ) ! double precision,intent(in) :: CS_lep_hjZ_ratio( np(Hneut) ), & ! & CS_lep_bbhj_ratio( np(Hneut) ),CS_lep_tautauhj_ratio( np(Hneut) ), & ! & CS_lep_hjhi_ratio_nHbynH(np(Hneut),np(Hneut)), & ! & CS_gg_hj_ratio( np(Hneut) ),CS_bb_hj_ratio( np(Hneut) ), & ! & CS_bg_hjb_ratio( np(Hneut) ), & -! & CS_ud_hjWp_ratio( np(Hneut) ),CS_cs_hjWp_ratio( np(Hneut) ), & -! & CS_ud_hjWm_ratio( np(Hneut) ),CS_cs_hjWm_ratio( np(Hneut) ), & +! & CS_ud_hjWp_ratio( np(Hneut) ),CS_cs_hjWp_ratio( np(Hneut) ), & +! & CS_ud_hjWm_ratio( np(Hneut) ),CS_cs_hjWm_ratio( np(Hneut) ), & ! & CS_gg_hjZ_ratio( np(Hneut) ), & ! & CS_dd_hjZ_ratio( np(Hneut) ),CS_uu_hjZ_ratio( np(Hneut) ), & ! & CS_ss_hjZ_ratio( np(Hneut) ),CS_cc_hjZ_ratio( np(Hneut) ), & ! & CS_bb_hjZ_ratio( np(Hneut) ), & ! & CS_tev_vbf_ratio( np(Hneut) ),CS_tev_tthj_ratio( np(Hneut) ), & ! & CS_lhc7_vbf_ratio( np(Hneut) ),CS_lhc7_tthj_ratio( np(Hneut) ), & ! & CS_lhc8_vbf_ratio( np(Hneut) ),CS_lhc8_tthj_ratio( np(Hneut) ), & ! & BR_hjss( np(Hneut) ),BR_hjcc( np(Hneut) ), & ! & BR_hjbb( np(Hneut) ),BR_hjmumu( np(Hneut) ),BR_hjtautau( np(Hneut) ), & ! & BR_hjWW( np(Hneut) ),BR_hjZZ( np(Hneut) ),BR_hjZga( np(Hneut) ), & -! & BR_hjgaga( np(Hneut) ),BR_hjgg( np(Hneut) ), & -! & BR_hjinvisible( np(Hneut) ),BR_hjhihi_nHbynH(np(Hneut),np(Hneut)) +! & BR_hjgaga( np(Hneut) ),BR_hjgg( np(Hneut) ), & +! & BR_hjinvisible( np(Hneut) ),BR_hjhihi_nHbynH(np(Hneut),np(Hneut)) ! !---------------------------------------internal ! integer :: n ! ! integer :: subtype ! !----------------------------------------------- -! +! ! whichinput='part' ! ! subtype=1 -! n=1 +! n=1 ! ! inputsub(subtype)%stat=inputsub(subtype)%stat+1 -! +! ! if(.not.allocated(theo))then ! stop 'subroutine HiggsBounds_initialize must be called first' ! endif -! +! ! if(np(Hneut).eq.0)then ! write(*,*)'subroutine HiggsBounds_neutral_input_part should' ! write(*,*)'only be called if np(Hneut)>0' ! stop 'error in subroutine HiggsBounds_neutral_input_part' ! endif -! -! theo(n)%particle(Hneut)%M = Mh -! theo(n)%particle(Hneut)%Mc = Mh +! +! theo(n)%particle(Hneut)%M = Mh +! theo(n)%particle(Hneut)%Mc = Mh ! theo(n)%particle(Hneut)%GammaTot= GammaTotal_hj -! theo(n)%CP_value = CP_value +! theo(n)%CP_value = CP_value ! theo(n)%lep%XS_hjZ_ratio = CS_lep_hjZ_ratio ! theo(n)%lep%XS_bbhj_ratio = CS_lep_bbhj_ratio ! theo(n)%lep%XS_tautauhj_ratio = CS_lep_tautauhj_ratio -! theo(n)%lep%XS_hjhi_ratio = CS_lep_hjhi_ratio_nHbynH -! partR(n)%gg_hj = CS_gg_hj_ratio +! theo(n)%lep%XS_hjhi_ratio = CS_lep_hjhi_ratio_nHbynH +! partR(n)%gg_hj = CS_gg_hj_ratio ! partR(n)%qq_hj(5,:) = CS_bb_hj_ratio -! partR(n)%bg_hjb = CS_bg_hjb_ratio +! partR(n)%bg_hjb = CS_bg_hjb_ratio ! partR(n)%qq_hjWp(1,:) = CS_ud_hjWp_ratio -! partR(n)%qq_hjWp(2,:) = CS_cs_hjWp_ratio +! partR(n)%qq_hjWp(2,:) = CS_cs_hjWp_ratio ! partR(n)%qq_hjWm(1,:) = CS_ud_hjWm_ratio -! partR(n)%qq_hjWm(2,:) = CS_cs_hjWm_ratio -! partR(n)%gg_hjZ(:) = CS_gg_hjZ_ratio +! partR(n)%qq_hjWm(2,:) = CS_cs_hjWm_ratio +! partR(n)%gg_hjZ(:) = CS_gg_hjZ_ratio ! partR(n)%qq_hjZ(1,:) = CS_dd_hjZ_ratio -! partR(n)%qq_hjZ(2,:) = CS_uu_hjZ_ratio +! partR(n)%qq_hjZ(2,:) = CS_uu_hjZ_ratio ! partR(n)%qq_hjZ(3,:) = CS_ss_hjZ_ratio -! partR(n)%qq_hjZ(4,:) = CS_cc_hjZ_ratio -! partR(n)%qq_hjZ(5,:) = CS_bb_hjZ_ratio -! theo(n)%tev%XS_vbf_ratio = CS_tev_vbf_ratio -! theo(n)%tev%XS_tthj_ratio = CS_tev_tthj_ratio -! theo(n)%lhc7%XS_vbf_ratio = CS_lhc7_vbf_ratio +! partR(n)%qq_hjZ(4,:) = CS_cc_hjZ_ratio +! partR(n)%qq_hjZ(5,:) = CS_bb_hjZ_ratio +! theo(n)%tev%XS_vbf_ratio = CS_tev_vbf_ratio +! theo(n)%tev%XS_tthj_ratio = CS_tev_tthj_ratio +! theo(n)%lhc7%XS_vbf_ratio = CS_lhc7_vbf_ratio ! theo(n)%lhc7%XS_tthj_ratio= CS_lhc7_tthj_ratio -! theo(n)%lhc8%XS_vbf_ratio = CS_lhc8_vbf_ratio +! theo(n)%lhc8%XS_vbf_ratio = CS_lhc8_vbf_ratio ! theo(n)%lhc8%XS_tthj_ratio= CS_lhc8_tthj_ratio -! theo(n)%BR_hjss = BR_hjss -! theo(n)%BR_hjcc = BR_hjcc +! theo(n)%BR_hjss = BR_hjss +! theo(n)%BR_hjcc = BR_hjcc ! theo(n)%BR_hjbb = BR_hjbb ! theo(n)%BR_hjmumu = BR_hjmumu -! theo(n)%BR_hjtautau = BR_hjtautau +! theo(n)%BR_hjtautau = BR_hjtautau ! theo(n)%BR_hjWW = BR_hjWW ! theo(n)%BR_hjZZ = BR_hjZZ -! theo(n)%BR_hjZga = BR_hjZga +! theo(n)%BR_hjZga = BR_hjZga ! theo(n)%BR_hjgaga = BR_hjgaga -! theo(n)%BR_hjgg = BR_hjgg -! theo(n)%BR_hjinvisible = BR_hjinvisible -! theo(n)%BR_hjhihi = BR_hjhihi_nHbynH -! -! just_after_run=.False. -! +! theo(n)%BR_hjgg = BR_hjgg +! theo(n)%BR_hjinvisible = BR_hjinvisible +! theo(n)%BR_hjhihi = BR_hjhihi_nHbynH +! +! just_after_run=.False. +! ! end subroutine HiggsBounds_neutral_input_part -! !************************************************************ +! !************************************************************ ! subroutine HiggsBounds_neutral_input_hadr(Mh,GammaTotal_hj,CP_value, & ! & CS_lep_hjZ_ratio, & -! & CS_lep_bbhj_ratio,CS_lep_tautauhj_ratio, & +! & CS_lep_bbhj_ratio,CS_lep_tautauhj_ratio, & ! & CS_lep_hjhi_ratio_nHbynH, & ! & CS_tev_hj_ratio ,CS_tev_hjb_ratio, & ! & CS_tev_hjW_ratio,CS_tev_hjZ_ratio, & ! & CS_tev_vbf_ratio,CS_tev_tthj_ratio, & ! & CS_lhc7_hj_ratio ,CS_lhc7_hjb_ratio, & ! & CS_lhc7_hjW_ratio,CS_lhc7_hjZ_ratio, & ! & CS_lhc7_vbf_ratio,CS_lhc7_tthj_ratio, & ! & CS_lhc8_hj_ratio ,CS_lhc8_hjb_ratio, & ! & CS_lhc8_hjW_ratio,CS_lhc8_hjZ_ratio, & ! & CS_lhc8_vbf_ratio,CS_lhc8_tthj_ratio, & ! & BR_hjss,BR_hjcc, & ! & BR_hjbb, & ! & BR_hjmumu, & ! & BR_hjtautau, & ! & BR_hjWW,BR_hjZZ,BR_hjZga,BR_hjgaga, & ! & BR_hjgg, BR_hjinvisible, & ! & BR_hjhihi_nHbynH ) ! ! This subroutine can be called by the user after subroutine initialize_HiggsBounds ! ! has been called. ! ! (see manual for full description) ! !************************************************************ ! use usefulbits, only : theo,np,Hneut,whichinput,just_after_run!,inputsub -! +! ! #if defined(NAGf90Fortran) ! use F90_UNIX_IO, only : flush ! #endif -! +! ! implicit none ! !----------------------------------------input ! double precision,intent(in) :: Mh( np(Hneut) ),GammaTotal_hj( np(Hneut) ) ! integer,intent(in) :: CP_value( np(Hneut) ) ! double precision,intent(in) :: CS_lep_hjZ_ratio( np(Hneut) ), & -! & CS_lep_bbhj_ratio( np(Hneut) ),CS_lep_tautauhj_ratio( np(Hneut) ), & +! & CS_lep_bbhj_ratio( np(Hneut) ),CS_lep_tautauhj_ratio( np(Hneut) ), & ! & CS_lep_hjhi_ratio_nHbynH(np(Hneut),np(Hneut)), & ! & CS_tev_hj_ratio( np(Hneut) ) ,CS_tev_hjb_ratio( np(Hneut) ), & ! & CS_tev_hjW_ratio( np(Hneut) ) ,CS_tev_hjZ_ratio( np(Hneut) ), & ! & CS_tev_vbf_ratio( np(Hneut) ) ,CS_tev_tthj_ratio( np(Hneut)), & ! & CS_lhc7_hj_ratio( np(Hneut) ),CS_lhc7_hjb_ratio( np(Hneut) ), & ! & CS_lhc7_hjW_ratio( np(Hneut) ),CS_lhc7_hjZ_ratio( np(Hneut) ), & ! & CS_lhc7_vbf_ratio( np(Hneut) ),CS_lhc7_tthj_ratio( np(Hneut)), & ! & CS_lhc8_hj_ratio( np(Hneut) ),CS_lhc8_hjb_ratio( np(Hneut) ), & ! & CS_lhc8_hjW_ratio( np(Hneut) ),CS_lhc8_hjZ_ratio( np(Hneut) ), & ! & CS_lhc8_vbf_ratio( np(Hneut) ),CS_lhc8_tthj_ratio( np(Hneut)), & ! & BR_hjss( np(Hneut) ),BR_hjcc( np(Hneut) ), & ! & BR_hjbb( np(Hneut) ), & ! & BR_hjmumu( np(Hneut) ),BR_hjtautau( np(Hneut) ), & ! & BR_hjWW( np(Hneut) ),BR_hjZZ( np(Hneut) ), & ! & BR_hjZga( np(Hneut) ),BR_hjgaga( np(Hneut) ), & ! & BR_hjgg( np(Hneut) ), BR_hjinvisible( np(Hneut) ), & ! & BR_hjhihi_nHbynH(np(Hneut),np(Hneut)) ! !-------------------------------------internal ! integer :: n ! ! integer :: subtype ! !--------------------------------------------- -! +! ! whichinput='hadr' ! ! subtype=1 -! n=1 +! n=1 ! ! inputsub(subtype)%stat=inputsub(subtype)%stat+1 -! +! ! if(.not.allocated(theo))then ! stop 'subroutine HiggsBounds_initialize must be called first' ! endif -! +! ! if(np(Hneut).eq.0)then ! write(*,*)'subroutine HiggsBounds_neutral_input_hadr should' ! write(*,*)'only be called if np(Hneut)>0' ! stop 'error in subroutine HiggsBounds_neutral_input_hadr' ! endif -! -! ! write(*,*) "DEBUG HB: before hadronic input. Mass is ",theo(n)%particle(Hneut)%M -! -! +! +! ! write(*,*) "DEBUG HB: before hadronic input. Mass is ",theo(n)%particle(Hneut)%M +! +! ! theo(n)%particle(Hneut)%M = Mh -! theo(n)%particle(Hneut)%Mc = Mh +! theo(n)%particle(Hneut)%Mc = Mh ! theo(n)%particle(Hneut)%GammaTot= GammaTotal_hj -! theo(n)%CP_value = CP_value +! theo(n)%CP_value = CP_value ! theo(n)%lep%XS_hjZ_ratio = CS_lep_hjZ_ratio ! theo(n)%lep%XS_bbhj_ratio = CS_lep_bbhj_ratio ! theo(n)%lep%XS_tautauhj_ratio = CS_lep_tautauhj_ratio -! theo(n)%lep%XS_hjhi_ratio = CS_lep_hjhi_ratio_nHbynH +! theo(n)%lep%XS_hjhi_ratio = CS_lep_hjhi_ratio_nHbynH ! theo(n)%tev%XS_hj_ratio = CS_tev_hj_ratio -! theo(n)%tev%XS_hjb_ratio = CS_tev_hjb_ratio +! theo(n)%tev%XS_hjb_ratio = CS_tev_hjb_ratio ! theo(n)%tev%XS_hjW_ratio = CS_tev_hjW_ratio -! theo(n)%tev%XS_hjZ_ratio = CS_tev_hjZ_ratio -! theo(n)%tev%XS_vbf_ratio = CS_tev_vbf_ratio +! theo(n)%tev%XS_hjZ_ratio = CS_tev_hjZ_ratio +! theo(n)%tev%XS_vbf_ratio = CS_tev_vbf_ratio ! theo(n)%tev%XS_tthj_ratio = CS_tev_tthj_ratio ! theo(n)%lhc7%XS_hj_ratio = CS_lhc7_hj_ratio -! theo(n)%lhc7%XS_hjb_ratio = CS_lhc7_hjb_ratio +! theo(n)%lhc7%XS_hjb_ratio = CS_lhc7_hjb_ratio ! theo(n)%lhc7%XS_hjW_ratio = CS_lhc7_hjW_ratio -! theo(n)%lhc7%XS_hjZ_ratio = CS_lhc7_hjZ_ratio -! theo(n)%lhc7%XS_vbf_ratio = CS_lhc7_vbf_ratio +! theo(n)%lhc7%XS_hjZ_ratio = CS_lhc7_hjZ_ratio +! theo(n)%lhc7%XS_vbf_ratio = CS_lhc7_vbf_ratio ! theo(n)%lhc7%XS_tthj_ratio = CS_lhc7_tthj_ratio ! theo(n)%lhc8%XS_hj_ratio = CS_lhc8_hj_ratio -! theo(n)%lhc8%XS_hjb_ratio = CS_lhc8_hjb_ratio +! theo(n)%lhc8%XS_hjb_ratio = CS_lhc8_hjb_ratio ! theo(n)%lhc8%XS_hjW_ratio = CS_lhc8_hjW_ratio -! theo(n)%lhc8%XS_hjZ_ratio = CS_lhc8_hjZ_ratio -! theo(n)%lhc8%XS_vbf_ratio = CS_lhc8_vbf_ratio +! theo(n)%lhc8%XS_hjZ_ratio = CS_lhc8_hjZ_ratio +! theo(n)%lhc8%XS_vbf_ratio = CS_lhc8_vbf_ratio ! theo(n)%lhc8%XS_tthj_ratio = CS_lhc8_tthj_ratio ! theo(n)%BR_hjss = BR_hjss -! theo(n)%BR_hjcc = BR_hjcc +! theo(n)%BR_hjcc = BR_hjcc ! theo(n)%BR_hjbb = BR_hjbb ! theo(n)%BR_hjmumu = BR_hjmumu -! theo(n)%BR_hjtautau = BR_hjtautau +! theo(n)%BR_hjtautau = BR_hjtautau ! theo(n)%BR_hjWW = BR_hjWW ! theo(n)%BR_hjZZ = BR_hjZZ -! theo(n)%BR_hjZga = BR_hjZga +! theo(n)%BR_hjZga = BR_hjZga ! theo(n)%BR_hjgaga = BR_hjgaga ! theo(n)%BR_hjgg = BR_hjgg -! theo(n)%BR_hjinvisible = BR_hjinvisible -! theo(n)%BR_hjhihi = BR_hjhihi_nHbynH -! -! just_after_run=.False. -! -! ! write(*,*) "DEBUG HB: filled hadronic input. Mass is ",theo(n)%particle(Hneut)%M -! +! theo(n)%BR_hjinvisible = BR_hjinvisible +! theo(n)%BR_hjhihi = BR_hjhihi_nHbynH +! +! just_after_run=.False. +! +! ! write(*,*) "DEBUG HB: filled hadronic input. Mass is ",theo(n)%particle(Hneut)%M +! ! end subroutine HiggsBounds_neutral_input_hadr -!************************************************************ \ No newline at end of file +!************************************************************ Index: trunk/HiggsBounds-5/extra_bits_for_SLHA.f90 =================================================================== --- trunk/HiggsBounds-5/extra_bits_for_SLHA.f90 (revision 597) +++ trunk/HiggsBounds-5/extra_bits_for_SLHA.f90 (revision 598) @@ -1,778 +1,778 @@ ! This file is part of HiggsBounds ! -KW !****************************************************************** module extra_bits_for_SLHA !****************************************************************** use PDGnumbering - implicit none + implicit none integer,parameter :: h(5)=(/h0,HH,A0,h03,A02/) !h(1)=h0 !lightest CP even Higgs in real MSSM !h(2)=HH !heaviest CP even Higgs in real MSSM !h(3)=A0 !CP odd Higgs in real MSSM !h(4)=h03 !NMSSM only !h(5)=A02 !NMSSM only integer,parameter :: neutralino(5)=(/neut1,neut2,neut3,neut4,neut5/) !neutrlino(5) is in NMSSM only integer,parameter :: chargino(2)=(/char1p,char2p/) contains - - !************************************************************ + + !************************************************************ subroutine getSLHAdata(d,effC,infile) ! looks at theory predictions needed for Higgs searches only - !************************************************************ + !************************************************************ use usefulbits, only : dataset,hadroncolliderextras,Hneut,Hplus,Chineut,Chiplus,& & np,file_id_common,couplratio,vvsmall!,sqcouplratio use SLHA_manip - + implicit none !--------------------------------------input type(dataset) :: d ! type(sqcouplratio) :: gsq - type(couplratio) :: effC + type(couplratio) :: effC character(len=300),intent(in) :: infile !-----------------------------------internal integer :: i,j,k,x,ios,n integer :: particlecontent,Rparityviolation,CPviolation !double precision,allocatable ::g2hjcc(:,:),g2hjss(:,:) double precision,allocatable ::ghjbb(:,:) double precision,allocatable ::ghjtoptop(:,:),ghjtautau(:,:) double precision :: mass integer :: visible_lspcandidate_PDG(21),invisible_lspcandidate_PDG(7) logical :: is_valid_point type lightestsusyparticle integer :: pdg double precision :: mass end type type(lightestsusyparticle) :: lsp logical :: invisible_lsp double precision :: cofmenergy - !------------------------------------------- - + !------------------------------------------- + if((np(Hneut).lt.0).or.(np(Hneut).gt.5))then stop 'can not use subroutine getSLHAdata if number of neutral Higgs is not in range 0:5' endif if((np(Hplus).lt.0).or.(np(Hplus).gt.1))then stop 'can not use subroutine getSLHAdata if number of charged Higgs is not in range 0:1' endif if((np(Chineut).lt.0).or.(np(Chineut).gt.5))then stop 'can not use subroutine getSLHAdata if number of neutralinos is not in range 0:5' endif if((np(Chiplus).lt.0).or.(np(Chiplus).gt.2))then stop 'can not use subroutine getSLHAdata if number of charginos is not in range 0:2' endif - open(file_id_common,file=trim(infile),status='old',action='read',iostat=ios) - if(ios.ne.0)then + open(file_id_common,file=trim(infile),status='old',action='read',iostat=ios) + if(ios.ne.0)then write(*,*)'problem opening the SLHA file: $'//trim(adjustl(infile))//'$' !stop 'problem opening SLHA input file' else call readSLHAfile(file_id_common,.False.) call check_validity(is_valid_point) if(is_valid_point)then particlecontent =get_modsel(3) Rparityviolation =get_modsel(4) CPviolation =get_modsel(5) if(Rparityviolation.ne.0)stop 'HB can not yet use SLHA files with R parity violation' select case(particlecontent) case(0) if((np(Hneut).ne.0).and.(np(Hneut).ne.3))then write(*,*)'warning: modsel(3)=0 (MSSM) in SLHA file' write(*,*)' but number of neutral Higgs that HB was told to expect=',np(Hneut) endif if((np(Chineut).ne.0).and.(np(Chineut).ne.4))then write(*,*)'warning: modsel(3)=0 (MSSM) in SLHA file' write(*,*)' but number of neutralinos that HB was told to expect=',np(Chineut) endif case(1) if((np(Hneut).ne.0).and.(np(Hneut).ne.5))then write(*,*)'warning: modsel(3)=1 (NMSSM) in SLHA file' write(*,*)' but number of neutral Higgs that HB was told to expect=',np(Hneut) endif if((np(Chineut).ne.0).and.(np(Chineut).ne.5))then write(*,*)'warning: modsel(3)=1 (NMSSM) in SLHA file' write(*,*)' but number of neutralinos that HB was told to expect=',np(Chineut) endif end select !------------------------------------------------ !------------ work out what the lsp is ----------- invisible_lsp=.False. call fill_visible_lspcandidate_PDG call fill_invisible_lspcandidate_PDG lsp%mass=1.0D12 !set to a very big value !find the invisible LSP candidate with the lowest mass !and use it for BR_hjinvisible do x=1,ubound(invisible_lspcandidate_PDG,dim=1) n=invisible_lspcandidate_PDG(x) mass=get_mass( n ) if(mass.gt.0.0D0.and.(mass.lt.lsp%mass))then !mass<0 means that this particle mass couldn't be found lsp%mass=mass lsp%pdg =n invisible_lsp=.True. endif enddo !however, if there's a charged SUSY particle or gluino with - !lower mass than the invisible LSP candidate, + !lower mass than the invisible LSP candidate, !this candidate is not the LSP, so set BR_hjinvisible=0 do x=1,ubound(visible_lspcandidate_PDG,dim=1) n=visible_lspcandidate_PDG(x) mass=get_mass( n ) if(mass.gt.0.0D0.and.(mass.lt.lsp%mass))then !mass<0 means that this particle mass couldn't be found lsp%mass=mass lsp%pdg =n invisible_lsp=.False. endif enddo !------------------------------------------------ if(np(Hneut).gt.0)then !allocate(g2hjcc( np(Hneut),2)) !allocate(g2hjss( np(Hneut),2)) allocate(ghjbb( np(Hneut),2)) allocate(ghjtoptop(np(Hneut),2)) allocate(ghjtautau(np(Hneut),2)) do i=1,np(Hneut) d%particle(Hneut)%M(i) = get_mass(h(i)) - d%particle(Hneut)%Mc(i) = get_mass(h(i)) + d%particle(Hneut)%Mc(i) = get_mass(h(i)) d%particle(Hneut)%dMh(i) = get_mass_uncertainty(h(i)) if(d%particle(Hneut)%dMh(i).lt.0.1D0) d%particle(Hneut)%dMh(i)=0.0D0 d%particle(Hneut)%dM(i) = d%particle(Hneut)%dMh(i) d%particle(Hneut)%GammaTot(i) = get_totaldecaywidth( h(i)) d%BR_hjss(i) = get_twobodybranchingratio( h(i),squark,sbar) d%BR_hjcc(i) = get_twobodybranchingratio( h(i),cquark,cbar) d%BR_hjbb(i) = get_twobodybranchingratio( h(i),bquark,bbar) - d%BR_hjtt(i) = get_twobodybranchingratio( h(i),tquark,tbar) + d%BR_hjtt(i) = get_twobodybranchingratio( h(i),tquark,tbar) d%BR_hjmumu(i) = get_twobodybranchingratio( h(i),mup,mum) d%BR_hjtautau(i) = get_twobodybranchingratio( h(i),taup,taum) d%BR_hjemu(i) = get_twobodybranchingratio( h(i),ep,mum) if(d%BR_hjemu(i).lt.vvsmall) then d%BR_hjemu(i) = get_twobodybranchingratio( h(i),em,mup) endif d%BR_hjetau(i) = get_twobodybranchingratio( h(i),ep,taum) if(d%BR_hjetau(i).lt.vvsmall) then d%BR_hjetau(i) = get_twobodybranchingratio( h(i),em,taup) endif d%BR_hjmutau(i) = get_twobodybranchingratio( h(i),mup,taum) if(d%BR_hjmutau(i).lt.vvsmall) then d%BR_hjmutau(i) = get_twobodybranchingratio( h(i),mum,taup) endif d%BR_hjWW(i) = get_twobodybranchingratio( h(i),Wp ,Wm) d%BR_hjZZ(i) = get_twobodybranchingratio( h(i),Z0 ,Z0) d%BR_hjZga(i) = get_twobodybranchingratio( h(i),Z0 ,photon) d%BR_hjgaga(i) = get_twobodybranchingratio( h(i),photon,photon) d%BR_hjgg(i) = get_twobodybranchingratio( h(i),gluon ,gluon) if(np(Hplus)>0) then d%BR_hjHpiW(i,1) = get_twobodybranchingratio( h(i),Hp ,Wm) if(d%BR_hjHpiW(i,1).lt.vvsmall) then d%BR_hjHpiW(i,1) = get_twobodybranchingratio( h(i),Hm ,Wp) endif endif if(invisible_lsp)then if(lsp%pdg.eq.neut1) then d%BR_hjinvisible(i) = get_twobodybranchingratio( h(i), lsp%pdg, lsp%pdg ) else d%BR_hjinvisible(i) = get_twobodybranchingratio( h(i), lsp%pdg,-lsp%pdg ) endif else d%BR_hjinvisible(i) = 0.0D0 endif !g2hjcc(i,:) = HB5_get_HiggsCouplingsFermions( h(i), cquark, cquark ) !g2hjss(i,:) = HB5_get_HiggsCouplingsFermions( h(i), squark, squark ) ghjbb(i,:) = HB5_get_HiggsCouplingsFermions( h(i), bquark, bquark ) ghjtoptop(i,:) = HB5_get_HiggsCouplingsFermions( h(i), tquark, tquark ) ghjtautau(i,:) = HB5_get_HiggsCouplingsFermions( h(i), taum, taum ) effC%hjWW(i) = HB5_get_HiggsCouplingsBosons( h(i), Wp, Wp ) effC%hjZZ(i) = HB5_get_HiggsCouplingsBosons( h(i), Z0, Z0 ) - effC%hjgg(i) = HB5_get_HiggsCouplingsBosons( h(i), gluon, gluon ) + effC%hjgg(i) = HB5_get_HiggsCouplingsBosons( h(i), gluon, gluon ) ! effC%hjggZ(i) = HB5_get_HiggsCouplingsBosons( h(i), gluon, gluon, Z0 ) enddo do j=1,np(Hneut) do i=1,np(Hneut) effC%hjhiZ(j,i) = HB5_get_HiggsCouplingsBosons( h(j), h(i), Z0 ) do k=1,np(Hneut) d%BR_hkhjhi(j,i,k) = get_twobodybranchingratio( h(j), h(i), h(k) ) enddo - d%BR_hjhiZ(j,i) = get_twobodybranchingratio( h(j), h(i), Z0 ) + d%BR_hjhiZ(j,i) = get_twobodybranchingratio( h(j), h(i), Z0 ) enddo enddo effC%hjZga = 0.0D0 !these are not needed effC%hjgaga = 0.0D0 effC%hjmumu_s = 0.0D0 effC%hjmumu_p = 0.0D0 effC%hjcc_s = 0.0D0 effC%hjcc_p = 0.0D0 effC%hjss_s = 0.0D0 effC%hjss_p = 0.0D0 !effC%hjcc_s(:) = g2hjcc(:,1) !effC%hjcc_p(:) = g2hjcc(:,2) !effC%hjss_s(:) = g2hjss(:,1) !effC%hjss_p(:) = g2hjss(:,2) effC%hjbb_s(:) = ghjbb(:,1) effC%hjbb_p(:) = ghjbb(:,2) - + effC%hjtt_s(:) = ghjtoptop(:,1) effC%hjtt_p(:) = ghjtoptop(:,2) - + effC%hjtautau_s(:) = ghjtautau(:,1) effC%hjtautau_p(:) = ghjtautau(:,2) !deallocate(g2hjcc) !deallocate(g2hjss) deallocate(ghjbb) deallocate(ghjtoptop) deallocate(ghjtautau) endif if(np(Hplus).gt.0)then i=1 d%particle(Hplus)%M(i) = get_mass( Hp ) d%particle(Hplus)%GammaTot(i) = get_totaldecaywidth( Hp ) d%particle(Hplus)%dMh(i) = get_mass_uncertainty( Hp ) !For now, set the LEP cross section ratio to one. Later, read it in from a block. d%lep%XS_HpjHmj_ratio(i)=1.0 d%BR_tWpb = get_twobodybranchingratio( tquark, Wp, bquark ) d%BR_tHpjb(i) = get_twobodybranchingratio( tquark, Hp, bquark ) d%BR_Hpjcs(i) = get_twobodybranchingratio( Hp, cquark, sbar ) d%BR_Hpjcb(i) = get_twobodybranchingratio( Hp, cquark, bbar ) d%BR_Hpjtaunu(i) = get_twobodybranchingratio( Hp, taup, nutau ) d%BR_HpjWZ(i) = get_twobodybranchingratio( Hp, Wp, Z0 ) d%BR_Hpjtb(i) = get_twobodybranchingratio( Hp, tquark, bbar ) if(np(Hneut).gt.0) then do j=1,np(Hneut) - d%BR_HpjhiW(i,j) = get_twobodybranchingratio( Hp, h(j), Wp ) + d%BR_HpjhiW(i,j) = get_twobodybranchingratio( Hp, h(j), Wp ) enddo - endif - d%lhc8%XS_Hpjtb(i) = get_crosssection_threeparticles("ChargedHiggsLHC8",bquark,tquark,Hp,.False.) - d%lhc8%XS_Hpjcb(i) = get_crosssection_threeparticles("ChargedHiggsLHC8",cquark,bquark,Hp,.True.) - d%lhc8%XS_Hpjbjet(i) = get_crosssection_threeparticles("ChargedHiggsLHC8",uquark,bquark,Hp,.True.) - d%lhc8%XS_Hpjcjet(i) = get_crosssection_threeparticles("ChargedHiggsLHC8",dquark,cquark,Hp,.True.) - d%lhc8%XS_Hpjcjet(i) = d%lhc8%XS_Hpjcjet(i) + & + endif + d%lhc8%XS_Hpmjtb(i) = get_crosssection_threeparticles("ChargedHiggsLHC8",bquark,tquark,Hp,.False.) + d%lhc8%XS_Hpmjcb(i) = get_crosssection_threeparticles("ChargedHiggsLHC8",cquark,bquark,Hp,.True.) + d%lhc8%XS_Hpmjbjet(i) = get_crosssection_threeparticles("ChargedHiggsLHC8",uquark,bquark,Hp,.True.) + d%lhc8%XS_Hpmjcjet(i) = get_crosssection_threeparticles("ChargedHiggsLHC8",dquark,cquark,Hp,.True.) + d%lhc8%XS_Hpmjcjet(i) = d%lhc8%XS_Hpmjcjet(i) + & & get_crosssection_threeparticles("ChargedHiggsLHC8",squark,cquark,Hp,.True.) - d%lhc8%XS_Hpjjetjet(i) = get_crosssection_threeparticles("ChargedHiggsLHC8",dquark,uquark,Hp,.True.) - d%lhc8%XS_Hpjjetjet(i) = d%lhc8%XS_Hpjjetjet(i) + & + d%lhc8%XS_Hpmjjetjet(i) = get_crosssection_threeparticles("ChargedHiggsLHC8",dquark,uquark,Hp,.True.) + d%lhc8%XS_Hpmjjetjet(i) = d%lhc8%XS_Hpmjjetjet(i) + & & get_crosssection_threeparticles("ChargedHiggsLHC8",uquark,squark,Hp,.True.) - d%lhc8%XS_HpjW(i) = get_crosssection_threeparticles("ChargedHiggsLHC8",0,Wm,Hp,.True.) - d%lhc8%XS_vbf_Hpj(i) = get_crosssection_threeparticles("ChargedHiggsLHC8",1,1,Hp,.True.) + d%lhc8%XS_HpmjW(i) = get_crosssection_threeparticles("ChargedHiggsLHC8",0,Wm,Hp,.True.) + d%lhc8%XS_vbf_Hpmj(i) = get_crosssection_threeparticles("ChargedHiggsLHC8",1,1,Hp,.True.) d%lhc8%XS_HpjHmj(i) = get_crosssection_threeparticles("ChargedHiggsLHC8",0,Hm,Hp,.True.) if(np(Hneut).gt.0) then do j=1,np(Hneut) - d%lhc8%XS_Hpjhi(i,j) = get_crosssection_threeparticles("ChargedHiggsLHC8",0,h(j),Hp,.True.) + d%lhc8%XS_Hpmjhi(i,j) = get_crosssection_threeparticles("ChargedHiggsLHC8",0,h(j),Hp,.True.) enddo - endif - d%lhc13%XS_Hpjtb(i) = get_crosssection_threeparticles("ChargedHiggsLHC13",bquark,tquark,Hp,.False.) - d%lhc13%XS_Hpjcb(i) = get_crosssection_threeparticles("ChargedHiggsLHC13",cquark,bquark,Hp,.True.) - d%lhc13%XS_Hpjbjet(i) = get_crosssection_threeparticles("ChargedHiggsLHC13",uquark,bquark,Hp,.True.) - d%lhc13%XS_Hpjcjet(i) = get_crosssection_threeparticles("ChargedHiggsLHC13",dquark,cquark,Hp,.True.) - d%lhc13%XS_Hpjcjet(i) = d%lhc13%XS_Hpjcjet(i) + & + endif + d%lhc13%XS_Hpmjtb(i) = get_crosssection_threeparticles("ChargedHiggsLHC13",bquark,tquark,Hp,.False.) + d%lhc13%XS_Hpmjcb(i) = get_crosssection_threeparticles("ChargedHiggsLHC13",cquark,bquark,Hp,.True.) + d%lhc13%XS_Hpmjbjet(i) = get_crosssection_threeparticles("ChargedHiggsLHC13",uquark,bquark,Hp,.True.) + d%lhc13%XS_Hpmjcjet(i) = get_crosssection_threeparticles("ChargedHiggsLHC13",dquark,cquark,Hp,.True.) + d%lhc13%XS_Hpmjcjet(i) = d%lhc13%XS_Hpmjcjet(i) + & & get_crosssection_threeparticles("ChargedHiggsLHC13",squark,cquark,Hp,.True.) - d%lhc13%XS_Hpjjetjet(i) = get_crosssection_threeparticles("ChargedHiggsLHC13",dquark,uquark,Hp,.True.) - d%lhc13%XS_Hpjjetjet(i) = d%lhc13%XS_Hpjjetjet(i) + & + d%lhc13%XS_Hpmjjetjet(i) = get_crosssection_threeparticles("ChargedHiggsLHC13",dquark,uquark,Hp,.True.) + d%lhc13%XS_Hpmjjetjet(i) = d%lhc13%XS_Hpmjjetjet(i) + & & get_crosssection_threeparticles("ChargedHiggsLHC13",uquark,squark,Hp,.True.) - d%lhc13%XS_HpjW(i) = get_crosssection_threeparticles("ChargedHiggsLHC13",0,Wm,Hp,.True.) - d%lhc13%XS_HpjZ(i) = get_crosssection_threeparticles("ChargedHiggsLHC13",0,Z0,Hp,.True.) - d%lhc13%XS_vbf_Hpj(i) = get_crosssection_threeparticles("ChargedHiggsLHC13",1,1,Hp,.True.) + d%lhc13%XS_HpmjW(i) = get_crosssection_threeparticles("ChargedHiggsLHC13",0,Wm,Hp,.True.) + d%lhc13%XS_HpmjZ(i) = get_crosssection_threeparticles("ChargedHiggsLHC13",0,Z0,Hp,.True.) + d%lhc13%XS_vbf_Hpmj(i) = get_crosssection_threeparticles("ChargedHiggsLHC13",1,1,Hp,.True.) d%lhc13%XS_HpjHmj(i) = get_crosssection_threeparticles("ChargedHiggsLHC13",0,Hm,Hp,.True.) if(np(Hneut).gt.0) then do j=1,np(Hneut) - d%lhc13%XS_Hpjhi(i,j) = get_crosssection_threeparticles("ChargedHiggsLHC13",0,h(j),Hp,.True.) + d%lhc13%XS_Hpmjhi(i,j) = get_crosssection_threeparticles("ChargedHiggsLHC13",0,h(j),Hp,.True.) enddo - endif + endif ! write(*,*) "# ------- Charged Higgs SLHA input debugging ------ #" ! write(*,*) "d%BR_HpjhiW(i,:) = ", d%BR_HpjhiW(i,:) ! write(*,*) "d%BR_HpjWZ(i) = ",d%BR_HpjWZ(i) ! write(*,*) "d%BR_Hpjtb(i) = ",d%BR_Hpjtb(i) -! write(*,*) "d%lhc8%XS_Hpjtb(i) = ",d%lhc8%XS_Hpjtb(i) -! write(*,*) "d%lhc13%XS_Hpjtb(i) = ",d%lhc13%XS_Hpjtb(i) +! write(*,*) "d%lhc8%XS_Hpmjtb(i) = ",d%lhc8%XS_Hpmjtb(i) +! write(*,*) "d%lhc13%XS_Hpmjtb(i) = ",d%lhc13%XS_Hpmjtb(i) ! write(*,*) "# ------- end debugging ------ #" endif - + if(lsp%pdg.eq.neut1)then ! all these chargino and neutralino searches rely on the neutralino1 ! being the lsp - if(np(Chineut).gt.0)then + if(np(Chineut).gt.0)then cofmenergy=get_SPhenocrosssectionCMenergy(ep,em,0.0D0,0.0D0,1) if(abs(cofmenergy-207.0D0).gt.1.0D-3)then write(*,*)'Wrong center of mass energy for chargino and neutralino LEP production XS.' - else + else do i=1,np(Chineut) - d%particle(Chineut)%M(i) = abs(get_mass(neutralino(i))) ! 'abs' because + d%particle(Chineut)%M(i) = abs(get_mass(neutralino(i))) ! 'abs' because !SLHA files can have negative neutralino masses (if mixing matrix is defined to - !be real). Note that this means that the neutralino masses should never + !be real). Note that this means that the neutralino masses should never !be set to -1 to indicate they should be ignored (which we can do for the Higgs). - d%particle(Chineut)%GammaTot(i) = get_totaldecaywidth(neutralino(i)) + d%particle(Chineut)%GammaTot(i) = get_totaldecaywidth(neutralino(i)) enddo d%lep%XS_NjNi=0.0D0 do j=1,np(Chineut) !we're only interested when one of the particles is neutralino1 d%lep%XS_NjNi(j,1)=get_SPhenocrosssection(neutralino(j),neut1) d%lep%XS_NjNi(1,j)=d%lep%XS_NjNi(j,1) !should be symmetric - enddo + enddo d%BR_NjqqNi = 0.0D0 !ignoring for the moment d%BR_NjZNi = 0.0D0 d%BR_NjqqNi = 0.0D0 do j=2,np(Chineut)!we're only interested when one of the daughter particles is neutralino1 !and parent is not neutralino1 d%BR_NjZNi(j,1) = get_twobodybranchingratio(neutralino(j),neut1,Z0) d%BR_NjqqNi(j,1) = get_threebodybranchingratio(neutralino(j),neut1,uquark,ubar) & & + get_threebodybranchingratio(neutralino(j),neut1,dquark,dbar) & & + get_threebodybranchingratio(neutralino(j),neut1,cquark,cbar) & & + get_threebodybranchingratio(neutralino(j),neut1,squark,sbar) & & + get_threebodybranchingratio(neutralino(j),neut1,tquark,tbar) & - & + get_threebodybranchingratio(neutralino(j),neut1,bquark,ubar) + & + get_threebodybranchingratio(neutralino(j),neut1,bquark,ubar) enddo if(np(Chiplus).gt.0)then do i=1,np(Chiplus) d%particle(Chiplus)%M(i) = abs(get_mass(chargino(i))) d%particle(Chiplus)%GammaTot(i) = get_totaldecaywidth(chargino(i)) enddo do j=1,np(Chiplus) d%lep%XS_CpjCmj(j)=get_SPhenocrosssection(chargino(j),-chargino(j)) enddo d%BR_CjWNi = 0.0D0 - d%BR_CjqqNi = 0.0D0 + d%BR_CjqqNi = 0.0D0 d%BR_CjlnuNi = 0.0D0 do j=1,np(Chiplus) d%BR_CjWNi(j,1) = get_twobodybranchingratio(chargino(j),neut1,Wp) d%BR_CjqqNi(j,1) = get_threebodybranchingratio(chargino(j),neut1,dbar,uquark) & - & + get_threebodybranchingratio(chargino(j),neut1,sbar,cquark) + & + get_threebodybranchingratio(chargino(j),neut1,sbar,cquark) d%BR_CjlnuNi(j,1) = get_threebodybranchingratio(chargino(j),neut1,ep, nue) & & + get_threebodybranchingratio(chargino(j),neut1,mup, numu) & - & + get_threebodybranchingratio(chargino(j),neut1,taup,nutau) + & + get_threebodybranchingratio(chargino(j),neut1,taup,nutau) enddo endif endif endif endif endif close(file_id_common) call finishwithSLHA endif contains subroutine fill_invisible_lspcandidate_PDG invisible_lspcandidate_PDG(1) = neut1 - invisible_lspcandidate_PDG(2) = s_nueL - invisible_lspcandidate_PDG(3) = s_numuL - invisible_lspcandidate_PDG(4) = s_nutauL + invisible_lspcandidate_PDG(2) = s_nueL + invisible_lspcandidate_PDG(3) = s_numuL + invisible_lspcandidate_PDG(4) = s_nutauL invisible_lspcandidate_PDG(5) = s_nutau1A invisible_lspcandidate_PDG(6) = s_nutau2A invisible_lspcandidate_PDG(7) = s_nutau3A end subroutine fill_invisible_lspcandidate_PDG subroutine fill_visible_lspcandidate_PDG - + visible_lspcandidate_PDG(1) = char1p visible_lspcandidate_PDG(2) = char2p - - visible_lspcandidate_PDG(3) = s_t1 - visible_lspcandidate_PDG(4) = s_b1 - visible_lspcandidate_PDG(5) = s_cL - visible_lspcandidate_PDG(6) = s_sL - visible_lspcandidate_PDG(7) = s_uL - visible_lspcandidate_PDG(8) = s_dL - - visible_lspcandidate_PDG(9) = s_t2 - visible_lspcandidate_PDG(10) = s_b2 - visible_lspcandidate_PDG(11) = s_cR - visible_lspcandidate_PDG(12) = s_sR - visible_lspcandidate_PDG(13) = s_uR - visible_lspcandidate_PDG(14) = s_dR - - visible_lspcandidate_PDG(15) = s_emL - visible_lspcandidate_PDG(16) = s_mumL - visible_lspcandidate_PDG(17) = s_taumL - - visible_lspcandidate_PDG(18) = s_emR - visible_lspcandidate_PDG(19) = s_mumR - visible_lspcandidate_PDG(20) = s_taumR + + visible_lspcandidate_PDG(3) = s_t1 + visible_lspcandidate_PDG(4) = s_b1 + visible_lspcandidate_PDG(5) = s_cL + visible_lspcandidate_PDG(6) = s_sL + visible_lspcandidate_PDG(7) = s_uL + visible_lspcandidate_PDG(8) = s_dL + + visible_lspcandidate_PDG(9) = s_t2 + visible_lspcandidate_PDG(10) = s_b2 + visible_lspcandidate_PDG(11) = s_cR + visible_lspcandidate_PDG(12) = s_sR + visible_lspcandidate_PDG(13) = s_uR + visible_lspcandidate_PDG(14) = s_dR + + visible_lspcandidate_PDG(15) = s_emL + visible_lspcandidate_PDG(16) = s_mumL + visible_lspcandidate_PDG(17) = s_taumL + + visible_lspcandidate_PDG(18) = s_emR + visible_lspcandidate_PDG(19) = s_mumR + visible_lspcandidate_PDG(20) = s_taumR visible_lspcandidate_PDG(21) = gluino end subroutine fill_visible_lspcandidate_PDG end subroutine getSLHAdata - !************************************************************ - subroutine outputSLHAdata(infile) - !************************************************************ + !************************************************************ + subroutine outputSLHAdata(infile) + !************************************************************ use usefulbits, only : whichanalyses,pr,vers,file_id_common,fullHBres,infile1,& & HBresult_all, numres use SLHA_manip - use S95tables - + use S95tables + implicit none !--------------------------------------input character(len=300),intent(in) :: infile !-----------------------------------internal double precision :: obsratio,predratio integer :: x,y,ios,rank,HBresult,chan,ncombined integer :: k_out - character(LEN=200):: descrip + character(LEN=200):: descrip logical :: newfile = .False. logical :: exist - !------------------------------------------- + !------------------------------------------- if(infile.eq.infile1) then - open(file_id_common,file=trim(infile),status='old',iostat=ios) + open(file_id_common,file=trim(infile),status='old',iostat=ios) else inquire(file=trim(infile),exist=exist) if(exist) then open(file_id_common,file=trim(infile),status='replace',iostat=ios) else - open(file_id_common,file=trim(infile),status='new',iostat=ios) - endif - newfile=.True. - endif - - if(ios.ne.0)then + open(file_id_common,file=trim(infile),status='new',iostat=ios) + endif + newfile=.True. + endif + + if(ios.ne.0)then write(*,*)'problem opening the SLHA file: $'//trim(adjustl(infile))//'$' else k_out=file_id_common if(.not.newfile) then call readSLHAfile(file_id_common,.True.) rewind(file_id_common) call writeSLHAfile_except(k_out,'HiggsBoundsResults') - endif + endif !write(k_out,'(a)')'#' write(k_out,'(a)')'Block HiggsBoundsResults # results from HiggsBounds http://projects.hepforge.org/higgsbounds' - write(k_out,'(a)')'# HBresult : scenario allowed flag (1: allowed, 0: excluded, -1: unphysical)' - write(k_out,'(a)')'# chan id number: most sensitive channel (see below). chan=0 if no channel applies' - write(k_out,'(a)')'# obsratio : ratio [sig x BR]_model/[sig x BR]_limit (<1: allowed, >1: excluded)' + write(k_out,'(a)')'# HBresult : scenario allowed flag (1: allowed, 0: excluded, -1: unphysical)' + write(k_out,'(a)')'# chan id number: most sensitive channel (see below). chan=0 if no channel applies' + write(k_out,'(a)')'# obsratio : ratio [sig x BR]_model/[sig x BR]_limit (<1: allowed, >1: excluded)' write(k_out,'(a)')'# ncomb : number of Higgs bosons combined in most sensitive channel' write(k_out,'(a)')'# Note that the HB channel id number varies depending on the HB version and setting "whichanalyses"' write(k_out,'(a)')'#' write(k_out,*)' 0 '//trim(adjustl(vers))//' ||'//whichanalyses// & & '|| # version of HB used to produce these results,the HB setting "whichanalyses"' write(k_out,'(a)')'#' write(k_out,'(a)')'#CHANNEL info: ranked from highest statistical sensitivity' if(allocated(HBresult_all)) then do rank=1,numres y=1 call HiggsBounds_get_most_sensitive_channels(rank,HBresult,chan,obsratio,predratio,ncombined) ! x=fullHBres(y)%chan call outputproc(pr(chan),0,descrip,1) ! write(k_out,'(a)')'#CHANNEL info: ranked from highest statistical sensitivity' write(k_out,*)' ',rank,1 , chan, ' # channel id number' write(k_out,*)' ',rank,2 , HBresult,' # HBresult ' write(k_out,*)' ',rank,3 , obsratio, ' # obsratio ' - write(k_out,*)' ',rank,4 , ncombined,' # ncombined' + write(k_out,*)' ',rank,4 , ncombined,' # ncombined' write(k_out,*)' ',rank,5 ,'||'//trim(adjustl(descrip))//'|| # text description of channel' ! write(k_out,'(a)')'#' enddo - + else y=1 x=fullHBres(y)%chan call outputproc(pr(x),0,descrip,1) ! write(k_out,'(a)')'#CHANNEL info: channel with the highest statistical sensitivity' write(k_out,*)' 1',1 , fullHBres(y)%chan, ' # channel id number' write(k_out,*)' 1',2 , fullHBres(y)%allowed95,' # HBresult ' write(k_out,*)' 1',3 , fullHBres(y)%obsratio, ' # obsratio ' - write(k_out,*)' 1',4 , fullHBres(y)%ncombined,' # ncombined' + write(k_out,*)' 1',4 , fullHBres(y)%ncombined,' # ncombined' write(k_out,*)' 1',5 ,'||'//trim(adjustl(descrip))//'|| # text description of channel' ! write(k_out,'(a)')'#' endif write(k_out,'(a)')'#' close(file_id_common) if(k_out.ne.file_id_common)close(k_out) call finishwithSLHA endif end subroutine outputSLHAdata - !************************************************************ -! subroutine addcouplingsblocktoSLHAfile(infile,gsq) + !************************************************************ +! subroutine addcouplingsblocktoSLHAfile(infile,gsq) ! !************************************************************ ! use usefulbits, only : file_id_common,sqcouplratio,np,Hneut -! use SLHA_manip -! +! use SLHA_manip +! ! implicit none ! !--------------------------------------input ! type(sqcouplratio) :: gsq ! character(len=300),intent(in) :: infile ! !-----------------------------------internal ! integer :: i,ios,j ! integer :: k_out -! !------------------------------------------- -! -! open(file_id_common,file=trim(infile),status='old',iostat=ios) -! if(ios.ne.0)then +! !------------------------------------------- +! +! open(file_id_common,file=trim(infile),status='old',iostat=ios) +! if(ios.ne.0)then ! write(*,*)'problem opening the SLHA file: $'//trim(adjustl(infile))//'$' ! else -! -! call readSLHAfile(file_id_common) -! +! +! call readSLHAfile(file_id_common) +! ! rewind(file_id_common) ! k_out=file_id_common -! +! ! call writeSLHAfile_except(k_out, & ! & 'HiggsBoundsInputHiggsCouplingsBosons', & ! & 'HiggsBoundsInputHiggsCouplingsFermions') -! +! ! write(k_out,'(a)')'#' ! write(k_out,'(a)')'Block HiggsBoundsInputHiggsCouplingsBosons' ! write(k_out,'(a)')'# For exact definitions of NormEffCoupSq see HiggsBounds manual' -! +! ! do i=1,np(Hneut) ! write(k_out,'(G16.6,4I6,a)')gsq%hjWW(i), 3,h(i),Wp,Wp, & ! & ' # higgs-W-W effective coupling^2, normalised to SM' ! enddo -! do i=1,np(Hneut) +! do i=1,np(Hneut) ! write(k_out,'(G16.6,4I6,a)')gsq%hjZZ(i), 3,h(i),Z0,Z0, & ! & ' # higgs-Z-Z effective coupling^2, normalised to SM' ! enddo -! do i=1,np(Hneut) +! do i=1,np(Hneut) ! write(k_out,'(G16.6,4I6,a)')gsq%hjgg(i), 3,h(i),gluon,gluon, & ! & ' # higgs-gluon-gluon effective coupling^2, normalised to SM' ! enddo ! do j=1,np(Hneut) -! do i=1,j +! do i=1,j ! write(k_out,'(G16.6,4I6,a)')gsq%hjhiZ(j,i),3,h(j),h(i),Z0, & ! & ' # higgs-higgs-Z effective coupling^2, normalised' ! enddo ! enddo -! do i=1,np(Hneut) +! do i=1,np(Hneut) ! write(k_out,'(G16.6,5I6,a)')gsq%hjggZ(i), 4,h(i),gluon,gluon,Z0, & ! & ' # higgs-gluon-gluon-Z effective coupling^2, normalised to SM' ! enddo -! +! ! write(k_out,'(a)')'#' ! write(k_out,'(a)')'Block HiggsBoundsInputHiggsCouplingsFermions' ! write(k_out,'(a)')'# For exact definitions of NormEffCoupSq see HiggsBounds manual' ! write(k_out,'(a)')'# ScalarNormEffCoupSq PseudoSNormEffCoupSq NP IP1 IP2 IP3' // & ! & ' # Scalar, Pseudoscalar Normalised Effective Coupling Squared' -! do i=1,np(Hneut) +! do i=1,np(Hneut) ! write(k_out,*)gsq%hjbb_s(i),gsq%hjbb_p(i), 3,h(i),bquark,bquark, & ! & '# higgs-b-b eff. coupling^2, normalised to SM' ! enddo -! do i=1,np(Hneut) +! do i=1,np(Hneut) ! write(k_out,*)gsq%hjtoptop_s(i),gsq%hjtoptop_p(i),3,h(i),tquark,tquark, & ! & '# higgs-top-top eff. coupling^2, normalised to SM' ! enddo -! do i=1,np(Hneut) +! do i=1,np(Hneut) ! write(k_out,*)gsq%hjtautau_s(i),gsq%hjtautau_p(i),3,h(i),taum,taum, & ! & '# higgs-tau-tau eff. coupling^2, normalised to SM' ! enddo -! +! ! close(file_id_common) ! if(k_out.ne.file_id_common)close(k_out) -! +! ! call finishwithSLHA -! +! ! endif ! end subroutine addcouplingsblocktoSLHAfile - !************************************************************ - subroutine addcouplingsblocktoSLHAfile(infile,effC) + !************************************************************ + subroutine addcouplingsblocktoSLHAfile(infile,effC) !************************************************************ use usefulbits, only : file_id_common,couplratio,np,Hneut!,sqcouplratio - use SLHA_manip - + use SLHA_manip + implicit none !--------------------------------------input ! type(sqcouplratio) :: gsq type(couplratio) :: effC character(len=300),intent(in) :: infile !-----------------------------------internal integer :: i,ios,j integer :: k_out - !------------------------------------------- + !------------------------------------------- - open(file_id_common,file=trim(infile),status='old',iostat=ios) - if(ios.ne.0)then + open(file_id_common,file=trim(infile),status='old',iostat=ios) + if(ios.ne.0)then write(*,*)'problem opening the SLHA file: $'//trim(adjustl(infile))//'$' else - call readSLHAfile(file_id_common,.True.) + call readSLHAfile(file_id_common,.True.) rewind(file_id_common) k_out=file_id_common call writeSLHAfile_except(k_out, & & 'HiggsCouplingsBosons', & & 'HiggsCouplingsFermions') write(k_out,'(a)')'#' write(k_out,'(a)')'Block HiggsCouplingsBosons' write(k_out,'(a)')'# For exact definitions of NormEffCoup see HiggsBounds manual' - + do i=1,np(Hneut) write(k_out,'(G16.6,4I6,a)')effC%hjWW(i), 3,h(i),Wp,Wp, & & ' # higgs-W-W effective coupling, normalised to SM' enddo - do i=1,np(Hneut) + do i=1,np(Hneut) write(k_out,'(G16.6,4I6,a)')effC%hjZZ(i), 3,h(i),Z0,Z0, & & ' # higgs-Z-Z effective coupling, normalised to SM' enddo - do i=1,np(Hneut) + do i=1,np(Hneut) write(k_out,'(G16.6,4I6,a)')effC%hjgg(i), 3,h(i),gluon,gluon, & & ' # higgs-gluon-gluon effective coupling, normalised to SM' enddo do j=1,np(Hneut) - do i=1,j + do i=1,j write(k_out,'(G16.6,4I6,a)')effC%hjhiZ(j,i),3,h(j),h(i),Z0, & & ' # higgs-higgs-Z effective coupling, normalised' enddo enddo -! do i=1,np(Hneut) +! do i=1,np(Hneut) ! write(k_out,'(G16.6,5I6,a)')effC%hjggZ(i), 4,h(i),gluon,gluon,Z0, & ! & ' # higgs-gluon-gluon-Z effective coupling, normalised to SM' ! enddo write(k_out,'(a)')'#' write(k_out,'(a)')'Block HiggsCouplingsFermions' write(k_out,'(a)')'# For exact definitions of NormEffCoup see HiggsBounds manual' write(k_out,'(a)')'# ScalarNormEffCoup PseudoSNormEffCoup NP IP1 IP2 IP3' // & & ' # Scalar, Pseudoscalar Normalised Effective Coupling' - do i=1,np(Hneut) + do i=1,np(Hneut) write(k_out,*)effC%hjbb_s(i),effC%hjbb_p(i), 3,h(i),bquark,bquark, & & '# higgs-b-b eff. coupling, normalised to SM' enddo - do i=1,np(Hneut) + do i=1,np(Hneut) write(k_out,*)effC%hjtt_s(i),effC%hjtt_p(i),3,h(i),tquark,tquark, & & '# higgs-top-top eff. coupling, normalised to SM' enddo - do i=1,np(Hneut) + do i=1,np(Hneut) write(k_out,*)effC%hjtautau_s(i),effC%hjtautau_p(i),3,h(i),taum,taum, & & '# higgs-tau-tau eff. coupling, normalised to SM' enddo close(file_id_common) if(k_out.ne.file_id_common)close(k_out) call finishwithSLHA endif end subroutine addcouplingsblocktoSLHAfile - !************************************************************ + !************************************************************ subroutine addchargedHiggsXStoSLHAfile(infile, collider, CS_Hpjtb, & & CS_Hpjcb, CS_Hpjub, CS_Hpjcs, CS_Hpjcd, CS_Hpjud, CS_Hpjus,& & CS_HpjW, CS_HpjZ, CS_vbf_Hpj, CS_HpjHmj, CS_Hpjhi) !************************************************************ use usefulbits, only : file_id_common,theo,np,Hplus,Hneut,just_after_run,hadroncolliderdataset!,inputsub use SLHA_manip use PDGnumbering - + implicit none !----------------------------------------input double precision,intent(in) :: CS_Hpjtb, CS_Hpjcb,CS_Hpjub,& -& CS_Hpjcs, CS_Hpjcd, CS_Hpjus,& +& CS_Hpjcs, CS_Hpjcd, CS_Hpjus,& & CS_Hpjud, CS_HpjW, CS_HpjZ,& & CS_vbf_Hpj, CS_HpjHmj integer, intent(in) :: collider - double precision,intent(in) :: CS_Hpjhi(np(Hneut)) + double precision,intent(in) :: CS_Hpjhi(np(Hneut)) character(len=300),intent(in) :: infile !-----------------------------------internal integer :: i,ios,j integer :: k_out character(len=100) :: blockname integer :: pdgHneut(np(Hneut)) - !------------------------------------------- + !------------------------------------------- select case(collider) case(8) blockname = "ChargedHiggsLHC8" case(13) - blockname = "ChargedHiggsLHC13" + blockname = "ChargedHiggsLHC13" case default write(*,*) "Warning: cannot write charged Higgs XS SLHA block. Collider energy unknown." return end select if(np(Hneut).eq.3) then pdgHneut = (/h0, HH, A0/) else if(np(Hneut).eq.5) then - pdgHneut = (/h0, HH, A0, h03, A02/) + pdgHneut = (/h0, HH, A0, h03, A02/) else write(*,*) "Warning: cannot write Hpmh0 XS to charged Higgs SLHA blocks. PDGs of neutral Higgs bosons unknown." endif - open(file_id_common,file=trim(infile),status='old',iostat=ios) - if(ios.ne.0)then + open(file_id_common,file=trim(infile),status='old',iostat=ios) + if(ios.ne.0)then write(*,*)'problem opening the SLHA file: $'//trim(adjustl(infile))//'$' else - call readSLHAfile(file_id_common,.True.) + call readSLHAfile(file_id_common,.True.) rewind(file_id_common) k_out=file_id_common call writeSLHAfile_except(k_out, trim(adjustl(blockname))) - + write(k_out,'(a)')'#' write(k_out,'(a)')'Block '//trim(adjustl(blockname)) - + write(k_out,'(3I5,G16.6,a)') 5, 6, 37, CS_Hpjtb ,' # t-b-Hp production (in pb)' - write(k_out,'(3I5,G16.6,a)') 4, 5, 37, CS_Hpjcb ,' # c-b-Hp production (in pb)' + write(k_out,'(3I5,G16.6,a)') 4, 5, 37, CS_Hpjcb ,' # c-b-Hp production (in pb)' write(k_out,'(3I5,G16.6,a)') 2, 5, 37, CS_Hpjub ,' # u-b-Hp production (in pb)' write(k_out,'(3I5,G16.6,a)') 3, 4, 37, CS_Hpjcs ,' # c-s-Hp production (in pb)' - write(k_out,'(3I5,G16.6,a)') 1, 4, 37, CS_Hpjcd ,' # c-d-Hp production (in pb)' + write(k_out,'(3I5,G16.6,a)') 1, 4, 37, CS_Hpjcd ,' # c-d-Hp production (in pb)' write(k_out,'(3I5,G16.6,a)') 1, 2, 37, CS_Hpjud ,' # u-d-Hp production (in pb)' write(k_out,'(3I5,G16.6,a)') 2, 3, 37, CS_Hpjus ,' # u-s-Hp production (in pb)' write(k_out,'(3I5,G16.6,a)') 0, 24, 37, CS_HpjW ,' # W-Hp production (in pb)' - write(k_out,'(3I5,G16.6,a)') 0, 23, 37, CS_HpjZ ,' # Z-Hp production (in pb)' + write(k_out,'(3I5,G16.6,a)') 0, 23, 37, CS_HpjZ ,' # Z-Hp production (in pb)' write(k_out,'(3I5,G16.6,a)') 1, 1, 37, CS_vbf_Hpj ,' # Hp VBF production (in pb)' write(k_out,'(3I5,G16.6,a)') 0, -37, 37, CS_HpjHmj ,' # Hp-Hm production (in pb)' if(np(Hneut).eq.3.or.np(Hneut).eq.5) then do i=1,np(Hneut) write(k_out,'(3I5,G16.6,a)') 0, pdgHneut(i), 37, CS_Hpjhi(i) ,' # h0-Hp production (in pb)' enddo - endif + endif close(file_id_common) if(k_out.ne.file_id_common)close(k_out) call finishwithSLHA endif -end subroutine addchargedHiggsXStoSLHAfile +end subroutine addchargedHiggsXStoSLHAfile end module extra_bits_for_SLHA !****************************************************************** Index: trunk/HiggsBounds-5/input.F90 =================================================================== --- trunk/HiggsBounds-5/input.F90 (revision 597) +++ trunk/HiggsBounds-5/input.F90 (revision 598) @@ -1,1605 +1,1605 @@ ! This file is part of HiggsBounds ! -KW !****************************************************************** module input -!****************************************************************** +!****************************************************************** #ifdef NAGf90Fortran use F90_UNIX_ENV, only : iargc,getarg use F90_UNIX_IO, only : flush #endif use usefulbits, only : Hneut,Hplus,Chineut,Chiplus implicit none integer,parameter :: nHmax=99 !nHneut>9 not allowed in this version !(if you really need nHneut>9, - !change nHmax in subroutine setup_input, + !change nHmax in subroutine setup_input, !and adapt subroutine outputproc_t1/t2 !and do_output, by changing the size of !the character variables nHchar,i,j !since LEN=1 will no longer be sufficient) integer :: f_orig=15 ! file id - ! n.b. debug_predratio.txt is 14, debug_channels.txt is 12 - ! (see HiggsBounds.f90 and HiggsBounds_subroutines.F90) + ! n.b. debug_predratio.txt is 14, debug_channels.txt is 12 + ! (see HiggsBounds.f90 and HiggsBounds_subroutines.F90) character(LEN=50),allocatable :: stem_array(:) logical,allocatable :: required(:) - logical,allocatable :: isoptional(:) + logical,allocatable :: isoptional(:) integer :: nargs_datfile logical,parameter :: official=.True.!do not change this without contacting us first! - !logical,parameter :: official=.False. + !logical,parameter :: official=.False. contains - !************************************************************ + !************************************************************ subroutine setup_input !************************************************************ ! * if inputmethod='datfile' or 'website', finds whichanalyses,whichinput,np ! * if inputmethod='datfile', finds infile1 (prefix for input/output filenames) ! * sets ndat (number of parameter points considered) ! * sets n_additional (number of additional data values for each parameter point) ! * allocates theo, g2, partR !************************************************************ use usefulbits, only : np,ndat,n_additional,theo,effC,g2,partR, & & inputmethod,whichinput, & & debug,infile1,infile2, & & allocate_hadroncolliderextras_parts,allocate_dataset_parts, & & allocate_sqcouplratio_parts,allocate_couplratio_parts,fill_pdesc - use theory_BRfunctions + use theory_BRfunctions implicit none - !-----------------------------------internal + !-----------------------------------internal integer :: f,ios,cc,g character(LEN=50) :: stem - !------------------------------------------- + !------------------------------------------- call fill_pdesc select case(inputmethod) case('datfile') call getbasiccommandline!get whichanalyses,whichinput,numbers of particles - call getshortcommandline(infile1,infile2)! get infile1 + call getshortcommandline(infile1,infile2)! get infile1 case('website') call getbasiccommandline!get whichanalyses,whichinput,numbers of particles !don't need infile1 - case('subrout') + case('subrout') !np(Hneut),np(Hplus) are already set call check_number_of_particles call check_whichanalyses !haven't yet set whichanalyses,whichinput infile1='' case default stop 'incorrect value for inputmethod' end select !getting ndat and n_additional... select case(inputmethod) - case('datfile') + case('datfile') f=f_orig n_additional=0 select case(whichinput) - case('part','effC','hadr') - + case('part','effC','hadr') + call fill_stem_array g=1 stem=stem_array(g) f=f_orig+g open(f,file=trim(infile1)//trim(stem)//'.dat',status='old',action='read',iostat=ios) if(ios.ne.0)then call file_name_msg(f) write(*,*)'Check that was specified correctly' write(*,*)'and that file exists.' call flush(6) stop 'Problem opening file: see standard output for more info' endif - ndat=getfilelength(f) ! number of data sets (i.e. lines) in input - - if((ndat.le.0))stop 'error getting ndat' + ndat=getfilelength(f) ! number of data sets (i.e. lines) in input + + if((ndat.le.0))stop 'error getting ndat' close(f) g=ubound(stem_array,dim=1) stem=stem_array(g) f=f_orig+g !the last element in stem_array should be 'additional' if(trim(stem_array(g)).ne.'additional')stop 'Error in subroutine setup_input (a)' required(g)=.False. - open(f,file=trim(infile1)//trim(stem)//'.dat',status='old',action='read',iostat=ios) + open(f,file=trim(infile1)//trim(stem)//'.dat',status='old',action='read',iostat=ios) - if(ios.eq.0)then + if(ios.eq.0)then cc=count_columns(f) if(cc.gt.1)then if(getfilelength(f).eq.ndat)then - n_additional=cc-1 + n_additional=cc-1 required(g)=.True. endif endif endif close(f) case('SLHA') - ndat=1 ; n_additional=0 + ndat=1 ; n_additional=0 case default stop 'error in subroutine do_input (1a)' end select case('website','subrout') ndat=1 ; n_additional=0 case default stop 'error in subroutine do_input (1b)' end select !...finished getting ndat and n_additional if(debug)then write(*,*)'np(Hneut)=',np(Hneut) write(*,*)'ndat=',ndat write(*,*)'n_additional=',n_additional endif allocate(theo(ndat)) if(debug) write(*,*) 'allocating theo data...' - call allocate_dataset_parts(theo,n_additional) - + call allocate_dataset_parts(theo,n_additional) + ! - Outdated: if(debug) write(*,*) 'allocating g2 data...' - allocate(g2(ndat)) + allocate(g2(ndat)) call allocate_sqcouplratio_parts(g2) ! - if(debug) write(*,*) 'allocating effC data...' - allocate(effC(ndat)) + allocate(effC(ndat)) call allocate_couplratio_parts(effC) - + if(debug) write(*,*) 'allocating partR data...' - allocate(partR(ndat)) - call allocate_hadroncolliderextras_parts(partR) + allocate(partR(ndat)) + call allocate_hadroncolliderextras_parts(partR) if(debug) write(*,*) 'done.' end subroutine setup_input -!************************************************************ +!************************************************************ subroutine do_input ! determines what input is needed and calls the appropriate ! subroutines to get this input !************************************************************ use usefulbits, only : ndat,inputmethod,whichinput, & & theo,effC,partR,infile1,g2 - use extra_bits_for_web, only : getlongcommandline2web + use extra_bits_for_web, only : getlongcommandline2web use extra_bits_for_SLHA, only : getSLHAdata - use theory_BRfunctions + use theory_BRfunctions implicit none - !-----------------------------------internal + !-----------------------------------internal integer :: n logical :: webdebugmode - !------------------------------------------- + !------------------------------------------- select case(inputmethod) - case('datfile') + case('datfile') select case(whichinput) case('part','effC','hadr') do n=1,ubound(stem_array,dim=1) - call readthefile(n) + call readthefile(n) enddo deallocate(stem_array) deallocate(required) deallocate(isoptional) - case('SLHA') - n=1 + case('SLHA') + n=1 if(ndat.ne.1)then stop 'error in subroutine do_input (4): need to specify infile1 for each SLHA file somehow' - endif + endif ! call getSLHAdata(theo(n),g2(n),infile1) - call getSLHAdata(theo(n),effC(n),infile1) + call getSLHAdata(theo(n),effC(n),infile1) !call test_input(n) case default stop 'error in subroutine do_input (1)' end select - case('website') + case('website') n=1 call getlongcommandline2web(theo(n),g2(n),partR(n),webdebugmode) if(webdebugmode) call test_input(n) case default stop 'error in subroutine do_input (3)' - end select + end select end subroutine do_input !************************************************************ subroutine fill_stem_array - ! lists all possible files + ! lists all possible files ! note that stem_array(ubound(stem_array,dim=1)) should be 'additional' !************************************************************ use usefulbits, only : np,whichinput,whichanalyses implicit none integer :: n,nt - + n=1 nt=26 allocate(stem_array(nt)) allocate(required(nt)) - allocate(isoptional(nt)) + allocate(isoptional(nt)) ! the following table sets input filenames and says which input files are relevant to each option ! | | | np ! | whichinput | whichanalyses |Hneu Hcha Chineut Chiplus - ! stem |part hadr effC |LandH onlyL onlyH onlyP | ==0 ==0 ==0 ==0 -! call fill('MH_GammaTot' , 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1) -! call fill('MHall_uncertainties' , -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1) -! call fill('MHplus_GammaTot' , 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1) -! call fill('MC_GammaTot' , 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0) -! call fill('MN_GammaTot' , 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1) + ! stem |part hadr effC |LandH onlyL onlyH onlyP | ==0 ==0 ==0 ==0 +! call fill('MH_GammaTot' , 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1) +! call fill('MHall_uncertainties' , -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1) +! call fill('MHplus_GammaTot' , 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1) +! call fill('MC_GammaTot' , 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0) +! call fill('MN_GammaTot' , 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1) ! call fill('effC' , 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1) -! -! call fill('BR_H_OP' , 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1) -! call fill('BR_H_NP' , 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1) -! call fill('BR_t' , 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1) -! call fill('BR_Hplus' , 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1) -! call fill('BR_C' , 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0) +! +! call fill('BR_H_OP' , 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1) +! call fill('BR_H_NP' , 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1) +! call fill('BR_t' , 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1) +! call fill('BR_Hplus' , 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1) +! call fill('BR_C' , 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0) ! call fill('BR_N' , 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1) -! -! call fill('LEP_HZ_CS_ratios' , 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1) -! call fill('LEP_H_ff_CS_ratios' , 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1) -! call fill('LEP_2H_CS_ratios' , 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1) -! call fill('LEP_HpHm_CS_ratios' , 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1) -! call fill('LEP_CpCm_CS' , 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0) -! call fill('LEP_2N_CS' , 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1) -! -! call fill('TEVLHC_H_0jet_partCS_ratios', 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1) -! call fill('TEVLHC_H_1jet_partCS_ratios', 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1) -! call fill('TEVLHC_HW_partCS_ratios' , 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1) -! call fill('TEVLHC_HZ_partCS_ratios' , 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1) -! -! call fill('TEV_H_vbf_hadCS_ratios' , 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1) -! call fill('TEV_H_tt_hadCS_ratios' , 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1) -! call fill('TEV_1H_hadCS_ratios' , 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1) -! -! call fill('LHC7_H_vbf_hadCS_ratios' , 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1) -! call fill('LHC7_H_tt_hadCS_ratios' , 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1) +! +! call fill('LEP_HZ_CS_ratios' , 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1) +! call fill('LEP_H_ff_CS_ratios' , 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1) +! call fill('LEP_2H_CS_ratios' , 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1) +! call fill('LEP_HpHm_CS_ratios' , 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1) +! call fill('LEP_CpCm_CS' , 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0) +! call fill('LEP_2N_CS' , 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1) +! +! call fill('TEVLHC_H_0jet_partCS_ratios', 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1) +! call fill('TEVLHC_H_1jet_partCS_ratios', 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1) +! call fill('TEVLHC_HW_partCS_ratios' , 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1) +! call fill('TEVLHC_HZ_partCS_ratios' , 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1) +! +! call fill('TEV_H_vbf_hadCS_ratios' , 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1) +! call fill('TEV_H_tt_hadCS_ratios' , 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1) +! call fill('TEV_1H_hadCS_ratios' , 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1) +! +! call fill('LHC7_H_vbf_hadCS_ratios' , 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1) +! call fill('LHC7_H_tt_hadCS_ratios' , 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1) ! call fill('LHC7_1H_hadCS_ratios' , 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1) -! -! call fill('LHC8_H_vbf_hadCS_ratios' , 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1) -! call fill('LHC8_H_tt_hadCS_ratios' , 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1) +! +! call fill('LHC8_H_vbf_hadCS_ratios' , 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1) +! call fill('LHC8_H_tt_hadCS_ratios' , 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1) ! call fill('LHC8_1H_hadCS_ratios' , 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1) -! -! call fill('CP_values' , 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1) -! call fill('additional' , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1) - - call fill('MH_GammaTot' , 1, 1, 1, 1, 1, 1, 0, 1, 1, 1) - call fill('MHall_uncertainties' , -1, -1, 1, 1, 1, 1, 1, 1, 1, 1) - call fill('MHplus_GammaTot' , 1, 1, 1, 1, 1, 1, 1, 0, 1, 1) - call fill('MC_GammaTot' , 1, 1, 1, 1, 1, 1, 1, 1, 0, 0) - call fill('MN_GammaTot' , 1, 1, 1, 1, 1, 1, 1, 1, 0, 1) +! +! call fill('CP_values' , 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1) +! call fill('additional' , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1) + + call fill('MH_GammaTot' , 1, 1, 1, 1, 1, 1, 0, 1, 1, 1) + call fill('MHall_uncertainties' , -1, -1, 1, 1, 1, 1, 1, 1, 1, 1) + call fill('MHplus_GammaTot' , 1, 1, 1, 1, 1, 1, 1, 0, 1, 1) + call fill('MC_GammaTot' , 1, 1, 1, 1, 1, 1, 1, 1, 0, 0) + call fill('MN_GammaTot' , 1, 1, 1, 1, 1, 1, 1, 1, 0, 1) call fill('effC' , 0, 1, 1, 1, 1, 1, 0, 1, 1, 1) - - call fill('BR_H_OP' , 1, -1, 1, 1, 1, 1, 0, 1, 1, 1) - call fill('BR_H_NP' , 1, 1, 1, 1, 1, 1, 0, 1, 1, 1) - call fill('BR_t' , 1, 1, 1, 0, 1, 1, 1, 0, 1, 1) - call fill('BR_Hplus' , 1, 1, 1, 1, 1, 1, 1, 0, 1, 1) - call fill('BR_C' , 1, 1, 1, 1, 1, 1, 1, 1, 0, 0) + + call fill('BR_H_OP' , 1, -1, 1, 1, 1, 1, 0, 1, 1, 1) + call fill('BR_H_NP' , 1, 1, 1, 1, 1, 1, 0, 1, 1, 1) + call fill('BR_t' , 1, 1, 1, 0, 1, 1, 1, 0, 1, 1) + call fill('BR_Hplus' , 1, 1, 1, 1, 1, 1, 1, 0, 1, 1) + call fill('BR_C' , 1, 1, 1, 1, 1, 1, 1, 1, 0, 0) call fill('BR_N' , 1, 1, 1, 1, 1, 1, 1, 1, 0, 1) - call fill('LEP_HZ_CS_ratios' , 1, 0, 1, 1, 0, 1, 0, 1, 1, 1) - call fill('LEP_H_ff_CS_ratios' , 1, 0, 1, 1, 0, 1, 0, 1, 1, 1) - call fill('LEP_2H_CS_ratios' , 1, 0, 1, 1, 0, 1, 0, 1, 1, 1) - call fill('LEP_HpHm_CS_ratios' , 1, 1, 1, 1, 0, 1, 1, 0, 1, 1) - call fill('LEP_CpCm_CS' , 1, 1, 1, 1, 0, 1, 1, 1, 0, 0) - call fill('LEP_2N_CS' , 1, 1, 1, 1, 0, 1, 1, 1, 0, 1) + call fill('LEP_HZ_CS_ratios' , 1, 0, 1, 1, 0, 1, 0, 1, 1, 1) + call fill('LEP_H_ff_CS_ratios' , 1, 0, 1, 1, 0, 1, 0, 1, 1, 1) + call fill('LEP_2H_CS_ratios' , 1, 0, 1, 1, 0, 1, 0, 1, 1, 1) + call fill('LEP_HpHm_CS_ratios' , 1, 1, 1, 1, 0, 1, 1, 0, 1, 1) + call fill('LEP_CpCm_CS' , 1, 1, 1, 1, 0, 1, 1, 1, 0, 0) + call fill('LEP_2N_CS' , 1, 1, 1, 1, 0, 1, 1, 1, 0, 1) - call fill('TEV_1H_hadCS_ratios' , 1, 0, 1, 0, 1, 1, 0, 1, 1, 1) + call fill('TEV_1H_hadCS_ratios' , 1, 0, 1, 0, 1, 1, 0, 1, 1, 1) call fill('LHC7_1H_hadCS_ratios' , 1, 0, 1, 0, 1, 1, 0, 1, 1, 1) call fill('LHC8_1H_hadCS_ratios' , 1, 0, 1, 0, 1, 1, 0, 1, 1, 1) call fill('LHC13_1H_hadCS_ratios' , 1, 0, 1, 0, 1, 1, 0, 1, 1, 1) -! call fill('TEV_Hplus_hadCS' , 1, 1, 1, 0, 1, 1, 1, 0, 1, 1) -! call fill('LHC7_Hplus_hadCS' , 1, 1, 1, 0, 1, 1, 1, 0, 1, 1) - call fill('LHC8_Hplus_hadCS' , 1, 1, 1, 0, 1, 1, 1, 0, 1, 1) - call fill('LHC13_Hplus_hadCS' , 1, 1, 1, 0, 1, 1, 1, 0, 1, 1) +! call fill('TEV_Hplus_hadCS' , 1, 1, 1, 0, 1, 1, 1, 0, 1, 1) +! call fill('LHC7_Hplus_hadCS' , 1, 1, 1, 0, 1, 1, 1, 0, 1, 1) + call fill('LHC8_Hplus_hadCS' , 1, 1, 1, 0, 1, 1, 1, 0, 1, 1) + call fill('LHC13_Hplus_hadCS' , 1, 1, 1, 0, 1, 1, 1, 0, 1, 1) !--n.B.: Extend this by 2H hadronic input in case needed! (No searches yet) - call fill('CP_values' , 1, 0, 1, 1, 1, 1, 0, 1, 1, 1) - call fill('additional' , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1) + call fill('CP_values' , 1, 0, 1, 1, 1, 1, 0, 1, 1, 1) + call fill('additional' , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1) if(n.ne.nt+1)stop 'Error in subroutine fill_stem_array A' - + !write(*,*)'hello whichinput',whichinput !write(*,*)'hello whichanalyses',whichanalyses !write(*,*)'hello np(Hneut)',np(Hneut) !write(*,*)'hello np(Hplus)',np(Hplus) !do n=1,nt ! write(*,*)'hello ',stem_array(n),required(n) -!enddo +!enddo !stop 'hello ending here for now' contains ! | | | np ! | whichinput | whichanalyses |Hneu Hcha Chineut Chiplus - ! stem |part hadr effC |LandH onlyL onlyH onlyP | ==0 ==0 ==0 ==0 + ! stem |part hadr effC |LandH onlyL onlyH onlyP | ==0 ==0 ==0 ==0 ! subroutine fill(stem ,part,hadr,effC, LandH,onlyL,onlyH,onlyP, Hneu,Hcha, Chneu, Chcha) ! !nb required(i) for 'additional' is not set until later ! implicit none -! +! ! character(LEN=*), intent(in):: stem ! integer, intent(in) :: part,hadr,effC,LandH,onlyL,onlyH,onlyP,Hneu,Hcha,Chneu,Chcha ! integer :: req -! -! stem_array(n)=stem -! +! +! stem_array(n)=stem +! ! req=1 ! select case(whichinput) ! case('part') ! req= part * req ! case('hadr') ! req= hadr * req ! case('effC') ! req= effC * req ! case default ! stop 'error in subroutine fill(whichinput)' ! end select -! +! ! select case(whichanalyses) ! case('LandH') ! req= LandH * req ! case('onlyL') ! req= onlyL * req ! case('onlyH') ! req= onlyH * req ! case('onlyP') ! req= onlyP * req ! case default ! stop 'error in subroutine fill(whichanalyses)' ! end select -! +! ! if(np(Hneut)==0) req= Hneu * req ! if(np(Hplus)==0) req= Hcha * req ! if(np(Chineut)==0)req= Chneu * req ! if(np(Chiplus)==0)req= Chcha * req -! +! ! select case(req) ! case(0) ! required(n)=.False. ! isoptional(n)=.False. ! case(1) ! required(n)=.True. ! isoptional(n)=.False. ! case(-1) ! required(n)=.False. -! isoptional(n)=.True. +! isoptional(n)=.True. ! case default -! stop 'error in subroutine fill(req)' +! stop 'error in subroutine fill(req)' ! end select -! +! ! n=n+1 -! +! ! end subroutine fill subroutine fill(stem ,hadr,effC, LandH,onlyL,onlyH,onlyP, Hneu,Hcha, Chneu, Chcha) !nb required(i) for 'additional' is not set until later implicit none character(LEN=*), intent(in):: stem integer, intent(in) :: hadr,effC,LandH,onlyL,onlyH,onlyP,Hneu,Hcha,Chneu,Chcha integer :: req - stem_array(n)=stem + stem_array(n)=stem req=1 select case(whichinput) ! case('part') ! req= part * req case('hadr') req= hadr * req case('effC') req= effC * req case default stop 'error in subroutine fill(whichinput)' end select select case(whichanalyses) case('LandH') req= LandH * req case('onlyL') req= onlyL * req case('onlyH') req= onlyH * req case('onlyP') req= onlyP * req case default stop 'error in subroutine fill(whichanalyses)' end select if(np(Hneut)==0) req= Hneu * req if(np(Hplus)==0) req= Hcha * req if(np(Chineut)==0)req= Chneu * req if(np(Chiplus)==0)req= Chcha * req select case(req) case(0) required(n)=.False. isoptional(n)=.False. case(1) required(n)=.True. isoptional(n)=.False. case(-1) required(n)=.False. - isoptional(n)=.True. + isoptional(n)=.True. case default - stop 'error in subroutine fill(req)' + stop 'error in subroutine fill(req)' end select - + n=n+1 end subroutine fill end subroutine fill_stem_array - !************************************************************ + !************************************************************ subroutine readthefile(n_stem) !************************************************************ ! Opens and reads the input data from files ! checks the number of lines and columns in the file first ! First column is always line number. Last line is checked to make ! sure line number is correct - !************************************************************ + !************************************************************ use usefulbits, only : np,theo,ndat,infile1,g2,effC,partR, & & n_additional,BRdirectinput - implicit none + implicit none !--------------------------------------input integer,intent(in) :: n_stem !-----------------------------------internal character(LEN=50) :: stem integer :: jj,i,j,f,k,q,ios,x,y,count double precision :: nc logical :: needed, opt double precision, allocatable :: BR_NjqqNi_in(:),BR_NjZNi_in(:),BR_hjHpiW_in(:), & & BR_hkhjhi_in(:),BR_hjhiZ_in(:),BR_HpjhiW_in(:) !BR_hjhihi_in(:) character(LEN=500) :: line integer :: numskip double precision, allocatable :: numbersfromline(:) logical :: readHneut, readHplus - !------------------------------------------- - stem=stem_array(n_stem) + !------------------------------------------- + stem=stem_array(n_stem) needed=required(n_stem) opt=isoptional(n_stem) - + if(needed.or.opt)then f=f_orig+n_stem - open(f,file=trim(infile1)//trim(stem)//'.dat',status='old',action='read',iostat=ios) + open(f,file=trim(infile1)//trim(stem)//'.dat',status='old',action='read',iostat=ios) if(ios.ne.0)then call file_name_msg(f) ! stop 'problem opening file: see standard output for more info' if(needed) then write(*,*) 'WARNING: Required file not found. Corresponding values are set to zero!' - else + else write(*,*) 'Optional datafile '//trim(infile1)//trim(stem)//'.dat'//' not found.'//& & ' Using default values.' return - endif + endif endif if(getfilelength(f).eq.0) return if((ndat.ne.getfilelength(f)))then write(*,*)'wrong no. lines in input file' write(*,*)'It had',getfilelength(f),'lines' write(*,*)'but should have been',ndat call file_name_msg(f) stop 'error in input file length (see standard output for filename).' endif !--NEW TO ALLOW DIFFERENT FILE READINGS OF DMHALL_UNCERTAINTIES.dat numskip=0 readHneut=.True. readHplus=.True. if(isoptional(n_stem)) then if(get_ncol(stem).ne.count_columns(f))then if(get_ncol(stem).eq.np(Hneut)+1) then readHneut=.True. readHplus=.False. numskip=0 else if(get_ncol(stem).eq.np(Hplus)+1) then readHneut=.False. readHplus=.True. - numskip=count_columns(f)-1-np(Hplus) - else + numskip=count_columns(f)-1-np(Hplus) + else readHneut=.False. readHplus=.False. numskip=0 endif - endif + endif else if(get_ncol(stem).ne.count_columns(f))then write(*,*)'wrong no. columns in input file' write(*,*)'It had',count_columns(f),'columns' write(*,*)'but should have been',get_ncol(stem) write(*,*)'including line ID number' call file_name_msg(f) stop 'error in input file format (see standard output for filename).' endif - endif + endif select case(trim(stem)) - case('MH_GammaTot') + case('MH_GammaTot') x=Hneut - do jj=1,ndat + do jj=1,ndat read(f,*) nc, (theo(jj)%particle(x)%M(i) ,i=1,np(x)), & & (theo(jj)%particle(x)%GammaTot(i),i=1,np(x)) enddo - case('MHall_uncertainties') + case('MHall_uncertainties') x=Hneut y=Hplus do jj=1,ndat read(f,'(A)') line !! write(*,*) "Line: ", line call extractnumbersfromline(line, nc, numbersfromline) !------Copy the HB mass uncertainties to the HS mass uncertainties for datfiles input. if(readHneut) then do i=1,np(x) ! theo(jj)%particle(x)%dM(i) = theo(jj)%particle(x)%dMh(i) theo(jj)%particle(x)%dM(i) = numbersfromline(i) theo(jj)%particle(x)%dMh(i) = numbersfromline(i) - enddo + enddo numskip=np(x) endif - if(readHplus) then + if(readHplus) then do i=1,np(y) ! theo(jj)%particle(y)%dM(i) = theo(jj)%particle(y)%dMh(i) theo(jj)%particle(y)%dM(i) = numbersfromline(numskip+i) theo(jj)%particle(y)%dMh(i) = numbersfromline(numskip+i) - enddo - endif + enddo + endif deallocate(numbersfromline) !! write(*,*) nc, theo(jj)%particle(Hneut)%dM, theo(jj)%particle(Hplus)%dM enddo case('MHplus_GammaTot') x=Hplus - do jj=1,ndat + do jj=1,ndat read(f,*) nc, (theo(jj)%particle(x)%M(i) ,i=1,np(x)), & & (theo(jj)%particle(x)%GammaTot(i),i=1,np(x)) enddo case('MC_GammaTot') x=Chiplus - do jj=1,ndat + do jj=1,ndat read(f,*) nc, (theo(jj)%particle(x)%M(i) ,i=1,np(x)), & & (theo(jj)%particle(x)%GammaTot(i),i=1,np(x)) enddo case('MN_GammaTot') x=Chineut - do jj=1,ndat + do jj=1,ndat read(f,*) nc, (theo(jj)%particle(x)%M(i) ,i=1,np(x)), & & (theo(jj)%particle(x)%GammaTot(i),i=1,np(x)) enddo - case('effC') - do jj=1,ndat + case('effC') + do jj=1,ndat read(f,*) nc, (effC(jj)%hjss_s(i) ,i=1,np(Hneut)), & & (effC(jj)%hjss_p(i) ,i=1,np(Hneut)), & & (effC(jj)%hjcc_s(i) ,i=1,np(Hneut)), & & (effC(jj)%hjcc_p(i) ,i=1,np(Hneut)), & & (effC(jj)%hjbb_s(i) ,i=1,np(Hneut)), & & (effC(jj)%hjbb_p(i) ,i=1,np(Hneut)), & & (effC(jj)%hjtt_s(i) ,i=1,np(Hneut)), & & (effC(jj)%hjtt_p(i) ,i=1,np(Hneut)), & & (effC(jj)%hjmumu_s(i) ,i=1,np(Hneut)), & & (effC(jj)%hjmumu_p(i) ,i=1,np(Hneut)), & & (effC(jj)%hjtautau_s(i) ,i=1,np(Hneut)), & & (effC(jj)%hjtautau_p(i) ,i=1,np(Hneut)), & & (effC(jj)%hjWW(i) ,i=1,np(Hneut)), & & (effC(jj)%hjZZ(i) ,i=1,np(Hneut)), & & (effC(jj)%hjZga(i) ,i=1,np(Hneut)), & & (effC(jj)%hjgaga(i) ,i=1,np(Hneut)), & & (effC(jj)%hjgg(i) ,i=1,np(Hneut)), & - & ((effC(jj)%hjhiZ(j,i) ,i=1,j),j=1,np(Hneut)) + & ((effC(jj)%hjhiZ(j,i) ,i=1,j),j=1,np(Hneut)) ! read(f,*) nc, (g2(jj)%hjss_s(i) ,i=1,np(Hneut)), & ! & (g2(jj)%hjss_p(i) ,i=1,np(Hneut)), & ! & (g2(jj)%hjcc_s(i) ,i=1,np(Hneut)), & ! & (g2(jj)%hjcc_p(i) ,i=1,np(Hneut)), & ! & (g2(jj)%hjbb_s(i) ,i=1,np(Hneut)), & ! & (g2(jj)%hjbb_p(i) ,i=1,np(Hneut)), & ! & (g2(jj)%hjtoptop_s(i) ,i=1,np(Hneut)), & ! & (g2(jj)%hjtoptop_p(i) ,i=1,np(Hneut)), & ! & (g2(jj)%hjmumu_s(i) ,i=1,np(Hneut)), & ! & (g2(jj)%hjmumu_p(i) ,i=1,np(Hneut)), & ! & (g2(jj)%hjtautau_s(i) ,i=1,np(Hneut)), & ! & (g2(jj)%hjtautau_p(i) ,i=1,np(Hneut)), & ! & (g2(jj)%hjWW(i) ,i=1,np(Hneut)), & ! & (g2(jj)%hjZZ(i) ,i=1,np(Hneut)), & ! & (g2(jj)%hjZga(i) ,i=1,np(Hneut)), & ! & (g2(jj)%hjgaga(i) ,i=1,np(Hneut)), & ! & (g2(jj)%hjgg(i) ,i=1,np(Hneut)), & ! ! & (g2(jj)%hjggZ(i) ,i=1,np(Hneut)), & -! & ((g2(jj)%hjhiZ(j,i) ,i=1,j),j=1,np(Hneut)) - enddo - case('LEP_HZ_CS_ratios') - do jj=1,ndat - read(f,*) nc, (theo(jj)%lep%XS_hjZ_ratio(i) ,i=1,np(Hneut)) - enddo - case('LEP_H_ff_CS_ratios') - do jj=1,ndat +! & ((g2(jj)%hjhiZ(j,i) ,i=1,j),j=1,np(Hneut)) + enddo + case('LEP_HZ_CS_ratios') + do jj=1,ndat + read(f,*) nc, (theo(jj)%lep%XS_hjZ_ratio(i) ,i=1,np(Hneut)) + enddo + case('LEP_H_ff_CS_ratios') + do jj=1,ndat read(f,*) nc, (theo(jj)%lep%XS_bbhj_ratio(i) ,i=1,np(Hneut)), & & (theo(jj)%lep%XS_tautauhj_ratio(i) ,i=1,np(Hneut)) enddo case('LEP_2H_CS_ratios') - do jj=1,ndat - read(f,*) nc, ((theo(jj)%lep%XS_hjhi_ratio(j,i),i=1,j),j=1,np(Hneut)) - enddo + do jj=1,ndat + read(f,*) nc, ((theo(jj)%lep%XS_hjhi_ratio(j,i),i=1,j),j=1,np(Hneut)) + enddo case('LEP_HpHm_CS_ratios') - do jj=1,ndat - read(f,*) nc, (theo(jj)%lep%XS_HpjHmj_ratio(i) ,i=1,np(Hplus)) - enddo + do jj=1,ndat + read(f,*) nc, (theo(jj)%lep%XS_HpjHmj_ratio(i) ,i=1,np(Hplus)) + enddo case('LEP_CpCm_CS') - do jj=1,ndat - read(f,*) nc, (theo(jj)%lep%XS_CpjCmj(i) ,i=1,np(Chiplus)) + do jj=1,ndat + read(f,*) nc, (theo(jj)%lep%XS_CpjCmj(i) ,i=1,np(Chiplus)) enddo case('LEP_2N_CS') - do jj=1,ndat - read(f,*) nc, ((theo(jj)%lep%XS_NjNi(j,i),i=1,j),j=1,np(Chineut)) + do jj=1,ndat + read(f,*) nc, ((theo(jj)%lep%XS_NjNi(j,i),i=1,j),j=1,np(Chineut)) enddo ! case('TEVLHC_H_0jet_partCS_ratios') -! do jj=1,ndat +! do jj=1,ndat ! read(f,*) nc, (partR(jj)%gg_hj(i) ,i=1,np(Hneut)), & -! & (partR(jj)%qq_hj(5,i) ,i=1,np(Hneut)) -! enddo -! case('TEVLHC_H_1jet_partCS_ratios') -! do jj=1,ndat -! read(f,*) nc, (partR(jj)%bg_hjb(i),i=1,np(Hneut)) -! enddo +! & (partR(jj)%qq_hj(5,i) ,i=1,np(Hneut)) +! enddo +! case('TEVLHC_H_1jet_partCS_ratios') +! do jj=1,ndat +! read(f,*) nc, (partR(jj)%bg_hjb(i),i=1,np(Hneut)) +! enddo ! case('TEVLHC_HW_partCS_ratios') -! do jj=1,ndat +! do jj=1,ndat ! read(f,*) nc, ((partR(jj)%qq_hjWp(q,i) ,i=1,np(Hneut)), q=1,partR(jj)%nq_hjWp), & -! & ((partR(jj)%qq_hjWm(q,i) ,i=1,np(Hneut)), q=1,partR(jj)%nq_hjWm) -! enddo +! & ((partR(jj)%qq_hjWm(q,i) ,i=1,np(Hneut)), q=1,partR(jj)%nq_hjWm) +! enddo ! case('TEVLHC_HZ_partCS_ratios') -! do jj=1,ndat +! do jj=1,ndat ! read(f,*) nc,(partR(jj)%gg_hjZ(i) ,i=1,np(Hneut)), & -! & (( partR(jj)%qq_hjZ(q,i) ,i=1,np(Hneut)), q=1,partR(jj)%nq_hjZ ) -! enddo -! case('TEV_H_vbf_hadCS_ratios') -! do jj=1,ndat -! read(f,*) nc, (theo(jj)%tev%XS_vbf_ratio(i),i=1,np(Hneut)) -! enddo -! case('TEV_H_tt_hadCS_ratios') -! do jj=1,ndat -! read(f,*) nc, (theo(jj)%tev%XS_tthj_ratio(i),i=1,np(Hneut)) -! enddo - case('TEV_1H_hadCS_ratios') - do jj=1,ndat +! & (( partR(jj)%qq_hjZ(q,i) ,i=1,np(Hneut)), q=1,partR(jj)%nq_hjZ ) +! enddo +! case('TEV_H_vbf_hadCS_ratios') +! do jj=1,ndat +! read(f,*) nc, (theo(jj)%tev%XS_vbf_ratio(i),i=1,np(Hneut)) +! enddo +! case('TEV_H_tt_hadCS_ratios') +! do jj=1,ndat +! read(f,*) nc, (theo(jj)%tev%XS_tthj_ratio(i),i=1,np(Hneut)) +! enddo + case('TEV_1H_hadCS_ratios') + do jj=1,ndat read(f,*) nc, (theo(jj)%tev%XS_hj_ratio(i) ,i=1,np(Hneut)) , & & (theo(jj)%tev%XS_gg_hj_ratio(i),i=1,np(Hneut)) , & & (theo(jj)%tev%XS_bb_hj_ratio(i),i=1,np(Hneut)) , & & (theo(jj)%tev%XS_hjW_ratio(i) ,i=1,np(Hneut)) , & & (theo(jj)%tev%XS_hjZ_ratio(i) ,i=1,np(Hneut)) , & & (theo(jj)%tev%XS_vbf_ratio(i) ,i=1,np(Hneut)) , & & (theo(jj)%tev%XS_tthj_ratio(i) ,i=1,np(Hneut)) , & & (theo(jj)%tev%XS_thj_tchan_ratio(i),i=1,np(Hneut)) , & - & (theo(jj)%tev%XS_thj_schan_ratio(i),i=1,np(Hneut)) - enddo -! case('LHC7_H_vbf_hadCS_ratios') -! do jj=1,ndat -! read(f,*) nc, (theo(jj)%lhc7%XS_vbf_ratio(i),i=1,np(Hneut)) -! enddo -! case('LHC7_H_tt_hadCS_ratios') -! do jj=1,ndat -! read(f,*) nc, (theo(jj)%lhc7%XS_tthj_ratio(i),i=1,np(Hneut)) -! enddo - case('LHC7_1H_hadCS_ratios') - do jj=1,ndat + & (theo(jj)%tev%XS_thj_schan_ratio(i),i=1,np(Hneut)) + enddo +! case('LHC7_H_vbf_hadCS_ratios') +! do jj=1,ndat +! read(f,*) nc, (theo(jj)%lhc7%XS_vbf_ratio(i),i=1,np(Hneut)) +! enddo +! case('LHC7_H_tt_hadCS_ratios') +! do jj=1,ndat +! read(f,*) nc, (theo(jj)%lhc7%XS_tthj_ratio(i),i=1,np(Hneut)) +! enddo + case('LHC7_1H_hadCS_ratios') + do jj=1,ndat read(f,*) nc, (theo(jj)%lhc7%XS_hj_ratio(i) ,i=1,np(Hneut)) , & & (theo(jj)%lhc7%XS_gg_hj_ratio(i),i=1,np(Hneut)) , & & (theo(jj)%lhc7%XS_bb_hj_ratio(i),i=1,np(Hneut)) , & & (theo(jj)%lhc7%XS_hjW_ratio(i) ,i=1,np(Hneut)) , & & (theo(jj)%lhc7%XS_hjZ_ratio(i) ,i=1,np(Hneut)) , & & (theo(jj)%lhc7%XS_vbf_ratio(i) ,i=1,np(Hneut)) , & & (theo(jj)%lhc7%XS_tthj_ratio(i) ,i=1,np(Hneut)) , & & (theo(jj)%lhc7%XS_thj_tchan_ratio(i),i=1,np(Hneut)) , & - & (theo(jj)%lhc7%XS_thj_schan_ratio(i),i=1,np(Hneut)) - enddo -! case('LHC8_H_vbf_hadCS_ratios') -! do jj=1,ndat -! read(f,*) nc, (theo(jj)%lhc8%XS_vbf_ratio(i),i=1,np(Hneut)) -! enddo -! case('LHC8_H_tt_hadCS_ratios') -! do jj=1,ndat -! read(f,*) nc, (theo(jj)%lhc8%XS_tthj_ratio(i),i=1,np(Hneut)) -! enddo - case('LHC8_1H_hadCS_ratios') - do jj=1,ndat + & (theo(jj)%lhc7%XS_thj_schan_ratio(i),i=1,np(Hneut)) + enddo +! case('LHC8_H_vbf_hadCS_ratios') +! do jj=1,ndat +! read(f,*) nc, (theo(jj)%lhc8%XS_vbf_ratio(i),i=1,np(Hneut)) +! enddo +! case('LHC8_H_tt_hadCS_ratios') +! do jj=1,ndat +! read(f,*) nc, (theo(jj)%lhc8%XS_tthj_ratio(i),i=1,np(Hneut)) +! enddo + case('LHC8_1H_hadCS_ratios') + do jj=1,ndat read(f,*) nc, (theo(jj)%lhc8%XS_hj_ratio(i) ,i=1,np(Hneut)) , & & (theo(jj)%lhc8%XS_gg_hj_ratio(i),i=1,np(Hneut)) , & & (theo(jj)%lhc8%XS_bb_hj_ratio(i),i=1,np(Hneut)) , & & (theo(jj)%lhc8%XS_hjW_ratio(i) ,i=1,np(Hneut)) , & & (theo(jj)%lhc8%XS_hjZ_ratio(i) ,i=1,np(Hneut)) , & & (theo(jj)%lhc8%XS_vbf_ratio(i) ,i=1,np(Hneut)) , & & (theo(jj)%lhc8%XS_tthj_ratio(i) ,i=1,np(Hneut)) , & & (theo(jj)%lhc8%XS_thj_tchan_ratio(i),i=1,np(Hneut)) , & - & (theo(jj)%lhc8%XS_thj_schan_ratio(i),i=1,np(Hneut)) - enddo - case('LHC13_1H_hadCS_ratios') - do jj=1,ndat + & (theo(jj)%lhc8%XS_thj_schan_ratio(i),i=1,np(Hneut)) + enddo + case('LHC13_1H_hadCS_ratios') + do jj=1,ndat read(f,*) nc, (theo(jj)%lhc13%XS_hj_ratio(i) ,i=1,np(Hneut)) , & & (theo(jj)%lhc13%XS_gg_hj_ratio(i),i=1,np(Hneut)) , & & (theo(jj)%lhc13%XS_bb_hj_ratio(i),i=1,np(Hneut)) , & & (theo(jj)%lhc13%XS_hjW_ratio(i) ,i=1,np(Hneut)) , & & (theo(jj)%lhc13%XS_hjZ_ratio(i) ,i=1,np(Hneut)) , & & (theo(jj)%lhc13%XS_vbf_ratio(i) ,i=1,np(Hneut)) , & & (theo(jj)%lhc13%XS_tthj_ratio(i) ,i=1,np(Hneut)) , & & (theo(jj)%lhc13%XS_thj_tchan_ratio(i),i=1,np(Hneut)) , & - & (theo(jj)%lhc13%XS_thj_schan_ratio(i),i=1,np(Hneut)) + & (theo(jj)%lhc13%XS_thj_schan_ratio(i),i=1,np(Hneut)) enddo - case('BR_H_OP') - do jj=1,ndat + case('BR_H_OP') + do jj=1,ndat read(f,*) nc, (theo(jj)%BR_hjss(i) ,i=1,np(Hneut)), & & (theo(jj)%BR_hjcc(i) ,i=1,np(Hneut)), & & (theo(jj)%BR_hjbb(i) ,i=1,np(Hneut)), & - & (theo(jj)%BR_hjtt(i) ,i=1,np(Hneut)), & + & (theo(jj)%BR_hjtt(i) ,i=1,np(Hneut)), & & (theo(jj)%BR_hjmumu(i) ,i=1,np(Hneut)), & & (theo(jj)%BR_hjtautau(i) ,i=1,np(Hneut)), & & (theo(jj)%BR_hjWW(i) ,i=1,np(Hneut)), & & (theo(jj)%BR_hjZZ(i) ,i=1,np(Hneut)), & & (theo(jj)%BR_hjZga(i) ,i=1,np(Hneut)), & & (theo(jj)%BR_hjgaga(i) ,i=1,np(Hneut)), & & (theo(jj)%BR_hjgg(i) ,i=1,np(Hneut)) enddo BRdirectinput=.True. - case('TEV_Hplus_hadCS') - do jj=1,ndat - read(f,*) nc, (theo(jj)%tev%XS_Hpjtb(i) ,i=1,np(Hplus)) , & - & (theo(jj)%tev%XS_Hpjcb(i) ,i=1,np(Hplus)) , & - & (theo(jj)%tev%XS_Hpjbjet(i) ,i=1,np(Hplus)) , & - & (theo(jj)%tev%XS_Hpjcjet(i) ,i=1,np(Hplus)) , & - & (theo(jj)%tev%XS_Hpjjetjet(i) ,i=1,np(Hplus)) , & - & (theo(jj)%tev%XS_HpjW(i) ,i=1,np(Hplus)) , & - & (theo(jj)%tev%XS_HpjZ(i) ,i=1,np(Hplus)) , & - & (theo(jj)%tev%XS_vbf_Hpj(i) ,i=1,np(Hplus)) , & + case('TEV_Hplus_hadCS') + do jj=1,ndat + read(f,*) nc, (theo(jj)%tev%XS_Hpmjtb(i) ,i=1,np(Hplus)) , & + & (theo(jj)%tev%XS_Hpmjcb(i) ,i=1,np(Hplus)) , & + & (theo(jj)%tev%XS_Hpmjbjet(i) ,i=1,np(Hplus)) , & + & (theo(jj)%tev%XS_Hpmjcjet(i) ,i=1,np(Hplus)) , & + & (theo(jj)%tev%XS_Hpmjjetjet(i) ,i=1,np(Hplus)) , & + & (theo(jj)%tev%XS_HpmjW(i) ,i=1,np(Hplus)) , & + & (theo(jj)%tev%XS_HpmjZ(i) ,i=1,np(Hplus)) , & + & (theo(jj)%tev%XS_vbf_Hpmj(i) ,i=1,np(Hplus)) , & & (theo(jj)%tev%XS_HpjHmj(i) ,i=1,np(Hplus)) , & - & ((theo(jj)%tev%XS_Hpjhi(j,i) ,i=1,np(Hneut)),j=1,np(Hplus)) - enddo - case('LHC7_Hplus_hadCS') - do jj=1,ndat - read(f,*) nc, (theo(jj)%lhc7%XS_Hpjtb(i) ,i=1,np(Hplus)) , & - & (theo(jj)%lhc7%XS_Hpjcb(i) ,i=1,np(Hplus)) , & - & (theo(jj)%lhc7%XS_Hpjbjet(i) ,i=1,np(Hplus)) , & - & (theo(jj)%lhc7%XS_Hpjcjet(i) ,i=1,np(Hplus)) , & - & (theo(jj)%lhc7%XS_Hpjjetjet(i) ,i=1,np(Hplus)) , & - & (theo(jj)%lhc7%XS_HpjW(i) ,i=1,np(Hplus)) , & - & (theo(jj)%lhc7%XS_HpjZ(i) ,i=1,np(Hplus)) , & - & (theo(jj)%lhc7%XS_vbf_Hpj(i) ,i=1,np(Hplus)) , & + & ((theo(jj)%tev%XS_Hpmjhi(j,i) ,i=1,np(Hneut)),j=1,np(Hplus)) + enddo + case('LHC7_Hplus_hadCS') + do jj=1,ndat + read(f,*) nc, (theo(jj)%lhc7%XS_Hpmjtb(i) ,i=1,np(Hplus)) , & + & (theo(jj)%lhc7%XS_Hpmjcb(i) ,i=1,np(Hplus)) , & + & (theo(jj)%lhc7%XS_Hpmjbjet(i) ,i=1,np(Hplus)) , & + & (theo(jj)%lhc7%XS_Hpmjcjet(i) ,i=1,np(Hplus)) , & + & (theo(jj)%lhc7%XS_Hpmjjetjet(i) ,i=1,np(Hplus)) , & + & (theo(jj)%lhc7%XS_HpmjW(i) ,i=1,np(Hplus)) , & + & (theo(jj)%lhc7%XS_HpmjZ(i) ,i=1,np(Hplus)) , & + & (theo(jj)%lhc7%XS_vbf_Hpmj(i) ,i=1,np(Hplus)) , & & (theo(jj)%lhc7%XS_HpjHmj(i) ,i=1,np(Hplus)) , & - & ((theo(jj)%lhc7%XS_Hpjhi(j,i) ,i=1,np(Hneut)),j=1,np(Hplus)) - enddo - case('LHC8_Hplus_hadCS') - do jj=1,ndat - read(f,*) nc, (theo(jj)%lhc8%XS_Hpjtb(i) ,i=1,np(Hplus)) , & - & (theo(jj)%lhc8%XS_Hpjcb(i) ,i=1,np(Hplus)) , & - & (theo(jj)%lhc8%XS_Hpjbjet(i) ,i=1,np(Hplus)) , & - & (theo(jj)%lhc8%XS_Hpjcjet(i) ,i=1,np(Hplus)) , & - & (theo(jj)%lhc8%XS_Hpjjetjet(i) ,i=1,np(Hplus)) , & - & (theo(jj)%lhc8%XS_HpjW(i) ,i=1,np(Hplus)) , & - & (theo(jj)%lhc8%XS_HpjZ(i) ,i=1,np(Hplus)) , & - & (theo(jj)%lhc8%XS_vbf_Hpj(i) ,i=1,np(Hplus)) , & + & ((theo(jj)%lhc7%XS_Hpmjhi(j,i) ,i=1,np(Hneut)),j=1,np(Hplus)) + enddo + case('LHC8_Hplus_hadCS') + do jj=1,ndat + read(f,*) nc, (theo(jj)%lhc8%XS_Hpmjtb(i) ,i=1,np(Hplus)) , & + & (theo(jj)%lhc8%XS_Hpmjcb(i) ,i=1,np(Hplus)) , & + & (theo(jj)%lhc8%XS_Hpmjbjet(i) ,i=1,np(Hplus)) , & + & (theo(jj)%lhc8%XS_Hpmjcjet(i) ,i=1,np(Hplus)) , & + & (theo(jj)%lhc8%XS_Hpmjjetjet(i) ,i=1,np(Hplus)) , & + & (theo(jj)%lhc8%XS_HpmjW(i) ,i=1,np(Hplus)) , & + & (theo(jj)%lhc8%XS_HpmjZ(i) ,i=1,np(Hplus)) , & + & (theo(jj)%lhc8%XS_vbf_Hpmj(i) ,i=1,np(Hplus)) , & & (theo(jj)%lhc8%XS_HpjHmj(i) ,i=1,np(Hplus)) , & - & ((theo(jj)%lhc8%XS_Hpjhi(j,i) ,i=1,np(Hneut)),j=1,np(Hplus)) - enddo - case('LHC13_Hplus_hadCS') - do jj=1,ndat - read(f,*) nc, (theo(jj)%lhc13%XS_Hpjtb(i) ,i=1,np(Hplus)) , & - & (theo(jj)%lhc13%XS_Hpjcb(i) ,i=1,np(Hplus)) , & - & (theo(jj)%lhc13%XS_Hpjbjet(i) ,i=1,np(Hplus)) , & - & (theo(jj)%lhc13%XS_Hpjcjet(i) ,i=1,np(Hplus)) , & - & (theo(jj)%lhc13%XS_Hpjjetjet(i) ,i=1,np(Hplus)) , & - & (theo(jj)%lhc13%XS_HpjW(i) ,i=1,np(Hplus)) , & - & (theo(jj)%lhc13%XS_HpjZ(i) ,i=1,np(Hplus)) , & - & (theo(jj)%lhc13%XS_vbf_Hpj(i) ,i=1,np(Hplus)) , & + & ((theo(jj)%lhc8%XS_Hpmjhi(j,i) ,i=1,np(Hneut)),j=1,np(Hplus)) + enddo + case('LHC13_Hplus_hadCS') + do jj=1,ndat + read(f,*) nc, (theo(jj)%lhc13%XS_Hpmjtb(i) ,i=1,np(Hplus)) , & + & (theo(jj)%lhc13%XS_Hpmjcb(i) ,i=1,np(Hplus)) , & + & (theo(jj)%lhc13%XS_Hpmjbjet(i) ,i=1,np(Hplus)) , & + & (theo(jj)%lhc13%XS_Hpmjcjet(i) ,i=1,np(Hplus)) , & + & (theo(jj)%lhc13%XS_Hpmjjetjet(i) ,i=1,np(Hplus)) , & + & (theo(jj)%lhc13%XS_HpmjW(i) ,i=1,np(Hplus)) , & + & (theo(jj)%lhc13%XS_HpmjZ(i) ,i=1,np(Hplus)) , & + & (theo(jj)%lhc13%XS_vbf_Hpmj(i) ,i=1,np(Hplus)) , & & (theo(jj)%lhc13%XS_HpjHmj(i) ,i=1,np(Hplus)) , & - & ((theo(jj)%lhc13%XS_Hpjhi(j,i) ,i=1,np(Hneut)),j=1,np(Hplus)) - enddo + & ((theo(jj)%lhc13%XS_Hpmjhi(j,i) ,i=1,np(Hneut)),j=1,np(Hplus)) + enddo case('BR_H_NP') if(np(Hplus)>0) then - allocate(BR_hjHpiW_in(np(Hneut)*np(Hplus))) - BR_hjHpiW_in =0.0D0 - endif + allocate(BR_hjHpiW_in(np(Hneut)*np(Hplus))) + BR_hjHpiW_in =0.0D0 + endif if(np(Hneut)>1)then !because if np(Hneut)=1, then matrix BR_hjhihi has no off diagonal entries -! allocate(BR_hjhihi_in(np(Hneut)**2-np(Hneut))) -! BR_hjhihi_in =0.0D0 +! allocate(BR_hjhihi_in(np(Hneut)**2-np(Hneut))) +! BR_hjhihi_in =0.0D0 - allocate(BR_hkhjhi_in(np(Hneut)**2*(np(Hneut)-1)/2)) - BR_hkhjhi_in =0.0D0 - allocate(BR_hjhiZ_in(np(Hneut)**2-np(Hneut))) - BR_hjhiZ_in =0.0D0 + allocate(BR_hkhjhi_in(np(Hneut)**2*(np(Hneut)-1)/2)) + BR_hkhjhi_in =0.0D0 + allocate(BR_hjhiZ_in(np(Hneut)**2-np(Hneut))) + BR_hjhiZ_in =0.0D0 do jj=1,ndat - if(np(Hplus)>0)then + if(np(Hplus)>0)then read(f,*) nc, (theo(jj)%BR_hjinvisible(i) ,i=1,np(Hneut)), & & (BR_hkhjhi_in(i) ,i=1,int(np(Hneut)**2*(np(Hneut)-1)/2)),& & (BR_hjhiZ_in(i) ,i=1,int(np(Hneut)**2-np(Hneut))),& & (theo(jj)%BR_hjemu(i) ,i=1,np(Hneut)), & & (theo(jj)%BR_hjetau(i) ,i=1,np(Hneut)), & & (theo(jj)%BR_hjmutau(i) ,i=1,np(Hneut)),& & (BR_hjHpiW_in(i) ,i=1,int(np(Hneut)*np(Hplus))) else read(f,*) nc, (theo(jj)%BR_hjinvisible(i) ,i=1,np(Hneut)), & & (BR_hkhjhi_in(i) ,i=1,int(np(Hneut)**2*(np(Hneut)-1)/2)),& & (BR_hjhiZ_in(i) ,i=1,int(np(Hneut)**2-np(Hneut))),& & (theo(jj)%BR_hjemu(i) ,i=1,np(Hneut)), & & (theo(jj)%BR_hjetau(i) ,i=1,np(Hneut)), & & (theo(jj)%BR_hjmutau(i) ,i=1,np(Hneut)) endif -! & ( BR_hjhihi_in(i) ,i=1,int(np(Hneut)**2-np(Hneut))) +! & ( BR_hjhihi_in(i) ,i=1,int(np(Hneut)**2-np(Hneut))) theo(jj)%BR_hkhjhi=0.0D0 count=0 do k=1,np(Hneut) do j=1,np(Hneut) do i=1,np(Hneut) if(i.ne.k.and.j.ne.k) then if(j.le.i) then count=count+1 theo(jj)%BR_hkhjhi(k,j,i)=BR_hkhjhi_in(count) else - theo(jj)%BR_hkhjhi(k,j,i)=theo(jj)%BR_hkhjhi(k,i,j) + theo(jj)%BR_hkhjhi(k,j,i)=theo(jj)%BR_hkhjhi(k,i,j) endif ! write(*,*) "Reading BR_hkhjhi(",k,j,i,") element = ", theo(jj)%BR_hkhjhi(k,j,i) endif enddo enddo - enddo + enddo theo(jj)%BR_hjhiZ = 0.0D0 count=0 do j=1,np(Hneut) do i=1,np(Hneut) if(i.ne.j)then count=count+1 theo(jj)%BR_hjhiZ(j,i) = BR_hjhiZ_in(count) endif -! write(*,*) "Reading BR_hjhiZ(",j,i,") element = ", theo(jj)%BR_hjhiZ(j,i) +! write(*,*) "Reading BR_hjhiZ(",j,i,") element = ", theo(jj)%BR_hjhiZ(j,i) enddo enddo if(np(Hplus)>0)then theo(jj)%BR_hjHpiW = 0.0D0 - count=0 + count=0 do j=1,np(Hneut) do i=1,np(Hplus) count=count+1 theo(jj)%BR_hjHpiW(j,i) = BR_hjHpiW_in(count) enddo enddo - endif - + endif + ! k=0 ! do j=1,np(Hneut) ! do i=1,np(Hneut) ! if(i.ne.j)then ! k=k+1 -! theo(jj)%BR_hjhihi(j,i) = BR_hjhihi_in(k) -! endif +! theo(jj)%BR_hjhihi(j,i) = BR_hjhihi_in(k) +! endif ! enddo -! enddo - +! enddo + enddo ! deallocate(BR_hjhihi_in) deallocate(BR_hkhjhi_in) deallocate(BR_hjhiZ_in) - + else do jj=1,ndat - if(np(Hplus)>0)then + if(np(Hplus)>0)then read(f,*) nc, (theo(jj)%BR_hjinvisible(i) ,i=1,np(Hneut)),& & (theo(jj)%BR_hjemu(i) ,i=1,np(Hneut)), & & (theo(jj)%BR_hjetau(i) ,i=1,np(Hneut)), & & (theo(jj)%BR_hjmutau(i) ,i=1,np(Hneut)), & & (BR_hjHpiW_in(i) ,i=1,int(np(Hneut)*np(Hplus))) theo(jj)%BR_hjHpiW = 0.0D0 - count=0 + count=0 do j=1,np(Hneut) do i=1,np(Hplus) count=count+1 theo(jj)%BR_hjHpiW(j,i) = BR_hjHpiW_in(count) enddo enddo - + else read(f,*) nc, (theo(jj)%BR_hjinvisible(i) ,i=1,np(Hneut)),& & (theo(jj)%BR_hjemu(i) ,i=1,np(Hneut)), & & (theo(jj)%BR_hjetau(i) ,i=1,np(Hneut)), & & (theo(jj)%BR_hjmutau(i) ,i=1,np(Hneut)) endif enddo endif case('BR_t') - do jj=1,ndat + do jj=1,ndat read(f,*) nc, theo(jj)%BR_tWpb, & - & (theo(jj)%BR_tHpjb(i) ,i=1,np(Hplus)) - enddo + & (theo(jj)%BR_tHpjb(i) ,i=1,np(Hplus)) + enddo case('BR_Hplus') - if(np(Hneut).ge.1) then + if(np(Hneut).ge.1) then allocate(BR_HpjhiW_in(int(np(Hplus)*np(Hneut)))) - - BR_HpjhiW_in =0.0D0 + + BR_HpjhiW_in =0.0D0 do jj=1,ndat read(f,*) nc, (theo(jj)%BR_Hpjcs(i) ,i=1,np(Hplus)), & & (theo(jj)%BR_Hpjcb(i) ,i=1,np(Hplus)), & & (theo(jj)%BR_Hpjtaunu(i) ,i=1,np(Hplus)), & & (theo(jj)%BR_Hpjtb(i) ,i=1,np(Hplus)), & & (theo(jj)%BR_HpjWZ(i) ,i=1,np(Hplus)), & & (BR_HpjhiW_in(i) ,i=1,int(np(Hplus)*np(Hneut))) - + count=0 do j=1,np(Hplus) do i=1,np(Hneut) count=count+1 - theo(jj)%BR_HpjhiW(j,i) = BR_HpjhiW_in(count) + theo(jj)%BR_HpjhiW(j,i) = BR_HpjhiW_in(count) enddo enddo - - enddo + + enddo else do jj=1,ndat read(f,*) nc, (theo(jj)%BR_Hpjcs(i) ,i=1,np(Hplus)), & & (theo(jj)%BR_Hpjcb(i) ,i=1,np(Hplus)), & & (theo(jj)%BR_Hpjtaunu(i) ,i=1,np(Hplus)), & & (theo(jj)%BR_Hpjtb(i) ,i=1,np(Hplus)), & & (theo(jj)%BR_HpjWZ(i) ,i=1,np(Hplus)) - enddo - endif - + enddo + endif + case('BR_C') - do jj=1,ndat + do jj=1,ndat read(f,*) nc, ((theo(jj)%BR_CjqqNi(j,i) ,i=1,np(Chineut)),j=1,np(Chiplus)), & & ((theo(jj)%BR_CjlnuNi(j,i) ,i=1,np(Chineut)),j=1,np(Chiplus)), & - & ((theo(jj)%BR_CjWNi(j,i) ,i=1,np(Chineut)),j=1,np(Chiplus)) + & ((theo(jj)%BR_CjWNi(j,i) ,i=1,np(Chineut)),j=1,np(Chiplus)) enddo case('BR_N') if(np(Chineut)>1)then !because if np(Chineut)=1, then BR matrix has no off diagonal entries allocate( BR_NjqqNi_in( np(Chineut)**2-np(Chineut) ) ) allocate( BR_NjZNi_in( np(Chineut)**2-np(Chineut) ) ) - + BR_NjqqNi_in =0.0D0 - BR_NjZNi_in =0.0D0 + BR_NjZNi_in =0.0D0 - do jj=1,ndat + do jj=1,ndat read(f,*) nc, (BR_NjqqNi_in(i) ,i=1,int(np(Chineut)**2-np(Chineut))) , & - & (BR_NjZNi_in(i) ,i=1,int(np(Chineut)**2-np(Chineut))) + & (BR_NjZNi_in(i) ,i=1,int(np(Chineut)**2-np(Chineut))) k=0 do j=1,np(Chineut) do i=1,np(Chineut) if(i.ne.j)then k=k+1 theo(jj)%BR_NjqqNi(j,i) = BR_NjqqNi_in(k) - theo(jj)%BR_NjZNi(j,i) = BR_NjZNi_in(k) - endif + theo(jj)%BR_NjZNi(j,i) = BR_NjZNi_in(k) + endif enddo - enddo - + enddo + enddo deallocate(BR_NjqqNi_in) deallocate(BR_NjZNi_in) endif case('CP_values') - do jj=1,ndat - read(f,*) nc, (theo(jj)%CP_value(i) ,i=1,np(Hneut)) + do jj=1,ndat + read(f,*) nc, (theo(jj)%CP_value(i) ,i=1,np(Hneut)) + enddo + case('additional') + do jj=1,ndat + read(f,*) nc, (theo(jj)%additional(i),i=1,n_additional) enddo - case('additional') - do jj=1,ndat - read(f,*) nc, (theo(jj)%additional(i),i=1,n_additional) - enddo case default stop 'problem in subroutine readthefile (2)' - end select - + end select + close(f) - if(ndat.ne.nint(nc))then + if(ndat.ne.nint(nc))then write(*,*)'last line read in was not labled ndat' call file_name_msg(f) - stop 'error in input file (see standard output for filename and more details).' - endif - + stop 'error in input file (see standard output for filename and more details).' + endif + endif end subroutine readthefile - !************************************************************ + !************************************************************ subroutine extractnumbersfromline(line, nc, numbers) ! Scans a line and extracts numbers separated by whitespaces !************************************************************ implicit none character(LEN=500), intent(in) :: line double precision, allocatable, intent(out) :: numbers(:) double precision, intent(out) :: nc ! integer, intent(out) :: ii integer :: i, indx, prev, beginning, N double precision :: dbltmp - - prev = 0 - beginning = 1 + + prev = 0 + beginning = 1 N = 0 - + do i=1,len(line) indx = index('0123456789.EeDd-+', line(i:i)) if (indx.eq.0 .and. prev.gt.0) then read(line(beginning:i-1), *) dbltmp N=N+1 else if (indx.gt.0 .and. prev.eq.0) then - beginning = i + beginning = i end if prev = indx end do allocate(numbers(N-1)) N=0 do i=1,len(line) indx = index('0123456789.EeDd-+', line(i:i)) if (indx.eq.0 .and. prev.gt.0) then N=N+1 - if(N.eq.1) then + if(N.eq.1) then read(line(beginning:i-1), *) nc else read(line(beginning:i-1), *) numbers(N-1) - endif + endif else if (indx.gt.0 .and. prev.eq.0) then - beginning = i + beginning = i end if prev = indx end do - + end subroutine extractnumbersfromline - !************************************************************ + !************************************************************ subroutine getbasiccommandline !************************************************************ - ! finds whichanalyses,whichinput,np from command line - !************************************************************ + ! finds whichanalyses,whichinput,np from command line + !************************************************************ !nb iargc and getarg are non-standard - use usefulbits, only : np,pdesc,whichanalyses,whichinput,inputmethod - implicit none + use usefulbits, only : np,pdesc,whichanalyses,whichinput,inputmethod + implicit none !-----------------------------------internal #ifndef NAGf90Fortran integer :: iargc #endif character(LEN=100) :: temp character(LEN=5) :: nHtemp integer :: i,x,xmax - integer :: number_args - logical :: wrong_args + integer :: number_args + logical :: wrong_args logical :: additionalSLHAoutput = .False. - !------------------------------------------- - number_args = IARGC() + !------------------------------------------- + number_args = IARGC() if(inputmethod .eq. 'datfile')then if(official)then !whichanalyses, whichinput, np(Hneut), np(Hplus) , prefix nargs_datfile = 2+ 2 +1 np(Chineut)=0 np(Chiplus)=0 else !whichanalyses, whichinput, all elements of np, prefix nargs_datfile = 2+ ubound(np,dim=1) +1 endif wrong_args= (number_args .ne. nargs_datfile) additionalSLHAoutput = (number_args.eq.(nargs_datfile+1)) - elseif(inputmethod .eq. 'website')then + elseif(inputmethod .eq. 'website')then wrong_args= (number_args .lt. (2+ ubound(np,dim=1))) else write(*,*)'inputmethod=',inputmethod stop 'error in getbasiccommandline' endif if(wrong_args.and.(.not.additionalSLHAoutput))then write(*,*) "Incorrect number of parameters given on command line" call command_line_how2 stop "Error: command line entered incorrectly (see standard output for more info)" endif - + ! Read arguments into text strings. i=1 - + temp="" call GETARG(i,temp) whichanalyses = "" whichanalyses = trim(temp) i=i+1 temp="" call GETARG(i,temp) whichinput = "" whichinput = trim(temp) i=i+1 if(whichinput.ne.'SLHA'.and.wrong_args.and.additionalSLHAoutput)then write(*,*) "Incorrect number of parameters given on command line" call command_line_how2 stop "Error: command line entered incorrectly (see standard output for more info)" endif - + if((inputmethod .eq. 'website').or.(.not.official))then xmax=ubound(np,dim=1) else !datfile, official xmax=2 !nHneut,nHplus endif do x=1,xmax temp="" call GETARG(i,temp) nHtemp = "" nHtemp = trim(temp) i=i+1 if(verify(nHtemp," 1234567890").gt.0)then ! checks that the string nHtemp just contains the characters " 1234567890" ! the function verify is standard in fortran 95 write(*,*)'Incorrect n'//trim(adjustl(pdesc(x)%short))//': not a number.' write(*,*)'(you entered n'//trim(adjustl(pdesc(x)%short))//'="'//trim(adjustl(nHtemp))//'")' write(*,*)'n'//trim(adjustl(pdesc(x)%short))//' is the number of '//trim(adjustl(pdesc(x)%long))//'s' call command_line_how2 stop "Error: command line entered incorrectly (see standard output for more info)" endif read(nHtemp,*) np(x) enddo call check_number_of_particles - call check_whichinput + call check_whichinput call check_whichanalyses end subroutine getbasiccommandline - !************************************************************ + !************************************************************ subroutine command_line_how2 - !************************************************************ + !************************************************************ use usefulbits, only : np,inputmethod - write(*,*)'The correct syntax for the command line is:' + write(*,*)'The correct syntax for the command line is:' if(inputmethod.eq.'website')then if(ubound(np,dim=1).eq.4)then write(*,*)' ./HiggsBounds whichanalyses whichinput nHneut nHplus nNeutralino nChargino debug ...' write(*,*)'e.g.' write(*,*)' ./HiggsBounds LandH part 3 1 4 2 T ...' else stop 'error in subroutine command_line_how2' endif elseif(.not.official)then if(ubound(np,dim=1).eq.4)then write(*,*)' ./HiggsBounds whichanalyses whichinput nHneut nHplus nNeutralino nChargino prefix' write(*,*)'e.g.' write(*,*)' ./HiggsBounds LandH part 3 1 4 2 mhmax' else stop 'error in subroutine command_line_how2' endif else !official, datfile write(*,*)' ./HiggsBounds whichanalyses whichinput nHneut nHplus prefix' write(*,*)'e.g.' write(*,*)' ./HiggsBounds LandH effC 3 1 example_data/mhmodplus/mhmod+_' endif - write(*,*)'See HiggsBounds manual for more details.' + write(*,*)'See HiggsBounds manual for more details.' call flush(6) end subroutine command_line_how2 - !************************************************************ + !************************************************************ subroutine check_whichinput - !************************************************************ + !************************************************************ use usefulbits, only : whichinput select case(whichinput) case('part','effC','hadr','SLHA') case default call command_line_how2 write(*,*)'Error: This value of "whichinput" is not allowed.' write(*,*)'(you entered whichinput="'//trim(adjustl(whichinput))//'")' write(*,*)'Allowed values for "whichinput" are (see manual):' write(*,*)'part masses, branching ratios, decay widths, LEP cross sections,' write(*,*)' Tevatron and LHC partonic cross sections' - write(*,*)'effC effective coupling approx' + write(*,*)'effC effective coupling approx' write(*,*)'hadr masses, branching ratios, decay widths, LEP cross sections,' write(*,*)' Tevatron and LHC hadronic cross sections' - write(*,*)'SLHA SUSY Les Houches Accord files' - call flush(6) - stop 'error: input type selected incorrectly (see standard output for more info)' - end select + write(*,*)'SLHA SUSY Les Houches Accord files' + call flush(6) + stop 'error: input type selected incorrectly (see standard output for more info)' + end select - end subroutine check_whichinput + end subroutine check_whichinput - !************************************************************ + !************************************************************ subroutine check_number_of_particles - !************************************************************ + !************************************************************ use usefulbits, only : np,pdesc,inputmethod,whichinput integer :: x do x=1,ubound(np,dim=1) - if(np(x).lt.0)then - write(*,*) 'number of '//trim(adjustl(pdesc(x)%long))//'s must be greater than zero' - if(inputmethod.eq.'datfile')call command_line_how2 + if(np(x).lt.0)then + write(*,*) 'number of '//trim(adjustl(pdesc(x)%long))//'s must be greater than zero' + if(inputmethod.eq.'datfile')call command_line_how2 stop 'error in subroutine check_number_of_particles (a) (see standard output for more info)' elseif(np(x)>nHmax)then write(*,*) 'number of '//trim(adjustl(pdesc(x)%long))//'s must be less than',nHmax - write(*,*) ' (if you need more than this, please contact us)' - if(inputmethod.eq.'datfile')call command_line_how2 + write(*,*) ' (if you need more than this, please contact us)' + if(inputmethod.eq.'datfile')call command_line_how2 stop 'error in subroutine check_number_of_particles (b) (see standard output for more info)' endif enddo if(sum(np).eq.0)then stop 'There should be a non-zero number of particles' endif if((inputmethod.eq.'datfile').and.(official))then do x=3,ubound(np,dim=1) !i.e. particles other than Hneut,Hplus if(np(x).gt.0)then write(*,*)'In this version of HiggsBounds, the number of ' & - &//trim(adjustl(pdesc(x)%long))//'s must be zero' - write(*,*)'and you have entered the number',np(x) + &//trim(adjustl(pdesc(x)%long))//'s must be zero' + write(*,*)'and you have entered the number',np(x) write(*,*)'Please contact us if you would like more information.' stop 'error in subroutine check_number_of_particles (c) (see standard output for more info)' endif enddo endif if(whichinput.eq.'SLHA')then if((np(Hneut).lt.0).or.(np(Hneut).gt.5))then write(*,*)'If a SLHA file is used as input,' write(*,*)'number of neutral Higgs must be in the range 0:5' stop 'error in subroutine check_number_of_particles (d) (see standard output for more info)' endif if((np(Hplus).lt.0).or.(np(Hplus).gt.1))then write(*,*)'If a SLHA file is used as input,' write(*,*)'number of charged Higgs must be in the range 0:1' stop 'error in subroutine check_number_of_particles (e) (see standard output for more info)' endif endif - end subroutine check_number_of_particles + end subroutine check_number_of_particles !************************************************************ subroutine check_whichanalyses - !************************************************************ + !************************************************************ use usefulbits, only : whichanalyses,inputmethod - + select case(whichanalyses) case('onlyL','onlyH','LandH','onlyP','list') case default if(inputmethod.eq.'datfile')call command_line_how2 - write(*,*)'Error: This value of "whichanalyses" is not allowed' + write(*,*)'Error: This value of "whichanalyses" is not allowed' write(*,*)'(you entered whichanalyses="'//trim(adjustl(whichanalyses))//'")' write(*,*)'Allowed values for "whichanalyses" are:' write(*,*)'onlyL only LEP results used' - write(*,*)'onlyH only hadronic colliders i.e. only Tevatron and LHC results used' + write(*,*)'onlyH only hadronic colliders i.e. only Tevatron and LHC results used' write(*,*)'LandH LEP, Tevatron and LHC results used' - write(*,*)'onlyP use all analyses with an arXiv number' - call flush(6) - stop 'error: experiment selected incorrectly (see standard output for more info)' + write(*,*)'onlyP use all analyses with an arXiv number' + call flush(6) + stop 'error: experiment selected incorrectly (see standard output for more info)' end select - end subroutine check_whichanalyses + end subroutine check_whichanalyses - !************************************************************ + !************************************************************ subroutine getshortcommandline(inf1,inf2) !************************************************************ ! used if inputmethod='datfile' - ! finds infile1 from command line - !************************************************************ - !nb iargc and getarg are non-standard + ! finds infile1 from command line + !************************************************************ + !nb iargc and getarg are non-standard implicit none !--------------------------------------input character(LEN=*) :: inf1 - character(LEN=*),optional :: inf2 + character(LEN=*),optional :: inf2 !-----------------------------------internal #ifndef NAGf90Fortran integer :: iargc #endif character(LEN=100) :: temp integer :: i integer :: number_args - !------------------------------------------- - - number_args = IARGC() - + !------------------------------------------- + + number_args = IARGC() + if(number_args.ne.nargs_datfile)then if(number_args.eq.(nargs_datfile+1)) then i=nargs_datfile temp="" call GETARG(i,temp) inf1 = "" inf1 = trim(temp) i=i+1 temp="" call GETARG(i,temp) if(present(inf2)) then inf2 = "" - inf2 = trim(temp) - endif + inf2 = trim(temp) + endif else stop "Incorrect number of parameters given (getshortcommandline)" - endif + endif else ! Read last argument into text string. - i=nargs_datfile + i=nargs_datfile temp="" call GETARG(i,temp) inf1 = "" inf1 = trim(temp) i=i+1 - - if(present(inf2)) then + + if(present(inf2)) then inf2=inf1 - endif + endif endif - + write(*,*)"------" write(*,*)"From command line:" - write(*,*)"prefix:",trim(inf1) + write(*,*)"prefix:",trim(inf1) write(*,*)"------" call flush(6) - end subroutine getshortcommandline - + end subroutine getshortcommandline + !**************************************************** function getfilelength(fileid) !**************************************************** ! calculates file length and checks for errors ! nb. files must end in a 'newline' character - !**************************************************** + !**************************************************** implicit none - !--------------------------------------input - integer fileid - !-----------------------------------function + !--------------------------------------input + integer fileid + !-----------------------------------function integer :: getfilelength - !-----------------------------------internal + !-----------------------------------internal integer :: n,ios,m character(LEN=5) :: filechar character(LEN=20) :: sample - !------------------------------------------- - - write(filechar,'(I5)')fileid + !------------------------------------------- + + write(filechar,'(I5)')fileid !this will count the number of lines in the file, including the last one, ! even if it doesn't end in a newline character - n = 0 + n = 0 do read(fileid,'(a)',iostat=ios) sample if(ios.lt.0)then exit elseif(ios.gt.0) then call file_name_msg(fileid) stop 'error in input file: see standard output' elseif(trim(adjustl(sample)).eq.'')then - write(*,*)'No blank lines allowed in input file.' + write(*,*)'No blank lines allowed in input file.' call file_name_msg(fileid) stop 'no blank lines allowed in input file: see standard output' endif - n = n + 1 - enddo + n = n + 1 + enddo getfilelength=n if(n.eq.0) return !stop 'File is empty' - + rewind(fileid) - m = 0 ; - do !this will count the number of lines which end in a newline character + m = 0 ; + do !this will count the number of lines which end in a newline character read(fileid,*,iostat=ios) - if(ios.lt.0) exit + if(ios.lt.0) exit m = m + 1 enddo rewind(fileid) if(m.ne.n)then !checking that every line end in a newline character call file_name_msg(fileid) stop 'Error: file needs to end with a newline character (see standard output for filename)' endif end function getfilelength !**************************************************** subroutine file_name_msg(fileid) !**************************************************** use usefulbits,only : infile1 implicit none integer, intent(in) :: fileid - write(*,*)'The problematic input file is called:' + write(*,*)'The problematic input file is called:' write(*,*)' '//trim(adjustl(infile1))//trim(adjustl(stem_array(fileid-f_orig)))//'.dat' call flush(6) end subroutine file_name_msg !**************************************************** function count_columns(fileid) !**************************************************** - ! calculateshow many columns of numbers there are in file + ! calculateshow many columns of numbers there are in file ! with the id 'fileid' ! max line length= 1000 characters - ! assumes objects in columns are separated by spaces + ! assumes objects in columns are separated by spaces ! and that first line has the same ! number of columns as the rest of the file !**************************************************** implicit none !--------------------------------------input integer, intent(in) :: fileid !-----------------------------------function integer :: count_columns !-----------------------------------internal integer :: n,x,a character(LEN=5000) :: teststr !------------------------------------------- n=0 read(fileid,'(a)')teststr ! reads first line into a string 'teststr' teststr=adjustl(teststr) ! shifts characters left so that first char is not a space - + a=1 do while (a.gt.0) !replace all tab characters with spaces a=INDEX(teststr,' ') teststr=teststr(:a-1)//' '//teststr(a+1:) enddo teststr=adjustl(teststr) ! shifts characters left so that first char is not a space - do while (trim(adjustl(teststr)).ne.'') !while teststr is not made of spaces - n=n+1 + do while (trim(adjustl(teststr)).ne.'') !while teststr is not made of spaces + n=n+1 x=INDEX(teststr,' ') !finds position of first space from left teststr=adjustl(teststr(x:)) !chops of everything left of the first space, then adjustl - enddo - - count_columns=n - - rewind(fileid) - - end function count_columns + enddo + + count_columns=n + + rewind(fileid) + + end function count_columns !******************************************************** subroutine test_input(n) ! prints out input (useful for testing) !******************************************************** use usefulbits, only : np, theo, g2, partR implicit none !--------------------------------------input integer :: n !-----------------------------------internal integer :: j, i !------------------------------------------- - write(*,*)'**************INPUT**************' + write(*,*)'**************INPUT**************' -#include "write_out_input.txt" +#include "write_out_input.txt" - write(*,*)'*********************************' - end subroutine test_input + write(*,*)'*********************************' + end subroutine test_input !***************************************************** function get_ncol(stem) - ! calculates how many columns HiggsBounds should expect + ! calculates how many columns HiggsBounds should expect ! to find in file stem//'.dat' use usefulbits, only : np,n_additional implicit none !--------------------------------------input character(LEN=50), intent(in) :: stem !-----------------------------------function integer :: get_ncol !-----------------------------------internal integer :: x !------------------------------------------- select case(trim(stem)) case('MH_GammaTot') x=2*np(Hneut) case('MHall_uncertainties') - x=np(Hneut)+np(Hplus) + x=np(Hneut)+np(Hplus) case('MHplus_GammaTot') x=2*np(Hplus) case('MC_GammaTot') x=2*np(Chiplus) case('MN_GammaTot') x=2*np(Chineut) case('BR_H_NP') !n.b.: extended by hk->hjhi (n^2(n-1)/2), hj->hiZ (n(n-1)), hj->emu, hj->etau, hj->mutau ! and hj->HpjW ! x=1*np(Hneut)+np(Hneut)*(np(Hneut)-1) x=4*np(Hneut) + np(Hneut)*(np(Hneut)-1) + np(Hneut)**2*(np(Hneut)-1)/2 + np(Hneut)*np(Hplus) case('BR_H_OP') !n.b.: added BR(Hj->tt). ! x=10*np(Hneut) - x=11*np(Hneut) - case('LEP_HZ_CS_ratios') + x=11*np(Hneut) + case('LEP_HZ_CS_ratios') x=1*np(Hneut) - case('LEP_H_ff_CS_ratios') + case('LEP_H_ff_CS_ratios') x=2*np(Hneut) case('LEP_2H_CS_ratios') - x= (np(Hneut)*(np(Hneut)+1))/2 - case('LEP_HpHm_CS_ratios') + x= (np(Hneut)*(np(Hneut)+1))/2 + case('LEP_HpHm_CS_ratios') x=1*np(Hplus) - case('LEP_CpCm_CS') + case('LEP_CpCm_CS') x=1*np(Chiplus) - case('LEP_2N_CS') - x=1*(np(Chineut)*(np(Chineut)+1))/2 + case('LEP_2N_CS') + x=1*(np(Chineut)*(np(Chineut)+1))/2 case('effC') -!n.b.: removed g2hjggZ +!n.b.: removed g2hjggZ ! x=18*np(Hneut) + (np(Hneut)*(np(Hneut)+1))/2 - x=17*np(Hneut) + (np(Hneut)*(np(Hneut)+1))/2 + x=17*np(Hneut) + (np(Hneut)*(np(Hneut)+1))/2 ! case('TEVLHC_H_0jet_partCS_ratios') ! x=2*np(Hneut) ! case('TEVLHC_H_1jet_partCS_ratios') ! x=1*np(Hneut) ! case('TEVLHC_HW_partCS_ratios') ! x=4*np(Hneut) ! case('TEVLHC_HZ_partCS_ratios') ! x=6*np(Hneut) ! case('TEV_H_vbf_hadCS_ratios') ! x=1*np(Hneut) ! case('TEV_H_tt_hadCS_ratios') -! x=1*np(Hneut) - case('TEV_1H_hadCS_ratios') -!n.b.: extended by gg->hj,hjbb,thj(t-channel),thj(s-channel) +! x=1*np(Hneut) + case('TEV_1H_hadCS_ratios') +!n.b.: extended by gg->hj,hjbb,thj(t-channel),thj(s-channel) ! x=6*np(Hneut) x=9*np(Hneut) ! case('LHC7_H_vbf_hadCS_ratios') ! x=1*np(Hneut) ! case('LHC7_H_tt_hadCS_ratios') -! x=1*np(Hneut) - case('LHC7_1H_hadCS_ratios') +! x=1*np(Hneut) + case('LHC7_1H_hadCS_ratios') x=9*np(Hneut) ! case('LHC8_H_vbf_hadCS_ratios') ! x=1*np(Hneut) ! case('LHC8_H_tt_hadCS_ratios') -! x=1*np(Hneut) - case('LHC8_1H_hadCS_ratios') +! x=1*np(Hneut) + case('LHC8_1H_hadCS_ratios') x=9*np(Hneut) - case('LHC13_1H_hadCS_ratios') + case('LHC13_1H_hadCS_ratios') x=9*np(Hneut) case('TEV_Hplus_hadCS') x=9*np(Hplus)+np(Hplus)*np(Hneut) case('LHC7_Hplus_hadCS') x=9*np(Hplus)+np(Hplus)*np(Hneut) case('LHC8_Hplus_hadCS') x=9*np(Hplus)+np(Hplus)*np(Hneut) case('LHC13_Hplus_hadCS') - x=9*np(Hplus)+np(Hplus)*np(Hneut) + x=9*np(Hplus)+np(Hplus)*np(Hneut) case('BR_t') x=1+np(Hplus) case('BR_Hplus') -!n.b.: extended by Hpj->tb, Hpj->WZ, Hpj->hiW +!n.b.: extended by Hpj->tb, Hpj->WZ, Hpj->hiW ! x=3*np(Hplus) x=5*np(Hplus) + np(Hplus)*np(Hneut) case('BR_C') x=3*np(Chiplus)*np(Chineut) case('BR_N') x=2*np(Chineut)*(np(Chineut)-1) case('CP_values') x=1*np(Hneut) - case('additional') - x=n_additional - case default + case('additional') + x=n_additional + case default write(*,*)'stem=',stem call flush(6) stop 'error in function get_ncol' end select ! each file has the line number as the first column get_ncol= x + 1 end function get_ncol !************************************************************ end module input !**************************************************** Index: trunk/HiggsBounds-5/S95tables.f90 =================================================================== --- trunk/HiggsBounds-5/S95tables.f90 (revision 597) +++ trunk/HiggsBounds-5/S95tables.f90 (revision 598) @@ -1,5295 +1,5295 @@ ! This file is part of HiggsBounds ! -KW !****************************************************************** module S95tables -!****************************************************************** - use S95tables_type1 - use S95tables_type2 +!****************************************************************** + use S95tables_type1 + use S95tables_type2 use usefulbits, only: Hneut,Hplus implicit none - private + private public :: & & S95_t1,S95_t2, & & setup_S95tables,deallocate_S95tables, & & calcfact,outputproc, & & check_against_bound, & & convolve_chisq_with_gaussian, & & S95_t1_or_S95_t2_idfromelementnumber, & & f_from_t2,f_from_t3,f_from_slices_t2, & & WhichColliderString,get_collider_element_number, & & inrange, deallocate_Exptranges - + integer :: ntable1,ntable2 !----------------------------------------------------------------------------------- ! delta_M*_* determine how close in mass particles should be before their masses are combined ! nb. delta*_* is only used for tables of type 1 at the moment ! for some analyses, S95_t1(x)%deltax has already been set in S95tables_type1.f90 ! for analyses where S95_t1(x)%deltax is *not* has already set: - ! we set + ! we set ! LEP neutral Higgs tables to have deltax=delta_Mh_LEP ! Tevatron neutral Higgs tables to have deltax=delta_Mh_TEV ! LHC neutral Higgs tables to have deltax=delta_Mh_LHC ! LEP charged Higgs tables to have deltax=delta_Mhplus_LEP ! Tevatron charged Higgs tables to have deltax=delta_Mhplus_TEV ! LHC charged Higgs tables to have deltax=delta_Mhplus_LHC ! other LEP tables to have deltax=delta_M_LEP_default ! other Tevatron tables to have deltax=delta_M_TEV_default ! other LHC tables to have deltax=delta_M_LHC_default ! setting delta_M*_LHC and/or delta_M*_TEV and/or delta_M*_LEP to zero turns this feature off ! DO NOT CHANGE THESE VALUES BEFORE READING THE MANUAL - ! even when it is appropriate to add the cross sections, we would recommend using + ! even when it is appropriate to add the cross sections, we would recommend using ! delta_Mh_LEP<=2.0D0, delta_Mh_TEV<=10.0, delta_Mh_LHC<=10.0 - double precision, parameter :: delta_Mh_LEP=0.0D0 - double precision, parameter :: delta_Mh_TEV=10.0D0 - double precision, parameter :: delta_Mh_LHC=10.0D0 - double precision, parameter :: delta_Mhplus_LEP=0.0D0 - double precision, parameter :: delta_Mhplus_TEV=0.0D0 - double precision, parameter :: delta_Mhplus_LHC=0.0D0 - double precision, parameter :: delta_M_LEP_default=0.0D0 !where delta_M_LEP/TEV/LHC is not specified + double precision, parameter :: delta_Mh_LEP=0.0D0 + double precision, parameter :: delta_Mh_TEV=10.0D0 + double precision, parameter :: delta_Mh_LHC=10.0D0 + double precision, parameter :: delta_Mhplus_LEP=0.0D0 + double precision, parameter :: delta_Mhplus_TEV=0.0D0 + double precision, parameter :: delta_Mhplus_LHC=0.0D0 + double precision, parameter :: delta_M_LEP_default=0.0D0 !where delta_M_LEP/TEV/LHC is not specified double precision, parameter :: delta_M_TEV_default=0.0D0 !these values will be used double precision, parameter :: delta_M_LHC_default=0.0D0 ! - !double precision, parameter :: delta_Mh_LEP=15.0D0 !crazy values - for debugging only + !double precision, parameter :: delta_Mh_LEP=15.0D0 !crazy values - for debugging only !double precision, parameter :: delta_Mh_TEV=15.0D0 !crazy(ish) values - for debugging only !double precision, parameter :: delta_Mh_LHC=15.0D0 !crazy(ish) values - for debugging only !----------------------------------------------------------------------------------- ! Use the SM expected channel contributions to weight the channels in the likeness test logical :: use_weight = .True. - ! eps determines how strict the Standard Model test is + ! eps determines how strict the Standard Model test is double precision, parameter :: eps=2.0D-2 !double precision, parameter :: eps=1.0D3 !crazy value - for debugging only !----------------------------------------------------------------------------------- - !table type 1----------------------------- + !table type 1----------------------------- type(table1),allocatable :: S95_t1(:) !------------------------------------------ - + !table type 2------------------------------ - type(table2),allocatable :: S95_t2(:) - !------------------------------------------ + type(table2),allocatable :: S95_t2(:) + !------------------------------------------ character(LEN=5),parameter :: colliders(5) = (/'LEP ','TEV ','LHC7 ','LHC8 ','LHC13'/) - !------------------------------------------- - double precision, allocatable :: Exptrange_Mhmin_forSMdecays(:), Exptrange_Mhmax_forSMdecays(:) + !------------------------------------------- + double precision, allocatable :: Exptrange_Mhmin_forSMdecays(:), Exptrange_Mhmax_forSMdecays(:) double precision, allocatable :: Exptrange_Mhmin_forSMXS(:), Exptrange_Mhmax_forSMXS(:) contains !********************************************************** subroutine setup_S95tables - ! Allocates and calls subroutines to fill S95_t1, S95_t2 + ! Allocates and calls subroutines to fill S95_t1, S95_t2 ! (which store the experimental data) ! Sets delta_M_TEV,delta_M_LEP,delta_M_LHC which govern how close Higgs ! need to be in mass before HiggsBounds combines their cross sections !********************************************************** use usefulbits, only : debug,np,not_a_particle - use theory_BRfunctions, only : BRSMt1Mhmax,BRSMt1Mhmin + use theory_BRfunctions, only : BRSMt1Mhmax,BRSMt1Mhmin use theory_XS_SM_functions, only : tevXS_SM_functions_xmin, tevXS_SM_functions_xmax, & & lhc7XS_SM_functions_xmin,lhc7XS_SM_functions_xmax, & & lhc8XS_SM_functions_xmin,lhc8XS_SM_functions_xmax, & - & lhc13XS_SM_functions_xmin,lhc13XS_SM_functions_xmax - - implicit none - !-----------------------------------internal + & lhc13XS_SM_functions_xmin,lhc13XS_SM_functions_xmax + + implicit none + !-----------------------------------internal integer :: i,c double precision, allocatable :: max_expt_delta_Mh(:) double precision, allocatable :: Expttables_Mhmin_forSMXS(:),Expttables_Mhmax_forSMXS(:) double precision, allocatable :: Expttables_Mhmin_forSMdecays(:),Expttables_Mhmax_forSMdecays(:) - double precision, allocatable :: delta_x_default(:,:) + double precision, allocatable :: delta_x_default(:,:) ! these numbers have to be changed appropriately every time a table is added - ! or taken away: + ! or taken away: ntable1=204 ntable2=39 ! table type 2 involves 2 variables - + allocate(S95_t1(ntable1)) - allocate(S95_t2(ntable2)) + allocate(S95_t2(ntable2)) call initializetables_type1_blank(S95_t1) call initializetables_type2_blank(S95_t2) call initializetables1(S95_t1) - call initializetables2(S95_t2) + call initializetables2(S95_t2) + - allocate( Expttables_Mhmin_forSMXS( size(colliders,dim=1) ) ) allocate( Expttables_Mhmax_forSMXS( size(colliders,dim=1) ) ) - allocate( Exptrange_Mhmin_forSMXS( size(colliders,dim=1) ) ) + allocate( Exptrange_Mhmin_forSMXS( size(colliders,dim=1) ) ) allocate( Exptrange_Mhmax_forSMXS( size(colliders,dim=1) ) ) allocate( Expttables_Mhmin_forSMdecays( size(colliders,dim=1) ) ) allocate( Expttables_Mhmax_forSMdecays( size(colliders,dim=1) ) ) - allocate( Exptrange_Mhmin_forSMdecays( size(colliders,dim=1) ) ) + allocate( Exptrange_Mhmin_forSMdecays( size(colliders,dim=1) ) ) allocate( Exptrange_Mhmax_forSMdecays( size(colliders,dim=1) ) ) allocate( max_expt_delta_Mh( size(colliders,dim=1) ) ) ! will pick up on any typos in S95_t1%expt do i=lbound(S95_t1,dim=1),ubound(S95_t1,dim=1) if(WhichColliderElement(S95_t1(i)%expt, S95_t1(i)%energy).eq.0)then write(*,*)'~'//trim(adjustl(S95_t1(i)%expt))//'~ is not a valid experiment name' stop 'error in setup_S95tables (a)' endif enddo ! will pick up on any typos in S95_t2%expt do i=lbound(S95_t2,dim=1),ubound(S95_t2,dim=1) if(WhichColliderElement(S95_t2(i)%expt, S95_t2(i)%energy).eq.0)then write(*,*)'~'//trim(adjustl(S95_t2(i)%expt))//'~ is not a valid experiment name' stop 'error in setup_S95tables (b)' endif - enddo + enddo ! checks that none of the id's are repeated in S95_t1 do i=lbound(S95_t1,dim=1),ubound(S95_t1,dim=1) if( count(S95_t1%id.eq.S95_t1(i)%id) & +count(S95_t2%id.eq.S95_t1(i)%id).ne.1)then write(*,*)'the id',S95_t1(i)%id,'is repeated' stop 'error in setup_S95tables (c1)' endif - enddo - + enddo + ! checks that none of the id's are repeated in S95_t2 do i=lbound(S95_t2,dim=1),ubound(S95_t2,dim=1) if( count(S95_t1%id.eq.S95_t2(i)%id)& +count(S95_t2%id.eq.S95_t2(i)%id).ne.1)then write(*,*)'the id',S95_t2(i)%id,'is repeated' stop 'error in setup_S95tables (c2)' endif - enddo + enddo !check to make sure that S95_t1(i)%particle_x are all particles do i=lbound(S95_t1,dim=1),ubound(S95_t1,dim=1) if(S95_t1(i)%particle_x.eq.not_a_particle)then write(*,*)S95_t1(i)%id,'particle_x=not_a_particle.' - stop 'error in setup_S95tables (d1)' + stop 'error in setup_S95tables (d1)' endif enddo !check to make sure that S95_t2(i)%particle_x2 are all particles do i=lbound(S95_t2,dim=1),ubound(S95_t2,dim=1) if(S95_t2(i)%particle_x2.eq.not_a_particle)then write(*,*)S95_t2(i)%id,'particle_x2=not_a_particle.' - stop 'error in setup_S95tables (d2)' + stop 'error in setup_S95tables (d2)' endif enddo - + ! looks for the min and max values of Mh (neutral Higgs) in each type of tables - ! will be used in input.f90 to work out which SM para need to be calculated - + ! will be used in input.f90 to work out which SM para need to be calculated + ! initial (impossible) values Expttables_Mhmin_forSMXS=1.0D6 Expttables_Mhmax_forSMXS=0.0D0 do i=lbound(S95_t1,dim=1),ubound(S95_t1,dim=1) if(S95_t1(i)%particle_x.eq.Hneut)then do c=1,ubound(colliders,dim=1) if(WhichColliderElement(S95_t1(i)%expt, S95_t1(i)%energy).eq.c)then if(S95_t1(i)%xmax.gt.Expttables_Mhmax_forSMXS(c))Expttables_Mhmax_forSMXS(c)=S95_t1(i)%xmax - if(S95_t1(i)%xmin.lt.Expttables_Mhmin_forSMXS(c))Expttables_Mhmin_forSMXS(c)=S95_t1(i)%xmin - endif + if(S95_t1(i)%xmin.lt.Expttables_Mhmin_forSMXS(c))Expttables_Mhmin_forSMXS(c)=S95_t1(i)%xmin + endif enddo endif - enddo + enddo do i=lbound(S95_t2,dim=1),ubound(S95_t2,dim=1) if(S95_t2(i)%particle_x2.eq.Hneut)then do c=1,ubound(colliders,dim=1) if(WhichColliderElement(S95_t2(i)%expt, S95_t2(i)%energy).eq.c)then if(S95_t2(i)%xmax2.gt.Expttables_Mhmax_forSMdecays(c))Expttables_Mhmax_forSMdecays(c)=S95_t2(i)%xmax2 - if(S95_t2(i)%xmin2.lt.Expttables_Mhmin_forSMdecays(c))Expttables_Mhmin_forSMdecays(c)=S95_t2(i)%xmin2 + if(S95_t2(i)%xmin2.lt.Expttables_Mhmin_forSMdecays(c))Expttables_Mhmin_forSMdecays(c)=S95_t2(i)%xmin2 endif enddo endif - enddo + enddo Expttables_Mhmin_forSMdecays=Expttables_Mhmin_forSMXS Expttables_Mhmax_forSMdecays=Expttables_Mhmax_forSMXS do i=lbound(S95_t2,dim=1),ubound(S95_t2,dim=1) if(S95_t2(i)%particle_x1.eq.Hneut)then do c=1,ubound(colliders,dim=1) if(WhichColliderElement(S95_t2(i)%expt, S95_t2(i)%energy).eq.c)then - if(S95_t2(i)%xmax1.gt.Expttables_Mhmax_forSMdecays(c))Expttables_Mhmax_forSMdecays(c)=S95_t2(i)%xmax1 - if(S95_t2(i)%xmin1.lt.Expttables_Mhmin_forSMdecays(c))Expttables_Mhmin_forSMdecays(c)=S95_t2(i)%xmin1 + if(S95_t2(i)%xmax1.gt.Expttables_Mhmax_forSMdecays(c))Expttables_Mhmax_forSMdecays(c)=S95_t2(i)%xmax1 + if(S95_t2(i)%xmin1.lt.Expttables_Mhmin_forSMdecays(c))Expttables_Mhmin_forSMdecays(c)=S95_t2(i)%xmin1 ! Needs_M2_gt_2M1 is true only for processes involving hj->hihi. ! Therefore, SM production cross sections will not be needed for hi. if(.not.S95_t2(i)%needs_M2_gt_2M1)then if(S95_t2(i)%xmax1.gt.Expttables_Mhmax_forSMXS(c))Expttables_Mhmax_forSMXS(c)=S95_t2(i)%xmax1 - if(S95_t2(i)%xmin1.lt.Expttables_Mhmin_forSMXS(c))Expttables_Mhmin_forSMXS(c)=S95_t2(i)%xmin1 + if(S95_t2(i)%xmin1.lt.Expttables_Mhmin_forSMXS(c))Expttables_Mhmin_forSMXS(c)=S95_t2(i)%xmin1 else if(S95_t2(i)%xmax2.gt.Expttables_Mhmax_forSMXS(c))Expttables_Mhmax_forSMXS(c)=S95_t2(i)%xmax2 - if(S95_t2(i)%xmin2.lt.Expttables_Mhmin_forSMXS(c))Expttables_Mhmin_forSMXS(c)=S95_t2(i)%xmin2 - endif - endif + if(S95_t2(i)%xmin2.lt.Expttables_Mhmin_forSMXS(c))Expttables_Mhmin_forSMXS(c)=S95_t2(i)%xmin2 + endif + endif enddo endif - enddo + enddo ! now we set delta_x if(delta_M_LEP_default.gt.2.1d0) write(*,*)'WARNING: delta_M_LEP_default.gt.2.1d0' if(delta_M_TEV_default.gt.10.1d0)write(*,*)'WARNING: delta_M_TEV_default.gt.10.1d0' if(delta_M_LHC_default.gt.10.1d0)write(*,*)'WARNING: delta_M_LHC_default.gt.10.1d0' if(delta_Mh_LEP .gt.2.1d0) write(*,*)'WARNING: delta_Mh_LEP.gt.2.1d0' if(delta_Mh_TEV .gt.10.1d0)write(*,*)'WARNING: delta_Mh_TEV.gt.10.1d0' if(delta_Mh_LHC .gt.10.1d0)write(*,*)'WARNING: delta_Mh_LHC.gt.10.1d0' if(delta_Mhplus_LEP .gt.2.1d0) write(*,*)'WARNING: delta_Mhplus_LEP.gt.2.1d0' if(delta_Mhplus_TEV .gt.10.1d0)write(*,*)'WARNING: delta_Mhplus_TEV.gt.10.1d0' if(delta_Mhplus_LHC .gt.10.1d0)write(*,*)'WARNING: delta_Mhplus_LHC.gt.10.1d0' allocate( delta_x_default(size(np,dim=1),size(colliders,dim=1)) ) ! fill delta_x_default do c=1,ubound(colliders,dim=1) if(c.eq.get_collider_element_number('LEP '))then ! for some reason, gfortran didn't like having a case statement here delta_x_default(:,c) =delta_M_LEP_default delta_x_default(Hneut,c)=delta_Mh_LEP delta_x_default(Hplus,c)=delta_Mhplus_LEP elseif(c.eq.get_collider_element_number('TEV '))then delta_x_default(:,c) =delta_M_TEV_default delta_x_default(Hneut,c)=delta_Mh_TEV delta_x_default(Hplus,c)=delta_Mhplus_TEV elseif(c.eq.get_collider_element_number('LHC7 '))then delta_x_default(:,c) =delta_M_LHC_default delta_x_default(Hneut,c)=delta_Mh_LHC delta_x_default(Hplus,c)=delta_Mhplus_LHC elseif(c.eq.get_collider_element_number('LHC8 '))then delta_x_default(:,c) =delta_M_LHC_default delta_x_default(Hneut,c)=delta_Mh_LHC delta_x_default(Hplus,c)=delta_Mhplus_LHC elseif(c.eq.get_collider_element_number('LHC13'))then delta_x_default(:,c) =delta_M_LHC_default delta_x_default(Hneut,c)=delta_Mh_LHC delta_x_default(Hplus,c)=delta_Mhplus_LHC else stop 'error in subroutine setup_S95tables' endif enddo do i=lbound(S95_t1,dim=1),ubound(S95_t1,dim=1) if(S95_t1(i)%deltax.lt.-0.5D0)then !i.e. deltax has not been set yet - S95_t1(i)%deltax = delta_x_default(S95_t1(i)%particle_x,WhichColliderElement(S95_t1(i)%expt, S95_t1(i)%energy)) + S95_t1(i)%deltax = delta_x_default(S95_t1(i)%particle_x,WhichColliderElement(S95_t1(i)%expt, S95_t1(i)%energy)) endif enddo - + do i=lbound(S95_t2,dim=1),ubound(S95_t2,dim=1) if(S95_t2(i)%deltax.lt.-0.5D0)then !i.e. deltax has not been set yet - S95_t2(i)%deltax = delta_x_default(S95_t2(i)%particle_x2,WhichColliderElement(S95_t2(i)%expt, S95_t2(i)%energy)) + S95_t2(i)%deltax = delta_x_default(S95_t2(i)%particle_x2,WhichColliderElement(S95_t2(i)%expt, S95_t2(i)%energy)) endif - enddo - + enddo + ! finds the maximum delta_Mh for the each set of tables ! will be used in theo_SM.f90 to work out which SM para need to be calculated max_expt_delta_Mh= -1.0D0 do i=lbound(S95_t1,dim=1),ubound(S95_t1,dim=1) do c=1,ubound(colliders,dim=1) if(WhichColliderElement(S95_t1(i)%expt, S95_t1(i)%energy).eq.c)then if( S95_t1(i)%particle_x.eq.Hneut)then if(S95_t1(i)%deltax .gt.max_expt_delta_Mh(c))then max_expt_delta_Mh(c)=S95_t1(i)%deltax - endif + endif endif endif enddo - enddo + enddo do i=lbound(S95_t2,dim=1),ubound(S95_t2,dim=1) do c=1,ubound(colliders,dim=1) if(WhichColliderElement(S95_t2(i)%expt, S95_t2(i)%energy).eq.c)then if( S95_t2(i)%particle_x2.eq.Hneut)then !note, this means only cross sections for different particle_x2 will be combined if(S95_t2(i)%deltax .gt.max_expt_delta_Mh(c))then max_expt_delta_Mh(c)=S95_t2(i)%deltax - endif + endif endif endif enddo enddo - + if(debug)write(*,*)'max_expt_delta_Mh',max_expt_delta_Mh ! Exptrange_Mhmin_forSMXS = max(Expttables_Mhmin_forSMXS - max_expt_delta_Mh,0.0D0) ! Exptrange_Mhmax_forSMXS = Expttables_Mhmax_forSMXS + max_expt_delta_Mh -! +! ! Exptrange_Mhmin_forSMdecays = max(Expttables_Mhmin_forSMdecays - max_expt_delta_Mh,0.0D0) ! Exptrange_Mhmax_forSMdecays = Expttables_Mhmax_forSMdecays + max_expt_delta_Mh Exptrange_Mhmin_forSMXS = max(Expttables_Mhmin_forSMXS,0.0D0) Exptrange_Mhmax_forSMXS = Expttables_Mhmax_forSMXS Exptrange_Mhmin_forSMdecays = max(Expttables_Mhmin_forSMdecays,0.0D0) Exptrange_Mhmax_forSMdecays = Expttables_Mhmax_forSMdecays !we need tevXS_SM_functions to have a big enough range to cover the tables if(Exptrange_Mhmax_forSMXS(get_collider_element_number('TEV ')).gt.tevXS_SM_functions_xmax)then stop 'need to extend upper range of tevXS_SM_functions or reduce delta_M_TEV' endif if(Exptrange_Mhmin_forSMXS(get_collider_element_number('TEV ')).lt.tevXS_SM_functions_xmin)then write(*,*)Exptrange_Mhmin_forSMXS(get_collider_element_number('TEV ')),tevXS_SM_functions_xmin ! TS 24/03/2017: Commented out the following (because some new analyses for low mass Higgses ! do not need these functions (decay from heavier Higgs) ! stop 'need to extend lower range of tevXS_SM_functions' endif !we need lhc7XS_SM_functions to have a big enough range to cover the tables if(Exptrange_Mhmax_forSMXS(get_collider_element_number('LHC7 ')).gt.lhc7XS_SM_functions_xmax)then stop 'need to extend upper range of lhc7XS_SM_functions or reduce delta_M_LHC' endif if(Exptrange_Mhmin_forSMXS(get_collider_element_number('LHC7 ')).lt.lhc7XS_SM_functions_xmin)then ! TS 24/03/2017: Commented out the following (because some new analyses for low mass Higgses ! do not need these functions (decay from heavier Higgs) ! stop 'need to extend lower range of lhc7XS_SM_functions' endif !we need lhc8XS_SM_functions to have a big enough range to cover the tables if(Exptrange_Mhmax_forSMXS(get_collider_element_number('LHC8 ')).gt.lhc8XS_SM_functions_xmax)then stop 'need to extend upper range of lhc8XS_SM_functions or reduce delta_M_LHC' endif if(Exptrange_Mhmin_forSMXS(get_collider_element_number('LHC8 ')).lt.lhc8XS_SM_functions_xmin)then ! write(*,*) Exptrange_Mhmin_forSMXS(get_collider_element_number('LHC8 ')) ! TS 24/03/2017: Commented out the following (because some new analyses for low mass Higgses ! do not need these functions (decay from heavier Higgs) ! stop 'need to extend lower range of lhc8XS_SM_functions' endif !we need lhc8XS_SM_functions to have a big enough range to cover the tables if(Exptrange_Mhmax_forSMXS(get_collider_element_number('LHC13')).gt.lhc13XS_SM_functions_xmax)then stop 'need to extend upper range of lhc13XS_SM_functions or reduce delta_M_LHC' endif if(Exptrange_Mhmin_forSMXS(get_collider_element_number('LHC13')).lt.lhc13XS_SM_functions_xmin)then write(*,*) Exptrange_Mhmin_forSMXS(get_collider_element_number('LHC13')) ! TS 24/03/2017: Commented out the following (because some new analyses for low mass Higgses ! do not need these functions (decay from heavier Higgs) ! stop 'need to extend lower range of lhc13XS_SM_functions' endif - + ! we need the branching ratios for all the colliders if( maxval(Exptrange_Mhmax_forSMdecays).gt.BRSMt1Mhmax)then ! write(*,*) "hello : ", BRSMt1Mhmax, maxval(Exptrange_Mhmax_forSMdecays) stop 'need to extend upper range of BRfunctions or reduce delta_M_(LEP/TEV)' elseif(minval(Exptrange_Mhmin_forSMdecays).lt.BRSMt1Mhmin)then write(*,*)'hello',minval(Exptrange_Mhmin_forSMdecays),BRSMt1Mhmin stop 'need to extend lower range of BRfunctions' endif deallocate(Expttables_Mhmin_forSMXS) deallocate(Expttables_Mhmax_forSMXS) deallocate(Expttables_Mhmin_forSMdecays) deallocate(Expttables_Mhmax_forSMdecays) deallocate(max_expt_delta_Mh) deallocate(delta_x_default) - end subroutine setup_S95tables - !********************************************************** + end subroutine setup_S95tables + !********************************************************** function inrange(mass,str) ! mass is the neutral Higgs mass to be checked ! str indicates which range it should be checked against: ! str should be either 'SMBR' or one of the elements of the array 'colliders' ! ! The function returns .True. if the mass is in the appropriate range. - ! If str='SMBR', this range is + ! If str='SMBR', this range is ! minval(Exptrange_Mhmin_forSMdecays) to maxval(Exptrange_Mhmax_forSMdecays) - ! otherwise this range is + ! otherwise this range is ! Exptrange_Mhmin_forSMXS(x) to Exptrange_Mhmax_forSMXS(x) ! where x is the element of the array 'colliders' character(len=*),intent(in) :: str double precision,intent(in) :: mass logical :: inrange integer :: x, i - - !-TS(05/07/2012) Added a check whether the ranges are allocated (which happens in + + !-TS(05/07/2012) Added a check whether the ranges are allocated (which happens in !-subroutine setup_S95tables. If not, they are allocated and given default values. - !-This is needed for HiggsSignals. + !-This is needed for HiggsSignals. if(.not.allocated(Exptrange_Mhmin_forSMXS)) then allocate(Exptrange_Mhmin_forSMXS(size(colliders,dim=1))) allocate(Exptrange_Mhmax_forSMXS(size(colliders,dim=1))) do i=1, size(colliders) if(i.eq.get_collider_element_number('LEP ')) then Exptrange_Mhmin_forSMXS(i)=1.0D0 Exptrange_Mhmax_forSMXS(i)=180.0D0 else if(i.eq.get_collider_element_number('TEV ')) then Exptrange_Mhmin_forSMXS(i)=80.0D0 Exptrange_Mhmax_forSMXS(i)=350.0D0 else if(i.eq.get_collider_element_number('LHC7 ')) then Exptrange_Mhmin_forSMXS(i)=90.0D0 Exptrange_Mhmax_forSMXS(i)=1000.0D0 else if(i.eq.get_collider_element_number('LHC8 ')) then Exptrange_Mhmin_forSMXS(i)=90.0D0 Exptrange_Mhmax_forSMXS(i)=1000.0D0 else if(i.eq.get_collider_element_number('LHC13')) then Exptrange_Mhmin_forSMXS(i)=90.0D0 Exptrange_Mhmax_forSMXS(i)=3000.0D0 else stop 'Error in subroutine inrange. str for XS unknown.' endif - enddo - endif - + enddo + endif + if(.not.allocated(Exptrange_Mhmin_forSMdecays)) then - allocate( Exptrange_Mhmin_forSMdecays(size(colliders,dim=1))) + allocate( Exptrange_Mhmin_forSMdecays(size(colliders,dim=1))) allocate( Exptrange_Mhmax_forSMdecays(size(colliders,dim=1))) do i=1, size(colliders) if(i.eq.get_collider_element_number('LEP ')) then Exptrange_Mhmin_forSMdecays(i)=1.0D0 Exptrange_Mhmax_forSMdecays(i)=180.0D0 else if(i.eq.get_collider_element_number('TEV ')) then Exptrange_Mhmin_forSMdecays(i)=0.2D0 Exptrange_Mhmax_forSMdecays(i)=350.0D0 else if(i.eq.get_collider_element_number('LHC7 ')) then Exptrange_Mhmin_forSMdecays(i)=90.0D0 Exptrange_Mhmax_forSMdecays(i)=1000.0D0 else if(i.eq.get_collider_element_number('LHC8 ')) then Exptrange_Mhmin_forSMdecays(i)=90.0D0 Exptrange_Mhmax_forSMdecays(i)=1000.0D0 else if(i.eq.get_collider_element_number('LHC13')) then Exptrange_Mhmin_forSMdecays(i)=90.0D0 Exptrange_Mhmax_forSMdecays(i)=1000.0D0 else stop 'Error in subroutine inrange. str for decay unknown.' endif - enddo + enddo endif - - if(str.eq.'SMBR')then + + if(str.eq.'SMBR')then if( (mass.gt.minval(Exptrange_Mhmin_forSMdecays)) & .and.(mass.lt.maxval(Exptrange_Mhmax_forSMdecays)) )then inrange=.True. else inrange=.False. - endif + endif else x=get_collider_element_number(str) - + ! write(*,*) 'debugging inrange:' ! write(*,*) x, mass, Exptrange_Mhmin_forSMXS(x), Exptrange_Mhmax_forSMXS(x) - + if( (mass.gt.Exptrange_Mhmin_forSMXS(x)) & .and.(mass.lt.Exptrange_Mhmax_forSMXS(x)) )then inrange=.True. else inrange=.False. endif endif - end function inrange + end function inrange !********************************************************** function get_collider_element_number(collidername) ! this will return the position of the element with the value 'collidername' in the array 'colliders' !********************************************************** character(len=*),intent(in) :: collidername integer :: x,y integer :: get_collider_element_number y=0 - + ! print *, collidername - + do x=lbound(colliders,dim=1),ubound(colliders,dim=1) if(index(colliders(x),collidername).gt.0)then get_collider_element_number=x y=y+1 endif enddo if(y.ne.1)stop 'problem in function get_collider_element_number' end function get_collider_element_number - !****************************************************************** + !****************************************************************** function WhichColliderElement(expt,energy) ! this will return the position of the element corresponding to 'expt' in the array 'colliders' - !****************************************************************** + !****************************************************************** use usefulbits, only : small - character(LEN=3),intent(in) :: expt + character(LEN=3),intent(in) :: expt integer :: WhichColliderElement double precision :: energy - if( expt.eq.'LEP' )then + if( expt.eq.'LEP' )then WhichColliderElement=get_collider_element_number('LEP ') - elseif( (expt.eq.'CDF').or.(expt.eq.' D0').or.(expt.eq.'TCB') )then + elseif( (expt.eq.'CDF').or.(expt.eq.' D0').or.(expt.eq.'TCB') )then WhichColliderElement=get_collider_element_number('TEV ') - elseif( (expt.eq.'ATL').or.(expt.eq.'CMS') )then + elseif( (expt.eq.'ATL').or.(expt.eq.'CMS') )then if(energy-7.0D0.le.small) then WhichColliderElement=get_collider_element_number('LHC7 ') else if(energy-8.0D0.le.small) then WhichColliderElement=get_collider_element_number('LHC8 ') else if(energy-13.0D0.le.small) then - WhichColliderElement=get_collider_element_number('LHC13') + WhichColliderElement=get_collider_element_number('LHC13') else stop 'WhichColliderElement: Collider Energy not correctly specified.' - endif + endif else WhichColliderElement=0 endif end function WhichColliderElement - !****************************************************************** + !****************************************************************** function WhichColliderString(expt, energy) ! this will return the contents of the element corresponding to 'expt' in the array 'colliders' - !****************************************************************** - character(LEN=3),intent(in) :: expt + !****************************************************************** + character(LEN=3),intent(in) :: expt character(LEN=5) :: WhichColliderString double precision :: energy ! write(*,*) 'WhichColliderString = ',colliders(WhichColliderElement(expt, energy)) WhichColliderString=colliders(WhichColliderElement(expt, energy)) end function WhichColliderString - !****************************************************************** + !****************************************************************** subroutine calcfact(proc,t,cfact,axis_i,axis_j,nc) !****************************************************************** !for table type1, calls calcfact_t1 !for table type2, calls calcfact_t2 - !****************************************************************** + !****************************************************************** use usefulbits, only : dataset,listprocesses !internal - implicit none + implicit none !--------------------------------------input - type(dataset) :: t + type(dataset) :: t type(listprocesses) :: proc !-----------------------------------output double precision :: cfact,axis_j,axis_i integer :: nc - !------------------------------------------- + !------------------------------------------- - select case(proc%ttype) + select case(proc%ttype) case(1) call calcfact_t1(proc%tlist,proc%findj,t,cfact,axis_i,nc) axis_j=axis_i - case(2) + case(2) call calcfact_t2(proc%tlist,proc%findj,proc%findi,t,cfact,axis_i,axis_j,nc) case default -! ### OS ### +! ### OS ### cfact = -1D0 return stop 'wrong input to function calcfact in module channels' - end select + end select end subroutine calcfact !****************************************************************** subroutine outputproc(proc,k,descrip,specific) !****************************************************************** !for table type1, calls outputproc_t1 !for table type2, calls outputproc_t2 !if neither table applies, writes message !k is where output goes - !specific=1 if the specific process should be printed + !specific=1 if the specific process should be printed !e.g. ee->h1Z->bbZ !whereas specific==0 if the generic process should be printed - !e.g. ee->hiZ->bbZ - !****************************************************************** + !e.g. ee->hiZ->bbZ + !****************************************************************** use usefulbits, only : listprocesses !input - use likelihoods, only : outputproc_llh + use likelihoods, only : outputproc_llh implicit none !--------------------------------------input integer,intent(in) :: k,specific integer :: i,j type(listprocesses),intent(in) :: proc - character(LEN=200):: descrip - !------------------------------------------- + character(LEN=200):: descrip + !------------------------------------------- select case(specific) case(0) i=0 j=0 case(1) i=proc%findi j=proc%findj case default end select select case(proc%ttype) case(0) descrip='none of the processes apply' case(1) call outputproc_t1(proc%tlist,i,k,descrip) case(2) - call outputproc_t2(proc%tlist,i,j,k,descrip) + call outputproc_t2(proc%tlist,i,j,k,descrip) case(9) - call outputproc_llh(proc,k,descrip) + call outputproc_llh(proc,k,descrip) case default - + stop 'wrong input to subroutine outputproc in module channels' - end select - - end subroutine outputproc + end select - !****************************************************************** + end subroutine outputproc + + !****************************************************************** subroutine check_against_bound(proc,fact,axis_i,axis_j,ratio,predobs) !****************************************************************** !for table type1, calls interpolate_tabletype1 !for table type2, calls interpolate_tabletype2 - !****************************************************************** + !****************************************************************** use usefulbits, only : dataset,listprocesses !internal use interpolate implicit none !--------------------------------------input integer :: predobs double precision :: fact,axis_i,axis_j - type(listprocesses) :: proc + type(listprocesses) :: proc !-------------------------------------output - double precision :: ratio + double precision :: ratio !-----------------------------------internal double precision :: Mi,Mj,interpol - !------------------------------------------- - interpol=-1.0D0 + !------------------------------------------- + interpol=-1.0D0 Mi=axis_i - Mj=axis_j - - if(fact.gt.0.0D0)then - select case(proc%ttype) + Mj=axis_j + + if(fact.gt.0.0D0)then + select case(proc%ttype) case(1) call interpolate_tabletype1(Mi,S95_t1(proc%tlist),predobs,interpol) - case(2) + case(2) call interpolate_tabletype2(Mi,Mj,S95_t2(proc%tlist),predobs,interpol) case default ! ### OS ### ratio = -1d0 return write(*,*)'wrong input to subroutine check_against_bound in module channels' stop - end select - endif + end select + endif !--TESTING! ! if(predobs.eq.1) write(*,*) 'Interpolated value = ', interpol if(interpol.ge.0)then ratio=fact/interpol else ratio= -1.0D0 endif - end subroutine check_against_bound + end subroutine check_against_bound !********************************************************** subroutine calcfact_t1(c,jj,t,cfact_t1,M_av,nc) !********************************************************** - ! calculates fact for table type 1 + ! calculates fact for table type 1 ! Takes in to account how Standard Model-like parameter point is ! and whether there are any Higgs with slightly higher masses which ! can be combined with his result ! note: numerator and denominator are worked out separately !********************************************************** use usefulbits, only : dataset, np, div, vvsmall, vsmall use theory_BRfunctions - use theory_XS_SM_functions - - implicit none + use theory_XS_SM_functions + + implicit none !--------------------------------------input type(dataset) :: t integer :: c,jj !-----------------------------------output double precision :: cfact_t1,M_av integer :: nc !------------------------------------------- integer :: f,j,ii,iii double precision :: M_tot double precision :: BR_Hbb_SM_av,BR_HWW_SM_av,BR_Htautau_SM_av double precision :: tev_XS_HW_SM_av,tev_XS_HZ_SM_av double precision :: tev_XS_H_SM_av double precision :: tev_XS_Hb_SM_av double precision :: tev_XS_ttH_SM_av double precision :: lhc7_XS_H_SM_av double precision :: lhc7_XS_VBF_SM_av double precision :: BR_Zll,BR_Znunu,BR_Wlnu,BR_Ztautau - double precision :: BR_Whad,BR_Zhad + double precision :: BR_Whad,BR_Zhad double precision :: fact_tmp double precision,allocatable :: mass(:),fact(:) integer,allocatable :: model_like(:) integer :: npart !number of particles - !source: PDG (Yao et al. J Phys G 33 (2006)) + !source: PDG (Yao et al. J Phys G 33 (2006)) BR_Zll=3.363D-2+3.366D-2 !BR_Zll = sum(l=e,mu), BR(Z ->l+ l-) BR_Znunu=20D-2 !BR_Znunu = BR(Z ->nu_l nu_l-bar) ('invisible') BR_Wlnu=10.75D-2+10.57D-2 !BR_Wlnu = sum(l=e,mu), !BR(W+ ->l+ nu_l) = BR(W- ->l- + nu_l-bar) - BR_Whad=67.6D-2 - BR_Zhad=69.91D-2 + BR_Whad=67.6D-2 + BR_Zhad=69.91D-2 BR_Ztautau=3.370D-2 npart=np( S95_t1(c)%particle_x ) allocate(mass(npart),fact(npart),model_like(npart)) - mass(:)=t%particle( S95_t1(c)%particle_x )%M(:) + mass(:)=t%particle( S95_t1(c)%particle_x )%M(:) - fact= 0.0D0 - cfact_t1=0.0D0 + fact= 0.0D0 + cfact_t1=0.0D0 model_like=0 - !now calculate numerator of 'fact' - do j=1,npart - + !now calculate numerator of 'fact' + do j=1,npart + if( (abs(mass(jj)-mass(j)).le.S95_t1(c)%deltax) & & .and.( mass(jj).le.mass(j) ) )then - - select case(S95_t1(c)%id) !these can be compacted, but not doing it yet... doing it at the + + select case(S95_t1(c)%id) !these can be compacted, but not doing it yet... doing it at the !same time as revamping the model_likeness test case(142) fact(j)=t%lep%XS_hjZ_ratio(j) *t%BR_hjbb(j) !notice that this is not absolute XS case(143) fact(j)=t%lep%XS_hjZ_ratio(j) *t%BR_hjtautau(j) !notice that this is not absolute XS case(300) fact(j)=t%lep%XS_hjZ_ratio(j) !notice that this is not absolute XS case(400,401,402,403) fact(j)=t%lep%XS_hjZ_ratio(j) *t%BR_hjinvisible(j) !notice that this is not absolute XS case(500) fact(j)=t%lep%XS_hjZ_ratio(j) *t%BR_hjgaga(j) !notice that this is not absolute XS case(600,601) fact(j)=t%lep%XS_hjZ_ratio(j) &!notice that this is not absolute XS - & *(t%BR_hjss(j)+t%BR_hjcc(j)+t%BR_hjbb(j)+t%BR_hjgg(j)) + & *(t%BR_hjss(j)+t%BR_hjcc(j)+t%BR_hjbb(j)+t%BR_hjgg(j)) case(711,713) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(721,723,741,743) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(731,733) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(801,811,821) - fact(j)=t%lep%XS_HpjHmj_ratio(j)*(t%BR_Hpjcs(j)+t%BR_Hpjcb(j))**2.0D0 !notice that this is not absolute XS + fact(j)=t%lep%XS_HpjHmj_ratio(j)*(t%BR_Hpjcs(j)+t%BR_Hpjcb(j))**2.0D0 !notice that this is not absolute XS case(802) - fact(j)=t%lep%XS_HpjHmj_ratio(j)*(t%BR_Hpjcs(j)+t%BR_Hpjcb(j))*2.0D0*t%BR_Hpjtaunu(j) !notice that this is not absolute XS + fact(j)=t%lep%XS_HpjHmj_ratio(j)*(t%BR_Hpjcs(j)+t%BR_Hpjcb(j))*2.0D0*t%BR_Hpjtaunu(j) !notice that this is not absolute XS case(803,813) - fact(j)=t%lep%XS_HpjHmj_ratio(j)*t%BR_Hpjtaunu(j)**2.0D0 !notice that this is not absolute XS - case(8742,4493,9475,5482,5570,5876,1024,9889,3534,6089,10235,3047,10799,3564,6166,6296) - fact(j)=t%tev%XS_hjZ_ratio(j) *t%tev%XS_HZ_SM(j) *t%BR_hjbb(j) + fact(j)=t%lep%XS_HpjHmj_ratio(j)*t%BR_Hpjtaunu(j)**2.0D0 !notice that this is not absolute XS + case(8742,4493,9475,5482,5570,5876,1024,9889,3534,6089,10235,3047,10799,3564,6166,6296) + fact(j)=t%tev%XS_hjZ_ratio(j) *t%tev%XS_HZ_SM(j) *t%BR_hjbb(j) case(8958,5489,5624,9236,3930,6039,3216,10433,6221,10600) fact(j)=t%tev%XS_hj_ratio(j)*t%tev%XS_H_SM(j) *t%BR_hjWW(j) case(3331) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) fact(j)=fact(j)*t%tev%XS_H_SM(j)*t%BR_HWW_SM(j)!to get the normalisation right case(5757) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) - case(8957,5472,9219,9463,9596,5828,1970,3493,5972,3155,5613,9868,10068,6092,10217,10239,10796,0874,6220) - fact(j)=t%tev%XS_hjW_ratio(j) *t%tev%XS_HW_SM(j) *t%BR_hjbb(j) - case(5485,7307,5873) - fact(j)=t%tev%XS_hjW_ratio(j) *t%tev%XS_HW_SM(j) *t%BR_hjWW(j) + case(8957,5472,9219,9463,9596,5828,1970,3493,5972,3155,5613,9868,10068,6092,10217,10239,10796,0874,6220) + fact(j)=t%tev%XS_hjW_ratio(j) *t%tev%XS_HW_SM(j) *t%BR_hjbb(j) + case(5485,7307,5873) + fact(j)=t%tev%XS_hjW_ratio(j) *t%tev%XS_HW_SM(j) *t%BR_hjWW(j) case(9071,2491,5740,5980,1014,3363,4555) - fact(j)=t%tev%XS_hj_ratio(j) *t%tev%XS_H_SM(j) *t%BR_hjtautau(j) - case(8961,0598) - call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) - case(9284,5503,5726,10105) - fact(j)=t%tev%XS_hjb_ratio(j) *t%tev%XS_Hb_SM(j) *t%BR_hjbb(j)/0.9D0/2.0D0 - case(6083) - fact(j)=t%tev%XS_hjb_ratio(j) *t%tev%XS_Hb_SM(j) *t%BR_hjtautau(j)/0.1D0/2.0D0 - case(1514,5601,5737) + fact(j)=t%tev%XS_hj_ratio(j) *t%tev%XS_H_SM(j) *t%BR_hjtautau(j) + case(8961,0598) + call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) + case(9284,5503,5726,10105) + fact(j)=t%tev%XS_hjb_ratio(j) *t%tev%XS_Hb_SM(j) *t%BR_hjbb(j)/0.9D0/2.0D0 + case(6083) + fact(j)=t%tev%XS_hjb_ratio(j) *t%tev%XS_Hb_SM(j) *t%BR_hjtautau(j)/0.1D0/2.0D0 + case(1514,5601,5737) fact(j)=( t%tev%XS_hjZ_ratio(j) * t%tev%XS_HZ_SM(j) & & + t%tev%XS_hjW_ratio(j) * t%tev%XS_HW_SM(j) & & + t%tev%XS_hj_ratio(j) * t%tev%XS_H_SM(j) & & + t%tev%XS_vbf_ratio(j) * t%tev%XS_vbf_SM(j) & - & ) & - & * t%BR_hjgaga(j) - case(5858,6177,6295,1887,10065,10485,4960) - call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) + & ) & + & * t%BR_hjgaga(j) + case(5858,6177,6295,1887,10065,10485,4960) + call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(7081,9166,9483,5586,9642,1266,0432,9891,5285,3935,6087,6170,10212,6223,6299,10583,10798,10596) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(2012015) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(10010,10607,6436) - call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) + call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(9248,10133,10439) - call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) + call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(4800) - call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) + call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(5845) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(6171) - call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) + call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(9290) - call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) + call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(5984,9714,6006,4481,6095,10432,6179,6302,10599) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(3556,1931) - fact(j)=t%tev%XS_hjb_ratio(j) *t%tev%XS_Hb_c2_SM(j) *t%BR_hjbb(j) + fact(j)=t%tev%XS_hjb_ratio(j) *t%tev%XS_Hb_c2_SM(j) *t%BR_hjbb(j) case(4782) - fact(j)=t%tev%XS_hjb_ratio(j) *t%tev%XS_Hb_c1_SM(j) *t%BR_hjbb(j) + fact(j)=t%tev%XS_hjb_ratio(j) *t%tev%XS_Hb_c1_SM(j) *t%BR_hjbb(j) case(9465,5871,9022,0710,9887,4162,10102,4468) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) !case(9023) ! call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(9674) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(9897,9999) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(0024,5985,0968,5974,4885) - fact(j)=t%tev%XS_hjb_ratio(j) *t%tev%XS_Hb_c3_SM(j) *t%BR_hjtautau(j) + fact(j)=t%tev%XS_hjb_ratio(j) *t%tev%XS_Hb_c3_SM(j) *t%BR_hjtautau(j) case(5739,10574) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) fact(j)=fact(j)*t%tev%XS_ttH_SM(j)*t%BR_Hbb_SM(j)!to get the normalisation right case(2012135,12025) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(0611) fact(j)=t%tev%XS_hj_ratio(j)*t%tev%XS_H_SM(j) *t%BR_hjZga(j) case(1269,1270,2011094,13035,160311) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(1811) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(1812,2011138,2011151,2760,2013090,2014050,14020,8353,7712,11002,11008,79152) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(6008,9998) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(6082,6182,6219,6276,10573) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(6096,10606,10806,10884) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(6183,3233) - call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) + call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(6229) - call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) + call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(6286,6301,6304,6305,6309) - call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) + call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(6091,1268) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(2011048,11004,11015,11013,11028,11006,11017,110271,110272,14161,14162,5064,2012017,2011150,2011131) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(2011162,1415,2012092,20130131) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(059301) fact(j)=t%lhc8%XS_hj_ratio(j)*t%lhc8%XS_H_SM(j)*t%BR_hjZZ(j) case(059302) fact(j)=t%lhc8%XS_vbf_ratio(j)*t%lhc8%XS_vbf_SM(j)*t%BR_hjZZ(j) case(20130132) fact(j)=1000.d0*t%lhc8%XS_hj_ratio(j)*t%lhc8%XS_H_SM(j)*t%BR_hjZZ(j)*BR_Zll**2 case(20130133) fact(j)=1000.d0*(t%lhc8%XS_hjZ_ratio(j) * t%lhc8%XS_HZ_SM(j) & & + t%lhc8%XS_hjW_ratio(j) * t%lhc8%XS_HW_SM(j) & - & + t%lhc8%XS_vbf_ratio(j) * t%lhc8%XS_vbf_SM(j)) & - & * t%BR_hjZZ(j)*BR_Zll**2 + & + t%lhc8%XS_vbf_ratio(j) * t%lhc8%XS_vbf_SM(j)) & + & * t%BR_hjZZ(j)*BR_Zll**2 case(11025,1997,12041,130021,130022,009361) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) ! write(*,*) "Analysis(130021) fact(",j,")=",fact(j) case(2011026,11005,11016,11026,3478,3357,2011148,2012016) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(110212) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(17013,2011025,2011085,2011161,5895,1414,2012091,2012168,1487,12001,12015,13001,11010,11030,11021) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(13006, 13075515,2013009,3051) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(11031,12044,13012) - call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) + call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(13011) - call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) + call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(11034,12039,13009,2012078,12006,12051) - call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) + call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(2011005,3615,2012018,12046) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(2748, 1408, 2012019) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(7214) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(10500) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(11003,11014,2577,11024,1489,12042,13003,13027) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(2011020,2011021) fact(j)=t%lhc7%XS_hj_ratio(j)*t%lhc7%XS_H_SM(j) *t%BR_hjmumu(j) case(5429,2011052,2011111,2011134) fact(j)=t%lhc7%XS_hj_ratio(j)*t%lhc7%XS_H_SM(j) *t%BR_hjWW(j) case(2012012,2012158,2013030) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(10002,5003,2011132,2012094,110201,110292) fact(j)=t%lhc7%XS_hj_ratio(j)*t%lhc7%XS_H_SM(j) *t%BR_hjtautau(j) case(20140492) ! fact(j)=t%lhc8%XS_gg_hj_ratio(j)*t%lhc8%XS_gg_H_SM(j)*t%BR_hjtautau(j) - fact(j)=t%lhc8%channelrates(j,6,4)*t%lhc8%XS_gg_H_SM(j) + fact(j)=t%lhc8%channelrates(j,6,4)*t%lhc8%XS_gg_H_SM(j) case(2014049) -! fact(j)=t%lhc8%XS_bb_hj_ratio(j)*t%lhc8%XS_bb_H_SM(j)*t%BR_hjtautau(j) +! fact(j)=t%lhc8%XS_bb_hj_ratio(j)*t%lhc8%XS_bb_H_SM(j)*t%BR_hjtautau(j) fact(j)=t%lhc8%channelrates(j,7,4)*t%lhc8%XS_bb_H_SM(j) case(20160851,160371,20170501) ! fact(j)=t%lhc13%XS_gg_hj_ratio(j)*t%lhc13%XS_gg_H_SM(j)*t%BR_hjtautau(j) ! write(*,*) "debug: ",j,t%lhc13%channelrates(j,6,4) fact(j)=t%lhc13%channelrates(j,6,4)*t%lhc13%XS_gg_H_SM(j) case(20160852,160372,20170502) -! write(*,*) "debug: ",j,t%lhc13%channelrates(j,7,4) -! fact(j)=t%lhc13%XS_bb_hj_ratio(j)*t%lhc13%XS_bb_H_SM(j)*t%BR_hjtautau(j) - fact(j)=t%lhc13%channelrates(j,7,4)*t%lhc13%XS_bb_H_SM(j) +! write(*,*) "debug: ",j,t%lhc13%channelrates(j,7,4) +! fact(j)=t%lhc13%XS_bb_hj_ratio(j)*t%lhc13%XS_bb_H_SM(j)*t%BR_hjtautau(j) + fact(j)=t%lhc13%channelrates(j,7,4)*t%lhc13%XS_bb_H_SM(j) case(12050,13021) fact(j)=t%lhc8%XS_hj_ratio(j)*t%lhc8%XS_H_SM(j) *t%BR_hjtautau(j) case(11009,11020,2011133,2012014,2012160) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(110291,12043) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(2013010,7663) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(11011,2011163,11022,11032,1488,12008,12045,2011157) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(2011103,2012161,11012) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(13022) fact(j)=t%lhc8%XS_vbf_ratio(j)*div(t%BR_hjWW(j),t%BR_HWW_SM(j) ,0.0D0,1.0D0) case(13013,13441) fact(j)=t%lhc8%XS_vbf_ratio(j)*t%BR_hjinvisible(j) case(6682) fact(j)=t%lhc13%XS_vbf_ratio(j)*t%lhc13%XS_vbf_SM(j)*t%BR_hjinvisible(j) case(13018,13442) fact(j)=t%lhc8%XS_hjZ_ratio(j)*t%BR_hjinvisible(j) case(13443) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(2013011,3244) -! Limit is on sigma(HZ)*BR(H->inv)*(BR(Z->ll)+BR(Z->tautau) +! Limit is on sigma(HZ)*BR(H->inv)*(BR(Z->ll)+BR(Z->tautau) ! Data given in fb - (multiply by 1000) - fact(j)=1000.D0*t%lhc8%XS_hjZ_ratio(j)*t%lhc8%XS_HZ_SM(j) & - & *t%BR_hjinvisible(j) -!*(BR_Zll+BR_Ztautau) + fact(j)=1000.D0*t%lhc8%XS_hjZ_ratio(j)*t%lhc8%XS_HZ_SM(j) & + & *t%BR_hjinvisible(j) +!*(BR_Zll+BR_Ztautau) ! print *, 1000.D0*t%lhc8%XS_hjZ_ratio(j)*t%lhc8%XS_HZ_SM(j)*(BR_Zll+BR_Ztautau), fact(j) case(1508329,2015080) - fact(j) = t%lhc8%XS_bb_hj_ratio(j)*t%lhc8%XS_bb_H_SM(j)*t%BR_hjbb(j) + fact(j) = t%lhc8%XS_bb_hj_ratio(j)*t%lhc8%XS_bb_H_SM(j)*t%BR_hjbb(j) case(6583) -! Data given in fb - (multiply by 1000) +! Data given in fb - (multiply by 1000) ! (TS 2016/10/13: Added conservatively estimated signal efficiency factor of ~0.56) fact(j)=0.56D0*1000.0D0*( & t%lhc8%XS_hj_ratio(j)*t%lhc8%XS_H_SM(j) + & t%lhc8%XS_vbf_ratio(j)*t%lhc8%XS_vbf_SM(j) + & t%lhc8%XS_hjZ_ratio(j)*t%lhc8%XS_HZ_SM(j) + & t%lhc8%XS_hjW_ratio(j)*t%lhc8%XS_HW_SM(j) + & t%lhc8%XS_tthj_ratio(j)*t%lhc8%XS_ttH_SM(j) ) * t%BR_hjgaga(j) case(14011) do ii=1,npart if(abs(t%particle(Hneut)%M(ii)-125.0D0).lt.10.0D0) then fact(j)=fact(j)+1000.0D0 * t%lhc8%XS_hj_ratio(j) * t%lhc8%XS_H_SM(j) & & * t%BR_hjhiZ(j,ii) * BR_Zll * t%BR_hjbb(ii) endif enddo case(17006) ! Data given in fb - (multiply by 1000). ! Limit on leptonic (e,mu,tau) decays of VV -> lnulnu ! BR(W->lnu) = 0.3257 ! BR(Z->ll) = 0.10099 ! BR(Z->nunu) = 0.2000 do ii=1,npart if(abs(t%particle(Hneut)%M(ii)-125.0D0).lt.10.0D0) then fact(j)=fact(j)+ 1000.0D0 * t%lhc13%XS_gg_hj_ratio(j) * t%lhc13%XS_gg_H_SM(j) & & * t%BR_hkhjhi(j,ii,ii) * t%BR_hjbb(ii) * & & (t%BR_hjWW(ii) * 0.3257D0**2 + t%BR_hjZZ(ii) * 0.10099D0 * 0.2D0 *2.0D0) endif - enddo + enddo case(1506534) do ii=1,npart if(abs(t%particle(Hneut)%M(ii)-125.0D0).lt.10.0D0) then fact(j)=fact(j)+ t%lhc8%XS_gg_hj_ratio(ii) * t%lhc8%XS_gg_H_SM(ii) & & * t%BR_hkhjhi(ii,j,j) * t%BR_hjtautau(j)**2.0D0 endif - enddo + enddo case(5051) do ii=1,npart if(abs(t%particle(Hneut)%M(ii)-125.0D0).lt.2.5D0) then fact(j)=fact(j)+ t%lhc8%XS_gg_hj_ratio(ii) * t%BR_hkhjhi(ii,j,j)*t%BR_hjgaga(j)**2.0D0 endif - enddo + enddo case(7355) do ii=1,npart fact_tmp = 0.0D0 - if(abs(t%particle(Hneut)%M(ii)-125.0D0).lt.(10.0D0+t%particle(Hneut)%dMh(ii))) then + if(abs(t%particle(Hneut)%M(ii)-125.0D0).lt.(10.0D0+t%particle(Hneut)%dMh(ii))) then fact_tmp = t%lhc13%XS_hjZ_ratio(j) * t%lhc13%XS_HZ_SM(j) + t%lhc13%XS_hjW_ratio(j) * t%lhc13%XS_HW_SM(j) fact(j) = fact(j) + fact_tmp * t%BR_hkhjhi(ii,j,j) * t%BR_hjbb(j) * t%BR_hjbb(j) - endif - enddo + endif + enddo case(17020321) do ii=1,npart fact_tmp = 0.0D0 - if(abs(t%particle(Hneut)%M(ii)-125.0D0).lt.(25.0D0+t%particle(Hneut)%dMh(ii))) then + if(abs(t%particle(Hneut)%M(ii)-125.0D0).lt.(25.0D0+t%particle(Hneut)%dMh(ii))) then call model_likeness(ii,S95_t1(c)%id,t,model_like(ii),fact_tmp) fact(j) = fact(j) + fact_tmp * t%BR_hkhjhi(ii,j,j) * t%BR_hjtautau(j)**2.0D0 - endif - enddo + endif + enddo case(17020322,539) do ii=1,npart ! Multiply by 2.0 because limit is set on BR(H->hh->mumubb) fact_tmp = 0.0D0 - if(abs(t%particle(Hneut)%M(ii)-125.0D0).lt.(25.0D0+t%particle(Hneut)%dMh(ii))) then + if(abs(t%particle(Hneut)%M(ii)-125.0D0).lt.(25.0D0+t%particle(Hneut)%dMh(ii))) then call model_likeness(ii,S95_t1(c)%id,t,model_like(ii),fact_tmp) fact(j) = fact(j) + fact_tmp * t%BR_hkhjhi(ii,j,j) * 2.0D0 * t%BR_hjmumu(j) * t%BR_hjbb(j) - endif - enddo + endif + enddo case(17020323) do ii=1,npart ! Multiply by 2.0 because limit is set on BR(H->hh->mumutautau) fact_tmp = 0.0D0 - if(abs(t%particle(Hneut)%M(ii)-125.0D0).lt.(25.0D0+t%particle(Hneut)%dMh(ii))) then + if(abs(t%particle(Hneut)%M(ii)-125.0D0).lt.(25.0D0+t%particle(Hneut)%dMh(ii))) then call model_likeness(ii,S95_t1(c)%id,t,model_like(ii),fact_tmp) fact(j) = fact(j) + fact_tmp * t%BR_hkhjhi(ii,j,j) * 2.0D0 * t%BR_hjmumu(j) * t%BR_hjtautau(j) - endif - enddo + endif + enddo case(011812) - ! Limit given in fb, multiply by 1000. + ! Limit given in fb, multiply by 1000. do ii=1,npart if(abs(t%particle(Hneut)%M(ii)-125.0D0).lt.10.0D0) then fact(j)=fact(j)+1000.0D0 * t%lhc8%XS_hj_ratio(j) * t%lhc8%XS_H_SM(j) & & * t%BR_hjhiZ(j,ii) * BR_Zll * t%BR_hjtautau(ii) endif - enddo + enddo case(011811) ! Limit given in pb do ii=1,npart do iii=1,npart ! No symmetry factor (1/2) because limit is set on BR(H->hh->bbtautau) if(abs(t%particle(Hneut)%M(ii)-125.0D0).lt.10.0D0.and.abs(t%particle(Hneut)%M(iii)-125.0D0).lt.10.0D0) then fact(j)=fact(j)+ t%lhc8%XS_hj_ratio(j) * t%lhc8%XS_H_SM(j) & & * t%BR_hkhjhi(j,ii,iii) * ( t%BR_hjtautau(ii) * t%BR_hjbb(iii) + & & t%BR_hjtautau(iii) * t%BR_hjbb(ii) ) endif enddo enddo case(16029) ! Limit given in pb do ii=1,npart do iii=1,npart ! No symmetry factor (1/2) because limit is set on BR(H->hh->bbtautau) if(abs(t%particle(Hneut)%M(ii)-125.0D0).lt.10.0D0.and.abs(t%particle(Hneut)%M(iii)-125.0D0).lt.10.0D0) then fact(j)=fact(j)+ t%lhc13%XS_hj_ratio(j) * t%lhc13%XS_H_SM(j) & & * t%BR_hkhjhi(j,ii,iii) * ( t%BR_hjtautau(ii) * t%BR_hjbb(iii) + & & t%BR_hjtautau(iii) * t%BR_hjbb(ii) ) endif enddo enddo case(17002) ! Limit given in fb do ii=1,npart do iii=1,npart ! No symmetry factor (1/2) because limit is set on BR(H->hh->bbtautau) if(abs(t%particle(Hneut)%M(ii)-125.0D0).lt.10.0D0.and.abs(t%particle(Hneut)%M(iii)-125.0D0).lt.10.0D0) then fact(j)=fact(j)+ 1000.0D0 * t%lhc13%XS_hj_ratio(j) * t%lhc13%XS_H_SM(j) & & * t%BR_hkhjhi(j,ii,iii) * ( t%BR_hjtautau(ii) * t%BR_hjbb(iii) + & & t%BR_hjtautau(iii) * t%BR_hjbb(ii) ) endif enddo enddo case(2016071) ! Limit given in pb do ii=1,npart do iii=1,npart ! No symmetry factor (1/2) because limit is set on BR(H->hh->WWgaga) if(abs(t%particle(Hneut)%M(ii)-125.0D0).lt.2.5D0.and.abs(t%particle(Hneut)%M(iii)-125.0D0).lt.2.5D0) then fact(j)=fact(j)+ t%lhc13%XS_hj_ratio(j) * t%lhc13%XS_H_SM(j) & & * t%BR_hkhjhi(j,ii,iii) * ( t%BR_hjWW(ii) * t%BR_hjgaga(iii) + & & t%BR_hjWW(iii) * t%BR_hjgaga(ii) ) endif enddo enddo case(16002,2016049) ! Limit given in fb, multiply by 1000. do ii=1,npart do iii=1,npart if(abs(t%particle(Hneut)%M(ii)-125.0D0).lt.10.0D0.and.abs(t%particle(Hneut)%M(iii)-125.0D0).lt.10.0D0) then fact(j)=fact(j)+ 1000.0D0 * t%lhc13%XS_hj_ratio(j) * t%lhc13%XS_H_SM(j) & - & * t%BR_hkhjhi(j,ii,iii) * t%BR_hjbb(iii) * t%BR_hjbb(ii) + & * t%BR_hkhjhi(j,ii,iii) * t%BR_hjbb(iii) * t%BR_hjbb(ii) endif enddo - enddo + enddo case(14013) ! Limit given in fb, multiply by 1000. do ii=1,npart do iii=1,npart if(abs(t%particle(Hneut)%M(ii)-125.0D0).lt.10.0D0.and.abs(t%particle(Hneut)%M(iii)-125.0D0).lt.10.0D0) then fact(j)=fact(j)+ 1000.0D0 * t%lhc8%XS_hj_ratio(j) * t%lhc8%XS_H_SM(j) & - & * t%BR_hkhjhi(j,ii,iii) * t%BR_hjbb(iii) * t%BR_hjbb(ii) + & * t%BR_hkhjhi(j,ii,iii) * t%BR_hjbb(iii) * t%BR_hjbb(ii) endif enddo - enddo + enddo case(044781) - ! Limit given in pb (Z->ll unfolded) + ! Limit given in pb (Z->ll unfolded) do ii=1,npart if(abs(t%particle(Hneut)%M(ii)-125.0D0).lt.10.0D0) then fact(j)=fact(j) + t%lhc8%XS_gg_hj_ratio(j) * t%lhc8%XS_gg_H_SM(j) & & * t%BR_hjhiZ(j,ii) * t%BR_hjtautau(ii) endif enddo case(044782) ! Limit given in pb (Z->ll unfolded) do ii=1,npart if(abs(t%particle(Hneut)%M(ii)-125.0D0).lt.10.0D0) then fact(j)=fact(j) + t%lhc8%XS_gg_hj_ratio(j) * t%lhc8%XS_gg_H_SM(j) & & * t%BR_hjhiZ(j,ii) * t%BR_hjbb(ii) endif enddo case(20160151,180051) ! Limit given in pb (Z->ll unfolded) do ii=1,npart if(abs(t%particle(Hneut)%M(ii)-125.0D0).lt.10.0D0) then fact(j)=fact(j) + t%lhc13%XS_gg_hj_ratio(j) * t%lhc13%XS_gg_H_SM(j) & & * t%BR_hjhiZ(j,ii) * t%BR_hjbb(ii) endif enddo case(20160152,180052) ! Limit given in pb (Z->ll unfolded) do ii=1,npart if(abs(t%particle(Hneut)%M(ii)-125.0D0).lt.10.0D0) then fact(j)=fact(j) + t%lhc13%XS_bb_hj_ratio(j) * t%lhc13%XS_bb_H_SM(j) & & * t%BR_hjhiZ(j,ii) * t%BR_hjbb(ii) endif enddo case(14006,14037) ! Data given in pb fact(j)= ( & t%lhc8%XS_hj_ratio(j)*t%lhc8%XS_H_SM(j) + & t%lhc8%XS_vbf_ratio(j)*t%lhc8%XS_vbf_SM(j) + & t%lhc8%XS_hjZ_ratio(j)*t%lhc8%XS_HZ_SM(j) + & t%lhc8%XS_hjW_ratio(j)*t%lhc8%XS_HW_SM(j) + & t%lhc8%XS_tthj_ratio(j)*t%lhc8%XS_ttH_SM(j) ) * t%BR_hjgaga(j) case(2018025) ! Data given in fb (fiducial cross section, multiply here with acceptance functions) fact(j)= 1000.0D0 * ( & (0.574D0 - 2.051 * exp(-0.0311*mass(j))) * t%lhc13%XS_hj_ratio(j)*t%lhc13%XS_H_SM(j) + & (0.663D0 - 1.054 * exp(-0.0182*mass(j))) * t%lhc13%XS_vbf_ratio(j)*t%lhc13%XS_vbf_SM(j) + & (0.547D0 - 1.223 * exp(-0.0222*mass(j))) * t%lhc13%XS_hjZ_ratio(j)*t%lhc13%XS_HZ_SM(j) + & (0.547D0 - 1.223 * exp(-0.0222*mass(j))) * t%lhc13%XS_hjW_ratio(j)*t%lhc13%XS_HW_SM(j) + & (0.663D0 - 1.054 * exp(-0.0182*mass(j))) * t%lhc13%XS_tthj_ratio(j)*t%lhc13%XS_ttH_SM(j) ) * & - t%BR_hjgaga(j) + t%BR_hjgaga(j) case(14031) fact(j)=1000.0D0* t%lhc8%XS_hj_ratio(j)*t%lhc8%XS_H_SM(j) * & t%BR_hjZga(j)*BR_Zll case(20160821,20160822,063861) fact(j)=t%lhc13%XS_hj_ratio(j)*t%lhc13%XS_H_SM(j)*t%BR_hjZZ(j) case(20160823) fact(j)=t%lhc13%XS_vbf_ratio(j)*t%lhc13%XS_vbf_SM(j)*t%BR_hjZZ(j) case(20160792) ! Data given in fb fact(j)=1000.0D0*t%lhc13%XS_hj_ratio(j)*t%lhc13%XS_H_SM(j)*t%BR_hjZZ(j)*BR_Zll**2 case(20160793) ! Data given in fb fact(j)=1000.0D0*t%lhc13%XS_vbf_ratio(j)*t%lhc13%XS_vbf_SM(j)*t%BR_hjZZ(j)*BR_Zll**2 case(20160741,2016062) fact(j)=t%lhc13%XS_hj_ratio(j)*t%lhc13%XS_H_SM(j)*t%BR_hjWW(j) case(20160742) - fact(j)=t%lhc13%XS_vbf_ratio(j)*t%lhc13%XS_vbf_SM(j)*t%BR_hjWW(j) + fact(j)=t%lhc13%XS_vbf_ratio(j)*t%lhc13%XS_vbf_SM(j)*t%BR_hjWW(j) case(2011112) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(2011135) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(6224,6225,6226) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(04670,046701,046702,17030,4873,8567,336) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(0038911,0038912,0038913,0038914) call model_likeness(j,S95_t1(c)%id,t,model_like(j),fact(j)) case(160312,2016088,79151,18014) -! Data given in pb (factor 2 because both signs of the charged Higgs are considered in the limit) - fact(j)= 2.0D0 * t%lhc13%XS_Hpjtb(j) * t%BR_Hpjtaunu(j) +! Data given in pb + fact(j)= t%lhc13%XS_Hpmjtb(j) * t%BR_Hpjtaunu(j) case(1504233) -! Data given in fb (factor 2 because both signs of the charged Higgs are considered in the limit) - fact(j)= 2.0D0 * 1000.0D0*t%lhc8%XS_vbf_Hpj(j) * t%BR_HpjWZ(j) +! Data given in fb + fact(j)= 1000.0D0*t%lhc8%XS_vbf_Hpmj(j) * t%BR_HpjWZ(j) case(2016089,3599) -! Data given in pb (factor 2 because both signs of the charged Higgs are considered in the limit) - fact(j)= 2.0D0 * t%lhc13%XS_Hpjtb(j) * t%BR_Hpjtb(j) +! Data given in pb + fact(j)= t%lhc13%XS_Hpmjtb(j) * t%BR_Hpjtb(j) ! Daniel's attempts case(2016025) fact(j) = t%lhc13%XS_hj_ratio(j) * t%lhc13%XS_H_SM(j) * t%BR_hjbb(j) case(2016044) fact(j) = 1000.0D0*t%lhc13%XS_hj_ratio(j) * t%lhc13%XS_H_SM(j) * t%BR_hjZga(j) case(201608391) do ii=1,npart if(abs(t%particle(Hneut)%M(ii)-125.0D0).lt.10.0D0) then fact(j)=fact(j) + t%lhc13%XS_hjW_ratio(ii) *t%lhc13%XS_HW_SM(ii) * t%BR_hkhjhi(ii,j,j) & & * t%BR_hjbb(j) * t%BR_hjbb(j) endif enddo - case(16030) + case(16030) fact(j) = t%BR_tHpjb(j) * t%BR_Hpjcs(j) case(2016004) ! Limit given in pb do ii=1,npart do iii=1,npart ! Multiply fact by symmetry factor, 1/2. if(abs(t%particle(Hneut)%M(ii)-125.0D0).lt.2.5D0.and.abs(t%particle(Hneut)%M(iii)-125.0D0).lt.2.5D0) then fact(j)=fact(j)+ 0.5D0 * t%lhc13%XS_gg_hj_ratio(j)*t%lhc13%XS_gg_H_SM(j) & & * t%BR_hkhjhi(j,ii,iii) * & & ( t%BR_hjbb(ii)/t%BR_Hbb_SM(ii) * t%BR_hjgaga(iii)/t%BR_Hgaga_SM(iii) + & & t%BR_hjbb(iii)/t%BR_Hbb_SM(iii) * t%BR_hjgaga(ii)/t%BR_Hgaga_SM(ii) ) endif enddo enddo ! case(2016004) ! do ii=1,npart ! if(abs(t%particle(Hneut)%M(ii)-125.0D0).lt.10.0D0.and.t%BR_Hbb_SM(ii).gt.0D0.and.t%BR_Hgaga_SM(ii).gt.0D0) then ! fact(j) + t%lhc13%XS_gg_hj_ratio(j)*t%lhc13%XS_gg_H_SM(j) * t%BR_hkhjhi(j,ii,ii) & ! & * t%BR_hjbb(ii)/t%BR_Hbb_SM(ii) * t%BR_hjgaga(ii)/t%BR_Hgaga_SM(ii) ! endif ! enddo case(1604833) if(abs(t%BR_hjWW(j)/t%BR_hjZZ(j) / (t%BR_HWW_SM(j)/t%BR_HZZ_SM(j))-1.0D0).lt.0.05) then fact(j) = t%lhc13%XS_gg_hj_ratio(j)*t%lhc13%XS_gg_H_SM(j) * (t%BR_hjWW(j) + t%BR_hjZZ(j)) else fact(j) = 0.0D0 - endif + endif case(16034) fact(j) = (t%lhc13%XS_hj_ratio(j) * t%lhc13%XS_H_SM(j) + & & t%lhc13%XS_vbf_ratio(j) * t%lhc13%XS_vbf_SM(j) ) * t%BR_hjZZ(j) case(2016056) fact(j) = 1000.0D0*t%lhc13%XS_gg_hj_ratio(j) * t%lhc13%XS_gg_H_SM(j) * t%BR_hjZZ(j) case(15009) - fact(j)= 1000.*t%lhc8%XS_bb_hj_ratio(j)*t%lhc8%XS_bb_H_SM(j)*t%BR_hjmumu(j) + fact(j)= 1000.*t%lhc8%XS_bb_hj_ratio(j)*t%lhc8%XS_bb_H_SM(j)*t%BR_hjmumu(j) case(20160551) fact(j) = 1000.0D0*t%lhc13%XS_hj_ratio(j) * t%lhc13%XS_H_SM(j) * t%BR_hjZZ(j) case(20160552) fact(j) = 1000.0D0*t%lhc13%XS_hj_ratio(j) * t%lhc13%XS_H_SM(j) * t%BR_hjWW(j) case default stop 'wrong input to function calcfact_t1 in module S95tables' end select endif enddo - + if(fact(jj).le.vvsmall)then!A !Higgs jj doesn't contribute - wait until another call of this subroutine before !looking at nearby masses M_av = mass(jj) nc=0 - cfact_t1=0.0D0 + cfact_t1=0.0D0 else!A - !find M_av (only using higgs which have non-zero fact): - f=0 + !find M_av (only using higgs which have non-zero fact): + f=0 M_tot=0.0D0 - do j=1,npart - if( fact(j).gt.vvsmall )then + do j=1,npart + if( fact(j).gt.vvsmall )then f=f+1 - M_tot=M_tot+mass(j) + M_tot=M_tot+mass(j) endif - enddo - + enddo + nc=f !f will always be > 0 because we've already made sure that fact(jj)>0.0D0 - - M_av = M_tot/dble(nc) - - if((WhichColliderString(S95_t1(c)%expt,S95_t1(c)%energy).eq.'LEP'))then!B + + M_av = M_tot/dble(nc) + + if((WhichColliderString(S95_t1(c)%expt,S95_t1(c)%energy).eq.'LEP'))then!B cfact_t1=sum(fact) elseif(S95_t1(c)%particle_x .ne. Hneut)then!B cfact_t1=sum(fact) else!B ! HB-5 new ---> if(cfact_t1.gt.vvsmall.and.M_av.gt.S95_t1(c)%xmax) then M_av = S95_t1(c)%xmax write(*,*) "WARNING: Evaluating limit of ",trim(adjustl(S95_t1(c)%label))," at upper mass range." else if(cfact_t1.gt.vvsmall.and.M_av.lt.S95_t1(c)%xmin) then M_av = S95_t1(c)%xmin write(*,*) "WARNING: Evaluating limit of ",trim(adjustl(S95_t1(c)%label))," at lower mass range." endif - ! <--- + ! <--- if(f.eq.1)then !have already calculated these in theo_manip to save time BR_Hbb_SM_av = t%BR_Hbb_SM(jj) BR_HWW_SM_av = t%BR_HWW_SM(jj) BR_Htautau_SM_av = t%BR_Htautau_SM(jj) tev_XS_HW_SM_av = t%tev%XS_HW_SM(jj) tev_XS_HZ_SM_av = t%tev%XS_HZ_SM(jj) tev_XS_H_SM_av = t%tev%XS_H_SM(jj) tev_XS_Hb_SM_av = t%tev%XS_Hb_SM(jj) tev_XS_ttH_SM_av = t%tev%XS_ttH_SM(jj) lhc7_XS_H_SM_av = t%lhc7%XS_H_SM(jj) lhc7_XS_VBF_SM_av= t%lhc7%XS_vbf_SM(jj) - else - BR_Hbb_SM_av = BRSM_Hbb(M_av) + else + BR_Hbb_SM_av = BRSM_Hbb(M_av) BR_HWW_SM_av = BRSM_HWW(M_av) BR_Htautau_SM_av = BRSM_Htautau(M_av) tev_XS_HW_SM_av = XS_tev_HW_SM(M_av) tev_XS_HZ_SM_av = XS_tev_HZ_SM(M_av) - tev_XS_H_SM_av = XS_tev_gg_H_SM(M_av)+XS_tev_bb_H_SM(M_av) - tev_XS_Hb_SM_av = XS_tev_bg_Hb_SM(M_av) - tev_XS_ttH_SM_av = XS_tev_ttH_SM(M_av) - lhc7_XS_H_SM_av = XS_lhc7_gg_H_SM(M_av)+XS_lhc7_bb_H_SM(M_av) + tev_XS_H_SM_av = XS_tev_gg_H_SM(M_av)+XS_tev_bb_H_SM(M_av) + tev_XS_Hb_SM_av = XS_tev_bg_Hb_SM(M_av) + tev_XS_ttH_SM_av = XS_tev_ttH_SM(M_av) + lhc7_XS_H_SM_av = XS_lhc7_gg_H_SM(M_av)+XS_lhc7_bb_H_SM(M_av) lhc7_XS_VBF_SM_av= XS_lhc7_vbf_SM(M_av) - endif - + endif + ! now include denominator of 'fact' select case(S95_t1(c)%id) - case(8742,5482,5570,4493,9475,5876,1024,9889,3534,6089,10235,3047,10799,3564,6166,6296) + case(8742,5482,5570,4493,9475,5876,1024,9889,3534,6089,10235,3047,10799,3564,6166,6296) do j=1,npart - fact(j)= div( fact(j) , tev_XS_HZ_SM_av * BR_Hbb_SM_av ,0.0D0,0.0D0) - enddo + fact(j)= div( fact(j) , tev_XS_HZ_SM_av * BR_Hbb_SM_av ,0.0D0,0.0D0) + enddo case(8958,5489,5624,9236,3930) do j=1,npart - fact(j)= div( fact(j) , tev_XS_H_SM_av * BR_HWW_SM_av ,0.0D0,0.0D0) - enddo - case(8957,5472,9219,9463,9596,5828,1970,3493,5972,3155,5613,9868,10068,6092,10217,10239,10796,0874,6220) - do j=1,npart - fact(j)= div( fact(j) , tev_XS_HW_SM_av * BR_Hbb_SM_av ,0.0D0,0.0D0) - enddo - case(5503,9284,5726,10105) + fact(j)= div( fact(j) , tev_XS_H_SM_av * BR_HWW_SM_av ,0.0D0,0.0D0) + enddo + case(8957,5472,9219,9463,9596,5828,1970,3493,5972,3155,5613,9868,10068,6092,10217,10239,10796,0874,6220) do j=1,npart - fact(j)= div( fact(j) , tev_XS_Hb_SM_av ,0.0D0,0.0D0) - enddo - case(6083) + fact(j)= div( fact(j) , tev_XS_HW_SM_av * BR_Hbb_SM_av ,0.0D0,0.0D0) + enddo + case(5503,9284,5726,10105) do j=1,npart - fact(j)= div( fact(j) , tev_XS_Hb_SM_av ,0.0D0,0.0D0) - enddo - case(7307,5873) + fact(j)= div( fact(j) , tev_XS_Hb_SM_av ,0.0D0,0.0D0) + enddo + case(6083) do j=1,npart - fact(j)= div( fact(j) , tev_XS_HW_SM_av * BR_HWW_SM_av ,0.0D0,0.0D0) - enddo + fact(j)= div( fact(j) , tev_XS_Hb_SM_av ,0.0D0,0.0D0) + enddo + case(7307,5873) + do j=1,npart + fact(j)= div( fact(j) , tev_XS_HW_SM_av * BR_HWW_SM_av ,0.0D0,0.0D0) + enddo case(8961,0598,10010,9290,9674,9897,9999,10607,6436) case(7081,9166,9483,5586,9642,1266,0432,9891,5285,3935,6087,6170,10212,6223,6299,10583,10798,10596) case(2012015) - case(9248,5845,4800,5858,6177,6295,1887,10065,10485,10133,10439,4960) + case(9248,5845,4800,5858,6177,6295,1887,10065,10485,10133,10439,4960) case(9465,5871,9022,9023,0710,9887) case(6171) - case(6183,3233) - case(6229) - case(6304) + case(6183,3233) + case(6229) + case(6304) case(5984,9714,4162,10102,6006,4481,4468,5757,6095,10432,6179,6302,10599) case(5739,10574) do j=1,npart - fact(j)= div( fact(j) , tev_XS_ttH_SM_av * BR_Hbb_SM_av ,0.0D0,0.0D0) - enddo - case(2012135,12025) + fact(j)= div( fact(j) , tev_XS_ttH_SM_av * BR_Hbb_SM_av ,0.0D0,0.0D0) + enddo + case(2012135,12025) case(6008,9998) case(6082,6182,6219,6276,10573) case(6096,10606,10806,10884) case(6091,1268) case(5485,9071,2491,5601,1514,3556,5740,4555,0024,5980,1014,5985, & & 0611,3363,6039,3216,0968,5974,1931,4885,6221) case(3331) case(6286,6301,6305,6309) case(10600) case(10433) do j=1,npart - fact(j)=div(fact(j) , tev_XS_H_SM_av * BR_HWW_SM_av ,0.0D0,0.0D0) - enddo + fact(j)=div(fact(j) , tev_XS_H_SM_av * BR_HWW_SM_av ,0.0D0,0.0D0) + enddo case(2011048,11004,11015,11013,11028,11006,11017,110271,110272,14161,14162,5064,2012017,2011150,2011131) case(2011162,1415,2012092,20130131) case(11025,1997,12041,130021,130022,009361,16034) case(2011026,11005,11016,11026,3478,3357,2011148,2012016) case(110212) case(17013,2011025,2011085,2011161,5895,1414,2012091,2012168,1487,12001,12015,13001,11010,11030,11021) case(13006, 13075515,2013009,3051) - case(11031,12044,13012) - case(13011) - case(11034,12039,13009,2012078,12006,12051) - case(2011005,3615,2012018,12046) - case(2748, 1408, 2012019) + case(11031,12044,13012) + case(13011) + case(11034,12039,13009,2012078,12006,12051) + case(2011005,3615,2012018,12046) + case(2748, 1408, 2012019) case(7214) case(4782) - case(5429,2011052,2011111,2011134) + case(5429,2011052,2011111,2011134) do j=1,npart - fact(j)= div( fact(j) , lhc7_XS_H_SM_av * BR_HWW_SM_av ,0.0D0,0.0D0) - enddo + fact(j)= div( fact(j) , lhc7_XS_H_SM_av * BR_HWW_SM_av ,0.0D0,0.0D0) + enddo case(2012012,2012158,2013030) - case(10002,5003,2011132,2012094,2014049,20140492,110201,110292,12050,13021) + case(10002,5003,2011132,2012094,2014049,20140492,110201,110292,12050,13021) case(059301,059302) case(20130132,20130133) case(11009,11020,2011133,2012014,2012160) case(110291,12043) case(2013010,7663) - case(11002,11008) + case(11002,11008) case(11003,11014,2577,11024,1489,12042,13003,13027) case(2011020,2011021) - case(10500) - case(11011,2011163,11022,11032,1488,12008,12045,2011157) - case(2011103,2012161,11012) + case(10500) + case(11011,2011163,11022,11032,1488,12008,12045,2011157) + case(2011103,2012161,11012) case(13022) case(13013) case(13441,13442,13443,6682) case(13018) case(2013011,3244) case(2011112) case(6583,14006,14037,14031,2018025) - case(2011135) - case(1508329,2015080) + case(2011135) + case(1508329,2015080) case(17020321,17020322,17020323,539,7355) case(6224,6225,6226) case(04670,046701,046702,17030,4873,8567,336) case(0038911,0038912,0038913,0038914) case(160312,18014,2016088,2016089,3599,14011,011811,16029,17002,14013,2016071) case(16002,011812,20160851,20160852,20170501,20170502,79151) case(1504233,1506534,5051) case(160371,160372,044781,044782,20160151,180051,180052,20160152,17006) case(20160741,20160742,2016062,20160821,20160822,20160823,20160792,20160793,2016049,063861) case(2016025,2016044,201608391,2016004,1604833,2016056,20160551,20160552,15009) case(16030) case default stop 'error calculating denom. in calcfact_t1' end select - + cfact_t1=sum(fact) endif!B endif!A deallocate(mass) deallocate(fact) deallocate(model_like) - end subroutine calcfact_t1 - !********************************************************** + end subroutine calcfact_t1 + !********************************************************** subroutine calcfact_t2(c,jj,ii,t,cfact_t2,axis_i,axis_j,nc) !********************************************************** - !calculates fact for table type 2 - !********************************************************** + !calculates fact for table type 2 + !********************************************************** use usefulbits, only : dataset,np,vsmall,not_a_particle,extrapolatewidth - implicit none - !--------------------------------------input + implicit none + !--------------------------------------input type(dataset) :: t integer :: c,jj,ii !-----------------------------------output double precision :: cfact_t2,axis_i,axis_j integer :: nc !------------------------------------------- integer :: f,i,j,npart2,npart1 double precision :: fact,eps2,crosssection,Mi_av,Mj_av,masstot,BR_Zll,acceptance double precision,allocatable :: massj(:),massi(:) BR_Zll=3.363D-2+3.366D-2 !BR_Zll = sum(l=e,mu), BR(Z ->l+ l-) eps2=0.02D0 npart2=np( S95_t2(c)%particle_x2 ) allocate(massj(npart2)) massj(:)=t%particle( S95_t2(c)%particle_x2 )%M(:) if(S95_t2(c)%particle_x1.eq.not_a_particle)then npart1=1 allocate(massi(npart1)) massi(:)=-1.0D0 else npart1=np( S95_t2(c)%particle_x1 ) allocate(massi(npart1)) massi(:)=t%particle( S95_t2(c)%particle_x1 )%M(:) endif Mj_av=massj(jj) Mi_av=massi(ii) - fact= 0.0D0 - cfact_t2=0.0D0 - masstot=0.0D0 + fact= 0.0D0 + cfact_t2=0.0D0 + masstot=0.0D0 j=jj i=ii f=1 - + select case(S95_t2(c)%id) - case(150) + case(150) fact=test_appl(t%lep%XS_hjZ_ratio(j)*t%BR_hjhihi(j,i)*t%BR_hjbb(i)**2.0D0)!table 15 hep-ex/0602042 XS ratio - case(160) + case(160) fact=test_appl(t%lep%XS_hjZ_ratio(j)*t%BR_hjhihi(j,i)*t%BR_hjtautau(i)**2.0D0)!table 16 hep-ex/0602042 XS ratio - case(180) - fact=test_appl(t%lep%XS_hjhi_ratio(j,i)*t%BR_hjbb(j)*t%BR_hjbb(i))!table 18 hep-ex/0602042 XS ratio + case(180) + fact=test_appl(t%lep%XS_hjhi_ratio(j,i)*t%BR_hjbb(j)*t%BR_hjbb(i))!table 18 hep-ex/0602042 XS ratio case(190) fact=test_appl(t%lep%XS_hjhi_ratio(j,i)*t%BR_hjtautau(j)*t%BR_hjtautau(i))!table 19 hep-ex/0602042 XS ratio - case(200) + case(200) fact=test_appl(t%lep%XS_hjhi_ratio(j,i)*t%BR_hjhihi(j,i)*t%BR_hjbb(i)**3.0D0)!table 20 hep-ex/0602042 XS ratio - case(210) + case(210) fact=test_appl(t%lep%XS_hjhi_ratio(j,i)*t%BR_hjhihi(j,i)*t%BR_hjtautau(i)**3.0D0)!table 21 hep-ex/0602042 XS ratio - case(220) + case(220) fact=test_appl(t%lep%XS_hjZ_ratio(j)*t%BR_hjhihi(j,i)*t%BR_hjbb(i)*t%BR_hjtautau(i))!table 22 hep-ex/0602042 XS ratio - case(230) - fact=test_appl(t%lep%XS_hjhi_ratio(j,i)*t%BR_hjbb(j)*t%BR_hjtautau(i))!table 23 hep-ex/0602042 XS ratio - case(240) + case(230) + fact=test_appl(t%lep%XS_hjhi_ratio(j,i)*t%BR_hjbb(j)*t%BR_hjtautau(i))!table 23 hep-ex/0602042 XS ratio + case(240) fact=test_appl(t%lep%XS_hjhi_ratio(j,i)*t%BR_hjtautau(j)*t%BR_hjbb(i))!table 24 hep-ex/0602042 XS ratio - case(905) + case(905) fact=test_appl(t%lep%XS_CpjCmj(j)*t%BR_CjqqNi(j,i)**2.0D0)!fig 5 hep-ex/0401026 absolute XS in fb - case(906) - fact=test_appl(t%lep%XS_CpjCmj(j)*t%BR_CjqqNi(j,i)*t%BR_CjlnuNi(j,i))!fig 6 hep-ex/0401026 absolute XS in fb - case(907) + case(906) + fact=test_appl(t%lep%XS_CpjCmj(j)*t%BR_CjqqNi(j,i)*t%BR_CjlnuNi(j,i))!fig 6 hep-ex/0401026 absolute XS in fb + case(907) fact=test_appl( t%lep%XS_CpjCmj(j)*t%BR_CjlnuNi(j,i)**2.0D0)!fig 7 hep-ex/0401026 absolute XS in fb - case(908) + case(908) fact=test_appl(t%lep%XS_CpjCmj(j)) !fig 8 hep-ex/0401026 absolute XS in fb case(909) fact=test_appl( t%lep%XS_NjNi(j,i)*t%BR_NjqqNi(j,i)) !fig 9 hep-ex/0401026 absolute XS in fb case(910) fact=test_appl(t%lep%XS_NjNi(j,i))!fig 10 hep-ex/0401026 absolute XS in fb case(6065) - fact=test_appl(t%lep%XS_HpjHmj_ratio(j)*(t%BR_Hpjcs(j)+t%BR_Hpjcb(j)+t%BR_Hpjtaunu(j))) + fact=test_appl(t%lep%XS_HpjHmj_ratio(j)*(t%BR_Hpjcs(j)+t%BR_Hpjcb(j)+t%BR_Hpjtaunu(j))) case(02671) fact=test_appl(t%lep%XS_HpjHmj_ratio(j)*(t%BR_HpjhiW(j,i)*t%BR_hjbb(i))**2.0D0) case(02672) fact=test_appl( 4.0D0 * t%lep%XS_HpjHmj_ratio(j)*t%BR_HpjhiW(j,i) * & & t%BR_Hpjtaunu(j)*t%BR_hjbb(i)**2.0D0) !Multiplied by 4 (see LEP paper) case(3381) fact=test_appl(t%tev%XS_hj_ratio(j) * t%tev%XS_H_SM(j) * t%BR_hjhihi(j,i) * & & t%BR_hjmumu(i)**2.0D0 )! arXiv:0905.3381 table I, absolute XS in fb case(3382) fact=test_appl(t%tev%XS_hj_ratio(j) * t%tev%XS_H_SM(j) * t%BR_hjhihi(j,i) * & & 2.0D0 * t%BR_hjtautau(i) * t%BR_hjmumu(i) )! arXiv:0905.3381 table II (also using fig 3b), absolute XS in fb case(5053) fact=test_appl(t%lhc8%XS_hj_ratio(j)*t%lhc8%XS_H_SM(j) * t%BR_hjhihi(j,i)) case(13032) ! Limit given in fb, multiply by 1000. fact=test_appl(1000.0D0*t%lhc8%XS_hj_ratio(j)*t%lhc8%XS_H_SM(j)*t%BR_hjhihi(j,i) ) ! case(011811) ! ! Limit given in pb ! fact=test_appl(t%lhc8%XS_hj_ratio(j)*t%lhc8%XS_H_SM(j)*t%BR_hjhihi(j,i) * & ! & t%BR_hjtautau(i) * t%BR_hjbb(i) ) ! case(011812) ! ! Limit given in fb, multiply by 1000. ! fact=test_appl(1000.0D0*t%lhc8%XS_hj_ratio(j)*t%lhc8%XS_H_SM(j)*t%BR_hjhiZ(j,i) * & ! & t%BR_hjtautau(i) * BR_Zll ) ! case(044781) ! ! Limit given in pb (Z->ll unfolded) ! fact=test_appl(t%lhc8%XS_gg_hj_ratio(j)*t%lhc8%XS_gg_H_SM(j)*t%BR_hjhiZ(j,i) * & ! & t%BR_hjtautau(i)) ! case(044782) ! ! Limit given in pb (Z->ll unfolded) ! fact=test_appl(t%lhc8%XS_gg_hj_ratio(j)*t%lhc8%XS_gg_H_SM(j)*t%BR_hjhiZ(j,i) * & ! & t%BR_hjbb(i) ) ! case(20160151) ! ! Limit given in pb (Z->ll unfolded) ! fact=test_appl(t%lhc13%XS_gg_hj_ratio(j)*t%lhc13%XS_gg_H_SM(j)*t%BR_hjhiZ(j,i) * & ! & t%BR_hjbb(i) ) ! case(20160152) ! ! Limit given in pb (Z->ll unfolded) ! fact=test_appl(t%lhc13%XS_bb_hj_ratio(j)*t%lhc13%XS_bb_H_SM(j)*t%BR_hjhiZ(j,i) * & ! & t%BR_hjbb(i) ) case(06896) ! Limit given in fb, multiply by 1000. fact=test_appl(1000.0D0*t%lhc8%XS_hj_ratio(j)*t%lhc8%XS_H_SM(j)*t%BR_hjhihi(j,i) * & - & t%BR_hjgaga(i) * t%BR_hjbb(i) ) + & t%BR_hjgaga(i) * t%BR_hjbb(i) ) case(16032) ! Limit given in fb, multiply by 1000. fact=test_appl(1000.0D0*t%lhc13%XS_hj_ratio(j)*t%lhc13%XS_H_SM(j)*t%BR_hjhihi(j,i) * & - & t%BR_hjgaga(i) * t%BR_hjbb(i) ) + & t%BR_hjgaga(i) * t%BR_hjbb(i) ) ! case(14013) ! ! Limit given in fb, multiply by 1000. ! fact=test_appl(1000.0D0*t%lhc8%XS_hj_ratio(j)*t%lhc8%XS_H_SM(j)*t%BR_hjhihi(j,i) * & ! & t%BR_hjbb(i) * t%BR_hjbb(i) ) case(16002) ! Limit given in fb, multiply by 1000. fact=test_appl(1000.0D0*t%lhc13%XS_hj_ratio(j)*t%lhc13%XS_H_SM(j)*t%BR_hjhihi(j,i) * & & t%BR_hjbb(i) * t%BR_hjbb(i) ) case(150011) ! Limit given in fb, multiply by 1000. fact=test_appl(1000.0D0*t%lhc8%XS_hj_ratio(j)*t%lhc8%XS_H_SM(j)*t%BR_hjhiZ(j,i) * & & t%BR_hjtautau(i) * BR_Zll ) case(150012) ! Limit given in fb, multiply by 1000. fact=test_appl(1000.0D0*t%lhc8%XS_hj_ratio(j)*t%lhc8%XS_H_SM(j)*t%BR_hjhiZ(j,i) * & & t%BR_hjbb(i) * BR_Zll ) case(16010) ! Limit given in fb, multiply by 1000. fact=test_appl(1000.0D0*t%lhc13%XS_hj_ratio(j)*t%lhc13%XS_H_SM(j)*t%BR_hjhiZ(j,i) * & - & t%BR_hjbb(i) * BR_Zll ) + & t%BR_hjbb(i) * BR_Zll ) case(14022) fact=test_appl( t%BR_hjhihi(j,i) * t%BR_hjtautau(i) * t%BR_hjtautau(i) ) case(150600424) fact=test_appl(1000.0D0*t%lhc8%XS_hj_ratio(j)*t%lhc8%XS_H_SM(j) * & & t%BR_hkhjhi(j,i,i)*t%BR_hjmumu(i)**2.0D0 ) case(16035) fact=test_appl(1000.0D0*t%lhc13%XS_hj_ratio(j)*t%lhc13%XS_H_SM(j) * & & t%BR_hkhjhi(j,i,i)*t%BR_hjmumu(i)**2.0D0 ) case(6227) f=0 do j=1,npart2 if( (abs(massj(jj)-massj(j)).le.S95_t2(c)%deltax) & & .and.( massj(jj).le.massj(j) ) )then crosssection=test_appl( t%tev%XS_hjb_ratio(j)*t%tev%XS_Hb_c4_SM(j) ) if(crosssection.gt.vsmall)then f=f+1 fact=fact+crosssection masstot=massj(j)+masstot endif endif enddo - + if(f.ne.0)then Mj_av=masstot/dble(f) endif case(02301) fact = ( & t%lhc8%XS_hj_ratio(j)*t%lhc8%XS_H_SM(j) + & t%lhc8%XS_vbf_ratio(j)*t%lhc8%XS_vbf_SM(j) + & t%lhc8%XS_hjZ_ratio(j)*t%lhc8%XS_HZ_SM(j) + & t%lhc8%XS_hjW_ratio(j)*t%lhc8%XS_HW_SM(j) + & t%lhc8%XS_tthj_ratio(j)*t%lhc8%XS_ttH_SM(j) ) * t%BR_hjgaga(j) ! DD, Nov 8 case(20160341) fact=test_appl(t%lhc13%XS_bb_hj_ratio(j)*t%lhc13%XS_bb_H_SM(j) & & * t%BR_hjhiZ(j,i) * t%BR_hjbb(i)) - + case(20160342) fact=test_appl(t%lhc13%XS_gg_hj_ratio(j) * t%lhc13%XS_gg_H_SM(j) & & * t%BR_hjhiZ(j,i) * t%BR_hjbb(i)) case(2016059) -! Data given in fb - (multiply by 1000) +! Data given in fb - (multiply by 1000) ! ( Acceptance factor linearly increasing between 200 and 700 GeV, then constant) acceptance = 0.61D0 if(Mj_av.le.700.0D0) then acceptance = ((Mj_av-200.0D0)*0.61D0+(700.0D0-Mj_av)*0.54D0)/500.0D0 endif fact =acceptance*1000.0D0*( & t%lhc13%XS_hj_ratio(j)*t%lhc13%XS_H_SM(j) + & t%lhc13%XS_vbf_ratio(j)*t%lhc13%XS_vbf_SM(j) + & t%lhc13%XS_hjZ_ratio(j)*t%lhc13%XS_HZ_SM(j) + & t%lhc13%XS_hjW_ratio(j)*t%lhc13%XS_HW_SM(j) + & t%lhc13%XS_tthj_ratio(j)*t%lhc13%XS_ttH_SM(j) ) * t%BR_hjgaga(j) case(4147) -! Data given in fb - (multiply by 1000) +! Data given in fb - (multiply by 1000) ! ( Acceptance factor linearly increasing between 200 and 800 GeV, then constant) acceptance = 0.63D0 if(Mj_av.le.800.0D0) then acceptance = ((Mj_av-200.0D0)*0.63D0+(800.0D0-Mj_av)*0.54D0)/600.0D0 endif fact =acceptance*1000.0D0*( & t%lhc13%XS_hj_ratio(j)*t%lhc13%XS_H_SM(j) + & t%lhc13%XS_vbf_ratio(j)*t%lhc13%XS_vbf_SM(j) + & t%lhc13%XS_hjZ_ratio(j)*t%lhc13%XS_HZ_SM(j) + & t%lhc13%XS_hjW_ratio(j)*t%lhc13%XS_HW_SM(j) + & t%lhc13%XS_tthj_ratio(j)*t%lhc13%XS_ttH_SM(j) ) * t%BR_hjgaga(j) case(003892) fact = ( & t%lhc8%XS_hj_ratio(j)*t%lhc8%XS_H_SM(j) + & - t%lhc8%XS_vbf_ratio(j)*t%lhc8%XS_vbf_SM(j)) * t%BR_hjWW(j) + t%lhc8%XS_vbf_ratio(j)*t%lhc8%XS_vbf_SM(j)) * t%BR_hjWW(j) case(20160791,160331) fact = 1000.0D0 * t%lhc13%XS_hj_ratio(j)*t%lhc13%XS_H_SM(j) * t%BR_hjZZ(j) * BR_Zll**2.0D0 case(160332) fact = 1000.0D0 * t%lhc13%XS_vbf_ratio(j)*t%lhc13%XS_VBF_SM(j) * t%BR_hjZZ(j) * BR_Zll**2.0D0 case(01123) ! Limit given in pb fact = t%lhc13%XS_hj_ratio(j)*t%lhc13%XS_H_SM(j) * t%BR_hjWW(j) case(170121,06386) ! Limit given in pb fact = t%lhc13%XS_hj_ratio(j)*t%lhc13%XS_H_SM(j) * t%BR_hjZZ(j) case default stop 'wrong input to function calcfact_t2 in module S95tables' - end select + end select if(S95_t2(c)%particle_x1.eq.not_a_particle)then select case(S95_t2(c)%id) case(6227) axis_i=t%BR_hjtautau(jj) case(02301,2016059,4147,20160791,06386) axis_i=t%particle( S95_t2(c)%particle_x2 )%GammaTot(j) / & - & t%particle( S95_t2(c)%particle_x2 )%M(j) + & t%particle( S95_t2(c)%particle_x2 )%M(j) case(01123) ! in percent axis_i=t%particle( S95_t2(c)%particle_x2 )%GammaTot(j) / & & t%particle( S95_t2(c)%particle_x2 )%M(j) * 100.0D0 case(003892) axis_i=t%particle( S95_t2(c)%particle_x2 )%GammaTot(j) / & & t%GammaTot_SM(j) case(160331,160332,170121) axis_i=t%particle( S95_t2(c)%particle_x2 )%GammaTot(j) case(6065) axis_i=t%BR_Hpjtaunu(j) - case default + case default stop 'Problem in subroutine calcfact_t2 (y1)' end select select case(S95_t2(c)%id) case(02301,2016059,4147,20160791,06386,01123,003892,160331,160332,170121) if(extrapolatewidth) then if(axis_i.gt.S95_t2(c)%xmax1) then axis_i = S95_t2(c)%xmax1 endif - endif - case default + endif + case default continue end select else axis_i=Mi_av endif if(S95_t2(c)%particle_x2.eq.not_a_particle)then select case(S95_t2(c)%id) - case default + case default stop 'Problem in subroutine calcfact_t2 (y2)' end select else axis_j=Mj_av endif - cfact_t2=cfact_t2+fact - + cfact_t2=cfact_t2+fact + nc=f deallocate(massi) deallocate(massj) - + contains - - !******************************************************** - function test_appl(x) + + !******************************************************** + function test_appl(x) !******************************************************** use usefulbits, only : div implicit none !--------------------------------------input double precision :: x !-----------------------------------function double precision :: test_appl - !------------------------------------------- + !------------------------------------------- double precision, allocatable :: XS_ratio(:), ds(:) double precision :: s integer :: k - + select case(S95_t2(c)%id) case(150,160,180,190,200,210,220,230,240,3381,3382,13032,06896,14013,& & 16002,150011,150012,16032,16029,011811,011812,044781,044782,20160151,& & 20160152,16010,17002,150600424,16035,20160341,20160342) if(S95_t2(c)%needs_M2_gt_2M1.and.(massj(j).lt.2.0D0*massi(i)))then - test_appl=0.0D0 + test_appl=0.0D0 elseif(massj(j).lt.massi(i))then - test_appl=0.0D0 + test_appl=0.0D0 else test_appl=x endif case(02671,02672) if(massj(j).lt.massi(i)+3.0D0) then - test_appl=0.0D0 + test_appl=0.0D0 else test_appl=x - endif + endif case(6065) if( (t%BR_Hpjtaunu(j) + t%BR_Hpjcs(j) + t%BR_Hpjcb(j)).gt.1.0D0 ) then test_appl=0.0D0 write(*,*) 'WARNING: Sum of charged Higgs branching ratios (cs,cb,taunu) > 1.' else test_appl=x - endif + endif case(14022) ! SM likeness test of the heavier Higgs boson allocate(XS_ratio(4),ds(4)) XS_ratio=(/ div( t%lhc8%XS_hj_ratio(j),t%lhc8%XS_H_SM(j),0.0D0,1.0D9), & div( t%lhc8%XS_vbf_ratio(j),t%lhc8%XS_vbf_SM(j),0.0D0,1.0D9), & div( t%lhc8%XS_hjW_ratio(j),t%lhc8%XS_HW_SM(j),0.0D0,1.0D9), & div( t%lhc8%XS_hjZ_ratio(j),t%lhc8%XS_HZ_SM(j),0.0D0,1.0D9) /) s=sum(XS_ratio)/4. do k=1,4 ds(k)= div((XS_ratio(k)-s), s, 0.0D0, 1.0D9) enddo if(S95_t2(c)%needs_M2_gt_2M1.and.(massj(j).lt.2.0D0*massi(i)))then test_appl=0.0D0 elseif(massj(j).lt.massi(i))then test_appl=0.0D0 elseif(maxval(ds).gt.0.1D0) then ! SM likeness test of the heavier Higgs boson test_appl=0.0D0 else test_appl=s*x - endif + endif case(5053) if(S95_t2(c)%needs_M2_gt_2M1.and.(massj(j).lt.2.0D0*massi(i)))then - test_appl=0.0D0 + test_appl=0.0D0 !----Check for sufficiently SM-like BRs to gaga and bb of lighter Higgs elseif(abs(t%BR_hjgaga(i)-t%BR_Hgaga_SM(i)).gt.0.05*t%BR_Hgaga_SM(i)) then - test_appl=0.0D0 + test_appl=0.0D0 elseif(abs(t%BR_hjbb(i)-t%BR_Hbb_SM(i)).gt.0.05*t%BR_Hbb_SM(i)) then - test_appl=0.0D0 + test_appl=0.0D0 else test_appl=x - endif + endif case(905,906,907,909) if(abs(minval(massi)-massi(i)).gt.vsmall)then !checking that lightest neutralino in process is lightest neutralino in model test_appl=0.0D0 elseif(massj(j).lt.massi(i))then - test_appl=0.0D0 - else - test_appl=x + test_appl=0.0D0 + else + test_appl=x endif case(908) if( abs(t%BR_CjWNi(j,i)-1.0D0) .gt. eps2 )then test_appl=0.0D0 elseif(abs(minval(massi)-massi(i)).gt.vsmall)then !checking that lightest neutralino in process is lightest neutralino in model test_appl=0.0D0 elseif(massj(j).lt.massi(i))then - test_appl=0.0D0 + test_appl=0.0D0 else - test_appl=x + test_appl=x endif case(910) if( abs(t%BR_NjZNi(j,i)-1.0D0) .gt. eps2 )then test_appl=0.0D0 elseif(abs(minval(massi)-massi(i)).gt.vsmall)then !checking that lightest neutralino in process is lightest neutralino in model test_appl=0.0D0 elseif(massj(j).lt.massi(i))then - test_appl=0.0D0 + test_appl=0.0D0 else - test_appl=x + test_appl=x endif case(6227) if( ( t%BR_hjtautau(j)+t%BR_hjbb(j) ).le.0.98D0)then - test_appl=0.0D0 + test_appl=0.0D0 else - test_appl=x + test_appl=x endif case default stop 'error in function test_appl' - end select + end select end function test_appl - - end subroutine calcfact_t2 - - !******************************************************** + + end subroutine calcfact_t2 + + !******************************************************** subroutine outputproc_t1(tlistn,jj,k,descrip) - !******************************************************** + !******************************************************** ! uses information about the process to output a description ! for processes using table type 1 ! note: at the moment, np(x) (and so ii and jj) needs to be 1 digit long i.e. nH<10 - !******************************************************** + !******************************************************** implicit none !--------------------------------------input integer :: tlistn - integer :: jj,k + integer :: jj,k !-----------------------------------internal character(LEN=2) :: j character(LEN=45) :: label character(LEN=200):: descrip !------------------------------------------- - + if(jj.ne.0)then - write(j,'(I2)')jj + write(j,'(I2)')jj j=adjustl(j) else j='j' endif if(k.eq.21)then label='' !no need to lable each line in Key.dat else label='('//trim(S95_t1(tlistn)%label)//')' - endif - - descrip='' - + endif + + descrip='' + select case(S95_t1(tlistn)%id) case(142) - descrip=' (e e)->(h'//j//')Z->(b b-bar)Z ' //label + descrip=' (e e)->(h'//j//')Z->(b b-bar)Z ' //label case(143) descrip=' (e e)->(h'//j//')Z->(tau tau)Z ' //label case(300) - descrip=' (e e)->(h'//j//')Z->(...)Z ' //label + descrip=' (e e)->(h'//j//')Z->(...)Z ' //label case(400,401,402,403) - descrip=' (e e)->(h'//j//')Z->(invisible)Z ' //label + descrip=' (e e)->(h'//j//')Z->(invisible)Z ' //label case(500) - descrip=' (e e)->(h'//j//')Z->(gamma gamma)Z ' //label + descrip=' (e e)->(h'//j//')Z->(gamma gamma)Z ' //label case(600,601) - descrip=' (e e)->(h'//j//')Z->(2 jets)Z ' //label + descrip=' (e e)->(h'//j//')Z->(2 jets)Z ' //label case(711) - descrip=' (e e)->b b-bar(h'//j//')->b b-bar(b b-bar) where h'//j//' is CP even ' //label + descrip=' (e e)->b b-bar(h'//j//')->b b-bar(b b-bar) where h'//j//' is CP even ' //label case(713) - descrip=' (e e)->b b-bar(h'//j//')->b b-bar(b b-bar) where h'//j//' is CP odd ' //label + descrip=' (e e)->b b-bar(h'//j//')->b b-bar(b b-bar) where h'//j//' is CP odd ' //label case(721,741) - descrip=' (e e)->b b-bar(h'//j//')->b b-bar(tau tau) where h'//j//' is CP even ' //label + descrip=' (e e)->b b-bar(h'//j//')->b b-bar(tau tau) where h'//j//' is CP even ' //label case(723,743) - descrip=' (e e)->b b-bar(h'//j//')->b b-bar(tau tau) where h'//j//' is CP odd ' //label + descrip=' (e e)->b b-bar(h'//j//')->b b-bar(tau tau) where h'//j//' is CP odd ' //label case(731) - descrip=' (e e)->tau tau(h'//j//')->tau tau(tau tau) where h'//j//' is CP even ' //label + descrip=' (e e)->tau tau(h'//j//')->tau tau(tau tau) where h'//j//' is CP even ' //label case(733) - descrip=' (e e)->tau tau(h'//j//')->tau tau(tau tau) where h'//j//' is CP odd ' //label + descrip=' (e e)->tau tau(h'//j//')->tau tau(tau tau) where h'//j//' is CP odd ' //label case(801,811,821) descrip=' (e e)->(H'//j//'+)(H'//j//'-)->4 quarks ' //label case(802) descrip=' (e e)->(H'//j//'+)(H'//j//'-)->(2 quarks) tau nu ' //label case(803,813) descrip=' (e e)->(H'//j//'+)(H'//j//'-)->tau nu tau nu' //label - case(5482,5570,8742,4493,9475,5876,1024,9889,3534,6089,10235,3047,10799,3564,6166,6296) - descrip=' (p p-bar)->Z(h'//j//')->l l (b b-bar) ' //label - case(9236,3930,8958,6039,3216,10433,6221,10600) - descrip=' (p p-bar)->h'//j//'->W W ' //label - case(9219,9463,5472,8957,9596,5828,1970,3493,5972,3155,5613,9868,10068,6092,10217,10239,10796,0874,6220,6309) - descrip=' (p p-bar)->W(h'//j//')->l nu (b b-bar) ' //label - case(5489) - descrip=' (p p-bar)->h'//j//'->W W->e mu ' //label - case(5624) + case(5482,5570,8742,4493,9475,5876,1024,9889,3534,6089,10235,3047,10799,3564,6166,6296) + descrip=' (p p-bar)->Z(h'//j//')->l l (b b-bar) ' //label + case(9236,3930,8958,6039,3216,10433,6221,10600) + descrip=' (p p-bar)->h'//j//'->W W ' //label + case(9219,9463,5472,8957,9596,5828,1970,3493,5972,3155,5613,9868,10068,6092,10217,10239,10796,0874,6220,6309) + descrip=' (p p-bar)->W(h'//j//')->l nu (b b-bar) ' //label + case(5489) + descrip=' (p p-bar)->h'//j//'->W W->e mu ' //label + case(5624) descrip=' (p p-bar)->h'//j//'->W W->l l ' //label - case(3331) + case(3331) descrip=' (p p-bar)->h'//j//'->V V ' //label - case(5757) + case(5757) descrip=' (p p-bar)->h'//j//'/VBF->W W->l l where h'//j//' is SM-like ' //label - case(5485,5873) - descrip=' (p p-bar)->W(h'//j//')->W W W->l l nu nu ' //label - case(9071,2491,5740,5980,1014,3363,4555) - descrip=' (p p-bar)->h'//j//'->tau tau ' //label - case(8961,9465,9290,9713,9674,0598,9897,9998,9999,6008,6096,6183,3233,6229,6304,10606,10806,10884) - descrip=' (p p-bar)->h'//j//'+... where h'//j//' is SM-like ' //label - case(9284,5503,5726,3556,10105,1931,4782) - descrip=' (p p-bar)->h'//j//'(b/b-bar)->(b b-bar) (b/b-bar) ' //label - case(6224,6225,6226) - descrip=' (p p-bar)->h'//j//'(b/b-bar)->(b b-bar) (b/b-bar) or (tau tau) (b/b-bar) ' //label - case(7307) - descrip=' (p p-bar)->W(h'//j//')->W W W ' //label - case(6301) - descrip=' (p p-bar)->V h'//j//'->V W W ' //label - case(5601,5737,1514) - descrip=' (p p-bar)->h'//j//'+...->gamma gamma+... ' //label - case(5858,6177,6295,1887,10065,10485,4960) - descrip=' (p p-bar)->h'//j//'+...->gamma gamma+... where h'//j//' is SM-like ' //label - case(7081,9166,9483,5586,9642,1266,0432,9891,5285,3935,6087,6170,10212,6223,6299,10583,10798) - descrip=' (p p-bar)->V h'//j//'-> (b b-bar) +missing Et where h'//j//' is SM-like ' //label - case(10596) - descrip=' (p p-bar)->V h'//j//'-> (b b-bar) l nu where h'//j//' is SM-like ' //label - case(6091,1268) + case(5485,5873) + descrip=' (p p-bar)->W(h'//j//')->W W W->l l nu nu ' //label + case(9071,2491,5740,5980,1014,3363,4555) + descrip=' (p p-bar)->h'//j//'->tau tau ' //label + case(8961,9465,9290,9713,9674,0598,9897,9998,9999,6008,6096,6183,3233,6229,6304,10606,10806,10884) + descrip=' (p p-bar)->h'//j//'+... where h'//j//' is SM-like ' //label + case(9284,5503,5726,3556,10105,1931,4782) + descrip=' (p p-bar)->h'//j//'(b/b-bar)->(b b-bar) (b/b-bar) ' //label + case(6224,6225,6226) + descrip=' (p p-bar)->h'//j//'(b/b-bar)->(b b-bar) (b/b-bar) or (tau tau) (b/b-bar) ' //label + case(7307) + descrip=' (p p-bar)->W(h'//j//')->W W W ' //label + case(6301) + descrip=' (p p-bar)->V h'//j//'->V W W ' //label + case(5601,5737,1514) + descrip=' (p p-bar)->h'//j//'+...->gamma gamma+... ' //label + case(5858,6177,6295,1887,10065,10485,4960) + descrip=' (p p-bar)->h'//j//'+...->gamma gamma+... where h'//j//' is SM-like ' //label + case(7081,9166,9483,5586,9642,1266,0432,9891,5285,3935,6087,6170,10212,6223,6299,10583,10798) + descrip=' (p p-bar)->V h'//j//'-> (b b-bar) +missing Et where h'//j//' is SM-like ' //label + case(10596) + descrip=' (p p-bar)->V h'//j//'-> (b b-bar) l nu where h'//j//' is SM-like ' //label + case(6091,1268) descrip=' (p p-bar)->V h'//j//'-> ll + X where h'//j//' is SM-like ' //label - case(10010) - descrip=' (p p-bar)->V (h'//j//')/VBF-> (b b-bar) q q where h'//j//' is SM-like ' //label - case(10607) - descrip=' (p p-bar)->V (h'//j//')/VBF-> (b b-bar)+... where h'//j//' is SM-like ' //label - case(6436) - descrip=' (p p-bar)->V (h'//j//')-> (b b-bar)+...' //label - case(9248,10133,10439,6305,6286) + case(10010) + descrip=' (p p-bar)->V (h'//j//')/VBF-> (b b-bar) q q where h'//j//' is SM-like ' //label + case(10607) + descrip=' (p p-bar)->V (h'//j//')/VBF-> (b b-bar)+... where h'//j//' is SM-like ' //label + case(6436) + descrip=' (p p-bar)->V (h'//j//')-> (b b-bar)+...' //label + case(9248,10133,10439,6305,6286) descrip=' (p p-bar)->h'//j//'+...->tau tau +... where h'//j//' is SM-like ' //label - case(4800,5845,6171) - descrip=' (p p-bar)->h'//j//'+...->tau tau (2 jets) where h'//j//' is SM-like ' //label - case(5871) + case(4800,5845,6171) + descrip=' (p p-bar)->h'//j//'+...->tau tau (2 jets) where h'//j//' is SM-like ' //label + case(5871) descrip=' (p p-bar)->h'//j//'+...->W W +... ->l l nu nu +... where h'//j//' is SM-like ' //label - case(6082) + case(6082) descrip=' (p p-bar)->h'//j//'+...->V V +... ->e mu missing Et +... where h'//j//' is SM-like ' //label - case(6182,6219) + case(6182,6219) descrip=' (p p-bar)->h'//j//'+...->V V +... ->l l missing Et +... where h'//j//' is SM-like ' //label - case(6276) - descrip=' (p p-bar)->h'//j//'+...->V V +... ->l l l missing Et +... where h'//j//' is SM-like ' //label - case(10573) + case(6276) + descrip=' (p p-bar)->h'//j//'+...->V V +... ->l l l missing Et +... where h'//j//' is SM-like ' //label + case(10573) descrip=' (p p-bar)->h'//j//'+...->V V +... ->l l l l +... where h'//j//' is SM-like ' //label - case(5984,9714,6006,9022,9023,0710,9887,4162,10102,4481,4468,6095,10432,6179,6302,10599) - descrip=' (p p-bar)->h'//j//'+...->W W +... where h'//j//' is SM-like ' //label - case(0024,5985,0968,5974,6083,4885) + case(5984,9714,6006,9022,9023,0710,9887,4162,10102,4481,4468,6095,10432,6179,6302,10599) + descrip=' (p p-bar)->h'//j//'+...->W W +... where h'//j//' is SM-like ' //label + case(0024,5985,0968,5974,6083,4885) descrip=' (p p-bar)->h'//j//'(b/b-bar)->(tau tau) (b/b-bar) ' //label - case(5739,10574) - descrip=' (p p-bar)->t t-bar h'//j//'->t t-bar b b-bar ' //label - case(2012135,12025) - descrip=' (p p)->t t-bar h'//j//'->t t-bar b b-bar ' //label - case(0611) - descrip=' (p p-bar)->h'//j//'->Z gamma ' //label + case(5739,10574) + descrip=' (p p-bar)->t t-bar h'//j//'->t t-bar b b-bar ' //label + case(2012135,12025) + descrip=' (p p)->t t-bar h'//j//'->t t-bar b b-bar ' //label + case(0611) + descrip=' (p p-bar)->h'//j//'->Z gamma ' //label case(10500) descrip=' (p p-bar)->V h'//j//'-> V tau tau ' //label case(1811) - descrip=' t->(H'//j//'+)b->(2 quarks) b ' //label + descrip=' t->(H'//j//'+)b->(2 quarks) b ' //label case(1812,2011138,2011151,2760,2013090,2014050,14020,8353,7712,11002,11008,160311,79152) - descrip=' t->(H'//j//'+)b->tau nu b ' //label + descrip=' t->(H'//j//'+)b->tau nu b ' //label case(1269,1270,2011094,13035) - descrip=' t->(H'//j//'+)b->(c s) b' //label + descrip=' t->(H'//j//'+)b->(c s) b' //label case(16030) - descrip=' t->(H'//j//'+)b->(c b) b' //label - case(11006,11017,110271,110272,14161,14162,5064,2012017,2011150) + descrip=' t->(H'//j//'+)b->(c b) b' //label + case(11006,11017,110271,110272,14161,14162,5064,2012017,2011150) descrip=' (p p)->h'//j//'/VBF->Z Z-> l l q q where h'//j//' is SM-like ' //label - case(2011048,11004,11015,2011131) + case(2011048,11004,11015,2011131) descrip=' (p p)->h'//j//'/VBF->Z Z-> l l l l where h'//j//' is SM-like ' //label - case(2011162,1415,2012092) + case(2011162,1415,2012092) descrip=' (p p)->h'//j//'/VBF/V h'//j//'->Z Z-> l l l l where h'//j//' is SM-like ' //label - case(11025,1997,12041) + case(11025,1997,12041) descrip=' (p p)->h'//j//'/VBF/V/tt h'//j//'->Z Z-> l l l l where h'//j//' is SM-like ' //label - case(20130131) + case(20130131) descrip=' (p p)->h'//j//'->Z Z-> l l l l where h'//j//' is SM-like ' //label - case(20130132) + case(20130132) descrip=' (p p)->h'//j//'/ggF h->Z Z-> l l l l ' //label - case(20130133) + case(20130133) descrip=' (p p)->h'//j//'/VBF/V h->Z Z-> l l l l ' //label case(04670) descrip=' (p p)->h'//j//'->h(SM,125)h(SM,125)-> bb/tautau/WW/gaga (combination) ' //label case(046701,8567) descrip=' (p p)->h'//j//'->h(SM,125)h(SM,125)-> gaga WW ' //label case(4873) descrip=' (p p)->h'//j//'->h(SM,125)h(SM,125)-> gaga bb ' //label case(046702,336) descrip=' (p p)->h'//j//'->h(SM,125)h(SM,125)-> bb tautau ' //label case(17030) descrip=' (p p)->h'//j//'->h(SM,125)h(SM,125)-> bb/tautau/WW/ZZ/gaga (combination) ' //label - case(059301) + case(059301) descrip=' (p p)->h'//j//'->Z Z ' //label - case(059302) + case(059302) descrip=' (p p)->h'//j//'(VBF)->Z Z ' //label - case(130021) + case(130021) descrip=' (p p)->h'//j//'->Z Z-> l l l l (low mass) where h'//j//' is SM-like ' //label - case(130022) + case(130022) descrip=' (p p)->h'//j//'->Z Z-> l l l l (high mass) where h'//j//' is SM-like ' //label - case(16034) + case(16034) descrip=' (p p)->h'//j//'/VBF->Z Z-> l l q q, with single-Higgs/VBF ratio profiled ' //label - case(009361) + case(009361) descrip=' (p p)->h'//j//'->V V where h'//j//' is SM-like ' //label case(11005,11016,11026,3478) descrip=' (p p)->h'//j//'/VBF->V V-> l l nu nu where h'//j//' is SM-like ' //label - case(3357,2011148,2012016) + case(3357,2011148,2012016) descrip=' (p p)->h'//j//'->V V-> l l nu nu where h'//j//' is SM-like ' //label case(11013,11028) descrip=' (p p)->h'//j//'/VBF->V V-> l l tau tau where h'//j//' is SM-like ' //label - case(2011026) + case(2011026) descrip=' (p p)->h'//j//'/VBF->V V where h'//j//' is SM-like ' //label - case(5429,2011052,2011111,2011134) + case(5429,2011052,2011111,2011134) descrip=' (p p)->h'//j//'->W W ' //label - case(063861) + case(063861) descrip=' (g g)->h'//j//' -> Z Z -> 4l+2l2nu (employs NWA)' //label - case(20160821) + case(20160821) descrip=' (g g)->h'//j//' -> Z Z -> llnunu (employs NWA)' //label - case(20160822) + case(20160822) descrip=' (g g)->h'//j//' -> Z Z -> llqq (employs NWA)' //label - case(20160792) + case(20160792) descrip=' (g g)->h'//j//' -> Z Z -> 4l (low-mass range, employs NWA)' //label - case(20160823) - descrip=' (p p)->h'//j//'(VBF) -> Z Z -> llqq (employs NWA)' //label - case(2016062) + case(20160823) + descrip=' (p p)->h'//j//'(VBF) -> Z Z -> llqq (employs NWA)' //label + case(2016062) descrip=' (p p)->h'//j//' -> W W -> lnuqq (employs NWA)' //label - case(20160741) + case(20160741) descrip=' (p p)->h'//j//' -> W W -> lnulnu (employs NWA)' //label - case(20160742) + case(20160742) descrip=' (p p)->h'//j//'(VBF) -> W W -> lnulnu (employs NWA)' //label - case(20160793) - descrip=' (p p)->h'//j//'(VBF) -> Z Z -> 4l (employs NWA)' //label - case(0038911) + case(20160793) + descrip=' (p p)->h'//j//'(VBF) -> Z Z -> 4l (employs NWA)' //label + case(0038911) descrip=' (p p)->h'//j//'->W W (employs NWA)' //label - case(0038912) + case(0038912) descrip=' (p p)->VBF, h'//j//'->W W (employs NWA)' //label - case(0038913) + case(0038913) descrip=' (p p)->h'//j//'->W W (assumes SM Higgs width, employs CPS)' //label - case(0038914) + case(0038914) descrip=' (p p)->VBF, h'//j//'->W W (assumes SM Higgs width, employs CPS)' //label - case(11034,12039,13009,2012078) - descrip=' (p p)->W(h'//j//')->W W W where h'//j//' is SM-like ' //label - case(12006) + case(11034,12039,13009,2012078) + descrip=' (p p)->W(h'//j//')->W W W where h'//j//' is SM-like ' //label + case(12006) descrip=' (p p)->W(h'//j//')->W tau tau ' //label - case(12051) + case(12051) descrip=' (p p)->V(h'//j//')->V tau tau ' //label - case(2012012,2012158,2013030) + case(2012012,2012158,2013030) descrip=' (p p)->h'//j//'->W W where h'//j//' is SM-like ' //label case(110212) descrip=' (p p)->V h'//j//'/VBF->gamma gamma ' //label - case(17013,2011025,2011085,2011161,5895,1414,2012091,2012168,1487,12001,12015,13001,11010,11030,11021) + case(17013,2011025,2011085,2011161,5895,1414,2012091,2012168,1487,12001,12015,13001,11010,11030,11021) descrip=' (p p)->h'//j//'+...->gamma gamma+... where h'//j//' is SM-like ' //label - case(6583,14006,14037,2018025) + case(6583,14006,14037,2018025) descrip=' (p p)->h'//j//'/VBF/Wh'//j//'/Zh'//j//'/tth'//j//'->gamma gamma ' //label - case(14031) + case(14031) descrip=' (p p)->h'//j//'->Z gamma -> l l gamma ' //label - case(13006, 13075515,2013009,3051) + case(13006, 13075515,2013009,3051) descrip=' (p p)->h'//j//'+...->gamma Z+... where h'//j//' is SM-like ' //label case(11031,12044,13012) descrip=' (p p)->V h'//j//'->b b where h'//j//' is SM-like ' //label case(13011) descrip=' (p p)->h'//j//'/VBF->bb+... where h'//j//' is SM-like ' //label - case(2011020,2011021) + case(2011020,2011021) descrip=' (p p)->h'//j//'->mu mu (lower mass range) ' //label - case(2011005,3615,2012018) + case(2011005,3615,2012018) descrip=' (p p)->h'//j//'/VBF->W W where h'//j//' is SM-like ' //label - case(12046) + case(12046) descrip=' (p p)->h'//j//'->W W-> l nu q q where h'//j//' is SM-like ' //label - case(11003,11014,2577,11024,1489,12042,13003,13027) - descrip=' (p p)->h'//j//'+...->W W +... where h'//j//' is SM-like ' //label - case(2748,1408,11011,2011163,11022,11032,1488,12008,12045,2011157,2011112,2011135,2012019) - descrip=' (p p)->h'//j//'+... where h'//j//' is SM-like ' //label - case(7214) - descrip=' (p p)->h'//j//'+... where h'//j//' is SM-like ' //label - case(10002,5003,2011132,2012094,110201,110292,12050,13021) + case(11003,11014,2577,11024,1489,12042,13003,13027) + descrip=' (p p)->h'//j//'+...->W W +... where h'//j//' is SM-like ' //label + case(2748,1408,11011,2011163,11022,11032,1488,12008,12045,2011157,2011112,2011135,2012019) + descrip=' (p p)->h'//j//'+... where h'//j//' is SM-like ' //label + case(7214) + descrip=' (p p)->h'//j//'+... where h'//j//' is SM-like ' //label + case(10002,5003,2011132,2012094,110201,110292,12050,13021) descrip=' (p p)->h'//j//'->tau tau ' //label case(2014049,20160852,160372,20170502) descrip=' (p p)->bbh'//j//'->tau tau ' //label case(20140492,20160851,160371,20170501) - descrip=' (p p)->ggh'//j//'->tau tau ' //label - case(11009,11020,2011133,2012014) + descrip=' (p p)->ggh'//j//'->tau tau ' //label + case(11009,11020,2011133,2012014) descrip=' (p p)->h'//j//'/VBF->tau tau +... where h'//j//' is SM-like ' //label case(2012160,12043) descrip=' (p p)->h'//j//'->tau tau +... where h'//j//' is SM-like ' //label case(2013010,7663) descrip=' (p p)->h'//j//'->mu mu +... where h'//j//' is SM-like ' //label - case(2012015) - descrip=' (p p)->V h'//j//'-> (b b-bar) + X where h'//j//' is SM-like ' //label - case(110291) + case(2012015) + descrip=' (p p)->V h'//j//'-> (b b-bar) + X where h'//j//' is SM-like ' //label + case(110291) descrip=' (p p)->h'//j//'/VBF/V h'//j//'/tt h'//j//'->tau tau +... where h'//j//' is SM-like ' //label - case(2011103,2012161,11012) - descrip=' (p p)->V(h'//j//')->V (b b-bar) ' //label - case(13022) - descrip=' (p p)->h'//j//'(VBF)->WW ' //label - case(13013,13441,6682) - descrip=' (p p)->h'//j//'(VBF)->V (invisible) ' //label - case(13018,13442) - descrip=' (p p)->Zh'//j//'->Z (invisible) ' //label - case(13443) - descrip=' (p p)->h'//j//'(VBF)/Zh'//j//', h'//j//'->(invisible) ' //label - case(2013011,3244) - descrip=' (p p)->Vh'//j//'->V (invisible) ' //label + case(2011103,2012161,11012) + descrip=' (p p)->V(h'//j//')->V (b b-bar) ' //label + case(13022) + descrip=' (p p)->h'//j//'(VBF)->WW ' //label + case(13013,13441,6682) + descrip=' (p p)->h'//j//'(VBF)->V (invisible) ' //label + case(13018,13442) + descrip=' (p p)->Zh'//j//'->Z (invisible) ' //label + case(13443) + descrip=' (p p)->h'//j//'(VBF)/Zh'//j//', h'//j//'->(invisible) ' //label + case(2013011,3244) + descrip=' (p p)->Vh'//j//'->V (invisible) ' //label case(160312,2016088,79151,18014) - descrip=' (p p) -> (H'//j//'+) t b -> (tau nu) t b '//label + descrip=' (p p) -> (H'//j//'+) t b -> (tau nu) t b '//label case(1504233) - descrip=' (p p) -> (H'//j//'+) (VBF) -> W Z '//label + descrip=' (p p) -> (H'//j//'+) (VBF) -> W Z '//label case(2016089,3599) - descrip=' (p p) -> (H'//j//'+) t b -> (t b) t b '//label + descrip=' (p p) -> (H'//j//'+) t b -> (t b) t b '//label case(2016071) descrip=' (p p) -> h'//j//' -> h h -> W W gamma gamma, where h lies around 125 (+- 2.5 GeV) '//label case(14013,16002,2016049) descrip=' (p p) -> h'//j//' -> h h -> b b b b, where h lies around 125 (+- 10 GeV) '//label case(011811,16029,17002) descrip=' (p p) -> h'//j//' -> h h -> b b tau tau, where h lies around 125 (+- 10 GeV) '//label - case(14011,044782) - descrip=' (p p) -> h'//j//' -> Z h -> l l b b, where h lies around 125 (+- 10 GeV) '//label - case(011812,044781) - descrip=' (p p) -> h'//j//' -> Z h -> l l tau tau, where h lies around 125 (+- 10 GeV) '//label - case(20160151,180051) - descrip=' (g g) -> h'//j//' -> Z h -> l l b b, where h lies around 125 (+- 10 GeV) '//label - case(20160152,180052) - descrip=' (b b) -> h'//j//' -> Z h -> l l b b, where h lies around 125 (+- 10 GeV) '//label - case(1508329,2015080) + case(14011,044782) + descrip=' (p p) -> h'//j//' -> Z h -> l l b b, where h lies around 125 (+- 10 GeV) '//label + case(011812,044781) + descrip=' (p p) -> h'//j//' -> Z h -> l l tau tau, where h lies around 125 (+- 10 GeV) '//label + case(20160151,180051) + descrip=' (g g) -> h'//j//' -> Z h -> l l b b, where h lies around 125 (+- 10 GeV) '//label + case(20160152,180052) + descrip=' (b b) -> h'//j//' -> Z h -> l l b b, where h lies around 125 (+- 10 GeV) '//label + case(1508329,2015080) descrip=' (p p)->bbh'//j//'->b b ' //label - case(2016025) + case(2016025) descrip=' (p p)->h'//j//'->b b ' //label - case(2016044) + case(2016044) descrip=' (p p)->h'//j//'->Z gamma ' //label - case(201608391) - descrip=' (p p) -> W h -> W a a -> W b b b b, where h lies around 125 (+- 10 GeV) '//label - case(15009) + case(201608391) + descrip=' (p p) -> W h -> W a a -> W b b b b, where h lies around 125 (+- 10 GeV) '//label + case(15009) descrip=' (p p)->b b h'//j//'->b b mu mu ' //label - case(2016004) + case(2016004) descrip=' (p p)->h'//j//'->h h -> b b gamma gamma, where h lies around 125 (+- 2.5 GeV) ' //label - case(17006) + case(17006) descrip=' (p p)->h'//j//'->h h -> b b l l nu nu, where h lies around 125 (+- 10 GeV) ' //label - case(1604833) + case(1604833) descrip=' (p p)->h'//j//'->V V (V=W,Z) ' //label - case(2016056) + case(2016056) descrip=' (p p)->h'//j//'->Z Z-> l l nu nu ' //label - case(20160551) + case(20160551) descrip=' (p p)->h'//j//'->Z Z-> q q q q (boosted jets, using RS graviton limit) ' //label - case(20160552) + case(20160552) descrip=' (p p)->h'//j//'->W W-> q q q q (boosted jets, using RS graviton limit) ' //label case(7355) descrip=' (p p)-> V H (H near 125 GeV) -> h'//j//'h'//j//' -> b b b b ' //label case(17020321,1506534) descrip=' (p p)-> H_{SM-like} near 125 GeV -> h'//j//'h'//j//' -> tau tau tau tau ' //label case(5051) descrip=' (p p)-> H_{SM-like} near 125 GeV -> h'//j//'h'//j//' -> gamma gamma gamma gamma ' //label case(17020322,539) descrip=' (p p)-> H_{SM-like} near 125 GeV -> h'//j//'h'//j//' -> mu mu b b ' //label case(17020323) descrip=' (p p)-> H_{SM-like} near 125 GeV -> h'//j//'h'//j//' -> mu mu tau tau ' //label case default - stop 'wrong input to function outputproc_t1 in module S95tables (1)' - end select + stop 'wrong input to function outputproc_t1 in module S95tables (1)' + end select ! New description string based on data file input ! Added by OS 2012-03-12 if(S95_t1(tlistn)%desc.NE.'') then descrip = trim(S95_t1(tlistn)%desc) // ', h='//j if (S95_t1(tlistn)%SMlike.EQ.1) then descrip = trim(descrip)//' where h is SM-like' endif descrip = trim(descrip)//' '//label endif end subroutine outputproc_t1 - - !******************************************************** + + !******************************************************** subroutine outputproc_t2(tlistn,ii,jj,k,descrip) - !******************************************************** + !******************************************************** ! uses information about the process to output a description ! for processes using table type 1 ! note: at the moment, np(x) (and so ii and jj) needs to be 1 digit long i.e. np(x)<10 - !******************************************************** + !******************************************************** implicit none !--------------------------------------input integer :: tlistn integer :: ii,jj,k !-----------------------------------internal character(LEN=2) :: j,i character(LEN=45) :: label character(LEN=200):: descrip !------------------------------------------- - - if((ii.ne.0).and.(jj.ne.0))then + + if((ii.ne.0).and.(jj.ne.0))then write(i,'(I2)')ii - i=adjustl(i) - write(j,'(I2)')jj + i=adjustl(i) + write(j,'(I2)')jj j=adjustl(j) else i='i' j='j' - endif + endif if(k.eq.21)then label='' !no need to lable each line in Key.dat else label='('//trim(S95_t2(tlistn)%label)//')' endif - + select case(S95_t2(tlistn)%id) - case(150) - descrip=' (ee)->(h'//j//'->h'//i//' h'//i//')Z->(b b b b)Z ' //label - case(160) - descrip=' (ee)->(h'//j//'->h'//i//' h'//i//')Z->(tau tau tau tau)Z ' //label - case(180) + case(150) + descrip=' (ee)->(h'//j//'->h'//i//' h'//i//')Z->(b b b b)Z ' //label + case(160) + descrip=' (ee)->(h'//j//'->h'//i//' h'//i//')Z->(tau tau tau tau)Z ' //label + case(180) descrip=' (ee)->(h'//j//' h'//i//')->(b b b b) ' //label - case(190) + case(190) descrip=' (ee)->(h'//j//' h'//i//')->(tau tau tau tau) ' //label - case(200) + case(200) descrip=' (ee)->(h'//j//'->h'//i//' h'//i//')h'//i//'->(b b b b)b b '//label - case(210) + case(210) descrip=' (ee)->(h'//j//'->h'//i//' h'//i//')h'//i//'->(tau tau tau tau)tau tau '//label - case(220) + case(220) descrip=' (ee)->(h'//j//'->h'//i//' h'//i//')Z->(b b)(tau tau)Z ' //label - case(230) + case(230) descrip=' (ee)->(h'//j//'->b b)(h'//i//'->tau tau) ' //label - case(240) + case(240) descrip=' (ee)->(h'//j//'->tau tau)(h'//i//'->b b) ' //label case(905) descrip=' (ee)->(C'//j//'+)(C'//j//'-)-> (q q N'//i//') (q q N'//i//') ' //label case(906) descrip=' (ee)->(C'//j//'+)(C'//j//'-)-> q q l nu N'//i//' N'//i//' ' //label case(907) descrip=' (ee)->(C'//j//'+)(C'//j//'-)-> (l nu N'//i//') (l nu N'//i//') ' //label case(908) descrip=' (ee)->(C'//j//'+)(C'//j//'-) with all C'//j//' decaying to W + N'//i//' ' //label case(909) descrip=' (ee)->(N'//j//') N'//i//'-> (q q N'//i//') N'//i//' ' //label - case(910) + case(910) descrip=' (ee)->N'//j//' N'//i//' with all N'//j//' decaying to Z + N'//i//' ' //label case(6065) - descrip=' (ee)->(H'//j//'+)(H'//j//'-), with H^(+/-) -> 2 quarks or tau nu (combination)' //label + descrip=' (ee)->(H'//j//'+)(H'//j//'-), with H^(+/-) -> 2 quarks or tau nu (combination)' //label case(02671) - descrip=' (ee)->(H'//j//'+)(H'//j//'-)-> (h'//i//'W)(h'//i//'W), with h'//i//'-> bb' //label + descrip=' (ee)->(H'//j//'+)(H'//j//'-)-> (h'//i//'W)(h'//i//'W), with h'//i//'-> bb' //label case(02672) descrip=' (ee)->(H'//j//'+)(H'//j//'-)-> (h'//i//'W)(tau nu), with h'//i//'-> bb' //label - case(3381) - descrip=' (p p-bar)->h'//j//'->h'//i//' h'//i//'->mu mu mu mu ' //label - case(3382) + case(3381) + descrip=' (p p-bar)->h'//j//'->h'//i//' h'//i//'->mu mu mu mu ' //label + case(3382) descrip=' (p p-bar)->h'//j//'->h'//i//' h'//i//'->tau tau mu mu ' //label - case(5053) + case(5053) descrip=' (p p)->h'//j//'->h'//i//' h'//i//'->gamma gamma b b, where h'//i//' is SM-like around 125 GeV '//label - case(13032,06896,16032) + case(13032,06896,16032) descrip=' (p p)->h'//j//'->h'//i//' h'//i//'->gamma gamma b b, where h'//i//' lies around 125 GeV '//label - case(011811) + case(011811) descrip=' (p p)->h'//j//'->h'//i//' h'//i//'->b b tau tau, where h'//i//' lies around 125 GeV '//label - case(14013,16002) + case(14013,16002) descrip=' (p p)->h'//j//'->h'//i//' h'//i//'->b b b b, where h'//i//' lies around 125 GeV '//label - case(14022) + case(14022) descrip=' (p p)->h'//j//'->h'//i//' h'//i//'->tau tau tau tau, where h'//j//' lies around 125 GeV and is SM-like '//label - case(011812,150011) + case(011812,150011) descrip=' (p p)->h'//j//' -> h'//i//'Z -> (tau tau)(l l) '//label - case(20160342) + case(20160342) descrip=' (p p)->h'//j//' -> h'//i//'Z -> (b b-bar)(l l), gluon fusion '//label - case(20160341) + case(20160341) descrip=' (p p)->h'//j//' -> h'//i//'Z -> (b b-bar)(l l), b-associated '//label - case(150012,16010) + case(150012,16010) descrip=' (p p)->h'//j//' -> h'//i//'Z -> (b b-bar)(l l) '//label - case(044781) + case(044781) descrip=' (g g)->h'//j//' -> h'//i//'Z -> (tau tau)(l l) '//label - case(044782,20160151) + case(044782,20160151) descrip=' (g g)->h'//j//' -> h'//i//'Z -> (b b-bar)(l l) '//label - case(20160152) + case(20160152) descrip=' (b b)->h'//j//' -> h'//i//'Z -> (b b-bar)(l l) '//label - case(6227) - descrip=' (p p-bar)->h'//j//'(b/b-bar)->(b b-bar) (b/b-bar) or (tau tau) (b/b-bar) ' //label - case(02301,2016059,4147) - descrip=' (p p)->h'//j//'/VBF/Wh'//j//'/Zh'//j//'/tth'//j//'->gamma gamma (including widths effects) ' //label - case(003892) - descrip=' (p p)->h'//j//'/VBF->W W (including widths effects) ' //label - case(01123) - descrip=' (p p)->h'//j//'->W W (including widths effects) ' //label - case(20160791,160331) - descrip=' (g g)->h'//j//'->Z Z -> 4l (including widths effects) ' //label - case(170121) - descrip=' (p p)->h'//j//'->Z Z -> 4l,2l2q,2l2nu (including widths effects) ' //label - case(06386) - descrip=' (p p)->h'//j//'->Z Z -> 4l,2l2nu (including widths effects) ' //label - case(160332) + case(6227) + descrip=' (p p-bar)->h'//j//'(b/b-bar)->(b b-bar) (b/b-bar) or (tau tau) (b/b-bar) ' //label + case(02301,2016059,4147) + descrip=' (p p)->h'//j//'/VBF/Wh'//j//'/Zh'//j//'/tth'//j//'->gamma gamma (including widths effects) ' //label + case(003892) + descrip=' (p p)->h'//j//'/VBF->W W (including widths effects) ' //label + case(01123) + descrip=' (p p)->h'//j//'->W W (including widths effects) ' //label + case(20160791,160331) + descrip=' (g g)->h'//j//'->Z Z -> 4l (including widths effects) ' //label + case(170121) + descrip=' (p p)->h'//j//'->Z Z -> 4l,2l2q,2l2nu (including widths effects) ' //label + case(06386) + descrip=' (p p)->h'//j//'->Z Z -> 4l,2l2nu (including widths effects) ' //label + case(160332) descrip=' (p p)->h'//j//' (VBF)->Z Z -> 4l (including widths effects) ' //label case(150600424,16035) descrip=' (p p)->h'//j//'->h'//i//'h'//i//'->mu mu mu mu ' //label case default - stop 'wrong input to function outputproc_t2 in module S95tables (2)' - end select - + stop 'wrong input to function outputproc_t2 in module S95tables (2)' + end select + end subroutine outputproc_t2 - + !****************************************************************** subroutine model_likeness(j,id,t,model_like,sigmaXbr) - !***************************************************************** - ! Tests how Standard Model-like a parameter point is + !***************************************************************** + ! Tests how Standard Model-like a parameter point is ! 0 means Mi.ge.MSingleLim (treat as single channel) ! 1 passes the SM-like test and Mi.lt.MSingleLim - ! -1 fails the SM-like test and Mi.lt.MSingleLim + ! -1 fails the SM-like test and Mi.lt.MSingleLim use usefulbits, only : dataset,div, vsmall, iselementofarray, np, Hneut use theory_BRfunctions - use theory_XS_SM_functions - implicit none - !--------------------------------------input - type(dataset) :: t + use theory_XS_SM_functions + implicit none + !--------------------------------------input + type(dataset) :: t integer :: id,j - !-----------------------------------internal + !-----------------------------------internal integer :: ns,nb,n,jj !--TS 14/03/2011: For revamped model-likeness test method double precision,allocatable :: channel_rat(:,:), channel_SM(:,:) double precision,allocatable :: XS_SM_temp(:), BR_SM_temp(:) double precision :: SMrate, weight, c, dcbyc_dble integer :: ic,nc,nc_rel !---- double precision,allocatable :: XS_rat(:), BR_rat(:) integer :: model_like,testSMratios - double precision :: sigmaXbr + double precision :: sigmaXbr integer :: is,ib double precision :: s,b double precision,allocatable :: dsbys(:),dbbyb(:),dcbyc(:) logical :: correct_properties double precision,parameter :: unset=-9.9999D6 correct_properties=.True. ns=-1 nb=-1 nc=-1 - n=t1elementnumberfromid(S95_t1,id) + n=t1elementnumberfromid(S95_t1,id) select case(id) case(711,713,721,723,731,733,741,743,5739,10574,6224,6225,6226,6276,6301,6309,& & 04670,046701,046702,336,0038911,0038912,0038913,0038914,17030,4873,8567) !these have a very simple model-likeness test, so we can have a non-zero deltax case default if(S95_t1(n)%deltax.gt.0.0D0)then write(*,*)'hello id=',id,'deltax=',S95_t1(n)%deltax stop 'error in subroutine model_likeness (1)' endif end select select case(id) case(8961,0598) -! ns = 3; nb = 2; call initialise_XS_rat_BR_rat +! ns = 3; nb = 2; call initialise_XS_rat_BR_rat nc = 6; call initialise_channel_rat_SM - + ! XS_rat(1) = t%tev%XS_hjW_ratio(j) -! XS_rat(2) = t%tev%XS_hj_ratio(j) -! XS_rat(3) = t%tev%XS_hjZ_ratio(j) - -! BR_rat(1) = div(t%BR_hjbb(j) , t%BR_Hbb_SM(j) ,0.0D0,1.0D0) -! BR_rat(2) = div(t%BR_hjWW(j) , t%BR_HWW_SM(j) ,0.0D0,1.0D0) +! XS_rat(2) = t%tev%XS_hj_ratio(j) +! XS_rat(3) = t%tev%XS_hjZ_ratio(j) + +! BR_rat(1) = div(t%BR_hjbb(j) , t%BR_Hbb_SM(j) ,0.0D0,1.0D0) +! BR_rat(2) = div(t%BR_hjWW(j) , t%BR_HWW_SM(j) ,0.0D0,1.0D0) channel_rat(1,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(4,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(5,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(6,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_SM(1,:) = (/ t%tev%XS_H_SM(j) , t%BR_HWW_SM(j) /) - channel_SM(2,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HWW_SM(j) /) + channel_SM(2,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HWW_SM(j) /) channel_SM(3,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_HWW_SM(j) /) channel_SM(4,:) = (/ t%tev%XS_H_SM(j) , t%BR_Hbb_SM(j) /) - channel_SM(5,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hbb_SM(j) /) - channel_SM(6,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Hbb_SM(j) /) - + channel_SM(5,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hbb_SM(j) /) + channel_SM(6,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Hbb_SM(j) /) + case(10010,10607) -! ns = 4; nb = 2; call initialise_XS_rat_BR_rat +! ns = 4; nb = 2; call initialise_XS_rat_BR_rat nc = 8; call initialise_channel_rat_SM - + ! XS_rat(1) = t%tev%XS_hjW_ratio(j) -! XS_rat(2) = t%tev%XS_vbf_ratio(j) -! XS_rat(3) = t%tev%XS_hjZ_ratio(j) +! XS_rat(2) = t%tev%XS_vbf_ratio(j) +! XS_rat(3) = t%tev%XS_hjZ_ratio(j) ! XS_rat(4) = t%tev%XS_tthj_ratio(j) ! BR_rat(1) = div(t%BR_hjbb(j) , t%BR_Hbb_SM(j),0.0D0,1.0D0) ! BR_rat(2) = div(( t%BR_hjss(j)+t%BR_hjcc(j)+t%BR_hjbb(j)+t%BR_hjgg(j) ) & ! & , t%BR_Hjets_SM(j),0.0D0,1.0D0) channel_rat(1,:) = (/ t%tev%XS_hj_ratio(j) , & & div((t%BR_hjss(j)+t%BR_hjcc(j)+t%BR_hjbb(j)+t%BR_hjgg(j)),t%BR_Hjets_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%tev%XS_vbf_ratio(j) , & & div((t%BR_hjss(j)+t%BR_hjcc(j)+t%BR_hjbb(j)+t%BR_hjgg(j)),t%BR_Hjets_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%tev%XS_hjW_ratio(j) , & & div((t%BR_hjss(j)+t%BR_hjcc(j)+t%BR_hjbb(j)+t%BR_hjgg(j)),t%BR_Hjets_SM(j),0.0D0,1.0D0) /) channel_rat(4,:) = (/ t%tev%XS_hjZ_ratio(j) , & & div((t%BR_hjss(j)+t%BR_hjcc(j)+t%BR_hjbb(j)+t%BR_hjgg(j)),t%BR_Hjets_SM(j),0.0D0,1.0D0) /) channel_rat(5,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(6,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(7,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(8,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_SM(1,:) = (/ t%tev%XS_H_SM(j) , t%BR_Hjets_SM(j) /) channel_SM(2,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_Hjets_SM(j) /) - channel_SM(3,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hjets_SM(j) /) + channel_SM(3,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hjets_SM(j) /) channel_SM(4,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Hjets_SM(j) /) channel_SM(5,:) = (/ t%tev%XS_H_SM(j) , t%BR_Hbb_SM(j) /) channel_SM(6,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_Hbb_SM(j) /) - channel_SM(7,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hbb_SM(j) /) - channel_SM(8,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Hbb_SM(j) /) + channel_SM(7,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hbb_SM(j) /) + channel_SM(8,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Hbb_SM(j) /) case(13443) nc = 2; call initialise_channel_rat_SM - + channel_rat(1,:) = (/ t%lhc8%XS_hjZ_ratio(j) , div(t%BR_hjinvisible(j),1.0D0,0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%lhc8%XS_vbf_ratio(j) , div(t%BR_hjinvisible(j),1.0D0,0.0D0,1.0D0) /) - channel_SM(1,:) = (/ t%lhc8%XS_HZ_SM(j) , 1.0D0 /) - channel_SM(2,:) = (/ t%lhc8%XS_vbf_SM(j) , 1.0D0 /) + channel_SM(1,:) = (/ t%lhc8%XS_HZ_SM(j) , 1.0D0 /) + channel_SM(2,:) = (/ t%lhc8%XS_vbf_SM(j) , 1.0D0 /) case(6436) nc = 2; call initialise_channel_rat_SM - + channel_rat(1,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) - channel_SM(1,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hbb_SM(j) /) - channel_SM(2,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Hbb_SM(j) /) + channel_SM(1,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hbb_SM(j) /) + channel_SM(2,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Hbb_SM(j) /) case(9290) -! ns = 4; nb = 4; call initialise_XS_rat_BR_rat +! ns = 4; nb = 4; call initialise_XS_rat_BR_rat nc = 16; call initialise_channel_rat_SM - + ! XS_rat(1) = t%tev%XS_hjW_ratio(j) -! XS_rat(2) = t%tev%XS_hj_ratio(j) -! XS_rat(3) = t%tev%XS_hjZ_ratio(j) -! XS_rat(4) = t%tev%XS_vbf_ratio(j) - +! XS_rat(2) = t%tev%XS_hj_ratio(j) +! XS_rat(3) = t%tev%XS_hjZ_ratio(j) +! XS_rat(4) = t%tev%XS_vbf_ratio(j) + ! BR_rat(1) = div( t%BR_hjbb(j) , t%BR_Hbb_SM(j) ,0.0D0,1.0D0) -! BR_rat(2) = div( t%BR_hjWW(j) , t%BR_HWW_SM(j) ,0.0D0,1.0D0) -! BR_rat(3) = div(t%BR_hjtautau(j) , t%BR_Htautau_SM(j),0.0D0,1.0D0) +! BR_rat(2) = div( t%BR_hjWW(j) , t%BR_HWW_SM(j) ,0.0D0,1.0D0) +! BR_rat(3) = div(t%BR_hjtautau(j) , t%BR_Htautau_SM(j),0.0D0,1.0D0) ! BR_rat(4) = div( t%BR_hjgaga(j) , t%BR_Hgaga_SM(j) ,0.0D0,1.0D0) channel_rat(1,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(4,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(5,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(6,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(7,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(8,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(9,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(10,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(11,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(12,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(13,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(14,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(15,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(16,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) - + channel_SM(1,:) = (/ t%tev%XS_H_SM(j) , t%BR_HWW_SM(j) /) channel_SM(2,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_HWW_SM(j) /) - channel_SM(3,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HWW_SM(j) /) + channel_SM(3,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HWW_SM(j) /) channel_SM(4,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_HWW_SM(j) /) channel_SM(5,:) = (/ t%tev%XS_H_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(6,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_Htautau_SM(j) /) - channel_SM(7,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Htautau_SM(j) /) + channel_SM(7,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(8,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(9,:) = (/ t%tev%XS_H_SM(j) , t%BR_Hbb_SM(j) /) channel_SM(10,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_Hbb_SM(j) /) - channel_SM(11,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hbb_SM(j) /) - channel_SM(12,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Hbb_SM(j) /) + channel_SM(11,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hbb_SM(j) /) + channel_SM(12,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Hbb_SM(j) /) channel_SM(13,:) = (/ t%tev%XS_H_SM(j) , t%BR_Hgaga_SM(j) /) channel_SM(14,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_Hgaga_SM(j) /) - channel_SM(15,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hgaga_SM(j) /) - channel_SM(16,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Hgaga_SM(j) /) + channel_SM(15,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hgaga_SM(j) /) + channel_SM(16,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Hgaga_SM(j) /) + - case(9674,9897,9999) -! ns = 4; nb = 3; call initialise_XS_rat_BR_rat +! ns = 4; nb = 3; call initialise_XS_rat_BR_rat nc = 12; call initialise_channel_rat_SM - + ! XS_rat(1) = t%tev%XS_hjW_ratio(j) -! XS_rat(2) = t%tev%XS_hj_ratio(j) -! XS_rat(3) = t%tev%XS_hjZ_ratio(j) -! XS_rat(4) = t%tev%XS_vbf_ratio(j) - +! XS_rat(2) = t%tev%XS_hj_ratio(j) +! XS_rat(3) = t%tev%XS_hjZ_ratio(j) +! XS_rat(4) = t%tev%XS_vbf_ratio(j) + ! BR_rat(1) = div( t%BR_hjbb(j) , t%BR_Hbb_SM(j) ,0.0D0,1.0D0) -! BR_rat(2) = div( t%BR_hjWW(j) , t%BR_HWW_SM(j) ,0.0D0,1.0D0) -! BR_rat(3) = div(t%BR_hjtautau(j) , t%BR_Htautau_SM(j) ,0.0D0,1.0D0) +! BR_rat(2) = div( t%BR_hjWW(j) , t%BR_HWW_SM(j) ,0.0D0,1.0D0) +! BR_rat(3) = div(t%BR_hjtautau(j) , t%BR_Htautau_SM(j) ,0.0D0,1.0D0) channel_rat(1,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(4,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(5,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(6,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(7,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(8,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(9,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(10,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(11,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(12,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) - + channel_SM(1,:) = (/ t%tev%XS_H_SM(j) , t%BR_HWW_SM(j) /) channel_SM(2,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_HWW_SM(j) /) - channel_SM(3,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HWW_SM(j) /) + channel_SM(3,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HWW_SM(j) /) channel_SM(4,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_HWW_SM(j) /) channel_SM(5,:) = (/ t%tev%XS_H_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(6,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_Htautau_SM(j) /) - channel_SM(7,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Htautau_SM(j) /) + channel_SM(7,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(8,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(9,:) = (/ t%tev%XS_H_SM(j) , t%BR_Hbb_SM(j) /) channel_SM(10,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_Hbb_SM(j) /) - channel_SM(11,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hbb_SM(j) /) - channel_SM(12,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Hbb_SM(j) /) - + channel_SM(11,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hbb_SM(j) /) + channel_SM(12,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Hbb_SM(j) /) + case(7081,9166,9483,5586,9642,1266,0432,9891,5285,3935,6087,6170,10212,6223,6299,10583,10798,10596) -! ns = 2; nb = 1; call initialise_XS_rat_BR_rat +! ns = 2; nb = 1; call initialise_XS_rat_BR_rat nc = 2; call initialise_channel_rat_SM - + ! XS_rat(1) = t%tev%XS_hjW_ratio(j) -! XS_rat(2) = t%tev%XS_hjZ_ratio(j) - +! XS_rat(2) = t%tev%XS_hjZ_ratio(j) + ! BR_rat(1) = div(t%BR_hjbb(j) , t%BR_Hbb_SM(j),0.0D0,1.0D0) - + channel_rat(1,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) - channel_rat(2,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) + channel_rat(2,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) + + channel_SM(1,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hbb_SM(j) /) + channel_SM(2,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Hbb_SM(j) /) + - channel_SM(1,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hbb_SM(j) /) - channel_SM(2,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Hbb_SM(j) /) - - case(10500) -! ns = 2; nb = 1; call initialise_XS_rat_BR_rat +! ns = 2; nb = 1; call initialise_XS_rat_BR_rat nc = 2; call initialise_channel_rat_SM - + ! XS_rat(1) = t%tev%XS_hjW_ratio(j) -! XS_rat(2) = t%tev%XS_hjZ_ratio(j) - -! BR_rat(1) = div(t%BR_hjtautau(j) , t%BR_Htautau_SM(j) ,0.0D0,1.0D0) +! XS_rat(2) = t%tev%XS_hjZ_ratio(j) + +! BR_rat(1) = div(t%BR_hjtautau(j) , t%BR_Htautau_SM(j) ,0.0D0,1.0D0) channel_rat(1,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) - channel_rat(2,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) + channel_rat(2,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) - channel_SM(1,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Htautau_SM(j) /) + channel_SM(1,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(2,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Htautau_SM(j) /) case(9248,10133,10439) -! ns = 4; nb = 1; call initialise_XS_rat_BR_rat +! ns = 4; nb = 1; call initialise_XS_rat_BR_rat nc = 4; call initialise_channel_rat_SM ! XS_rat(1) = t%tev%XS_hjW_ratio(j) -! XS_rat(2) = t%tev%XS_hj_ratio(j) -! XS_rat(3) = t%tev%XS_hjZ_ratio(j) +! XS_rat(2) = t%tev%XS_hj_ratio(j) +! XS_rat(3) = t%tev%XS_hjZ_ratio(j) ! XS_rat(4) = t%tev%XS_vbf_ratio(j) - + ! BR_rat(1) = div(t%BR_hjtautau(j) , t%BR_Htautau_SM(j),0.0D0,1.0D0) channel_rat(1,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) - channel_rat(4,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) - + channel_rat(4,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) + channel_SM(1,:) = (/ t%tev%XS_H_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(2,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_Htautau_SM(j) /) - channel_SM(3,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Htautau_SM(j) /) + channel_SM(3,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(4,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Htautau_SM(j) /) case(4800) ! ns = 4; nb = 3; call initialise_XS_rat_BR_rat nc = 12; call initialise_channel_rat_SM - + ! XS_rat(1) = t%tev%XS_hjW_ratio(j) -! XS_rat(2) = t%tev%XS_hj_ratio(j) -! XS_rat(3) = t%tev%XS_hjZ_ratio(j) +! XS_rat(2) = t%tev%XS_hj_ratio(j) +! XS_rat(3) = t%tev%XS_hjZ_ratio(j) ! XS_rat(4) = t%tev%XS_vbf_ratio(j) - -! BR_rat(1) = div(t%BR_hjtautau(j) , t%BR_Htautau_SM(j) ,0.0D0,1.0D0) + +! BR_rat(1) = div(t%BR_hjtautau(j) , t%BR_Htautau_SM(j) ,0.0D0,1.0D0) ! BR_rat(2) = div(t%BR_hjbb(j) , t%BR_Hbb_SM(j),0.0D0,1.0D0) ! BR_rat(3) = div(( t%BR_hjss(j)+t%BR_hjcc(j)+t%BR_hjbb(j)+t%BR_hjgg(j) ) & ! & , t%BR_Hjets_SM(j),0.0D0,1.0D0) channel_rat(1,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(4,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(5,:) = (/ t%tev%XS_hj_ratio(j) , & & div((t%BR_hjss(j)+t%BR_hjcc(j)+t%BR_hjbb(j)+t%BR_hjgg(j)),t%BR_Hjets_SM(j),0.0D0,1.0D0) /) channel_rat(6,:) = (/ t%tev%XS_vbf_ratio(j) , & & div((t%BR_hjss(j)+t%BR_hjcc(j)+t%BR_hjbb(j)+t%BR_hjgg(j)),t%BR_Hjets_SM(j),0.0D0,1.0D0) /) channel_rat(7,:) = (/ t%tev%XS_hjW_ratio(j) , & & div((t%BR_hjss(j)+t%BR_hjcc(j)+t%BR_hjbb(j)+t%BR_hjgg(j)),t%BR_Hjets_SM(j),0.0D0,1.0D0) /) channel_rat(8,:) = (/ t%tev%XS_hjZ_ratio(j) , & & div((t%BR_hjss(j)+t%BR_hjcc(j)+t%BR_hjbb(j)+t%BR_hjgg(j)),t%BR_Hjets_SM(j),0.0D0,1.0D0) /) channel_rat(9,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(10,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(11,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(12,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_SM(1,:) = (/ t%tev%XS_H_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(2,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_Htautau_SM(j) /) - channel_SM(3,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Htautau_SM(j) /) + channel_SM(3,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(4,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(5,:) = (/ t%tev%XS_H_SM(j) , t%BR_Hjets_SM(j) /) channel_SM(6,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_Hjets_SM(j) /) - channel_SM(7,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hjets_SM(j) /) + channel_SM(7,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hjets_SM(j) /) channel_SM(8,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Hjets_SM(j) /) channel_SM(9,:) = (/ t%tev%XS_H_SM(j) , t%BR_Hbb_SM(j) /) channel_SM(10,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_Hbb_SM(j) /) - channel_SM(11,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hbb_SM(j) /) - channel_SM(12,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Hbb_SM(j) /) + channel_SM(11,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hbb_SM(j) /) + channel_SM(12,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Hbb_SM(j) /) case(5845) -! ns = 4; nb = 2; call initialise_XS_rat_BR_rat +! ns = 4; nb = 2; call initialise_XS_rat_BR_rat nc = 8; call initialise_channel_rat_SM - + ! XS_rat(1) = t%tev%XS_hjW_ratio(j) -! XS_rat(2) = t%tev%XS_hj_ratio(j) -! XS_rat(3) = t%tev%XS_hjZ_ratio(j) +! XS_rat(2) = t%tev%XS_hj_ratio(j) +! XS_rat(3) = t%tev%XS_hjZ_ratio(j) ! XS_rat(4) = t%tev%XS_vbf_ratio(j) - -! BR_rat(1) = div(t%BR_hjtautau(j) , t%BR_Htautau_SM(j) ,0.0D0,1.0D0) + +! BR_rat(1) = div(t%BR_hjtautau(j) , t%BR_Htautau_SM(j) ,0.0D0,1.0D0) ! BR_rat(2) = div(( t%BR_hjss(j)+t%BR_hjcc(j)+t%BR_hjbb(j)+t%BR_hjgg(j) ) & -! & , t%BR_Hjets_SM(j) ,0.0D0,1.0D0) +! & , t%BR_Hjets_SM(j) ,0.0D0,1.0D0) channel_rat(1,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(4,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(5,:) = (/ t%tev%XS_hj_ratio(j) , & & div((t%BR_hjss(j)+t%BR_hjcc(j)+t%BR_hjbb(j)+t%BR_hjgg(j)),t%BR_Hjets_SM(j),0.0D0,1.0D0) /) channel_rat(6,:) = (/ t%tev%XS_vbf_ratio(j) , & & div((t%BR_hjss(j)+t%BR_hjcc(j)+t%BR_hjbb(j)+t%BR_hjgg(j)),t%BR_Hjets_SM(j),0.0D0,1.0D0) /) channel_rat(7,:) = (/ t%tev%XS_hjW_ratio(j) , & & div((t%BR_hjss(j)+t%BR_hjcc(j)+t%BR_hjbb(j)+t%BR_hjgg(j)),t%BR_Hjets_SM(j),0.0D0,1.0D0) /) channel_rat(8,:) = (/ t%tev%XS_hjZ_ratio(j) , & & div((t%BR_hjss(j)+t%BR_hjcc(j)+t%BR_hjbb(j)+t%BR_hjgg(j)),t%BR_Hjets_SM(j),0.0D0,1.0D0) /) channel_SM(1,:) = (/ t%tev%XS_H_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(2,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_Htautau_SM(j) /) - channel_SM(3,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Htautau_SM(j) /) + channel_SM(3,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(4,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(5,:) = (/ t%tev%XS_H_SM(j) , t%BR_Hjets_SM(j) /) channel_SM(6,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_Hjets_SM(j) /) - channel_SM(7,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hjets_SM(j) /) + channel_SM(7,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hjets_SM(j) /) channel_SM(8,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Hjets_SM(j) /) case(5858,6177,6295,1887,10065,10485,4960) -! ns = 4; nb = 1; call initialise_XS_rat_BR_rat +! ns = 4; nb = 1; call initialise_XS_rat_BR_rat nc = 4; call initialise_channel_rat_SM - + ! XS_rat(1) = t%tev%XS_hjW_ratio(j) -! XS_rat(2) = t%tev%XS_hj_ratio(j) -! XS_rat(3) = t%tev%XS_hjZ_ratio(j) +! XS_rat(2) = t%tev%XS_hj_ratio(j) +! XS_rat(3) = t%tev%XS_hjZ_ratio(j) ! XS_rat(4) = t%tev%XS_vbf_ratio(j) -! BR_rat(1) = div(t%BR_hjgaga(j) , t%BR_Hgaga_SM(j),0.0D0,1.0D0) +! BR_rat(1) = div(t%BR_hjgaga(j) , t%BR_Hgaga_SM(j),0.0D0,1.0D0) channel_rat(1,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) - channel_rat(4,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) - + channel_rat(4,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) + channel_SM(1,:) = (/ t%tev%XS_H_SM(j) , t%BR_Hgaga_SM(j) /) channel_SM(2,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_Hgaga_SM(j) /) - channel_SM(3,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hgaga_SM(j) /) + channel_SM(3,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hgaga_SM(j) /) channel_SM(4,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Hgaga_SM(j) /) case(9465,5871,9022,9023,0710,9887,5984,9714,4162,10102,6006,4481,4468,6095,10432,6179,6302,10599) -! ns = 4; nb = 1; call initialise_XS_rat_BR_rat +! ns = 4; nb = 1; call initialise_XS_rat_BR_rat nc = 4; call initialise_channel_rat_SM - + ! XS_rat(1) = t%tev%XS_hjW_ratio(j) -! XS_rat(2) = t%tev%XS_hj_ratio(j) -! XS_rat(3) = t%tev%XS_hjZ_ratio(j) +! XS_rat(2) = t%tev%XS_hj_ratio(j) +! XS_rat(3) = t%tev%XS_hjZ_ratio(j) ! XS_rat(4) = t%tev%XS_vbf_ratio(j) - -! BR_rat(1) = div( t%BR_hjWW(j) , t%BR_HWW_SM(j) ,0.0D0,1.0D0) + +! BR_rat(1) = div( t%BR_hjWW(j) , t%BR_HWW_SM(j) ,0.0D0,1.0D0) channel_rat(1,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) - channel_rat(4,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) - + channel_rat(4,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) + channel_SM(1,:) = (/ t%tev%XS_H_SM(j) , t%BR_HWW_SM(j) /) channel_SM(2,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_HWW_SM(j) /) - channel_SM(3,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HWW_SM(j) /) + channel_SM(3,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HWW_SM(j) /) channel_SM(4,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_HWW_SM(j) /) - + case(6082,6182,6219,10573,6276) ! ns = 4; nb = 2; call initialise_XS_rat_BR_rat nc = 8; call initialise_channel_rat_SM - + ! XS_rat(1) = t%tev%XS_hjW_ratio(j) -! XS_rat(2) = t%tev%XS_hj_ratio(j) -! XS_rat(3) = t%tev%XS_hjZ_ratio(j) +! XS_rat(2) = t%tev%XS_hj_ratio(j) +! XS_rat(3) = t%tev%XS_hjZ_ratio(j) ! XS_rat(4) = t%tev%XS_vbf_ratio(j) - -! BR_rat(1) = div(t%BR_hjWW(j) , t%BR_HWW_SM(j) ,0.0D0,1.0D0) -! BR_rat(2) = div(t%BR_hjZZ(j) , t%BR_HZZ_SM(j) ,0.0D0,1.0D0) - + +! BR_rat(1) = div(t%BR_hjWW(j) , t%BR_HWW_SM(j) ,0.0D0,1.0D0) +! BR_rat(2) = div(t%BR_hjZZ(j) , t%BR_HZZ_SM(j) ,0.0D0,1.0D0) + channel_rat(1,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) - channel_rat(4,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) + channel_rat(4,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(5,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(6,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(7,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(8,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) - + channel_SM(1,:) = (/ t%tev%XS_H_SM(j) , t%BR_HWW_SM(j) /) channel_SM(2,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_HWW_SM(j) /) - channel_SM(3,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HWW_SM(j) /) + channel_SM(3,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HWW_SM(j) /) channel_SM(4,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_HWW_SM(j) /) channel_SM(5,:) = (/ t%tev%XS_H_SM(j) , t%BR_HZZ_SM(j) /) channel_SM(6,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_HZZ_SM(j) /) - channel_SM(7,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HZZ_SM(j) /) - channel_SM(8,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_HZZ_SM(j) /) - + channel_SM(7,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HZZ_SM(j) /) + channel_SM(8,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_HZZ_SM(j) /) + case(3331) -! ns = 1; nb = 2; call initialise_XS_rat_BR_rat - nc = 2; call initialise_channel_rat_SM - +! ns = 1; nb = 2; call initialise_XS_rat_BR_rat + nc = 2; call initialise_channel_rat_SM + ! XS_rat(1) = t%tev%XS_hj_ratio(j) - -! BR_rat(1) = div( t%BR_hjWW(j) , t%BR_HWW_SM(j) ,0.0D0,1.0D0) -! BR_rat(2) = div( t%BR_hjZZ(j) , t%BR_HZZ_SM(j) ,0.0D0,1.0D0) + +! BR_rat(1) = div( t%BR_hjWW(j) , t%BR_HWW_SM(j) ,0.0D0,1.0D0) +! BR_rat(2) = div( t%BR_hjZZ(j) , t%BR_HZZ_SM(j) ,0.0D0,1.0D0) channel_rat(1,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_SM(1,:) = (/ t%tev%XS_H_SM(j) , t%BR_HWW_SM(j) /) channel_SM(2,:) = (/ t%tev%XS_H_SM(j) , t%BR_HZZ_SM(j) /) case(6301) -! ns = 2; nb = 1; call initialise_XS_rat_BR_rat +! ns = 2; nb = 1; call initialise_XS_rat_BR_rat nc = 2; call initialise_channel_rat_SM - + ! XS_rat(1) = t%tev%XS_hjW_ratio(j) -! XS_rat(2) = t%tev%XS_hjZ_ratio(j) - -! BR_rat(1) = div( t%BR_hjWW(j) , t%BR_HWW_SM(j) ,0.0D0,1.0D0) +! XS_rat(2) = t%tev%XS_hjZ_ratio(j) + +! BR_rat(1) = div( t%BR_hjWW(j) , t%BR_HWW_SM(j) ,0.0D0,1.0D0) channel_rat(1,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) - channel_SM(1,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HWW_SM(j) /) + channel_SM(1,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HWW_SM(j) /) channel_SM(2,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_HWW_SM(j) /) case(6309) -! ns = 4; nb = 2; call initialise_XS_rat_BR_rat +! ns = 4; nb = 2; call initialise_XS_rat_BR_rat nc = 5; call initialise_channel_rat_SM - + channel_rat(1,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) - channel_rat(3,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) - channel_rat(4,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) + channel_rat(3,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) + channel_rat(4,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(5,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) - channel_SM(1,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hbb_SM(j) /) + channel_SM(1,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hbb_SM(j) /) channel_SM(2,:) = (/ t%tev%XS_H_SM(j) , t%BR_HWW_SM(j) /) channel_SM(3,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_HWW_SM(j) /) - channel_SM(4,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HWW_SM(j) /) + channel_SM(4,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HWW_SM(j) /) channel_SM(5,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_HWW_SM(j) /) - + case(1268,6091) -! ns = 2; nb = 2; call initialise_XS_rat_BR_rat +! ns = 2; nb = 2; call initialise_XS_rat_BR_rat nc = 4; call initialise_channel_rat_SM - + ! XS_rat(1) = t%tev%XS_hjW_ratio(j) -! XS_rat(2) = t%tev%XS_hjZ_ratio(j) - -! BR_rat(1) = div( t%BR_hjWW(j) , t%BR_HWW_SM(j) ,0.0D0,1.0D0) +! XS_rat(2) = t%tev%XS_hjZ_ratio(j) + +! BR_rat(1) = div( t%BR_hjWW(j) , t%BR_HWW_SM(j) ,0.0D0,1.0D0) ! BR_rat(2) = div( t%BR_hjZZ(j) , t%BR_HZZ_SM(j) ,0.0D0,1.0D0) channel_rat(1,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(4,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) - channel_SM(1,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HWW_SM(j) /) + channel_SM(1,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HWW_SM(j) /) channel_SM(2,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_HWW_SM(j) /) - channel_SM(3,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HZZ_SM(j) /) + channel_SM(3,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HZZ_SM(j) /) channel_SM(4,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_HZZ_SM(j) /) - + case(6008,9998) -! ns = 5; nb = 5; call initialise_XS_rat_BR_rat +! ns = 5; nb = 5; call initialise_XS_rat_BR_rat nc = 25; call initialise_channel_rat_SM ! XS_rat(1) = t%tev%XS_hjW_ratio(j) -! XS_rat(2) = t%tev%XS_hj_ratio(j) -! XS_rat(3) = t%tev%XS_hjZ_ratio(j) +! XS_rat(2) = t%tev%XS_hj_ratio(j) +! XS_rat(3) = t%tev%XS_hjZ_ratio(j) ! XS_rat(4) = t%tev%XS_vbf_ratio(j) ! XS_rat(5) = t%tev%XS_tthj_ratio(j) ! BR_rat(1) = div( t%BR_hjbb(j) , t%BR_Hbb_SM(j) ,0.0D0,1.0D0) -! BR_rat(2) = div( t%BR_hjWW(j) , t%BR_HWW_SM(j) ,0.0D0,1.0D0) +! BR_rat(2) = div( t%BR_hjWW(j) , t%BR_HWW_SM(j) ,0.0D0,1.0D0) ! BR_rat(3) = div(t%BR_hjtautau(j) , t%BR_Htautau_SM(j) ,0.0D0,1.0D0) ! BR_rat(4) = div(t%BR_hjgaga(j) , t%BR_Hgaga_SM(j) ,0.0D0,1.0D0) ! BR_rat(5) = div(( t%BR_hjss(j)+t%BR_hjcc(j)+t%BR_hjbb(j)+t%BR_hjgg(j) ) & ! & , t%BR_Hjets_SM(j) ,0.0D0,1.0D0) channel_rat(1,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(4,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(5,:) = (/ t%tev%XS_tthj_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(6,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(7,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(8,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(9,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(10,:) = (/ t%tev%XS_tthj_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(11,:) = (/ t%tev%XS_hj_ratio(j) , & & div((t%BR_hjss(j)+t%BR_hjcc(j)+t%BR_hjbb(j)+t%BR_hjgg(j)),t%BR_Hjets_SM(j),0.0D0,1.0D0) /) channel_rat(12,:) = (/ t%tev%XS_vbf_ratio(j) , & & div((t%BR_hjss(j)+t%BR_hjcc(j)+t%BR_hjbb(j)+t%BR_hjgg(j)),t%BR_Hjets_SM(j),0.0D0,1.0D0) /) channel_rat(13,:) = (/ t%tev%XS_hjW_ratio(j) , & & div((t%BR_hjss(j)+t%BR_hjcc(j)+t%BR_hjbb(j)+t%BR_hjgg(j)),t%BR_Hjets_SM(j),0.0D0,1.0D0) /) channel_rat(14,:) = (/ t%tev%XS_hjZ_ratio(j) , & & div((t%BR_hjss(j)+t%BR_hjcc(j)+t%BR_hjbb(j)+t%BR_hjgg(j)),t%BR_Hjets_SM(j),0.0D0,1.0D0) /) channel_rat(15,:) = (/ t%tev%XS_tthj_ratio(j) , & & div((t%BR_hjss(j)+t%BR_hjcc(j)+t%BR_hjbb(j)+t%BR_hjgg(j)),t%BR_Hjets_SM(j),0.0D0,1.0D0) /) channel_rat(16,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(17,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(18,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(19,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) - channel_rat(20,:) = (/ t%tev%XS_tthj_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) + channel_rat(20,:) = (/ t%tev%XS_tthj_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(21,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(22,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(23,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(24,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(25,:) = (/ t%tev%XS_tthj_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) - + channel_SM(1,:) = (/ t%tev%XS_H_SM(j) , t%BR_HWW_SM(j) /) channel_SM(2,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_HWW_SM(j) /) - channel_SM(3,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HWW_SM(j) /) + channel_SM(3,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HWW_SM(j) /) channel_SM(4,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_HWW_SM(j) /) channel_SM(5,:) = (/ t%tev%XS_ttH_SM(j) , t%BR_HWW_SM(j) /) channel_SM(6,:) = (/ t%tev%XS_H_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(7,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_Htautau_SM(j) /) - channel_SM(8,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Htautau_SM(j) /) + channel_SM(8,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(9,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(10,:) = (/ t%tev%XS_ttH_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(11,:) = (/ t%tev%XS_H_SM(j) , t%BR_Hjets_SM(j) /) channel_SM(12,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_Hjets_SM(j) /) - channel_SM(13,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hjets_SM(j) /) + channel_SM(13,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hjets_SM(j) /) channel_SM(14,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Hjets_SM(j) /) channel_SM(15,:) = (/ t%tev%XS_ttH_SM(j) , t%BR_Hjets_SM(j) /) channel_SM(16,:) = (/ t%tev%XS_H_SM(j) , t%BR_Hgaga_SM(j) /) channel_SM(17,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_Hgaga_SM(j) /) - channel_SM(18,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hgaga_SM(j) /) + channel_SM(18,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hgaga_SM(j) /) channel_SM(19,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Hgaga_SM(j) /) channel_SM(20,:) = (/ t%tev%XS_ttH_SM(j) , t%BR_Hgaga_SM(j) /) channel_SM(21,:) = (/ t%tev%XS_H_SM(j) , t%BR_Hbb_SM(j) /) channel_SM(22,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_Hbb_SM(j) /) - channel_SM(23,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hbb_SM(j) /) - channel_SM(24,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Hbb_SM(j) /) - channel_SM(25,:) = (/ t%tev%XS_ttH_SM(j) , t%BR_Hbb_SM(j) /) + channel_SM(23,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hbb_SM(j) /) + channel_SM(24,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Hbb_SM(j) /) + channel_SM(25,:) = (/ t%tev%XS_ttH_SM(j) , t%BR_Hbb_SM(j) /) case(6183,3233) -! ns = 4; nb = 4; call initialise_XS_rat_BR_rat +! ns = 4; nb = 4; call initialise_XS_rat_BR_rat nc = 16; call initialise_channel_rat_SM ! XS_rat(1) = t%tev%XS_hjW_ratio(j) -! XS_rat(2) = t%tev%XS_hj_ratio(j) -! XS_rat(3) = t%tev%XS_hjZ_ratio(j) +! XS_rat(2) = t%tev%XS_hj_ratio(j) +! XS_rat(3) = t%tev%XS_hjZ_ratio(j) ! XS_rat(4) = t%tev%XS_vbf_ratio(j) ! BR_rat(1) = div(t%BR_hjWW(j) , t%BR_HWW_SM(j) ,0.0D0,1.0D0) -! BR_rat(2) = div( t%BR_hjZZ(j) , t%BR_HZZ_SM(j) ,0.0D0,1.0D0) -! BR_rat(3) = div(t%BR_hjtautau(j) , t%BR_Htautau_SM(j) ,0.0D0,1.0D0) -! BR_rat(4) = div(t%BR_hjgaga(j) , t%BR_Hgaga_SM(j) ,0.0D0,1.0D0) +! BR_rat(2) = div( t%BR_hjZZ(j) , t%BR_HZZ_SM(j) ,0.0D0,1.0D0) +! BR_rat(3) = div(t%BR_hjtautau(j) , t%BR_Htautau_SM(j) ,0.0D0,1.0D0) +! BR_rat(4) = div(t%BR_hjgaga(j) , t%BR_Hgaga_SM(j) ,0.0D0,1.0D0) channel_rat(1,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(4,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(5,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(6,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(7,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(8,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(9,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(10,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(11,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(12,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(13,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(14,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(15,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(16,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_SM(1,:) = (/ t%tev%XS_H_SM(j) , t%BR_HWW_SM(j) /) channel_SM(2,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_HWW_SM(j) /) - channel_SM(3,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HWW_SM(j) /) + channel_SM(3,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HWW_SM(j) /) channel_SM(4,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_HWW_SM(j) /) channel_SM(5,:) = (/ t%tev%XS_H_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(6,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_Htautau_SM(j) /) - channel_SM(7,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Htautau_SM(j) /) + channel_SM(7,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(8,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(9,:) = (/ t%tev%XS_H_SM(j) , t%BR_HZZ_SM(j) /) channel_SM(10,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_HZZ_SM(j) /) - channel_SM(11,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HZZ_SM(j) /) + channel_SM(11,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HZZ_SM(j) /) channel_SM(12,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_HZZ_SM(j) /) channel_SM(13,:) = (/ t%tev%XS_H_SM(j) , t%BR_Hgaga_SM(j) /) channel_SM(14,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_Hgaga_SM(j) /) - channel_SM(15,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hgaga_SM(j) /) + channel_SM(15,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hgaga_SM(j) /) channel_SM(16,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Hgaga_SM(j) /) case(6286) -! ns = 4; nb = 4; call initialise_XS_rat_BR_rat +! ns = 4; nb = 4; call initialise_XS_rat_BR_rat nc = 9; call initialise_channel_rat_SM - + channel_rat(1,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(4,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(5,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(6,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(7,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(8,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(9,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjmumu(j),t%BR_Hmumu_SM(j),0.0D0,1.0D0) /) channel_SM(1,:) = (/ t%tev%XS_H_SM(j) , t%BR_HZZ_SM(j) /) channel_SM(2,:) = (/ t%tev%XS_vbf_SM(j), t%BR_HZZ_SM(j) /) - channel_SM(3,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HZZ_SM(j) /) - channel_SM(4,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HWW_SM(j) /) - channel_SM(5,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Htautau_SM(j) /) + channel_SM(3,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HZZ_SM(j) /) + channel_SM(4,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HWW_SM(j) /) + channel_SM(5,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(6,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_HZZ_SM(j) /) channel_SM(7,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_HWW_SM(j) /) channel_SM(8,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(9,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Hmumu_SM(j) /) case(6305) -! ns = 4; nb = 3; call initialise_XS_rat_BR_rat +! ns = 4; nb = 3; call initialise_XS_rat_BR_rat nc = 12; call initialise_channel_rat_SM ! XS_rat(1) = t%tev%XS_hjW_ratio(j) -! XS_rat(2) = t%tev%XS_hj_ratio(j) -! XS_rat(3) = t%tev%XS_hjZ_ratio(j) +! XS_rat(2) = t%tev%XS_hj_ratio(j) +! XS_rat(3) = t%tev%XS_hjZ_ratio(j) ! XS_rat(4) = t%tev%XS_vbf_ratio(j) ! BR_rat(1) = div(t%BR_hjWW(j) , t%BR_HWW_SM(j) ,0.0D0,1.0D0) -! BR_rat(2) = div( t%BR_hjZZ(j) , t%BR_HZZ_SM(j) ,0.0D0,1.0D0) -! BR_rat(3) = div(t%BR_hjtautau(j) , t%BR_Htautau_SM(j) ,0.0D0,1.0D0) +! BR_rat(2) = div( t%BR_hjZZ(j) , t%BR_HZZ_SM(j) ,0.0D0,1.0D0) +! BR_rat(3) = div(t%BR_hjtautau(j) , t%BR_Htautau_SM(j) ,0.0D0,1.0D0) channel_rat(1,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(4,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(5,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(6,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(7,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(8,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(9,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(10,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(11,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(12,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_SM(1,:) = (/ t%tev%XS_H_SM(j) , t%BR_HWW_SM(j) /) channel_SM(2,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_HWW_SM(j) /) - channel_SM(3,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HWW_SM(j) /) + channel_SM(3,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HWW_SM(j) /) channel_SM(4,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_HWW_SM(j) /) channel_SM(5,:) = (/ t%tev%XS_H_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(6,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_Htautau_SM(j) /) - channel_SM(7,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Htautau_SM(j) /) + channel_SM(7,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(8,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(9,:) = (/ t%tev%XS_H_SM(j) , t%BR_HZZ_SM(j) /) channel_SM(10,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_HZZ_SM(j) /) - channel_SM(11,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HZZ_SM(j) /) + channel_SM(11,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HZZ_SM(j) /) channel_SM(12,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_HZZ_SM(j) /) case(6096,10606,10806,10884) nc = 30; call initialise_channel_rat_SM channel_rat(1,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(4,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(5,:) = (/ t%tev%XS_tthj_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(6,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(7,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(8,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(9,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(10,:) = (/ t%tev%XS_tthj_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(11,:) = (/ t%tev%XS_hj_ratio(j) , & & div((t%BR_hjss(j)+t%BR_hjcc(j)+t%BR_hjbb(j)+t%BR_hjgg(j)),t%BR_Hjets_SM(j),0.0D0,1.0D0) /) channel_rat(12,:) = (/ t%tev%XS_vbf_ratio(j) , & & div((t%BR_hjss(j)+t%BR_hjcc(j)+t%BR_hjbb(j)+t%BR_hjgg(j)),t%BR_Hjets_SM(j),0.0D0,1.0D0) /) channel_rat(13,:) = (/ t%tev%XS_hjW_ratio(j) , & & div((t%BR_hjss(j)+t%BR_hjcc(j)+t%BR_hjbb(j)+t%BR_hjgg(j)),t%BR_Hjets_SM(j),0.0D0,1.0D0) /) channel_rat(14,:) = (/ t%tev%XS_hjZ_ratio(j) , & & div((t%BR_hjss(j)+t%BR_hjcc(j)+t%BR_hjbb(j)+t%BR_hjgg(j)),t%BR_Hjets_SM(j),0.0D0,1.0D0) /) channel_rat(15,:) = (/ t%tev%XS_tthj_ratio(j) , & & div((t%BR_hjss(j)+t%BR_hjcc(j)+t%BR_hjbb(j)+t%BR_hjgg(j)),t%BR_Hjets_SM(j),0.0D0,1.0D0) /) channel_rat(16,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(17,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(18,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(19,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) - channel_rat(20,:) = (/ t%tev%XS_tthj_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) + channel_rat(20,:) = (/ t%tev%XS_tthj_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(21,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(22,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(23,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(24,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) - channel_rat(25,:) = (/ t%tev%XS_tthj_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) + channel_rat(25,:) = (/ t%tev%XS_tthj_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(26,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(27,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(28,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(29,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(30,:) = (/ t%tev%XS_tthj_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) - + channel_SM(1,:) = (/ t%tev%XS_H_SM(j) , t%BR_HWW_SM(j) /) channel_SM(2,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_HWW_SM(j) /) - channel_SM(3,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HWW_SM(j) /) + channel_SM(3,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HWW_SM(j) /) channel_SM(4,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_HWW_SM(j) /) channel_SM(5,:) = (/ t%tev%XS_ttH_SM(j) , t%BR_HWW_SM(j) /) channel_SM(6,:) = (/ t%tev%XS_H_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(7,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_Htautau_SM(j) /) - channel_SM(8,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Htautau_SM(j) /) + channel_SM(8,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(9,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(10,:) = (/ t%tev%XS_ttH_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(11,:) = (/ t%tev%XS_H_SM(j) , t%BR_Hjets_SM(j) /) channel_SM(12,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_Hjets_SM(j) /) - channel_SM(13,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hjets_SM(j) /) + channel_SM(13,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hjets_SM(j) /) channel_SM(14,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Hjets_SM(j) /) channel_SM(15,:) = (/ t%tev%XS_ttH_SM(j) , t%BR_Hjets_SM(j) /) channel_SM(16,:) = (/ t%tev%XS_H_SM(j) , t%BR_HZZ_SM(j) /) channel_SM(17,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_HZZ_SM(j) /) - channel_SM(18,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HZZ_SM(j) /) + channel_SM(18,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HZZ_SM(j) /) channel_SM(19,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_HZZ_SM(j) /) channel_SM(20,:) = (/ t%tev%XS_ttH_SM(j) , t%BR_HZZ_SM(j) /) channel_SM(21,:) = (/ t%tev%XS_H_SM(j) , t%BR_Hgaga_SM(j) /) channel_SM(22,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_Hgaga_SM(j) /) - channel_SM(23,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hgaga_SM(j) /) + channel_SM(23,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hgaga_SM(j) /) channel_SM(24,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Hgaga_SM(j) /) channel_SM(25,:) = (/ t%tev%XS_ttH_SM(j) , t%BR_Hgaga_SM(j) /) channel_SM(26,:) = (/ t%tev%XS_H_SM(j) , t%BR_Hbb_SM(j) /) channel_SM(27,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_Hbb_SM(j) /) - channel_SM(28,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hbb_SM(j) /) - channel_SM(29,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Hbb_SM(j) /) - channel_SM(30,:) = (/ t%tev%XS_ttH_SM(j) , t%BR_Hbb_SM(j) /) + channel_SM(28,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hbb_SM(j) /) + channel_SM(29,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Hbb_SM(j) /) + channel_SM(30,:) = (/ t%tev%XS_ttH_SM(j) , t%BR_Hbb_SM(j) /) case(6229) ! ns = 4; nb = 6; call initialise_XS_rat_BR_rat nc = 24; call initialise_channel_rat_SM ! XS_rat(1) = t%tev%XS_hjW_ratio(j) -! XS_rat(2) = t%tev%XS_hj_ratio(j) -! XS_rat(3) = t%tev%XS_hjZ_ratio(j) +! XS_rat(2) = t%tev%XS_hj_ratio(j) +! XS_rat(3) = t%tev%XS_hjZ_ratio(j) ! XS_rat(4) = t%tev%XS_vbf_ratio(j) -! BR_rat(1) = div( t%BR_hjbb(j) , t%BR_Hbb_SM(j) ,0.0D0,1.0D0) -! BR_rat(2) = div( t%BR_hjWW(j) , t%BR_HWW_SM(j) ,0.0D0,1.0D0) -! BR_rat(3) = div(t%BR_hjtautau(j) , t%BR_Htautau_SM(j) ,0.0D0,1.0D0) -! BR_rat(4) = div( t%BR_hjgaga(j) , t%BR_Hgaga_SM(j) ,0.0D0,1.0D0) +! BR_rat(1) = div( t%BR_hjbb(j) , t%BR_Hbb_SM(j) ,0.0D0,1.0D0) +! BR_rat(2) = div( t%BR_hjWW(j) , t%BR_HWW_SM(j) ,0.0D0,1.0D0) +! BR_rat(3) = div(t%BR_hjtautau(j) , t%BR_Htautau_SM(j) ,0.0D0,1.0D0) +! BR_rat(4) = div( t%BR_hjgaga(j) , t%BR_Hgaga_SM(j) ,0.0D0,1.0D0) ! BR_rat(5) = div(( t%BR_hjss(j)+t%BR_hjcc(j)+t%BR_hjbb(j)+t%BR_hjgg(j) ) & -! & , t%BR_Hjets_SM(j) ,0.0D0,1.0D0) -! BR_rat(6) = div( t%BR_hjZZ(j) , t%BR_HZZ_SM(j) ,0.0D0,1.0D0) +! & , t%BR_Hjets_SM(j) ,0.0D0,1.0D0) +! BR_rat(6) = div( t%BR_hjZZ(j) , t%BR_HZZ_SM(j) ,0.0D0,1.0D0) channel_rat(1,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(4,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(5,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(6,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(7,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(8,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(9,:) = (/ t%tev%XS_hj_ratio(j) , & & div((t%BR_hjss(j)+t%BR_hjcc(j)+t%BR_hjbb(j)+t%BR_hjgg(j)),t%BR_Hjets_SM(j),0.0D0,1.0D0) /) channel_rat(10,:) = (/ t%tev%XS_vbf_ratio(j) , & & div((t%BR_hjss(j)+t%BR_hjcc(j)+t%BR_hjbb(j)+t%BR_hjgg(j)),t%BR_Hjets_SM(j),0.0D0,1.0D0) /) channel_rat(11,:) = (/ t%tev%XS_hjW_ratio(j) , & & div((t%BR_hjss(j)+t%BR_hjcc(j)+t%BR_hjbb(j)+t%BR_hjgg(j)),t%BR_Hjets_SM(j),0.0D0,1.0D0) /) channel_rat(12,:) = (/ t%tev%XS_hjZ_ratio(j) , & & div((t%BR_hjss(j)+t%BR_hjcc(j)+t%BR_hjbb(j)+t%BR_hjgg(j)),t%BR_Hjets_SM(j),0.0D0,1.0D0) /) channel_rat(13,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(14,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(15,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(16,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(17,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(18,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(19,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(20,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(21,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(22,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(23,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(24,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_SM(1,:) = (/ t%tev%XS_H_SM(j) , t%BR_HWW_SM(j) /) channel_SM(2,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_HWW_SM(j) /) - channel_SM(3,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HWW_SM(j) /) + channel_SM(3,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HWW_SM(j) /) channel_SM(4,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_HWW_SM(j) /) channel_SM(5,:) = (/ t%tev%XS_H_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(6,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_Htautau_SM(j) /) - channel_SM(7,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Htautau_SM(j) /) + channel_SM(7,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(8,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(9,:) = (/ t%tev%XS_H_SM(j) , t%BR_Hjets_SM(j) /) channel_SM(10,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_Hjets_SM(j) /) - channel_SM(11,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hjets_SM(j) /) + channel_SM(11,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hjets_SM(j) /) channel_SM(12,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Hjets_SM(j) /) channel_SM(13,:) = (/ t%tev%XS_H_SM(j) , t%BR_HZZ_SM(j) /) channel_SM(14,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_HZZ_SM(j) /) - channel_SM(15,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HZZ_SM(j) /) + channel_SM(15,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HZZ_SM(j) /) channel_SM(16,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_HZZ_SM(j) /) channel_SM(17,:) = (/ t%tev%XS_H_SM(j) , t%BR_Hgaga_SM(j) /) channel_SM(18,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_Hgaga_SM(j) /) - channel_SM(19,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hgaga_SM(j) /) + channel_SM(19,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hgaga_SM(j) /) channel_SM(20,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Hgaga_SM(j) /) channel_SM(21,:) = (/ t%tev%XS_H_SM(j) , t%BR_Hbb_SM(j) /) channel_SM(22,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_Hbb_SM(j) /) - channel_SM(23,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hbb_SM(j) /) - channel_SM(24,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Hbb_SM(j) /) - + channel_SM(23,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hbb_SM(j) /) + channel_SM(24,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Hbb_SM(j) /) + case(6304) ! ns = 4; nb = 5; call initialise_XS_rat_BR_rat nc = 20; call initialise_channel_rat_SM channel_rat(1,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(4,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(5,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(6,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(7,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(8,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(9,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(10,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(11,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(12,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(13,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(14,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(15,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(16,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(17,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(18,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(19,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(20,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_SM(1,:) = (/ t%tev%XS_H_SM(j) , t%BR_HWW_SM(j) /) channel_SM(2,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_HWW_SM(j) /) - channel_SM(3,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HWW_SM(j) /) + channel_SM(3,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HWW_SM(j) /) channel_SM(4,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_HWW_SM(j) /) channel_SM(5,:) = (/ t%tev%XS_H_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(6,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_Htautau_SM(j) /) - channel_SM(7,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Htautau_SM(j) /) + channel_SM(7,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(8,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(9,:) = (/ t%tev%XS_H_SM(j) , t%BR_HZZ_SM(j) /) channel_SM(10,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_HZZ_SM(j) /) - channel_SM(11,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HZZ_SM(j) /) + channel_SM(11,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HZZ_SM(j) /) channel_SM(12,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_HZZ_SM(j) /) channel_SM(13,:) = (/ t%tev%XS_H_SM(j) , t%BR_Hgaga_SM(j) /) channel_SM(14,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_Hgaga_SM(j) /) - channel_SM(15,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hgaga_SM(j) /) + channel_SM(15,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hgaga_SM(j) /) channel_SM(16,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Hgaga_SM(j) /) channel_SM(17,:) = (/ t%tev%XS_H_SM(j) , t%BR_Hbb_SM(j) /) channel_SM(18,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_Hbb_SM(j) /) - channel_SM(19,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hbb_SM(j) /) - channel_SM(20,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Hbb_SM(j) /) - + channel_SM(19,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hbb_SM(j) /) + channel_SM(20,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Hbb_SM(j) /) + case(6171) ! ns = 4; nb = 3; call initialise_XS_rat_BR_rat nc = 12; call initialise_channel_rat_SM ! XS_rat(1) = t%tev%XS_hjW_ratio(j) -! XS_rat(2) = t%tev%XS_hj_ratio(j) -! XS_rat(3) = t%tev%XS_hjZ_ratio(j) +! XS_rat(2) = t%tev%XS_hj_ratio(j) +! XS_rat(3) = t%tev%XS_hjZ_ratio(j) ! XS_rat(4) = t%tev%XS_vbf_ratio(j) -! BR_rat(1) = div( t%BR_hjWW(j) , t%BR_HWW_SM(j) ,0.0D0,1.0D0) -! BR_rat(2) = div(t%BR_hjtautau(j) , t%BR_Htautau_SM(j),0.0D0,1.0D0) +! BR_rat(1) = div( t%BR_hjWW(j) , t%BR_HWW_SM(j) ,0.0D0,1.0D0) +! BR_rat(2) = div(t%BR_hjtautau(j) , t%BR_Htautau_SM(j),0.0D0,1.0D0) ! BR_rat(3) = div(( t%BR_hjss(j)+t%BR_hjcc(j)+t%BR_hjbb(j)+t%BR_hjgg(j) ) & -! & , t%BR_Hjets_SM(j),0.0D0,1.0D0) +! & , t%BR_Hjets_SM(j),0.0D0,1.0D0) channel_rat(1,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(4,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(5,:) = (/ t%tev%XS_hj_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(6,:) = (/ t%tev%XS_vbf_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(7,:) = (/ t%tev%XS_hjW_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(8,:) = (/ t%tev%XS_hjZ_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(9,:) = (/ t%tev%XS_hj_ratio(j) , & & div((t%BR_hjss(j)+t%BR_hjcc(j)+t%BR_hjbb(j)+t%BR_hjgg(j)),t%BR_Hjets_SM(j),0.0D0,1.0D0) /) channel_rat(10,:) = (/ t%tev%XS_vbf_ratio(j) , & & div((t%BR_hjss(j)+t%BR_hjcc(j)+t%BR_hjbb(j)+t%BR_hjgg(j)),t%BR_Hjets_SM(j),0.0D0,1.0D0) /) channel_rat(11,:) = (/ t%tev%XS_hjW_ratio(j) , & & div((t%BR_hjss(j)+t%BR_hjcc(j)+t%BR_hjbb(j)+t%BR_hjgg(j)),t%BR_Hjets_SM(j),0.0D0,1.0D0) /) channel_rat(12,:) = (/ t%tev%XS_hjZ_ratio(j) , & & div((t%BR_hjss(j)+t%BR_hjcc(j)+t%BR_hjbb(j)+t%BR_hjgg(j)),t%BR_Hjets_SM(j),0.0D0,1.0D0) /) channel_SM(1,:) = (/ t%tev%XS_H_SM(j) , t%BR_HWW_SM(j) /) channel_SM(2,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_HWW_SM(j) /) - channel_SM(3,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HWW_SM(j) /) + channel_SM(3,:) = (/ t%tev%XS_HW_SM(j) , t%BR_HWW_SM(j) /) channel_SM(4,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_HWW_SM(j) /) channel_SM(5,:) = (/ t%tev%XS_H_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(6,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_Htautau_SM(j) /) - channel_SM(7,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Htautau_SM(j) /) + channel_SM(7,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(8,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(9,:) = (/ t%tev%XS_H_SM(j) , t%BR_Hjets_SM(j) /) channel_SM(10,:) = (/ t%tev%XS_vbf_SM(j) , t%BR_Hjets_SM(j) /) - channel_SM(11,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hjets_SM(j) /) + channel_SM(11,:) = (/ t%tev%XS_HW_SM(j) , t%BR_Hjets_SM(j) /) channel_SM(12,:) = (/ t%tev%XS_HZ_SM(j) , t%BR_Hjets_SM(j) /) -!---------------------- LHC 7/8 TeV searches -------------------- +!---------------------- LHC 7/8 TeV searches -------------------- case(5757,2011005,3615,2012018) -! ns = 2; nb = 1; call initialise_XS_rat_BR_rat +! ns = 2; nb = 1; call initialise_XS_rat_BR_rat nc = 2; call initialise_channel_rat_SM - -! XS_rat(1) = t%tev%XS_hj_ratio(j) + +! XS_rat(1) = t%tev%XS_hj_ratio(j) ! XS_rat(2) = t%tev%XS_vbf_ratio(j) - + ! BR_rat(1) = div( t%BR_hjWW(j) , t%BR_HWW_SM(j) ,0.0D0,1.0D0) channel_rat(1,:) = (/ t%lhc7%XS_hj_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%lhc7%XS_vbf_ratio(j), div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_SM(1,:) = (/ t%lhc7%XS_H_SM(j) , t%BR_HWW_SM(j) /) channel_SM(2,:) = (/ t%lhc7%XS_vbf_SM(j), t%BR_HWW_SM(j) /) case(12046) nc = 2; call initialise_channel_rat_SM - + channel_rat(1,:) = (/ t%lhc8%XS_hj_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%lhc8%XS_vbf_ratio(j), div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_SM(1,:) = (/ t%lhc8%XS_H_SM(j) , t%BR_HWW_SM(j) /) channel_SM(2,:) = (/ t%lhc8%XS_vbf_SM(j), t%BR_HWW_SM(j) /) - case(2011048,11004,11015,11013,11028,11006,11017,110271,110272,14161,14162,5064,2012017,2011150,2011131) -! ns = 2; nb = 1; call initialise_XS_rat_BR_rat + case(2011048,11004,11015,11013,11028,11006,11017,110271,110272,14161,14162,5064,2012017,2011150,2011131) +! ns = 2; nb = 1; call initialise_XS_rat_BR_rat nc = 2; call initialise_channel_rat_SM - -! XS_rat(1) = t%lhc7%XS_hj_ratio(j) -! XS_rat(2) = t%lhc7%XS_vbf_ratio(j) + +! XS_rat(1) = t%lhc7%XS_hj_ratio(j) +! XS_rat(2) = t%lhc7%XS_vbf_ratio(j) ! BR_rat(1) = div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) channel_rat(1,:) = (/ t%lhc7%XS_hj_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) - channel_rat(2,:) = (/ t%lhc7%XS_vbf_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) - + channel_rat(2,:) = (/ t%lhc7%XS_vbf_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) + channel_SM(1,:) = (/ t%lhc7%XS_H_SM(j) , t%BR_HZZ_SM(j) /) - channel_SM(2,:) = (/ t%lhc7%XS_vbf_SM(j) , t%BR_HZZ_SM(j) /) + channel_SM(2,:) = (/ t%lhc7%XS_vbf_SM(j) , t%BR_HZZ_SM(j) /) - case(11034,12039,13009,12006,2012078) -! ns = 1; nb = 2; call initialise_XS_rat_BR_rat + case(11034,12039,13009,12006,2012078) +! ns = 1; nb = 2; call initialise_XS_rat_BR_rat nc = 2; call initialise_channel_rat_SM - + channel_rat(1,:) = (/ t%lhc7%XS_hjW_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) - channel_rat(2,:) = (/ t%lhc7%XS_hjW_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) - + channel_rat(2,:) = (/ t%lhc7%XS_hjW_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) + channel_SM(1,:) = (/ t%lhc7%XS_HW_SM(j) , t%BR_HWW_SM(j) /) - channel_SM(2,:) = (/ t%lhc7%XS_HW_SM(j) , t%BR_Htautau_SM(j) /) + channel_SM(2,:) = (/ t%lhc7%XS_HW_SM(j) , t%BR_Htautau_SM(j) /) - case(12051) + case(12051) nc = 2; call initialise_channel_rat_SM - + channel_rat(1,:) = (/ t%lhc7%XS_hjW_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) - channel_rat(2,:) = (/ t%lhc7%XS_hjZ_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) - - channel_SM(1,:) = (/ t%lhc7%XS_HW_SM(j) , t%BR_Htautau_SM(j) /) - channel_SM(2,:) = (/ t%lhc7%XS_HZ_SM(j) , t%BR_Htautau_SM(j) /) + channel_rat(2,:) = (/ t%lhc7%XS_hjZ_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) + + channel_SM(1,:) = (/ t%lhc7%XS_HW_SM(j) , t%BR_Htautau_SM(j) /) + channel_SM(2,:) = (/ t%lhc7%XS_HZ_SM(j) , t%BR_Htautau_SM(j) /) case(2012015) -! ns = 2; nb = 1; call initialise_XS_rat_BR_rat +! ns = 2; nb = 1; call initialise_XS_rat_BR_rat nc = 2; call initialise_channel_rat_SM - + ! XS_rat(1) = t%tev%XS_hjW_ratio(j) -! XS_rat(2) = t%tev%XS_hjZ_ratio(j) - +! XS_rat(2) = t%tev%XS_hjZ_ratio(j) + ! BR_rat(1) = div(t%BR_hjbb(j) , t%BR_Hbb_SM(j),0.0D0,1.0D0) - + channel_rat(1,:) = (/ t%lhc7%XS_hjW_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) - channel_rat(2,:) = (/ t%lhc7%XS_hjZ_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) + channel_rat(2,:) = (/ t%lhc7%XS_hjZ_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) - channel_SM(1,:) = (/ t%lhc7%XS_HW_SM(j) , t%BR_Hbb_SM(j) /) - channel_SM(2,:) = (/ t%lhc7%XS_HZ_SM(j) , t%BR_Hbb_SM(j) /) + channel_SM(1,:) = (/ t%lhc7%XS_HW_SM(j) , t%BR_Hbb_SM(j) /) + channel_SM(2,:) = (/ t%lhc7%XS_HZ_SM(j) , t%BR_Hbb_SM(j) /) - case(2011162,1415) -! ns = 4; nb = 1; call initialise_XS_rat_BR_rat + case(2011162,1415) +! ns = 4; nb = 1; call initialise_XS_rat_BR_rat nc = 4; call initialise_channel_rat_SM - -! XS_rat(1) = t%lhc7%XS_hj_ratio(j) + +! XS_rat(1) = t%lhc7%XS_hj_ratio(j) ! XS_rat(2) = t%lhc7%XS_vbf_ratio(j) -! XS_rat(3) = t%lhc7%XS_hjZ_ratio(j) -! XS_rat(4) = t%lhc7%XS_hjW_ratio(j) - +! XS_rat(3) = t%lhc7%XS_hjZ_ratio(j) +! XS_rat(4) = t%lhc7%XS_hjW_ratio(j) + ! BR_rat(1) = div(t%BR_hjZZ(j) , t%BR_HZZ_SM(j) ,0.0D0,1.0D0) channel_rat(1,:) = (/ t%lhc7%XS_hj_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%lhc7%XS_vbf_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%lhc7%XS_hjZ_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(4,:) = (/ t%lhc7%XS_hjW_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_SM(1,:) = (/ t%lhc7%XS_H_SM(j) , t%BR_HZZ_SM(j) /) channel_SM(2,:) = (/ t%lhc7%XS_vbf_SM(j), t%BR_HZZ_SM(j) /) channel_SM(3,:) = (/ t%lhc7%XS_HZ_SM(j), t%BR_HZZ_SM(j) /) channel_SM(4,:) = (/ t%lhc7%XS_HW_SM(j), t%BR_HZZ_SM(j) /) - case(2012092,20130131) + case(2012092,20130131) nc = 4; call initialise_channel_rat_SM - + channel_rat(1,:) = (/ t%lhc8%XS_hj_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%lhc8%XS_vbf_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%lhc8%XS_hjZ_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(4,:) = (/ t%lhc8%XS_hjW_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_SM(1,:) = (/ t%lhc8%XS_H_SM(j) , t%BR_HZZ_SM(j) /) channel_SM(2,:) = (/ t%lhc8%XS_vbf_SM(j), t%BR_HZZ_SM(j) /) channel_SM(3,:) = (/ t%lhc8%XS_HZ_SM(j), t%BR_HZZ_SM(j) /) channel_SM(4,:) = (/ t%lhc8%XS_HW_SM(j), t%BR_HZZ_SM(j) /) - case(11025,1997) -! ns = 5; nb = 1; call initialise_XS_rat_BR_rat + case(11025,1997) +! ns = 5; nb = 1; call initialise_XS_rat_BR_rat nc = 5; call initialise_channel_rat_SM - -! XS_rat(1) = t%lhc7%XS_hj_ratio(j) + +! XS_rat(1) = t%lhc7%XS_hj_ratio(j) ! XS_rat(2) = t%lhc7%XS_vbf_ratio(j) -! XS_rat(3) = t%lhc7%XS_hjZ_ratio(j) -! XS_rat(4) = t%lhc7%XS_hjW_ratio(j) -! XS_rat(5) = t%lhc7%XS_tthj_ratio(j) - +! XS_rat(3) = t%lhc7%XS_hjZ_ratio(j) +! XS_rat(4) = t%lhc7%XS_hjW_ratio(j) +! XS_rat(5) = t%lhc7%XS_tthj_ratio(j) + ! BR_rat(1) = div(t%BR_hjZZ(j) , t%BR_HZZ_SM(j) ,0.0D0,1.0D0) channel_rat(1,:) = (/ t%lhc7%XS_hj_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%lhc7%XS_vbf_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%lhc7%XS_hjZ_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(4,:) = (/ t%lhc7%XS_hjW_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(5,:) = (/ t%lhc7%XS_tthj_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_SM(1,:) = (/ t%lhc7%XS_H_SM(j) , t%BR_HZZ_SM(j) /) channel_SM(2,:) = (/ t%lhc7%XS_vbf_SM(j), t%BR_HZZ_SM(j) /) channel_SM(3,:) = (/ t%lhc7%XS_HZ_SM(j), t%BR_HZZ_SM(j) /) channel_SM(4,:) = (/ t%lhc7%XS_HW_SM(j), t%BR_HZZ_SM(j) /) channel_SM(5,:) = (/ t%lhc7%XS_ttH_SM(j), t%BR_HZZ_SM(j) /) case(12041,130021,130022) nc = 5; call initialise_channel_rat_SM - + channel_rat(1,:) = (/ t%lhc8%XS_hj_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%lhc8%XS_vbf_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%lhc8%XS_hjZ_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(4,:) = (/ t%lhc8%XS_hjW_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(5,:) = (/ t%lhc8%XS_tthj_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_SM(1,:) = (/ t%lhc8%XS_H_SM(j) , t%BR_HZZ_SM(j) /) channel_SM(2,:) = (/ t%lhc8%XS_vbf_SM(j), t%BR_HZZ_SM(j) /) channel_SM(3,:) = (/ t%lhc8%XS_HZ_SM(j), t%BR_HZZ_SM(j) /) channel_SM(4,:) = (/ t%lhc8%XS_HW_SM(j), t%BR_HZZ_SM(j) /) channel_SM(5,:) = (/ t%lhc8%XS_ttH_SM(j), t%BR_HZZ_SM(j) /) - case(2011026,11005,11016,11026,3478,3357,2011148,2012016) -! ns = 2; nb = 2; call initialise_XS_rat_BR_rat + case(2011026,11005,11016,11026,3478,3357,2011148,2012016) +! ns = 2; nb = 2; call initialise_XS_rat_BR_rat nc = 4; call initialise_channel_rat_SM - -! XS_rat(1) = t%lhc7%XS_hj_ratio(j) + +! XS_rat(1) = t%lhc7%XS_hj_ratio(j) ! XS_rat(2) = t%lhc7%XS_vbf_ratio(j) - -! BR_rat(1) = div( t%BR_hjWW(j) , t%BR_HWW_SM(j) ,0.0D0,1.0D0) + +! BR_rat(1) = div( t%BR_hjWW(j) , t%BR_HWW_SM(j) ,0.0D0,1.0D0) ! BR_rat(2) = div(t%BR_hjZZ(j) , t%BR_HZZ_SM(j) ,0.0D0,1.0D0) channel_rat(1,:) = (/ t%lhc7%XS_hj_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%lhc7%XS_vbf_ratio(j), div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%lhc7%XS_hj_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(4,:) = (/ t%lhc7%XS_vbf_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_SM(1,:) = (/ t%lhc7%XS_H_SM(j) , t%BR_HWW_SM(j) /) channel_SM(2,:) = (/ t%lhc7%XS_vbf_SM(j), t%BR_HWW_SM(j) /) channel_SM(3,:) = (/ t%lhc7%XS_H_SM(j) , t%BR_HZZ_SM(j) /) channel_SM(4,:) = (/ t%lhc7%XS_vbf_SM(j), t%BR_HZZ_SM(j) /) - case(11003,11014,2577,11024,1489) -! ns = 5; nb = 2; call initialise_XS_rat_BR_rat + case(11003,11014,2577,11024,1489) +! ns = 5; nb = 2; call initialise_XS_rat_BR_rat nc = 10; call initialise_channel_rat_SM - -! XS_rat(1) = t%lhc7%XS_hj_ratio(j) + +! XS_rat(1) = t%lhc7%XS_hj_ratio(j) ! XS_rat(2) = t%lhc7%XS_vbf_ratio(j) -! XS_rat(3) = t%lhc7%XS_hjZ_ratio(j) -! XS_rat(4) = t%lhc7%XS_hjW_ratio(j) -! XS_rat(5) = t%lhc7%XS_tthj_ratio(j) - +! XS_rat(3) = t%lhc7%XS_hjZ_ratio(j) +! XS_rat(4) = t%lhc7%XS_hjW_ratio(j) +! XS_rat(5) = t%lhc7%XS_tthj_ratio(j) + ! BR_rat(1) = div( t%BR_hjWW(j) , t%BR_HWW_SM(j) ,0.0D0,1.0D0) ! BR_rat(2) = div( t%BR_hjZZ(j) , t%BR_HZZ_SM(j) ,0.0D0,1.0D0) channel_rat(1,:) = (/ t%lhc7%XS_hj_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%lhc7%XS_vbf_ratio(j), div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%lhc7%XS_hjZ_ratio(j), div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(4,:) = (/ t%lhc7%XS_hjW_ratio(j), div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(5,:) = (/ t%lhc7%XS_tthj_ratio(j), div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(6,:) = (/ t%lhc7%XS_hj_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(7,:) = (/ t%lhc7%XS_vbf_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(8,:) = (/ t%lhc7%XS_hjZ_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(9,:) = (/ t%lhc7%XS_hjW_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(10,:) = (/ t%lhc7%XS_tthj_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_SM(1,:) = (/ t%lhc7%XS_H_SM(j) , t%BR_HWW_SM(j) /) channel_SM(2,:) = (/ t%lhc7%XS_vbf_SM(j), t%BR_HWW_SM(j) /) channel_SM(3,:) = (/ t%lhc7%XS_HZ_SM(j), t%BR_HWW_SM(j) /) channel_SM(4,:) = (/ t%lhc7%XS_HW_SM(j), t%BR_HWW_SM(j) /) channel_SM(5,:) = (/ t%lhc7%XS_ttH_SM(j), t%BR_HWW_SM(j) /) channel_SM(6,:) = (/ t%lhc7%XS_H_SM(j) , t%BR_HZZ_SM(j) /) channel_SM(7,:) = (/ t%lhc7%XS_vbf_SM(j), t%BR_HZZ_SM(j) /) channel_SM(8,:) = (/ t%lhc7%XS_HZ_SM(j), t%BR_HZZ_SM(j) /) channel_SM(9,:) = (/ t%lhc7%XS_HW_SM(j), t%BR_HZZ_SM(j) /) channel_SM(10,:) = (/ t%lhc7%XS_ttH_SM(j), t%BR_HZZ_SM(j) /) case(12042,13003,13027) nc = 4; call initialise_channel_rat_SM - -! XS_rat(1) = t%lhc7%XS_hj_ratio(j) + +! XS_rat(1) = t%lhc7%XS_hj_ratio(j) ! XS_rat(2) = t%lhc7%XS_vbf_ratio(j) -! XS_rat(3) = t%lhc7%XS_hjZ_ratio(j) -! XS_rat(4) = t%lhc7%XS_hjW_ratio(j) -! XS_rat(5) = t%lhc7%XS_tthj_ratio(j) - +! XS_rat(3) = t%lhc7%XS_hjZ_ratio(j) +! XS_rat(4) = t%lhc7%XS_hjW_ratio(j) +! XS_rat(5) = t%lhc7%XS_tthj_ratio(j) + ! BR_rat(1) = div( t%BR_hjWW(j) , t%BR_HWW_SM(j) ,0.0D0,1.0D0) ! BR_rat(2) = div( t%BR_hjZZ(j) , t%BR_HZZ_SM(j) ,0.0D0,1.0D0) channel_rat(1,:) = (/ t%lhc7%XS_hj_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%lhc7%XS_vbf_ratio(j), div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%lhc7%XS_hjZ_ratio(j), div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(4,:) = (/ t%lhc7%XS_hjW_ratio(j), div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_SM(1,:) = (/ t%lhc7%XS_H_SM(j) , t%BR_HWW_SM(j) /) channel_SM(2,:) = (/ t%lhc7%XS_vbf_SM(j), t%BR_HWW_SM(j) /) channel_SM(3,:) = (/ t%lhc7%XS_HZ_SM(j), t%BR_HWW_SM(j) /) channel_SM(4,:) = (/ t%lhc7%XS_HW_SM(j), t%BR_HWW_SM(j) /) case(2012014) -! ns = 5; nb = 1; call initialise_XS_rat_BR_rat +! ns = 5; nb = 1; call initialise_XS_rat_BR_rat nc = 5; call initialise_channel_rat_SM - -! XS_rat(1) = t%lhc7%XS_hj_ratio(j) + +! XS_rat(1) = t%lhc7%XS_hj_ratio(j) ! XS_rat(2) = t%lhc7%XS_vbf_ratio(j) -! XS_rat(3) = t%lhc7%XS_hjZ_ratio(j) -! XS_rat(4) = t%lhc7%XS_hjW_ratio(j) -! XS_rat(5) = t%lhc7%XS_tthj_ratio(j) - +! XS_rat(3) = t%lhc7%XS_hjZ_ratio(j) +! XS_rat(4) = t%lhc7%XS_hjW_ratio(j) +! XS_rat(5) = t%lhc7%XS_tthj_ratio(j) + ! BR_rat(1) = div( t%BR_hjWW(j) , t%BR_HWW_SM(j) ,0.0D0,1.0D0) ! BR_rat(2) = div( t%BR_hjZZ(j) , t%BR_HZZ_SM(j) ,0.0D0,1.0D0) channel_rat(1,:) = (/ t%lhc7%XS_hj_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%lhc7%XS_vbf_ratio(j), div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%lhc7%XS_hjZ_ratio(j), div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(4,:) = (/ t%lhc7%XS_hjW_ratio(j), div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(5,:) = (/ t%lhc7%XS_tthj_ratio(j), div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_SM(1,:) = (/ t%lhc7%XS_H_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(2,:) = (/ t%lhc7%XS_vbf_SM(j), t%BR_Htautau_SM(j) /) channel_SM(3,:) = (/ t%lhc7%XS_HZ_SM(j), t%BR_Htautau_SM(j) /) channel_SM(4,:) = (/ t%lhc7%XS_HW_SM(j), t%BR_Htautau_SM(j) /) channel_SM(5,:) = (/ t%lhc7%XS_ttH_SM(j), t%BR_Htautau_SM(j) /) case(2012160) -! ns = 5; nb = 1; call initialise_XS_rat_BR_rat +! ns = 5; nb = 1; call initialise_XS_rat_BR_rat nc = 4; call initialise_channel_rat_SM - -! XS_rat(1) = t%lhc7%XS_hj_ratio(j) + +! XS_rat(1) = t%lhc7%XS_hj_ratio(j) ! XS_rat(2) = t%lhc7%XS_vbf_ratio(j) -! XS_rat(3) = t%lhc7%XS_hjZ_ratio(j) -! XS_rat(4) = t%lhc7%XS_hjW_ratio(j) -! XS_rat(5) = t%lhc7%XS_tthj_ratio(j) - +! XS_rat(3) = t%lhc7%XS_hjZ_ratio(j) +! XS_rat(4) = t%lhc7%XS_hjW_ratio(j) +! XS_rat(5) = t%lhc7%XS_tthj_ratio(j) + ! BR_rat(1) = div( t%BR_hjWW(j) , t%BR_HWW_SM(j) ,0.0D0,1.0D0) ! BR_rat(2) = div( t%BR_hjZZ(j) , t%BR_HZZ_SM(j) ,0.0D0,1.0D0) channel_rat(1,:) = (/ t%lhc7%XS_hj_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%lhc7%XS_vbf_ratio(j), div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%lhc7%XS_hjZ_ratio(j), div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(4,:) = (/ t%lhc7%XS_hjW_ratio(j), div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_SM(1,:) = (/ t%lhc7%XS_H_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(2,:) = (/ t%lhc7%XS_vbf_SM(j), t%BR_Htautau_SM(j) /) channel_SM(3,:) = (/ t%lhc7%XS_HZ_SM(j), t%BR_Htautau_SM(j) /) channel_SM(4,:) = (/ t%lhc7%XS_HW_SM(j), t%BR_Htautau_SM(j) /) - case(11009,11020,2011133) + case(11009,11020,2011133) ! ns = 2; nb = 1; call initialise_XS_rat_BR_rat nc = 2; call initialise_channel_rat_SM - -! XS_rat(1) = t%lhc7%XS_hj_ratio(j) + +! XS_rat(1) = t%lhc7%XS_hj_ratio(j) ! XS_rat(2) = t%lhc7%XS_vbf_ratio(j) - + ! BR_rat(1) = div( t%BR_hjtautau(j) , t%BR_Htautau_SM(j) ,0.0D0,1.0D0) channel_rat(1,:) = (/ t%lhc7%XS_hj_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%lhc7%XS_vbf_ratio(j), div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_SM(1,:) = (/ t%lhc7%XS_H_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(2,:) = (/ t%lhc7%XS_vbf_SM(j), t%BR_Htautau_SM(j) /) - case(110291) + case(110291) ! ns = 5; nb = 1; call initialise_XS_rat_BR_rat nc = 5; call initialise_channel_rat_SM - -! XS_rat(1) = t%lhc7%XS_hj_ratio(j) + +! XS_rat(1) = t%lhc7%XS_hj_ratio(j) ! XS_rat(2) = t%lhc7%XS_vbf_ratio(j) -! XS_rat(3) = t%lhc7%XS_hjZ_ratio(j) -! XS_rat(4) = t%lhc7%XS_hjW_ratio(j) -! XS_rat(5) = t%lhc7%XS_tthj_ratio(j) - +! XS_rat(3) = t%lhc7%XS_hjZ_ratio(j) +! XS_rat(4) = t%lhc7%XS_hjW_ratio(j) +! XS_rat(5) = t%lhc7%XS_tthj_ratio(j) + ! BR_rat(1) = div( t%BR_hjtautau(j) , t%BR_Htautau_SM(j) ,0.0D0,1.0D0) channel_rat(1,:) = (/ t%lhc7%XS_hj_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%lhc7%XS_vbf_ratio(j), div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%lhc7%XS_hjZ_ratio(j), div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(4,:) = (/ t%lhc7%XS_hjW_ratio(j), div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(5,:) = (/ t%lhc7%XS_tthj_ratio(j), div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_SM(1,:) = (/ t%lhc7%XS_H_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(2,:) = (/ t%lhc7%XS_vbf_SM(j), t%BR_Htautau_SM(j) /) channel_SM(3,:) = (/ t%lhc7%XS_HZ_SM(j), t%BR_Htautau_SM(j) /) channel_SM(4,:) = (/ t%lhc7%XS_HW_SM(j), t%BR_Htautau_SM(j) /) channel_SM(5,:) = (/ t%lhc7%XS_ttH_SM(j), t%BR_Htautau_SM(j) /) - case(12043) + case(12043) nc = 4; call initialise_channel_rat_SM - + channel_rat(1,:) = (/ t%lhc8%XS_hj_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%lhc8%XS_vbf_ratio(j), div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%lhc8%XS_hjZ_ratio(j), div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(4,:) = (/ t%lhc8%XS_hjW_ratio(j), div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) - + channel_SM(1,:) = (/ t%lhc8%XS_H_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(2,:) = (/ t%lhc8%XS_vbf_SM(j), t%BR_Htautau_SM(j) /) channel_SM(3,:) = (/ t%lhc8%XS_HZ_SM(j), t%BR_Htautau_SM(j) /) channel_SM(4,:) = (/ t%lhc8%XS_HW_SM(j), t%BR_Htautau_SM(j) /) - case(2013010,7663) + case(2013010,7663) nc = 4; call initialise_channel_rat_SM - + channel_rat(1,:) = (/ t%lhc8%XS_hj_ratio(j) , div(t%BR_hjmumu(j),t%BR_Hmumu_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%lhc8%XS_vbf_ratio(j), div(t%BR_hjmumu(j),t%BR_Hmumu_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%lhc8%XS_hjZ_ratio(j), div(t%BR_hjmumu(j),t%BR_Hmumu_SM(j),0.0D0,1.0D0) /) channel_rat(4,:) = (/ t%lhc8%XS_hjW_ratio(j), div(t%BR_hjmumu(j),t%BR_Hmumu_SM(j),0.0D0,1.0D0) /) - + channel_SM(1,:) = (/ t%lhc8%XS_H_SM(j) , t%BR_Hmumu_SM(j) /) channel_SM(2,:) = (/ t%lhc8%XS_vbf_SM(j), t%BR_Hmumu_SM(j) /) channel_SM(3,:) = (/ t%lhc8%XS_HZ_SM(j), t%BR_Hmumu_SM(j) /) channel_SM(4,:) = (/ t%lhc8%XS_HW_SM(j), t%BR_Hmumu_SM(j) /) - - case(11031,2011103,11012) + + case(11031,2011103,11012) nc = 2; call initialise_channel_rat_SM - + channel_rat(1,:) = (/ t%lhc7%XS_hjZ_ratio(j), div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%lhc7%XS_hjW_ratio(j), div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_SM(1,:) = (/ t%lhc7%XS_HZ_SM(j), t%BR_Hbb_SM(j) /) channel_SM(2,:) = (/ t%lhc7%XS_HW_SM(j), t%BR_Hbb_SM(j) /) - case(12044,13012) + case(12044,13012) nc = 2; call initialise_channel_rat_SM - + channel_rat(1,:) = (/ t%lhc8%XS_hjZ_ratio(j), div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%lhc8%XS_hjW_ratio(j), div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_SM(1,:) = (/ t%lhc8%XS_HZ_SM(j), t%BR_Hbb_SM(j) /) channel_SM(2,:) = (/ t%lhc8%XS_HW_SM(j), t%BR_Hbb_SM(j) /) - case(13011) + case(13011) nc = 2; call initialise_channel_rat_SM - + channel_rat(1,:) = (/ t%lhc8%XS_hj_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%lhc8%XS_vbf_ratio(j), div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_SM(1,:) = (/ t%lhc8%XS_H_SM(j) , t%BR_Hbb_SM(j) /) channel_SM(2,:) = (/ t%lhc8%XS_vbf_SM(j), t%BR_Hbb_SM(j) /) - case(2012161) + case(2012161) nc = 2; call initialise_channel_rat_SM - + channel_rat(1,:) = (/ t%lhc8%XS_hjZ_ratio(j), div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%lhc8%XS_hjW_ratio(j), div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_SM(1,:) = (/ t%lhc8%XS_HZ_SM(j), t%BR_Hbb_SM(j) /) channel_SM(2,:) = (/ t%lhc8%XS_HW_SM(j), t%BR_Hbb_SM(j) /) - case(11021) -! ns = 2; nb = 1; call initialise_XS_rat_BR_rat + case(11021) +! ns = 2; nb = 1; call initialise_XS_rat_BR_rat nc = 2; call initialise_channel_rat_SM - -! XS_rat(1) = t%lhc7%XS_hj_ratio(j) -! XS_rat(2) = t%lhc7%XS_vbf_ratio(j) - + +! XS_rat(1) = t%lhc7%XS_hj_ratio(j) +! XS_rat(2) = t%lhc7%XS_vbf_ratio(j) + ! BR_rat(1) = div( t%BR_hjgaga(j) , t%BR_Hgaga_SM(j) ,0.0D0,1.0D0) channel_rat(1,:) = (/ t%lhc7%XS_hj_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%lhc7%XS_vbf_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) - + channel_SM(1,:) = (/ t%lhc7%XS_H_SM(j) , t%BR_Hgaga_SM(j) /) channel_SM(2,:) = (/ t%lhc7%XS_vbf_SM(j), t%BR_Hgaga_SM(j) /) - + case(110212) ! ns = 3; nb = 1; call initialise_XS_rat_BR_rat nc = 3; call initialise_channel_rat_SM - + ! XS_rat(1) = t%lhc7%XS_vbf_ratio(j) -! XS_rat(2) = t%lhc7%XS_hjZ_ratio(j) -! XS_rat(3) = t%lhc7%XS_hjW_ratio(j) - +! XS_rat(2) = t%lhc7%XS_hjZ_ratio(j) +! XS_rat(3) = t%lhc7%XS_hjW_ratio(j) + ! BR_rat(1) = div( t%BR_hjgaga(j) , t%BR_Hgaga_SM(j) ,0.0D0,1.0D0) channel_rat(1,:) = (/ t%lhc7%XS_vbf_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%lhc7%XS_hjZ_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%lhc7%XS_hjW_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_SM(1,:) = (/ t%lhc7%XS_vbf_SM(j), t%BR_Hgaga_SM(j) /) channel_SM(2,:) = (/ t%lhc7%XS_HZ_SM(j), t%BR_Hgaga_SM(j) /) - channel_SM(3,:) = (/ t%lhc7%XS_HW_SM(j), t%BR_Hgaga_SM(j) /) - - case(2011025,2011085,2011161,5895,1414,1487,12001,11010,11030) -! ns = 5; nb = 1; call initialise_XS_rat_BR_rat + channel_SM(3,:) = (/ t%lhc7%XS_HW_SM(j), t%BR_Hgaga_SM(j) /) + + case(2011025,2011085,2011161,5895,1414,1487,12001,11010,11030) +! ns = 5; nb = 1; call initialise_XS_rat_BR_rat nc = 5; call initialise_channel_rat_SM - -! XS_rat(1) = t%lhc7%XS_hj_ratio(j) + +! XS_rat(1) = t%lhc7%XS_hj_ratio(j) ! XS_rat(2) = t%lhc7%XS_vbf_ratio(j) -! XS_rat(3) = t%lhc7%XS_hjZ_ratio(j) -! XS_rat(4) = t%lhc7%XS_hjW_ratio(j) -! XS_rat(5) = t%lhc7%XS_tthj_ratio(j) - +! XS_rat(3) = t%lhc7%XS_hjZ_ratio(j) +! XS_rat(4) = t%lhc7%XS_hjW_ratio(j) +! XS_rat(5) = t%lhc7%XS_tthj_ratio(j) + ! BR_rat(1) = div( t%BR_hjgaga(j) , t%BR_Hgaga_SM(j) ,0.0D0,1.0D0) channel_rat(1,:) = (/ t%lhc7%XS_hj_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%lhc7%XS_vbf_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%lhc7%XS_hjZ_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(4,:) = (/ t%lhc7%XS_hjW_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(5,:) = (/ t%lhc7%XS_tthj_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_SM(1,:) = (/ t%lhc7%XS_H_SM(j) , t%BR_Hgaga_SM(j) /) channel_SM(2,:) = (/ t%lhc7%XS_vbf_SM(j), t%BR_Hgaga_SM(j) /) channel_SM(3,:) = (/ t%lhc7%XS_HZ_SM(j), t%BR_Hgaga_SM(j) /) channel_SM(4,:) = (/ t%lhc7%XS_HW_SM(j), t%BR_Hgaga_SM(j) /) channel_SM(5,:) = (/ t%lhc7%XS_ttH_SM(j), t%BR_Hgaga_SM(j) /) - case(17013) + case(17013) nc = 5; call initialise_channel_rat_SM - + channel_rat(1,:) = (/ t%lhc13%XS_hj_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%lhc13%XS_vbf_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%lhc13%XS_hjZ_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(4,:) = (/ t%lhc13%XS_hjW_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(5,:) = (/ t%lhc13%XS_tthj_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_SM(1,:) = (/ t%lhc13%XS_H_SM(j) , t%BR_Hgaga_SM(j) /) channel_SM(2,:) = (/ t%lhc13%XS_vbf_SM(j), t%BR_Hgaga_SM(j) /) channel_SM(3,:) = (/ t%lhc13%XS_HZ_SM(j), t%BR_Hgaga_SM(j) /) channel_SM(4,:) = (/ t%lhc13%XS_HW_SM(j), t%BR_Hgaga_SM(j) /) channel_SM(5,:) = (/ t%lhc13%XS_ttH_SM(j), t%BR_Hgaga_SM(j) /) - case(2012091,2012168) -! ns = 5; nb = 1; call initialise_XS_rat_BR_rat + case(2012091,2012168) +! ns = 5; nb = 1; call initialise_XS_rat_BR_rat nc = 5; call initialise_channel_rat_SM - + channel_rat(1,:) = (/ t%lhc8%XS_hj_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%lhc8%XS_vbf_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%lhc8%XS_hjZ_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(4,:) = (/ t%lhc8%XS_hjW_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(5,:) = (/ t%lhc8%XS_tthj_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_SM(1,:) = (/ t%lhc8%XS_H_SM(j) , t%BR_Hgaga_SM(j) /) channel_SM(2,:) = (/ t%lhc8%XS_vbf_SM(j), t%BR_Hgaga_SM(j) /) channel_SM(3,:) = (/ t%lhc8%XS_HZ_SM(j), t%BR_Hgaga_SM(j) /) channel_SM(4,:) = (/ t%lhc8%XS_HW_SM(j), t%BR_Hgaga_SM(j) /) channel_SM(5,:) = (/ t%lhc8%XS_ttH_SM(j), t%BR_Hgaga_SM(j) /) - - + + case(12015,13001) nc = 5; call initialise_channel_rat_SM - + channel_rat(1,:) = (/ t%lhc8%XS_hj_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%lhc8%XS_vbf_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%lhc8%XS_hjZ_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(4,:) = (/ t%lhc8%XS_hjW_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(5,:) = (/ t%lhc8%XS_tthj_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_SM(1,:) = (/ t%lhc8%XS_H_SM(j) , t%BR_Hgaga_SM(j) /) channel_SM(2,:) = (/ t%lhc8%XS_vbf_SM(j), t%BR_Hgaga_SM(j) /) channel_SM(3,:) = (/ t%lhc8%XS_HZ_SM(j), t%BR_Hgaga_SM(j) /) channel_SM(4,:) = (/ t%lhc8%XS_HW_SM(j), t%BR_Hgaga_SM(j) /) - channel_SM(5,:) = (/ t%lhc8%XS_ttH_SM(j), t%BR_Hgaga_SM(j) /) + channel_SM(5,:) = (/ t%lhc8%XS_ttH_SM(j), t%BR_Hgaga_SM(j) /) case(13006,13075515,2013009,3051) nc = 5; call initialise_channel_rat_SM - -! XS_rat(1) = t%lhc7%XS_hj_ratio(j) + +! XS_rat(1) = t%lhc7%XS_hj_ratio(j) ! XS_rat(2) = t%lhc7%XS_vbf_ratio(j) -! XS_rat(3) = t%lhc7%XS_hjZ_ratio(j) -! XS_rat(4) = t%lhc7%XS_hjW_ratio(j) -! XS_rat(5) = t%lhc7%XS_tthj_ratio(j) - +! XS_rat(3) = t%lhc7%XS_hjZ_ratio(j) +! XS_rat(4) = t%lhc7%XS_hjW_ratio(j) +! XS_rat(5) = t%lhc7%XS_tthj_ratio(j) + ! BR_rat(1) = div( t%BR_hjgaga(j) , t%BR_Hgaga_SM(j) ,0.0D0,1.0D0) channel_rat(1,:) = (/ t%lhc8%XS_hj_ratio(j) , div(t%BR_hjZga(j),t%BR_HZga_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%lhc8%XS_vbf_ratio(j), div(t%BR_hjZga(j),t%BR_HZga_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%lhc8%XS_hjZ_ratio(j), div(t%BR_hjZga(j),t%BR_HZga_SM(j),0.0D0,1.0D0) /) channel_rat(4,:) = (/ t%lhc8%XS_hjW_ratio(j), div(t%BR_hjZga(j),t%BR_HZga_SM(j),0.0D0,1.0D0) /) channel_rat(5,:) = (/ t%lhc8%XS_tthj_ratio(j), div(t%BR_hjZga(j),t%BR_HZga_SM(j),0.0D0,1.0D0) /) channel_SM(1,:) = (/ t%lhc8%XS_H_SM(j) , t%BR_HZga_SM(j) /) channel_SM(2,:) = (/ t%lhc8%XS_vbf_SM(j), t%BR_HZga_SM(j) /) channel_SM(3,:) = (/ t%lhc8%XS_HZ_SM(j), t%BR_HZga_SM(j) /) channel_SM(4,:) = (/ t%lhc8%XS_HW_SM(j), t%BR_HZga_SM(j) /) - channel_SM(5,:) = (/ t%lhc8%XS_ttH_SM(j), t%BR_HZga_SM(j) /) + channel_SM(5,:) = (/ t%lhc8%XS_ttH_SM(j), t%BR_HZga_SM(j) /) + - case(2748, 1408) -! ns = 5; nb = 3; call initialise_XS_rat_BR_rat +! ns = 5; nb = 3; call initialise_XS_rat_BR_rat nc = 15; call initialise_channel_rat_SM ! XS_rat(1) = t%lhc7%XS_hjW_ratio(j) -! XS_rat(2) = t%lhc7%XS_hj_ratio(j) -! XS_rat(3) = t%lhc7%XS_hjZ_ratio(j) +! XS_rat(2) = t%lhc7%XS_hj_ratio(j) +! XS_rat(3) = t%lhc7%XS_hjZ_ratio(j) ! XS_rat(4) = t%lhc7%XS_vbf_ratio(j) ! XS_rat(5) = t%lhc7%XS_tthj_ratio(j) -! BR_rat(1) = div( t%BR_hjZZ(j) , t%BR_HZZ_SM(j) ,0.0D0,1.0D0) -! BR_rat(2) = div( t%BR_hjWW(j) , t%BR_HWW_SM(j) ,0.0D0,1.0D0) -! BR_rat(3) = div( t%BR_hjgaga(j) , t%BR_Hgaga_SM(j) ,0.0D0,1.0D0) +! BR_rat(1) = div( t%BR_hjZZ(j) , t%BR_HZZ_SM(j) ,0.0D0,1.0D0) +! BR_rat(2) = div( t%BR_hjWW(j) , t%BR_HWW_SM(j) ,0.0D0,1.0D0) +! BR_rat(3) = div( t%BR_hjgaga(j) , t%BR_Hgaga_SM(j) ,0.0D0,1.0D0) channel_rat(1,:) = (/ t%lhc7%XS_hj_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%lhc7%XS_vbf_ratio(j), div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%lhc7%XS_hjZ_ratio(j), div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(4,:) = (/ t%lhc7%XS_hjW_ratio(j), div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(5,:) = (/ t%lhc7%XS_tthj_ratio(j), div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(6,:) = (/ t%lhc7%XS_hj_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(7,:) = (/ t%lhc7%XS_vbf_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(8,:) = (/ t%lhc7%XS_hjZ_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(9,:) = (/ t%lhc7%XS_hjW_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(10,:) = (/ t%lhc7%XS_tthj_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(11,:) = (/ t%lhc7%XS_hj_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(12,:) = (/ t%lhc7%XS_vbf_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(13,:) = (/ t%lhc7%XS_hjZ_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(14,:) = (/ t%lhc7%XS_hjW_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(15,:) = (/ t%lhc7%XS_tthj_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_SM(1,:) = (/ t%lhc7%XS_H_SM(j) , t%BR_HWW_SM(j) /) channel_SM(2,:) = (/ t%lhc7%XS_vbf_SM(j), t%BR_HWW_SM(j) /) channel_SM(3,:) = (/ t%lhc7%XS_HZ_SM(j), t%BR_HWW_SM(j) /) channel_SM(4,:) = (/ t%lhc7%XS_HW_SM(j), t%BR_HWW_SM(j) /) channel_SM(5,:) = (/ t%lhc7%XS_ttH_SM(j), t%BR_HWW_SM(j) /) channel_SM(6,:) = (/ t%lhc7%XS_H_SM(j) , t%BR_HZZ_SM(j) /) channel_SM(7,:) = (/ t%lhc7%XS_vbf_SM(j), t%BR_HZZ_SM(j) /) channel_SM(8,:) = (/ t%lhc7%XS_HZ_SM(j), t%BR_HZZ_SM(j) /) channel_SM(9,:) = (/ t%lhc7%XS_HW_SM(j), t%BR_HZZ_SM(j) /) channel_SM(10,:) = (/ t%lhc7%XS_ttH_SM(j), t%BR_HZZ_SM(j) /) channel_SM(11,:) = (/ t%lhc7%XS_H_SM(j) , t%BR_Hgaga_SM(j) /) channel_SM(12,:) = (/ t%lhc7%XS_vbf_SM(j), t%BR_Hgaga_SM(j) /) channel_SM(13,:) = (/ t%lhc7%XS_HZ_SM(j), t%BR_Hgaga_SM(j) /) channel_SM(14,:) = (/ t%lhc7%XS_HW_SM(j), t%BR_Hgaga_SM(j) /) - channel_SM(15,:) = (/ t%lhc7%XS_ttH_SM(j), t%BR_Hgaga_SM(j) /) - + channel_SM(15,:) = (/ t%lhc7%XS_ttH_SM(j), t%BR_Hgaga_SM(j) /) + case(11011,2011163) -! ns = 5; nb = 4; call initialise_XS_rat_BR_rat +! ns = 5; nb = 4; call initialise_XS_rat_BR_rat nc = 20; call initialise_channel_rat_SM ! XS_rat(1) = t%lhc7%XS_hjW_ratio(j) -! XS_rat(2) = t%lhc7%XS_hj_ratio(j) -! XS_rat(3) = t%lhc7%XS_hjZ_ratio(j) +! XS_rat(2) = t%lhc7%XS_hj_ratio(j) +! XS_rat(3) = t%lhc7%XS_hjZ_ratio(j) ! XS_rat(4) = t%lhc7%XS_vbf_ratio(j) ! XS_rat(5) = t%lhc7%XS_tthj_ratio(j) -! BR_rat(1) = div( t%BR_hjZZ(j) , t%BR_HZZ_SM(j) ,0.0D0,1.0D0) -! BR_rat(2) = div( t%BR_hjWW(j) , t%BR_HWW_SM(j) ,0.0D0,1.0D0) -! BR_rat(3) = div( t%BR_hjgaga(j) , t%BR_Hgaga_SM(j) ,0.0D0,1.0D0) +! BR_rat(1) = div( t%BR_hjZZ(j) , t%BR_HZZ_SM(j) ,0.0D0,1.0D0) +! BR_rat(2) = div( t%BR_hjWW(j) , t%BR_HWW_SM(j) ,0.0D0,1.0D0) +! BR_rat(3) = div( t%BR_hjgaga(j) , t%BR_Hgaga_SM(j) ,0.0D0,1.0D0) ! BR_rat(4) = div(t%BR_hjtautau(j) , t%BR_Htautau_SM(j) ,0.0D0,1.0D0) channel_rat(1,:) = (/ t%lhc7%XS_hj_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%lhc7%XS_vbf_ratio(j), div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%lhc7%XS_hjZ_ratio(j), div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(4,:) = (/ t%lhc7%XS_hjW_ratio(j), div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(5,:) = (/ t%lhc7%XS_tthj_ratio(j), div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(6,:) = (/ t%lhc7%XS_hj_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(7,:) = (/ t%lhc7%XS_vbf_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(8,:) = (/ t%lhc7%XS_hjZ_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(9,:) = (/ t%lhc7%XS_hjW_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(10,:) = (/ t%lhc7%XS_tthj_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(11,:) = (/ t%lhc7%XS_hj_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(12,:) = (/ t%lhc7%XS_vbf_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(13,:) = (/ t%lhc7%XS_hjZ_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(14,:) = (/ t%lhc7%XS_hjW_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(15,:) = (/ t%lhc7%XS_tthj_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(16,:) = (/ t%lhc7%XS_hj_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(17,:) = (/ t%lhc7%XS_vbf_ratio(j), div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(18,:) = (/ t%lhc7%XS_hjZ_ratio(j), div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(19,:) = (/ t%lhc7%XS_hjW_ratio(j), div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(20,:) = (/ t%lhc7%XS_tthj_ratio(j), div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_SM(1,:) = (/ t%lhc7%XS_H_SM(j) , t%BR_HWW_SM(j) /) channel_SM(2,:) = (/ t%lhc7%XS_vbf_SM(j), t%BR_HWW_SM(j) /) channel_SM(3,:) = (/ t%lhc7%XS_HZ_SM(j), t%BR_HWW_SM(j) /) channel_SM(4,:) = (/ t%lhc7%XS_HW_SM(j), t%BR_HWW_SM(j) /) channel_SM(5,:) = (/ t%lhc7%XS_ttH_SM(j), t%BR_HWW_SM(j) /) channel_SM(6,:) = (/ t%lhc7%XS_H_SM(j) , t%BR_HZZ_SM(j) /) channel_SM(7,:) = (/ t%lhc7%XS_vbf_SM(j), t%BR_HZZ_SM(j) /) channel_SM(8,:) = (/ t%lhc7%XS_HZ_SM(j), t%BR_HZZ_SM(j) /) channel_SM(9,:) = (/ t%lhc7%XS_HW_SM(j), t%BR_HZZ_SM(j) /) channel_SM(10,:) = (/ t%lhc7%XS_ttH_SM(j), t%BR_HZZ_SM(j) /) channel_SM(11,:) = (/ t%lhc7%XS_H_SM(j) , t%BR_Hgaga_SM(j) /) channel_SM(12,:) = (/ t%lhc7%XS_vbf_SM(j), t%BR_Hgaga_SM(j) /) channel_SM(13,:) = (/ t%lhc7%XS_HZ_SM(j), t%BR_Hgaga_SM(j) /) channel_SM(14,:) = (/ t%lhc7%XS_HW_SM(j), t%BR_Hgaga_SM(j) /) - channel_SM(15,:) = (/ t%lhc7%XS_ttH_SM(j), t%BR_Hgaga_SM(j) /) + channel_SM(15,:) = (/ t%lhc7%XS_ttH_SM(j), t%BR_Hgaga_SM(j) /) channel_SM(16,:) = (/ t%lhc7%XS_H_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(17,:) = (/ t%lhc7%XS_vbf_SM(j), t%BR_Htautau_SM(j) /) channel_SM(18,:) = (/ t%lhc7%XS_HZ_SM(j), t%BR_Htautau_SM(j) /) channel_SM(19,:) = (/ t%lhc7%XS_HW_SM(j), t%BR_Htautau_SM(j) /) channel_SM(20,:) = (/ t%lhc7%XS_ttH_SM(j), t%BR_Htautau_SM(j) /) case(2012012) -! ns = 2; nb = 1; call initialise_XS_rat_BR_rat +! ns = 2; nb = 1; call initialise_XS_rat_BR_rat nc = 2; call initialise_channel_rat_SM channel_rat(1,:) = (/ t%lhc7%XS_hj_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%lhc7%XS_vbf_ratio(j), div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_SM(1,:) = (/ t%lhc7%XS_H_SM(j) , t%BR_HWW_SM(j) /) channel_SM(2,:) = (/ t%lhc7%XS_vbf_SM(j), t%BR_HWW_SM(j) /) case(2012158,2013030) -! ns = 2; nb = 1; call initialise_XS_rat_BR_rat +! ns = 2; nb = 1; call initialise_XS_rat_BR_rat nc = 4; call initialise_channel_rat_SM channel_rat(1,:) = (/ t%lhc8%XS_hj_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%lhc8%XS_vbf_ratio(j), div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%lhc8%XS_hjZ_ratio(j), div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(4,:) = (/ t%lhc8%XS_hjW_ratio(j), div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_SM(1,:) = (/ t%lhc8%XS_H_SM(j) , t%BR_HWW_SM(j) /) channel_SM(2,:) = (/ t%lhc8%XS_vbf_SM(j), t%BR_HWW_SM(j) /) channel_SM(3,:) = (/ t%lhc8%XS_HZ_SM(j), t%BR_HWW_SM(j) /) channel_SM(4,:) = (/ t%lhc8%XS_HW_SM(j), t%BR_HWW_SM(j) /) case(2012135,12025) nc = 1; call initialise_channel_rat_SM channel_rat(1,:) = (/ t%lhc7%XS_tthj_ratio(j), div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) - channel_SM(1,:) = (/ t%lhc7%XS_ttH_SM(j), t%BR_Hbb_SM(j) /) + channel_SM(1,:) = (/ t%lhc7%XS_ttH_SM(j), t%BR_Hbb_SM(j) /) case(2011112) -! ns = 5; nb = 4; call initialise_XS_rat_BR_rat +! ns = 5; nb = 4; call initialise_XS_rat_BR_rat nc = 20; call initialise_channel_rat_SM ! XS_rat(1) = t%lhc7%XS_hjW_ratio(j) -! XS_rat(2) = t%lhc7%XS_hj_ratio(j) -! XS_rat(3) = t%lhc7%XS_hjZ_ratio(j) +! XS_rat(2) = t%lhc7%XS_hj_ratio(j) +! XS_rat(3) = t%lhc7%XS_hjZ_ratio(j) ! XS_rat(4) = t%lhc7%XS_vbf_ratio(j) ! XS_rat(5) = t%lhc7%XS_tthj_ratio(j) -! BR_rat(1) = div( t%BR_hjZZ(j) , t%BR_HZZ_SM(j) ,0.0D0,1.0D0) -! BR_rat(2) = div( t%BR_hjWW(j) , t%BR_HWW_SM(j) ,0.0D0,1.0D0) -! BR_rat(3) = div( t%BR_hjgaga(j) , t%BR_Hgaga_SM(j) ,0.0D0,1.0D0) +! BR_rat(1) = div( t%BR_hjZZ(j) , t%BR_HZZ_SM(j) ,0.0D0,1.0D0) +! BR_rat(2) = div( t%BR_hjWW(j) , t%BR_HWW_SM(j) ,0.0D0,1.0D0) +! BR_rat(3) = div( t%BR_hjgaga(j) , t%BR_Hgaga_SM(j) ,0.0D0,1.0D0) ! BR_rat(4) = div( t%BR_hjbb(j) , t%BR_Hbb_SM(j) ,0.0D0,1.0D0) channel_rat(1,:) = (/ t%lhc7%XS_hj_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%lhc7%XS_vbf_ratio(j), div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%lhc7%XS_hjZ_ratio(j), div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(4,:) = (/ t%lhc7%XS_hjW_ratio(j), div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(5,:) = (/ t%lhc7%XS_tthj_ratio(j), div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(6,:) = (/ t%lhc7%XS_hj_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(7,:) = (/ t%lhc7%XS_vbf_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(8,:) = (/ t%lhc7%XS_hjZ_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(9,:) = (/ t%lhc7%XS_hjW_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(10,:) = (/ t%lhc7%XS_tthj_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(11,:) = (/ t%lhc7%XS_hj_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(12,:) = (/ t%lhc7%XS_vbf_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(13,:) = (/ t%lhc7%XS_hjZ_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(14,:) = (/ t%lhc7%XS_hjW_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(15,:) = (/ t%lhc7%XS_tthj_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(16,:) = (/ t%lhc7%XS_hj_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(17,:) = (/ t%lhc7%XS_vbf_ratio(j), div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(18,:) = (/ t%lhc7%XS_hjZ_ratio(j), div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(19,:) = (/ t%lhc7%XS_hjW_ratio(j), div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(20,:) = (/ t%lhc7%XS_tthj_ratio(j), div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) - + channel_SM(1,:) = (/ t%lhc7%XS_H_SM(j) , t%BR_HWW_SM(j) /) channel_SM(2,:) = (/ t%lhc7%XS_vbf_SM(j), t%BR_HWW_SM(j) /) channel_SM(3,:) = (/ t%lhc7%XS_HZ_SM(j), t%BR_HWW_SM(j) /) channel_SM(4,:) = (/ t%lhc7%XS_HW_SM(j), t%BR_HWW_SM(j) /) channel_SM(5,:) = (/ t%lhc7%XS_ttH_SM(j), t%BR_HWW_SM(j) /) channel_SM(6,:) = (/ t%lhc7%XS_H_SM(j) , t%BR_HZZ_SM(j) /) channel_SM(7,:) = (/ t%lhc7%XS_vbf_SM(j), t%BR_HZZ_SM(j) /) channel_SM(8,:) = (/ t%lhc7%XS_HZ_SM(j), t%BR_HZZ_SM(j) /) channel_SM(9,:) = (/ t%lhc7%XS_HW_SM(j), t%BR_HZZ_SM(j) /) channel_SM(10,:) = (/ t%lhc7%XS_ttH_SM(j), t%BR_HZZ_SM(j) /) channel_SM(11,:) = (/ t%lhc7%XS_H_SM(j) , t%BR_Hgaga_SM(j) /) channel_SM(12,:) = (/ t%lhc7%XS_vbf_SM(j), t%BR_Hgaga_SM(j) /) channel_SM(13,:) = (/ t%lhc7%XS_HZ_SM(j), t%BR_Hgaga_SM(j) /) channel_SM(14,:) = (/ t%lhc7%XS_HW_SM(j), t%BR_Hgaga_SM(j) /) - channel_SM(15,:) = (/ t%lhc7%XS_ttH_SM(j), t%BR_Hgaga_SM(j) /) + channel_SM(15,:) = (/ t%lhc7%XS_ttH_SM(j), t%BR_Hgaga_SM(j) /) channel_SM(16,:) = (/ t%lhc7%XS_H_SM(j) , t%BR_Hbb_SM(j) /) channel_SM(17,:) = (/ t%lhc7%XS_vbf_SM(j), t%BR_Hbb_SM(j) /) channel_SM(18,:) = (/ t%lhc7%XS_HZ_SM(j), t%BR_Hbb_SM(j) /) channel_SM(19,:) = (/ t%lhc7%XS_HW_SM(j), t%BR_Hbb_SM(j) /) - channel_SM(20,:) = (/ t%lhc7%XS_ttH_SM(j), t%BR_Hbb_SM(j) /) + channel_SM(20,:) = (/ t%lhc7%XS_ttH_SM(j), t%BR_Hbb_SM(j) /) case(11022,11032,1488,12008,2011157,2012019,2011135) -! ns = 5; nb = 5; call initialise_XS_rat_BR_rat +! ns = 5; nb = 5; call initialise_XS_rat_BR_rat nc = 25; call initialise_channel_rat_SM -! XS_rat(1) = t%lhc7%XS_hj_ratio(j) +! XS_rat(1) = t%lhc7%XS_hj_ratio(j) ! XS_rat(2) = t%lhc7%XS_vbf_ratio(j) ! XS_rat(1) = t%lhc7%XS_hjW_ratio(j) -! XS_rat(3) = t%lhc7%XS_hjZ_ratio(j) +! XS_rat(3) = t%lhc7%XS_hjZ_ratio(j) ! XS_rat(5) = t%lhc7%XS_tthj_ratio(j) -! BR_rat(1) = div( t%BR_hjZZ(j) , t%BR_HZZ_SM(j) ,0.0D0,1.0D0) -! BR_rat(2) = div( t%BR_hjWW(j) , t%BR_HWW_SM(j) ,0.0D0,1.0D0) -! BR_rat(3) = div( t%BR_hjgaga(j) , t%BR_Hgaga_SM(j) ,0.0D0,1.0D0) +! BR_rat(1) = div( t%BR_hjZZ(j) , t%BR_HZZ_SM(j) ,0.0D0,1.0D0) +! BR_rat(2) = div( t%BR_hjWW(j) , t%BR_HWW_SM(j) ,0.0D0,1.0D0) +! BR_rat(3) = div( t%BR_hjgaga(j) , t%BR_Hgaga_SM(j) ,0.0D0,1.0D0) ! BR_rat(4) = div(t%BR_hjtautau(j) , t%BR_Htautau_SM(j) ,0.0D0,1.0D0) -! BR_rat(5) = div( t%BR_hjbb(j) , t%BR_Hbb_SM(j) ,0.0D0,1.0D0) +! BR_rat(5) = div( t%BR_hjbb(j) , t%BR_Hbb_SM(j) ,0.0D0,1.0D0) channel_rat(1,:) = (/ t%lhc7%XS_hj_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%lhc7%XS_vbf_ratio(j), div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%lhc7%XS_hjZ_ratio(j), div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(4,:) = (/ t%lhc7%XS_hjW_ratio(j), div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(5,:) = (/ t%lhc7%XS_tthj_ratio(j), div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(6,:) = (/ t%lhc7%XS_hj_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(7,:) = (/ t%lhc7%XS_vbf_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(8,:) = (/ t%lhc7%XS_hjZ_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(9,:) = (/ t%lhc7%XS_hjW_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(10,:) = (/ t%lhc7%XS_tthj_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(11,:) = (/ t%lhc7%XS_hj_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(12,:) = (/ t%lhc7%XS_vbf_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(13,:) = (/ t%lhc7%XS_hjZ_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(14,:) = (/ t%lhc7%XS_hjW_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(15,:) = (/ t%lhc7%XS_tthj_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(16,:) = (/ t%lhc7%XS_hj_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(17,:) = (/ t%lhc7%XS_vbf_ratio(j), div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(18,:) = (/ t%lhc7%XS_hjZ_ratio(j), div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(19,:) = (/ t%lhc7%XS_hjW_ratio(j), div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(20,:) = (/ t%lhc7%XS_tthj_ratio(j), div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(21,:) = (/ t%lhc7%XS_hj_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(22,:) = (/ t%lhc7%XS_vbf_ratio(j), div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(23,:) = (/ t%lhc7%XS_hjZ_ratio(j), div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(24,:) = (/ t%lhc7%XS_hjW_ratio(j), div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(25,:) = (/ t%lhc7%XS_tthj_ratio(j), div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) - + channel_SM(1,:) = (/ t%lhc7%XS_H_SM(j) , t%BR_HWW_SM(j) /) channel_SM(2,:) = (/ t%lhc7%XS_vbf_SM(j), t%BR_HWW_SM(j) /) channel_SM(3,:) = (/ t%lhc7%XS_HZ_SM(j), t%BR_HWW_SM(j) /) channel_SM(4,:) = (/ t%lhc7%XS_HW_SM(j), t%BR_HWW_SM(j) /) channel_SM(5,:) = (/ t%lhc7%XS_ttH_SM(j), t%BR_HWW_SM(j) /) channel_SM(6,:) = (/ t%lhc7%XS_H_SM(j) , t%BR_HZZ_SM(j) /) channel_SM(7,:) = (/ t%lhc7%XS_vbf_SM(j), t%BR_HZZ_SM(j) /) channel_SM(8,:) = (/ t%lhc7%XS_HZ_SM(j), t%BR_HZZ_SM(j) /) channel_SM(9,:) = (/ t%lhc7%XS_HW_SM(j), t%BR_HZZ_SM(j) /) channel_SM(10,:) = (/ t%lhc7%XS_ttH_SM(j), t%BR_HZZ_SM(j) /) channel_SM(11,:) = (/ t%lhc7%XS_H_SM(j) , t%BR_Hgaga_SM(j) /) channel_SM(12,:) = (/ t%lhc7%XS_vbf_SM(j), t%BR_Hgaga_SM(j) /) channel_SM(13,:) = (/ t%lhc7%XS_HZ_SM(j), t%BR_Hgaga_SM(j) /) channel_SM(14,:) = (/ t%lhc7%XS_HW_SM(j), t%BR_Hgaga_SM(j) /) - channel_SM(15,:) = (/ t%lhc7%XS_ttH_SM(j), t%BR_Hgaga_SM(j) /) + channel_SM(15,:) = (/ t%lhc7%XS_ttH_SM(j), t%BR_Hgaga_SM(j) /) channel_SM(16,:) = (/ t%lhc7%XS_H_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(17,:) = (/ t%lhc7%XS_vbf_SM(j), t%BR_Htautau_SM(j) /) channel_SM(18,:) = (/ t%lhc7%XS_HZ_SM(j), t%BR_Htautau_SM(j) /) channel_SM(19,:) = (/ t%lhc7%XS_HW_SM(j), t%BR_Htautau_SM(j) /) channel_SM(20,:) = (/ t%lhc7%XS_ttH_SM(j), t%BR_Htautau_SM(j) /) channel_SM(21,:) = (/ t%lhc7%XS_H_SM(j) , t%BR_Hbb_SM(j) /) channel_SM(22,:) = (/ t%lhc7%XS_vbf_SM(j), t%BR_Hbb_SM(j) /) channel_SM(23,:) = (/ t%lhc7%XS_HZ_SM(j), t%BR_Hbb_SM(j) /) channel_SM(24,:) = (/ t%lhc7%XS_HW_SM(j), t%BR_Hbb_SM(j) /) - channel_SM(25,:) = (/ t%lhc7%XS_ttH_SM(j), t%BR_Hbb_SM(j) /) + channel_SM(25,:) = (/ t%lhc7%XS_ttH_SM(j), t%BR_Hbb_SM(j) /) case(12045) nc = 25; call initialise_channel_rat_SM channel_rat(1,:) = (/ t%lhc8%XS_hj_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%lhc8%XS_vbf_ratio(j), div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%lhc8%XS_hjZ_ratio(j), div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(4,:) = (/ t%lhc8%XS_hjW_ratio(j), div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(5,:) = (/ t%lhc8%XS_tthj_ratio(j), div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(6,:) = (/ t%lhc8%XS_hj_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(7,:) = (/ t%lhc8%XS_vbf_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(8,:) = (/ t%lhc8%XS_hjZ_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(9,:) = (/ t%lhc8%XS_hjW_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(10,:) = (/ t%lhc8%XS_tthj_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(11,:) = (/ t%lhc8%XS_hj_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(12,:) = (/ t%lhc8%XS_vbf_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(13,:) = (/ t%lhc8%XS_hjZ_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(14,:) = (/ t%lhc8%XS_hjW_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(15,:) = (/ t%lhc8%XS_tthj_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(16,:) = (/ t%lhc8%XS_hj_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(17,:) = (/ t%lhc8%XS_vbf_ratio(j), div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(18,:) = (/ t%lhc8%XS_hjZ_ratio(j), div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(19,:) = (/ t%lhc8%XS_hjW_ratio(j), div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(20,:) = (/ t%lhc8%XS_tthj_ratio(j), div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(21,:) = (/ t%lhc8%XS_hj_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(22,:) = (/ t%lhc8%XS_vbf_ratio(j), div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(23,:) = (/ t%lhc8%XS_hjZ_ratio(j), div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(24,:) = (/ t%lhc8%XS_hjW_ratio(j), div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(25,:) = (/ t%lhc8%XS_tthj_ratio(j), div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) - + channel_SM(1,:) = (/ t%lhc8%XS_H_SM(j) , t%BR_HWW_SM(j) /) channel_SM(2,:) = (/ t%lhc8%XS_vbf_SM(j), t%BR_HWW_SM(j) /) channel_SM(3,:) = (/ t%lhc8%XS_HZ_SM(j), t%BR_HWW_SM(j) /) channel_SM(4,:) = (/ t%lhc8%XS_HW_SM(j), t%BR_HWW_SM(j) /) channel_SM(5,:) = (/ t%lhc8%XS_ttH_SM(j), t%BR_HWW_SM(j) /) channel_SM(6,:) = (/ t%lhc8%XS_H_SM(j) , t%BR_HZZ_SM(j) /) channel_SM(7,:) = (/ t%lhc8%XS_vbf_SM(j), t%BR_HZZ_SM(j) /) channel_SM(8,:) = (/ t%lhc8%XS_HZ_SM(j), t%BR_HZZ_SM(j) /) channel_SM(9,:) = (/ t%lhc8%XS_HW_SM(j), t%BR_HZZ_SM(j) /) channel_SM(10,:) = (/ t%lhc8%XS_ttH_SM(j), t%BR_HZZ_SM(j) /) channel_SM(11,:) = (/ t%lhc8%XS_H_SM(j) , t%BR_Hgaga_SM(j) /) channel_SM(12,:) = (/ t%lhc8%XS_vbf_SM(j), t%BR_Hgaga_SM(j) /) channel_SM(13,:) = (/ t%lhc8%XS_HZ_SM(j), t%BR_Hgaga_SM(j) /) channel_SM(14,:) = (/ t%lhc8%XS_HW_SM(j), t%BR_Hgaga_SM(j) /) - channel_SM(15,:) = (/ t%lhc8%XS_ttH_SM(j), t%BR_Hgaga_SM(j) /) + channel_SM(15,:) = (/ t%lhc8%XS_ttH_SM(j), t%BR_Hgaga_SM(j) /) channel_SM(16,:) = (/ t%lhc8%XS_H_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(17,:) = (/ t%lhc8%XS_vbf_SM(j), t%BR_Htautau_SM(j) /) channel_SM(18,:) = (/ t%lhc8%XS_HZ_SM(j), t%BR_Htautau_SM(j) /) channel_SM(19,:) = (/ t%lhc8%XS_HW_SM(j), t%BR_Htautau_SM(j) /) channel_SM(20,:) = (/ t%lhc8%XS_ttH_SM(j), t%BR_Htautau_SM(j) /) channel_SM(21,:) = (/ t%lhc8%XS_H_SM(j) , t%BR_Hbb_SM(j) /) channel_SM(22,:) = (/ t%lhc8%XS_vbf_SM(j), t%BR_Hbb_SM(j) /) channel_SM(23,:) = (/ t%lhc8%XS_HZ_SM(j), t%BR_Hbb_SM(j) /) channel_SM(24,:) = (/ t%lhc8%XS_HW_SM(j), t%BR_Hbb_SM(j) /) - channel_SM(25,:) = (/ t%lhc8%XS_ttH_SM(j), t%BR_Hbb_SM(j) /) + channel_SM(25,:) = (/ t%lhc8%XS_ttH_SM(j), t%BR_Hbb_SM(j) /) case(009361) nc = 10; call initialise_channel_rat_SM channel_rat(1,:) = (/ t%lhc8%XS_hj_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%lhc8%XS_vbf_ratio(j), div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%lhc8%XS_hjZ_ratio(j), div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(4,:) = (/ t%lhc8%XS_hjW_ratio(j), div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(5,:) = (/ t%lhc8%XS_tthj_ratio(j), div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(6,:) = (/ t%lhc8%XS_hj_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(7,:) = (/ t%lhc8%XS_vbf_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(8,:) = (/ t%lhc8%XS_hjZ_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(9,:) = (/ t%lhc8%XS_hjW_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(10,:) = (/ t%lhc8%XS_tthj_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) - + channel_SM(1,:) = (/ t%lhc8%XS_H_SM(j) , t%BR_HWW_SM(j) /) channel_SM(2,:) = (/ t%lhc8%XS_vbf_SM(j), t%BR_HWW_SM(j) /) channel_SM(3,:) = (/ t%lhc8%XS_HZ_SM(j), t%BR_HWW_SM(j) /) channel_SM(4,:) = (/ t%lhc8%XS_HW_SM(j), t%BR_HWW_SM(j) /) channel_SM(5,:) = (/ t%lhc8%XS_ttH_SM(j), t%BR_HWW_SM(j) /) channel_SM(6,:) = (/ t%lhc8%XS_H_SM(j) , t%BR_HZZ_SM(j) /) channel_SM(7,:) = (/ t%lhc8%XS_vbf_SM(j), t%BR_HZZ_SM(j) /) channel_SM(8,:) = (/ t%lhc8%XS_HZ_SM(j), t%BR_HZZ_SM(j) /) channel_SM(9,:) = (/ t%lhc8%XS_HW_SM(j), t%BR_HZZ_SM(j) /) channel_SM(10,:) = (/ t%lhc8%XS_ttH_SM(j), t%BR_HZZ_SM(j) /) case(17020321,17020322,17020323) -! This only checks the relative proportions of the four main production modes +! This only checks the relative proportions of the four main production modes nc = 4; call initialise_channel_rat_SM channel_rat(1,:) = (/ t%lhc8%XS_hj_ratio(j) , 1.0D0 /) channel_rat(2,:) = (/ t%lhc8%XS_vbf_ratio(j), 1.0D0 /) channel_rat(3,:) = (/ t%lhc8%XS_hjZ_ratio(j), 1.0D0 /) channel_rat(4,:) = (/ t%lhc8%XS_hjW_ratio(j), 1.0D0 /) channel_SM(1,:) = (/ t%lhc8%XS_H_SM(j) , 1.0D0 /) channel_SM(2,:) = (/ t%lhc8%XS_vbf_SM(j), 1.0D0 /) channel_SM(3,:) = (/ t%lhc8%XS_HZ_SM(j), 1.0D0 /) channel_SM(4,:) = (/ t%lhc8%XS_HW_SM(j), 1.0D0 /) case(539) -! This only checks the relative proportions of the four main production modes +! This only checks the relative proportions of the four main production modes nc = 4; call initialise_channel_rat_SM channel_rat(1,:) = (/ t%lhc13%XS_hj_ratio(j) , 1.0D0 /) channel_rat(2,:) = (/ t%lhc13%XS_vbf_ratio(j), 1.0D0 /) channel_rat(3,:) = (/ t%lhc13%XS_hjZ_ratio(j), 1.0D0 /) channel_rat(4,:) = (/ t%lhc13%XS_hjW_ratio(j), 1.0D0 /) channel_SM(1,:) = (/ t%lhc13%XS_H_SM(j) , 1.0D0 /) channel_SM(2,:) = (/ t%lhc13%XS_vbf_SM(j), 1.0D0 /) channel_SM(3,:) = (/ t%lhc13%XS_HZ_SM(j), 1.0D0 /) channel_SM(4,:) = (/ t%lhc13%XS_HW_SM(j), 1.0D0 /) - + case(7214) nc = 25; call initialise_channel_rat_SM channel_rat(1,:) = (/ t%lhc8%XS_hj_ratio(j) , div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(2,:) = (/ t%lhc8%XS_vbf_ratio(j), div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(3,:) = (/ t%lhc8%XS_hjZ_ratio(j), div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(4,:) = (/ t%lhc8%XS_hjW_ratio(j), div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(5,:) = (/ t%lhc8%XS_tthj_ratio(j), div(t%BR_hjWW(j),t%BR_HWW_SM(j),0.0D0,1.0D0) /) channel_rat(6,:) = (/ t%lhc8%XS_hj_ratio(j) , div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(7,:) = (/ t%lhc8%XS_vbf_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(8,:) = (/ t%lhc8%XS_hjZ_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(9,:) = (/ t%lhc8%XS_hjW_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(10,:) = (/ t%lhc8%XS_tthj_ratio(j), div(t%BR_hjZZ(j),t%BR_HZZ_SM(j),0.0D0,1.0D0) /) channel_rat(11,:) = (/ t%lhc8%XS_hj_ratio(j) , div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(12,:) = (/ t%lhc8%XS_vbf_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(13,:) = (/ t%lhc8%XS_hjZ_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(14,:) = (/ t%lhc8%XS_hjW_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(15,:) = (/ t%lhc8%XS_tthj_ratio(j), div(t%BR_hjgaga(j),t%BR_Hgaga_SM(j),0.0D0,1.0D0) /) channel_rat(16,:) = (/ t%lhc7%XS_hj_ratio(j) , div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(17,:) = (/ t%lhc7%XS_vbf_ratio(j), div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(18,:) = (/ t%lhc7%XS_hjZ_ratio(j), div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(19,:) = (/ t%lhc7%XS_hjW_ratio(j), div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(20,:) = (/ t%lhc7%XS_tthj_ratio(j), div(t%BR_hjtautau(j),t%BR_Htautau_SM(j),0.0D0,1.0D0) /) channel_rat(21,:) = (/ t%lhc7%XS_hj_ratio(j) , div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(22,:) = (/ t%lhc7%XS_vbf_ratio(j), div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(23,:) = (/ t%lhc7%XS_hjZ_ratio(j), div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(24,:) = (/ t%lhc7%XS_hjW_ratio(j), div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) channel_rat(25,:) = (/ t%lhc7%XS_tthj_ratio(j), div(t%BR_hjbb(j),t%BR_Hbb_SM(j),0.0D0,1.0D0) /) - + channel_SM(1,:) = (/ t%lhc8%XS_H_SM(j) , t%BR_HWW_SM(j) /) channel_SM(2,:) = (/ t%lhc8%XS_vbf_SM(j), t%BR_HWW_SM(j) /) channel_SM(3,:) = (/ t%lhc8%XS_HZ_SM(j), t%BR_HWW_SM(j) /) channel_SM(4,:) = (/ t%lhc8%XS_HW_SM(j), t%BR_HWW_SM(j) /) channel_SM(5,:) = (/ t%lhc8%XS_ttH_SM(j), t%BR_HWW_SM(j) /) channel_SM(6,:) = (/ t%lhc8%XS_H_SM(j) , t%BR_HZZ_SM(j) /) channel_SM(7,:) = (/ t%lhc8%XS_vbf_SM(j), t%BR_HZZ_SM(j) /) channel_SM(8,:) = (/ t%lhc8%XS_HZ_SM(j), t%BR_HZZ_SM(j) /) channel_SM(9,:) = (/ t%lhc8%XS_HW_SM(j), t%BR_HZZ_SM(j) /) channel_SM(10,:) = (/ t%lhc8%XS_ttH_SM(j), t%BR_HZZ_SM(j) /) channel_SM(11,:) = (/ t%lhc8%XS_H_SM(j) , t%BR_Hgaga_SM(j) /) channel_SM(12,:) = (/ t%lhc8%XS_vbf_SM(j), t%BR_Hgaga_SM(j) /) channel_SM(13,:) = (/ t%lhc8%XS_HZ_SM(j), t%BR_Hgaga_SM(j) /) channel_SM(14,:) = (/ t%lhc8%XS_HW_SM(j), t%BR_Hgaga_SM(j) /) - channel_SM(15,:) = (/ t%lhc8%XS_ttH_SM(j), t%BR_Hgaga_SM(j) /) + channel_SM(15,:) = (/ t%lhc8%XS_ttH_SM(j), t%BR_Hgaga_SM(j) /) channel_SM(16,:) = (/ t%lhc7%XS_H_SM(j) , t%BR_Htautau_SM(j) /) channel_SM(17,:) = (/ t%lhc7%XS_vbf_SM(j), t%BR_Htautau_SM(j) /) channel_SM(18,:) = (/ t%lhc7%XS_HZ_SM(j), t%BR_Htautau_SM(j) /) channel_SM(19,:) = (/ t%lhc7%XS_HW_SM(j), t%BR_Htautau_SM(j) /) channel_SM(20,:) = (/ t%lhc7%XS_ttH_SM(j), t%BR_Htautau_SM(j) /) channel_SM(21,:) = (/ t%lhc7%XS_H_SM(j) , t%BR_Hbb_SM(j) /) channel_SM(22,:) = (/ t%lhc7%XS_vbf_SM(j), t%BR_Hbb_SM(j) /) channel_SM(23,:) = (/ t%lhc7%XS_HZ_SM(j), t%BR_Hbb_SM(j) /) channel_SM(24,:) = (/ t%lhc7%XS_HW_SM(j), t%BR_Hbb_SM(j) /) - channel_SM(25,:) = (/ t%lhc7%XS_ttH_SM(j), t%BR_Hbb_SM(j) /) - + channel_SM(25,:) = (/ t%lhc7%XS_ttH_SM(j), t%BR_Hbb_SM(j) /) + case(5739,10574) - ns = 1; nb = 1; call initialise_XS_rat_BR_rat + ns = 1; nb = 1; call initialise_XS_rat_BR_rat XS_rat(1) = t%tev%XS_tthj_ratio(j) - BR_rat(1) = div(t%BR_hjbb(j) , t%BR_Hbb_SM(j) ,0.0D0,1.0D0) - if(t%CP_value(j).eq.1)then ! analysis only applies if higgs is CP even + BR_rat(1) = div(t%BR_hjbb(j) , t%BR_Hbb_SM(j) ,0.0D0,1.0D0) + if(t%CP_value(j).eq.1)then ! analysis only applies if higgs is CP even else correct_properties=.False. - endif + endif case(711) ns = 1; nb = 1; call initialise_XS_rat_BR_rat XS_rat(1) = t%lep%XS_bbhj_ratio(j) BR_rat(1) = t%BR_hjbb(j) !note *not* normalised to SM - if(t%CP_value(j).eq.1)then ! analysis only applies if higgs is CP even + if(t%CP_value(j).eq.1)then ! analysis only applies if higgs is CP even else correct_properties=.False. - endif + endif case(713) - ns = 1; nb = 1; call initialise_XS_rat_BR_rat + ns = 1; nb = 1; call initialise_XS_rat_BR_rat XS_rat(1) = t%lep%XS_bbhj_ratio(j) BR_rat(1) = t%BR_hjbb(j)!note *not* normalised to SM - if(t%CP_value(j).eq.-1)then ! analysis only applies if higgs is CP odd + if(t%CP_value(j).eq.-1)then ! analysis only applies if higgs is CP odd else correct_properties=.False. - endif + endif case(721) ns = 1; nb = 1; call initialise_XS_rat_BR_rat XS_rat(1) = t%lep%XS_bbhj_ratio(j) BR_rat(1) = t%BR_hjtautau(j)!note *not* normalised to SM - if(t%CP_value(j).eq.1)then ! analysis only applies if higgs is CP even + if(t%CP_value(j).eq.1)then ! analysis only applies if higgs is CP even else correct_properties=.False. - endif + endif case(723) ns = 1; nb = 1; call initialise_XS_rat_BR_rat XS_rat(1) = t%lep%XS_bbhj_ratio(j) BR_rat(1) = t%BR_hjtautau(j)!note *not* normalised to SM - if(t%CP_value(j).eq.-1)then ! analysis only applies if higgs is CP odd + if(t%CP_value(j).eq.-1)then ! analysis only applies if higgs is CP odd else correct_properties=.False. - endif + endif case(731) - ns = 1; nb = 1; call initialise_XS_rat_BR_rat + ns = 1; nb = 1; call initialise_XS_rat_BR_rat XS_rat(1) = t%lep%XS_tautauhj_ratio(j) BR_rat(1) = t%BR_hjtautau(j)!note *not* normalised to SM - if(t%CP_value(j).eq.1)then ! analysis only applies if higgs is CP even + if(t%CP_value(j).eq.1)then ! analysis only applies if higgs is CP even else correct_properties=.False. - endif + endif case(733) ns = 1; nb = 1; call initialise_XS_rat_BR_rat XS_rat(1) = t%lep%XS_tautauhj_ratio(j) BR_rat(1) = t%BR_hjtautau(j)!note *not* normalised to SM - if(t%CP_value(j).eq.-1)then ! analysis only applies if higgs is CP odd + if(t%CP_value(j).eq.-1)then ! analysis only applies if higgs is CP odd else correct_properties=.False. - endif + endif case(741) - ns = 1; nb = 1; call initialise_XS_rat_BR_rat + ns = 1; nb = 1; call initialise_XS_rat_BR_rat XS_rat(1) = t%lep%XS_bbhj_ratio(j) BR_rat(1) = t%BR_hjtautau(j)!note *not* normalised to SM - if(t%CP_value(j).eq.1)then ! analysis only applies if higgs is CP even + if(t%CP_value(j).eq.1)then ! analysis only applies if higgs is CP even else correct_properties=.False. - endif + endif case(743) ns = 1; nb = 1; call initialise_XS_rat_BR_rat XS_rat(1) = t%lep%XS_bbhj_ratio(j) BR_rat(1) = t%BR_hjtautau(j)!note *not* normalised to SM - if(t%CP_value(j).eq.-1)then ! analysis only applies if higgs is CP odd + if(t%CP_value(j).eq.-1)then ! analysis only applies if higgs is CP odd else correct_properties=.False. endif - case(1811,2011094,13035) + case(1811,2011094,13035) ns = 1; nb = 1; call initialise_XS_rat_BR_rat - XS_rat(1) = t%BR_tHpjb(j) + XS_rat(1) = t%BR_tHpjb(j) BR_rat(1) = t%BR_Hpjcs(j) if( (t%BR_tHpjb(j)+t%BR_tWpb ).le.0.98D0)then correct_properties=.False. elseif((t%BR_Hpjcs(j)+t%BR_Hpjtaunu(j)).le.0.98D0)then correct_properties=.False. - endif + endif - case(1812,7712,8353,11002,11008,160311) + case(1812,7712,8353,11002,11008,160311) ns = 1; nb = 1; call initialise_XS_rat_BR_rat XS_rat(1) = t%BR_tHpjb(j) BR_rat(1) = t%BR_Hpjtaunu(j) if( (t%BR_tHpjb(j)+t%BR_tWpb).le.0.98D0)then correct_properties=.False. elseif((t%BR_Hpjcs(j)+t%BR_Hpjtaunu(j)).le.0.98D0)then correct_properties=.False. - endif + endif - case(2011138,2011151,2760,2013090,2014050,14020,79152) + case(2011138,2011151,2760,2013090,2014050,14020,79152) ns = 1; nb = 1; call initialise_XS_rat_BR_rat XS_rat(1) = t%BR_tHpjb(j) BR_rat(1) = t%BR_Hpjtaunu(j) if( (t%BR_tHpjb(j)+t%BR_tWpb).le.0.98D0)then correct_properties=.False. - endif + endif - case(1269,1270) - ns = 1; nb = 1; call initialise_XS_rat_BR_rat - XS_rat(1) = t%BR_tHpjb(j) + case(1269,1270) + ns = 1; nb = 1; call initialise_XS_rat_BR_rat + XS_rat(1) = t%BR_tHpjb(j) BR_rat(1) = t%BR_Hpjcs(j) if( (t%BR_tHpjb(j)+t%BR_tWpb ).le.0.98D0)then correct_properties=.False. elseif( t%BR_Hpjcs(j) .le.0.98D0)then correct_properties=.False. - endif + endif - case(6224) - ns = 1; nb = 1; call initialise_XS_rat_BR_rat + case(6224) + ns = 1; nb = 1; call initialise_XS_rat_BR_rat XS_rat(1) = t%tev%XS_hjb_ratio(j)*t%tev%XS_Hb_c4_SM(j) BR_rat(1) = 1.0D0 if( ( t%BR_hjtautau(j)+t%BR_hjbb(j) ).le.0.98D0)then correct_properties=.False. elseif( t%BR_hjtautau(j) .le.0.06D0)then correct_properties=.False. - endif - case(6225) - ns = 1; nb = 1; call initialise_XS_rat_BR_rat + endif + case(6225) + ns = 1; nb = 1; call initialise_XS_rat_BR_rat XS_rat(1) = t%tev%XS_hjb_ratio(j)*t%tev%XS_Hb_c4_SM(j) BR_rat(1) = 1.0D0 if( ( t%BR_hjtautau(j)+t%BR_hjbb(j) ).le.0.98D0)then correct_properties=.False. elseif( t%BR_hjtautau(j) .le.0.1D0)then correct_properties=.False. - endif - case(6226) - ns = 1; nb = 1; call initialise_XS_rat_BR_rat + endif + case(6226) + ns = 1; nb = 1; call initialise_XS_rat_BR_rat XS_rat(1) = t%tev%XS_hjb_ratio(j)*t%tev%XS_Hb_c4_SM(j) BR_rat(1) = 1.0D0 if( ( t%BR_hjtautau(j)+t%BR_hjbb(j) ).le.0.98D0)then correct_properties=.False. elseif( t%BR_hjtautau(j) .le.0.14D0)then correct_properties=.False. - endif + endif case(04670) ! This is a H->h(SM)h(SM) search! ns = 1; nb =1; call initialise_XS_rat_BR_rat XS_rat(1) = t%lhc8%XS_hj_ratio(j)*t%lhc8%XS_H_SM(j) BR_rat(1) = 0.0D0 correct_properties=.False. do jj=1,np(Hneut) if(abs(t%particle(Hneut)%M(jj)-125.4).lt.(5.0D0+t%particle(Hneut)%dMh(jj))) then dcbyc_dble=maxval((/ div(abs(t%BR_hjgaga(jj)-t%BR_Hgaga_SM(jj)),t%BR_Hgaga_SM(jj),0.0D0,1.0D0),& & div(abs(t%BR_hjWW(jj)-t%BR_HWW_SM(jj)),t%BR_HWW_SM(jj),0.0D0,1.0D0), & & div(abs(t%BR_hjbb(jj)-t%BR_Hbb_SM(jj)),t%BR_Hbb_SM(jj),0.0D0,1.0D0), & & div(abs(t%BR_hjtautau(jj)-t%BR_Htautau_SM(jj)),t%BR_Htautau_SM(jj),0.0D0,1.0D0) /)) if(dcbyc_dble.lt.0.1D0) then correct_properties=.True. BR_rat(1) = BR_rat(1)+t%BR_hjhihi(j,jj) endif - endif + endif enddo case(17030) ! This is a H->h(SM)h(SM) search! ! n.b.: In principle, should also check for SM strength of h production modes, as this ! is part of the assumed background! ns = 1; nb =1; call initialise_XS_rat_BR_rat XS_rat(1) = 1000.0D0 * t%lhc13%XS_hj_ratio(j)*t%lhc13%XS_H_SM(j) ! convert to fb BR_rat(1) = 0.0D0 correct_properties=.False. do jj=1,np(Hneut) if(abs(t%particle(Hneut)%M(jj)-125.0D0).lt.(5.0D0+t%particle(Hneut)%dMh(jj))) then dcbyc_dble=maxval((/ div(abs(t%BR_hjgaga(jj)-t%BR_Hgaga_SM(jj)),t%BR_Hgaga_SM(jj),0.0D0,1.0D0),& & div(abs(t%BR_hjWW(jj)-t%BR_HWW_SM(jj)),t%BR_HWW_SM(jj),0.0D0,1.0D0), & & div(abs(t%BR_hjZZ(jj)-t%BR_HZZ_SM(jj)),t%BR_HZZ_SM(jj),0.0D0,1.0D0), & & div(abs(t%BR_hjbb(jj)-t%BR_Hbb_SM(jj)),t%BR_Hbb_SM(jj),0.0D0,1.0D0), & & div(abs(t%BR_hjtautau(jj)-t%BR_Htautau_SM(jj)),t%BR_Htautau_SM(jj),0.0D0,1.0D0) /)) if(dcbyc_dble.lt.0.1D0) then correct_properties=.True. BR_rat(1) = BR_rat(1)+t%BR_hjhihi(j,jj) endif - endif + endif enddo case(046701) ! This is a H->h(SM)h(SM) search! ns = 1; nb =1; call initialise_XS_rat_BR_rat XS_rat(1) = t%lhc8%XS_hj_ratio(j)*t%lhc8%XS_H_SM(j) BR_rat(1) = 0.0D0 correct_properties=.False. do jj=1,np(Hneut) if(abs(t%particle(Hneut)%M(jj)-125.4).lt.(5.0D0+t%particle(Hneut)%dMh(jj))) then dcbyc_dble=maxval((/ div(abs(t%BR_hjgaga(jj)-t%BR_Hgaga_SM(jj)),t%BR_Hgaga_SM(jj),0.0D0,1.0D0),& & div(abs(t%BR_hjWW(jj)-t%BR_HWW_SM(jj)),t%BR_HWW_SM(jj),0.0D0,1.0D0) /)) if(dcbyc_dble.lt.0.1D0) then correct_properties=.True. BR_rat(1) = BR_rat(1)+t%BR_hjhihi(j,jj) endif - endif + endif enddo case(8567) ! This is a H->h(SM)h(SM) search! ns = 1; nb =1; call initialise_XS_rat_BR_rat XS_rat(1) = t%lhc13%XS_hj_ratio(j)*t%lhc13%XS_H_SM(j) BR_rat(1) = 0.0D0 correct_properties=.False. do jj=1,np(Hneut) if(abs(t%particle(Hneut)%M(jj)-125.0).lt.(5.0D0+t%particle(Hneut)%dMh(jj))) then dcbyc_dble=maxval((/ div(abs(t%BR_hjgaga(jj)-t%BR_Hgaga_SM(jj)),t%BR_Hgaga_SM(jj),0.0D0,1.0D0),& & div(abs(t%BR_hjWW(jj)-t%BR_HWW_SM(jj)),t%BR_HWW_SM(jj),0.0D0,1.0D0) /)) if(dcbyc_dble.lt.0.1D0) then correct_properties=.True. BR_rat(1) = BR_rat(1)+t%BR_hjhihi(j,jj) * t%BR_hjgaga(jj) * t%BR_hjWW(jj) * 2.0D0 ! symmetry factor of 2 endif - endif + endif enddo case(4873) ! This is a H->h(SM)h(SM) search! ns = 1; nb =1; call initialise_XS_rat_BR_rat XS_rat(1) = t%lhc13%XS_hj_ratio(j)*t%lhc13%XS_H_SM(j) BR_rat(1) = 0.0D0 correct_properties=.False. do jj=1,np(Hneut) if(abs(t%particle(Hneut)%M(jj)-125.0).lt.(5.0D0+t%particle(Hneut)%dMh(jj))) then dcbyc_dble=maxval((/ div(abs(t%BR_hjgaga(jj)-t%BR_Hgaga_SM(jj)),t%BR_Hgaga_SM(jj),0.0D0,1.0D0),& & div(abs(t%BR_hjbb(jj)-t%BR_Hbb_SM(jj)),t%BR_Hbb_SM(jj),0.0D0,1.0D0) /)) if(dcbyc_dble.lt.0.1D0) then correct_properties=.True. BR_rat(1) = BR_rat(1)+t%BR_hjhihi(j,jj) endif - endif + endif enddo case(046702) ! This is a H->h(SM)h(SM) search! ns = 1; nb =1; call initialise_XS_rat_BR_rat XS_rat(1) = t%lhc8%XS_hj_ratio(j)*t%lhc8%XS_H_SM(j) BR_rat(1) = 0.0D0 correct_properties=.False. do jj=1,np(Hneut) if(abs(t%particle(Hneut)%M(jj)-125.4).lt.(10.0D0+t%particle(Hneut)%dMh(jj))) then dcbyc_dble=maxval((/ div(abs(t%BR_hjbb(jj)-t%BR_Hbb_SM(jj)),t%BR_Hbb_SM(jj),0.0D0,1.0D0), & & div(abs(t%BR_hjtautau(jj)-t%BR_Htautau_SM(jj)),t%BR_Htautau_SM(jj),0.0D0,1.0D0) /)) if(dcbyc_dble.lt.0.1D0) then correct_properties=.True. BR_rat(1) = BR_rat(1)+t%BR_hjhihi(j,jj) endif - endif + endif enddo case(336) ! This is a H->h(SM)h(SM) search! ns = 1; nb =1; call initialise_XS_rat_BR_rat XS_rat(1) = t%lhc13%XS_hj_ratio(j)*t%lhc13%XS_H_SM(j) BR_rat(1) = 0.0D0 correct_properties=.False. do jj=1,np(Hneut) if(abs(t%particle(Hneut)%M(jj)-125.0).lt.(10.0D0+t%particle(Hneut)%dMh(jj))) then dcbyc_dble=maxval((/ div(abs(t%BR_hjbb(jj)-t%BR_Hbb_SM(jj)),t%BR_Hbb_SM(jj),0.0D0,1.0D0), & & div(abs(t%BR_hjtautau(jj)-t%BR_Htautau_SM(jj)),t%BR_Htautau_SM(jj),0.0D0,1.0D0) /)) if(dcbyc_dble.lt.0.1D0) then correct_properties=.True. BR_rat(1) = BR_rat(1)+t%BR_hjhihi(j,jj) * t%BR_hjbb(jj) * t%BR_hjtautau(jj) * 2.0D0 endif - endif + endif enddo case(0038911) ! H-WW search with width-assumptions ns = 1; nb =1; call initialise_XS_rat_BR_rat XS_rat(1) = t%lhc8%XS_hj_ratio(j)*t%lhc8%XS_H_SM(j) BR_rat(1) = t%BR_hjWW(j) if(t%particle(Hneut)%GammaTot(j)<0.2D0*t%GammaTot_SM(j)) then ! NWA requirement correct_properties=.True. - else + else correct_properties=.False. - endif + endif case(0038912) ! H-WW search with width-assumptions ns = 1; nb =1; call initialise_XS_rat_BR_rat XS_rat(1) = t%lhc8%XS_vbf_ratio(j)*t%lhc8%XS_vbf_SM(j) BR_rat(1) = t%BR_hjWW(j) if(t%particle(Hneut)%GammaTot(j)<0.2D0*t%GammaTot_SM(j)) then ! NWA requirement correct_properties=.True. - else + else correct_properties=.False. endif case(0038913) ! H-WW search with width-assumptions ns = 1; nb =1; call initialise_XS_rat_BR_rat XS_rat(1) = t%lhc8%XS_hj_ratio(j)*t%lhc8%XS_H_SM(j) BR_rat(1) = t%BR_hjWW(j) if(t%particle(Hneut)%GammaTot(j)>0.8D0*t%GammaTot_SM(j)) then ! NWA requirement correct_properties=.True. - else + else correct_properties=.False. - endif + endif case(0038914) ! H-WW search with width-assumptions ns = 1; nb =1; call initialise_XS_rat_BR_rat XS_rat(1) = t%lhc8%XS_vbf_ratio(j)*t%lhc8%XS_vbf_SM(j) BR_rat(1) = t%BR_hjWW(j) if(t%particle(Hneut)%GammaTot(j)>0.8D0*t%GammaTot_SM(j)) then ! NWA requirement correct_properties=.True. - else + else correct_properties=.False. endif !case(801,802,803,811,813,821) - !ns = 1; nb = 1; call initialise_XS_rat_BR_rat - ! XS_rat(1) = + !ns = 1; nb = 1; call initialise_XS_rat_BR_rat + ! XS_rat(1) = !BR_rat(1) = !if((t%BR_Hpjcb(j)+t%BR_Hpjcs(j)+t%BR_Hpjtaunu(j)).gt.0.98D0)then !else ! correct_properties=.False. - !endif + !endif case default write(*,*)'hello id=',id stop 'error in subroutine model_likeness (2)' end select !---------------------------------------------------------- !--New model likeness check (TS 23/03/2012) !---------------------------------------------------------- if(allocated(channel_rat)) then if(nc.ne.ubound(channel_rat,dim=1))stop 'error in subroutine model_likeness (3a)' if(nc.ne.ubound(channel_SM,dim=1))stop 'error in subroutine model_likeness (3a)' ! Check if the channels have been filled correctly - do ic=1,nc - if(abs(channel_rat(ic,1)-unset).lt.1.0D-3)stop 'error in subroutine model_likeness (4a)' - if(abs(channel_rat(ic,2)-unset).lt.1.0D-3)stop 'error in subroutine model_likeness (4a)' - if(abs(channel_SM(ic,1)-unset).lt.1.0D-3)stop 'error in subroutine model_likeness (4a)' - if(abs(channel_SM(ic,2)-unset).lt.1.0D-3)stop 'error in subroutine model_likeness (4a)' + do ic=1,nc + if(abs(channel_rat(ic,1)-unset).lt.1.0D-3)stop 'error in subroutine model_likeness (4a)' + if(abs(channel_rat(ic,2)-unset).lt.1.0D-3)stop 'error in subroutine model_likeness (4a)' + if(abs(channel_SM(ic,1)-unset).lt.1.0D-3)stop 'error in subroutine model_likeness (4a)' + if(abs(channel_SM(ic,2)-unset).lt.1.0D-3)stop 'error in subroutine model_likeness (4a)' enddo !---Eliminate irrelevant channels (=channels with very small SM prediction). !---Construct mean value of the ratio for the relevant channels - nc_rel=0 + nc_rel=0 do ic=1,nc if(channel_SM(ic,1).gt.vsmall.and.channel_SM(ic,2).gt.vsmall) then nc_rel=nc_rel+1 channel_SM(nc_rel,:)=channel_SM(ic,:) channel_rat(nc_rel,:)=channel_rat(ic,:) endif enddo - + if(nc_rel.gt.0) then nc=nc_rel call reallocate_channel_rat_SM endif !--Evaluate the total SM rate expected for the (relevant) channels SMrate=0. do ic=1,nc SMrate=SMrate+channel_SM(ic,1)*channel_SM(ic,2) enddo !--Evaluate the predicted signal strength modifier c of the model - c=0. + c=0. do ic=1,nc -!----use a weighted average of the channel rate ratios +!----use a weighted average of the channel rate ratios if(use_weight) then weight = div(channel_SM(ic,1)*channel_SM(ic,2),SMrate,0.0D0,1.0D9) else weight = 1.0D0/nc endif c=c+weight*channel_rat(ic,1)*channel_rat(ic,2) enddo !--Evaluate the deviation of each channel rate ratio to the signal !--strength modifier c - allocate(dcbyc(nc)) - do ic=1,nc + allocate(dcbyc(nc)) + do ic=1,nc dcbyc(ic)= div((channel_rat(ic,1)*channel_rat(ic,2)-c),c,0.0D0,1.0D9) enddo !--Do the model likeness test - testSMratios= 1 !passes the SM-like ratios test + testSMratios= 1 !passes the SM-like ratios test do ic=1,nc !----Again, evaluate the weight of the channel if(use_weight) then weight = div(channel_SM(ic,1)*channel_SM(ic,2),SMrate,0.0D0,1.0D9) else weight = 1.0D0 endif -!----Check if the channel fulfills the model likeness criteria +!----Check if the channel fulfills the model likeness criteria ! print *, ic, channel_rat(ic,1), channel_rat(ic,2), abs(dcbyc(ic)*weight), dcbyc(ic), weight, c - if(abs(dcbyc(ic)*weight).gt.eps)then + if(abs(dcbyc(ic)*weight).gt.eps)then testSMratios= -1 !fails the SM-like ratios test ! write(*,*) "Analysis application ", id, "fail the SM likeness test!" endif - enddo + enddo !--Write total ratio into s and b to return later. s=c - b=1. - + b=1. + deallocate(channel_rat) - deallocate(channel_SM) - deallocate(dcbyc) + deallocate(channel_SM) + deallocate(dcbyc) -!-If channel_rat is not allocated, use old method: +!-If channel_rat is not allocated, use old method: else if(ns.ne.ubound(XS_rat,dim=1))stop 'error in subroutine model_likeness (3a)' if(nb.ne.ubound(BR_rat,dim=1))stop 'error in subroutine model_likeness (3b)' - do is=1,ns + do is=1,ns if(abs(XS_rat(is)-unset).lt.1.0D-3)stop 'error in subroutine model_likeness (4a)' enddo - do ib=1,nb + do ib=1,nb if(abs(BR_rat(ib)-unset).lt.1.0D-3)stop 'error in subroutine model_likeness (4b)' enddo - - s=sum(XS_rat)/ns - b=sum(BR_rat)/nb + + s=sum(XS_rat)/ns + b=sum(BR_rat)/nb allocate(dsbys(ns)) - do is=1,ns - dsbys(is)= div((XS_rat(is) -s),s, 0.0D0,1.0D9) + do is=1,ns + dsbys(is)= div((XS_rat(is) -s),s, 0.0D0,1.0D9) enddo - + allocate(dbbyb(nb)) - do ib=1,nb + do ib=1,nb dbbyb(ib)= div((BR_rat(ib) -b),b, 0.0D0,1.0D9) - enddo - - testSMratios= 1 !passes the SM-like ratios test + enddo + + testSMratios= 1 !passes the SM-like ratios test do is=1,ns - do ib=1,nb - if(abs( dsbys(is)+dbbyb(ib)+dsbys(is)*dbbyb(ib) ).gt.eps )then + do ib=1,nb + if(abs( dsbys(is)+dbbyb(ib)+dsbys(is)*dbbyb(ib) ).gt.eps )then testSMratios= -1 !fails the SM-like ratios test endif - enddo - enddo + enddo + enddo deallocate(dsbys) - deallocate(dbbyb) - + deallocate(dbbyb) + deallocate(XS_rat) - deallocate(BR_rat) - + deallocate(BR_rat) + endif if(testSMratios.lt.0)correct_properties=.False. - + if(correct_properties)then - model_like= 1 !passes the model-likeness test + model_like= 1 !passes the model-likeness test sigmaXbr=s*b else - model_like= -1 !fails the model-likeness test + model_like= -1 !fails the model-likeness test sigmaXbr=0.0D0 endif contains !---------------------------------------- subroutine initialise_XS_rat_BR_rat allocate(XS_rat(ns)) - allocate(BR_rat(nb)) + allocate(BR_rat(nb)) XS_rat=unset BR_rat=unset - + allocate(XS_SM_temp(ns)) allocate(BR_SM_temp(nb)) XS_SM_temp=unset BR_SM_temp=unset - + end subroutine initialise_XS_rat_BR_rat !---------------------------------------- subroutine initialise_channel_rat_SM allocate(channel_rat(nc,2)) - allocate(channel_SM(nc,2)) + allocate(channel_SM(nc,2)) channel_rat=unset channel_SM=unset end subroutine initialise_channel_rat_SM - !---------------------------------------- + !---------------------------------------- subroutine reallocate_channel_rat_SM - + double precision, allocatable :: reallocate_array(:,:) allocate(reallocate_array(nc,2)) - + reallocate_array(1:nc,:) = channel_rat(1:nc,:) deallocate(channel_rat) allocate(channel_rat(nc,2)) channel_rat = reallocate_array reallocate_array(1:nc,:) = channel_SM(1:nc,:) deallocate(channel_SM) allocate(channel_SM(nc,2)) channel_SM = reallocate_array deallocate(reallocate_array) - + end subroutine reallocate_channel_rat_SM - !---------------------------------------- - + !---------------------------------------- + end subroutine model_likeness - !*********************************************************** - subroutine fill_blank_ft1_dat(ft1,ft1_sep,vmasslower,vmasshigher,vmass_xmin,vmass_xmax,vmass_sep,valueoutsidetable) + !*********************************************************** + subroutine fill_blank_ft1_dat(ft1,ft1_sep,vmasslower,vmasshigher,vmass_xmin,vmass_xmax,vmass_sep,valueoutsidetable) ! don't forget to deallocate f_t1%dat use usefulbits, only : small implicit none integer :: ilower,ihigher double precision, intent(in) :: ft1_sep,vmasslower,vmasshigher,vmass_xmin,vmass_xmax,vmass_sep,valueoutsidetable type(table1) :: ft1 - + if(abs(vmass_xmin-vmass_xmax).lt.small)stop 'problem in f_from_t3 (4)' ft1%sep=ft1_sep ! we want f_t1%xmin to be lower than x1lower if((vmasslower -vmass_xmin).ge.0.0D0)then - ilower = int((vmasslower -vmass_xmin)/vmass_sep)+1 + ilower = int((vmasslower -vmass_xmin)/vmass_sep)+1 else !off lower edge of table ilower = int((vmasslower -vmass_xmin)/vmass_sep)+1-1 !-1 since int rounds up for negative numbers endif ihigher = int((vmasshigher-vmass_xmin)/vmass_sep)+2 ! we want f_t1%xmax to be higher than x1higher ft1%xmin = dble(ilower - 1)*vmass_sep + vmass_xmin ft1%xmax = dble(ihigher - 1)*vmass_sep + vmass_xmin ft1%nx=nint((ft1%xmax-ft1%xmin)/ft1%sep)+1 - allocate(ft1%dat(ft1%nx,1)) - - ft1%dat(:,1)=valueoutsidetable - end subroutine fill_blank_ft1_dat - !*********************************************************** + allocate(ft1%dat(ft1%nx,1)) + + ft1%dat(:,1)=valueoutsidetable + end subroutine fill_blank_ft1_dat + !*********************************************************** subroutine f_from_t1(t1,vmasslower,vmasshigher,sepmultfactor,datcomp, & & f_t1,valueoutsidetable) - ! Fills the f_t1 array with the information from a t1 array + ! Fills the f_t1 array with the information from a t1 array ! - ! Do not forget to deallocate f_t1%dat later on - !*********************************************************** + ! Do not forget to deallocate f_t1%dat later on + !*********************************************************** use interpolate use usefulbits, only : small implicit none !--------------------------------------input type(table1), intent(in) :: t1 double precision, intent(in) :: vmasslower,vmasshigher,valueoutsidetable double precision, intent(in) :: sepmultfactor integer, intent(in) :: datcomp !-----------------------------------output type(table1), intent(out) :: f_t1 !-----------------------------------internal integer :: i double precision :: interpol double precision :: vmass,vmass_xmin,vmass_xmax,vmass_sep !------------------------------------------- if(vmasslower.gt.vmasshigher)then stop 'problem in f_from_t1 (1)' endif - f_t1%id = t1%id + f_t1%id = t1%id f_t1%deltax = t1%deltax vmass_xmin = t1%xmin vmass_xmax = t1%xmax vmass_sep = t1%sep f_t1%sep = t1%sep*sepmultfactor - call fill_blank_ft1_dat(f_t1,f_t1%sep,vmasslower,vmasshigher,vmass_xmin,vmass_xmax,vmass_sep,valueoutsidetable) + call fill_blank_ft1_dat(f_t1,f_t1%sep,vmasslower,vmasshigher,vmass_xmin,vmass_xmax,vmass_sep,valueoutsidetable) do i=1,ubound(f_t1%dat,dim=1) vmass = dble(i-1)*f_t1%sep + f_t1%xmin - + if( vmass.lt.vmass_xmin-small )then f_t1%dat(i,1)=valueoutsidetable elseif( vmass.gt.vmass_xmax+small )then f_t1%dat(i,1)=valueoutsidetable - else + else call interpolate_tabletype1(vmass,t1,datcomp,interpol) f_t1%dat(i,1)=interpol endif enddo - end subroutine f_from_t1 + end subroutine f_from_t1 - !*********************************************************** + !*********************************************************** subroutine f_from_t2(t2,m1_at_ref_point_1,m2_at_ref_point_1,m1_at_ref_point_2,m2_at_ref_point_2, & & vmassm1orm2,vmasslower,vmasshigher,sepmultfactor,datcomp, & & f_t1,valueoutsidetable) ! Fills the f_t1 array with the information from a t2 array along a line ! m2 = line_grad*m1 + line_const ! - ! Do not forget to deallocate f_t1%dat later on - !*********************************************************** + ! Do not forget to deallocate f_t1%dat later on + !*********************************************************** use interpolate use usefulbits, only : small implicit none !--------------------------------------input type(table2), intent(in) :: t2 double precision, intent(in) :: m1_at_ref_point_1,m2_at_ref_point_1,m1_at_ref_point_2,m2_at_ref_point_2 double precision, intent(in) :: vmasslower,vmasshigher,valueoutsidetable double precision, intent(in) :: sepmultfactor integer, intent(in) :: datcomp,vmassm1orm2 !-----------------------------------output type(table1), intent(out) :: f_t1 !-----------------------------------internal type(table1) :: t1 double precision :: line_grad,line_const integer :: i logical :: const_m1,const_m2 integer :: const_m1_i,const_m2_j logical :: on_m1_gridline,on_m2_gridline double precision :: interpol,mass1,mass2 double precision :: m1bit,m2bit double precision :: vmass,vmass_xmin,vmass_xmax,vmass_sep integer :: ftype_selection(1) !------------------------------------------- if(vmasslower.gt.vmasshigher)then stop 'problem in f_from_t2 (1)' endif if(abs(m1_at_ref_point_1-m1_at_ref_point_2).lt.small)then const_m1=.True. !line_grad is not needed !line_const is not needed else const_m1=.False. line_grad =(m2_at_ref_point_1-m2_at_ref_point_2)/(m1_at_ref_point_1-m1_at_ref_point_2) line_const=(m1_at_ref_point_1*m2_at_ref_point_2-m1_at_ref_point_2*m2_at_ref_point_1) & & /(m1_at_ref_point_1-m1_at_ref_point_2) endif if(abs(m2_at_ref_point_1-m2_at_ref_point_2).lt.small)then const_m2=.True. else const_m2=.False. endif - f_t1%id = t2%id + f_t1%id = t2%id f_t1%deltax = t2%deltax select case(vmassm1orm2) case(1) if(const_m1)stop 'problem in f_from_t2 (3a)' vmass_xmin = t2%xmin1 vmass_xmax = t2%xmax1 vmass_sep = t2%sep1 f_t1%sep = t2%sep1*sepmultfactor case(2) if(const_m2)stop 'problem in f_from_t2 (3b)' vmass_xmin = t2%xmin2 vmass_xmax = t2%xmax2 vmass_sep = t2%sep2 f_t1%sep = t2%sep2*sepmultfactor - case default + case default stop 'problem in f_from_t2 (3)' end select - call fill_blank_ft1_dat(f_t1,f_t1%sep,vmasslower,vmasshigher,vmass_xmin,vmass_xmax,vmass_sep,valueoutsidetable) + call fill_blank_ft1_dat(f_t1,f_t1%sep,vmasslower,vmasshigher,vmass_xmin,vmass_xmax,vmass_sep,valueoutsidetable) on_m1_gridline=.False. if(const_m1)then const_m1_i=nint( (m1_at_ref_point_1-t2%xmin1) /t2%sep1)+1 m1bit= m1_at_ref_point_1 -(dble(const_m1_i-1)*t2%sep1+t2%xmin1)/t2%sep1 if(m1bit.lt.small)on_m1_gridline=.True. endif on_m2_gridline=.False. if(const_m2)then const_m2_j=nint( (m2_at_ref_point_1-t2%xmin2) /t2%sep2)+1 m2bit= m2_at_ref_point_1 -(dble(const_m2_j-1)*t2%sep2+t2%xmin2)/t2%sep2 if(m2bit.lt.small)on_m2_gridline=.True. endif ftype_selection(1)=datcomp if( on_m1_gridline )then call fill_t1_from_t2(t2,2,const_m1_i,ftype_selection,t1) call f_from_t1(t1,vmasslower,vmasshigher,sepmultfactor,datcomp, & & f_t1,valueoutsidetable) - + deallocate(t1%dat) elseif(on_m2_gridline )then call fill_t1_from_t2(t2,1,const_m2_j,ftype_selection,t1) call f_from_t1(t1,vmasslower,vmasshigher,sepmultfactor,datcomp, & & f_t1,valueoutsidetable) deallocate(t1%dat) else do i=1,ubound(f_t1%dat,dim=1) vmass = dble(i-1)*f_t1%sep + f_t1%xmin if(t2%nx2.eq.1)then mass1 = vmass mass2 = t2%xmin2 elseif(vmassm1orm2.eq.1)then mass1 = vmass mass2 = mass1*line_grad+line_const - else - mass2 = vmass + else + mass2 = vmass if(const_m1)then mass1 = m1_at_ref_point_1 else mass1 = (mass2 - line_const)/line_grad endif - endif + endif if( vmass.lt.vmass_xmin-small )then f_t1%dat(i,1)=valueoutsidetable elseif( vmass.gt.vmass_xmax+small )then f_t1%dat(i,1)=valueoutsidetable elseif(( t2%needs_M2_gt_2M1 ).and.(2.0D0*mass1>mass2+small))then f_t1%dat(i,1)=valueoutsidetable - elseif((.not.(t2%needs_M2_gt_2M1)).and.(mass1>mass2+small).and.(t2%nx2.gt.1))then - f_t1%dat(i,1)=valueoutsidetable - else + elseif((.not.(t2%needs_M2_gt_2M1)).and.(mass1>mass2+small).and.(t2%nx2.gt.1))then + f_t1%dat(i,1)=valueoutsidetable + else call interpolate_tabletype2(mass1,mass2,t2,datcomp,interpol) f_t1%dat(i,1)=interpol endif enddo endif - end subroutine f_from_t2 - !****************************************************************** + end subroutine f_from_t2 + !****************************************************************** subroutine f_from_slices_t2(slices_t2,m1_at_ref_point_1,m2_at_ref_point_1,m1_at_ref_point_2,m2_at_ref_point_2,z, & & vmassm1orm2,vmasslower,vmasshigher,sepmultfactor,datcomp, & & f_t1,valueoutsidetable) !****************************************************************** ! fill the f_t1 array with the information from a t3 array at constant sf along a line ! m2 = line_grad*m1 + line_const ! do not forget to deallocate dat use S95tables_type3 use interpolate use usefulbits, only : small implicit none type(table2), intent(in) :: slices_t2(2) type(table1) :: f_t1 double precision, intent(in) :: m1_at_ref_point_1,m2_at_ref_point_1,m1_at_ref_point_2,m2_at_ref_point_2 double precision, intent(in) :: z,vmasslower,vmasshigher,valueoutsidetable double precision, intent(in) :: sepmultfactor double precision :: line_grad,line_const integer, intent(in) :: datcomp,vmassm1orm2 integer :: i logical :: const_m1,const_m2 double precision :: interpol,mass1,mass2 double precision :: vmass,vmass_xmin,vmass_xmax,vmass_sep double precision :: z_below,z_above if(vmasslower.gt.vmasshigher)then stop 'problem in f_from_slices_t2 (1)' endif if(abs(m1_at_ref_point_1-m1_at_ref_point_2).lt.small)then const_m1=.True. else const_m1=.False. endif if(abs(m2_at_ref_point_1-m2_at_ref_point_2).lt.small)then const_m2=.True. else const_m2=.False. endif ! check if mass is within z range of table: if( .not. ( (z .ge. slices_t2(1)%z-small).and.(z .le. slices_t2(2)%z+small) ) )then !#1! written in convoluted way to get the NaNs - f_t1%id = slices_t2(1)%id + f_t1%id = slices_t2(1)%id f_t1%deltax = slices_t2(1)%deltax if((slices_t2(1)%nx2.eq.1).or.(vmassm1orm2.eq.1))then if(const_m1)stop 'problem in f_from_slices_t2 (1a)' vmass_xmin = slices_t2(1)%xmin1 vmass_sep = slices_t2(1)%sep1 f_t1%sep = slices_t2(1)%sep1*sepmultfactor else if(const_m2)stop 'problem in f_from_slices_t2 (1b)' vmass_xmin = slices_t2(1)%xmin2 vmass_sep = slices_t2(1)%sep2 f_t1%sep = slices_t2(1)%sep2*sepmultfactor - endif + endif - call fill_blank_ft1_dat(f_t1,f_t1%sep,vmasslower,vmasshigher,vmass_xmin,vmass_xmax,vmass_sep,valueoutsidetable) + call fill_blank_ft1_dat(f_t1,f_t1%sep,vmasslower,vmasshigher,vmass_xmin,vmass_xmax,vmass_sep,valueoutsidetable) else !#1 - + z_below=slices_t2(1)%z z_above=slices_t2(2)%z if(abs(z_below-z).lt.small)then !z is the same as z_below !#2 call f_from_t2(slices_t2(1),m1_at_ref_point_1,m2_at_ref_point_1,m1_at_ref_point_2,m2_at_ref_point_2, & & vmassm1orm2,vmasslower,vmasshigher,sepmultfactor,1, & - & f_t1,valueoutsidetable) + & f_t1,valueoutsidetable) elseif(abs(z_above-z).lt.small)then !z is the same as z_above !#2 call f_from_t2(slices_t2(2),m1_at_ref_point_1,m2_at_ref_point_1,m1_at_ref_point_2,m2_at_ref_point_2, & & vmassm1orm2,vmasslower,vmasshigher,sepmultfactor,1, & - & f_t1,valueoutsidetable) + & f_t1,valueoutsidetable) - else!#2 + else!#2 if(const_m1)then !line_grad is not needed !line_const is not needed else line_grad =(m2_at_ref_point_1-m2_at_ref_point_2)/(m1_at_ref_point_1-m1_at_ref_point_2) line_const=(m1_at_ref_point_1*m2_at_ref_point_2-m1_at_ref_point_2*m2_at_ref_point_1) & & /(m1_at_ref_point_1-m1_at_ref_point_2) endif - f_t1%id = slices_t2(1)%id + f_t1%id = slices_t2(1)%id f_t1%deltax = slices_t2(1)%deltax if((slices_t2(1)%nx2.eq.1).or.(vmassm1orm2.eq.1))then vmass_xmin = slices_t2(1)%xmin1 vmass_xmax = slices_t2(1)%xmax1 vmass_sep = slices_t2(1)%sep1 f_t1%sep = slices_t2(1)%sep1*sepmultfactor else if(const_m2)stop 'problem in f_from_slices_t2 (3b)' vmass_xmin = slices_t2(1)%xmin2 vmass_xmax = slices_t2(1)%xmax2 vmass_sep = slices_t2(1)%sep2 f_t1%sep = slices_t2(1)%sep2*sepmultfactor endif - call fill_blank_ft1_dat(f_t1,f_t1%sep,vmasslower,vmasshigher,vmass_xmin,vmass_xmax,vmass_sep,valueoutsidetable) - + call fill_blank_ft1_dat(f_t1,f_t1%sep,vmasslower,vmasshigher,vmass_xmin,vmass_xmax,vmass_sep,valueoutsidetable) + do i=1,ubound(f_t1%dat,dim=1) - vmass = dble(i-1)*f_t1%sep + f_t1%xmin + vmass = dble(i-1)*f_t1%sep + f_t1%xmin if(slices_t2(1)%nx2.eq.1)then mass1 = vmass mass2 = slices_t2(1)%xmin2 - else + else select case(vmassm1orm2) case(1) mass1 = vmass mass2 = mass1*line_grad+line_const - case(2) - mass2 = vmass + case(2) + mass2 = vmass if(const_m1)then mass1 = m1_at_ref_point_1 else mass1 = (mass2 - line_const)/line_grad endif case default stop 'problem in f_from_slices_t2 (4b)' end select endif if( vmass.lt.vmass_xmin-small )then f_t1%dat(i,1)=valueoutsidetable elseif( vmass.gt.vmass_xmax+small )then f_t1%dat(i,1)=valueoutsidetable elseif((slices_t2(1)%nx2.gt.1).and.( slices_t2(1)%needs_M2_gt_2M1 ).and.(2.0D0*mass1>mass2+small))then f_t1%dat(i,1)=valueoutsidetable - elseif((slices_t2(1)%nx2.gt.1).and.(.not.(slices_t2(1)%needs_M2_gt_2M1)).and.(mass1>mass2+small))then - f_t1%dat(i,1)=valueoutsidetable + elseif((slices_t2(1)%nx2.gt.1).and.(.not.(slices_t2(1)%needs_M2_gt_2M1)).and.(mass1>mass2+small))then + f_t1%dat(i,1)=valueoutsidetable else call interpolate_slices_t2(mass1,mass2,z,slices_t2,datcomp,interpol) f_t1%dat(i,1)=interpol endif enddo endif !#2 endif !#1 end subroutine f_from_slices_t2 - !****************************************************************** + !****************************************************************** subroutine f_from_t3(t3,m1_at_ref_point_1,m2_at_ref_point_1,m1_at_ref_point_2,m2_at_ref_point_2,z, & & vmassm1orm2,vmasslower,vmasshigher,sepmultfactor,datcomp, & & f_t1,valueoutsidetable) !****************************************************************** ! fill the f_t1 array with the information from a t3 array at constant sf along a line ! m2 = line_grad*m1 + line_const ! do not forget to deallocate dat use S95tables_type3 use interpolate use usefulbits, only : small implicit none type(table3), intent(in) :: t3 type(table2) :: slices_t2(2) type(table1) :: f_t1 double precision, intent(in) :: m1_at_ref_point_1,m2_at_ref_point_1,m1_at_ref_point_2,m2_at_ref_point_2 double precision, intent(in) :: z,vmasslower,vmasshigher,valueoutsidetable double precision, intent(in) :: sepmultfactor integer, intent(in) :: datcomp,vmassm1orm2 integer :: a logical :: const_m1,const_m2 double precision :: vmass_xmin,vmass_xmax,vmass_sep integer :: ilow,c_zi(2),ftype_selection(1) double precision :: z_below,z_above if(vmasslower.gt.vmasshigher)then stop 'problem in f_from_t3 (1)' endif if(abs(m1_at_ref_point_1-m1_at_ref_point_2).lt.small)then const_m1=.True. else const_m1=.False. endif if(abs(m2_at_ref_point_1-m2_at_ref_point_2).lt.small)then const_m2=.True. else const_m2=.False. endif ! check if mass is within z range of table: if( .not. ( (z .ge. t3%zmin-small).and.(z .le. t3%zmax+small) ) )then !#1! written in convoluted way to get the NaNs - f_t1%id = t3%id + f_t1%id = t3%id f_t1%deltax = t3%deltax if((t3%nx2.eq.1).or.(vmassm1orm2.eq.1))then if(const_m1)stop 'problem in f_from_t3 (1a)' vmass_xmin = t3%xmin1 vmass_sep = t3%sep1 f_t1%sep = t3%sep1*sepmultfactor else if(const_m2)stop 'problem in f_from_t3 (1b)' vmass_xmin = t3%xmin2 vmass_sep = t3%sep2 f_t1%sep = t3%sep2*sepmultfactor - endif + endif - call fill_blank_ft1_dat(f_t1,f_t1%sep,vmasslower,vmasshigher,vmass_xmin,vmass_xmax,vmass_sep,valueoutsidetable) + call fill_blank_ft1_dat(f_t1,f_t1%sep,vmasslower,vmasshigher,vmass_xmin,vmass_xmax,vmass_sep,valueoutsidetable) else !#1 - + ilow=int((z-t3%zmin)/t3%zsep)+1 z_below=dble(ilow-1)*t3%zsep+t3%zmin z_above=z_below+t3%zsep if(abs(z_below-z).lt.small)then !z is the same as z_below !#2 c_zi= ilow - elseif(abs(z_above-z).lt.small)then !z is the same as z_above !#2 - c_zi= ilow+1 + elseif(abs(z_above-z).lt.small)then !z is the same as z_above !#2 + c_zi= ilow+1 else !#2 c_zi(1)= ilow c_zi(2)= ilow+1 endif !#2 ftype_selection(1)=datcomp call fill_slices_t2_from_slices_of_t3(t3,c_zi,ftype_selection,slices_t2) call f_from_slices_t2(slices_t2,m1_at_ref_point_1,m2_at_ref_point_1,m1_at_ref_point_2,m2_at_ref_point_2,z, & & vmassm1orm2,vmasslower,vmasshigher,sepmultfactor,datcomp, & & f_t1,valueoutsidetable) do a=1,2 deallocate(slices_t2(a)%dat) enddo endif !#1 end subroutine f_from_t3 !************************************************************ subroutine convolve_chisq_with_gaussian(t1,datcomp,sigma,mass,result) !************************************************************ ! intergrate exp(-t1%dat(xi,1)/2)*exp(-(massx-mass)^2/(2*sigma^2))/sqrt(2*pi*sigma^2) w.r.t. x ! between xlower and xhigher ! then do -2.0D0*log to get result ! negative data points are invalid. They are set to zero. use usefulbits, only : vsmall,vvsmall,pi !internal use interpolate use S95tables_type1 implicit none type(table1),intent(in) :: t1 integer,intent(in) :: datcomp double precision,intent(in) :: sigma,mass double precision,intent(out) :: result - !-----------------------------------internal + !-----------------------------------internal integer :: i,ilow,ihigh,j,divisions,n,ntot double precision :: runningtotal,massx,datvalue,newsep double precision,allocatable :: newdat(:) double precision :: big_number_instead_of_infinity double precision :: dati,datiplus1 - !------------------------------------------- + !------------------------------------------- if((datcomp.lt.lbound(t1%dat,dim=2)).or.(datcomp.gt.ubound(t1%dat,dim=2)))then stop 'wrong datcomp inputted to subroutine convolve_with_gaussian' elseif(t1%nx.le.1)then stop 'wrong t1%nx inputted to subroutine convolve_with_gaussian (2)' elseif(sigma.le.vsmall)then stop 'wrong sigma inputted to subroutine convolve_with_gaussian' elseif(abs(t1%sep).le.vsmall)then stop 'wrong t1%sep inputted to subroutine convolve_with_gaussian' endif big_number_instead_of_infinity=1.0D5 divisions=5 !do i=1,t1%nx ! if(t1%dat(i,datcomp).ge.big_number_instead_of_infinity)t1%dat(i,datcomp)=1.0D20 !enddo n=0 if(minval(t1%dat(:,datcomp)).lt.1.0D4)then ilow = lbound(t1%dat,dim=1) ihigh = ubound(t1%dat,dim=1) if(ilow.eq.ihigh)stop 'problem in subroutine convolve_with_gaussian' newsep=t1%sep/dble(divisions) - + ntot=divisions*(ihigh-ilow)+1 allocate(newdat(ntot)) newdat=0.0D0 do i=ilow,ihigh dati=t1%dat(i,datcomp) if(dati.ge.0.0D0)then n=n+1 massx=dble(i-1)*t1%sep+t1%xmin datvalue=dati - + newdat(n)=exp(-datvalue/2.0D0) & & *exp(-(massx-mass)**2.0D0/(2.0D0*sigma**2.0D0))/sqrt(2.0D0*pi*sigma**2.0D0) if(i.lt.ihigh)then datiplus1=t1%dat(i+1,datcomp) if(datiplus1.ge.0.0D0)then do j=2,divisions-1 n=n+1 - + massx=dble(i-1)*t1%sep+t1%xmin + dble(j-1)*newsep !do a=1,ihigh ! write(*,*)a,dble(a-1)*t1%sep+t1%xmin ,t1%dat(a,datcomp) !enddo datvalue=dati +((datiplus1-dati)/t1%sep)*dble(j-1)*newsep - + if(datvalue.lt.0.0D0)then !these are invalid point or places outside range of table datvalue=0.0D0 endif - + newdat(n)=exp(-datvalue/2.0D0) & & *exp(-(massx-mass)**2.0D0/(2.0D0*sigma**2.0D0))/sqrt(2.0D0*pi*sigma**2.0D0) enddo else do j=2,divisions-1 n=n+1 enddo endif else !negative data points are invalid do j=2,divisions-1 n=n+1 enddo endif !massx=dble(i-1)*t1%sep+t1%xmin !newdat(i)=exp(-t1%dat(i,datcomp)/2.0D0) & ! & *exp(-(massx-mass)**2.0D0/(2.0D0*sigma**2.0D0))/sqrt(2.0D0*pi*sigma**2.0D0) - + else do j=1,divisions-1 n=n+1 enddo endif enddo !intergrate with trapezium rule runningtotal=0.5D0*(newdat(1)+newdat(ntot)) if((ntot).gt.1)then do n=2,ntot-1 runningtotal=runningtotal+newdat(n) - enddo + enddo endif deallocate(newdat) if(abs(runningtotal).le.vvsmall)then - result= big_number_instead_of_infinity + result= big_number_instead_of_infinity else result= -2.0D0*log(runningtotal*newsep) endif if(result.gt.22.4D0)then !corresponds to clsb=1.0D-6, which is the lowest clsb that ppchi2 can take as input - result= big_number_instead_of_infinity + result= big_number_instead_of_infinity endif else - result= big_number_instead_of_infinity + result= big_number_instead_of_infinity endif end subroutine convolve_chisq_with_gaussian - !************************************************************ + !************************************************************ function S95_t1_or_S95_t2_idfromelementnumber(ttype,tlist) - !************************************************************ + !************************************************************ implicit none integer :: S95_t1_or_S95_t2_idfromelementnumber integer,intent(in) ::tlist integer,intent(in) ::ttype select case(ttype) case(1) S95_t1_or_S95_t2_idfromelementnumber=S95_t1(tlist)%id - case(2) + case(2) S95_t1_or_S95_t2_idfromelementnumber=S95_t2(tlist)%id - case(9) + case(9) S95_t1_or_S95_t2_idfromelementnumber=3316 case default stop 'wrong input to function S95_t1_or_S95_t2_idfromelementnumber' end select end function S95_t1_or_S95_t2_idfromelementnumber - !************************************************************ + !************************************************************ function S95_t1_or_S95_t2_elementnumberfromid(ttype,id) - !************************************************************ + !************************************************************ use S95tables_type1, only :t1elementnumberfromid use S95tables_type2, only :t2elementnumberfromid implicit none integer,intent(in) ::id integer,intent(in) ::ttype integer :: S95_t1_or_S95_t2_elementnumberfromid select case(ttype) case(1) S95_t1_or_S95_t2_elementnumberfromid= t1elementnumberfromid(S95_t1,id) case(2) S95_t1_or_S95_t2_elementnumberfromid= t2elementnumberfromid(S95_t2,id) case default stop 'problem with function S95_t1_or_S95_t2_elementnumberfromid' end select end function S95_t1_or_S95_t2_elementnumberfromid - !************************************************************ + !************************************************************ subroutine deallocate_S95tables !************************************************************ implicit none !-----------------------------------internal integer x !------------------------------------------- do x=lbound(S95_t1,dim=1),ubound(S95_t1,dim=1) deallocate(S95_t1(x)%dat) enddo - + do x=lbound(S95_t2,dim=1),ubound(S95_t2,dim=1) deallocate(S95_t2(x)%dat) - enddo - + enddo + deallocate(S95_t1) deallocate(S95_t2) call deallocate_Exptranges - + end subroutine deallocate_S95tables !*********************************************************** subroutine deallocate_Exptranges !*********************************************************** implicit none - if(allocated(Exptrange_Mhmin_forSMXS)) deallocate(Exptrange_Mhmin_forSMXS) - if(allocated(Exptrange_Mhmax_forSMXS)) deallocate(Exptrange_Mhmax_forSMXS) - if(allocated(Exptrange_Mhmin_forSMdecays)) deallocate(Exptrange_Mhmin_forSMdecays) - if(allocated(Exptrange_Mhmax_forSMdecays)) deallocate(Exptrange_Mhmax_forSMdecays) + if(allocated(Exptrange_Mhmin_forSMXS)) deallocate(Exptrange_Mhmin_forSMXS) + if(allocated(Exptrange_Mhmax_forSMXS)) deallocate(Exptrange_Mhmax_forSMXS) + if(allocated(Exptrange_Mhmin_forSMdecays)) deallocate(Exptrange_Mhmin_forSMdecays) + if(allocated(Exptrange_Mhmax_forSMdecays)) deallocate(Exptrange_Mhmax_forSMdecays) end subroutine deallocate_Exptranges !*********************************************************** - + end module S95tables !************************************************************ Index: trunk/HiggsBounds-5/AllAnalyses =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: trunk/HiggsBounds-5/usefulbits.f90 =================================================================== --- trunk/HiggsBounds-5/usefulbits.f90 (revision 597) +++ trunk/HiggsBounds-5/usefulbits.f90 (revision 598) @@ -1,1466 +1,1466 @@ ! This file is part of HiggsBounds ! -KW !****************************************************************** module usefulbits -!****************************************************************** - implicit none +!****************************************************************** + implicit none logical :: debug = .False. logical :: full_dmth_variation = .True. integer :: dmhsteps = 3 ! Mass uncertainties smaller than 0.1 GeV are not considered double precision :: small_mh = 0.1D0 logical :: run_HB_classic = .False. logical :: wantkey = .True. logical :: extrapolatewidth = .True. ! For the CMS likelihood extension integer :: using_likelihood = 0 ! For the LEP chisq extension: logical :: chisqcut_at_mumax = .False. - + ! HB-5: logical :: BRdirectinput = .False. - + character(LEN=5) :: whichanalyses - character(LEN=4) :: whichinput + character(LEN=4) :: whichinput character(LEN=7) :: inputmethod = 'subrout' - character(LEN=9),parameter :: vers='5.3.0beta' + character(LEN=9),parameter :: vers='5.4.0beta' integer, parameter :: numres = 3 - integer :: n_additional + integer :: n_additional character(len=300) :: infile1,infile2 - integer,parameter :: file_id_common=10 + integer,parameter :: file_id_common=10 integer,parameter :: file_id_common2=12 integer,parameter :: file_id_common3=133 - integer,parameter :: file_id_common4=134 + integer,parameter :: file_id_common4=134 integer,parameter :: file_id_debug1=444 integer,parameter :: file_id_debug2=45 integer, allocatable :: analysislist(:) integer, allocatable :: analysis_exclude_list(:) !read from http://pdg.lbl.gov/ 22.10.2009 double precision,parameter :: mt=173.2D0 double precision,parameter :: ms=0.105D0 double precision,parameter :: mc=1.27D0 double precision,parameter :: mbmb=4.20D0 double precision,parameter :: mmu=105.7D-3 double precision,parameter :: mtau=1.777D0 double precision,parameter :: MZ=91.1876D0 !PDG 2009 double precision,parameter :: MW=80.398D0 !PDG 2009 double precision,parameter :: GF=1.16637D-5 double precision,parameter :: pi=3.14159265358979323846264338328D0 double precision,parameter :: alphas=0.118D0 double precision,parameter :: small=1.0D-6 double precision,parameter :: vsmall=1.0D-16 double precision,parameter :: vvsmall=1.0D-100 type particledescriptions character(LEN=10) :: short character(LEN=30) :: long end type - + ! particle codes: (n.b. these are NOT pdg) integer,parameter :: not_a_particle = 0 integer,parameter :: Hneut = 1 !either Mhi, Mh2 or Mh3 (says nothing about CP properties) integer,parameter :: Hplus = 2 !single charged Higgs integer,parameter :: Chineut = 3 !either neutralino1, neutralino2, neutralino3 or neutralino4 integer,parameter :: Chiplus = 4 !either chargino1 or chargino2 integer :: np(0:4)=1 !e.g np(Hneut) holds number of neutral Higgs considered type(particledescriptions),allocatable :: pdesc(:) - + ! HB-5.2: Needed for the channelrates_matrix ! integer, parameter :: Nprod = 7 ! integer, parameter :: Ndecay = 9 integer, parameter :: Nprod = 11 integer, parameter :: Ndecay = 11 !for subroutine version-------------------- (HB5: Removed!) ! type inputsubroutineinfo ! integer :: stat ! character(LEN=40) :: desc ! integer :: req ! end type ! type(inputsubroutineinfo),allocatable :: inputsub(:) - logical :: just_after_run + logical :: just_after_run !associated with 'channels'---------------- - integer :: ntot - - type listprocesses + integer :: ntot + + type listprocesses integer :: tlist,ttype integer :: findi,findj - integer :: corresponding_clsb_table_element + integer :: corresponding_clsb_table_element end type - + type(listprocesses), allocatable :: pr(:) type(listprocesses), allocatable :: prsep(:,:) !------------------------------------------- - + !associated with 'input'-------------------- - type particlemasses + type particlemasses double precision, allocatable :: M(:) ! Central value for mass with uncertainties double precision, allocatable :: Mc(:) double precision, allocatable :: GammaTot(:) ! Mass uncertainties (chi-2 test) used in HiggsSignals double precision, allocatable :: dM(:) ! Mass uncertainties (variation) used in HiggsBounds - double precision, allocatable :: dMh(:) + double precision, allocatable :: dMh(:) end type double precision, allocatable :: diffMhneut(:,:) double precision, allocatable :: diffMhch(:,:) double precision, allocatable :: dmn(:) double precision, allocatable :: dmch(:) - + integer ndmh integer ndat type lepdataset double precision, allocatable :: XS_hjZ_ratio(:) double precision, allocatable :: XS_bbhj_ratio(:) double precision, allocatable :: XS_tautauhj_ratio(:) - double precision, allocatable :: XS_hjhi_ratio(:,:) - double precision, allocatable :: XS_HpjHmj_ratio(:) - double precision, allocatable :: XS_CpjCmj(:) - double precision, allocatable :: XS_NjNi(:,:) - end type + double precision, allocatable :: XS_hjhi_ratio(:,:) + double precision, allocatable :: XS_HpjHmj_ratio(:) + double precision, allocatable :: XS_CpjCmj(:) + double precision, allocatable :: XS_NjNi(:,:) + end type type hadroncolliderdataset double precision, allocatable :: XS_hj_ratio(:) double precision, allocatable :: XS_gg_hj_ratio(:) ! HB-5: for gluon fusion double precision, allocatable :: XS_bb_hj_ratio(:) ! HB-5: for bb+Higgs production double precision, allocatable :: XS_hjZ_ratio(:) double precision, allocatable :: XS_gg_hjZ_ratio(:) ! HB-5 (TS 6.4.2018) double precision, allocatable :: XS_qq_hjZ_ratio(:) ! HB-5 (TS 6.4.2018) - double precision, allocatable :: XS_hjW_ratio(:) + double precision, allocatable :: XS_hjW_ratio(:) double precision, allocatable :: XS_hjb_ratio(:) ! still needed? double precision, allocatable :: XS_tthj_ratio(:) double precision, allocatable :: XS_vbf_ratio(:) double precision, allocatable :: XS_thj_tchan_ratio(:) ! HB-5 double precision, allocatable :: XS_thj_schan_ratio(:) ! HB-5 - double precision, allocatable :: XS_hjhi(:,:) ! HB-5 -! SM reference cross section holders: + double precision, allocatable :: XS_hjhi(:,:) ! HB-5 +! SM reference cross section holders: double precision, allocatable :: XS_HZ_SM(:) double precision, allocatable :: XS_gg_HZ_SM(:) ! HB-5 (TS 6.4.2018) double precision, allocatable :: XS_qq_HZ_SM(:) ! HB-5 (TS 6.4.2018) double precision, allocatable :: XS_HW_SM(:) double precision, allocatable :: XS_H_SM(:) double precision, allocatable :: XS_gg_H_SM(:) ! HB-5 double precision, allocatable :: XS_bb_H_SM(:) ! HB-5 !double precision, allocatable :: XS_H_SM_9713(:),XS_H_SM_9674(:) double precision, allocatable :: XS_ttH_SM(:) - double precision, allocatable :: XS_tH_tchan_SM(:) ! HB-5 - double precision, allocatable :: XS_tH_schan_SM(:) ! HB-5 + double precision, allocatable :: XS_tH_tchan_SM(:) ! HB-5 + double precision, allocatable :: XS_tH_schan_SM(:) ! HB-5 double precision, allocatable :: XS_vbf_SM(:) ! Higgs produced in association with b, where b is tagged, comes uncut and with various cuts ! see subroutines in theory_XS_SM_functions.f90 for details double precision, allocatable :: XS_Hb_SM(:) double precision, allocatable :: XS_Hb_c1_SM(:),XS_Hb_c2_SM(:), XS_Hb_c3_SM(:),XS_Hb_c4_SM(:) ! HB-5: Charged Higgs production cross sections (in pb) - double precision, allocatable :: XS_vbf_Hpj(:) ! for Hp_j production in VBF - double precision, allocatable :: XS_Hpjtb(:) ! for Hp_j + t + b production - double precision, allocatable :: XS_Hpjcb(:) ! for Hp_j + c + b production - double precision, allocatable :: XS_Hpjbjet(:) ! for Hp_j + b + jet production - double precision, allocatable :: XS_Hpjcjet(:) ! for Hp_j + b + jet production - double precision, allocatable :: XS_Hpjjetjet(:) ! for Hp_j + jet + jet production - double precision, allocatable :: XS_HpjW(:) ! for Hp_j + W production - double precision, allocatable :: XS_HpjZ(:) ! for Hp_j + Z production - double precision, allocatable :: XS_HpjHmj(:) ! (j,i), for Hp_j Hm_j production - double precision, allocatable :: XS_Hpjhi(:,:) ! (j,i), for Hp_j h_i production + double precision, allocatable :: XS_vbf_Hpmj(:) ! for Hpm_j production in VBF + double precision, allocatable :: XS_Hpmjtb(:) ! for Hpm_j + t + b production + double precision, allocatable :: XS_Hpmjcb(:) ! for Hpm_j + c + b production + double precision, allocatable :: XS_Hpmjbjet(:) ! for Hpm_j + b + jet production + double precision, allocatable :: XS_Hpmjcjet(:) ! for Hpm_j + b + jet production + double precision, allocatable :: XS_Hpmjjetjet(:) ! for Hpm_j + jet + jet production + double precision, allocatable :: XS_HpmjW(:) ! for Hpm_j + W production + double precision, allocatable :: XS_HpmjZ(:) ! for Hpm_j + Z production + double precision, allocatable :: XS_HpjHmj(:) ! (j,i), for Hp_j Hm_j production + double precision, allocatable :: XS_Hpmjhi(:,:) ! (j,i), for Hpm_j h_i production ! HB-5.2 beyond the narrow-width approximation matrix: holds the SM normalized channel rates ! with the dimensions (N_H, N_production-modes, N_decay-modes) = (N_H, 7, 9), where the ! ordering is the following ! 1: singleH, 2: VBF, 3: WH, 4: ZH, 5: ttH, 6: gg->phi, 7: bb->phi ! 1: gaga, 2: WW, 3: ZZ, 4: tautau, 5:bb, 6: Zga, 7: cc, 8: mumu, 9: gg double precision, allocatable :: channelrates(:,:,:) -! We need a temporary copy for the interface (will be copied in complete_theo) - double precision, allocatable :: channelrates_tmp(:,:,:) -! This one holds the corresponding SM rates (in pb), assuming the NWA: - double precision, allocatable :: channelrates_SM(:,:,:) +! We need a temporary copy for the interface (will be copied in complete_theo) + double precision, allocatable :: channelrates_tmp(:,:,:) +! This one holds the corresponding SM rates (in pb), assuming the NWA: + double precision, allocatable :: channelrates_SM(:,:,:) end type - type dataset + type dataset logical :: gooddataset integer, allocatable :: CP_value(:) double precision, allocatable :: additional(:) type(particlemasses), allocatable :: particle(:) double precision, allocatable :: BR_hjss(:),BR_hjcc(:) double precision, allocatable :: BR_hjbb(:),BR_hjtt(:) !HB-5 new H->tt - double precision, allocatable :: BR_hjmumu(:),BR_hjtautau(:) + double precision, allocatable :: BR_hjmumu(:),BR_hjtautau(:) double precision, allocatable :: BR_hjinvisible(:) double precision, allocatable :: BR_hjhihi(:,:) ! legacy HB-4 double precision, allocatable :: BR_hkhjhi(:,:,:) ! HB-5: for the decay h_k -> h_j h_i double precision, allocatable :: BR_hjhiZ(:,:) ! HB-5: for the decay h_j -> h_i Z double precision, allocatable :: BR_hjemu(:), BR_hjetau(:), BR_hjmutau(:) ! HB-5 - double precision, allocatable :: BR_hjHpiW(:,:) ! HB-5: for the decay h_j -> Hp_i W - type(lepdataset) :: lep + double precision, allocatable :: BR_hjHpiW(:,:) ! HB-5: for the decay h_j -> Hp_i W + type(lepdataset) :: lep !------------------------------------------- double precision, allocatable :: BR_hjWW(:),BR_hjgaga(:) double precision, allocatable :: BR_hjZga(:) - double precision, allocatable :: BR_hjZZ(:),BR_hjgg(:) + double precision, allocatable :: BR_hjZZ(:),BR_hjgg(:) double precision :: BR_tWpb double precision, allocatable :: BR_tHpjb(:) double precision, allocatable :: BR_Hpjcs(:) double precision, allocatable :: BR_Hpjcb(:) double precision, allocatable :: BR_Hpjtaunu(:) double precision, allocatable :: BR_Hpjtb(:) ! HB-5: for the decay Hp_j -> t b double precision, allocatable :: BR_HpjWZ(:) ! HB-5: for the decay Hp_j -> W Z - double precision, allocatable :: BR_HpjhiW(:,:) ! HB-5: for the decay Hp_j -> h_i W + double precision, allocatable :: BR_HpjhiW(:,:) ! HB-5: for the decay Hp_j -> h_i W + - double precision, allocatable :: BR_CjqqNi(:,:) double precision, allocatable :: BR_CjlnuNi(:,:) double precision, allocatable :: BR_CjWNi(:,:) double precision, allocatable :: BR_NjqqNi(:,:) double precision, allocatable :: BR_NjZNi(:,:) - - type(hadroncolliderdataset) :: tev - type(hadroncolliderdataset) :: lhc7 + + type(hadroncolliderdataset) :: tev + type(hadroncolliderdataset) :: lhc7 type(hadroncolliderdataset) :: lhc8 - type(hadroncolliderdataset) :: lhc13 ! HB-5 - + type(hadroncolliderdataset) :: lhc13 ! HB-5 + ! NEW(24/09/2014, TS): ! double precision, allocatable :: gg_hj_ratio(:) -! double precision, allocatable :: bb_hj_ratio(:) - +! double precision, allocatable :: bb_hj_ratio(:) + double precision, allocatable :: BR_Htt_SM(:), BR_Hbb_SM(:) !HB-5 new H->tt double precision, allocatable :: BR_Hcc_SM(:),BR_Hss_SM(:) - double precision, allocatable :: BR_Hmumu_SM(:),BR_Htautau_SM(:) + double precision, allocatable :: BR_Hmumu_SM(:),BR_Htautau_SM(:) double precision, allocatable :: BR_HWW_SM(:),BR_HZZ_SM(:),BR_HZga_SM(:),BR_Hgaga_SM(:),BR_Hgg_SM(:) double precision, allocatable :: BR_Hjets_SM(:) - double precision, allocatable :: GammaTot_SM(:) - !------------------------------------------- - end type - - type(dataset), allocatable :: theo(:) + double precision, allocatable :: GammaTot_SM(:) + !------------------------------------------- + end type + + type(dataset), allocatable :: theo(:) - type sqcouplratio + type sqcouplratio double precision, allocatable :: hjss_s(:),hjss_p(:) double precision, allocatable :: hjcc_s(:),hjcc_p(:) double precision, allocatable :: hjbb_s(:),hjbb_p(:) double precision, allocatable :: hjtoptop_s(:),hjtoptop_p(:) ! ToDo: Change name top -> t ! double precision, allocatable :: hjmumu_s(:),hjmumu_p(:) double precision, allocatable :: hjtautau_s(:),hjtautau_p(:) double precision, allocatable :: hjWW(:),hjZZ(:) double precision, allocatable :: hjZga(:) double precision, allocatable :: hjgaga(:),hjgg(:),hjggZ(:) - double precision, allocatable :: hjhiZ(:,:) + double precision, allocatable :: hjhiZ(:,:) end type - - type(sqcouplratio), allocatable :: g2(:) + + type(sqcouplratio), allocatable :: g2(:) ! HB-5: NEW! --> - type couplratio + type couplratio double precision, allocatable :: hjcc_s(:),hjcc_p(:) double precision, allocatable :: hjss_s(:),hjss_p(:) double precision, allocatable :: hjtt_s(:),hjtt_p(:) double precision, allocatable :: hjbb_s(:),hjbb_p(:) double precision, allocatable :: hjmumu_s(:),hjmumu_p(:) double precision, allocatable :: hjtautau_s(:),hjtautau_p(:) double precision, allocatable :: hjWW(:),hjZZ(:) double precision, allocatable :: hjZga(:) double precision, allocatable :: hjgaga(:),hjgg(:) !,hjggZ(:) - double precision, allocatable :: hjhiZ(:,:) + double precision, allocatable :: hjhiZ(:,:) end type ! <--- ! type(couplratio), allocatable :: effC(:) - - - type hadroncolliderextras - !nq_hjWp,nq_hjWm,nq_hj,nq_hjZ are set in allocate_hadroncolliderextras_parts below + + + type hadroncolliderextras + !nq_hjWp,nq_hjWm,nq_hj,nq_hjZ are set in allocate_hadroncolliderextras_parts below double precision, allocatable :: qq_hjWp(:,:) - integer :: nq_hjWp!=2 i.e. (u dbar), (c sbar) e.g. allocate(tR%qq_hjWp(tR%nq_hjWp,np(Hneut))) + integer :: nq_hjWp!=2 i.e. (u dbar), (c sbar) e.g. allocate(tR%qq_hjWp(tR%nq_hjWp,np(Hneut))) double precision, allocatable :: qq_hjWm(:,:) - integer :: nq_hjWm!=2 i.e. (ubar d), (cbar s) - + integer :: nq_hjWm!=2 i.e. (ubar d), (cbar s) + double precision, allocatable :: gg_hj(:) double precision, allocatable :: qq_hj(:,:) - integer :: nq_hj!=5 i.e.(d dbar), (u ubar), (s sbar), (c cbar), (b bbar) - + integer :: nq_hj!=5 i.e.(d dbar), (u ubar), (s sbar), (c cbar), (b bbar) + double precision, allocatable :: gg_hjZ(:) double precision, allocatable :: qq_hjZ(:,:) integer :: nq_hjZ!=5 i.e.(d dbar), (u ubar), (s sbar), (c cbar), (b bbar) - + double precision, allocatable :: bg_hjb(:) end type - + type(hadroncolliderextras), allocatable :: partR(:) - !------------------------------------------- - + !------------------------------------------- + !associated with 'output'-------------------- integer rep - - type results - integer, allocatable :: chan(:) + + type results + integer, allocatable :: chan(:) double precision, allocatable :: obsratio(:) - double precision, allocatable :: predratio(:) + double precision, allocatable :: predratio(:) double precision, allocatable :: sfactor(:) double precision, allocatable :: axis_i(:) double precision, allocatable :: axis_j(:) integer, allocatable :: allowed95(:) - integer, allocatable :: ncombined(:) - character(LEN=4), allocatable :: channelselection(:) - end type - + integer, allocatable :: ncombined(:) + character(LEN=4), allocatable :: channelselection(:) + end type + type(results), allocatable :: res(:) !--new in HB-4: type fullresults integer :: chan = 0 integer :: ncombined = 0 integer :: allowed95 = 1 double precision :: obsratio = 0.0D0 end type - + type(fullresults), allocatable :: fullHBres(:) integer, allocatable :: allocate_if_stats_required(:) - -! Needed to store relevant information on next-to-most sensitive channels: + +! Needed to store relevant information on next-to-most sensitive channels: integer,allocatable :: HBresult_all(:,:), chan_all(:,:), ncombined_all(:,:) - double precision,allocatable :: obsratio_all(:,:),predratio_all(:,:) + double precision,allocatable :: obsratio_all(:,:),predratio_all(:,:) !------------------------------------------- - + contains subroutine HiggsBounds_info implicit none write(*,*) write(*,*)"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" write(*,*)"~ ~" write(*,*)"~ HiggsBounds "//adjustl(vers)//" ~" write(*,*)"~ ~" write(*,*)"~ Philip Bechtle, Daniel Dercks, Sven Heinemeyer, ~" write(*,*)"~ Tobias Klingl, Tim Stefaniak, Georg Weiglein ~" write(*,*)"~ ~" write(*,*)"~ arXiv:0811.4169, arXiv:1102.1898, ~" write(*,*)"~ arXiv:1301.2345, arXiv:1311.0055 ~" - write(*,*)"~ arXiv:1507.06706, ~" + write(*,*)"~ arXiv:1507.06706, ~" write(*,*)"~ http://higgsbounds.hepforge.org ~" write(*,*)"~ ~" write(*,*)"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" write(*,*) write(*,*)"HiggsBounds collects together results from " write(*,*) write(*,*)" * the LEP collaborations and LEP Higgs Working Group" write(*,*)" * the CDF and D0 Collaborations" write(*,*)" * the ATLAS and CMS Collaborations" write(*,*)" * the program HDECAY (arXiv:hep-ph/9704448)" write(*,*)" * the program VH@NNLO" write(*,*)" (arXiv:1210.5347,arXiv:1802.04817)" write(*,*)" * TeV4LHC Higgs Working Group report" write(*,*)" (see arXiv:hep-ph/0612172 and refs. therein)" write(*,*)" * LHC Higgs Cross Section Working Group" write(*,*)" (arXiv:1101.0593, arXiv:1201.3084, arXiv:1307.1347," write(*,*)" arXiv:1610.07922 and refs. therein, including the " write(*,*)" gluon fusion N3LO prediction (arXiv:1602.00695).)" - - + + end subroutine HiggsBounds_info - !********************************************************** + !********************************************************** function div(a,b,divlimit,div0res) !********************************************************** ! be careful about using this - not a mathematical limit - double precision :: div + double precision :: div !--------------------------------------input double precision :: a,b,divlimit,div0res !-----------------------------------internal double precision :: small1,small2 - !------------------------------------------- - small1 = 1.0D-28 - small2 = 1.0D-20 - + !------------------------------------------- + small1 = 1.0D-28 + small2 = 1.0D-20 + if(abs(b).gt.small1)then div=a/b - elseif(abs(a).lt.small2)then - div=divlimit - if(div.lt.0)stop 'error type divA (see function div in module usefulbits)' - else + elseif(abs(a).lt.small2)then + div=divlimit + if(div.lt.0)stop 'error type divA (see function div in module usefulbits)' + else div=div0res - if(div.lt.0)stop 'error type divB (see function div in module usefulbits)' + if(div.lt.0)stop 'error type divB (see function div in module usefulbits)' endif - + end function !--TESTING - !********************************************************** + !********************************************************** subroutine iselementofarray(value, array, output) !********************************************************** implicit none - !-------------------------------------input and output + !-------------------------------------input and output double precision, intent(in) :: value double precision, allocatable, dimension(:), intent(in) :: array integer, intent(out) :: output - !---------------------------------------------internal + !---------------------------------------------internal integer :: i double precision :: small !----------------------------------------------------- small = 1.0D-20 output = -1 if(allocated(array)) then do i=lbound(array,dim=1),ubound(array,dim=1) if(abs(value-array(i)).le.small) output = 1 enddo - else + else stop 'error: Passing an unallocated array to subroutine iselementofarray!' endif end subroutine iselementofarray !---- - !********************************************************** + !********************************************************** subroutine fill_pdesc !********************************************************** integer :: x if(ubound(np,dim=1).ne.4)stop 'error: have made a mistake in subroutine fill_pdesc (1)' x=0 allocate( pdesc( ubound(np,dim=1) ) ) x=x+1 pdesc(x)%short='h' pdesc(x)%long ='neutral Higgs boson' x=x+1 pdesc(x)%short='hplus' pdesc(x)%long ='charged Higgs boson' x=x+1 pdesc(x)%short='N' pdesc(x)%long ='neutralino' x=x+1 pdesc(x)%short='C' pdesc(x)%long ='chargino' if(x.ne.ubound(np,dim=1))stop 'error: have made a mistake in subroutine fill_pdesc (2)' end subroutine fill_pdesc - !********************************************************** + !********************************************************** subroutine allocate_dataset_parts(d,n_addit) !********************************************************** implicit none - !------------------------------------------- + !------------------------------------------- type(dataset) :: d(:) - !--------------------------------------input + !--------------------------------------input integer, intent(in) :: n_addit !-----------------------------------internal integer :: n_add,x,y - integer, allocatable :: np_t(:) - !------------------------------------------- + integer, allocatable :: np_t(:) + !------------------------------------------- allocate(np_t(lbound(np,dim=1):ubound(np,dim=1))) np_t=np do x=lbound(np_t,dim=1),ubound(np_t,dim=1) if(np(x)>0)then np_t(x)=np(x) elseif(np(x).eq.0)then np_t(x)=1 else write(*,*)'np=',np stop 'error in subroutine allocate_dataset_parts (1)' endif enddo if(n_addit>0)then n_add=n_addit elseif(n_addit.eq.0)then n_add=1 else stop 'error in subroutine allocate_dataset_parts (2)' endif do x=lbound(d,dim=1),ubound(d,dim=1) - - allocate(d(x)%additional(n_add)) - + + allocate(d(x)%additional(n_add)) + allocate(d(x)%particle( ubound(np_t,dim=1) )) do y= 1,ubound(np_t,dim=1) allocate(d(x)%particle(y)%M( np_t(y) )) allocate(d(x)%particle(y)%Mc( np_t(y) )) - allocate(d(x)%particle(y)%GammaTot( np_t(y) )) + allocate(d(x)%particle(y)%GammaTot( np_t(y) )) allocate(d(x)%particle(y)%dM( np_t(y) )) allocate(d(x)%particle(y)%dMh( np_t(y) )) enddo allocate(d(x)%lep%XS_hjZ_ratio( np_t(Hneut) )) allocate(d(x)%lep%XS_bbhj_ratio( np_t(Hneut) )) allocate(d(x)%lep%XS_tautauhj_ratio( np_t(Hneut) )) allocate(d(x)%lep%XS_hjhi_ratio( np_t(Hneut),np_t(Hneut) )) allocate(d(x)%lep%XS_HpjHmj_ratio( np_t(Hplus) )) allocate(d(x)%lep%XS_CpjCmj( np_t(Chiplus) )) allocate(d(x)%lep%XS_NjNi( np_t(Chineut),np_t(Chineut) )) allocate(d(x)%BR_hjss( np_t(Hneut) )) allocate(d(x)%BR_hjcc( np_t(Hneut) )) allocate(d(x)%BR_hjbb( np_t(Hneut) )) allocate(d(x)%BR_hjtt( np_t(Hneut) )) - allocate(d(x)%BR_hjmumu( np_t(Hneut) )) - allocate(d(x)%BR_hjtautau( np_t(Hneut) )) - + allocate(d(x)%BR_hjmumu( np_t(Hneut) )) + allocate(d(x)%BR_hjtautau( np_t(Hneut) )) + allocate(d(x)%BR_hkhjhi( np_t(Hneut),np_t(Hneut),np_t(Hneut) )) allocate(d(x)%BR_hjhihi( np_t(Hneut),np_t(Hneut) )) allocate(d(x)%BR_hjhiZ( np_t(Hneut),np_t(Hneut) )) - allocate(d(x)%BR_hjHpiW( np_t(Hneut),np_t(Hplus) )) + allocate(d(x)%BR_hjHpiW( np_t(Hneut),np_t(Hplus) )) allocate(d(x)%BR_hjWW( np_t(Hneut) )) allocate(d(x)%BR_hjZZ( np_t(Hneut) )) allocate(d(x)%BR_hjZga( np_t(Hneut) )) allocate(d(x)%BR_hjgaga( np_t(Hneut) )) allocate(d(x)%BR_hjgg( np_t(Hneut) )) allocate(d(x)%BR_hjinvisible( np_t(Hneut) )) allocate(d(x)%BR_hjemu( np_t(Hneut) )) allocate(d(x)%BR_hjetau( np_t(Hneut) )) - allocate(d(x)%BR_hjmutau( np_t(Hneut) )) + allocate(d(x)%BR_hjmutau( np_t(Hneut) )) allocate(d(x)%BR_tHpjb( np_t(Hplus) )) allocate(d(x)%BR_Hpjcs( np_t(Hplus) )) allocate(d(x)%BR_Hpjcb( np_t(Hplus) )) allocate(d(x)%BR_Hpjtaunu( np_t(Hplus) )) allocate(d(x)%BR_Hpjtb( np_t(Hplus) )) allocate(d(x)%BR_HpjWZ( np_t(Hplus) )) - allocate(d(x)%BR_HpjhiW( np_t(Hplus),np_t(Hneut) )) + allocate(d(x)%BR_HpjhiW( np_t(Hplus),np_t(Hneut) )) allocate(d(x)%BR_CjqqNi( np_t(Chiplus),np_t(Chineut) )) allocate(d(x)%BR_CjlnuNi( np_t(Chiplus),np_t(Chineut) )) allocate(d(x)%BR_CjWNi( np_t(Chiplus),np_t(Chineut) )) allocate(d(x)%BR_NjqqNi( np_t(Chineut),np_t(Chineut) )) - allocate(d(x)%BR_NjZNi( np_t(Chineut),np_t(Chineut) )) + allocate(d(x)%BR_NjZNi( np_t(Chineut),np_t(Chineut) )) allocate(d(x)%tev%XS_hjb_ratio( np_t(Hneut) )) allocate(d(x)%tev%XS_tthj_ratio( np_t(Hneut) )) allocate(d(x)%tev%XS_vbf_ratio( np_t(Hneut) )) - allocate(d(x)%tev%XS_hjZ_ratio( np_t(Hneut) )) - allocate(d(x)%tev%XS_gg_hjZ_ratio( np_t(Hneut) )) - allocate(d(x)%tev%XS_qq_hjZ_ratio( np_t(Hneut) )) - allocate(d(x)%tev%XS_hjW_ratio( np_t(Hneut) )) + allocate(d(x)%tev%XS_hjZ_ratio( np_t(Hneut) )) + allocate(d(x)%tev%XS_gg_hjZ_ratio( np_t(Hneut) )) + allocate(d(x)%tev%XS_qq_hjZ_ratio( np_t(Hneut) )) + allocate(d(x)%tev%XS_hjW_ratio( np_t(Hneut) )) allocate(d(x)%tev%XS_hj_ratio( np_t(Hneut) )) allocate(d(x)%tev%XS_gg_hj_ratio( np_t(Hneut) )) - allocate(d(x)%tev%XS_bb_hj_ratio( np_t(Hneut) )) + allocate(d(x)%tev%XS_bb_hj_ratio( np_t(Hneut) )) allocate(d(x)%tev%XS_thj_tchan_ratio( np_t(Hneut) )) allocate(d(x)%tev%XS_thj_schan_ratio( np_t(Hneut) )) - allocate(d(x)%tev%XS_hjhi( np_t(Hneut),np_t(Hneut) )) - allocate(d(x)%tev%XS_vbf_Hpj( np_t(Hplus) )) - allocate(d(x)%tev%XS_Hpjtb( np_t(Hplus) )) - allocate(d(x)%tev%XS_Hpjcb( np_t(Hplus) )) - allocate(d(x)%tev%XS_Hpjbjet( np_t(Hplus) )) - allocate(d(x)%tev%XS_Hpjcjet( np_t(Hplus) )) - allocate(d(x)%tev%XS_Hpjjetjet( np_t(Hplus) )) - allocate(d(x)%tev%XS_HpjW( np_t(Hplus) )) - allocate(d(x)%tev%XS_HpjZ( np_t(Hplus) )) + allocate(d(x)%tev%XS_hjhi( np_t(Hneut),np_t(Hneut) )) + allocate(d(x)%tev%XS_vbf_Hpmj( np_t(Hplus) )) + allocate(d(x)%tev%XS_Hpmjtb( np_t(Hplus) )) + allocate(d(x)%tev%XS_Hpmjcb( np_t(Hplus) )) + allocate(d(x)%tev%XS_Hpmjbjet( np_t(Hplus) )) + allocate(d(x)%tev%XS_Hpmjcjet( np_t(Hplus) )) + allocate(d(x)%tev%XS_Hpmjjetjet( np_t(Hplus) )) + allocate(d(x)%tev%XS_HpmjW( np_t(Hplus) )) + allocate(d(x)%tev%XS_HpmjZ( np_t(Hplus) )) allocate(d(x)%tev%XS_HpjHmj( np_t(Hplus) )) - allocate(d(x)%tev%XS_Hpjhi( np_t(Hplus), np_t(Hneut) )) + allocate(d(x)%tev%XS_Hpmjhi( np_t(Hplus), np_t(Hneut) )) allocate(d(x)%tev%channelrates(np_t(Hneut),Nprod,Ndecay)) - allocate(d(x)%tev%channelrates_tmp(np_t(Hneut),Nprod,Ndecay)) + allocate(d(x)%tev%channelrates_tmp(np_t(Hneut),Nprod,Ndecay)) allocate(d(x)%lhc7%XS_hjb_ratio( np_t(Hneut) )) allocate(d(x)%lhc7%XS_tthj_ratio( np_t(Hneut) )) - allocate(d(x)%lhc7%XS_vbf_ratio( np_t(Hneut) )) - allocate(d(x)%lhc7%XS_hjZ_ratio( np_t(Hneut) )) + allocate(d(x)%lhc7%XS_vbf_ratio( np_t(Hneut) )) + allocate(d(x)%lhc7%XS_hjZ_ratio( np_t(Hneut) )) allocate(d(x)%lhc7%XS_gg_hjZ_ratio( np_t(Hneut) )) - allocate(d(x)%lhc7%XS_qq_hjZ_ratio( np_t(Hneut) )) - allocate(d(x)%lhc7%XS_hjW_ratio( np_t(Hneut) )) + allocate(d(x)%lhc7%XS_qq_hjZ_ratio( np_t(Hneut) )) + allocate(d(x)%lhc7%XS_hjW_ratio( np_t(Hneut) )) allocate(d(x)%lhc7%XS_hj_ratio( np_t(Hneut) )) allocate(d(x)%lhc7%XS_gg_hj_ratio( np_t(Hneut) )) - allocate(d(x)%lhc7%XS_bb_hj_ratio( np_t(Hneut) )) + allocate(d(x)%lhc7%XS_bb_hj_ratio( np_t(Hneut) )) allocate(d(x)%lhc7%XS_thj_tchan_ratio( np_t(Hneut) )) allocate(d(x)%lhc7%XS_thj_schan_ratio( np_t(Hneut) )) - allocate(d(x)%lhc7%XS_hjhi( np_t(Hneut),np_t(Hneut) )) - allocate(d(x)%lhc7%XS_vbf_Hpj( np_t(Hplus) )) - allocate(d(x)%lhc7%XS_Hpjtb( np_t(Hplus) )) - allocate(d(x)%lhc7%XS_Hpjcb( np_t(Hplus) )) - allocate(d(x)%lhc7%XS_Hpjbjet( np_t(Hplus) )) - allocate(d(x)%lhc7%XS_Hpjcjet( np_t(Hplus) )) - allocate(d(x)%lhc7%XS_Hpjjetjet( np_t(Hplus) )) - allocate(d(x)%lhc7%XS_HpjW( np_t(Hplus) )) - allocate(d(x)%lhc7%XS_HpjZ( np_t(Hplus) )) + allocate(d(x)%lhc7%XS_hjhi( np_t(Hneut),np_t(Hneut) )) + allocate(d(x)%lhc7%XS_vbf_Hpmj( np_t(Hplus) )) + allocate(d(x)%lhc7%XS_Hpmjtb( np_t(Hplus) )) + allocate(d(x)%lhc7%XS_Hpmjcb( np_t(Hplus) )) + allocate(d(x)%lhc7%XS_Hpmjbjet( np_t(Hplus) )) + allocate(d(x)%lhc7%XS_Hpmjcjet( np_t(Hplus) )) + allocate(d(x)%lhc7%XS_Hpmjjetjet( np_t(Hplus) )) + allocate(d(x)%lhc7%XS_HpmjW( np_t(Hplus) )) + allocate(d(x)%lhc7%XS_HpmjZ( np_t(Hplus) )) allocate(d(x)%lhc7%XS_HpjHmj( np_t(Hplus) )) - allocate(d(x)%lhc7%XS_Hpjhi( np_t(Hplus), np_t(Hneut) )) - allocate(d(x)%lhc7%channelrates(np_t(Hneut),Nprod,Ndecay)) - allocate(d(x)%lhc7%channelrates_tmp(np_t(Hneut),Nprod,Ndecay)) + allocate(d(x)%lhc7%XS_Hpmjhi( np_t(Hplus), np_t(Hneut) )) + allocate(d(x)%lhc7%channelrates(np_t(Hneut),Nprod,Ndecay)) + allocate(d(x)%lhc7%channelrates_tmp(np_t(Hneut),Nprod,Ndecay)) allocate(d(x)%lhc8%XS_hjb_ratio( np_t(Hneut) )) allocate(d(x)%lhc8%XS_tthj_ratio( np_t(Hneut) )) - allocate(d(x)%lhc8%XS_vbf_ratio( np_t(Hneut) )) - allocate(d(x)%lhc8%XS_hjZ_ratio( np_t(Hneut) )) + allocate(d(x)%lhc8%XS_vbf_ratio( np_t(Hneut) )) + allocate(d(x)%lhc8%XS_hjZ_ratio( np_t(Hneut) )) allocate(d(x)%lhc8%XS_gg_hjZ_ratio( np_t(Hneut) )) - allocate(d(x)%lhc8%XS_qq_hjZ_ratio( np_t(Hneut) )) - allocate(d(x)%lhc8%XS_hjW_ratio( np_t(Hneut) )) + allocate(d(x)%lhc8%XS_qq_hjZ_ratio( np_t(Hneut) )) + allocate(d(x)%lhc8%XS_hjW_ratio( np_t(Hneut) )) allocate(d(x)%lhc8%XS_hj_ratio( np_t(Hneut) )) allocate(d(x)%lhc8%XS_gg_hj_ratio( np_t(Hneut) )) - allocate(d(x)%lhc8%XS_bb_hj_ratio( np_t(Hneut) )) + allocate(d(x)%lhc8%XS_bb_hj_ratio( np_t(Hneut) )) allocate(d(x)%lhc8%XS_thj_tchan_ratio( np_t(Hneut) )) allocate(d(x)%lhc8%XS_thj_schan_ratio( np_t(Hneut) )) - allocate(d(x)%lhc8%XS_hjhi( np_t(Hneut),np_t(Hneut) )) - allocate(d(x)%lhc8%XS_vbf_Hpj( np_t(Hplus) )) - allocate(d(x)%lhc8%XS_Hpjtb( np_t(Hplus) )) - allocate(d(x)%lhc8%XS_Hpjcb( np_t(Hplus) )) - allocate(d(x)%lhc8%XS_Hpjbjet( np_t(Hplus) )) - allocate(d(x)%lhc8%XS_Hpjcjet( np_t(Hplus) )) - allocate(d(x)%lhc8%XS_Hpjjetjet( np_t(Hplus) )) - allocate(d(x)%lhc8%XS_HpjW( np_t(Hplus) )) - allocate(d(x)%lhc8%XS_HpjZ( np_t(Hplus) )) + allocate(d(x)%lhc8%XS_hjhi( np_t(Hneut),np_t(Hneut) )) + allocate(d(x)%lhc8%XS_vbf_Hpmj( np_t(Hplus) )) + allocate(d(x)%lhc8%XS_Hpmjtb( np_t(Hplus) )) + allocate(d(x)%lhc8%XS_Hpmjcb( np_t(Hplus) )) + allocate(d(x)%lhc8%XS_Hpmjbjet( np_t(Hplus) )) + allocate(d(x)%lhc8%XS_Hpmjcjet( np_t(Hplus) )) + allocate(d(x)%lhc8%XS_Hpmjjetjet( np_t(Hplus) )) + allocate(d(x)%lhc8%XS_HpmjW( np_t(Hplus) )) + allocate(d(x)%lhc8%XS_HpmjZ( np_t(Hplus) )) allocate(d(x)%lhc8%XS_HpjHmj( np_t(Hplus) )) - allocate(d(x)%lhc8%XS_Hpjhi( np_t(Hplus), np_t(Hneut) )) + allocate(d(x)%lhc8%XS_Hpmjhi( np_t(Hplus), np_t(Hneut) )) allocate(d(x)%lhc8%channelrates(np_t(Hneut),Nprod,Ndecay)) - allocate(d(x)%lhc8%channelrates_tmp(np_t(Hneut),Nprod,Ndecay)) - + allocate(d(x)%lhc8%channelrates_tmp(np_t(Hneut),Nprod,Ndecay)) + allocate(d(x)%lhc13%XS_hjb_ratio( np_t(Hneut) )) allocate(d(x)%lhc13%XS_tthj_ratio( np_t(Hneut) )) - allocate(d(x)%lhc13%XS_vbf_ratio( np_t(Hneut) )) - allocate(d(x)%lhc13%XS_hjZ_ratio( np_t(Hneut) )) + allocate(d(x)%lhc13%XS_vbf_ratio( np_t(Hneut) )) + allocate(d(x)%lhc13%XS_hjZ_ratio( np_t(Hneut) )) allocate(d(x)%lhc13%XS_gg_hjZ_ratio( np_t(Hneut) )) - allocate(d(x)%lhc13%XS_qq_hjZ_ratio( np_t(Hneut) )) - allocate(d(x)%lhc13%XS_hjW_ratio( np_t(Hneut) )) + allocate(d(x)%lhc13%XS_qq_hjZ_ratio( np_t(Hneut) )) + allocate(d(x)%lhc13%XS_hjW_ratio( np_t(Hneut) )) allocate(d(x)%lhc13%XS_hj_ratio( np_t(Hneut) )) allocate(d(x)%lhc13%XS_gg_hj_ratio( np_t(Hneut) )) - allocate(d(x)%lhc13%XS_bb_hj_ratio( np_t(Hneut) )) + allocate(d(x)%lhc13%XS_bb_hj_ratio( np_t(Hneut) )) allocate(d(x)%lhc13%XS_thj_tchan_ratio( np_t(Hneut) )) allocate(d(x)%lhc13%XS_thj_schan_ratio( np_t(Hneut) )) - allocate(d(x)%lhc13%XS_hjhi( np_t(Hneut),np_t(Hneut) )) - allocate(d(x)%lhc13%XS_vbf_Hpj( np_t(Hplus) )) - allocate(d(x)%lhc13%XS_Hpjtb( np_t(Hplus) )) - allocate(d(x)%lhc13%XS_Hpjcb( np_t(Hplus) )) - allocate(d(x)%lhc13%XS_Hpjbjet( np_t(Hplus) )) - allocate(d(x)%lhc13%XS_Hpjcjet( np_t(Hplus) )) - allocate(d(x)%lhc13%XS_Hpjjetjet( np_t(Hplus) )) - allocate(d(x)%lhc13%XS_HpjW( np_t(Hplus) )) - allocate(d(x)%lhc13%XS_HpjZ( np_t(Hplus) )) + allocate(d(x)%lhc13%XS_hjhi( np_t(Hneut),np_t(Hneut) )) + allocate(d(x)%lhc13%XS_vbf_Hpmj( np_t(Hplus) )) + allocate(d(x)%lhc13%XS_Hpmjtb( np_t(Hplus) )) + allocate(d(x)%lhc13%XS_Hpmjcb( np_t(Hplus) )) + allocate(d(x)%lhc13%XS_Hpmjbjet( np_t(Hplus) )) + allocate(d(x)%lhc13%XS_Hpmjcjet( np_t(Hplus) )) + allocate(d(x)%lhc13%XS_Hpmjjetjet( np_t(Hplus) )) + allocate(d(x)%lhc13%XS_HpmjW( np_t(Hplus) )) + allocate(d(x)%lhc13%XS_HpmjZ( np_t(Hplus) )) allocate(d(x)%lhc13%XS_HpjHmj( np_t(Hplus) )) - allocate(d(x)%lhc13%XS_Hpjhi( np_t(Hplus), np_t(Hneut) )) + allocate(d(x)%lhc13%XS_Hpmjhi( np_t(Hplus), np_t(Hneut) )) allocate(d(x)%lhc13%channelrates(np_t(Hneut),Nprod,Ndecay)) - allocate(d(x)%lhc13%channelrates_tmp(np_t(Hneut),Nprod,Ndecay)) + allocate(d(x)%lhc13%channelrates_tmp(np_t(Hneut),Nprod,Ndecay)) allocate(d(x)%CP_value( np_t(Hneut) )) do y= 1,ubound(np_t,dim=1) d(x)%particle(y)%M =-1.0D0 d(x)%particle(y)%Mc =-1.0D0 d(x)%particle(y)%GammaTot =0.0D0 d(x)%particle(y)%dM =0.0D0 d(x)%particle(y)%dMh =0.0D0 enddo d(x)%lep%XS_hjZ_ratio =0.0D0 d(x)%lep%XS_bbhj_ratio =0.0D0 d(x)%lep%XS_tautauhj_ratio =0.0D0 - d(x)%lep%XS_hjhi_ratio =0.0D0 - d(x)%lep%XS_HpjHmj_ratio =0.0D0 - d(x)%lep%XS_CpjCmj =0.0D0 - d(x)%lep%XS_NjNi =0.0D0 + d(x)%lep%XS_hjhi_ratio =0.0D0 + d(x)%lep%XS_HpjHmj_ratio =0.0D0 + d(x)%lep%XS_CpjCmj =0.0D0 + d(x)%lep%XS_NjNi =0.0D0 d(x)%BR_hjss =0.0D0 - d(x)%BR_hjcc =0.0D0 + d(x)%BR_hjcc =0.0D0 d(x)%BR_hjbb =0.0D0 d(x)%BR_hjtt =0.0D0 d(x)%BR_hjmumu =0.0D0 d(x)%BR_hjtautau =0.0D0 d(x)%BR_hjWW =0.0D0 d(x)%BR_hjZZ =0.0D0 d(x)%BR_hjZga =0.0D0 d(x)%BR_hjgaga =0.0D0 d(x)%BR_hjgg =0.0D0 d(x)%BR_hjinvisible =0.0D0 d(x)%BR_hjhihi =0.0D0 - d(x)%BR_hjhiZ =0.0D0 + d(x)%BR_hjhiZ =0.0D0 d(x)%BR_hkhjhi =0.0D0 - d(x)%BR_hjHpiW =0.0D0 - d(x)%BR_hjemu =0.0D0 - d(x)%BR_hjetau =0.0D0 - d(x)%BR_hjmutau =0.0D0 + d(x)%BR_hjHpiW =0.0D0 + d(x)%BR_hjemu =0.0D0 + d(x)%BR_hjetau =0.0D0 + d(x)%BR_hjmutau =0.0D0 d(x)%BR_tWpb =0.0D0 d(x)%BR_tHpjb =0.0D0 d(x)%BR_Hpjcs =0.0D0 d(x)%BR_Hpjcb =0.0D0 d(x)%BR_Hpjtaunu =0.0D0 d(x)%BR_Hpjtb =0.0D0 d(x)%BR_HpjWZ =0.0D0 d(x)%BR_HpjhiW =0.0D0 d(x)%BR_CjqqNi =0.0D0 d(x)%BR_CjlnuNi =0.0D0 d(x)%BR_CjWNi =0.0D0 d(x)%BR_NjqqNi =0.0D0 d(x)%BR_NjZNi =0.0D0 d(x)%tev%XS_hjb_ratio =0.0D0 d(x)%tev%XS_tthj_ratio =0.0D0 d(x)%tev%XS_vbf_ratio =0.0D0 d(x)%tev%XS_hj_ratio =0.0D0 d(x)%tev%XS_hjW_ratio =0.0D0 d(x)%tev%XS_hjZ_ratio =0.0D0 d(x)%tev%XS_gg_hj_ratio = 0.0D0 d(x)%tev%XS_bb_hj_ratio = 0.0D0 d(x)%tev%XS_thj_tchan_ratio = 0.0D0 d(x)%tev%XS_thj_schan_ratio = 0.0D0 - d(x)%tev%XS_hjhi = 0.0D0 - d(x)%tev%XS_vbf_Hpj =0.0D0 - d(x)%tev%XS_Hpjtb =0.0D0 - d(x)%tev%XS_Hpjcb =0.0D0 - d(x)%tev%XS_Hpjbjet =0.0D0 - d(x)%tev%XS_Hpjcjet =0.0D0 - d(x)%tev%XS_Hpjjetjet =0.0D0 - d(x)%tev%XS_HpjW =0.0D0 - d(x)%tev%XS_HpjZ =0.0D0 + d(x)%tev%XS_hjhi = 0.0D0 + d(x)%tev%XS_vbf_Hpmj =0.0D0 + d(x)%tev%XS_Hpmjtb =0.0D0 + d(x)%tev%XS_Hpmjcb =0.0D0 + d(x)%tev%XS_Hpmjbjet =0.0D0 + d(x)%tev%XS_Hpmjcjet =0.0D0 + d(x)%tev%XS_Hpmjjetjet =0.0D0 + d(x)%tev%XS_HpmjW =0.0D0 + d(x)%tev%XS_HpmjZ =0.0D0 d(x)%tev%XS_HpjHmj =0.0D0 - d(x)%tev%XS_Hpjhi =0.0D0 + d(x)%tev%XS_Hpmjhi =0.0D0 d(x)%tev%channelrates = 0.0D0 - d(x)%tev%channelrates_tmp = -1.0D0 + d(x)%tev%channelrates_tmp = -1.0D0 d(x)%lhc7%XS_hjb_ratio =0.0D0 d(x)%lhc7%XS_tthj_ratio =0.0D0 d(x)%lhc7%XS_vbf_ratio =0.0D0 d(x)%lhc7%XS_hj_ratio =0.0D0 d(x)%lhc7%XS_hjW_ratio =0.0D0 d(x)%lhc7%XS_hjZ_ratio =0.0D0 d(x)%lhc7%XS_gg_hj_ratio = 0.0D0 d(x)%lhc7%XS_bb_hj_ratio = 0.0D0 d(x)%lhc7%XS_thj_tchan_ratio = 0.0D0 d(x)%lhc7%XS_thj_schan_ratio = 0.0D0 - d(x)%lhc7%XS_hjhi = 0.0D0 - d(x)%lhc7%XS_vbf_Hpj =0.0D0 - d(x)%lhc7%XS_Hpjtb =0.0D0 - d(x)%lhc7%XS_Hpjcb =0.0D0 - d(x)%lhc7%XS_Hpjbjet =0.0D0 - d(x)%lhc7%XS_Hpjcjet =0.0D0 - d(x)%lhc7%XS_Hpjjetjet =0.0D0 - d(x)%lhc7%XS_HpjW =0.0D0 - d(x)%lhc7%XS_HpjZ =0.0D0 + d(x)%lhc7%XS_hjhi = 0.0D0 + d(x)%lhc7%XS_vbf_Hpmj =0.0D0 + d(x)%lhc7%XS_Hpmjtb =0.0D0 + d(x)%lhc7%XS_Hpmjcb =0.0D0 + d(x)%lhc7%XS_Hpmjbjet =0.0D0 + d(x)%lhc7%XS_Hpmjcjet =0.0D0 + d(x)%lhc7%XS_Hpmjjetjet =0.0D0 + d(x)%lhc7%XS_HpmjW =0.0D0 + d(x)%lhc7%XS_HpmjZ =0.0D0 d(x)%lhc7%XS_HpjHmj =0.0D0 - d(x)%lhc7%XS_Hpjhi =0.0D0 + d(x)%lhc7%XS_Hpmjhi =0.0D0 d(x)%lhc7%channelrates = 0.0D0 - d(x)%lhc7%channelrates_tmp = -1.0D0 - + d(x)%lhc7%channelrates_tmp = -1.0D0 + d(x)%lhc8%XS_hjb_ratio =0.0D0 d(x)%lhc8%XS_tthj_ratio =0.0D0 d(x)%lhc8%XS_vbf_ratio =0.0D0 d(x)%lhc8%XS_hj_ratio =0.0D0 d(x)%lhc8%XS_hjW_ratio =0.0D0 d(x)%lhc8%XS_hjZ_ratio =0.0D0 d(x)%lhc8%XS_gg_hj_ratio = 0.0D0 d(x)%lhc8%XS_bb_hj_ratio = 0.0D0 d(x)%lhc8%XS_thj_tchan_ratio = 0.0D0 d(x)%lhc8%XS_thj_schan_ratio = 0.0D0 - d(x)%lhc8%XS_hjhi = 0.0D0 - d(x)%lhc8%XS_vbf_Hpj =0.0D0 - d(x)%lhc8%XS_Hpjtb =0.0D0 - d(x)%lhc8%XS_Hpjcb =0.0D0 - d(x)%lhc8%XS_Hpjbjet =0.0D0 - d(x)%lhc8%XS_Hpjcjet =0.0D0 - d(x)%lhc8%XS_Hpjjetjet =0.0D0 - d(x)%lhc8%XS_HpjW =0.0D0 - d(x)%lhc8%XS_HpjZ =0.0D0 + d(x)%lhc8%XS_hjhi = 0.0D0 + d(x)%lhc8%XS_vbf_Hpmj =0.0D0 + d(x)%lhc8%XS_Hpmjtb =0.0D0 + d(x)%lhc8%XS_Hpmjcb =0.0D0 + d(x)%lhc8%XS_Hpmjbjet =0.0D0 + d(x)%lhc8%XS_Hpmjcjet =0.0D0 + d(x)%lhc8%XS_Hpmjjetjet =0.0D0 + d(x)%lhc8%XS_HpmjW =0.0D0 + d(x)%lhc8%XS_HpmjZ =0.0D0 d(x)%lhc8%XS_HpjHmj =0.0D0 - d(x)%lhc8%XS_Hpjhi =0.0D0 + d(x)%lhc8%XS_Hpmjhi =0.0D0 d(x)%lhc8%channelrates = 0.0D0 - d(x)%lhc8%channelrates_tmp = -1.0D0 + d(x)%lhc8%channelrates_tmp = -1.0D0 d(x)%lhc13%XS_hjb_ratio =0.0D0 d(x)%lhc13%XS_tthj_ratio =0.0D0 d(x)%lhc13%XS_vbf_ratio =0.0D0 d(x)%lhc13%XS_hj_ratio =0.0D0 d(x)%lhc13%XS_hjW_ratio =0.0D0 d(x)%lhc13%XS_hjZ_ratio =0.0D0 d(x)%lhc13%XS_gg_hj_ratio = 0.0D0 d(x)%lhc13%XS_bb_hj_ratio = 0.0D0 d(x)%lhc13%XS_thj_tchan_ratio = 0.0D0 d(x)%lhc13%XS_thj_schan_ratio = 0.0D0 - d(x)%lhc13%XS_hjhi = 0.0D0 - d(x)%lhc13%XS_vbf_Hpj =0.0D0 - d(x)%lhc13%XS_Hpjtb =0.0D0 - d(x)%lhc13%XS_Hpjcb =0.0D0 - d(x)%lhc13%XS_Hpjbjet =0.0D0 - d(x)%lhc13%XS_Hpjcjet =0.0D0 - d(x)%lhc13%XS_Hpjjetjet =0.0D0 - d(x)%lhc13%XS_HpjW =0.0D0 - d(x)%lhc13%XS_HpjZ =0.0D0 + d(x)%lhc13%XS_hjhi = 0.0D0 + d(x)%lhc13%XS_vbf_Hpmj =0.0D0 + d(x)%lhc13%XS_Hpmjtb =0.0D0 + d(x)%lhc13%XS_Hpmjcb =0.0D0 + d(x)%lhc13%XS_Hpmjbjet =0.0D0 + d(x)%lhc13%XS_Hpmjcjet =0.0D0 + d(x)%lhc13%XS_Hpmjjetjet =0.0D0 + d(x)%lhc13%XS_HpmjW =0.0D0 + d(x)%lhc13%XS_HpmjZ =0.0D0 d(x)%lhc13%XS_HpjHmj =0.0D0 - d(x)%lhc13%XS_Hpjhi =0.0D0 - d(x)%lhc13%channelrates = 0.0D0 - d(x)%lhc13%channelrates_tmp = -1.0D0 - + d(x)%lhc13%XS_Hpmjhi =0.0D0 + d(x)%lhc13%channelrates = 0.0D0 + d(x)%lhc13%channelrates_tmp = -1.0D0 + d(x)%additional =0.0D0 - d(x)%CP_value=0 + d(x)%CP_value=0 enddo select case(whichanalyses) case('onlyH','LandH','onlyP','list ') do x=lbound(d,dim=1),ubound(d,dim=1) allocate(d(x)%tev%XS_HZ_SM( np_t(Hneut) )) allocate(d(x)%tev%XS_gg_HZ_SM( np_t(Hneut) )) allocate(d(x)%tev%XS_qq_HZ_SM( np_t(Hneut) )) allocate(d(x)%tev%XS_HW_SM( np_t(Hneut) )) - allocate(d(x)%tev%XS_H_SM( np_t(Hneut) )) - allocate(d(x)%tev%XS_ttH_SM( np_t(Hneut) )) + allocate(d(x)%tev%XS_H_SM( np_t(Hneut) )) + allocate(d(x)%tev%XS_ttH_SM( np_t(Hneut) )) allocate(d(x)%tev%XS_vbf_SM( np_t(Hneut) )) - allocate(d(x)%tev%XS_gg_H_SM( np_t(Hneut) )) + allocate(d(x)%tev%XS_gg_H_SM( np_t(Hneut) )) allocate(d(x)%tev%XS_bb_H_SM( np_t(Hneut) )) allocate(d(x)%tev%XS_tH_tchan_SM( np_t(Hneut) )) allocate(d(x)%tev%XS_tH_schan_SM( np_t(Hneut) )) allocate(d(x)%tev%channelrates_SM(np_t(Hneut),Nprod,Ndecay)) - - allocate(d(x)%tev%XS_Hb_SM( np_t(Hneut) )) - allocate(d(x)%tev%XS_Hb_c1_SM( np_t(Hneut) )) - allocate(d(x)%tev%XS_Hb_c2_SM( np_t(Hneut) )) + + allocate(d(x)%tev%XS_Hb_SM( np_t(Hneut) )) + allocate(d(x)%tev%XS_Hb_c1_SM( np_t(Hneut) )) + allocate(d(x)%tev%XS_Hb_c2_SM( np_t(Hneut) )) allocate(d(x)%tev%XS_Hb_c3_SM( np_t(Hneut) )) allocate(d(x)%tev%XS_Hb_c4_SM( np_t(Hneut) )) - + allocate(d(x)%lhc7%XS_HZ_SM( np_t(Hneut) )) allocate(d(x)%lhc7%XS_gg_HZ_SM( np_t(Hneut) )) allocate(d(x)%lhc7%XS_qq_HZ_SM( np_t(Hneut) )) allocate(d(x)%lhc7%XS_HW_SM( np_t(Hneut) )) - allocate(d(x)%lhc7%XS_H_SM( np_t(Hneut) )) - allocate(d(x)%lhc7%XS_ttH_SM( np_t(Hneut) )) + allocate(d(x)%lhc7%XS_H_SM( np_t(Hneut) )) + allocate(d(x)%lhc7%XS_ttH_SM( np_t(Hneut) )) allocate(d(x)%lhc7%XS_vbf_SM( np_t(Hneut) )) - allocate(d(x)%lhc7%XS_gg_H_SM( np_t(Hneut) )) + allocate(d(x)%lhc7%XS_gg_H_SM( np_t(Hneut) )) allocate(d(x)%lhc7%XS_bb_H_SM( np_t(Hneut) )) allocate(d(x)%lhc7%XS_tH_tchan_SM( np_t(Hneut) )) allocate(d(x)%lhc7%XS_tH_schan_SM( np_t(Hneut) )) allocate(d(x)%lhc7%channelrates_SM(np_t(Hneut),Nprod,Ndecay)) - - allocate(d(x)%lhc7%XS_Hb_SM( np_t(Hneut) )) -! allocate(d(x)%lhc7%XS_Hb_c1_SM( np_t(Hneut) )) -! allocate(d(x)%lhc7%XS_Hb_c2_SM( np_t(Hneut) )) -! allocate(d(x)%lhc7%XS_Hb_c3_SM( np_t(Hneut) )) + + allocate(d(x)%lhc7%XS_Hb_SM( np_t(Hneut) )) +! allocate(d(x)%lhc7%XS_Hb_c1_SM( np_t(Hneut) )) +! allocate(d(x)%lhc7%XS_Hb_c2_SM( np_t(Hneut) )) +! allocate(d(x)%lhc7%XS_Hb_c3_SM( np_t(Hneut) )) allocate(d(x)%lhc8%XS_HZ_SM( np_t(Hneut) )) allocate(d(x)%lhc8%XS_gg_HZ_SM( np_t(Hneut) )) allocate(d(x)%lhc8%XS_qq_HZ_SM( np_t(Hneut) )) allocate(d(x)%lhc8%XS_HW_SM( np_t(Hneut) )) - allocate(d(x)%lhc8%XS_H_SM( np_t(Hneut) )) - allocate(d(x)%lhc8%XS_ttH_SM( np_t(Hneut) )) + allocate(d(x)%lhc8%XS_H_SM( np_t(Hneut) )) + allocate(d(x)%lhc8%XS_ttH_SM( np_t(Hneut) )) allocate(d(x)%lhc8%XS_vbf_SM( np_t(Hneut) )) - allocate(d(x)%lhc8%XS_gg_H_SM( np_t(Hneut) )) + allocate(d(x)%lhc8%XS_gg_H_SM( np_t(Hneut) )) allocate(d(x)%lhc8%XS_bb_H_SM( np_t(Hneut) )) allocate(d(x)%lhc8%XS_tH_tchan_SM( np_t(Hneut) )) allocate(d(x)%lhc8%XS_tH_schan_SM( np_t(Hneut) )) allocate(d(x)%lhc8%channelrates_SM(np_t(Hneut),Nprod,Ndecay)) - - allocate(d(x)%lhc8%XS_Hb_SM( np_t(Hneut) )) -! allocate(d(x)%lhc8%XS_Hb_c1_SM( np_t(Hneut) )) -! allocate(d(x)%lhc8%XS_Hb_c2_SM( np_t(Hneut) )) -! allocate(d(x)%lhc8%XS_Hb_c3_SM( np_t(Hneut) )) + + allocate(d(x)%lhc8%XS_Hb_SM( np_t(Hneut) )) +! allocate(d(x)%lhc8%XS_Hb_c1_SM( np_t(Hneut) )) +! allocate(d(x)%lhc8%XS_Hb_c2_SM( np_t(Hneut) )) +! allocate(d(x)%lhc8%XS_Hb_c3_SM( np_t(Hneut) )) allocate(d(x)%lhc13%XS_HZ_SM( np_t(Hneut) )) allocate(d(x)%lhc13%XS_gg_HZ_SM( np_t(Hneut) )) allocate(d(x)%lhc13%XS_qq_HZ_SM( np_t(Hneut) )) allocate(d(x)%lhc13%XS_HW_SM( np_t(Hneut) )) - allocate(d(x)%lhc13%XS_H_SM( np_t(Hneut) )) - allocate(d(x)%lhc13%XS_ttH_SM( np_t(Hneut) )) + allocate(d(x)%lhc13%XS_H_SM( np_t(Hneut) )) + allocate(d(x)%lhc13%XS_ttH_SM( np_t(Hneut) )) allocate(d(x)%lhc13%XS_vbf_SM( np_t(Hneut) )) - allocate(d(x)%lhc13%XS_gg_H_SM( np_t(Hneut) )) + allocate(d(x)%lhc13%XS_gg_H_SM( np_t(Hneut) )) allocate(d(x)%lhc13%XS_bb_H_SM( np_t(Hneut) )) allocate(d(x)%lhc13%XS_tH_tchan_SM( np_t(Hneut) )) - allocate(d(x)%lhc13%XS_tH_schan_SM( np_t(Hneut) )) - allocate(d(x)%lhc13%channelrates_SM(np_t(Hneut),Nprod,Ndecay)) -! allocate(d(x)%lhc8%XS_Hb_SM( np_t(Hneut) )) - - allocate(d(x)%BR_Hbb_SM( np_t(Hneut) )) - allocate(d(x)%BR_Hcc_SM( np_t(Hneut) )) - allocate(d(x)%BR_Hss_SM( np_t(Hneut) )) - allocate(d(x)%BR_Htt_SM( np_t(Hneut) )) + allocate(d(x)%lhc13%XS_tH_schan_SM( np_t(Hneut) )) + allocate(d(x)%lhc13%channelrates_SM(np_t(Hneut),Nprod,Ndecay)) +! allocate(d(x)%lhc8%XS_Hb_SM( np_t(Hneut) )) + + allocate(d(x)%BR_Hbb_SM( np_t(Hneut) )) + allocate(d(x)%BR_Hcc_SM( np_t(Hneut) )) + allocate(d(x)%BR_Hss_SM( np_t(Hneut) )) + allocate(d(x)%BR_Htt_SM( np_t(Hneut) )) allocate(d(x)%BR_Hmumu_SM( np_t(Hneut) )) - allocate(d(x)%BR_Htautau_SM( np_t(Hneut) )) - allocate(d(x)%BR_HWW_SM( np_t(Hneut) )) - allocate(d(x)%BR_HZZ_SM( np_t(Hneut) )) - allocate(d(x)%BR_HZga_SM( np_t(Hneut) )) - allocate(d(x)%BR_Hgaga_SM( np_t(Hneut) )) - allocate(d(x)%BR_Hgg_SM( np_t(Hneut) )) - allocate(d(x)%BR_Hjets_SM( np_t(Hneut) )) + allocate(d(x)%BR_Htautau_SM( np_t(Hneut) )) + allocate(d(x)%BR_HWW_SM( np_t(Hneut) )) + allocate(d(x)%BR_HZZ_SM( np_t(Hneut) )) + allocate(d(x)%BR_HZga_SM( np_t(Hneut) )) + allocate(d(x)%BR_Hgaga_SM( np_t(Hneut) )) + allocate(d(x)%BR_Hgg_SM( np_t(Hneut) )) + allocate(d(x)%BR_Hjets_SM( np_t(Hneut) )) allocate(d(x)%GammaTot_SM( np_t(Hneut) )) enddo case('onlyL') case default stop 'error in allocate_dataset_parts (3)' end select deallocate(np_t) end subroutine allocate_dataset_parts - !********************************************************** + !********************************************************** subroutine allocate_sqcouplratio_parts(gsq) ! to use this, gsq must be an array - !********************************************************** + !********************************************************** implicit none - !------------------------------------------- + !------------------------------------------- type(sqcouplratio) :: gsq(:) !-----------------------------------internal integer :: x integer :: nHiggsneut - !------------------------------------------- - + !------------------------------------------- + if(np(Hneut)>0)then nHiggsneut=np(Hneut) elseif(np(Hneut).eq.0)then nHiggsneut=1 else stop 'error in subroutine allocate_sqcouplratio_parts (1)' endif - do x=lbound(gsq,dim=1),ubound(gsq,dim=1) + do x=lbound(gsq,dim=1),ubound(gsq,dim=1) allocate(gsq(x)%hjss_s(nHiggsneut) ,gsq(x)%hjss_p(nHiggsneut)) allocate(gsq(x)%hjcc_s(nHiggsneut) ,gsq(x)%hjcc_p(nHiggsneut)) allocate(gsq(x)%hjbb_s(nHiggsneut) ,gsq(x)%hjbb_p(nHiggsneut)) allocate(gsq(x)%hjtoptop_s(nHiggsneut),gsq(x)%hjtoptop_p(nHiggsneut)) allocate(gsq(x)%hjmumu_s(nHiggsneut) ,gsq(x)%hjmumu_p(nHiggsneut)) allocate(gsq(x)%hjtautau_s(nHiggsneut),gsq(x)%hjtautau_p(nHiggsneut)) allocate(gsq(x)%hjWW(nHiggsneut) ,gsq(x)%hjZZ(nHiggsneut) ) allocate(gsq(x)%hjZga(nHiggsneut) ) allocate(gsq(x)%hjgaga(nHiggsneut) ,gsq(x)%hjgg(nHiggsneut) ) allocate(gsq(x)%hjggZ(nHiggsneut) ) - allocate(gsq(x)%hjhiZ(nHiggsneut,nHiggsneut) ) + allocate(gsq(x)%hjhiZ(nHiggsneut,nHiggsneut) ) gsq(x)%hjss_s =0.0D0 gsq(x)%hjss_p =0.0D0 gsq(x)%hjcc_s =0.0D0 gsq(x)%hjcc_p =0.0D0 gsq(x)%hjbb_s =0.0D0 gsq(x)%hjbb_p =0.0D0 gsq(x)%hjtoptop_s =0.0D0 gsq(x)%hjtoptop_p =0.0D0 gsq(x)%hjmumu_s =0.0D0 gsq(x)%hjmumu_p =0.0D0 gsq(x)%hjtautau_s =0.0D0 gsq(x)%hjtautau_p =0.0D0 gsq(x)%hjWW =0.0D0 gsq(x)%hjZZ =0.0D0 gsq(x)%hjZga =0.0D0 gsq(x)%hjgaga =0.0D0 gsq(x)%hjgg =0.0D0 gsq(x)%hjggZ =0.0D0 gsq(x)%hjhiZ =0.0D0 - enddo - + enddo + end subroutine allocate_sqcouplratio_parts - !********************************************************** + !********************************************************** subroutine allocate_couplratio_parts(g) ! to use this, gsq must be an array - !********************************************************** + !********************************************************** implicit none - !------------------------------------------- + !------------------------------------------- type(couplratio) :: g(:) !-----------------------------------internal integer :: x integer :: nHiggsneut - !------------------------------------------- - + !------------------------------------------- + if(np(Hneut)>0)then nHiggsneut=np(Hneut) elseif(np(Hneut).eq.0)then nHiggsneut=1 else stop 'error in subroutine allocate_couplratio_parts (1)' endif - do x=lbound(g,dim=1),ubound(g,dim=1) + do x=lbound(g,dim=1),ubound(g,dim=1) allocate(g(x)%hjss_s(nHiggsneut) ,g(x)%hjss_p(nHiggsneut)) allocate(g(x)%hjcc_s(nHiggsneut) ,g(x)%hjcc_p(nHiggsneut)) allocate(g(x)%hjbb_s(nHiggsneut) ,g(x)%hjbb_p(nHiggsneut)) allocate(g(x)%hjtt_s(nHiggsneut) ,g(x)%hjtt_p(nHiggsneut)) allocate(g(x)%hjmumu_s(nHiggsneut) ,g(x)%hjmumu_p(nHiggsneut)) allocate(g(x)%hjtautau_s(nHiggsneut),g(x)%hjtautau_p(nHiggsneut)) allocate(g(x)%hjWW(nHiggsneut) ,g(x)%hjZZ(nHiggsneut)) allocate(g(x)%hjZga(nHiggsneut)) allocate(g(x)%hjgaga(nHiggsneut) ,g(x)%hjgg(nHiggsneut)) ! allocate(g(x)%hjggZ(nHiggsneut) ) - allocate(g(x)%hjhiZ(nHiggsneut,nHiggsneut)) + allocate(g(x)%hjhiZ(nHiggsneut,nHiggsneut)) g(x)%hjss_s =0.0D0 g(x)%hjss_p =0.0D0 g(x)%hjcc_s =0.0D0 g(x)%hjcc_p =0.0D0 g(x)%hjbb_s =0.0D0 g(x)%hjbb_p =0.0D0 g(x)%hjtt_s =0.0D0 g(x)%hjtt_p =0.0D0 g(x)%hjmumu_s =0.0D0 g(x)%hjmumu_p =0.0D0 g(x)%hjtautau_s =0.0D0 g(x)%hjtautau_p =0.0D0 g(x)%hjWW =0.0D0 g(x)%hjZZ =0.0D0 g(x)%hjZga =0.0D0 g(x)%hjgaga =0.0D0 g(x)%hjgg =0.0D0 ! g(x)%hjggZ =0.0D0 g(x)%hjhiZ =0.0D0 - enddo - + enddo + end subroutine allocate_couplratio_parts -! !********************************************************** +! !********************************************************** ! subroutine deallocate_sqcouplratio_parts(gsq) -! !********************************************************** +! !********************************************************** ! implicit none -! !--------------------------------------input +! !--------------------------------------input ! type(sqcouplratio) :: gsq(:) ! !-----------------------------------internal ! integer :: x -! !------------------------------------------- -! -! do x=lbound(gsq,dim=1),ubound(gsq,dim=1) +! !------------------------------------------- +! +! do x=lbound(gsq,dim=1),ubound(gsq,dim=1) ! deallocate(gsq(x)%hjbb ) ! deallocate(gsq(x)%hjtautau ) ! deallocate(gsq(x)%hjWW ) ! deallocate(gsq(x)%hjZZ ) ! deallocate(gsq(x)%hjgaga ) ! deallocate(gsq(x)%hjgg ) ! deallocate(gsq(x)%hjggZ ) -! deallocate(gsq(x)%hjhiZ ) -! enddo -! +! deallocate(gsq(x)%hjhiZ ) +! enddo +! ! end subroutine deallocate_sqcouplratio_parts -! - !********************************************************** +! + !********************************************************** subroutine allocate_hadroncolliderextras_parts(tR) - !********************************************************** + !********************************************************** implicit none - !------------------------------------------- + !------------------------------------------- type(hadroncolliderextras) :: tR(:) !-----------------------------------internal integer :: x integer :: nHiggsneut - !------------------------------------------- - + !------------------------------------------- + if(np(Hneut)>0)then nHiggsneut=np(Hneut) elseif(np(Hneut).eq.0)then nHiggsneut=1 else stop 'error in subroutine allocate_hadroncolliderextras_parts (1)' endif tR%nq_hjWp=2 ! (u dbar), (c sbar) e.g - tR%nq_hjWm=2 ! (ubar d), (cbar s) - tR%nq_hj=5 !(d dbar), (u ubar), (s sbar), (c cbar), (b bbar) + tR%nq_hjWm=2 ! (ubar d), (cbar s) + tR%nq_hj=5 !(d dbar), (u ubar), (s sbar), (c cbar), (b bbar) tR%nq_hjZ=5 !(d dbar), (u ubar), (s sbar), (c cbar), (b bbar) - - do x=lbound(tR,dim=1),ubound(tR,dim=1) + + do x=lbound(tR,dim=1),ubound(tR,dim=1) allocate(tR(x)%qq_hjWp(tR(x)%nq_hjWp,nHiggsneut)) allocate(tR(x)%qq_hjWm(tR(x)%nq_hjWm,nHiggsneut)) allocate(tR(x)%gg_hj(nHiggsneut)) - allocate(tR(x)%qq_hj(tR(x)%nq_hj,nHiggsneut)) + allocate(tR(x)%qq_hj(tR(x)%nq_hj,nHiggsneut)) allocate(tR(x)%gg_hjZ(nHiggsneut)) - allocate(tR(x)%qq_hjZ(tR(x)%nq_hjZ,nHiggsneut)) - allocate(tR(x)%bg_hjb(nHiggsneut)) + allocate(tR(x)%qq_hjZ(tR(x)%nq_hjZ,nHiggsneut)) + allocate(tR(x)%bg_hjb(nHiggsneut)) tR(x)%qq_hjWp =0.0D0 tR(x)%qq_hjWm =0.0D0 tR(x)%gg_hj =0.0D0 tR(x)%qq_hj =0.0D0 tR(x)%gg_hjZ =0.0D0 - tR(x)%qq_hjZ =0.0D0 - tR(x)%bg_hjb =0.0D0 - enddo - + tR(x)%qq_hjZ =0.0D0 + tR(x)%bg_hjb =0.0D0 + enddo + end subroutine allocate_hadroncolliderextras_parts - - !********************************************************** + + !********************************************************** subroutine deallocate_hadroncolliderextras_parts(tR) - !********************************************************** + !********************************************************** implicit none - !--------------------------------------input + !--------------------------------------input type(hadroncolliderextras) :: tR(:) !-----------------------------------internal integer :: x - !------------------------------------------- - - do x=lbound(tR,dim=1),ubound(tR,dim=1) + !------------------------------------------- + + do x=lbound(tR,dim=1),ubound(tR,dim=1) deallocate(tR(x)%qq_hjWp) deallocate(tR(x)%qq_hjWm) deallocate(tR(x)%gg_hj) - deallocate(tR(x)%qq_hj) + deallocate(tR(x)%qq_hj) deallocate(tR(x)%gg_hjZ) - deallocate(tR(x)%qq_hjZ) - deallocate(tR(x)%bg_hjb) - enddo - + deallocate(tR(x)%qq_hjZ) + deallocate(tR(x)%bg_hjb) + enddo + end subroutine deallocate_hadroncolliderextras_parts - !********************************************************** + !********************************************************** subroutine deallocate_usefulbits !********************************************************** ! deallocates theo,res (and everything inside) - ! deallocates c,predratio,fact + ! deallocates c,predratio,fact !************************************************************ implicit none !-----------------------------------internal integer x,y !------------------------------------------- deallocate(pdesc)!allocated in fill_pdesc !these are allocated in subroutine do_input do x=lbound(theo,dim=1),ubound(theo,dim=1) - deallocate(theo(x)%additional) + deallocate(theo(x)%additional) do y= 1,ubound(np,dim=1) deallocate(theo(x)%particle(y)%M) deallocate(theo(x)%particle(y)%GammaTot) deallocate(theo(x)%particle(y)%dM) deallocate(theo(x)%particle(y)%dMh) - enddo + enddo deallocate(theo(x)%particle) - - deallocate(theo(x)%lep%XS_hjZ_ratio) - deallocate(theo(x)%lep%XS_bbhj_ratio) - deallocate(theo(x)%lep%XS_tautauhj_ratio) - deallocate(theo(x)%lep%XS_hjhi_ratio) - deallocate(theo(x)%lep%XS_HpjHmj_ratio) + + deallocate(theo(x)%lep%XS_hjZ_ratio) + deallocate(theo(x)%lep%XS_bbhj_ratio) + deallocate(theo(x)%lep%XS_tautauhj_ratio) + deallocate(theo(x)%lep%XS_hjhi_ratio) + deallocate(theo(x)%lep%XS_HpjHmj_ratio) deallocate(theo(x)%lep%XS_CpjCmj) deallocate(theo(x)%lep%XS_NjNi) - + deallocate(theo(x)%BR_hjss) deallocate(theo(x)%BR_hjcc) deallocate(theo(x)%BR_hjbb) - deallocate(theo(x)%BR_hjtt) + deallocate(theo(x)%BR_hjtt) deallocate(theo(x)%BR_hjmumu) deallocate(theo(x)%BR_hjtautau) deallocate(theo(x)%BR_hjhihi) deallocate(theo(x)%BR_hjhiZ) - deallocate(theo(x)%BR_hkhjhi) - deallocate(theo(x)%BR_hjHpiW) - deallocate(theo(x)%BR_hjWW) - deallocate(theo(x)%BR_hjZZ) - deallocate(theo(x)%BR_hjZga) - deallocate(theo(x)%BR_hjgaga) - deallocate(theo(x)%BR_hjgg) - deallocate(theo(x)%BR_hjinvisible) + deallocate(theo(x)%BR_hkhjhi) + deallocate(theo(x)%BR_hjHpiW) + deallocate(theo(x)%BR_hjWW) + deallocate(theo(x)%BR_hjZZ) + deallocate(theo(x)%BR_hjZga) + deallocate(theo(x)%BR_hjgaga) + deallocate(theo(x)%BR_hjgg) + deallocate(theo(x)%BR_hjinvisible) - deallocate(theo(x)%BR_tHpjb) - deallocate(theo(x)%BR_Hpjcs) + deallocate(theo(x)%BR_tHpjb) + deallocate(theo(x)%BR_Hpjcs) deallocate(theo(x)%BR_Hpjcb) deallocate(theo(x)%BR_Hpjtaunu) deallocate(theo(x)%BR_Hpjtb) deallocate(theo(x)%BR_HpjWZ) deallocate(theo(x)%BR_HpjhiW) deallocate(theo(x)%BR_CjqqNi) deallocate(theo(x)%BR_CjlnuNi) deallocate(theo(x)%BR_CjWNi) deallocate(theo(x)%BR_NjqqNi) - deallocate(theo(x)%BR_NjZNi) - - deallocate(theo(x)%tev%XS_hjb_ratio) - deallocate(theo(x)%tev%XS_tthj_ratio) - deallocate(theo(x)%tev%XS_vbf_ratio) + deallocate(theo(x)%BR_NjZNi) + + deallocate(theo(x)%tev%XS_hjb_ratio) + deallocate(theo(x)%tev%XS_tthj_ratio) + deallocate(theo(x)%tev%XS_vbf_ratio) deallocate(theo(x)%tev%XS_hjZ_ratio) deallocate(theo(x)%tev%XS_hjW_ratio) - deallocate(theo(x)%tev%XS_hj_ratio) + deallocate(theo(x)%tev%XS_hj_ratio) deallocate(theo(x)%tev%XS_gg_hj_ratio) deallocate(theo(x)%tev%XS_bb_hj_ratio) deallocate(theo(x)%tev%XS_thj_tchan_ratio) deallocate(theo(x)%tev%XS_thj_schan_ratio) deallocate(theo(x)%tev%XS_hjhi) - deallocate(theo(x)%tev%XS_vbf_Hpj) - deallocate(theo(x)%tev%XS_Hpjtb) - deallocate(theo(x)%tev%XS_Hpjcb) - deallocate(theo(x)%tev%XS_Hpjbjet) - deallocate(theo(x)%tev%XS_Hpjcjet) - deallocate(theo(x)%tev%XS_Hpjjetjet) - deallocate(theo(x)%tev%XS_HpjW) - deallocate(theo(x)%tev%XS_HpjZ) + deallocate(theo(x)%tev%XS_vbf_Hpmj) + deallocate(theo(x)%tev%XS_Hpmjtb) + deallocate(theo(x)%tev%XS_Hpmjcb) + deallocate(theo(x)%tev%XS_Hpmjbjet) + deallocate(theo(x)%tev%XS_Hpmjcjet) + deallocate(theo(x)%tev%XS_Hpmjjetjet) + deallocate(theo(x)%tev%XS_HpmjW) + deallocate(theo(x)%tev%XS_HpmjZ) deallocate(theo(x)%tev%XS_HpjHmj) - deallocate(theo(x)%tev%XS_Hpjhi) + deallocate(theo(x)%tev%XS_Hpmjhi) deallocate(theo(x)%tev%channelrates) deallocate(theo(x)%tev%channelrates_tmp) - deallocate(theo(x)%lhc7%XS_hjb_ratio) - deallocate(theo(x)%lhc7%XS_tthj_ratio) - deallocate(theo(x)%lhc7%XS_vbf_ratio) + deallocate(theo(x)%lhc7%XS_hjb_ratio) + deallocate(theo(x)%lhc7%XS_tthj_ratio) + deallocate(theo(x)%lhc7%XS_vbf_ratio) deallocate(theo(x)%lhc7%XS_hjZ_ratio) deallocate(theo(x)%lhc7%XS_qq_hjZ_ratio) - deallocate(theo(x)%lhc7%XS_gg_hjZ_ratio) + deallocate(theo(x)%lhc7%XS_gg_hjZ_ratio) deallocate(theo(x)%lhc7%XS_hjW_ratio) - deallocate(theo(x)%lhc7%XS_hj_ratio) + deallocate(theo(x)%lhc7%XS_hj_ratio) deallocate(theo(x)%lhc7%XS_gg_hj_ratio) deallocate(theo(x)%lhc7%XS_bb_hj_ratio) deallocate(theo(x)%lhc7%XS_thj_tchan_ratio) deallocate(theo(x)%lhc7%XS_thj_schan_ratio) deallocate(theo(x)%lhc7%XS_hjhi) - deallocate(theo(x)%lhc7%XS_vbf_Hpj) - deallocate(theo(x)%lhc7%XS_Hpjtb) - deallocate(theo(x)%lhc7%XS_Hpjcb) - deallocate(theo(x)%lhc7%XS_Hpjbjet) - deallocate(theo(x)%lhc7%XS_Hpjcjet) - deallocate(theo(x)%lhc7%XS_Hpjjetjet) - deallocate(theo(x)%lhc7%XS_HpjW) - deallocate(theo(x)%lhc7%XS_HpjZ) + deallocate(theo(x)%lhc7%XS_vbf_Hpmj) + deallocate(theo(x)%lhc7%XS_Hpmjtb) + deallocate(theo(x)%lhc7%XS_Hpmjcb) + deallocate(theo(x)%lhc7%XS_Hpmjbjet) + deallocate(theo(x)%lhc7%XS_Hpmjcjet) + deallocate(theo(x)%lhc7%XS_Hpmjjetjet) + deallocate(theo(x)%lhc7%XS_HpmjW) + deallocate(theo(x)%lhc7%XS_HpmjZ) deallocate(theo(x)%lhc7%XS_HpjHmj) - deallocate(theo(x)%lhc7%XS_Hpjhi) + deallocate(theo(x)%lhc7%XS_Hpmjhi) deallocate(theo(x)%lhc7%channelrates) deallocate(theo(x)%lhc7%channelrates_tmp) - deallocate(theo(x)%lhc8%XS_hjb_ratio) - deallocate(theo(x)%lhc8%XS_tthj_ratio) - deallocate(theo(x)%lhc8%XS_vbf_ratio) + deallocate(theo(x)%lhc8%XS_hjb_ratio) + deallocate(theo(x)%lhc8%XS_tthj_ratio) + deallocate(theo(x)%lhc8%XS_vbf_ratio) deallocate(theo(x)%lhc8%XS_hjZ_ratio) deallocate(theo(x)%lhc8%XS_qq_hjZ_ratio) - deallocate(theo(x)%lhc8%XS_gg_hjZ_ratio) + deallocate(theo(x)%lhc8%XS_gg_hjZ_ratio) deallocate(theo(x)%lhc8%XS_hjW_ratio) - deallocate(theo(x)%lhc8%XS_hj_ratio) + deallocate(theo(x)%lhc8%XS_hj_ratio) deallocate(theo(x)%lhc8%XS_gg_hj_ratio) deallocate(theo(x)%lhc8%XS_bb_hj_ratio) deallocate(theo(x)%lhc8%XS_thj_tchan_ratio) deallocate(theo(x)%lhc8%XS_thj_schan_ratio) deallocate(theo(x)%lhc8%XS_hjhi) - deallocate(theo(x)%lhc8%XS_vbf_Hpj) - deallocate(theo(x)%lhc8%XS_Hpjtb) - deallocate(theo(x)%lhc8%XS_Hpjcb) - deallocate(theo(x)%lhc8%XS_Hpjbjet) - deallocate(theo(x)%lhc8%XS_Hpjcjet) - deallocate(theo(x)%lhc8%XS_Hpjjetjet) - deallocate(theo(x)%lhc8%XS_HpjW) - deallocate(theo(x)%lhc8%XS_HpjZ) + deallocate(theo(x)%lhc8%XS_vbf_Hpmj) + deallocate(theo(x)%lhc8%XS_Hpmjtb) + deallocate(theo(x)%lhc8%XS_Hpmjcb) + deallocate(theo(x)%lhc8%XS_Hpmjbjet) + deallocate(theo(x)%lhc8%XS_Hpmjcjet) + deallocate(theo(x)%lhc8%XS_Hpmjjetjet) + deallocate(theo(x)%lhc8%XS_HpmjW) + deallocate(theo(x)%lhc8%XS_HpmjZ) deallocate(theo(x)%lhc8%XS_HpjHmj) - deallocate(theo(x)%lhc8%XS_Hpjhi) + deallocate(theo(x)%lhc8%XS_Hpmjhi) deallocate(theo(x)%lhc8%channelrates) deallocate(theo(x)%lhc8%channelrates_tmp) - deallocate(theo(x)%lhc13%XS_hjb_ratio) - deallocate(theo(x)%lhc13%XS_tthj_ratio) - deallocate(theo(x)%lhc13%XS_vbf_ratio) + deallocate(theo(x)%lhc13%XS_hjb_ratio) + deallocate(theo(x)%lhc13%XS_tthj_ratio) + deallocate(theo(x)%lhc13%XS_vbf_ratio) deallocate(theo(x)%lhc13%XS_hjZ_ratio) deallocate(theo(x)%lhc13%XS_qq_hjZ_ratio) - deallocate(theo(x)%lhc13%XS_gg_hjZ_ratio) + deallocate(theo(x)%lhc13%XS_gg_hjZ_ratio) deallocate(theo(x)%lhc13%XS_hjW_ratio) - deallocate(theo(x)%lhc13%XS_hj_ratio) + deallocate(theo(x)%lhc13%XS_hj_ratio) deallocate(theo(x)%lhc13%XS_gg_hj_ratio) deallocate(theo(x)%lhc13%XS_bb_hj_ratio) deallocate(theo(x)%lhc13%XS_thj_tchan_ratio) deallocate(theo(x)%lhc13%XS_thj_schan_ratio) deallocate(theo(x)%lhc13%XS_hjhi) - deallocate(theo(x)%lhc13%XS_vbf_Hpj) - deallocate(theo(x)%lhc13%XS_Hpjtb) - deallocate(theo(x)%lhc13%XS_Hpjcb) - deallocate(theo(x)%lhc13%XS_Hpjbjet) - deallocate(theo(x)%lhc13%XS_Hpjcjet) - deallocate(theo(x)%lhc13%XS_Hpjjetjet) - deallocate(theo(x)%lhc13%XS_HpjW) - deallocate(theo(x)%lhc13%XS_HpjZ) + deallocate(theo(x)%lhc13%XS_vbf_Hpmj) + deallocate(theo(x)%lhc13%XS_Hpmjtb) + deallocate(theo(x)%lhc13%XS_Hpmjcb) + deallocate(theo(x)%lhc13%XS_Hpmjbjet) + deallocate(theo(x)%lhc13%XS_Hpmjcjet) + deallocate(theo(x)%lhc13%XS_Hpmjjetjet) + deallocate(theo(x)%lhc13%XS_HpmjW) + deallocate(theo(x)%lhc13%XS_HpmjZ) deallocate(theo(x)%lhc13%XS_HpjHmj) - deallocate(theo(x)%lhc13%XS_Hpjhi) + deallocate(theo(x)%lhc13%XS_Hpmjhi) deallocate(theo(x)%lhc13%channelrates) deallocate(theo(x)%lhc13%channelrates_tmp) - !deallocate(theo(x)%inLEPrange_Hpj) + !deallocate(theo(x)%inLEPrange_Hpj) !deallocate(theo(x)%inTEVrange_Hpj) - deallocate(theo(x)%CP_value) - enddo - + deallocate(theo(x)%CP_value) + enddo + select case(whichanalyses) - case('onlyH','LandH','onlyP','list ') - do x=lbound(theo,dim=1),ubound(theo,dim=1) - deallocate(theo(x)%BR_Hbb_SM) - deallocate(theo(x)%BR_Hss_SM) - deallocate(theo(x)%BR_Hcc_SM) - deallocate(theo(x)%BR_Hmumu_SM) - deallocate(theo(x)%BR_Htautau_SM) - deallocate(theo(x)%BR_HWW_SM) - deallocate(theo(x)%BR_HZZ_SM) - deallocate(theo(x)%BR_HZga_SM) - deallocate(theo(x)%BR_Hgaga_SM) - deallocate(theo(x)%BR_Hgg_SM) - deallocate(theo(x)%BR_Hjets_SM) + case('onlyH','LandH','onlyP','list ') + do x=lbound(theo,dim=1),ubound(theo,dim=1) + deallocate(theo(x)%BR_Hbb_SM) + deallocate(theo(x)%BR_Hss_SM) + deallocate(theo(x)%BR_Hcc_SM) + deallocate(theo(x)%BR_Hmumu_SM) + deallocate(theo(x)%BR_Htautau_SM) + deallocate(theo(x)%BR_HWW_SM) + deallocate(theo(x)%BR_HZZ_SM) + deallocate(theo(x)%BR_HZga_SM) + deallocate(theo(x)%BR_Hgaga_SM) + deallocate(theo(x)%BR_Hgg_SM) + deallocate(theo(x)%BR_Hjets_SM) deallocate(theo(x)%GammaTot_SM) - + deallocate(theo(x)%tev%XS_HZ_SM) - deallocate(theo(x)%tev%XS_gg_HZ_SM) - deallocate(theo(x)%tev%XS_qq_HZ_SM) + deallocate(theo(x)%tev%XS_gg_HZ_SM) + deallocate(theo(x)%tev%XS_qq_HZ_SM) deallocate(theo(x)%tev%XS_HW_SM) - deallocate(theo(x)%tev%XS_H_SM) - deallocate(theo(x)%tev%XS_gg_H_SM) - deallocate(theo(x)%tev%XS_bb_H_SM) + deallocate(theo(x)%tev%XS_H_SM) + deallocate(theo(x)%tev%XS_gg_H_SM) + deallocate(theo(x)%tev%XS_bb_H_SM) deallocate(theo(x)%tev%XS_ttH_SM) - deallocate(theo(x)%tev%XS_vbf_SM) - !deallocate(theo(x)%tev%XS_H_SM_9713) - !deallocate(theo(x)%tev%XS_H_SM_9674) - deallocate(theo(x)%tev%XS_tH_tchan_SM) + deallocate(theo(x)%tev%XS_vbf_SM) + !deallocate(theo(x)%tev%XS_H_SM_9713) + !deallocate(theo(x)%tev%XS_H_SM_9674) + deallocate(theo(x)%tev%XS_tH_tchan_SM) deallocate(theo(x)%tev%XS_tH_schan_SM) deallocate(theo(x)%tev%channelrates_SM) - - deallocate(theo(x)%tev%XS_Hb_SM) - deallocate(theo(x)%tev%XS_Hb_c1_SM) - deallocate(theo(x)%tev%XS_Hb_c2_SM) - deallocate(theo(x)%tev%XS_Hb_c3_SM) + + deallocate(theo(x)%tev%XS_Hb_SM) + deallocate(theo(x)%tev%XS_Hb_c1_SM) + deallocate(theo(x)%tev%XS_Hb_c2_SM) + deallocate(theo(x)%tev%XS_Hb_c3_SM) deallocate(theo(x)%tev%XS_Hb_c4_SM) deallocate(theo(x)%lhc7%XS_HZ_SM) - deallocate(theo(x)%lhc7%XS_gg_HZ_SM) - deallocate(theo(x)%lhc7%XS_qq_HZ_SM) + deallocate(theo(x)%lhc7%XS_gg_HZ_SM) + deallocate(theo(x)%lhc7%XS_qq_HZ_SM) deallocate(theo(x)%lhc7%XS_HW_SM) deallocate(theo(x)%lhc7%XS_H_SM) - deallocate(theo(x)%lhc7%XS_gg_H_SM) - deallocate(theo(x)%lhc7%XS_bb_H_SM) + deallocate(theo(x)%lhc7%XS_gg_H_SM) + deallocate(theo(x)%lhc7%XS_bb_H_SM) deallocate(theo(x)%lhc7%XS_ttH_SM) - deallocate(theo(x)%lhc7%XS_vbf_SM) - deallocate(theo(x)%lhc7%XS_tH_tchan_SM) - deallocate(theo(x)%lhc7%XS_tH_schan_SM) + deallocate(theo(x)%lhc7%XS_vbf_SM) + deallocate(theo(x)%lhc7%XS_tH_tchan_SM) + deallocate(theo(x)%lhc7%XS_tH_schan_SM) deallocate(theo(x)%lhc7%XS_Hb_SM) - deallocate(theo(x)%lhc7%channelrates_SM) -! deallocate(theo(x)%lhc7%XS_Hb_c1_SM) -! deallocate(theo(x)%lhc7%XS_Hb_c2_SM) -! deallocate(theo(x)%lhc7%XS_Hb_c3_SM) + deallocate(theo(x)%lhc7%channelrates_SM) +! deallocate(theo(x)%lhc7%XS_Hb_c1_SM) +! deallocate(theo(x)%lhc7%XS_Hb_c2_SM) +! deallocate(theo(x)%lhc7%XS_Hb_c3_SM) deallocate(theo(x)%lhc8%XS_HZ_SM) - deallocate(theo(x)%lhc8%XS_gg_HZ_SM) + deallocate(theo(x)%lhc8%XS_gg_HZ_SM) deallocate(theo(x)%lhc8%XS_qq_HZ_SM) deallocate(theo(x)%lhc8%XS_HW_SM) - deallocate(theo(x)%lhc8%XS_H_SM) - deallocate(theo(x)%lhc8%XS_gg_H_SM) + deallocate(theo(x)%lhc8%XS_H_SM) + deallocate(theo(x)%lhc8%XS_gg_H_SM) deallocate(theo(x)%lhc8%XS_bb_H_SM) deallocate(theo(x)%lhc8%XS_ttH_SM) - deallocate(theo(x)%lhc8%XS_vbf_SM) - deallocate(theo(x)%lhc8%XS_tH_tchan_SM) - deallocate(theo(x)%lhc8%XS_tH_schan_SM) - deallocate(theo(x)%lhc8%XS_Hb_SM) - deallocate(theo(x)%lhc8%channelrates_SM) -! deallocate(theo(x)%lhc8%XS_Hb_c1_SM) -! deallocate(theo(x)%lhc8%XS_Hb_c2_SM) -! deallocate(theo(x)%lhc8%XS_Hb_c3_SM) + deallocate(theo(x)%lhc8%XS_vbf_SM) + deallocate(theo(x)%lhc8%XS_tH_tchan_SM) + deallocate(theo(x)%lhc8%XS_tH_schan_SM) + deallocate(theo(x)%lhc8%XS_Hb_SM) + deallocate(theo(x)%lhc8%channelrates_SM) +! deallocate(theo(x)%lhc8%XS_Hb_c1_SM) +! deallocate(theo(x)%lhc8%XS_Hb_c2_SM) +! deallocate(theo(x)%lhc8%XS_Hb_c3_SM) deallocate(theo(x)%lhc13%XS_HZ_SM) - deallocate(theo(x)%lhc13%XS_gg_HZ_SM) + deallocate(theo(x)%lhc13%XS_gg_HZ_SM) deallocate(theo(x)%lhc13%XS_qq_HZ_SM) deallocate(theo(x)%lhc13%XS_HW_SM) - deallocate(theo(x)%lhc13%XS_H_SM) - deallocate(theo(x)%lhc13%XS_gg_H_SM) + deallocate(theo(x)%lhc13%XS_H_SM) + deallocate(theo(x)%lhc13%XS_gg_H_SM) deallocate(theo(x)%lhc13%XS_bb_H_SM) deallocate(theo(x)%lhc13%XS_ttH_SM) - deallocate(theo(x)%lhc13%XS_vbf_SM) - deallocate(theo(x)%lhc13%XS_tH_tchan_SM) - deallocate(theo(x)%lhc13%XS_tH_schan_SM) - deallocate(theo(x)%lhc13%channelrates_SM) - - enddo + deallocate(theo(x)%lhc13%XS_vbf_SM) + deallocate(theo(x)%lhc13%XS_tH_tchan_SM) + deallocate(theo(x)%lhc13%XS_tH_schan_SM) + deallocate(theo(x)%lhc13%channelrates_SM) + + enddo case('onlyL') - case default + case default stop 'error in deallocate_usefulbits' - end select - - deallocate(theo) !allocated in subroutine do_input + end select + + deallocate(theo) !allocated in subroutine do_input !allocated in subroutine setup_output if(allocated(res)) then - do x=lbound(res,dim=1),ubound(res,dim=1) - deallocate(res(x)%chan) + do x=lbound(res,dim=1),ubound(res,dim=1) + deallocate(res(x)%chan) deallocate(res(x)%obsratio) - deallocate(res(x)%predratio) + deallocate(res(x)%predratio) deallocate(res(x)%axis_i) deallocate(res(x)%axis_j) - deallocate(res(x)%sfactor) - deallocate(res(x)%allowed95) - deallocate(res(x)%ncombined) - enddo - deallocate(res) !allocated in subroutine setup_output + deallocate(res(x)%sfactor) + deallocate(res(x)%allowed95) + deallocate(res(x)%ncombined) + enddo + deallocate(res) !allocated in subroutine setup_output endif if (allocated(fullHBres)) then deallocate(fullHBres) endif - + ! call deallocate_sqcouplratio_parts(g2) - do x=lbound(g2,dim=1),ubound(g2,dim=1) + do x=lbound(g2,dim=1),ubound(g2,dim=1) deallocate(g2(x)%hjss_s) deallocate(g2(x)%hjss_p) deallocate(g2(x)%hjcc_s) deallocate(g2(x)%hjcc_p) deallocate(g2(x)%hjbb_s) deallocate(g2(x)%hjbb_p) deallocate(g2(x)%hjtoptop_s) deallocate(g2(x)%hjtoptop_p) deallocate(g2(x)%hjmumu_s) deallocate(g2(x)%hjmumu_p) deallocate(g2(x)%hjtautau_s) deallocate(g2(x)%hjtautau_p) - deallocate(g2(x)%hjWW) + deallocate(g2(x)%hjWW) deallocate(g2(x)%hjZZ) deallocate(g2(x)%hjZga) deallocate(g2(x)%hjgaga) deallocate(g2(x)%hjgg) deallocate(g2(x)%hjggZ) - deallocate(g2(x)%hjhiZ) - enddo - deallocate(g2) - - - do x=lbound(effC,dim=1),ubound(effC,dim=1) + deallocate(g2(x)%hjhiZ) + enddo + deallocate(g2) + + + do x=lbound(effC,dim=1),ubound(effC,dim=1) deallocate(effC(x)%hjss_s) deallocate(effC(x)%hjss_p) deallocate(effC(x)%hjcc_s) deallocate(effC(x)%hjcc_p) deallocate(effC(x)%hjbb_s) deallocate(effC(x)%hjbb_p) deallocate(effC(x)%hjtt_s) deallocate(effC(x)%hjtt_p) deallocate(effC(x)%hjmumu_s) deallocate(effC(x)%hjmumu_p) deallocate(effC(x)%hjtautau_s) deallocate(effC(x)%hjtautau_p) - deallocate(effC(x)%hjWW) + deallocate(effC(x)%hjWW) deallocate(effC(x)%hjZZ) deallocate(effC(x)%hjZga) deallocate(effC(x)%hjgaga) deallocate(effC(x)%hjgg) ! deallocate(effC(x)%hjggZ) - deallocate(effC(x)%hjhiZ) - enddo - deallocate(effC) - - !these are allocated in subroutine do_input - call deallocate_hadroncolliderextras_parts(partR) - deallocate(partR) !allocated in subroutine do_input + deallocate(effC(x)%hjhiZ) + enddo + deallocate(effC) + + !these are allocated in subroutine do_input + call deallocate_hadroncolliderextras_parts(partR) + deallocate(partR) !allocated in subroutine do_input if(allocated(pr)) deallocate(pr) !allocated in subroutine fill_pr or fill_pr_select if(allocated(prsep)) deallocate(prsep) !allocated in subroutine fill_pr or fill_pr_select - + if(allocated(diffMhneut)) deallocate(diffMhneut) if(allocated(diffMhch)) deallocate(diffMhch) - + if(allocated(dmn)) deallocate(dmn) if(allocated(dmch)) deallocate(dmch) - + if(allocated(analysislist)) deallocate(analysislist) - if(allocated(analysis_exclude_list)) deallocate(analysis_exclude_list) + if(allocated(analysis_exclude_list)) deallocate(analysis_exclude_list) if(allocated(HBresult_all)) deallocate(HBresult_all) if(allocated(chan_all)) deallocate(chan_all) - if(allocated(ncombined_all)) deallocate(ncombined_all) - if(allocated(obsratio_all)) deallocate(obsratio_all) - if(allocated(predratio_all)) deallocate(predratio_all) + if(allocated(ncombined_all)) deallocate(ncombined_all) + if(allocated(obsratio_all)) deallocate(obsratio_all) + if(allocated(predratio_all)) deallocate(predratio_all) + - end subroutine deallocate_usefulbits - !********************************************************** + !********************************************************** -end module usefulbits +end module usefulbits !******************************************************************