[HepData-svn] r1637 - trunk/hepdata-webapp/src/main/java/cedar/hepdata/formats

blackhole at projects.hepforge.org blackhole at projects.hepforge.org
Fri Jul 12 10:33:14 BST 2013


Author: whalley
Date: Fri Jul 12 10:33:14 2013
New Revision: 1637

Log:
Updating the YODA formatter

Modified:
   trunk/hepdata-webapp/src/main/java/cedar/hepdata/formats/YodaFormatter.java

Modified: trunk/hepdata-webapp/src/main/java/cedar/hepdata/formats/YodaFormatter.java
==============================================================================
--- trunk/hepdata-webapp/src/main/java/cedar/hepdata/formats/YodaFormatter.java	Thu Jul  4 12:49:14 2013	(r1636)
+++ trunk/hepdata-webapp/src/main/java/cedar/hepdata/formats/YodaFormatter.java	Fri Jul 12 10:33:14 2013	(r1637)
@@ -12,6 +12,12 @@
 
 public class YodaFormatter {
 
+    static public String _padId(Integer id) {
+        StringBuffer s = new StringBuffer();
+        if (id < 10) s.append(0);
+        s.append(id);
+        return s.toString();
+    }
 
     public static String format(Paper p) {
         if (p == null) return null;
@@ -34,23 +40,46 @@
         try {
             if (d != null) {
                 StringBuffer s = new StringBuffer();
+                Paper pp = d.getPaper();
+                String expts = "";
+                for (Experiment e : pp.getExperiments()){
+                    expts += e.getInformalName() + "_";
+                }
+                if (expts.length() == 0) expts = "EXPT_";
+                String year = "XXXX";
+                for (Reference ref : pp.getReferences()) {
+                    year = ref.getDate();
+                    if (ref.getType().equals("JOUR")) break;
+                }
+                StringTemplate t_pname = new StringTemplate("$expts$$year$_$inspireId$");
+                t_pname.setAttribute("expts", expts);
+                t_pname.setAttribute("year", year);
+                String lead = "";
+                if(pp.getInspireId()!=null)    { t_pname.setAttribute("inspireId", "I"+pp.getInspireId()); lead="I"; }
+                else if(pp.getSpiresId()!=null) { t_pname.setAttribute("inspireId", "I"+pp.getSpiresId()); lead="S"; }
+                else { t_pname.setAttribute("inspireId", "0000000"); lead = "X"; }
+                String pname = t_pname.toString();
+                
                 for (XAxis x : d.getXAxes()) {
                     for (YAxis y : d.getYAxes()) {
-                        StringTemplate path = new StringTemplate("/HepData/$paperid$/d$did$-x$xid$-y$yid$");
+                        StringTemplate path = new StringTemplate("/REF/"+pname+"/d$did$-x$xid$-y$yid$");
+ 
                         path.setAttribute("paperid", d.getPaper().getId());
-                        path.setAttribute("did", d.getId());
-                        path.setAttribute("xid", x.getId());
-                        path.setAttribute("yid", y.getId());
-                        s.append("BEGIN SCATTER "  + path.toString() + "\n");
+                        path.setAttribute("did", _padId(d.getId()));
+                        path.setAttribute("xid", _padId(x.getId()));
+                        path.setAttribute("yid", _padId(y.getId()));
+                        s.append("BEGIN YODA_SCATTER2D "  + path.toString() + "\n");
                         for (int r = 1; r <= d.getMaxPointId(); ++r) {
-                            StringTemplate row = new StringTemplate("$xlow$\t$xhigh$\t$yval$\t$yerr$");
+                            StringTemplate row = new StringTemplate("$focus$\t$dplus$\t$dminus$\t$xlow$\t$xhigh$\t$yval$\t$yerr$");
                             Bin b = x.getBin(r);
                             Point p = y.getPoint(r);
                             if (b != null && p != null) {
-                                Double xlow = b.getLowValue();
-                                row.setAttribute("xlow", xlow);
-                                Double xhigh = b.getHighValue();
-                                row.setAttribute("xhigh", xhigh);
+                                 Double focus = b.getFocus();
+                                row.setAttribute("focus", focus);
+                                Double dplus = b.getDPlus();
+                                row.setAttribute("dplus", dplus);
+                                Double dminus = b.getDMinus();
+                                row.setAttribute("dminus", dminus);
                                 Double yval = p.getValue();
                                 row.setAttribute("yval", p.getValue());
                                 Double yerr = p.getQuadCombinedPlusMinusError();


More information about the HepData-svn mailing list