The up-to-update examples are also available from the SVN:

LCFIPlusConfig steer files

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;
}
  • No labels