The up-to-update examples are also available from the SVN:
Vertex Finder Example
<processor name="VertexFinder" type="LcfiplusProcessor"> <!-- run primary and secondary vertex finders --> <parameter name="Algorithms" type="stringVec"> PrimaryVertexFinder BuildUpVertex </parameter> <parameter name="ReadSubdetectorEnergies" type="int" value="1"/> <!-- true for ILD --> <parameter name="UpdateVertexRPDaughters" type="int" value="1"/> <!-- false for non-updative PandoraPFOs --> <parameter name="PrintEventNumber" type="int" value="0"/> <!-- 0 for not printing event number, n for printing every n events --> <!-- specify input collection names --> <parameter name="PFOCollection" type="string" value="PandoraPFOs" /> <parameter name="PrimaryVertexCollectionName" type="string" value="PrimaryVertex" /> <parameter name="BuildUpVertexCollectionName" type="string" value="BuildUpVertex" /> <parameter name="BuildUpVertex.V0VertexCollectionName" type="string" value="BuildUpVertex_V0" /> <!-- parameters for primary vertex finder --> <parameter name="PrimaryVertexFinder.TrackMaxD0" type="double" value="20." /> <parameter name="PrimaryVertexFinder.TrackMaxZ0" type="double" value="20." /> <parameter name="PrimaryVertexFinder.TrackMaxInnermostHitRadius" type="double" value="20." /> <parameter name="PrimaryVertexFinder.TrackMinVtxFtdHits" type="int" value="5" /> <parameter name="PrimaryVertexFinder.Chi2Threshold" type="double" value="25." /> <!-- parameters for secondary vertex finder --> <parameter name="BuildUpVertex.TrackMaxD0" type="double" value="10." /> <parameter name="BuildUpVertex.TrackMaxZ0" type="double" value="20." /> <parameter name="BuildUpVertex.TrackMinPt" type="double" value="0.1" /> <parameter name="BuildUpVertex.TrackMaxD0Err" type="double" value="0.1" /> <parameter name="BuildUpVertex.TrackMaxZ0Err" type="double" value="0.1" /> <parameter name="BuildUpVertex.TrackMinTpcHits" type="int" value="20" /> <parameter name="BuildUpVertex.TrackMinFtdHits" type="int" value="3" /> <parameter name="BuildUpVertex.TrackMinVxdHits" type="int" value="3" /> <parameter name="BuildUpVertex.TrackMinVxdFtdHits" type="int" value="0" /> <parameter name="BuildUpVertex.PrimaryChi2Threshold" type="double" value="25." /> <parameter name="BuildUpVertex.SecondaryChi2Threshold" type="double" value="9." /> <parameter name="BuildUpVertex.MassThreshold" type="double" value="10." /> <parameter name="BuildUpVertex.MinDistFromIP" type="double" value="0.3" /> <parameter name="BuildUpVertex.MaxChi2ForDistOrder" type="double" value="1.0" /> <parameter name="BuildUpVertex.AssocIPTracks" type="int" value="1" /> <parameter name="BuildUpVertex.AssocIPTracksMinDist" type="double" value="0." /> <parameter name="BuildUpVertex.AssocIPTracksChi2RatioSecToPri" type="double" value="2.0" /> <parameter name="BuildUpVertex.UseV0Selection" type="int" value="1" /> </processor>
Jet Clustering and Flavor Tagging Example
<processor name="JetClusteringAndFlavorTag" type="LcfiplusProcessor"> <!-- run primary and secondary vertex finders --> <parameter name="Algorithms" type="stringVec"> JetClustering JetVertexRefiner FlavorTag ReadMVA</parameter> <!-- general parameters --> <parameter name="PFOCollection" type="string" value="PandoraPFOs" /> <!-- input PFO collection --> <parameter name="UseMCP" type="int" value="0" /> <!-- MC info not used --> <parameter name="MCPCollection" type="string" value="" /> <!-- not used --> <parameter name="MCPFORelation" type="string" value="" /> <!-- not used --> <parameter name="ReadSubdetectorEnergies" type="int" value="1"/> <!-- true for ILD --> <parameter name="UpdateVertexRPDaughters" type="int" value="0"/> <!-- false for non-updative PandoraPFOs --> <!-- jet clustering parameters --> <parameter name="JetClustering.InputVertexCollectionName" type="string" value="BuildUpVertex" /> <!-- vertex collections to be used in JC --> <parameter name="JetClustering.OutputJetCollectionName" type="stringVec" value="VertexJets" /> <!-- output collection name, may be multiple --> <parameter name="JetClustering.NJetsRequested" type="intVec" value="2" /> <!-- Multiple NJets can be specified --> <parameter name="JetClustering.YCut" type="doubleVec" value="0." /> <!-- specify 0 if not used --> <parameter name="JetClustering.UseMuonID" type="int" value="1" /> <!-- jet-muon ID for jet clustering --> <parameter name="JetClustering.VertexSelectionMinimumDistance" type="double" value="0.3" /> <!-- in mm --> <parameter name="JetClustering.VertexSelectionMaximumDistance" type="double" value="30." /> <!-- in mm --> <parameter name="JetClustering.VertexSelectionK0MassWidth" type="double" value="0.02" /> <!-- in GeV --> <parameter name="JetClustering.YAddedForJetVertexVertex" type="double" value="100"/> <!-- add penalty for combining vertices --> <parameter name="JetClustering.YAddedForJetLeptonVertex" type="double" value="100"/> <!-- add penalty for combining lepton and vertex --> <parameter name="JetClustering.YAddedForJetLeptonLepton" type="double" value="100"/> <!-- add penalty for combining leptons --> <!-- vertex refiner parameters --> <parameter name="JetVertexRefiner.InputJetCollectionName" type="string" value="VertexJets" /> <parameter name="JetVertexRefiner.OutputJetCollectionName" type="string" value="RefinedJets" /> <parameter name="JetVertexRefiner.PrimaryVertexCollectionName" type="string" value="PrimaryVertex" /> <parameter name="JetVertexRefiner.InputVertexCollectionName" type="string" value="BuildUpVertex" /> <parameter name="JetVertexRefiner.V0VertexCollectionName" type="string" value="BuildUpVertex_V0" /> <parameter name="JetVertexRefiner.OutputVertexCollectionName" type="string" value="RefinedVertex" /> <parameter name="JetVertexRefiner.MinPosSingle" type="double" value="0.3" /> <parameter name="JetVertexRefiner.MaxPosSingle" type="double" value="30." /> <parameter name="JetVertexRefiner.MinEnergySingle" type="double" value="1." /> <parameter name="JetVertexRefiner.MaxAngleSingle" type="double" value="0.5" /> <parameter name="JetVertexRefiner.MaxSeparationPerPosSingle" type="double" value="0.1" /> <parameter name="JetVertexRefiner.mind0sigSingle" type="double" value="5." /> <parameter name="JetVertexRefiner.minz0sigSingle" type="double" value="5." /> <parameter name="JetVertexRefiner.OneVertexProbThreshold" type="double" value="0.001" /> <parameter name="JetVertexRefiner.MaxCharmFlightLengthPerJetEnergy" type="double" value="0.1" /> <!-- FlavorTag parameters --> <parameter name="PrimaryVertexCollectionName" type="string" value="PrimaryVertex" /> <parameter name="FlavorTag.JetCollectionName" type="string" value="RefinedJets" /> <parameter name="MakeNtuple.AuxiliaryInfo" type="int" value="-1" /> <parameter name="FlavorTag.WeightsDirectory" type="string" value="lcfiweights" /> <parameter name="FlavorTag.WeightsPrefix" type="string" value="zpole_v00" /> <parameter name="FlavorTag.BookName" type="string" value="bdt" /> <parameter name="FlavorTag.PIDAlgo" type="string" value="lcfiplus" /> <parameter name="FlavorTag.CategoryDefinition1" type="string">nvtx==0</parameter> <parameter name="FlavorTag.CategoryPreselection1" type="string">trk1d0sig!=0</parameter> <parameter name="FlavorTag.CategoryVariables1" type="stringVec"> trk1d0sig trk2d0sig trk1z0sig trk2z0sig trk1pt_jete trk2pt_jete jprobr jprobz </parameter> <parameter name="FlavorTag.CategorySpectators1" type="stringVec"> aux nvtx </parameter> <parameter name="FlavorTag.CategoryDefinition2" type="string">nvtx==1&&nvtxall==1</parameter> <parameter name="FlavorTag.CategoryPreselection2" type="string">trk1d0sig!=0</parameter> <parameter name="FlavorTag.CategoryVariables2" type="stringVec"> trk1d0sig trk2d0sig trk1z0sig trk2z0sig trk1pt_jete trk2pt_jete jprobr jprobz vtxlen1_jete vtxsig1_jete vtxdirang1_jete vtxmom1_jete vtxmass1 vtxmult1 vtxmasspc vtxprob </parameter> <parameter name="FlavorTag.CategorySpectators2" type="stringVec"> aux nvtx </parameter> <parameter name="FlavorTag.CategoryDefinition3" type="string">nvtx==1&&nvtxall==2</parameter> <parameter name="FlavorTag.CategoryPreselection3" type="string">trk1d0sig!=0</parameter> <parameter name="FlavorTag.CategoryVariables3" type="stringVec"> trk1d0sig trk2d0sig trk1z0sig trk2z0sig trk1pt_jete trk2pt_jete jprobr jprobz vtxlen1_jete vtxsig1_jete vtxdirang1_jete vtxmom1_jete vtxmass1 vtxmult1 vtxmasspc vtxprob 1vtxprob vtxlen12all_jete vtxmassall </parameter> <parameter name="FlavorTag.CategorySpectators3" type="stringVec"> aux nvtx </parameter> <parameter name="FlavorTag.CategoryDefinition4" type="string">nvtx>=2</parameter> <parameter name="FlavorTag.CategoryPreselection4" type="string">trk1d0sig!=0</parameter> <parameter name="FlavorTag.CategoryVariables4" type="stringVec"> trk1d0sig trk2d0sig trk1z0sig trk2z0sig trk1pt_jete trk2pt_jete jprobr jprobz vtxlen1_jete vtxsig1_jete vtxdirang1_jete vtxmom1_jete vtxmass1 vtxmult1 vtxmasspc vtxprob vtxlen2_jete vtxsig2_jete vtxdirang2_jete vtxmom2_jete vtxmass2 vtxmult2 vtxlen12_jete vtxsig12_jete vtxdirang12_jete vtxmom_jete vtxmass vtxmult 1vtxprob </parameter> <parameter name="FlavorTag.CategorySpectators4" type="stringVec"> aux nvtx </parameter> </processor>
Marlin processor example
Example of getting flavor tagging information inside a Marlin processor:
// get jet collection LCCollection* colJet = evt->getCollection("RefinedJets"); // get PIDHandler associated with the jet collection PIDHandler pidh( colJet ); // get algorithm ID associated with LCFIPlus int algo = pidh.getAlgorithmID( "lcfiplus" ); // get index number for flavor tagging int ibtag = pidh.getParameterIndex(algo, "BTag"); int ictag = pidh.getParameterIndex(algo, "CTag"); // loop over jets to extract flavor tagging information for(int i=0; i < colJet->getNumberOfElements(); i++) { ReconstructedParticle *part = dynamic_cast<ReconstructedParticle*>( colJet->getElementAt( i ) ); const ParticleID &pid = pidh.getParticleID(part, algo); cout << "btag = " << pid.getParameters()[ibtag] << endl; cout << "ctag = " << pid.getParameters()[ictag] << endl; }