130 likes | 353 Views
B-ID code implementation. Basics of implementation Tagger implementation Package overview More information: http://www-d0.fnal.gov/nikhef/muonbtag/codechange/. Old implementation. ReadEvent. vertexTag. calls. modifies. bcjet_reco. eTag. bcJet. impTag. bcjet_analyze.
E N D
B-ID code implementation • Basics of implementation • Tagger implementation • Package overview • More information: http://www-d0.fnal.gov/nikhef/muonbtag/codechange/ B-ID software overview - VR O. Peters
Old implementation ReadEvent vertexTag calls modifies bcjet_reco eTag bcJet impTag bcjet_analyze B-ID software overview - VR O. Peters
New implementation bcjet_reco determines ReadEvent bcJetInit JetChunk eTagReco creates eTagChunk bcjet_reco impTagReco creates impTagChunk Steered by rcp vertexTagReco creates vertexTagChunk bcjet_analyze muTagReco creates muTagChunk bcJetFinish creates bcJetChunk B-ID software overview - VR O. Peters
Framework • 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 = <bcjetreco bcJetInit> RCP finish = <bcjetreco bcJetFinish> RCP mutag = <bc_muTagreco bc_muTagreco> RCP etag = <bc_eTagreco bc_eTagreco> B-ID software overview - VR O. Peters
bcJetInit • 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 = <calreco CalCone07> B-ID software overview - VR O. Peters
EventUtilities • Singleton object used for event access • Offers functions which extract the correct tag- and jetchunks • Most important: • THandle<JetChunk> getJetChunk(Event) • Taggers must call above function to get correct JetChunk B-ID software overview - VR O. Peters
bcJetFinish • 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 B-ID software overview - VR O. Peters
Tagger 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 B-ID software overview - VR O. Peters
Requirements 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 BlockMuon::accumulate(…) { vector<muTag> mutags; bcjet.getMuTags(mutags); if( mutags.size() == 0 ) return; muTag tag = mutags.front(); int tagged = (tag.getBJetProbability() > 0.5) ? 1 : 0; AccumulateInt("Tagd", tagged); AccumulateFloat("Px", tag.muon().px()); } B-ID software overview - VR O. Peters
Package overview bcjetreco bcJetInit bcJetFinish bcjet_utilities EventUtilities bcJetUtilities bc_xTagreco bcXTagreco RegbcXTagReco bcjet_evt bcJet bcJetChunk xTag xTagChunk bcjet_analyze bcJetAnalyze BlockX B-ID software overview - VR O. Peters
Multiple 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 B-ID software overview - VR O. Peters
Packages 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 B-ID software overview - VR O. Peters
Current 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 B-ID software overview - VR O. Peters