Print

Print


Commit in slic on MAIN
include/lStdHep.hh+45-211.3 -> 1.4
src/lStdHep.cc+44-71.3 -> 1.4
+89-28
2 modified files
JM: New lStdHep for v5.

slic/include
lStdHep.hh 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- lStdHep.hh	21 Mar 2005 22:39:47 -0000	1.3
+++ lStdHep.hh	24 Jan 2006 18:39:27 -0000	1.4
@@ -66,6 +66,7 @@
 #define LSH_STDHEPBEG       106    // supported 5/28/2002
 #define LSH_STDHEPEND       107    // supported 5/28/2002
 #define LSH_STDHEPCXX       108
+#define LSH_STDHEPEV4       201    // supported 1/23/2006
 
 ////
 //
@@ -114,7 +115,7 @@
 //
 // The current version/revision is:
 //
-   enum { MAJOR = 1, MINOR = 5, DAY = 10, MONTH = 8, YEAR = 2004 };
+   enum { MAJOR = 2, MINOR = 0, DAY = 23, MONTH = 1, YEAR = 2006 };
 //       ========================================================
 public:
    static int         getMajor(void) { return(MAJOR); };
@@ -175,26 +176,39 @@
 // readEvent(lStdEvent &), especially when only a few quantities are
 // needed.
 //
-   long           blockId()        const { return(event.blockid);            };
-   long           nTracks(void)    const { return(event.nhep);               };
-   long           evtNum(void)     const { return(event.nevhep);             };
-   long           runNum(void)     const { return(event.runnum);             };
-
-   double         X(int i)         const { return(event.vhep[i * 4 + 0]);    };
-   double         Y(int i)         const { return(event.vhep[i * 4 + 1]);    };
-   double         Z(int i)         const { return(event.vhep[i * 4 + 2]);    };
-   double         T(int i)         const { return(event.vhep[i * 4 + 3]);    };
-   double         Px(int i)        const { return(event.phep[i * 5 + 0]);    };
-   double         Py(int i)        const { return(event.phep[i * 5 + 1]);    };
-   double         Pz(int i)        const { return(event.phep[i * 5 + 2]);    };
-   double         E(int i)         const { return(event.phep[i * 5 + 3]);    };
-   double         M(int i)         const { return(event.phep[i * 5 + 4]);    };
-   long           pid(int i)       const { return(event.idhep[i]);           };
-   long           status(int i)    const { return(event.isthep[i]);          };
-   long           mother1(int i)   const { return(event.jmohep[i + i + 0]);  };
-   long           mother2(int i)   const { return(event.jmohep[i + i + 1]);  };
-   long           daughter1(int i) const { return(event.jdahep[i + i + 0]);  };
-   long           daughter2(int i) const { return(event.jdahep[i + i + 1]);  };
+   long           blockId()         const { return(event.blockid);            };
+   long           nTracks(void)     const { return(event.nhep);               };
+   long           evtNum(void)      const { return(event.nevhep);             };
+   long           runNum(void)      const { return(event.runnum);             };
+
+   double         X(int i)          const { return(event.vhep[i * 4 + 0]);    };
+   double         Y(int i)          const { return(event.vhep[i * 4 + 1]);    };
+   double         Z(int i)          const { return(event.vhep[i * 4 + 2]);    };
+   double         T(int i)          const { return(event.vhep[i * 4 + 3]);    };
+   double         Px(int i)         const { return(event.phep[i * 5 + 0]);    };
+   double         Py(int i)         const { return(event.phep[i * 5 + 1]);    };
+   double         Pz(int i)         const { return(event.phep[i * 5 + 2]);    };
+   double         E(int i)          const { return(event.phep[i * 5 + 3]);    };
+   double         M(int i)          const { return(event.phep[i * 5 + 4]);    };
+   long           pid(int i)        const { return(event.idhep[i]);           };
+   long           status(int i)     const { return(event.isthep[i]);          };
+   long           mother1(int i)    const { return(event.jmohep[i + i + 0]);  };
+   long           mother2(int i)    const { return(event.jmohep[i + i + 1]);  };
+   long           daughter1(int i)  const { return(event.jdahep[i + i + 0]);  };
+   long           daughter2(int i)  const { return(event.jdahep[i + i + 1]);  };
+   double         eventweight(void) const { return(event.eventweight);        };
+   double         alphaQED(void)    const { return(event.alphaqed);           };
+   double         alphaQCD(void)    const { return(event.alphaqcd);           };
+   double         scale(int i, int j) const { return(event.scale[i * 10 + j] ); };
+   double         spinX(int i)      const { return(event.spin[i * 3 + 0] );   };
+   double         spinY(int i)      const { return(event.spin[i * 3 + 1] );   };
+   double         spinZ(int i)      const { return(event.spin[i * 3 + 2] );   };
+   long           colorflow(int i, int j)  const { return(event.colorflow[i * 2 + j] ); };
+   long           idrup(void)       const { return(event.idrup);              };
+//
+// Call this to make sure you can call things like scale, spin and colorflow:
+//
+   bool           isStdHepEv4(void) const { return(event.scale != 0);         };
 //
 // Event writing functions. They return the last error encountered,
 // or LSH_SUCCESS.
@@ -346,6 +360,16 @@
       double *phep;
       double *vhep;
 //
+// ...New for STDHEPEV4:
+//
+      double  eventweight;
+      double  alphaqed;
+      double  alphaqcd;
+      double *scale;
+      double *spin;
+      long   *colorflow;
+      long    idrup;
+//
 // ...Begin run record:
 //
       long    bnevtreq;

slic/src
lStdHep.cc 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- lStdHep.cc	19 Oct 2005 22:51:18 -0000	1.3
+++ lStdHep.cc	24 Jan 2006 18:39:27 -0000	1.4
@@ -105,6 +105,8 @@
    if (i < event.nhep) {
       fprintf(fp, "    Track: id: %ld, vtx: (%g, %g, %g, %g), mom: (%g, %g, %g, %g, %g)\n",
                    pid(i), X(i), Y(i), Z(i), T(i), Px(i), Py(i), Pz(i), E(i), M(i));
+      fprintf(fp, "    Track: wgt: %g, alpha QED: %g, alpha QCD: %g, idrup: %ld\n",
+                   eventweight(), alphaQED(), alphaQCD(), idrup());
    }
    return;
 }
@@ -357,7 +359,9 @@
 lStdHep::Event::Event() :
    isEmpty(1), blockid(0), ntot(0), version(0), blockIds(0),
    ptrBlocks(0), nevhep(0), nhep(0), isthep(0), idhep(0),
-   jmohep(0), jdahep(0), phep(0), vhep(0) 
+   jmohep(0), jdahep(0), phep(0), vhep(0), eventweight(0.0),
+   alphaqed(0.0), alphaqcd(0.0), scale(0), spin(0), colorflow(0),
+   idrup(0)
 {
    return;
 }
@@ -365,7 +369,7 @@
 lStdHep::Event::~Event()
 {
    cleanup();
-}
+};
 
 void lStdHep::Event::cleanup(void)
 {
@@ -378,6 +382,9 @@
    delete [] jdahep;      jdahep    = 0;
    delete [] phep;        phep      = 0;
    delete [] vhep;        vhep      = 0;
+   delete [] scale;       scale     = 0;
+   delete [] spin;        spin      = 0;
+   delete [] colorflow;   colorflow = 0;
    blockid = ntot = nevhep = nhep = 0;
    isEmpty = 1;
    return;
@@ -449,6 +456,35 @@
             if (vhep)   delete [] vhep;
             vhep   = ls.readDoubleArray(len);
             break;
+         case LSH_STDHEPEV4       : // 201
+            nevhep = ls.readLong();
+            nhep   = ls.readLong();
+            if (isthep) delete [] isthep;
+            isthep = ls.readLongArray(len);
+            if (idhep)  delete [] idhep;
+            idhep  = ls.readLongArray(len);
+            if (jmohep) delete [] jmohep;
+            jmohep = ls.readLongArray(len);
+            if (jdahep) delete [] jdahep;
+            jdahep = ls.readLongArray(len);
+            if (phep)   delete [] phep;
+            phep   = ls.readDoubleArray(len);
+            if (vhep)   delete [] vhep;
+            vhep   = ls.readDoubleArray(len);
+//
+// New stuff for STDHEPEV4:
+//
+            eventweight = ls.readDouble();
+            alphaqed    = ls.readDouble();
+            alphaqcd    = ls.readDouble();
+            if (scale) delete [] scale;
+            scale       = ls.readDoubleArray(len);
+            if (spin)  delete [] spin;
+            spin        = ls.readDoubleArray(len);
+            if (colorflow) delete [] colorflow;
+            colorflow   = ls.readLongArray(len);
+            idrup       = ls.readLong();
+            break;
          case LSH_OFFTRACKARRAYS  : // 102
          case LSH_OFFTRACKSTRUCT  : // 103
          case LSH_TRACEARRAYS     : // 104
@@ -479,7 +515,7 @@
       }
    }
    return(ls.getError());
-}
+};
 
 long lStdHep::Event::printHeader(FILE *fp)
 {
@@ -489,11 +525,12 @@
    fprintf(fp, "             : nNTuples: %ld, dimNTuples: %ld\n", nNTuples, dimNTuples);
 
    for (int i = 0; i < nBlocks; i++) {
-      const char *labels[9] = {"Event", "Off-track arrays", "Off-track struct", "Trace arrays",
-                               "Event with multiple interactions", "Begin run", "End run", "StdHepCXX",
-                               "Unknown" };
+      const char *labels[10] = {"Event", "Off-track arrays", "Off-track struct", "Trace arrays",
+                                "Event with multiple interactions", "Begin run", "End run", "StdHepCXX",
+                                "EventV4", "Unknown" };
       int j = blockIds[i] - 101;
-      if ((j < 0) || (j > 8)) j = 8;
+      if (blockIds[i] == LSH_STDHEPEV4) j = 8;
+      if ((j < 0) || (j > 9)) j = 9;
       fprintf(fp, "             : %d: blockIds %ld (%s) ptrBlocks %ld\n",
               i, blockIds[i], labels[j], ptrBlocks[i]);
    }
CVSspam 0.2.8