Пример #1
0
HiggsPlot::HiggsPlot(TString NameFile) {
  SetMasses(1);  // Charged B

  // From hep-ph/0908.3470
  Vub[0] = 0.00352; Vub[1] = 0.00011;
  // Inclusive Vub with BNLP calculation (2013)
  Vub[0] = 0.0044; Vub[1] = 0.00025;
  fB[0]  = 0.196;   fB[1]  = 0.011; // [GeV]

  // Coefficients found with RateCalc::Errors with 10,000 variations
  double Coef0[3][3] = {{0.2971, -3.2475, 16.9180}, {0.0165, 0.3152, 1.9629}, {-0.9279, -0.9567, 0.7891}};
  double Coef1[3][3] = {{0.2520, -0.2298,  0.6427}, {0.0028, 0.0289, 0.0846}, {-0.9457, -0.9854, 0.9036}};
  for(int isDs=0; isDs<2; isDs++)
    for(int isError=0; isError<3; isError++)
      for(int iC=0; iC<3; iC++)
	if(isDs) RDCoef[isDs][isError][iC] = Coef1[isError][iC];
	else     RDCoef[isDs][isError][iC] = Coef0[isError][iC];

  _isgS = 1; _varyRD = 1;

  ReadRD(NameFile);

  DecayName[0] = "TauNu";   DecayName[1] = "DTauNu"; 
  DecayName[2] = "DsTauNu"; DecayName[3] = "DDsTauNu"; 

}
Пример #2
0
/*
Diese Funktion erstellt ein Nahrungsnetz nach dem Nischenmodell für S Spezies auf Y Lebensräumen, die über die Kopplungskonstante d verbunden sind. T gibt die Topologie an (siehe SetTopology). Rnum ist die Anzahl der Ressource(n) und Rsize die Startgröße der Ressource(n). C beschreibt die Konnektivität des Netzes, wobei CRange die erlaubte max. Abweichung von C angibt.
*/
gsl_vector *SetNicheNetwork(struct foodweb nicheweb, struct resource res, gsl_rng* rng1, const gsl_rng_type* rng1_T){

int len			= ((nicheweb.Rnum+nicheweb.S)*(nicheweb.S+nicheweb.Rnum)+1+nicheweb.Y*nicheweb.Y+1+(nicheweb.Rnum+nicheweb.S)+nicheweb.S+3*(nicheweb.S));	// Länge des Rückabewerts

double C		= 0.15;		// vorgegebenes C
double CRange	= 0.01;

double Rsize	= res.size;

  gsl_vector *result		= gsl_vector_calloc(len);
  gsl_matrix *NV		= gsl_matrix_calloc(3, nicheweb.S);
  gsl_matrix *A			= gsl_matrix_calloc((nicheweb.Rnum+nicheweb.S),(nicheweb.S+nicheweb.Rnum));
  gsl_matrix *mas		= gsl_matrix_calloc(2, (nicheweb.Rnum+nicheweb.S));

  printf("Erzeuge Nischennetz mit %i Spezies (davon gewünschte Anzahl basaler Spezies %i) auf %i Patches. Topologie-Marker %i.\n", nicheweb.S, nicheweb.B, nicheweb.Y, nicheweb.T);

//--Zufallszahlengenerator initialisieren--------------------------------------------------------------------------------

// 	const gsl_rng_type *rng1_T;											// ****
// 	gsl_rng *rng1;   													// initialize random number generator
// 	gsl_rng_env_setup();   												// ermöglicht Konsolenparameter
// 	rng1_T = gsl_rng_default;   										// default random number generator (so called mt19937)
// 	gsl_rng_default_seed = 0;											// default seed for rng
// 	//gsl_rng_default_seed = ((unsigned)time(NULL));	// random starting seed for rng
// 	//gsl_rng_default_seed = (rdtsc());
// 	rng1 = gsl_rng_alloc(rng1_T);


//--Alle benötigten Daten ausrechnen--------------------------------------------------------------------------------------

int flag = 1;
int i 	 = 0;

while(flag == 1)
{

	flag = 0; 

	NV 	= SetNicheValues(nicheweb, C, rng1, rng1_T);							// Nischenwerte		NOTIZ: In den gsl Objekten liegen floats!
	A	= SetFeedingMatrix(nicheweb, NV, C, CRange);							// interaction matrix 

	int links = CountLinks(A, (nicheweb.Rnum+nicheweb.S));	

	//printf("Prüfe Linkanzahl\n");
	double CON = (double)links/(((double)nicheweb.S)*((double)nicheweb.S)-1);

	if(CON < (C-CRange) || CON > (C+CRange))
	{
		flag = 1;
		continue;
	}

	int bcount = 0;
	for(i = nicheweb.Rnum; i< (nicheweb.S + nicheweb.Rnum); i++)
	{
		if(gsl_matrix_get(A, i, 0)==1)
		bcount++;			
	}

	if(bcount!=nicheweb.B)
	{			
		flag = 1;
		continue;
	}	

	mas	= SetMasses(nicheweb, NV, A, Rsize);							// Massen + TL

	int TL0 = 0;
	for(i = 0; i< nicheweb.S; i++){
		if(gsl_matrix_get(mas, 1, i+nicheweb.Rnum) == 0)
		TL0++;			
	}

	if(TL0!=0)
	{			
		flag = 1;
		continue;
	}	

}

	for(i=0; i<nicheweb.S; i++) printf("Nischenwerte: %f\n", gsl_matrix_get(NV, 0, i));	
	
	gsl_matrix *D    = SetTopology(nicheweb.Y, nicheweb.T);								// migration matrix

 	result = LinkElements(nicheweb, NV, A, mas, D, Rsize, len);	
		
 		 printf("\nNetzwerk erfolgreich erzeugt!\n");

  gsl_matrix_free(D);
  gsl_matrix_free(NV);
  gsl_matrix_free(A);
  gsl_matrix_free(mas);

	return result;
}