CATTools

Intro

  • Cat tools is a common edm based tuple maker for KCMS.
  • Design such that switching from PAT to CAT takes minimal effort
  • Code can be found in https://github.com/vallot/CATTools.
  • Setup and run instructions are below.
  • Since catTools reads miniAODs for input, the selections on the physics objects are set by the cuts in the MiniAOD slimmer
  • To request new features please add to issues
  • For help cat-tools@cern.ch

Analysis Examples

  • Steps and examples for cattuple usage is shown in here.

Datasets

  • Location and details of cattuple datasets made with CATTools is here.

Physics Object Details

Object Label C++ class Selection Detailed information
Muons catMuons std::vector<cat::Muon> includes muons with pT > 5 GeV or that pass the PF muon ID (see below) All standard muon ID and isolations, the associated tracker, outer and global tracks, muonBestTrack and typePMuonBestTrack
Electrons catElectrons std::vector<cat::Electron> all gedGsfElectrons electrons For electrons of pT > 5 GeV, full information is saved (supercluster, seed cluster, interesting rechits, isolation and id variables).
For electrons below the threshold, only the superCluster and seedCluster are provided, and the id and isolation variables are zeroed out to save space
Taus catTaus std::vector<cat::Tau> taus from hpsPFTauProducer with pT > 18 GeV, and passing the basic decayModeFinding id All POG-supported tau id discriminators are included. Links to the PF candidates are also provided. Not included in CATTools unless required by users
Photons catPhotons std::vector<cat::Photon> gedPhotons with pT > 14 GeV and hadTowOverEm() < 0.15 For photons that pass a minimal r9 or isolation cut, full information is saved (supercluster, seed cluster, interesting rechits, isolation and id variables).
The requirement is the logical or of the three conditions r9()>0.8 , chargedHadronIso()<20, chargedHadronIso()<0.3*pt() Not included in CATTools unless required by users
Jets catJets std::vector<cat::Jet> ak4PFJetsCHS with pT > 10 GeV L1+L2+L3+residual corrections are applied; b-tagging and pileup jet id information are embedded. Links are provided to the constituent PF candidates.
MET catMETs std::vector<cat::MET> the type1 PF MET MET uncertainties are provided
Secondary Vertex catSecVertexs std::vector<cat::SecVertexs> vertex of 2 same flavour, opposite charge vertex used for j/psi

Naming conventions for the variables are the same as PAT if they exists in the PAT Object.

Muons

  • isGlobalMuon()
  • isPFMuon()
  • isTightMuon()
  • isLooseMuon()
  • isSoftMuon()
  • normalizedChi2()
  • numberOfValidHits()
  • numberOfValidMuonHits()
  • numberOfMatchedStations()
  • numberOfValidPixelHits()
  • trackerLayersWithMeasurement()
  • dxy()
  • dz()
  • relIso(float dR=0.3 ) function returns either dR=0.3 or 0.4, default is 0.3.
  • chargedHadronIso(float dR=0.3 ) function returns either dR=0.3 or 0.4, default is 0.3.
  • puChargedHadronIso(float dR=0.3 ) function returns either dR=0.3 or 0.4, default is 0.3.
  • neutralHadronIso(float dR=0.3 ) function returns either dR=0.3 or 0.4, default is 0.3.
  • photonIso(float dR=0.3 ) function returns either dR=0.3 or 0.4, default is 0.3.
  • genParticle()
  • shiftedEnUp() and shiftedEnDown()

Electrons

  • electronID(const std::string& name) to get the electron PID, currently all PID from miniAODs are saved.
  • scEta()
  • passConversionVeto()
  • isGsfCtfScPixChargeConsistent()
  • isPF()
  • dxy()
  • dz()
  • relIso(float dR=0.3 ) function returns either dR=0.3 or 0.4, default is 0.3.
  • chargedHadronIso(float dR=0.3 ) function returns either dR=0.3 or 0.4, default is 0.3.
  • puChargedHadronIso(float dR=0.3 ) function returns either dR=0.3 or 0.4, default is 0.3.
  • neutralHadronIso(float dR=0.3 ) function returns either dR=0.3 or 0.4, default is 0.3.
  • photonIso(float dR=0.3 ) function returns either dR=0.3 or 0.4, default is 0.3.
  • genParticle()
  • shiftedEnUp() and shiftedEnDown()

Jets

  • LooseId?()
  • pileupJetId() is pileupJetId:fullDiscriminant
  • bDiscriminator(const std::string &theLabel) to get the btagging variable, currently all btagging from miniAODs are saved.
  • vtxMass() is the mass of the vertex
  • vtxNtracks() is the number of tracks in it
  • vtx3DVal() is the decay length value
  • vtx3DSig() is the decay length significance
  • genParticle()
  • genJet()
  • partonFlavour()
  • hadronFlavour()
  • partonPdgId()
  • smearedRes(), smearedResDown(), smearedResUp()
  • shiftedEnUp() and shiftedEnDown()

Secondary Vertexs

  • lxy() is the 2D distance from the primary vertex to the secondary vertex
  • l3D() is the 3D distance from the primary vertex to the secondary vertex
  • vProb() is the probabiltiy of the vertex (TMath::Prob( vertex chi2, vertex no. degrees of freedom))
  • pdgId() returns 11 or 13 depending on weather the vertex was made with electrons or muons respectively
  • ipos() and ineg() returns the index of the muon or electron used in the vertex, i.e. ipos 3 is the 3rd lepton from either muon or electron collection

How To

Below is the description for CMSSW 7. For CMSSW 5, follow this readme.

Setting up CMSSW and checking out CATTools %CODE{"bash"}% scram p -n cat CMSSW CMSSW_7_2_2_patch1 cd cat/src cmsenv git clone git@github.com:vallot/CATTools.git cd CATTools git checkout cat72x cd .. scram b -j 8 %ENDCODE%

To run on MiniAODs %CODE{"bash"}% cd $SRT_CMSSW_BASE_SCRAMRTDEL/src/CATTools/CatProducer/prod/ cmsRun runCat.py useMiniAOD=True inputFiles=file:/pnfs/user/jlee/DYJetsToLL_M-50_13TeV-madgraph-pythia8/miniaod.root %ENDCODE%

To run on AODs, it is important to have the right globalTag used. %CODE{"bash"}% cd $SRT_CMSSW_BASE_SCRAMRTDEL/src/CATTools/CatProducer/prod/ cmsRun runCat.py useMiniAOD=False globalTag='PHYS14_25_V1::All' inputFiles=/store/mc/Phys14DR/DYJetsToLL_M-50_13TeV-madgraph-pythia8/AODSIM/PU20bx25_PHYS14_25_V1-v1/00000/00CC714A-F86B-E411-B99A-0025904B5FB8.root %ENDCODE% Please note that the the global tags are CMSSW version dependant. For PHYS14X?, use CMSSW_7_2_0 and above. For PLS170X?, use CMSSW_7_0 (below CMSSW_7_2_0)

Edit | Attach | Watch | Print version | History: r18 < r17 < r16 < r15 < r14 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r18 - 2015-02-14 - JasonLee
 
KOREA-CMS
This site is powered by the TWiki collaboration platform Powered by Perl This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding KoreaCmsWiki? Send feedback