<!-- /ActionTrackerPlugin --> <LINK href="/twiki/pub/TWiki/KupuContrib/kuputwiki.css" type=text/css rel=stylesheet> <!-- /ActionTrackerPlugin --> <LINK href="/twiki/pub/TWiki/KupuContrib/kuputwiki.css" type=text/css rel=stylesheet> <!-- /ActionTrackerPlugin --> <LINK href="/twiki/pub/TWiki/KupuContrib/kuputwiki.css" type=text/css rel=stylesheet> <!-- /ActionTrackerPlugin --> <LINK href="/twiki/pub/TWiki/KupuContrib/kuputwiki.css" type=text/css rel=stylesheet> <!-- /ActionTrackerPlugin --> <LINK href="/twiki/pub/TWiki/KupuContrib/kuputwiki.css" type=text/css rel=stylesheet> <!-- /ActionTrackerPlugin --> <LINK href="/twiki/pub/TWiki/KupuContrib/kuputwiki.css" type=text/css rel=stylesheet> <!-- /ActionTrackerPlugin --> <LINK href="/twiki/pub/TWiki/KupuContrib/kuputwiki.css" type=text/css rel=stylesheet> <!-- /ActionTrackerPlugin --> <LINK href="/twiki/pub/TWiki/KupuContrib/kuputwiki.css" type=text/css rel=stylesheet> <!-- /ActionTrackerPlugin --> <LINK href="/twiki/pub/TWiki/KupuContrib/kuputwiki.css" type=text/css rel=stylesheet> <!-- /ActionTrackerPlugin --> <LINK href="/twiki/pub/TWiki/KupuContrib/kuputwiki.css" type=text/css rel=stylesheet> <!-- /ActionTrackerPlugin --> <LINK href="/twiki/pub/TWiki/KupuContrib/kuputwiki.css" type=text/css rel=stylesheet> <!-- /ActionTrackerPlugin --> <LINK href="/twiki/pub/TWiki/KupuContrib/kuputwiki.css" type=text/css rel=stylesheet> <!-- /ActionTrackerPlugin --> <LINK href="/twiki/pub/TWiki/KupuContrib/kuputwiki.css" type=text/css rel=stylesheet> <!-- /ActionTrackerPlugin --> <LINK href="/twiki/pub/TWiki/KupuContrib/kuputwiki.css" type=text/css rel=stylesheet> <!-- /ActionTrackerPlugin --> <LINK href="/twiki/pub/TWiki/KupuContrib/kuputwiki.css" type=text/css rel=stylesheet> <!-- /ActionTrackerPlugin --> <LINK href="/twiki/pub/TWiki/KupuContrib/kuputwiki.css" type=text/css rel=stylesheet> <!-- /ActionTrackerPlugin --> <LINK href="/twiki/pub/TWiki/KupuContrib/kuputwiki.css" type=text/css rel=stylesheet> <!-- /ActionTrackerPlugin --> <LINK href="/twiki/pub/TWiki/KupuContrib/kuputwiki.css" type=text/css rel=stylesheet> <!-- /ActionTrackerPlugin --> <LINK href="/twiki/pub/TWiki/KupuContrib/kuputwiki.css" type=text/css rel=stylesheet> <!-- /ActionTrackerPlugin --> <LINK href="/twiki/pub/TWiki/KupuContrib/kuputwiki.css" type=text/css rel=stylesheet> <!-- /ActionTrackerPlugin --> <LINK href="/twiki/pub/TWiki/KupuContrib/kuputwiki.css" type=text/css rel=stylesheet><!-- /ActionTrackerPlugin --><LINK href="/twiki/pub/TWiki/KupuContrib/kuputwiki.css" type=text/css rel=stylesheet><!-- /ActionTrackerPlugin --><LINK href="/twiki/pub/TWiki/KupuContrib/kuputwiki.css" type=text/css rel=stylesheet><!-- /ActionTrackerPlugin --><LINK href="/twiki/pub/TWiki/KupuContrib/kuputwiki.css" type=text/css rel=stylesheet><LINK href="/twiki/pub/TWiki/WysiwygPlugin/kuputwiki.css" type=text/css rel=stylesheet><LINK href="/twiki/pub/TWiki/WysiwygPlugin/kuputwiki.css" type=text/css rel=stylesheet><LINK href="/twiki/pub/TWiki/WysiwygPlugin/kuputwiki.css" type=text/css rel=stylesheet><LINK href="/twiki/pub/TWiki/WysiwygPlugin/kuputwiki.css" type=text/css rel=stylesheet><LINK href="/twiki/pub/TWiki/WysiwygPlugin/kuputwiki.css" type=text/css rel=stylesheet><LINK href="/twiki/pub/TWiki/WysiwygPlugin/kuputwiki.css" type=text/css rel=stylesheet><LINK href="/twiki/pub/TWiki/WysiwygPlugin/kuputwiki.css" type=text/css rel=stylesheet><LINK href="/twiki/pub/TWiki/WysiwygPlugin/kuputwiki.css" type=text/css rel=stylesheet><LINK href="/twiki/pub/TWiki/WysiwygPlugin/kuputwiki.css" type=text/css rel=stylesheet><LINK href="/twiki/pub/TWiki/WysiwygPlugin/kuputwiki.css" type=text/css rel=stylesheet><LINK href="/twiki/pub/TWiki/WysiwygPlugin/kuputwiki.css" type=text/css rel=stylesheet><LINK href="/twiki/pub/TWiki/WysiwygPlugin/kuputwiki.css" type=text/css rel=stylesheet><LINK href="/twiki/pub/TWiki/WysiwygPlugin/kuputwiki.css" type=text/css rel=stylesheet><LINK href="/twiki/pub/TWiki/WysiwygPlugin/kuputwiki.css" type=text/css rel=stylesheet><LINK href="/twiki/pub/TWiki/WysiwygPlugin/kuputwiki.css" type=text/css rel=stylesheet><LINK href="/twiki/pub/TWiki/WysiwygPlugin/kuputwiki.css" type=text/css rel=stylesheet><LINK href="/twiki/pub/TWiki/WysiwygPlugin/kuputwiki.css" type=text/css rel=stylesheet><LINK href="/twiki/pub/TWiki/WysiwygPlugin/kuputwiki.css" type=text/css rel=stylesheet><LINK href="/twiki/pub/TWiki/WysiwygPlugin/kuputwiki.css" type=text/css rel=stylesheet><LINK href="/twiki/pub/TWiki/WysiwygPlugin/kuputwiki.css" type=text/css rel=stylesheet><LINK href="/twiki/pub/TWiki/WysiwygPlugin/kuputwiki.css" type=text/css rel=stylesheet><LINK href="/twiki/pub/TWiki/WysiwygPlugin/kuputwiki.css" type=text/css rel=stylesheet><LINK href="/twiki/pub/TWiki/WysiwygPlugin/kuputwiki.css" type=text/css rel=stylesheet><LINK href="/twiki/pub/TWiki/WysiwygPlugin/kuputwiki.css" type=text/css rel=stylesheet><LINK href="/twiki/pub/TWiki/WysiwygPlugin/kuputwiki.css" type=text/css rel=stylesheet><LINK href="/twiki/pub/TWiki/WysiwygPlugin/kuputwiki.css" type=text/css rel=stylesheet><LINK href="/twiki/pub/TWiki/WysiwygPlugin/kuputwiki.css" type=text/css rel=stylesheet><LINK href="/twiki/pub/TWiki/WysiwygPlugin/kuputwiki.css" type=text/css rel=stylesheet><LINK href="/twiki/pub/TWiki/WysiwygPlugin/kuputwiki.css" type=text/css rel=stylesheet><LINK href="/twiki/pub/TWiki/WysiwygPlugin/kuputwiki.css" type=text/css rel=stylesheet><LINK href="/twiki/pub/TWiki/WysiwygPlugin/kuputwiki.css" type=text/css rel=stylesheet><LINK href="/twiki/pub/TWiki/WysiwygPlugin/kuputwiki.css" type=text/css rel=stylesheet><LINK href="/twiki/pub/TWiki/WysiwygPlugin/kuputwiki.css" type=text/css rel=stylesheet><LINK href="/twiki/pub/TWiki/WysiwygPlugin/kuputwiki.css" type=text/css rel=stylesheet><LINK href="/twiki/pub/TWiki/WysiwygPlugin/kuputwiki.css" type=text/css rel=stylesheet> ---+ Trigger Code For Developers *Note: For the DEV version of HLT* ---+++ How to define an HLT alley? * The HLT alleys are defined via options, see for example *HltHadConfAlleySequence.opts* at *$HLTSYSROOT/options*. The alley is a sequencer, that contains different *HltAlgorithms*. Most of the HLT alleys uses the HLT generic code, that is, a collection of few generic algorithms that deal with the reconstruction and the filtering. Usually a reconstruction algorithm is followed by a filtering one. * An HltAlgorithm takes as input Hlt selections and produce an output Hlt selection. Note that the Hlt selections can be stored or taken from the HltSummary, so, in oder words, the HLT code runs in the HltSummary. * These are the generic HLT algorithms: * *HltTrackFilter:* filter a selection of tracks using a list of filters for tracks. * some examples of filter: _"PT,>,2000",_ or _"IP_PV2D,||>,0.1",_ the first one requires that the transverse momentum of the track is greater than 2 GeV; the second filter requires the minimum absolut impact parameter with respect any vertices in the selection _"PV2D",_ that is, the primary vertices made with 2D Velo tracks, be greater than 0.1 mm. * To know what filters are available, please look at the code at *$HLTCOMMON/src/HltFunctionFactories.cpp* * The options are: * _HMyTrackFilter.InputSelection = "Tracks0"_ * _HMyTrackFilter.FilterDescriptor = {"PT,>,2000","IP_PV2D,||>,0.1"}_ (note the "," in the string, and "||" for absolute value) * _HMyTrackFilter.OutputSelection = "Tracks1"_ (if no option, the default it is the name of the algorithm!) * *HltVertexFilter:* filter a selection of vertices, using a list of filters for vertices, similar to *HltTrackFilter*. * The options are: * _HMyVertexFilter.InputSelection = "Vertex0"_ * _HMyVertexFilter.FilterDescriptor = {"VertexDimuonMass,>,500."}_ (the invariant mass, assumming they are muons, of the two tracks should be greather than 500 MeV) * _HMyVertexFilter.OutputSelection = "Vertex1"_ (if no option, the default is the name of the algorithm) * *HltTrackUpgrade:* Takes as input a selection of tracks and call the reconstruction to "upgrade" them adding information from another tracking detector. * Types of reconstruction accepted: * _TConf_ : a muon track, or calo, adding T stations, normally called "L0 Confirmation" * _Velo_: RZVelo tracks to Velo 3D * _VeloTT_: Velo 3D to VeloTT tracks * _Forward:_ Velo to Long tracks * If a track was previously "upgraded", the reconstruction is not run twice. * The options are: * _HMyTrackUpgrade.InputSelection = "TrackVelo"_ * _HMyTrackUpgrade.RecoName = "Forward"_ * _HMyTrackUpgrade.OutputSelection = "TrackForward"_ (again, if no output selection indicated, it takes the name of the algorithm) * *HltTrackMatch:* match two track segments into a track * Types of matches considered: * _VeloCalo_: a Velo3D track and a Calo * _VeloT :_ a Velo 3D track and a T segment * The options are: * _HMyTrackMatch.InputSelection = "TrackVelo"_ * _HMyTrackMatch.InputSelection2 = "TrackT"_ * _HMyTrackMatch.MatchName = "VeloT"_ * _HMyTrackMatch.OutputSelection = "TrackVeloT"_ (again, by default it takes the name of the algorithm) * *HltVertexMaker:* makes a 2 track vertex. * It combines two selections of tracks, into one selection of vertices * the vertices will have one track at least from the first selection of tracks, so track1+track1, and track1+track2, vertices will be procuded, were track1 belong to the first selection of tracks, and track2 belongs to the second selection of tracks. * The vertices will be created if they pass a list of filters based on two tracks. One example of filter is "DOCA,<,0.2", that is the two tracks should have a Distance Of Closest Approach smaller than 0.2 mm. * The options are: * _HMyVertexMaker.InputSelection = "Tracks0"_ * _HMyVertexMaker.InputSelection2 = "Tracks1"_ * _HMyVertexMaker.FilterDescriptor = {"DOCA,<,0.2"}_ * _HMyVertexMaker.OutputSelection = "Vertices"_ (again, by default it takes the name of the algorithm) * *HltVertexUpgrade:* "upgrade" the 2 tracks of the vertex, adding to them information from another tracking detector * It one of the tracks has been already "upgraded", the reconstruction it is not run again. * The possible "upgrades" are the same as the HltTrackUpgrade. * The options are: * _HMyVertexUpgrade.InputSelection = "VertexVelo"_ * _HMyVertexUpgrade.RecoName = "Forward"_ * _HMyVertexUpgrade.OutputSelection = "VertexForward"_ (again, by default, it takes the name of the algorithm) * *HltXXXPrepare:* uses a container of objects of type XXX (L0Muon,L0Calo,Track,Vertex), in the TES, as a selection * These algorithms are the entry points of the HLT * All the L0 candidates are converted into object of type Track, for convenience. * In the case of XXX as Track or Vertex, this algorithm is identical as *HltTrackFilter*, except that the input comes from the TES, that means that one can apply a set of filters to the input tracks to make a selection. * The options are (as the HltTrackFilter) except: * _HMyXXXPrepare.TESInput = "Hlt/Track/RZVelo"_ * _HMyXXXPrepare.FilterDescriptor = {"IP_PV2D,>,0.1"};_ (only for *HltTrackPrepare* and *HltVertexPrepare*) * *HltSelectionFilter:* set a positive decision if any of the input selections has been passed * The options are: * _HMySelectionFilter.InputSelections = {"HltSelection1","HltSelection2"}_ * _HMySelectionFiter.OutputSelection = "Selection1_or_Selection2"_ (by default takes the name of the algorithm) * *L0Entry*: set a positive decision if any of the L0 channels indicated has a positive decision. * The options are: * _HMyL0Entry.L0ChannelNames = {"Hadron"}_ (names as in L0DUReport) * _HMyL0Entry.OutputSelection = "MyL0Entry"_ (by default it takes the name of the algorithm) ---+++ How to save a Selection in the HltSummary or the TES? * <p>You need to indicate the name of the Hlt selection to the algorithm *HltSummaryWriter*,</p> * _HltSummaryWriter.Save += {"MySelection"};_ * To save all the Hlt selections in the HltSummary, activate the option: * _HltSummaryWriter.SaveAll = true;_ * To copy the list of candidates of a HltSelection into the TES, added the name of the selection to *HltSelectionToTES* algorithm, if the candidates are track, they will show in the TES in the location "Hlt/MySelection/Track" * _HltSelectionToTES.Copy = {"MySelection"};_ * To copy the candidates of all Hlt selection into the TES, activate the option: * _HltSelectionToTES.CopyAll = true;_ ---+++ How to monitor the HLT? * *HltAlgorithm* monitors automatically the number of candidates in the input and output selections. To book the histogram from the options do the following, note the histogram will be stored in the output file under a directory with the name of _MyAlgorithm_ * _MyAlgorithm.HistogramDescriptor += {"MyInputSelection",("MyInputSelection",20,0.,20.),"MyOutputSelection",("MyOutputSelection",10,0.,10.)};_ * The *HltTrackFilter* and *HltTrackVertex* algorithms also monitor the quantities in which we apply a filter, i.e " _PT,>,1500",_ will produce to histogram, _"PT_ " with the distribution of the Pt of all the input candidates, and _"PTBest"_ with the distribution, in this case, of the input candidate with the highest Pt value. To book and fill this histogram of the quantities associated to the filters, add the following option: * _MyAlgorithm.HistogramDescriptor += {"PT",("PT",100,0.,6000.)};_ ---+++ How to write a new C++ filter for the HLT? * The Hlt filter algorithms, *HltTrackFilter*, and *HltVertexFilter*, uses filters,ie _"PT,>,1500."._ The filters rely on a function that compute a quantity, in this case, a PT function. * There are two types of functions: univaluated, with one argument, as _PT(track),_ and bivaluated, with two arguments, as _IP(Track,Vertex)_ * To write a new C++ filter you need to code a function (uni or bivaluated), and to declare it to the factory: * To code a C++ function: * A simple function must inherit form *Hlt::TrackFunction*, or *Hlt::TrackVertexBiFunction*, and implement the _operator()._ To do so, please look at the file *HltFunctions.h, HltFunctions.cpp* at $ *HLTCOMMONROOT/src,* and if possible, place your code in the HltFunction files. * To create a function that delegates the computation of the quantity to a *tool*, for example, _"IsMuon",_ your tool should inherit from _ITrackFunctionTool._ * To decleare your function to the factory (either a simple function, or a function that delegates in a tool), follow the code at *$HLTCOMMONROOT/src/HltFunctionFactories.cpp* ---+++ How to write a new C++ HLT Algorithm or Tool? * In principle, the HLT generic algorithms should cover your needs, if not, you can use the following Hlt base clases, and get inspiration of the Hlt common algorithms code at *$HLTCOMMONROOT/src*: * *HltBaseAlg:* * Provides the basic functionality of the HLT for a simple _algorithm:_ * booking histogram via options using the _HistoDecriptor_ * A frequency to fill histograms, controlled by the option _HistogramUpdatePeriod_ * counters and printouts of the counters * access to all the Hlt selections in the event, their decision and candidates * access to the Hlt configuration, that is the flow of the Hlt, the selections names, and filters strings. * *HltTool:* * Provides the basic functionality of the HLT for a __tool__ (see above) * *HltAlgorithm:* * An algorithm to produce a Hlt selection as output and that can use Hlt selections as input * Provides: * The basic HLT functionality (see HltBaseAlg) * The options for the input selections: _InputSelection, InputSelection2, InputSelections_ * The options for the output selection: _OutputSelection_ (by default it takes the name of the algorithm) * If the input selections have not a positive decision, or have no candidates, the algorithm execution stops. * The input and output selection candidates are monitored by histograms, that can be booked via the option _HistogramDescriptor_ (see above) * If there is more than one output candidate, the output selection is possitive and the Hlt process continues, otherwise stops. * The minimun number of output candidates for a positive decision if controlled by _MinCandidates_ option. * C++ guide to implement a HltAlgorithm: * You need to retrieve (the input selections) and register (the output selection) at the initialize() method of your algorithm * _m_inputTracks = &retrieveSelection<Track>(m_inputSelectionName);_ * _m_outputTracks = &registerSelection<Track>(m_outputSelectionName);_ * You need to fill the output selection with the candidates in the execute() method of your algorithm * _m_outputTracks->push_back( mycandidate);_ * If you do not produce a list of candidates, only a boolean decision, please add the _decision_ true or false in the execute() method * _setDecision(decision);_ * In the example above: _m_inputTracks, m_outputTracks_ are pointers to *Hlt::TrackSelection* type, defines as members variables in *HltAlgorimth*, and mycandidate is a pointer to *LHCb::Track* type. ---+++ How to incorporate tracking reconstruction to the HLT? * How to upgrade a Track? * That is: how to extend a track, adding information from a subdetector, i.e, use a muon track as seed to produce tracks that have also T segments. * Implement a *Gaudi tool* with the interface *ITracksFromTrack* * Declare your reconstruction tool in the _recoConfiguration()_ method of the file *$HLTTRACKINGROOT/src/TracksUpgradeTool.cpp,* following the other cases as example. * How to match two tracks segments into one track? * That is, a velo segment and T segment into a forward track. * Implement a *Gaudi tool* with the interface *ITrackMatch* * Declare your matching tool in the _recoConfiguration()_ method of the file *$HLTTRACKINGROOT/src/TrackMatch.cpp*, following the other cases as example. ---+++ How to monitor an alley in Python? * Get Hlt/HltPython package * In python/examples there is a python script *hltalleymonitor.py* to monitor an alley * _python hltalleymontitor.py -c Bs2PhiPhi -n 1000 -a SingleHadron_ * Inputs are the channel, the number of events, and the list of alleys names to monitor * Given the alley name the following monitoring taks can be performed: * Rate (or step) plot for the sequencial steps of an alley, rate only on TOS events * Candidates for each step of the alley (again possibility of TOS candidates only) * Distribution of the variables in which we cut (for all candidates, the best and for TOS only) * A ROOT file is produce with the histograms related with the monitoring tacks, * i.e: SingleHadron:Rate, SingleHadron:RateTOS, SingleHadron:Candidates, etc <p style="MARGIN-RIGHT: 0px" dir="ltr">For more info please send an email to Jose A. Hernando [[mailto:hernando@cern.ch][hernando@cern.ch]] </p> -- Main.MiriamGandelman - 16 Oct 2006 ---+++ How to associate HLT fitted tracks * In order to associate tracks which you have fitted in the HLT, you need to add the corresponding Track container to $HLTCONFROOT/options/HltTrackAssociator.opts. ---+++ Hlt2Lines and what they do * Hlt2LineDstar -- uses normal Hlt2Pions/VTTPions for the slow pion, Hlt2GoodPions/Kaons for the D0 daughters. No "fast-fit" used. * Hlt2LineBd2MuMuKstar -- uses Hlt2Muons, Hlt2GoodPions/Kaons. No "fast-fit" used. * Hlt2LineBiasedDiMuon -- uses Hlt2SharedDiMuon, meaning Hlt2Muons. No "fast-fit" used. * Hlt2LineB2JpsiX_MuMu -- runs on output of Hlt2LineBiasedDiMuon. * Hlt2LineBu2LLK -- Uses Hlt2GoodKaons, Hlt2Electrons, and Hlt2Muons. No "fast-fit" used. "Mondrian" style selection with four regions: "whole phase space aka paranoia", "signal", "Jpsi", and "HighMass" * Hlt2LineB2HH -- Uses Hlt2Pions to deliberately avoid significance cuts. No "fast-fit" used. * Hlt2LineBd2D0Kstar -- Uses shared D0 (Hlt2GoodPions/Kaons) and K* (Hlt2GoodPions/Kaons). No "fast-fit" used. * Hlt2LineBs2PhiGamma -- Uses Hlt2Photons and shared Phi2KK (Hlt2GoodKaons). No "fast-fit" used and cannot work with one at present due to problem with large Z states. * Hlt2LineBs2PhiPhi -- Uses shared Phi2KK (Hlt2GoodKaons). No "fast-fit" used. * Hlt2LineUnbiasedBs2PhiPhi -- Uses shared UnibiasedPhi2KK (Hlt2Kaons). No "fast-fit" used. * Hlt2LineBu2D0K_KsHH -- Uses shared D02KSXX particles (Hlt2GoodKaons,Hlt2KsLLParticles,Hlt2SharedKsLL). No "fast-fit" used. * Hlt2LineBu2D0K_KsDD -- Uses Sean's staged method of making the DD Kshorts. Uses Hlt2GoodPions/Kaons and does the seeding required to make DD Kshorts, but no "fast-fit". * Hlt2LineBs2JpsiEta -- Uses Hlt2Photons and Hlt2Muons. No "fast-fit" used and cannot work with one at present due to problem with large Z states. * Hlt2LineBs2JpsiEtap -- Uses Hlt2GoodPions and Hlt2SharedJpsi2MuMu. No "fast-fit" used. * Hlt2LineBs2EtacPhi -- Uses Hlt2SharedRho0 and Hlt2SharedPhi2KK. No "fast-fit" used. * Hlt2LineHidValley -- Uses private code in Hlt2HidValley and PatPV3D. No idea what happens internally. * Hlt2LineZ02MuMu -- Uses output of Hlt2SharedDiMuon. No "fast-fit" used. * Hlt2LineBd2JpsiMuMuKsLLBiased -- Uses output of Hlt2SharedJpsi2MuMu and Hlt2SharedKsLL. No "fast-fit" used. * Hlt2LineBd2JpsiMuMuKsDDBiased -- Uses output of Hlt2SharedJpsi2MuMu and does the seeding required to make DD Kshorts, but no "fast-fit". The Jpsi part should probably be made common with Hlt2LineBd2JpsiMuMuKsLLBiased. * Hlt2LineBd2JpsiMuMuKsLLUnbiased -- Same as Hlt2LineBd2JpsiMuMuKsLLBiased except lifetime cuts replaced by harder PT cuts. * Hlt2LineBd2JpsiMuMuKsDDUnbiased -- Same as Hlt2LineBd2JpsiMuMuKsDDBiased except lifetime cuts replaced by harder PT cuts. Same comment about merging Jpsi with that of Hlt2LineBd2JpsiMuMuKsLLUnbiased applies. * Hlt2LineUnbiasedDiMuon -- Uses output of Hlt2SharedDiMuon. No "fast-fit" used. * Hlt2LineUnbiasedJPsi -- Same as Hlt2LineUnbiasedDiMuon but selects JPsi. * Hlt2LineDrellYan -- Same as Hlt2LineUnbiasedDiMuon and Hlt2LineUnbiasedJPsi but selects DrellYan dimuons. * Hlt2LineBu2D0K_KPi -- Uses Hlt2SharedD02KPi and Hlt2GoodKaons. No "fast-fit" used. * Hlt2LineB2MuTrack -- Uses Hlt2Muons and Hlt2Pions. No "fast-fit" used. * Hlt2LineB2MuTrackNoPT -- Same as Hlt2LineB2MuTrack but no PT cuts. * Hlt2LineBd2JpsiKstar -- Uses Hlt2Kaons/Pions on purpose to avoid IP cuts on the individual daughers. Also uses SeqHlt2SharedHighPtJpsi2MuMu. No "fast-fit" used. * Hlt2LineBs2JpsiPhi -- Uses Hlt2Kaons on purpose to avoid IP cuts on the individual daughers. Also uses SeqHlt2SharedHighPtJpsi2MuMu. No "fast-fit" used. * Hlt2LineBd2JpsiK -- Uses Hlt2Kaons/Pions on purpose to avoid IP cuts on the individual daughers. Also uses SeqHlt2SharedHighPtJpsi2MuMu. No "fast-fit" used. * Hlt2LineB2TwoBody -- Uses almost every shared state there is to inclusively search for '2-body' decays. No "fast-fit" used. * Hlt2LineTopological -- Uses Hlt2Pions and Kaons, selects 2,3, and 4 body combinations of them, then performs a fast-fit (currently a unidirectional 1-pass Kalman with no smoothing), then selects 2,3, and 4 body combinations using the fitted tracks. Copies tracks to a new container called Hlt/Track/TFForwardForTopo before fitting them. * Hlt2LineInclusivePhi -- Uses Hlt2Pions and Kaons, selects a phi, then performs a fast-fit (currently a bidirectional 1-pass Kalman with smoothing), then selects phis using the fitted tracks, then runs the RICH, then selects phis using the RICH identified kaons. Copies tracks to a new container called Hlt/Track/IncPhiTFForward before fitting them.
Attachments
Attachments
Topic attachments
I
Attachment
History
Action
Size
Date
Who
Comment
pdf
Structure_and_guidelines.pdf
r1
manage
22.7 K
2006-10-16 - 18:47
MiriamGandelman
Code structure and guidelines
This topic: LHCb
>
LHCbTrigger
>
HltForDevelopers
Topic revision: r9 - 2009-04-06 - unknown
Copyright &© 2008-2023 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use
Discourse
or
Send feedback