Frank Filthaut re-organized the package so that the SAME code works on both TMB and TMBTree data formats. Version 7.2 already had this functionallity but more work was needed to actually decouple dependencies and give full access to TMB objects. ReadEvent classes had been simplified a lot moving all common methods (such as Jet Energy Scale corrections) to the base ReadEvent class. Also, new methods had been added for trigger information and track hit mask options (such as determining if a track has a hit in layer n) Below is a description of the main changes for TMBTrees:
if(!_readEvent->GetEntry(ii)) continue;has been replazed by
if(!_readEvent->Read(ii)) continue;All readXXX() methods (such as readTracks(), readMuons(), etc.) are now renamed getXXX().
readTracks() --> getTracks() readMuons() --> getMuons() readVertices()--> getVertices() etc.
_readEvent->Clear()is NOT longer needed as memory is cleaned up before reading a new event.
Trigger information is accessed through the new D0Trigger object:
D0Trigger* trigger = _readEvent->getTriggerInfo();These are examples to access trigger information:
bool muonTrigger = trigger->MuonTrigger();
bool jt_25tt_ng = triggerInfo->TriggerFired("JT_25TT_NG");
A new D0HitMask class has been introduced so that it becomes easier to access
geometric hit information.
See d0root_analysis/objects/D0HitMask.h
class for the list of available methods.
As an example, in order to check whether a track has a SMT hit in the layer 1, the user should do: bool layer1 = aTrack->GetHitMask().has_layer(1);
The probabilistic primary vertex selection is done in d0root_btag/algorithm class:
MBPSelectorHere is an example of use:
|
A new improved Primary Vertex finder is introduced. It is based on a 2-pass algorithm:
In the first pass, a loose vertex is found around each
Z-cluster in order to estimate the beam spot position
In a second pass, a tight vertex is found around the previous beam estimation.
Monte Carlo studies showed a factor of 2 resolution improvement with respect to the standard algorithm in DATA.
The algorithm is instantiated with the same parameters as the previous 1-pass PrimaryVertexGlobalFinder:
|
In order to run the script, you first need to create a new release area:
//Create release area
//----------------------------------
kinit
newrel -t p14.03.00 mydir
cd mydir
d0setwa
chmod 777 Maked0root_v8.0.csh
source Maked0root_v8.0.csh
cd d0root_btag root runBphysicsAnalysis_TMBtree.C
This command will create an instance of the class BphysicsAnalysis called "b". To see the list of available methods please look at d0root_btag/analysis/BphysicsAnalysis.h
To create a B-rtuple with information about J/Psi, Phi and B vertices, do:
b->Process_diMuons("myOutputFileName", all_muons, muon_pt, muon_quality);
where
The Muon quality definition is defined in d0root_analysis/objects/Muon.cpp:
In order to open the ROOT-tuple and plot the J/Psi invariant mass and lifetime,
do:
root myOutputFileName.root
tree->Draw("PSI.mass","PSI.mass>2 && PSI.mass<4")
tree->Draw("PSI.lifetime","PSI.mass>2.8 && PSI.mass<3.3")
Back to Vertex fitting and finding in ROOT page
Please send questions/comments/improvements/modifications to
Ariel Schwartzman and Don Lincoln
Back to Vertex fitting and finding in ROOT page