Title: B-ID software overview - VR
1B-ID code implementation
- Basics of implementation
- Tagger implementation
- Package overview
- More information
- http//www-d0.fnal.gov/nikhef/muonbtag/codechange/
2Old implementation
ReadEvent
vertexTag
calls
modifies
bcjet_reco
eTag
bcJet
impTag
bcjet_analyze
3New implementation
bcjet_reco
determines
ReadEvent
bcJetInit
JetChunk
eTagReco
eTagChunk
creates
bcjet_reco
impTagReco
creates
impTagChunk
Steered by rcp
vertexTagReco
creates
vertexTagChunk
bcjet_analyze
muTagReco
creates
muTagChunk
bcJetFinish
bcJetChunk
creates
4Framework
- bcJetReco steered by bcJetReco.rcp
- Tells which packages to run
- Starts with bcJetInit, finalizes with bcJetFinish
bcJetReco.rcp string PackageName
"Controller" string Packages "init mutag etag
finish" RCP init ltbcjetreco bcJetInitgt RCP
finish ltbcjetreco bcJetFinishgt RCP mutag
ltbc_muTagreco bc_muTagrecogt RCP etag
ltbc_eTagreco bc_eTagrecogt
5bcJetInit
- Figures out which JetChunk to use
- Steered by bcJetInit.rcp file
- Reads RCP used for Jet reconstruction
- Initializes EventUtilities object with correct
JetChunkSelector
bcJetInit.rcp string PackageName
"bcJetInit" RCP ClusterAlgorithm ltcalreco
CalCone07gt
6EventUtilities
- Singleton object used for event access
- Offers functions which extract the correct tag-
and jetchunks - Most important
- THandleltJetChunkgt getJetChunk(Event)
- Taggers must call above function to get correct
JetChunk
7bcJetFinish
- Final step in bcjet reconstruction
- Creates bcJetChunk
- Reads in each chunk made by each tagger
- Associates tag with correct jet
- Creates bcJet and stores associated tags
8Tagger implementation
- xTagReco
- analyzes Jets xChunk
- creates one tag per Jet
- Tag can hold multiple physics objects
- Inserts xTagChunk in event
- xTagChunk must hold ChunkID of parent JetChunk
- xTagChunk needs function with signature
- xTagIndex getxTagIndex(const Jet jet) const
- returns a LinkIndex to xtag in chunk belonging to
jet
9Requirements on bcjet_analyze
- Blocks in bcjet_analyze have to be adapted to new
bcJet - Instead of calling properties of Jet, now call
properties of tag
void BlockMuonaccumulate() vectorltmuTaggt
mutags bcjet.getMuTags(mutags) if(
mutags.size() 0 ) return muTag tag
mutags.front() int tagged (tag.getBJetProbabi
lity() gt 0.5) ? 1 0 AccumulateInt("Tagd",
tagged) AccumulateFloat("Px",
tag.muon().px())
10Package overview
bcjetreco bcJetInit bcJetFinish
bcjet_utilities EventUtilities bcJetUtilities
bcjet_evt bcJet bcJetChunk xTag xTagChunk
bc_xTagreco bcXTagreco RegbcXTagReco
bcjet_analyze bcJetAnalyze BlockX
11Multiple JetChunks
ReadEvent
bcjet_reco 1
bcJetInit 1
JetReco 1
eTagReco
JetReco 2
bcJetFinish
bcJetChunk 1
bcjet_reco 1
bcjet_reco 2
bcJetInit 2
bcjet_reco 2
muTagReco
bcjet_analyze
bcJetFinish
bcJetChunk 2
12Packages involved
- All released in t01.39.00
- Framework packages
- bcjetreco, bcjet_utilities, bcjet_evt
- Tagger packages
- bc_eTagreco, bc_impTagreco, bc_likeTagreco,
bc_muTagreco, bc_vtxTagreco - Analysis package
- bcjet_analyze
13Current status plans
- Implementation in t01.39.00 works fine
- Some small bugs need to be ironed out
- Crash in muon analyze code?
- Preparing a release involving all taggers and
good B-ID for p09