Exemple #1
0
int main(int argc,char** argv)
{
	char name[50];
	double alpha,m32,tanb,A0,sgnmu,mtop,mbot,alphas_mz,delta0;
	double obs[Nobs_BKsll+1];

	if(argc<4) 
	{ 
		printf(" This program needs 3 parameters:\n"
		"   alpha    \n"
		"   m3/2    gravitino mass\n"
		"   tanb      tan(beta) \n");
		printf(" Auxiliary parameters are:\n"
		"   sgnmu    +/-1,  sign of Higgsino mass term (default 1)\n"    
		"   mtop     top quark pole mass\n");
		exit(1); 
  	} 
	else  
  	{
		sscanf(argv[1],"%lf",&alpha);
     		sscanf(argv[2],"%lf",&m32);
     		sscanf(argv[3],"%lf",&tanb);
     		if(argc>4) sscanf(argv[4],"%lf",&sgnmu); else sgnmu=1;
     		if(argc>5) sscanf(argv[5],"%lf",&mtop); else mtop=173.34;   
  	}	


	int filesOK=1;
#ifdef USE_ISAJET
	if(!test_file(ISAJET)) 
	{
		printf("\"%s\" absent. Please check the ISAJET path or comment \"#define USE_ISAJET\" in hcamsb.c\n",ISAJET);
		filesOK=0;
	}
#endif
#ifdef USE_HIGGSBOUNDS
	if(!test_file(HBwithFH)) 
	{
		printf("\"%s\" absent. Please check the HBwithFH path or comment \"#define USE_HIGGSBOUNDS\" in hcamsb.c\n",HBwithFH);
		filesOK=0;
	}
#endif
	if(!filesOK) return 1;


	if(!test_file("tmp")) system("mkdir tmp");
	chdir("tmp");

	printf("\n");
	
	printf("SuperIso v3.4 - F. Mahmoudi\n\n");

#ifdef USE_ISAJET
	sprintf(name,"hcamsb_isajet%d.tmplha",getpid());
	isajet_hcamsb(alpha, m32, tanb, sgnmu, mtop, name);
	printf("HCAMSB - SLHA file generated by ISAJET\n\n");

	delta0=delta0_calculator(name);
	if(delta0 !=0.)
	{
		printf("Observable\t\t\tValue\n\n");

		printf("BR(b->s gamma)\t\t\t%.3e\n",bsgamma_calculator(name));
		printf("delta0(B->K* gamma)\t\t%.3e\n\n",delta0);

		printf("BR(Bs->mu mu)\t\t\t%.3e\n",Bsmumu_calculator(name));
		printf("BR(Bs->mu mu)_untag\t\t%.3e\n",Bsmumu_untag_calculator(name));
		printf("BR(Bd->mu mu)\t\t\t%.3e\n\n",Bdmumu_calculator(name));
	
		printf("BR(B->K* mu mu)_low\t\t%.3e\n",BRobs_BKstarmumu_lowq2_calculator(name,obs));
		printf("AFB(B->K* mu mu)_low\t\t%.3e\n",obs[1]);
		printf("FL(B->K* mu mu)_low\t\t%.3e\n",obs[2]);
		printf("P1(B->K* mu mu)_low\t\t%.3e\n",obs[5]);
		printf("P2(B->K* mu mu)_low\t\t%.3e\n",obs[14]);
		printf("P4'(B->K* mu mu)_low\t\t%.3e\n",obs[17]);
		printf("P5'(B->K* mu mu)_low\t\t%.3e\n",obs[18]);
		printf("P6'(B->K* mu mu)_low\t\t%.3e\n",obs[19]);
		printf("P8'(B->K* mu mu)_low\t\t%.3e\n",obs[21]);
		printf("AI(B->K* mu mu)_low\t\t%.3e\n\n",AI_BKstarmumu_lowq2_calculator(name));
	
		printf("BR(B->K* mu mu)_high\t\t%.3e\n",BRobs_BKstarmumu_highq2_calculator(name,obs));
		printf("AFB(B->K* mu mu)_high\t\t%.3e\n",obs[1]);
		printf("FL(B->K* mu mu)_high\t\t%.3e\n",obs[2]);
		printf("P1(B->K* mu mu)_high\t\t%.3e\n",obs[5]);
		printf("P2(B->K* mu mu)_high\t\t%.3e\n",obs[14]);
		printf("P4'(B->K* mu mu)_high\t\t%.3e\n",obs[17]);
		printf("P5'(B->K* mu mu)_high\t\t%.3e\n",obs[18]);
		printf("P6'(B->K* mu mu)_high\t\t%.3e\n",obs[19]);
		printf("P8'(B->K* mu mu)_high\t\t%.3e\n",obs[21]);
		printf("AI(B->K* mu mu)_high\t\t%.3e\n\n",AI_BKstarmumu_highq2_calculator(name));

		printf("q0^2(AFB(B->K* mu mu))\t\t%.3e\n",A_BKstarmumu_zero_calculator(name));
		printf("q0^2(AI(B->K* mu mu))\t\t%.3e\n\n",AI_BKstarmumu_zero_calculator(name));


		printf("BR(B->Xs mu mu)_low\t\t%.3e\n",BRBXsmumu_lowq2_calculator(name));
		printf("BR(B->Xs mu mu)_high\t\t%.3e\n",BRBXsmumu_highq2_calculator(name));
		printf("q0^2(AFB(B->Xs mu mu)\t\t%.3e\n",A_BXsmumu_zero_calculator(name));
		printf("BR(B->Xs tau tau)_high\t\t%.3e\n\n",BRBXstautau_highq2_calculator(name));
	
		printf("BR(B->tau nu)\t\t\t%.3e\n",Btaunu_calculator(name));
      		printf("R(B->tau nu)\t\t\t%.3e\n",RBtaunu_calculator(name));
      		printf("BR(B->D tau nu)\t\t\t%.3e\n",BDtaunu_calculator(name));
      		printf("BR(B->D tau nu)/BR(B->D e nu)\t%.3e\n",BDtaunu_BDenu_calculator(name));
     		printf("BR(Ds->tau nu)\t\t\t%.3e\n",Dstaunu_calculator(name));
     		printf("BR(Ds->mu nu)\t\t\t%.3e\n",Dsmunu_calculator(name));
     		printf("BR(D->mu nu)\t\t\t%.3e\n",Dmunu_calculator(name));
      		printf("BR(K->mu nu)/BR(pi->mu nu)\t%.3e\n",Kmunu_pimunu_calculator(name));
     		printf("Rmu23(K->mu nu)\t\t\t%.3e\n\n",Rmu23_calculator(name));

		printf("a_muon\t\t\t\t%.3e\n\n",muon_gm2_calculator(name));

#ifdef USE_HIGGSBOUNDS
		printf("excluded_HiggsBounds\t\t%d\n",(higgsbounds_calculator(name)>1.));
#endif
 		printf("excluded_LEP/Tevatron_mass\t%d\n",excluded_mass_calculator(name));
		
		printf("charged_LSP\t\t\t%d\n\n",charged_LSP_calculator(name));
		
		flha_generator(name,"../output.flha");
		printf("output.flha generated\n\n");	
	}
	else printf("Invalid point\n\n");
	sprintf(name,"rm hcamsb_isajet%d.tmplha",getpid());
	system(name);
#endif

	return 1;
}
Exemple #2
0
int main(int argc,char** argv)
{
	char name[200];
	double m0,m12,tanb,A0,lambda,AK,sgnmu,MHDGUT,MHUGUT,mtop,mbot,alphas_mz,delta0;
	double obs[Nobs_BKsll+1];

  	if(argc<8) 
  	{ 
    		printf(" This program needs 7 parameters:\n"
           	"   m0      universal scalar mass at GUT scale\n"
           	"   m12     universal gaugino mass at GUT scale\n"
           	"   A0      trilinear soft breaking parameter at GUT scale\n"
           	"   tanb      tan(beta) \n"
          	"   lambda    Yukawa coupling\n"
		"   MHDGUT    Down Higgs mass at GUT scale\n"
		"   MHUGUT    Up Higgs mass at GUT scale\n");
    		printf(" Auxiliary parameters are:\n"
         	"   sgnmu    +/-1,  sign of Higgsino mass term (default 1)\n"               	"   AK  (if different from A0)\n"
            	"   mtop     top quark pole mass\n"
           	"   mbot     Mb(Mb) scale independent b-quark mass\n"
           	"   alphas_mz  strong coupling at MZ\n");                        
      		exit(1); 
  	} 
	else  
  	{  
		sscanf(argv[1],"%lf",&m0);
     		sscanf(argv[2],"%lf",&m12);
     		sscanf(argv[3],"%lf",&A0);
     		sscanf(argv[4],"%lf",&tanb);
     		sscanf(argv[5],"%lf",&lambda);
     		sscanf(argv[6],"%lf",&MHDGUT);
     		sscanf(argv[7],"%lf",&MHUGUT);	
     		if(argc>8) sscanf(argv[8],"%lf",&sgnmu); else sgnmu=1;
     		if(argc>9) sscanf(argv[9],"%lf",&AK); else AK=A0;
     		if(argc>10) sscanf(argv[10],"%lf",&mtop); else mtop=172.9;   
     		if(argc>11) sscanf(argv[11],"%lf",&mbot); else mbot=4.19;
     		if(argc>12) sscanf(argv[12],"%lf",&alphas_mz); else alphas_mz=0.1184;
  	}	

	int filesOK=1;
#ifdef USE_NMSSMTOOLS
	if(!test_file(NMSSMTools)) 
	{
		printf("\"%s\" absent. Please check the NMSSMTOOLS path or comment \"#define USE_NMSSMTOOLS\" in nnuhm.c\n",NMSSMTools);
		filesOK=0;
	}
#endif
	if(!filesOK) return 1;
	
	if(!test_file("tmp")) system("mkdir tmp");
	chdir("tmp");
	
	printf("\n");
	
	printf("SuperIso v3.3 - F. Mahmoudi\n\n");
	
#ifdef USE_NMSSMTOOLS	
	sprintf(name,"nnuhm_nmssmtools%d.tmplha",getpid());
	nmssmtools_nnuhm(m0, m12, tanb, A0, MHDGUT, MHUGUT, lambda, AK, sgnmu, mtop, mbot, alphas_mz,name);
	printf("NNUHM - SLHA file generated by NMSSMTOOLS\n\n");

	delta0=delta0_calculator(name);
	if(delta0 !=0.)
	{
		printf("Observable\t\t\tValue\n\n");

		printf("BR(b->s gamma)\t\t\t%.3e\n",bsgamma_calculator(name));
		printf("delta0(B->K* gamma)\t\t%.3e\n\n",delta0);

		printf("BR(Bs->mu mu)\t\t\t%.3e\n",Bsmumu_calculator(name));
		printf("BR(Bs->mu mu)_untag\t\t%.3e\n",Bsmumu_untag_calculator(name));
		printf("BR(Bd->mu mu)\t\t\t%.3e\n\n",Bdmumu_calculator(name));
	
		printf("BR(B->K* mu mu)_low\t\t%.3e\n",BRobs_BKstarmumu_lowq2_calculator(name,obs));
		printf("AFB(B->K* mu mu)_low\t\t%.3e\n",obs[1]);
		printf("FL(B->K* mu mu)_low\t\t%.3e\n",obs[2]);
		printf("AT1(B->K* mu mu)_low\t\t%.3e\n",obs[4]);
		printf("AT2(B->K* mu mu)_low\t\t%.3e\n",obs[5]);
		printf("AT3(B->K* mu mu)_low\t\t%.3e\n",obs[6]);
		printf("AT4(B->K* mu mu)_low\t\t%.3e\n",obs[7]);
		printf("AT5(B->K* mu mu)_low\t\t%.3e\n",obs[8]);
		printf("AI(B->K* mu mu)_low\t\t%.3e\n\n",AI_BKstarmumu_lowq2_calculator(name));
	
		printf("BR(B->K* mu mu)_high\t\t%.3e\n",BRobs_BKstarmumu_highq2_calculator(name,obs));
		printf("AFB(B->K* mu mu)_high\t\t%.3e\n",obs[1]);
		printf("FL(B->K* mu mu)_high\t\t%.3e\n",obs[2]);
		printf("HT1(B->K* mu mu)_high\t\t%.3e\n",obs[9]);
		printf("HT2(B->K* mu mu)_high\t\t%.3e\n",obs[10]);
		printf("HT3(B->K* mu mu)_high\t\t%.3e\n",obs[11]);
		printf("AI(B->K* mu mu)_high\t\t%.3e\n\n",AI_BKstarmumu_highq2_calculator(name));

		printf("q0^2(AFB(B->K* mu mu))\t\t%.3e\n",A_BKstarmumu_zero_calculator(name));
		printf("q0^2(AI(B->K* mu mu))\t\t%.3e\n\n",AI_BKstarmumu_zero_calculator(name));


		printf("BR(B->Xs mu mu)_low\t\t%.3e\n",BRBXsmumu_lowq2_calculator(name));
		printf("BR(B->Xs mu mu)_high\t\t%.3e\n",BRBXsmumu_highq2_calculator(name));
		printf("q0^2(AFB(B->Xs mu mu)\t\t%.3e\n",A_BXsmumu_zero_calculator(name));
		printf("BR(B->Xs tau tau)_high\t\t%.3e\n\n",BRBXstautau_highq2_calculator(name));
	
		printf("BR(B->tau nu)\t\t\t%.3e\n",Btaunu_calculator(name));
      		printf("R(B->tau nu)\t\t\t%.3e\n",RBtaunu_calculator(name));
      		printf("BR(B->D tau nu)\t\t\t%.3e\n",BDtaunu_calculator(name));
      		printf("BR(B->D tau nu)/BR(B->D e nu)\t%.3e\n",BDtaunu_BDenu_calculator(name));
     		printf("BR(Ds->tau nu)\t\t\t%.3e\n",Dstaunu_calculator(name));
     		printf("BR(Ds->mu nu)\t\t\t%.3e\n",Dsmunu_calculator(name));
     		printf("BR(D->mu nu)\t\t\t%.3e\n",Dmunu_calculator(name));
      		printf("BR(K->mu nu)/BR(pi->mu nu)\t%.3e\n",Kmunu_pimunu_calculator(name));
     		printf("Rmu23(K->mu nu)\t\t\t%.3e\n\n",Rmu23_calculator(name));

		printf("a_muon\t\t\t\t%.3e\n\n",muon_gm2_calculator(name));

 		printf("excluded_collider_NMSSMTools\t%d\n",NMSSM_collider_excluded(name));
		printf("theory_excluded\t\t\t%d\n",NMSSM_theory_excluded(name));
		
		printf("charged_LSP\t\t\t%d\n\n",charged_LSP_calculator(name));
		
		flha_generator(name,"../output.flha");
		printf("output.flha generated\n\n");	
	}
	else printf("Invalid point\n\n");
	sprintf(name,"rm nnuhm_nmssmtools%d.tmplha",getpid());
	system(name);		
#endif
	return 1;
}
Exemple #3
0
int main(int argc,char** argv)
{
	char name[50];
	double lambda1,lambda2,lambda3,lambda4,lambda5,lambda6,lambda7,m12_2,tanb,mA,delta0;
	int type;
	double obs[Nobs_BKsll+1];

	if(argc<4) 
	{ 
		printf(" This program needs 3 parameters:\n"
		"   type    Yukawa type (1-4)\n"
		"   tanb    tan(beta)\n"
		"   mA      CP-odd Higgs mass\n");
		printf(" Auxiliary parameters are:\n"
		"   lambda1...7  Higgs potential parameters (by default MSSM like)\n"
		"   m12^2        if set, mA is not used (otherwise MSSM like)\n");                        
		exit(1); 
	} 
	else  
	{
		sscanf(argv[1],"%d",&type);
		sscanf(argv[2],"%lf",&tanb);
		sscanf(argv[3],"%lf",&mA);

		double g=6.51908e-1;
		double gp=3.57458e-1;

		if(argc>4) sscanf(argv[4],"%lf",&lambda1); else lambda1=(g*g+gp*gp)/4.;   
		if(argc>5) sscanf(argv[5],"%lf",&lambda2); else lambda2=lambda1;
		if(argc>6) sscanf(argv[6],"%lf",&lambda3); else lambda3=(g*g-gp*gp)/4.;
		if(argc>7) sscanf(argv[7],"%lf",&lambda4); else lambda4=-g*g/2.;
		if(argc>8) sscanf(argv[8],"%lf",&lambda5); else lambda5=0.;
		if(argc>9) sscanf(argv[9],"%lf",&lambda6); else lambda6=0.;
		if(argc>10) sscanf(argv[10],"%lf",&lambda7); else lambda7=0.;
		if(argc>11) sscanf(argv[11],"%lf",&m12_2); else m12_2=mA*mA*sin(2.*atan(tanb))/2.;
	}	
	sprintf(name,"thdm%d.lha",getpid());


	int filesOK=1;
#ifdef USE_2HDMC
	if(!test_file(THDMC)) 
	{
		printf("\"%s\" absent. Please check the 2HDMC path or comment \"#define USE_2HDMC\" in thdm.c\n",THDMC);
		filesOK=0;
	}
#endif
	if(!filesOK) return 1;


	if(!test_file("tmp")) system("mkdir tmp");
	chdir("tmp");
	
	printf("\n");
	
	printf("SuperIso v3.4 - F. Mahmoudi\n\n");

#ifdef USE_2HDMC
	thdmc_types(lambda1,lambda2,lambda3,lambda4,lambda5,lambda6,lambda7,m12_2,tanb,type,name);
	printf("THDM - SLHA file generated by 2HDMC\n\n");

	delta0=delta0_calculator(name);
	if(delta0 !=0.)
	{
		printf("Observable\t\t\tValue\n\n");

		printf("BR(b->s gamma)\t\t\t%.3e\n",bsgamma_calculator(name));
		printf("delta0(B->K* gamma)\t\t%.3e\n\n",delta0);

		printf("BR(Bs->mu mu)\t\t\t%.3e\n",Bsmumu_calculator(name));
		printf("BR(Bs->mu mu)_untag\t\t%.3e\n",Bsmumu_untag_calculator(name));
		printf("BR(Bd->mu mu)\t\t\t%.3e\n\n",Bdmumu_calculator(name));
	
		printf("BR(B->K* mu mu)_low\t\t%.3e\n",BRobs_BKstarmumu_lowq2_calculator(name,obs));
		printf("AFB(B->K* mu mu)_low\t\t%.3e\n",obs[1]);
		printf("FL(B->K* mu mu)_low\t\t%.3e\n",obs[2]);
		printf("P1(B->K* mu mu)_low\t\t%.3e\n",obs[5]);
		printf("P2(B->K* mu mu)_low\t\t%.3e\n",obs[14]);
		printf("P4'(B->K* mu mu)_low\t\t%.3e\n",obs[17]);
		printf("P5'(B->K* mu mu)_low\t\t%.3e\n",obs[18]);
		printf("P6'(B->K* mu mu)_low\t\t%.3e\n",obs[19]);
		printf("P8'(B->K* mu mu)_low\t\t%.3e\n",obs[21]);
		printf("AI(B->K* mu mu)_low\t\t%.3e\n\n",AI_BKstarmumu_lowq2_calculator(name));
	
		printf("BR(B->K* mu mu)_high\t\t%.3e\n",BRobs_BKstarmumu_highq2_calculator(name,obs));
		printf("AFB(B->K* mu mu)_high\t\t%.3e\n",obs[1]);
		printf("FL(B->K* mu mu)_high\t\t%.3e\n",obs[2]);
		printf("P1(B->K* mu mu)_high\t\t%.3e\n",obs[5]);
		printf("P2(B->K* mu mu)_high\t\t%.3e\n",obs[14]);
		printf("P4'(B->K* mu mu)_high\t\t%.3e\n",obs[17]);
		printf("P5'(B->K* mu mu)_high\t\t%.3e\n",obs[18]);
		printf("P6'(B->K* mu mu)_high\t\t%.3e\n",obs[19]);
		printf("P8'(B->K* mu mu)_high\t\t%.3e\n",obs[21]);
		printf("AI(B->K* mu mu)_high\t\t%.3e\n\n",AI_BKstarmumu_highq2_calculator(name));

		printf("q0^2(AFB(B->K* mu mu))\t\t%.3e\n",A_BKstarmumu_zero_calculator(name));
		printf("q0^2(AI(B->K* mu mu))\t\t%.3e\n\n",AI_BKstarmumu_zero_calculator(name));


		printf("BR(B->Xs mu mu)_low\t\t%.3e\n",BRBXsmumu_lowq2_calculator(name));
		printf("BR(B->Xs mu mu)_high\t\t%.3e\n",BRBXsmumu_highq2_calculator(name));
		printf("q0^2(AFB(B->Xs mu mu)\t\t%.3e\n",A_BXsmumu_zero_calculator(name));
		printf("BR(B->Xs tau tau)_high\t\t%.3e\n\n",BRBXstautau_highq2_calculator(name));
	
		printf("BR(B->tau nu)\t\t\t%.3e\n",Btaunu_calculator(name));
      		printf("R(B->tau nu)\t\t\t%.3e\n",RBtaunu_calculator(name));
      		printf("BR(B->D tau nu)\t\t\t%.3e\n",BDtaunu_calculator(name));
      		printf("BR(B->D tau nu)/BR(B->D e nu)\t%.3e\n",BDtaunu_BDenu_calculator(name));
     		printf("BR(Ds->tau nu)\t\t\t%.3e\n",Dstaunu_calculator(name));
     		printf("BR(Ds->mu nu)\t\t\t%.3e\n",Dsmunu_calculator(name));
     		printf("BR(D->mu nu)\t\t\t%.3e\n",Dmunu_calculator(name));
      		printf("BR(K->mu nu)/BR(pi->mu nu)\t%.3e\n",Kmunu_pimunu_calculator(name));
     		printf("Rmu23(K->mu nu)\t\t\t%.3e\n\n",Rmu23_calculator(name));

		printf("a_muon\t\t\t\t%.3e\n\n",muon_gm2_calculator(name));
	}
	else printf("Invalid point\n\n");
#endif

	sprintf(name,"rm -f thdm%d.lha",getpid());
	system(name);
	return 1;
}
Exemple #4
0
int main(int argc,char** argv)
{
	char name[50];
	double Lambda,Mmess,tanb,cGrav,sgnmu,mtop,mbot,alphas_mz,delta0;
	int N5;
	double obs[Nobs_BKsll+1];

  	if(argc<5) 
  	{ 
    		printf(" This program needs 4 parameters:\n"
           	"   Lambda  scale of the SUSY breaking (10000-100000 GeV)\n"
           	"   Mmess   messenger mass scale > Lambda\n"
	   	"   N5      equivalent number of 5+5bar messenger fields\n"
           	"   tanb    tan(beta) \n");
    		printf(" Auxiliary parameters are:\n"
           	"   sgnmu   +/-1,  sign of Higgsino mass term (default 1)\n" 
	   	"   cGrav   >=1, ratio of the gravitino mass to its value for a breaking scale of F_m (not available for SUSPECT) \n"
           	"   mtop     top quark pole mass\n"
           	"   mbot     Mb(Mb) scale independent b-quark mass (not available for ISAJET)\n"
           	"   alphas_mz  strong coupling at MZ (not available for ISAJET)\n");                        
      		exit(1); 
  	} 
	else  
  	{  
		sscanf(argv[1],"%lf",&Lambda);
     		sscanf(argv[2],"%lf",&Mmess);
     		sscanf(argv[3],"%d",&N5);
     		sscanf(argv[4],"%lf",&tanb);
     		if(argc>5) sscanf(argv[5],"%lf",&sgnmu); else sgnmu=1.;
     		if(argc>6) sscanf(argv[6],"%lf",&cGrav); else cGrav=1.;   
     		if(argc>7) sscanf(argv[7],"%lf",&mtop); else mtop=173.34;   
     		if(argc>8) sscanf(argv[8],"%lf",&mbot); else mbot=4.18;
     		if(argc>9) sscanf(argv[9],"%lf",&alphas_mz); else alphas_mz=0.1184;
  	}

	
	int filesOK=1;
#ifdef USE_ISAJET
	if(!test_file(ISAJET)) 
	{
		printf("\"%s\" absent. Please check the ISAJET path or comment \"#define USE_ISAJET\" in gmsb.c\n",ISAJET);
		filesOK=0;
	}
#endif
#ifdef USE_SOFTSUSY
	if(!test_file(SOFTSUSY)) 
	{
		printf("\"%s\" absent. Please check the SOFTSUSY path or comment \"#define USE_SOFTSUSY\" in gmsb.c\n",SOFTSUSY);
		filesOK=0;
	}
#endif
#ifdef USE_SUSPECT
	if(!test_file(SUSPECT)) 
	{
		printf("\"%s\" absent. Please check the SUSPECT path or comment \"#define USE_SUSPECT\" in gmsb.c\n",SUSPECT);
		filesOK=0;
	}
#endif
#ifdef USE_SPHENO
	if(!test_file(SPHENO)) 
	{
		printf("\"%s\" absent. Please check the SPHENO path or comment \"#define USE_SPHENO\" in gmsb.c\n",SPHENO);
		filesOK=0;
	}
#endif
#ifdef USE_HIGGSBOUNDS
	if(!test_file(HBwithFH)) 
	{
		printf("\"%s\" absent. Please check the HBwithFH path or comment \"#define USE_HIGGSBOUNDS\" in gmsb.c\n",HBwithFH);
		filesOK=0;
	}
#endif
	if(!filesOK) return 1;


	if(Lambda>Mmess) printf("Lambda=%.0f must be smaller than Mmess=%.0f\n\n",Lambda,Mmess);
	else
	{

		if(!test_file("tmp")) system("mkdir tmp");
		chdir("tmp");

		printf("\n");
	
		printf("SuperIso v3.4 - F. Mahmoudi\n\n");

#ifdef USE_SOFTSUSY
		sprintf(name,"gmsb_softsusy%d.tmplha",getpid());
		softsusy_gmsb(Lambda, Mmess, tanb, N5, cGrav, sgnmu, mtop, mbot, alphas_mz, name);
		printf("---------------------------------------\n\n");
		printf("GMSB - SLHA file generated by SOFTSUSY\n\n");

		delta0=delta0_calculator(name);
		if(delta0 !=0.)
		{
			printf("Observable\t\t\tValue\n\n");

			printf("BR(b->s gamma)\t\t\t%.3e\n",bsgamma_calculator(name));
			printf("delta0(B->K* gamma)\t\t%.3e\n\n",delta0);

			printf("BR(Bs->mu mu)\t\t\t%.3e\n",Bsmumu_calculator(name));
			printf("BR(Bs->mu mu)_untag\t\t%.3e\n",Bsmumu_untag_calculator(name));
			printf("BR(Bd->mu mu)\t\t\t%.3e\n\n",Bdmumu_calculator(name));
	
			printf("BR(B->K* mu mu)_low\t\t%.3e\n",BRobs_BKstarmumu_lowq2_calculator(name,obs));
			printf("AFB(B->K* mu mu)_low\t\t%.3e\n",obs[1]);
			printf("FL(B->K* mu mu)_low\t\t%.3e\n",obs[2]);
			printf("P1(B->K* mu mu)_low\t\t%.3e\n",obs[5]);
			printf("P2(B->K* mu mu)_low\t\t%.3e\n",obs[14]);
			printf("P4'(B->K* mu mu)_low\t\t%.3e\n",obs[17]);
			printf("P5'(B->K* mu mu)_low\t\t%.3e\n",obs[18]);
			printf("P6'(B->K* mu mu)_low\t\t%.3e\n",obs[19]);
			printf("P8'(B->K* mu mu)_low\t\t%.3e\n",obs[21]);
			printf("AI(B->K* mu mu)_low\t\t%.3e\n\n",AI_BKstarmumu_lowq2_calculator(name));
	
			printf("BR(B->K* mu mu)_high\t\t%.3e\n",BRobs_BKstarmumu_highq2_calculator(name,obs));
			printf("AFB(B->K* mu mu)_high\t\t%.3e\n",obs[1]);
			printf("FL(B->K* mu mu)_high\t\t%.3e\n",obs[2]);
			printf("P1(B->K* mu mu)_high\t\t%.3e\n",obs[5]);
			printf("P2(B->K* mu mu)_high\t\t%.3e\n",obs[14]);
			printf("P4'(B->K* mu mu)_high\t\t%.3e\n",obs[17]);
			printf("P5'(B->K* mu mu)_high\t\t%.3e\n",obs[18]);
			printf("P6'(B->K* mu mu)_high\t\t%.3e\n",obs[19]);
			printf("P8'(B->K* mu mu)_high\t\t%.3e\n",obs[21]);
			printf("AI(B->K* mu mu)_high\t\t%.3e\n\n",AI_BKstarmumu_highq2_calculator(name));

			printf("q0^2(AFB(B->K* mu mu))\t\t%.3e\n",A_BKstarmumu_zero_calculator(name));
			printf("q0^2(AI(B->K* mu mu))\t\t%.3e\n\n",AI_BKstarmumu_zero_calculator(name));


			printf("BR(B->Xs mu mu)_low\t\t%.3e\n",BRBXsmumu_lowq2_calculator(name));
			printf("BR(B->Xs mu mu)_high\t\t%.3e\n",BRBXsmumu_highq2_calculator(name));
			printf("q0^2(AFB(B->Xs mu mu)\t\t%.3e\n",A_BXsmumu_zero_calculator(name));
			printf("BR(B->Xs tau tau)_high\t\t%.3e\n\n",BRBXstautau_highq2_calculator(name));
	
			printf("BR(B->tau nu)\t\t\t%.3e\n",Btaunu_calculator(name));
	      		printf("R(B->tau nu)\t\t\t%.3e\n",RBtaunu_calculator(name));
 	     		printf("BR(B->D tau nu)\t\t\t%.3e\n",BDtaunu_calculator(name));
   	   		printf("BR(B->D tau nu)/BR(B->D e nu)\t%.3e\n",BDtaunu_BDenu_calculator(name));
     			printf("BR(Ds->tau nu)\t\t\t%.3e\n",Dstaunu_calculator(name));
    	 		printf("BR(Ds->mu nu)\t\t\t%.3e\n",Dsmunu_calculator(name));
     			printf("BR(D->mu nu)\t\t\t%.3e\n",Dmunu_calculator(name));
      			printf("BR(K->mu nu)/BR(pi->mu nu)\t%.3e\n",Kmunu_pimunu_calculator(name));
  	   		printf("Rmu23(K->mu nu)\t\t\t%.3e\n\n",Rmu23_calculator(name));

			printf("a_muon\t\t\t\t%.3e\n\n",muon_gm2_calculator(name));

#ifdef USE_HIGGSBOUNDS
			printf("excluded_HiggsBounds\t\t%d\n",(higgsbounds_calculator(name)>1.));
#endif
 			printf("excluded_LEP/Tevatron_mass\t%d\n",excluded_mass_calculator(name));
		
			printf("\n");
		
			flha_generator(name,"../output1.flha");
			printf("output1.flha generated\n\n");	
		}
		else printf("Invalid point\n\n");
		sprintf(name,"rm gmsb_softsusy%d.tmplha",getpid());
		system(name);		
#endif

#ifdef USE_ISAJET
		sprintf(name,"gmsb_isajet%d.tmplha",getpid());
		isajet_gmsb(Lambda, Mmess, tanb, N5, cGrav, sgnmu, mtop, name);
		printf("---------------------------------------\n\n");
		printf("GMSB - SLHA file generated by ISAJET\n\n");

		delta0=delta0_calculator(name);
		if(delta0 !=0.)
		{
			printf("Observable\t\t\tValue\n\n");

			printf("BR(b->s gamma)\t\t\t%.3e\n",bsgamma_calculator(name));
			printf("delta0(B->K* gamma)\t\t%.3e\n\n",delta0);

			printf("BR(Bs->mu mu)\t\t\t%.3e\n",Bsmumu_calculator(name));
			printf("BR(Bs->mu mu)_untag\t\t%.3e\n",Bsmumu_untag_calculator(name));
			printf("BR(Bd->mu mu)\t\t\t%.3e\n\n",Bdmumu_calculator(name));
	
			printf("BR(B->K* mu mu)_low\t\t%.3e\n",BRobs_BKstarmumu_lowq2_calculator(name,obs));
			printf("AFB(B->K* mu mu)_low\t\t%.3e\n",obs[1]);
			printf("FL(B->K* mu mu)_low\t\t%.3e\n",obs[2]);
			printf("P1(B->K* mu mu)_low\t\t%.3e\n",obs[5]);
			printf("P2(B->K* mu mu)_low\t\t%.3e\n",obs[14]);
			printf("P4'(B->K* mu mu)_low\t\t%.3e\n",obs[17]);
			printf("P5'(B->K* mu mu)_low\t\t%.3e\n",obs[18]);
			printf("P6'(B->K* mu mu)_low\t\t%.3e\n",obs[19]);
			printf("P8'(B->K* mu mu)_low\t\t%.3e\n",obs[21]);
			printf("AI(B->K* mu mu)_low\t\t%.3e\n\n",AI_BKstarmumu_lowq2_calculator(name));
	
			printf("BR(B->K* mu mu)_high\t\t%.3e\n",BRobs_BKstarmumu_highq2_calculator(name,obs));
			printf("AFB(B->K* mu mu)_high\t\t%.3e\n",obs[1]);
			printf("FL(B->K* mu mu)_high\t\t%.3e\n",obs[2]);
			printf("P1(B->K* mu mu)_high\t\t%.3e\n",obs[5]);
			printf("P2(B->K* mu mu)_high\t\t%.3e\n",obs[14]);
			printf("P4'(B->K* mu mu)_high\t\t%.3e\n",obs[17]);
			printf("P5'(B->K* mu mu)_high\t\t%.3e\n",obs[18]);
			printf("P6'(B->K* mu mu)_high\t\t%.3e\n",obs[19]);
			printf("P8'(B->K* mu mu)_high\t\t%.3e\n",obs[21]);
			printf("AI(B->K* mu mu)_high\t\t%.3e\n\n",AI_BKstarmumu_highq2_calculator(name));

			printf("q0^2(AFB(B->K* mu mu))\t\t%.3e\n",A_BKstarmumu_zero_calculator(name));
			printf("q0^2(AI(B->K* mu mu))\t\t%.3e\n\n",AI_BKstarmumu_zero_calculator(name));


			printf("BR(B->Xs mu mu)_low\t\t%.3e\n",BRBXsmumu_lowq2_calculator(name));
			printf("BR(B->Xs mu mu)_high\t\t%.3e\n",BRBXsmumu_highq2_calculator(name));
			printf("q0^2(AFB(B->Xs mu mu)\t\t%.3e\n",A_BXsmumu_zero_calculator(name));
			printf("BR(B->Xs tau tau)_high\t\t%.3e\n\n",BRBXstautau_highq2_calculator(name));
	
			printf("BR(B->tau nu)\t\t\t%.3e\n",Btaunu_calculator(name));
	      		printf("R(B->tau nu)\t\t\t%.3e\n",RBtaunu_calculator(name));
 	     		printf("BR(B->D tau nu)\t\t\t%.3e\n",BDtaunu_calculator(name));
   	   		printf("BR(B->D tau nu)/BR(B->D e nu)\t%.3e\n",BDtaunu_BDenu_calculator(name));
     			printf("BR(Ds->tau nu)\t\t\t%.3e\n",Dstaunu_calculator(name));
    	 		printf("BR(Ds->mu nu)\t\t\t%.3e\n",Dsmunu_calculator(name));
     			printf("BR(D->mu nu)\t\t\t%.3e\n",Dmunu_calculator(name));
      			printf("BR(K->mu nu)/BR(pi->mu nu)\t%.3e\n",Kmunu_pimunu_calculator(name));
  	   		printf("Rmu23(K->mu nu)\t\t\t%.3e\n\n",Rmu23_calculator(name));

			printf("a_muon\t\t\t\t%.3e\n\n",muon_gm2_calculator(name));

#ifdef USE_HIGGSBOUNDS
			printf("excluded_HiggsBounds\t\t%d\n",(higgsbounds_calculator(name)>1.));
#endif
 			printf("excluded_LEP/Tevatron_mass\t%d\n",excluded_mass_calculator(name));
		
			printf("\n");
		
			flha_generator(name,"../output2.flha");
			printf("output2.flha generated\n\n");	
		}
		else printf("Invalid point\n\n");
		sprintf(name,"rm gmsb_isajet%d.tmplha",getpid());
		system(name);		
#endif
	
#ifdef USE_SUSPECT
		sprintf(name,"gmsb_suspect%d.tmplha",getpid());
		suspect_gmsb(Lambda, Mmess, tanb, N5, sgnmu, mtop, mbot, alphas_mz, name);
		printf("---------------------------------------\n\n");
		printf("GMSB - SLHA file generated by SUSPECT\n\n");

		delta0=delta0_calculator(name);
		if(delta0 !=0.)
		{
			printf("Observable\t\t\tValue\n\n");

			printf("BR(b->s gamma)\t\t\t%.3e\n",bsgamma_calculator(name));
			printf("delta0(B->K* gamma)\t\t%.3e\n\n",delta0);

			printf("BR(Bs->mu mu)\t\t\t%.3e\n",Bsmumu_calculator(name));
			printf("BR(Bs->mu mu)_untag\t\t%.3e\n",Bsmumu_untag_calculator(name));
			printf("BR(Bd->mu mu)\t\t\t%.3e\n\n",Bdmumu_calculator(name));
	
			printf("BR(B->K* mu mu)_low\t\t%.3e\n",BRobs_BKstarmumu_lowq2_calculator(name,obs));
			printf("AFB(B->K* mu mu)_low\t\t%.3e\n",obs[1]);
			printf("FL(B->K* mu mu)_low\t\t%.3e\n",obs[2]);
			printf("P1(B->K* mu mu)_low\t\t%.3e\n",obs[5]);
			printf("P2(B->K* mu mu)_low\t\t%.3e\n",obs[14]);
			printf("P4'(B->K* mu mu)_low\t\t%.3e\n",obs[17]);
			printf("P5'(B->K* mu mu)_low\t\t%.3e\n",obs[18]);
			printf("P6'(B->K* mu mu)_low\t\t%.3e\n",obs[19]);
			printf("P8'(B->K* mu mu)_low\t\t%.3e\n",obs[21]);
			printf("AI(B->K* mu mu)_low\t\t%.3e\n\n",AI_BKstarmumu_lowq2_calculator(name));
	
			printf("BR(B->K* mu mu)_high\t\t%.3e\n",BRobs_BKstarmumu_highq2_calculator(name,obs));
			printf("AFB(B->K* mu mu)_high\t\t%.3e\n",obs[1]);
			printf("FL(B->K* mu mu)_high\t\t%.3e\n",obs[2]);
			printf("P1(B->K* mu mu)_high\t\t%.3e\n",obs[5]);
			printf("P2(B->K* mu mu)_high\t\t%.3e\n",obs[14]);
			printf("P4'(B->K* mu mu)_high\t\t%.3e\n",obs[17]);
			printf("P5'(B->K* mu mu)_high\t\t%.3e\n",obs[18]);
			printf("P6'(B->K* mu mu)_high\t\t%.3e\n",obs[19]);
			printf("P8'(B->K* mu mu)_high\t\t%.3e\n",obs[21]);
			printf("AI(B->K* mu mu)_high\t\t%.3e\n\n",AI_BKstarmumu_highq2_calculator(name));

			printf("q0^2(AFB(B->K* mu mu))\t\t%.3e\n",A_BKstarmumu_zero_calculator(name));
			printf("q0^2(AI(B->K* mu mu))\t\t%.3e\n\n",AI_BKstarmumu_zero_calculator(name));


			printf("BR(B->Xs mu mu)_low\t\t%.3e\n",BRBXsmumu_lowq2_calculator(name));
			printf("BR(B->Xs mu mu)_high\t\t%.3e\n",BRBXsmumu_highq2_calculator(name));
			printf("q0^2(AFB(B->Xs mu mu)\t\t%.3e\n",A_BXsmumu_zero_calculator(name));
			printf("BR(B->Xs tau tau)_high\t\t%.3e\n\n",BRBXstautau_highq2_calculator(name));
	
			printf("BR(B->tau nu)\t\t\t%.3e\n",Btaunu_calculator(name));
	      		printf("R(B->tau nu)\t\t\t%.3e\n",RBtaunu_calculator(name));
 	     		printf("BR(B->D tau nu)\t\t\t%.3e\n",BDtaunu_calculator(name));
   	   		printf("BR(B->D tau nu)/BR(B->D e nu)\t%.3e\n",BDtaunu_BDenu_calculator(name));
     			printf("BR(Ds->tau nu)\t\t\t%.3e\n",Dstaunu_calculator(name));
    	 		printf("BR(Ds->mu nu)\t\t\t%.3e\n",Dsmunu_calculator(name));
     			printf("BR(D->mu nu)\t\t\t%.3e\n",Dmunu_calculator(name));
      			printf("BR(K->mu nu)/BR(pi->mu nu)\t%.3e\n",Kmunu_pimunu_calculator(name));
  	   		printf("Rmu23(K->mu nu)\t\t\t%.3e\n\n",Rmu23_calculator(name));

			printf("a_muon\t\t\t\t%.3e\n\n",muon_gm2_calculator(name));

#ifdef USE_HIGGSBOUNDS
			printf("excluded_HiggsBounds\t\t%d\n",(higgsbounds_calculator(name)>1.));
#endif
 			printf("excluded_LEP/Tevatron_mass\t%d\n",excluded_mass_calculator(name));
		
			printf("\n");
		
			flha_generator(name,"../output3.flha");
			printf("output3.flha generated\n\n");	
		}
		else printf("Invalid point\n\n");
		sprintf(name,"rm gmsb_suspect%d.tmplha",getpid());
		system(name);		
#endif

#ifdef USE_SPHENO
		sprintf(name,"gmsb_spheno%d.tmplha",getpid());
		spheno_gmsb(Lambda, Mmess, tanb, N5, sgnmu, mtop, mbot, alphas_mz, name);
		printf("---------------------------------------\n\n");
		printf("GMSB - SLHA file generated by SPHENO\n\n");

		delta0=delta0_calculator(name);
		if(delta0 !=0.)
		{
			printf("Observable\t\t\tValue\n\n");

			printf("BR(b->s gamma)\t\t\t%.3e\n",bsgamma_calculator(name));
			printf("delta0(B->K* gamma)\t\t%.3e\n\n",delta0);

			printf("BR(Bs->mu mu)\t\t\t%.3e\n",Bsmumu_calculator(name));
			printf("BR(Bs->mu mu)_untag\t\t%.3e\n",Bsmumu_untag_calculator(name));
			printf("BR(Bd->mu mu)\t\t\t%.3e\n\n",Bdmumu_calculator(name));
	
			printf("BR(B->K* mu mu)_low\t\t%.3e\n",BRobs_BKstarmumu_lowq2_calculator(name,obs));
			printf("AFB(B->K* mu mu)_low\t\t%.3e\n",obs[1]);
			printf("FL(B->K* mu mu)_low\t\t%.3e\n",obs[2]);
			printf("P1(B->K* mu mu)_low\t\t%.3e\n",obs[5]);
			printf("P2(B->K* mu mu)_low\t\t%.3e\n",obs[14]);
			printf("P4'(B->K* mu mu)_low\t\t%.3e\n",obs[17]);
			printf("P5'(B->K* mu mu)_low\t\t%.3e\n",obs[18]);
			printf("P6'(B->K* mu mu)_low\t\t%.3e\n",obs[19]);
			printf("P8'(B->K* mu mu)_low\t\t%.3e\n",obs[21]);
			printf("AI(B->K* mu mu)_low\t\t%.3e\n\n",AI_BKstarmumu_lowq2_calculator(name));
	
			printf("BR(B->K* mu mu)_high\t\t%.3e\n",BRobs_BKstarmumu_highq2_calculator(name,obs));
			printf("AFB(B->K* mu mu)_high\t\t%.3e\n",obs[1]);
			printf("FL(B->K* mu mu)_high\t\t%.3e\n",obs[2]);
			printf("P1(B->K* mu mu)_high\t\t%.3e\n",obs[5]);
			printf("P2(B->K* mu mu)_high\t\t%.3e\n",obs[14]);
			printf("P4'(B->K* mu mu)_high\t\t%.3e\n",obs[17]);
			printf("P5'(B->K* mu mu)_high\t\t%.3e\n",obs[18]);
			printf("P6'(B->K* mu mu)_high\t\t%.3e\n",obs[19]);
			printf("P8'(B->K* mu mu)_high\t\t%.3e\n",obs[21]);
			printf("AI(B->K* mu mu)_high\t\t%.3e\n\n",AI_BKstarmumu_highq2_calculator(name));

			printf("q0^2(AFB(B->K* mu mu))\t\t%.3e\n",A_BKstarmumu_zero_calculator(name));
			printf("q0^2(AI(B->K* mu mu))\t\t%.3e\n\n",AI_BKstarmumu_zero_calculator(name));


			printf("BR(B->Xs mu mu)_low\t\t%.3e\n",BRBXsmumu_lowq2_calculator(name));
			printf("BR(B->Xs mu mu)_high\t\t%.3e\n",BRBXsmumu_highq2_calculator(name));
			printf("q0^2(AFB(B->Xs mu mu)\t\t%.3e\n",A_BXsmumu_zero_calculator(name));
			printf("BR(B->Xs tau tau)_high\t\t%.3e\n\n",BRBXstautau_highq2_calculator(name));
	
			printf("BR(B->tau nu)\t\t\t%.3e\n",Btaunu_calculator(name));
	      		printf("R(B->tau nu)\t\t\t%.3e\n",RBtaunu_calculator(name));
 	     		printf("BR(B->D tau nu)\t\t\t%.3e\n",BDtaunu_calculator(name));
   	   		printf("BR(B->D tau nu)/BR(B->D e nu)\t%.3e\n",BDtaunu_BDenu_calculator(name));
     			printf("BR(Ds->tau nu)\t\t\t%.3e\n",Dstaunu_calculator(name));
    	 		printf("BR(Ds->mu nu)\t\t\t%.3e\n",Dsmunu_calculator(name));
     			printf("BR(D->mu nu)\t\t\t%.3e\n",Dmunu_calculator(name));
      			printf("BR(K->mu nu)/BR(pi->mu nu)\t%.3e\n",Kmunu_pimunu_calculator(name));
  	   		printf("Rmu23(K->mu nu)\t\t\t%.3e\n\n",Rmu23_calculator(name));

			printf("a_muon\t\t\t\t%.3e\n\n",muon_gm2_calculator(name));

#ifdef USE_HIGGSBOUNDS
			printf("excluded_HiggsBounds\t\t%d\n",(higgsbounds_calculator(name)>1.));
#endif
 			printf("excluded_LEP/Tevatron_mass\t%d\n",excluded_mass_calculator(name));
		
			printf("\n");
		
			flha_generator(name,"../output4.flha");
			printf("output4.flha generated\n\n");	
		}
		else printf("Invalid point\n\n");
		sprintf(name,"rm gmsb_spheno%d.tmplha",getpid());
		system(name);		
#endif
	}
	return 1;
}