[This needs updating.]
CMS work book and generation/simulation.
Oh, and the list of errors.

(a) Setup the CMS environment
. /vols/grid/glite/ui/3.2.5-0/external/etc/profile.d/grid-env.sh
voms-proxy-init --voms cms
I need a 64 bit release here:
. /vols/cms/grid/setup.sh -arch=slc5_amd64_gcc434 (this is now (May 2011) the default)
Make a project space (once):
scram project CMSSW CMSSW_4_1_5
Always do this:
cd CMSSW_4_1_5
cmsenv

(b) Generate a config file
ln -s /vols/sl5_exp_software/cms/slc5_amd64_gcc434/cms/cmssw/CMSSW_4_2_0/python/Configuration/Generator/SingleMuPt1_cfi.py .
This makes a config file that generates 10 single muon events:
cmsDriver.py SingleMuPt1_cfi.py -s GEN,SIM,DIGI,RECO -n 10 --no_exec --conditions=auto:startup
Result: SingleMuPt1_cfi_py_GEN_SIM_RECO.py


(c) Run the software
cmsRun SingleMuPt1_cfi_py_GEN_SIM_RECO.py >& singlemupt1_1.log

(c1) ProductNotFound
Job fails immediately with error:
cms::Exception going through module SiPixelRecHitConverter/siPixelRecHits run: 1 lumi: 1 event: 1
If you wish to continue processing events after a ProductNotFound exception, add "SkipEvent = cms.untracked.vstring('ProductNotFound')" to the "options" PSet in the configuration.
ProcessingStopped
Update the configuration file as suggested:

(c2)an exception occurred and all paths for the event are being skipped
Now processes 10 events all with the error:
egin processing the 1st record. Run 1, Event 1, LumiSection 1 at 09-May-2011 16:53:50.404 BST
%MSG-w ProductNotFound: PostProcessPath 09-May-2011 16:54:00 BST Run: 1 Event: 1
an exception occurred and all paths for the event are being skipped:
---- ProductNotFound BEGIN
getByLabel: Found zero products matching all criteria
Looking for type: edmNew::DetSetVector < SiPixelCluster >
Looking for module label: siPixelClusters
Looking for productInstanceName:
cms::Exception going through module SiPixelRecHitConverter/siPixelRecHits run: 1 lumi: 1 event: 1
ProcessingStopped
Exception going through path reconstruction_step
---- ProductNotFound END
but there is an outputfile, and it's twice as big as the output file from the first try. At this point, I decide to work myself through Gordon's tutorial, because I clearly need some kind of quality control on my output.

(c3) Try this with a different physics process There are plenty to choose from, but for nostalgic reasons I pick bJpsiX_7TeV_cfi.py
This seems to work much better, at least I don't see any significant error in the logs.

(d) Verify the output
Here everything goes terribly wrong. I cannot find a way to easily see the number of events in the output file, but using TBrowser and a hacked version of the TwoMuonFilter from the tutorial seem to suggest that there are no events in the output file (though it seems to use a fair amount of CPU generating it). Suspecting a filtering issue (generated events getting rejected by the physics process selection filter) I decide to generate more events (80000). This fails after ~ 10000 events with the same error as the single muons
%MSG-s CMSException: PostEndRun 28-Jun-2011 16:39:50 BST PostEndRun
cms::Exception caught in cmsRun
---- ProductNotFound BEGIN
getByLabel: Found zero products matching all criteria
Looking for type: edmNew::DetSetVector<SiPixelCluster>
Looking for module label: siPixelClusters
Looking for productInstanceName:

cms::Exception going through module SiPixelRecHitConverter/siPixelRecHits run: 1 lumi: 1 event: 11434
If you wish to continue processing events after a ProductNotFound exception, add "SkipEvent = cms.untracked.vstring('ProductNotFound')" to the "options" PSet in the configuration.
ProcessingStopped
Exception going through path reconstruction_step
EventProcessingStopped
an exception occurred during current event processing
cms::Exception caught in EventProcessor and rethrown
---- ProductNotFound END

so I add
process.options = cms.untracked.PSet(
# after crash
SkipEvent = cms.untracked.vstring('ProductNotFound')
)
at some promising place and the code runs fine. TBrowser now suggests there are some (17) entries in the file (and it's size has increased considerably), so I am hoping for 17 events. However now it fails with:
%MSG-s CMSException: AfterFile 28-Jun-2011 14:20:53 BST PostEndRun
cms::Exception caught in cmsRun
---- ProductNotFound BEGIN
getByLabel: Found zero products matching all criteria
Looking for type: std::vector
Looking for module label: muons
Looking for productInstanceName:

cms::Exception going through module TwoMuonFilter/twoMuonFilter run: 1 lumi: 1 event: 11434
If you wish to continue processing events after a ProductNotFound exception,
add "SkipEvent = cms.untracked.vstring('ProductNotFound')" to the "options" PSet in the configuration.
ProcessingStopped
Exception going through path p
EventProcessingStopped
an exception occurred during current event processing
cms::Exception caught in EventProcessor and rethrown
---- ProductNotFound END

which I don't understand, because there seem to be some muons around:

edmFileUtil -P /store/user/dbauer/bJpsiX_7TeV_cfi_py_GEN_SIM_DIGI_RECO.root | grep -i recomuon
[snip]
Branch 305 of Events tree: recoMuons_muons__RECO. Total size = 2601
[snap]

I add the exception and while it doesn't do anything, I can at least confirm that there are 17 events.

Googling the Pixel error points to this post (from 2008 no less, only accessible to CERN users). Stuart W translates this into "try cmsDriver.py bJpsiX_7TeV_cfi.py -s GEN,SIM,DIGI,L1,DIGI2RAW,RAW2DIGI,RECO --no_exec -n 100000 --conditions=auto:startup". I guess most MC production is done centrally at CMS (which it should be!!!), but it would be nice if that was documented anywhere.

(e) Try again with new brillant idea
cmsDriver.py bJpsiX_7TeV_cfi.py -s GEN,SIM,DIGI,L1,DIGI2RAW,RAW2DIGI,RECO --no_exec -n 100000 --conditions=auto:startup
cmsRun bJpsiX_7TeV_cfi_py_GEN_SIM_DIGI_L1_DIGI2RAW_RAW2DIGI_RECO.py
This makes a 7 M output file, which is about 2.5 x the size from yesterdays file. There's hope ....
I run the analysis program and it doesn't crash. Woohoo. There are muons in the event and they aren't the same in each event(*), that's good enough for me.

(*) Let's see what happens when I turn this into a grid job - do I need to give a different random seed each time and/or how long will it take me to understand the CMS Random Number Service (see here and here).
Running MC on the Grid