void readKeyframe(std::ifstream &keyframeFile, glm::vec4 frame[], int numOfModelParameters, int numOfLights, int lightStates[])
{
	int ct=0;
	for(int i=0; i<numOfModelParameters; i++)
	{
		glm::vec4 newParameter(1.0f, 1.0f, 1.0f, 1.0f);
		keyframeFile >> newParameter[0] >> newParameter[1] >> newParameter[2];
		frame[ct] = newParameter;
		ct++; 
	}

	for(int i=0; i<numOfLights; i++)
	{
		keyframeFile >> lightStates[i];
		
		glm::vec4 newParameter(1.0f, 1.0f, 1.0f, 1.0f);
		keyframeFile >> newParameter[0] >> newParameter[1] >> newParameter[2];
		frame[ct] = newParameter;
		ct++;

		keyframeFile >> newParameter[0] >> newParameter[1] >> newParameter[2];
		frame[ct] = newParameter;
		ct++; 
	}

	glm::vec4 newParameter(1.0f, 1.0f, 1.0f, 1.0f);
	keyframeFile >> newParameter[0] >> newParameter[1] >> newParameter[2];
	frame[ct] = newParameter;
	ct++;

	keyframeFile >> newParameter[0] >> newParameter[1] >> newParameter[2];
	frame[ct] = newParameter;
	ct++; 

}
///
/// Define all (nuisance) parameters.
///
///  scan:      defines scan range (for Prob and Plugin methods)
///  phys:      physically allowed range (needs to be set!)
///  free:	range applied when no boundary is required - set this far away from any possible value
///
void ParametersCartesian::defineParameters()
{
	Parameter *p = 0;

	p = newParameter("g");
	p->title = "#gamma";
	p->startvalue = DegToRad(70);
	p->unit = "Rad";
	p->scan = range(DegToRad(0), DegToRad(180));
	p->phys = range(-7, 7);

	p = newParameter("d_dk");
	p->title = "#delta_{B}^{DK}";
	p->startvalue = DegToRad(127);
	p->unit = "Rad";
	p->scan = range(DegToRad(0), DegToRad(180));
	p->phys = range(-7, 7);

	p = newParameter("r_dk");
	p->title = "r_{B}^{DK}";
	p->startvalue = 0.09;
	p->unit = "";
	p->scan = range(0.02, 0.2);
	p->phys = range(0, 1e4);
}
Exemplo n.º 3
0
void ClassNode::GenerateCreateArrayMethod(const char* methodName, MethodNode* constructor)
{
	IdentifyNode* name = (IdentifyNode*)newIdentify(methodName);
	ParameterNode* parameter = (ParameterNode*)newParameter(newPrimitiveType(newToken(snt_keyword_unsigned), pt_uint), 0, 0, newIdentify("count"));
	ParameterListNode* parameterList = (ParameterListNode*)newParameterList(0,0,parameter);
	MethodNode* method = (MethodNode*)newMethod(name, 
		constructor->m_leftParenthesis, parameterList, 
		constructor->m_rightParenthesis, constructor->m_constant);
	method->m_semicolon = constructor->m_semicolon;

	ScopeNameNode* scopeName = (ScopeNameNode*)newScopeName(m_name, 0, 0, 0);
	ScopeNameListNode* scopeNameList = (ScopeNameListNode*)newScopeNameList(0, scopeName);
	TypeNameNode* typeName = (TypeNameNode*)newTypeName(scopeNameList);
	TokenNode* passing = (TokenNode*)newToken('^');
	setMethodResult(method, typeName, passing);
	setMethodResultArray(method);
	TokenNode* modifier = (TokenNode*)newToken(snt_keyword_static);
	setMethodModifier(method, modifier);
	if (constructor->m_filterNode)
	{
		method->m_filterNode = (TokenNode*)newToken(constructor->m_filterNode->m_nodeType);
	}
	method->m_enclosing = this;
	m_additionalMethods.push_back(method);
}
Exemplo n.º 4
0
XmlResponse XmlRPC::run(std::string methodName, std::vector<xmlrpc_c::value> parameters ){
    
    try {
        
        // Construct our client from our Transport object
        xmlrpc_c::client_xml client(&transport);
    
        std::string const method(methodName);

        // Parse through our parameters list
        
        xmlrpc_c::paramList params;
        
        for(int i=0; i < parameters.size(); i++){
            xmlrpc_c::value newParameter(parameters.at(i));
            params.addc(newParameter);
        }
        
        // Construct the Server URL
        std::string const serverUrl(m_serverurl + ":" + std::to_string(m_port));
        xmlrpc_c::carriageParm_http0 carriageParams(serverUrl);

        // Check That Auth Requirements have been met
        if(m_authrequired){
            if(!m_authset){
                std::cout << "Error: XML-RPC Auth is required but has not been set" << std::endl;
                return std::make_pair(false,xmlrpc_c::value_string(""));
            }
            else{
                carriageParams.setUser(m_authuser, m_authpass);
                carriageParams.allowAuthBasic();
            }
        }
        
        
        // Uncomment this to expand the size limit, I will move this elsewhere later into a function
        // similar to the timeout setting one.
        //
        xmlrpc_limit_set(XMLRPC_XML_SIZE_LIMIT_ID, 5e6);

        // Run our RPC Call
        xmlrpc_c::rpcPtr rpc(method, params);
        rpc->call(&client, &carriageParams);
        assert(rpc->isFinished());
        
        xmlrpc_c::value const response(rpc->getResult());
        
        return std::make_pair(true,response);
        
    } catch (std::exception const& e) {
        std::cerr << "Client threw error: " << e.what() << std::endl;
        return std::make_pair(false,xmlrpc_c::value_string(""));
    } catch (...) {
        std::cerr << "Client threw unexpected error." << std::endl;
        return std::make_pair(false,xmlrpc_c::value_string(""));
    }
    
}
Exemplo n.º 5
0
void define_routines(void)
{	
	SymbolEntry *se;
	const char *name;

	name = "READ_INT";
	se = newFunction(name);
	openScope();
    endFunctionHeader(se, typeInteger);
	closeScope();

	name = "READ_BOOL";
	se = newFunction(name);
	openScope();
    endFunctionHeader(se, typeBoolean);
	closeScope();
	
	name = "getchar";
	se = newFunction(name);
	openScope();
    endFunctionHeader(se, typeInteger);
	closeScope();

	name = "READ_REAL";
	se = newFunction(name);
	openScope();
    endFunctionHeader(se, typeReal);
	closeScope();

	name = "READ_STRING";
	se = newFunction(name);
	openScope();
	newParameter("par1", typeInteger, PASS_BY_VALUE, se);
	newParameter("par2", typeIArray(typeChar), PASS_BY_REFERENCE, se);
    endFunctionHeader(se, typeVoid);
	closeScope();

	name = "putchar";
	se = newFunction(name);
	openScope();
	newParameter("par", typeChar, PASS_BY_VALUE, se);
    endFunctionHeader(se, typeVoid);
	closeScope();

	name = "puts";
	se = newFunction(name);
	openScope();
	newParameter("par", typeIArray(typeChar), PASS_BY_REFERENCE, se);
    endFunctionHeader(se, typeVoid);
	closeScope();

	name = "writeInteger";
	se = newFunction(name);
	openScope();
	newParameter("par1", typeInteger, PASS_BY_VALUE, se);
	//newParameter("par2", typeInteger, PASS_BY_VALUE, se);
    endFunctionHeader(se, typeVoid);
	closeScope();

	name = "writeBoolean";
	se = newFunction(name);
	openScope();
	newParameter("par1", typeBoolean, PASS_BY_VALUE, se);
	//newParameter("par2", typeInteger, PASS_BY_VALUE, se);
    endFunctionHeader(se, typeVoid);
	closeScope();

	name = "writeChar";
	se = newFunction(name);
	openScope();
	newParameter("par1", typeChar, PASS_BY_VALUE, se);
	//newParameter("par2", typeInteger, PASS_BY_VALUE, se);
    endFunctionHeader(se, typeVoid);
	closeScope();

	name = "writeReal";
	se = newFunction(name);
	openScope();
	newParameter("par1", typeReal, PASS_BY_VALUE, se);
	newParameter("par2", typeInteger, PASS_BY_VALUE, se);
	//newParameter("par3", typeInteger, PASS_BY_VALUE, se);
    endFunctionHeader(se, typeVoid);
	closeScope();

	name = "writeString";
	se = newFunction(name);
	openScope();
	newParameter("par1", typeIArray(typeChar), PASS_BY_REFERENCE, se);
	//newParameter("par2", typeInteger, PASS_BY_VALUE, se);
    endFunctionHeader(se, typeVoid);
	closeScope();
	
	/*Math builtin functions*/
	name = "abs";
	se = newFunction(name);
	openScope();
	newParameter("par", typeInteger, PASS_BY_VALUE, se);
    endFunctionHeader(se, typeInteger);
	closeScope();

	name = "fabs";
	se = newFunction(name);
	openScope();
	newParameter("par", typeReal, PASS_BY_VALUE, se);
    endFunctionHeader(se, typeReal);
	closeScope();

	name = "sqrt";
	se = newFunction(name);
	openScope();
	newParameter("par", typeReal, PASS_BY_VALUE, se);
    endFunctionHeader(se, typeReal);
	closeScope();

	name = "sin";
	se = newFunction(name);
	openScope();
	newParameter("par", typeReal, PASS_BY_VALUE, se);
    endFunctionHeader(se, typeReal);
	closeScope();

	name = "cos";
	se = newFunction(name);
	openScope();
	newParameter("par", typeReal, PASS_BY_VALUE, se);
    endFunctionHeader(se, typeReal);
	closeScope();

	name = "tan";
	se = newFunction(name);
	openScope();
	newParameter("par", typeReal, PASS_BY_VALUE, se);
    endFunctionHeader(se, typeReal);
	closeScope();

	name = "arctan";
	se = newFunction(name);
	openScope();
	newParameter("par", typeReal, PASS_BY_VALUE, se);
    endFunctionHeader(se, typeReal);
	closeScope();

	name = "exp";
	se = newFunction(name);
	openScope();
	newParameter("par", typeReal, PASS_BY_VALUE, se);
    endFunctionHeader(se, typeReal);
	closeScope();
	
	name = "ln";
	se = newFunction(name);
	openScope();
	newParameter("par", typeReal, PASS_BY_VALUE, se);
    endFunctionHeader(se, typeReal);
	closeScope();
	
	name = "pi";
	se = newFunction(name);
	openScope();
    endFunctionHeader(se, typeReal);
	closeScope();

	name = "trunc";
	se = newFunction(name);
	openScope();
	newParameter("par", typeReal, PASS_BY_VALUE, se);
    endFunctionHeader(se, typeReal);
	closeScope();

	name = "round";
	se = newFunction(name);
	openScope();
	newParameter("par", typeReal, PASS_BY_VALUE, se);
    endFunctionHeader(se, typeReal);
	closeScope();

	name = "TRUNC";
	se = newFunction(name);
	openScope();
	newParameter("par", typeReal, PASS_BY_VALUE, se);
    endFunctionHeader(se, typeInteger);
	closeScope();
	
	name = "ROUND";
	se = newFunction(name);
	openScope();
	newParameter("par", typeReal, PASS_BY_VALUE, se);
    endFunctionHeader(se, typeInteger);
	closeScope();
	
	/*End Math builtin functions*/
	
	/*String handling builtin functions*/
	name = "strlen";
	se = newFunction(name);
	openScope();
	newParameter("par", typeIArray(typeChar), PASS_BY_REFERENCE, se);
    endFunctionHeader(se, typeInteger);
	closeScope();

	name = "strcmp";
	se = newFunction(name);
	openScope();
	newParameter("par1", typeIArray(typeChar), PASS_BY_REFERENCE, se);
	newParameter("par2", typeIArray(typeChar), PASS_BY_REFERENCE, se);
    endFunctionHeader(se, typeInteger);
	closeScope();

	name = "strcpy";
	se = newFunction(name);
	openScope();
	newParameter("par1", typeIArray(typeChar), PASS_BY_REFERENCE, se);
	newParameter("par2", typeIArray(typeChar), PASS_BY_REFERENCE, se);
    endFunctionHeader(se, typeVoid);
	closeScope();

	name = "strcat";
	se = newFunction(name);
	openScope();
	newParameter("par1", typeIArray(typeChar), PASS_BY_REFERENCE, se);
	newParameter("par2", typeIArray(typeChar), PASS_BY_REFERENCE, se);
    endFunctionHeader(se, typeVoid);
	closeScope();

	/*End String handling builtin functions*/
	

}
///
/// Define all (nuisance) parameters.
///
///  scan:      defines scan range (for Prob and Plugin methods)
///  phys:      physically allowed range (needs to be set!)
///  bboos:     Ranges for Berger-Boos method
///  force:     min, max used by the force fit method
///
void ParametersGammaCombo::defineParameters()
{
	Parameter *p = 0;

	p = newParameter("g");
	p->title = "#gamma";
	p->startvalue = DegToRad(70);
	// p->startvalue = DegToRad(119);
	p->unit = "Rad";
	// p->unit = "";
	p->scan = range(DegToRad(0), DegToRad(180));
	p->phys = range(-7, 7);
	p->force = range(DegToRad(0), DegToRad(90));
	p->bboos = range(DegToRad(0), DegToRad(180));

	p = newParameter("d_dk");
	//p->title = "#delta_{B}^{K}";
	p->title = "#delta_{B}^{DK}";
	p->startvalue = DegToRad(127);
	p->unit = "Rad";
	p->scan = range(DegToRad(0), DegToRad(180));
	p->phys = range(-7, 7);
	p->force = range(DegToRad(0), DegToRad(90));
	p->bboos = range(DegToRad(-180), DegToRad(180)); // B -> DK

	p = newParameter("r_dk");
	// p->title = "r_{B}^{K}";
	p->title = "r_{B}^{DK}";
	p->startvalue = 0.09;
	p->unit = "";
	p->scan = range(0.02, 0.2);
	p->phys = range(0, 1e4);
	p->force = range(0.02, 0.16);
	p->bboos = range(0.01, 0.22); // B -> DK

	p = newParameter("xm_dk");
	p->title = "x- (DK)";
	p->startvalue = 0;
	p->unit = "";
	p->scan = range(-0.2, 0.2);
	p->phys = range(-1e4, 1e4);
	p->force = range(-0.2, 0.2);
	p->bboos = range(0.01, 0.22); // B -> DK

	p = newParameter("ym_dk");
	p->title = "y- (DK)";
	p->startvalue = 0;
	p->unit = "";
	p->scan = range(0.0, 0.3);
	p->phys = range(-1e4, 1e4);
	p->force = range(-0.2, 0.2);
	p->bboos = range(0.01, 0.22); // B -> DK

	p = newParameter("xp_dk");
	p->title = "x+ (DK)";
	p->startvalue = 0;
	p->unit = "";
	p->scan = range(-0.2, 0.2);
	p->phys = range(-1e4, 1e4);
	p->force = range(-0.2, 0.2);
	p->bboos = range(0.01, 0.22); // B -> DK

	p = newParameter("yp_dk");
	p->title = "y+ (DK)";
	p->startvalue = 0;
	p->unit = "";
	p->scan = range(-0.2, 0.2);
	p->phys = range(-1e4, 1e4);
	p->force = range(-0.2, 0.2);
	p->bboos = range(0.01, 0.22); // B -> DK

	p = newParameter("RBRdkdpi");
	p->title = "RBRdkdpi";
	p->startvalue = 0.076;
	p->unit = "";
	p->scan = range(0.07, 0.09);
	p->phys = range(0, 1e4);
	p->force = range(0.07, 0.09);
	p->bboos = range(0.02, 0.27); // B -> DK / B -> Dpi

	p = newParameter("d_dpi");
	// p->title = "#delta_{B}^{#pi}";
	p->title = "#delta_{B}^{D#pi}";
	p->startvalue = DegToRad(223);;
	p->unit = "Rad";
	// p->scan = range(DegToRad(0), DegToRad(180));
	p->scan = range(DegToRad(180), DegToRad(360));
	p->phys = range(-7, 7);
	p->force = range(DegToRad(0), DegToRad(90));
	p->bboos = range(DegToRad(-180), DegToRad(180)); // B -> Dpi

	p = newParameter("r_dpi");
	// p->title = "r_{B}^{#pi}";
	p->title = "r_{B}^{D#pi}";
	p->startvalue = 0.005;
	p->unit = "";
	p->scan = range(0, 0.1);
	p->phys = range(0, 1e4);
	p->force = range(0.001, 0.04);
	p->bboos = range(0, 0.18); // B -> Dpi

	p = newParameter("xm_dpi");
	p->title = "x- (D#pi)";
	p->startvalue = 0;
	p->unit = "";
	p->scan = range(-0.2, 0.2);
	p->phys = range(-1e4, 1e4);
	p->force = range(-0.2, 0.2);
	p->bboos = range(0.01, 0.22); // B -> Dpi

	p = newParameter("ym_dpi");
	p->title = "y- (D#pi)";
	p->startvalue = 0;
	p->unit = "";
	p->scan = range(0.0, 0.3);
	p->phys = range(-1e4, 1e4);
	p->force = range(-0.2, 0.2);
	p->bboos = range(0.01, 0.22); // B -> Dpi

	p = newParameter("xp_dpi");
	p->title = "x+ (D#pi)";
	p->startvalue = 0;
	p->unit = "";
	p->scan = range(-0.2, 0.2);
	p->phys = range(-1e4, 1e4);
	p->force = range(-0.2, 0.2);
	p->bboos = range(0.01, 0.22); // B -> Dpi

	p = newParameter("yp_dpi");
	p->title = "y+ (D#pi)";
	p->startvalue = 0;
	p->unit = "";
	p->scan = range(-0.2, 0.2);
	p->phys = range(-1e4, 1e4);
	p->force = range(-0.2, 0.2);
	p->bboos = range(0.01, 0.22); // B -> Dpi

	p = newParameter("d_dkpipi");
	p->title = "#delta_{B}^{DK#pi#pi}";
	p->startvalue = DegToRad(338);
	p->unit = "Rad";
	p->scan = range(DegToRad(0), DegToRad(180));
	p->phys = range(-7, 7);
	p->force = range(DegToRad(0), DegToRad(90));
	p->bboos = range(DegToRad(-180), DegToRad(180));

	p = newParameter("r_dkpipi");
	p->title = "r_{B}^{DK#pi#pi}";
	p->startvalue = 0.09;
	p->unit = "";
	p->scan = range(0.02, 0.16);
	p->phys = range(0, 1e4);
	p->force = range(0.02, 0.16);
	p->bboos = range(0.01, 0.22);

	p = newParameter("k_dkpipi");
	p->title = "#kappa_{B}^{DK#pi#pi}";
	p->startvalue = 0.3;
	p->unit = "";
	p->scan = range(0.01, 1.0);
	p->phys = range(0, 1);
	p->force = range(0.01, 1.5);
	p->bboos = range(0.01, 1.5);

	p = newParameter("d_dpipipi");
	p->title = "#delta_{B}^{D#pi#pi#pi}";
	p->startvalue = DegToRad(330);
	p->unit = "Rad";
	p->scan = range(DegToRad(0), DegToRad(180));
	p->phys = range(-7, 7);
	p->force = range(DegToRad(0), DegToRad(90));
	p->bboos = range(DegToRad(-180), DegToRad(180));

	p = newParameter("r_dpipipi");
	p->title = "r_{B}^{D#pi#pi#pi}";
	p->startvalue = 0.015;
	p->unit = "";
	p->scan = range(0.02, 0.16);
	p->phys = range(0, 1e4);
	p->force = range(0.02, 0.16);
	p->bboos = range(0.01, 0.22);

	p = newParameter("k_dpipipi");
	p->title = "#kappa_{B}^{D#pi#pi#pi}";
	p->startvalue = 0.3;
	p->unit = "";
	p->scan = range(0.01, 1.0);
	p->phys = range(0, 1);
	p->force = range(0.01, 1.5);
	p->bboos = range(0.01, 1.5);

	// B -> DKpipi / B -> Dpipipi
	p = newParameter("RBRdhpipi");
	p->title = "R_{cab}^{Dh#pi#pi}";
	p->startvalue = 0.03;
	p->unit = "";
	p->scan = range(0.07, 0.09);
	p->phys = range(0, 1e4);
	p->force = range(0.07, 0.09);
	p->bboos = range(0.02, 0.27);

  // B+ -> D*K+
	p = newParameter("d_dstk");
	p->title = "#delta_{B}^{D*K}";
	p->startvalue = DegToRad(127);
	p->unit = "Rad";
	p->scan = range(DegToRad(0), DegToRad(180));
	p->phys = range(-7, 7);
	p->force = range(DegToRad(0), DegToRad(90));
	p->bboos = range(DegToRad(-180), DegToRad(180)); // B -> D*K

	p = newParameter("r_dstk");
	p->title = "r_{B}^{D*K}";
	p->startvalue = 0.09;
	p->unit = "";
	p->scan = range(0.02, 0.2);
	p->phys = range(0, 1e4);
	p->force = range(0.02, 0.16);
	p->bboos = range(0.01, 0.22); // B -> D*K

	// B+ -> DK*+
  p = newParameter("d_dkst");
	p->title = "#delta_{B}^{DK*}";
	p->startvalue = DegToRad(127);
	p->unit = "Rad";
	p->scan = range(DegToRad(0), DegToRad(180));
	p->phys = range(-7, 7);
	p->force = range(DegToRad(0), DegToRad(90));
	p->bboos = range(DegToRad(-180), DegToRad(180)); // B -> DK*

	p = newParameter("k_dkst");
	p->title = "#kappa_{B}^{DK*}";
	p->startvalue = 0.9;
	p->unit = "";
	p->scan = range(0, 2.5);
	p->phys = range(0, 1);
	p->force = range(0.001, 1);
	p->bboos = range(0, 1);

	p = newParameter("r_dkst");
	p->title = "r_{B}^{DK*}";
	p->startvalue = 0.09;
	p->unit = "";
	p->scan = range(0.02, 0.2);
	p->phys = range(0, 1e4);
	p->force = range(0.02, 0.16);
	p->bboos = range(0.01, 0.22); // B -> DK*


	// B0 -> D0Kst0
	p = newParameter("d_dkstz");
	p->title = "#delta_{D^{0}K^{*}}";
	p->startvalue = DegToRad(200);
	p->unit = "Rad";
	p->scan = range(DegToRad(0), DegToRad(360));
	p->phys = range(-7, 7);
	p->force = range(DegToRad(180), DegToRad(360));
	p->bboos = range(DegToRad(0), DegToRad(360)); // B0 -> D0Kst0

	p = newParameter("r_dkstz");
	p->title = "r_{D^{0}K^{*}}";
	p->startvalue = 0.3;
	p->unit = "";
	p->scan = range(0, 1.);
	p->phys = range(0.001, 1);
	p->force = range(0.001, 0.6);
	p->bboos = range(0, 1);

	p = newParameter("k_dkstz");
	p->title = "#kappa_{D^{0}K^{*}}";
	p->startvalue = 0.9;
	p->unit = "";
	p->scan = range(0, 2.5);
	p->phys = range(0, 1);
	p->force = range(0.001, 1);
	p->bboos = range(0, 1);

	// B0 -> D0Kpi
	//p = newParameter("d_dkpi");
	//p->title = "#delta_{D^{0}K#pi}";
	//p->startvalue = DegToRad(270);
	//p->unit = "Rad";
	//p->scan = range(DegToRad(0), DegToRad(180));
	//p->phys = range(-7, 7);
	//p->force = range(DegToRad(0), DegToRad(90));
	//p->bboos = range(DegToRad(-180), DegToRad(180)); // B0 -> D0Kst0

	//p = newParameter("r_dkpi");
	//p->title = "r_{D^{0}K#pi}";
	//p->startvalue = 0.3;
	//p->unit = "";
	//p->scan = range(0, 1.0);
	//p->phys = range(0.001, 1);
	//p->force = range(0.001, 0.5);
	//p->bboos = range(0, 1);

  // Special ratio parameters suggested by Tim
	p = newParameter("delta_dkstz");
	p->title = "#bar{#Delta}_{D^{0}K*^{0}}";
	p->startvalue = DegToRad(0.2);
	p->unit = "";
	p->scan = range(DegToRad(-20), DegToRad(20));
	p->phys = range(-7, 7);
	p->force = range(DegToRad(-90), DegToRad(90));
	p->bboos = range(DegToRad(-180), DegToRad(180)); // B0 -> D0Kst0

	p = newParameter("R_dkstz");
	p->title = "#bar{R}_{D^{0}K*^{0}}";
	p->startvalue = 1.1;
	p->unit = "";
	p->scan = range(0.8, 1.2);
	p->phys = range(0.001, 10.);
	p->force = range(0.001, 10.0);
	p->bboos = range(0, 10);

	//p = newParameter("k_dkpi");
	//p->title = "#kappa_{D^{0}K#pi}";
	//p->startvalue = 0.9;
	//p->unit = "";
	//p->scan = range(0, 2.5);
	//p->phys = range(0, 1);
	//p->force = range(0.001, 1);
	//p->bboos = range(0, 1);

	// Bs -> DsK
	p = newParameter("l_dsk");
	// p->title = "#lambda_{D_{s}K}";
	p->title = "r_{D_{s}K}";
	// p->startvalue = 0.37;
	p->startvalue = 0.54;
	p->unit = "";
	p->scan = range(0, 1.4);
	p->phys = range(0, 1e4);
	p->force = range(0.01, 1);
	p->bboos = range(0, 1);

	p = newParameter("d_dsk");
	p->title = "#delta_{D_{s}K}";
	// p->startvalue = DegToRad(20);
	p->startvalue = DegToRad(8);
	p->unit = "Rad";
	p->scan = range(DegToRad(-90), DegToRad(90));
	// p->scan = range(DegToRad(-70), DegToRad(290));
	p->phys = range(-7, 7);
	p->force = range(DegToRad(0), DegToRad(90));
	p->bboos = range(DegToRad(-90), DegToRad(90));

	// Bs mixing phase
	p = newParameter("phis");
	p->title = "#phi_{s}";
	p->startvalue = 0.01;
	//p->unit = "Rad"; // don't use Rad becaus phi cannot wrap around and then bring back angles messes with it
	p->unit = "";
	p->scan = range(-0.25, 0.25);
	p->phys = range(-7, 7);
	p->force = range(-0.25, 0.25);
	p->bboos = range(-0.25, 0.25); // Bs -> DsK

	p = newParameter("rD_kpi");
	p->title = "r_{K#pi}";
	p->startvalue = 0.058;
	p->unit = "";
	p->scan = range(0.054, 0.061);
	p->phys = range(0, 1e4);
	p->force = range(0.001, 0.15);
	p->bboos = range(0.01, 0.21); // D -> Kpi

	p = newParameter("dD_kpi");
	p->title = "#delta_{K#pi}";
	p->startvalue = DegToRad(188);
	p->unit = "Rad";
	p->scan = range(DegToRad(160), DegToRad(250));
	p->phys = range(-7, 7);
	p->force = range(DegToRad(150), DegToRad(250));
	p->bboos = range(DegToRad(150), DegToRad(250)); // D -> Kpi

	p = newParameter("rD_k3pi");
	p->title = "r_{K3#pi}";
	p->startvalue = 0.056;
	p->unit = "";
	p->scan = range(0.045, 0.065);
	p->phys = range(0, 1e4);
	p->force = range(0.001, 0.15);
	p->bboos = range(0.01, 0.15); // D -> Kpipipi

	p = newParameter("dD_k3pi");
	p->title = "#delta_{K3#pi}";
	// p->startvalue = DegToRad(235);
	p->startvalue = DegToRad(127);
	p->unit = "Rad";
	p->scan = range(DegToRad(0), DegToRad(360));
	p->phys = range(-7, 7);
	p->force = range(DegToRad(20), DegToRad(180));
	p->bboos = range(DegToRad(150), DegToRad(300)); // D -> Kpipipi

	p = newParameter("kD_k3pi");
	p->title = "#kappa_{K3#pi}";
	p->startvalue = 0.26;
	p->unit = "";
	p->scan = range(0.01, 1);
	p->phys = range(0, 1);
	p->force = range(0.01, 0.8);
	p->bboos = range(0, 1); // D -> Kpipipi

	p = newParameter("rD_kpipi0");
	p->title = "r_{K#pi#pi^{0}}";
	p->startvalue = 0.046;
	p->unit = "";
	p->scan = range(0.035, 0.055);
	p->phys = range(0, 1e4);
	p->force = range(0.001, 0.15);
	p->bboos = range(0.01, 0.15);

	p = newParameter("dD_kpipi0");
	p->title = "#delta_{K#pi#pi^{0}}";
	p->startvalue = DegToRad(164);
	p->unit = "Rad";
	p->scan = range(DegToRad(0), DegToRad(360));
	p->phys = range(-7, 7);
	p->force = range(DegToRad(20), DegToRad(180));
	p->bboos = range(DegToRad(150), DegToRad(300));

	p = newParameter("kD_kpipi0");
	p->title = "#kappa_{K#pi#pi^{0}}";
	p->startvalue = 0.86;
	p->unit = "";
	p->scan = range(0.01, 1);
	p->phys = range(0, 1);
	p->force = range(0.01, 0.8);
	p->bboos = range(0, 1);

	p = newParameter("F_pipipi0");
	p->title = "F_{pipi#pi^{0}}";
	p->startvalue = 0.97;
	p->unit = "";
	p->scan = range(0,1);
	p->phys = range(0,1);
	p->force = range(0,1);
	p->bboos = range(0,1);

	p = newParameter("F_kkpi0");
	p->title = "F_{KK#pi^{0}}";
	p->startvalue = 0.73;
	p->unit = "";
	p->scan = range(0,1);
	p->phys = range(0,1);
	p->force = range(0,1);
	p->bboos = range(0,1);

	p = newParameter("F_pipipipi");
	p->title = "F_{4#pi}";
	p->startvalue = 0.74;
	p->unit = "";
	p->scan = range(0,1);
	p->phys = range(0,1);
	p->force = range(0,1);
	p->bboos = range(0,1);

	p = newParameter("BR_D_Kminus3pi");
	p->title = "BF(D#rightarrowK^{-}3#pi)";
	p->startvalue = 8.29e-2;
	p->unit = "";
	p->scan = range(0.,0.5);
	p->phys = range(0, 1);
	p->force = range(0.01, 0.8);
	p->bboos = range(0, 1);

	p = newParameter("BR_D_Kplus3pi");
	p->title = "BF(D#rightarrowK^{+}3#pi)";
	p->startvalue = 2.6e-4;
	p->unit = "";
	p->scan = range(0.,0.01);
	p->phys = range(0, 1);
	p->force = range(1.e-5,1.e-3);
	p->bboos = range(0, 1);

	p = newParameter("AcpDKK");
	p->title = "#A_{CP}(D #rightarrow KK)";
	p->startvalue = 0.0;
	p->unit = "";
	p->scan = range(-0.1, 0.1);
	p->phys = range(-1, 1);
	p->force = range(-0.1, 0.1);
	p->bboos = range(-0.1, 0.1); // D->KK

	p = newParameter("AcpDpipi");
	p->title = "#A_{CP}(D #rightarrow pipi)";
	p->startvalue = 0.0;
	p->unit = "";
	p->scan = range(-0.1, 0.1);
	p->phys = range(-1, 1);
	p->force = range(-0.1, 0.1);
	p->bboos = range(-0.1, 0.1); // D->pipi

	p = newParameter("AcpDzKstpKm");
	p->title = "#A_{CP}(D^{0} #rightarrow K^{*+}K^{-})";
	p->startvalue = 0.0;
	p->unit = "";
	p->scan = range(-0.1, 0.1);
	p->phys = range(-1, 1);
	p->force = range(-0.1, 0.1);
	p->bboos = range(-0.1, 0.1);

	p = newParameter("AcpDzKstmKp");
	p->title = "#A_{CP}(D^{0} #rightarrow K^{*-}K^{+})";
	p->startvalue = 0.0;
	p->unit = "";
	p->scan = range(-0.1, 0.1);
	p->phys = range(-1, 1);
	p->force = range(-0.1, 0.1);
	p->bboos = range(-0.1, 0.1);

	p = newParameter("rD_k2pi");
	p->title = "r_{K2#pi}";
	p->startvalue = 0.05;
	p->unit = "";
	p->scan = range(0, 0.1);
	p->phys = range(0, 1e4);
	p->force = range(0.001, 0.15);
	p->bboos = range(0, 0.15); // CLEO

	p = newParameter("kD_k2pi");
	p->title = "k_{K2#pi}";
	p->startvalue = 0.84;
	p->unit = "";
	p->scan = range(0, 1);
	p->phys = range(0, 1);
	p->force = range(0.01, 1);
	p->bboos = range(0, 1); // CLEO

	p = newParameter("dD_k2pi");
	p->title = "#delta_{K2#pi}";
	p->startvalue = 3.96;
	p->unit = "Rad";
	p->scan = range(DegToRad(0), DegToRad(360));
	p->phys = range(-7, 7);
	p->force = range(DegToRad(0), DegToRad(90));
	p->bboos = range(DegToRad(0), DegToRad(360)); // CLEO

	p = newParameter("rD_kskpi");
	p->title = "r_{KSK#pi}";
	p->startvalue = 0.59;
	p->unit = "";
	p->scan = range(0, 0.1);
	p->phys = range(0, 1e4);
	p->force = range(0.001, 0.15);
	p->bboos = range(0, 0.15);

	p = newParameter("kD_kskpi");
	p->title = "k_{KSK#pi}";
	p->startvalue = 1.0;
	p->unit = "";
	p->scan = range(0, 1);
	p->phys = range(0, 1);
	p->force = range(0.01, 1);
	p->bboos = range(0, 1);

	p = newParameter("dD_kskpi");
	p->title = "#delta_{KSK#pi}";
	p->startvalue = DegToRad(26.);
	p->unit = "Rad";
	p->scan = range(DegToRad(0), DegToRad(360));
	p->phys = range(-7, 7);
	p->force = range(DegToRad(0), DegToRad(90));
	p->bboos = range(DegToRad(0), DegToRad(360));

	p = newParameter("xD");
	p->title = "x_{D}";
	p->startvalue = 4.1e-03;
	p->unit = "";
	p->scan = range(0.002, 0.012);
	p->phys = range(-1, 1);
	p->force = range(0.002, 0.012);
	p->bboos = range(0., 0.016); // D mixing

	p = newParameter("yD");
	p->title = "y_{D}";
	p->startvalue = 6.3e-03;
	p->unit = "";
	p->scan = range(0.002, 0.012);
	p->phys = range(-1, 1);
	p->force = range(0.002, 0.012);
	p->bboos = range(0., 0.016); // D mixing

	p = newParameter("B1");
	p->title = "BR(D #rightarrow K#pi)";
	p->startvalue = 3.89e-02;
	p->unit = "";
	p->scan = range(0.0380, 0.0395);
	p->phys = range(0, 1);
	p->force = range(0.0380, 0.0395);
	p->bboos = range(0.01, 0.05); // CLEO

	p = newParameter("B3");
	p->title = "BR(D #rightarrow K3#pi)";
	p->startvalue = 7.96e-02;
	p->unit = "";
	p->scan = range(0.07, 0.09);
	p->phys = range(0, 1);
	p->force = range(0.07, 0.09);
	p->bboos = range(0.02, 0.3); // CLEO

	p = newParameter("B5");
	p->title = "BR(D #rightarrow K2#pi)";
	p->startvalue = 1.38e-01;
	p->unit = "";
	p->scan = range(0.05, 0.2);
	p->phys = range(0, 1);
	p->force = range(0.05, 0.2);
	p->bboos = range(0.01, 0.6); // CLEO

	p = newParameter("Aprod");
	p->title = "Aprod(Bu)";
	p->startvalue = 0.0;
	p->unit = "";
	p->scan = range(-0.1, 0.1);
	p->phys = range(-1, 1);
	p->force = range(-0.1, 0.1);
	p->bboos = range(-0.1, 0.1);

	p = newParameter("a_gaus");
	p->title = "a_{Gaus}";
	p->startvalue = 0;
	p->unit = "";
	p->scan = range(-2.5, 2.5);
	p->phys = range(0, 1e4); // to implement a Feldman-Cousins like forbidden region, change this range and use --pr
	p->force = range(-2, 4);
	p->bboos = range(-2, 4);
	p->free = range(-1e4, 1e4);

	p = newParameter("b_gaus");
	p->title = "b_{Gaus}";
	p->startvalue = 0;
	p->unit = "";
	p->scan = range(-2, 4);
	p->phys = range(-1e4, 1e4);
	p->force = range(-2, 4);
	p->bboos = range(-2, 4);

  p = newParameter("B_k3pi_FAV");
  p->title = "B(D#rightarrowK3#pi FAV)";
  p->startvalue = 8.e-02;
  p->unit = "";
  p->scan = range(0.,1.);
  p->phys = range(0.,1.);
  p->force = range(0.,1.);
  p->bboos = range(0.,1.);

  p = newParameter("B_k3pi_SUP");
  p->title = "B(D#rightarrowK3#pi SUP)";
  p->startvalue = 2.65e-04;
  p->unit = "";
  p->scan = range(0.,1.);
  p->phys = range(0.,1.);
  p->force = range(0.,1.);
  p->bboos = range(0.,1.);

  p = newParameter("B_kpipi0_FAV");
  p->title = "B(D#rightarrowK#pi#pi^{0} FAV)";
  p->startvalue = 13.8e-02;
  p->unit = "";
  p->scan = range(0.,1.);
  p->phys = range(0.,1.);
  p->force = range(0.,1.);
  p->bboos = range(0.,1.);

  p = newParameter("B_kpipi0_SUP");
  p->title = "B(D#rightarrowK#pi#pi^{0} SUP)";
  p->startvalue = 3.e-04;
  p->unit = "";
  p->scan = range(0.,1.);
  p->phys = range(0.,1.);
  p->force = range(0.,1.);
  p->bboos = range(0.,1.);

  p = newParameter("B_kpi_FAV");
  p->title = "B(D#rightarrowK#pi FAV)";
  p->startvalue = 4.e-02;
  p->unit = "";
  p->scan = range(0.,1.);
  p->phys = range(0.,1.);
  p->force = range(0.,1.);
  p->bboos = range(0.,1.);

  p = newParameter("B_kpi_SUP");
  p->title = "B(D#rightarrowK#pi SUP)";
  p->startvalue = 1.5e-04;
  p->unit = "";
  p->scan = range(0.,1.);
  p->phys = range(0.,1.);
  p->force = range(0.,1.);
  p->bboos = range(0.,1.);

  // u and v
  p = newParameter("u_dpi");
  p->title = "u^{D#pi}";
  p->startvalue = 0.01;
  p->unit = "";
  p->scan = range(-0.05,0.05);
  p->phys = range(-0.1,0.1);
  p->force = range(-0.1,0.1);
  p->bboos = range(-0.1,0.1);

  p = newParameter("v_dpi");
  p->title = "v^{D#pi}";
  p->startvalue = -0.01;
  p->unit = "";
  p->scan = range(-0.05,0.05);
  p->phys = range(-0.1,0.1);
  p->force = range(-0.1,0.1);
  p->bboos = range(-0.1,0.1);

}