slic/include
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
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]);
}