//	Format of TProcessID record in release 3.02.06.
//	Will be present if there are any referenced objects.
//	----------TKey---------------
//   byte 0->3  Nbytes   = Number of bytes in compressed record (Tkey+data)	TKey::fNbytes
//        4->5  Version  = TKey class version identifier			TKey::fVersion
//        6->9  ObjLen   = Number of bytes of uncompressed data			TKey::fObjLen
//       10->13 Datime   = Date and time when record was written to file	TKey::fDatime
//                       | (year-1995)<<26|month<<22|day<<17|hour<<12|minute<<6|second
//       14->15 KeyLen   = Number of bytes in key structure (TKey)		TKey::fKeyLen
//       16->17 Cycle    = Cycle of key						TKey::fCycle
//       18->21 SeekKey  = Byte offset of record itself (consistency check)	TKey::fSeekKey
//       22->25 SeekPdir = Byte offset of parent directory record		TKey::fSeekPdir
//       26->26 lname    = Number of bytes in the class name (10)		TKey::fClassName
//       27->36 ClassName= Object Class Name ("TProcessID")			TKey::fClassName
//       37->37 lname    = Number of bytes in the object name			TNamed::fName
//       38->.. Name     = lName bytes with the name of the object		TNamed::fName
//                       | (e.g. "ProcessID0")
//        0->0  lTitle   = Number of bytes in the object title			TNamed::fTitle
//        1->.. Title    = lTitle bytes with the title of the object		TNamed::fTitle
//                       | (Identifies processor, time stamp, etc.)
//			 | See detailed explanation below.
//	----------DATA--------------
//        0->3 ByteCount = Number of remaining bytes in TProcessID object (uncompressed)
//                       |   OR'd with kByteCountMask (0x40000000)
//	  4->5 Version   = Version of TProcessID Class
// -Begin TNamed object (Base class of TProcessID)
//        6->9 ByteCount = Number of remaining bytes in TNamed object (uncompressed)
//                       |   OR'd with kByteCountMask (0x40000000)
//       10->11 Version  = Version of TNamed Class 
//       12->21          = TObject object (Base class of TNamed) (see tobject.txt).
//                       |   The TProcessID object is not itself referenced.
//       22->22 lname    = Number of bytes in the object name			TNamed::fName
//       23->.. Name     = lName bytes with the name of the object		TNamed::fName
//                       | The name will be "ProcessID" concatenated with
//                       | a decimal integer, or "pidf".
//        0->0  lTitle   = Number of bytes in the object title			TNamed::fTitle
//        1->.. Title    = lTitle bytes with the title of the object		TNamed::fTitle
//                       | (Identifies processor, time stamp, etc.)
//			 | See detailed explanation below.
// -End TNamed object
//
//     ----------Explanation of the title of a TProcessID object-----------------
//	The title of a TProcessID object is a globally unique identifier of the
//	ROOTIO process that created it.  It is derived from the following quantities.
//
//	1) The creation time ("fTime) of the TProcessID record.  This is a 60 bit time
//	in 100ns ticks since Oct. 15, 1582.
//	
//	2) A 16 bit random unsigned integer ("clockeq") generated from a seed that is the
//      job's process ID.  The highest two bits are not used.
//
//	3) A six byte unsigned quantity ("fNode") identifying the machine.  If the machine has a
//	valid network address, the first four bytes are set to that address, and the last two bytes
//	are stuffed with 0xbe and 0xef respectively.  Otherwise a six byte quantity is generated
//	from the time and random machine statistics. In this case, the high order bit of the
//	first byte is set to 1, to distinguish it from a network ID, where the bytes can be
//	no larger than 255.
//
//	We the define the following quantities (class TUUID):
        UInt_t    fTimeLow;               // 60 bit time, lowest 32 bits
        UShort_t  fTimeMid;               // 60 bit time, middle 16 bits
        UShort_t  fTimeHiAndVersion;      // 60 bit time, highest 12 time bits (low 12 bits)
                                          // + 4 UUID version bits (high 4 bits)
				          // version is 1 if machine has valid network address
				          // and 3 otherwise.
        UChar_t   fClockSeqHiAndReserved; // high 6 clockseq bits (low 6 bits)
                                          // + 2 high bits reserved (currently set to binary 10)
        UChar_t   fClockSeqLow;           // low 8 clockseq bits
        UChar_t   fNode[6];               // 6 node (machine) id bytes

//	Then the following sprintf() call defines the format of the title string:
	sprintf(Title, "%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
           fTimeLow, fTimeMid, fTimeHiAndVersion, fClockSeqHiAndReserved,
           fClockSeqLow, fNode[0], fNode[1], fNode[2], fNode[3], fNode[4],
           fNode[5]);
//	Since the title written to disk is preceded by its byte count, the delimiting null is not written.
