| CATTools
Intro
- Cat tools is a common edm based tuple maker for KCMS.
|
|
> > |
- Design such that switching from PAT to CAT takes minimal effort
|
| |
|
> > | |
|
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 Objects |
> > | 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 |
> > | 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 |
|
< < |
- relIso(float dR=0.3 ) function returns either dR=0.3 or 0.4, default is 0.3.
|
|
- 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 |
|
> > | |
|
- 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) |
|
< < |
To do
- how to define the vertex for jets
- add in more variables required by other analysis
- list all datasets made, location (and/or published name), which AOD used, cross section value, number of events run, etc
- figure out nice way to keep dataset info
- add in full descriptive steps that are useful/common for all analysis, i.e how to do pile-up weighting, systematics, etc.
Campaign |
| |