Index: trunk/src/SmearUtil.cc
===================================================================
--- trunk/src/SmearUtil.cc	(revision 250)
+++ trunk/src/SmearUtil.cc	(revision 252)
@@ -127,4 +127,6 @@
   RP_420_s          = 420;                   // distance of the RP to the IP, in meters
   RP_420_x          = 0.004;                 // distance of the RP to the beam, in meters
+  RP_beam1Card      = "data/LHCB1IR5_v6.500.tfs";
+  RP_beam2Card      = "data/LHCB1IR5_v6.500.tfs";
 
   // In case FROG event display allowed
@@ -155,4 +157,9 @@
   
   PT_QUARKS_MIN =   2.0  ;                   // minimal pt needed by quarks to do b-tag
+
+  //for very forward detectors
+  RP_offsetEl_s     = 120;
+  RP_offsetEl_x     = 0.097;
+
   
 }
@@ -237,4 +244,8 @@
   RP_420_s          = DET.RP_420_s;
   RP_420_x          = DET.RP_420_x;
+  RP_beam1Card      = DET.RP_beam1Card;
+  RP_beam2Card      = DET.RP_beam2Card;
+  RP_offsetEl_s     = DET.RP_offsetEl_s;
+  RP_offsetEl_x     = DET.RP_offsetEl_x;
 
   // In case FROG event display allowed
@@ -342,4 +353,9 @@
   RP_420_s          = DET.RP_420_s;
   RP_420_x          = DET.RP_420_x;
+  RP_offsetEl_s     = DET.RP_offsetEl_s;
+  RP_offsetEl_x     = DET.RP_offsetEl_x;
+  RP_beam1Card      = DET.RP_beam1Card;
+  RP_beam2Card      = DET.RP_beam2Card;
+
 
   // In case FROG event display allowed
@@ -388,5 +404,5 @@
     curstring.str(temp_string);
     string varname;
-    float value; int ivalue;
+    float value; int ivalue; string svalue;
     
     if(strstr(temp_string.c_str(),"#")) { }
@@ -405,4 +421,6 @@
     else if(strstr(temp_string.c_str(),"RP_420_s"))         {curstring >> varname >> value; RP_420_s          = value;}
     else if(strstr(temp_string.c_str(),"RP_420_x"))         {curstring >> varname >> value; RP_420_x          = value;}
+    //else if(strstr(temp_string.c_str(),"Beam1Card"))        {curstring >> varname >> svalue;Beam1Card         = svalue;}
+    //else if(strstr(temp_string.c_str(),"Beam2Card"))        {curstring >> varname >> svalue;Beam2Card         = svalue;}
     
     else if(strstr(temp_string.c_str(),"ELG_Scen"))         {curstring >> varname >> value; ELG_Scen          = value;}
@@ -545,4 +563,15 @@
     f_out << left << setw(55) <<"* Distance of the RP to the beam, in meters: "<<""
 	  << left << setw(5) <<RP_420_x             <<""<< right << setw(10)<<"*"<<"\n";
+    f_out << left << setw(35) <<"* Datacard for beam 1: "<<""
+          << left << setw(25) <<RP_beam1Card            <<""<< right << setw(10)<<"*"<<"\n";
+    f_out << left << setw(35) <<"* Datacard for beam 2: "<<""
+          << left << setw(25) <<RP_beam2Card            <<""<< right << setw(10)<<"*"<<"\n";
+    f_out << left << setw(40) <<"* Beam separation, in meters:     "<<""
+          << left << setw(10) << RP_offsetEl_x          <<""<< right << setw(20)<<"! not in datacard  *"<<"\n";
+    f_out << left << setw(44) <<"* Distance from IP for Beam separation (m):"<<""
+          << left << setw(6) <<RP_offsetEl_s           <<""<< right << setw(20)<<"! not in datacard  *"<<"\n";
+
+
+
     f_out<<"*                                                                    *"<<"\n";
   }
Index: trunk/src/VeryForward.cc
===================================================================
--- trunk/src/VeryForward.cc	(revision 250)
+++ trunk/src/VeryForward.cc	(revision 252)
@@ -73,18 +73,17 @@
   relative_energy = true; // should always be true
   kickers_on = 1;         // should always be 1
-  
   // user should provide : (1) optics file for each beamline, and IPname,
   // and offset data (s,x) for optical elements
-  beamline1->fill("data/LHCB1IR5_v6.500.tfs",1,"IP5");
-  beamline1->offsetElements(120,-0.097);
-  H_RomanPot * rp220_1 = new H_RomanPot("rp220_1",220,2000); // RP 220m, 2mm, beam 1
-  H_RomanPot * rp420_1 = new H_RomanPot("rp420_1",420,4000); // RP 420m, 4mm, beam 1
+  beamline1->fill(DET->RP_beam1Card,1,"IP5");                                
+  beamline1->offsetElements(DET->RP_offsetEl_s,-DET->RP_offsetEl_x);
+  H_RomanPot * rp220_1 = new H_RomanPot("rp220_1",DET->RP_220_s,DET->RP_220_x*1E6); // RP 220m, 2mm, beam 1  
+  H_RomanPot * rp420_1 = new H_RomanPot("rp420_1",DET->RP_420_s,DET->RP_420_x*1E6); // RP 420m, 4mm, beam 1  
   beamline1->add(rp220_1); 
   beamline1->add(rp420_1);
   
-  beamline2->fill("data/LHCB1IR5_v6.500.tfs",-1,"IP5");
-  beamline2->offsetElements(120,+0.097);
-  H_RomanPot * rp220_2 = new H_RomanPot("rp220_2",220,2000);// RP 220m, 2mm, beam 2
-  H_RomanPot * rp420_2 = new H_RomanPot("rp420_2",420,4000);// RP 420m, 4mm, beam 2
+  beamline2->fill(DET->RP_beam2Card,-1,"IP5");                              
+  beamline2->offsetElements(DET->RP_offsetEl_s,+DET->RP_offsetEl_x);
+  H_RomanPot * rp220_2 = new H_RomanPot("rp220_2",DET->RP_220_s,DET->RP_220_x*1E6);// RP 220m, 2mm, beam 2     
+  H_RomanPot * rp420_2 = new H_RomanPot("rp420_2",DET->RP_420_s,DET->RP_420_x*1E6);// RP 420m, 4mm, beam 2     
   beamline2->add(rp220_2);
   beamline2->add(rp420_2); 
