190 likes | 336 Views
From n-Tuples to b-Tags. ?. P. Track. P. Jet. Next goal: Boosted Sphericity. Boost. b meson. Detector at rest. b meson at rest. Axel Naumann, D Ø University of Nijmegen, The Netherlands. Next goal: Boosted Sphericity. Boost = f (meson mass)
E N D
From • n-Tuples • to • b-Tags ? Dutch Morning Meeting
P Track P Jet Next goal: Boosted Sphericity Boost b meson Detector at rest b meson at rest Axel Naumann, DØ University of Nijmegen, The Netherlands Dutch Morning Meeting
Next goal: Boosted Sphericity • Boost = f(meson mass) • Define asymmetry A where A=f(boost)=f(meson mass) as • with i running over all tracks • Use as new cut parameter Dutch Morning Meeting
Data • Data used to check feasibility of parameters: • 2000 events QCD • 2000 events inclusive b b-bar • 0 min bias, jet Pt>10GeV2 as for now I need (reco’ed) jets only, • generated with Onne’s and Pythia’s help • Ran the whole chain until d0recoanalyze p08-10 • Using SEED to analyze d0recoanalyze output n-tuple Dutch Morning Meeting
SEED(formerly known as D0nau) • Loads of changes since last talk, mainly • renamed to SEED, • documentation on the web: http://www-d0.fnal.gov/nikhef • based on ROOT’s TTree: Much faster, able to handle huge amounts of data • easier to use interfaces • new cvs packages seed and seed_framework • might be added as standard ROOT package • BUT: Still tested only under Windows • ROOT benefits a lot: found about 0.5 ROOT bugs/day… Dutch Morning Meeting
SEED – Problems • Mainly due to ROOT: • Only few ROOT users use Windows, many bug don’t exist in Windows • ROOT still under development, severe changes producing severe bugs, but incredibly helpful development team! • Efforts to get it under control: • Send a bug report every 2nd day • Finally able to compile (and debug) ROOT for Windows locally on D0NTWG03 (dual 1.3GHz Xeon 4, 1GB RAM), formerly allocated as Windows build machine for L3, now allocated to compile ROOT, only one user so far… Dutch Morning Meeting
SEED – Why? • Common analysis classes • OO code • reusable code • n-tuple independent code • looks & feels like ROOT code • use all the ROOT code already there • It so much looks like ROOT it might soon be a part of it! Dutch Morning Meeting
SEED – What? • Define a mapping (called “seeds”) from n-tuple column to class member • SEED converts n-tuple into a file containing data in classes, not in columns, using this mapping • Access data in classes in file, use classes’ (and ROOT’s) methods to analyze and plot your data Dutch Morning Meeting
SEED – main() • using namespace seed; • int main(int argc, char* argv[]){ • TEventSample* pEventSample = • TEventSample::Load("../jets.root"); • // create the data objects • TJCCGJet jet(pEventSample); • TOPRTParticle prt(pEventSample); Dutch Morning Meeting
SEED – main() (cont.) • for (iEvent=0; iEvent< pEventSample->GetNEvents(); iEvent++){ • pEventSample->SetEvent(iEvent); • for (iJet=0; iJet< jet.Size(); iJet++){ • dPhiJet=jet[iJet].Get4Vec().Phi(); • for (int iPrt=0; iPrt < prt.Size(); iPrt++){ • dPhi=prt[iPrt].GetTrack().Get4Vec().Phi(); • h1.Fill((dPhi-dPhiJet)/kPI); • }; // for Particles • }; // for Jets • }; // for Event Dutch Morning Meeting
SEED – Seeds (Header) • #include "seed/TCaloJet.h" • #include "seed/TSeed.h" • namespace seed{ • MAKE_SEED( TCaloJet, TJCCGJet ) • } Dutch Morning Meeting
SEED – Seeds (Source 1/3) • #include "TJCCGJet.h" • #include "seed/TSingleEntryTree.h" • namespace seed { • bool TJCCGJet_Seed::FillSeedData(TSingleEntryTree &tree, const int iEventNo) { • --- Fill data from n-tuple into SEED --- • return true; • } • } // end namespace seed Dutch Morning Meeting
SEED – Seeds (Source 2/3) • In …::FillSeedData(…): • tree.SetBranch("JCCG"); • for (int iJet = 0; iJet<(int)tree.GetValue("JCCGnjet"); iJet++) • { • TCaloJet* pJet=NewEntry(); • tree.SetIndex(iJet); • --- initialize pJet with data from n-tuple --- • } Dutch Morning Meeting
SEED – Seeds (Source 3/3) • From TCaloJet’s header: • TCaloJet& TCaloJet::Set(const TLorentzVector& lv, const double dWidthEta, const double dWidthPhi, const double dEMF, const int iN90); • pJet->Set( • TLorentzVector(tree.GetValue("JCCGPx"), • tree.GetValue("JCCGPy"), • tree.GetValue("JCCGPz"), • tree.GetValue("JCCGE")), • tree.GetValue("JCCGEtaW"), • tree.GetValue("JCCGPhiW"), • tree.GetValue("JCCGEMF"), • tree.GetValue("JCCGn90")); Dutch Morning Meeting
SEED – n-Tuple to Class • #include "seed/TEventSample.h" • #include "TJCCGJet.h" • #include "TOPRTParticle.h" • using namespace seed; • int main(int argc, char* argv[]) • { • TEventSample es; • es.Create("bbbar.ntpl","bbbar.root"); • return 0; • } Dutch Morning Meeting
SEED – Get it, it’s free! • Look at http://www-d0.fnal.gov/nikhef to download the package. • Or d0-cvs checkout seed and seed_framework. • Or ask me to send you a copy by email. Dutch Morning Meeting
SEED – The result: HEP classes • Or: HEPEVT+++ • Discussion on • Design of standard MC classes • Particle • Branching Ratios • Stack (decay tree) • PDG connection • Design of standard Physics Objects classes • Feasibility • Interfaces • Analysis methods Dutch Morning Meeting
HEP Classes • Currently 14 members from 5 experiments • D0, CDF, ALICE, BaBar, Atlas • Participate or inform yourself at • http://listserv.fnal.gov/archives/root_hep_classes.html • or send me an email. • First meeting during ROOT workshop, see status report at • http://www-root.fnal.gov/root2001/presentations/session6/HEP%20(Particle)%20Classes%20in%20Root.pdf Dutch Morning Meeting
HEP Classes - Status • PDG implementations in StdHep++ and ROOT will be merged (incl. branching ratios) • Discussion on how to implement vertex and stack class, using ALICE and StdHep++ libraries as starting point; review of both implementations w.r.t. requirements specified during discussion session • Physics Objects: Many doubts (Politics? Do experiments share a non-trivial part of the results of their event reconstruction? Will we all die before we have a standard set of classes?). Going to discuss feasibility on actual (example) implementation. Dutch Morning Meeting