Skip to content

Commit 52ce74f

Browse files
authored
Merge pull request #73 from alefisico/CMSSW_8_0_X_V3
Fixing AK8 jets
2 parents 21a09c1 + b10f744 commit 52ce74f

File tree

4 files changed

+103
-130
lines changed

4 files changed

+103
-130
lines changed

README.md

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,17 @@ Analysis framework for Beyond Two Generations (B2G) Physics Analysis Group (PAG)
44

55
## Version
66

7-
This is a development branch of the B2G EDMNtuples to be used for 2016 re-reco (Runs2016B-G) and PromtReco (Run2016H) data, and the Summer16 MC
7+
This is a development branch of the B2G EDMNtuples to be used for 2017 ReMiniAOD 03Feb2017 (Runs2016B-H) and the Summer16 MC
88

99
## Instructions
1010

1111
### Working release
1212
* Make a new CMSSW area:
1313
```
1414
setenv SCRAM_ARCH slc6_amd64_gcc530 ; ###chs/ tcsh
15-
1615
export SCRAM_ARCH=slc6_amd64_gcc530 ; ### bash
17-
1816
cmsrel CMSSW_8_0_26_patch1
19-
2017
cd CMSSW_8_0_26_patch1/src
21-
2218
cmsenv
2319
```
2420
* Mirror for github
@@ -55,7 +51,7 @@ git cms-merge-topic ikrav:egm_id_80X_v3_photons
5551

5652
### Clone the github repositories
5753
```
58-
git clone [email protected]:cmsb2g/B2GAnaFW.git Analysis/B2GAnaFW -b v8.0.x_v2.5
54+
git clone [email protected]:cmsb2g/B2GAnaFW.git Analysis/B2GAnaFW -b v8.0.x_v3.1
5955
git clone [email protected]:cms-jet/JetToolbox.git JMEAnalysis/JetToolbox -b jetToolbox_80X_V3
6056
```
6157
* Compile (patience please!)
@@ -83,15 +79,15 @@ To run, prepare a text file CRAB/tosubmit.txt with dataset names of samples to s
8379
* Example usage:
8480

8581
```
86-
python submit_all.py -c b2gedmntuples_cfg.py -f CRAB/tosubmit.txt -s T2_CH_CERN -p "DataProcessing=MC_MiniAODv2_80X_Summer16" -o "/store/group/phys_b2g/" -v B2GAnaFW_80X_V2p4 -i 'JECs/*.db'
82+
python submit_all.py -c b2gedmntuples_cfg.py -f CRAB/tosubmit.txt -s T2_CH_CERN -p "DataProcessing=MC_MiniAODv2_80X_Summer16" -o "/store/group/phys_b2g/" -v B2GAnaFW_80X_V3p1 -i 'JECs/*.db'
8783
```
8884

8985
* For data please note that there are different JECs for different run periods. Please refer to test/b2gedmntuples_cfg.py#L6-L13 for the full list of settings for the switch "DataProcessing". For instance, to run on Run2016G do
9086
```
91-
python submit_all.py -c b2gedmntuples_cfg.py -f CRAB/tosubmit.txt -s T2_CH_CERN -p "DataProcessing=Data_80X_Run2016G_23Sep2016" -o "/store/group/phys_b2g/" -v B2GAnaFW_80X_V2p4 -i 'JECs/*.db' -l "/afs/cern.ch/cms/CAF/CMSCOMM/COMM_DQM/certification/Collisions16/13TeV/ReReco/Final/Cert_271036-284044_13TeV_23Sep2016ReReco_Collisions16_JSON.txt" usePrivateSQLite=True
87+
python submit_all.py -c b2gedmntuples_cfg.py -f CRAB/tosubmit.txt -s T2_CH_CERN -p "DataProcessing=Data_80X_Run2016G_03Feb2017" -o "/store/group/phys_b2g/" -v B2GAnaFW_80X_V3p1 -i 'JECs/*.db' -l "/afs/cern.ch/cms/CAF/CMSCOMM/COMM_DQM/certification/Collisions16/13TeV/ReReco/Final/Cert_271036-284044_13TeV_23Sep2016ReReco_Collisions16_JSON.txt" usePrivateSQLite=True
9288
```
9389

9490
Note that the ```-i``` option is not needed if the JECs are taken from the global tag, specified using the option "DataProcessing".
9591

9692
See all options with ```python submit_all.py --help```
97-
bla
93+
bla

python/b2gedmntuples_cff.py

Lines changed: 20 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -686,22 +686,6 @@
686686
tag = cms.untracked.string("vSubjetPuppiIndex1"),
687687
quantity = cms.untracked.string("? hasUserInt('VSubjetPuppi1') ? userInt('VSubjetPuppi1') : -1 ")
688688
),
689-
# cms.PSet(
690-
# tag = cms.untracked.string("topSubjetIndex0"),
691-
# quantity = cms.untracked.string("? hasUserInt('TopSubjet0') ? userInt('TopSubjet0') : -1 ")
692-
# ),
693-
# cms.PSet(
694-
# tag = cms.untracked.string("topSubjetIndex1"),
695-
# quantity = cms.untracked.string("? hasUserInt('TopSubjet1') ? userInt('TopSubjet1') : -1 ")
696-
# ),
697-
# cms.PSet(
698-
# tag = cms.untracked.string("topSubjetIndex2"),
699-
# quantity = cms.untracked.string("? hasUserInt('TopSubjet2') ? userInt('TopSubjet2') : -1 ")
700-
# ),
701-
# cms.PSet(
702-
# tag = cms.untracked.string("topSubjetIndex3"),
703-
# quantity = cms.untracked.string("? hasUserInt('TopSubjet3') ? userInt('TopSubjet3') : -1 ")
704-
# ),
705689
cms.PSet(
706690
tag = cms.untracked.string("tau1CHS"),
707691
quantity = cms.untracked.string("userFloat('NjettinessAK8CHS:tau1')")
@@ -762,6 +746,10 @@
762746
tag = cms.untracked.string("tau3Puppi"),
763747
quantity = cms.untracked.string("userFloat('ak8PFJetsPuppiValueMap:NjettinessAK8PuppiTau3')")
764748
),
749+
cms.PSet(
750+
tag = cms.untracked.string("uncorrSDMassAK8Puppi"),
751+
quantity = cms.untracked.string("? hasUserFloat('subjetSumMassSoftDropPuppi') ? userFloat('subjetSumMassSoftDropPuppi') : -999 ")
752+
),
765753
)
766754

767755
### jet variables
@@ -802,7 +790,7 @@
802790
cms.PSet(
803791
tag = cms.untracked.string("tau3"),
804792
quantity = cms.untracked.string("userFloat('NsubjettinessAK8PFCHSSoftDropSubjets:tau3')")
805-
)
793+
),
806794
)
807795

808796

@@ -1161,63 +1149,63 @@
11611149
photonjets = (
11621150
cms.PSet(
11631151
tag = cms.untracked.string("PhotonIndex"),
1164-
quantity = cms.untracked.string("userInt('phoIndex')")
1152+
quantity = cms.untracked.string("? hasUserInt('phoIndex') ? userInt('phoIndex') : -999 ")
11651153
),
11661154
cms.PSet(
11671155
tag = cms.untracked.string("SubwGammatIndex"),
1168-
quantity = cms.untracked.string("userInt('subIndex')")
1156+
quantity = cms.untracked.string("? hasUserInt('subIndex') ? userInt('subIndex') : -999 ")
11691157
),
11701158
cms.PSet(
11711159
tag = cms.untracked.string("PhotonSubjetFrac"),
1172-
quantity = cms.untracked.string("userFloat('phoSubjetPtFrac')")
1160+
quantity = cms.untracked.string("? hasUserFloat('phoSubjetPtFrac') ? userFloat('phoSubjetPtFrac') : -999 ")
11731161
),
11741162
cms.PSet(
11751163
tag = cms.untracked.string("SubjetPt0"),
1176-
quantity = cms.untracked.string("userFloat('SubPt0')")
1164+
quantity = cms.untracked.string("? hasUserFloat('SubPt0') ? userFloat('SubPt0') : -999 ")
11771165
),
11781166
cms.PSet(
11791167
tag = cms.untracked.string("SubjetPt1"),
1180-
quantity = cms.untracked.string("userFloat('SubPt1')")
1168+
quantity = cms.untracked.string("? hasUserFloat('SubPt1') ? userFloat('SubPt1') : -999 ")
11811169
),
11821170
cms.PSet(
11831171
tag = cms.untracked.string("SubjetPt2"),
1184-
quantity = cms.untracked.string("userFloat('SubPt2')")
1172+
quantity = cms.untracked.string("? hasUserFloat('SubPt2') ? userFloat('SubPt2') : -999 ")
11851173
),
11861174
cms.PSet(
11871175
tag = cms.untracked.string("SubjetEta0"),
1188-
quantity = cms.untracked.string("userFloat('SubEta0')")
1176+
quantity = cms.untracked.string("? hasUserFloat('SubEta0') ? userFloat('SubEta0') : -999 ")
11891177
),
11901178
cms.PSet(
11911179
tag = cms.untracked.string("SubjetEta1"),
1192-
quantity = cms.untracked.string("userFloat('SubEta1')")
1180+
quantity = cms.untracked.string("? hasUserFloat('SubEta1') ? userFloat('SubEta1') : -999 ")
11931181
),
11941182
cms.PSet(
11951183
tag = cms.untracked.string("SubjetEta2"),
1196-
quantity = cms.untracked.string("userFloat('SubEta2')")
1184+
quantity = cms.untracked.string("? hasUserFloat('SubEta2') ? userFloat('SubEta2') : -999 ")
11971185
),
11981186
cms.PSet(
11991187
tag = cms.untracked.string("SubjetPhi0"),
1200-
quantity = cms.untracked.string("userFloat('SubPhi0')")
1188+
quantity = cms.untracked.string("? hasUserFloat('SubPhi0') ? userFloat('SubPhi0') : -999 ")
12011189
),
12021190
cms.PSet(
12031191
tag = cms.untracked.string("SubjetPhi1"),
1204-
quantity = cms.untracked.string("userFloat('SubPhi1')")
1192+
quantity = cms.untracked.string("? hasUserFloat('SubPhi1') ? userFloat('SubPhi1') : -999 ")
12051193
),
12061194
cms.PSet(
12071195
tag = cms.untracked.string("SubjetPhi2"),
1208-
quantity = cms.untracked.string("userFloat('SubPhi2')")
1196+
quantity = cms.untracked.string("? hasUserFloat('SubPhi2') ? userFloat('SubPhi2') : -999 ")
12091197
),
12101198
cms.PSet(
12111199
tag = cms.untracked.string("SubjetEne0"),
1212-
quantity = cms.untracked.string("userFloat('SubEne0')")
1200+
quantity = cms.untracked.string("? hasUserFloat('SubEne0') ? userFloat('SubEne0') : -999 ")
12131201
),
12141202
cms.PSet(
12151203
tag = cms.untracked.string("SubjetEne1"),
1216-
quantity = cms.untracked.string("userFloat('SubEne1')")
1204+
quantity = cms.untracked.string("? hasUserFloat('SubEne1') ? userFloat('SubEne1') : -999 ")
12171205
),
12181206
cms.PSet(
12191207
tag = cms.untracked.string("SubjetEne2"),
1220-
quantity = cms.untracked.string("userFloat('SubEne2')")
1208+
quantity = cms.untracked.string("? hasUserFloat('SubEne2') ? userFloat('SubEne2') : -999 ")
12211209
),
12221210

12231211
)

src/BoostedJetToolboxUserData.cc

Lines changed: 37 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ class BoostedJetToolboxUserData : public edm::EDProducer {
5252

5353

5454
edm::EDGetTokenT<std::vector<pat::Jet> > jToken_;
55-
//edm::EDGetTokenT<std::vector<pat::Jet> > tToken_;
55+
edm::EDGetTokenT<std::vector<pat::Jet> > tToken_;
5656
edm::EDGetTokenT<std::vector<pat::Jet> > vToken_;
5757

5858
double distMax_;
@@ -62,8 +62,8 @@ class BoostedJetToolboxUserData : public edm::EDProducer {
6262

6363
BoostedJetToolboxUserData::BoostedJetToolboxUserData(const edm::ParameterSet& iConfig) :
6464
jToken_ (consumes<std::vector<pat::Jet> > ( iConfig.getParameter<edm::InputTag>("jetLabel") )),
65-
//tToken_ (consumes<std::vector<pat::Jet> > ( iConfig.getParameter<edm::InputTag>("topjetLabel")) ),
66-
vToken_ (consumes<std::vector<pat::Jet> > ( iConfig.getParameter<edm::InputTag>("vjetLabel")) ),
65+
tToken_ (consumes<std::vector<pat::Jet> > ( iConfig.getParameter<edm::InputTag>("puppiSDjetLabel")) ),
66+
vToken_ (consumes<std::vector<pat::Jet> > ( iConfig.getParameter<edm::InputTag>("jetWithSubjetLabel")) ),
6767
distMax_ ( iConfig.getParameter<double>( "distMax" ) )
6868
{
6969
produces<vector<pat::Jet> >();
@@ -72,60 +72,50 @@ BoostedJetToolboxUserData::BoostedJetToolboxUserData(const edm::ParameterSet& iC
7272

7373
void BoostedJetToolboxUserData::produce( edm::Event& iEvent, const edm::EventSetup& iSetup) {
7474

75-
edm::Handle<std::vector<pat::Jet> > jetHandle, vjetHandle; //topjetHandle
76-
iEvent.getByToken(jToken_, jetHandle);
77-
//iEvent.getByToken(tToken_, topjetHandle);
78-
iEvent.getByToken(vToken_, vjetHandle);
75+
edm::Handle<std::vector<pat::Jet> > jetHandle, jetWithSubjetHandle, puppiSDjetHandle;
76+
iEvent.getByToken(jToken_, jetHandle);
77+
iEvent.getByToken(tToken_, puppiSDjetHandle);
78+
iEvent.getByToken(vToken_, jetWithSubjetHandle);
7979

80+
auto_ptr<vector<pat::Jet> > jetColl( new vector<pat::Jet> (*jetHandle) );
8081

81-
auto_ptr<vector<pat::Jet> > jetColl( new vector<pat::Jet> (*jetHandle) );
82+
for (size_t i = 0; i< jetHandle->size(); i++){
8283

84+
pat::Jet & jet = (*jetColl)[i];
8385

84-
for (size_t i = 0; i< jetHandle->size(); i++){
85-
pat::Jet & jet = (*jetColl)[i];
86+
for ( auto const & puppiSDJet : *puppiSDjetHandle ) {
8687

87-
/* for ( auto const & topJet : *topjetHandle ) {
88-
float temp_dR2 = reco::deltaR2(jet.eta(),jet.phi(),topJet.eta(),topJet.phi());
89-
if ( temp_dR2 < distMax_ ) {
90-
int topSubjet0=-1, topSubjet1=-1, topSubjet2=-1, topSubjet3=-1;
91-
if ( topJet.numberOfDaughters() > 0 )
92-
topSubjet0 = topJet.daughterPtr(0).key();
93-
if ( topJet.numberOfDaughters() > 1 )
94-
topSubjet1 = topJet.daughterPtr(1).key();
95-
if ( topJet.numberOfDaughters() > 2 )
96-
topSubjet2 = topJet.daughterPtr(2).key();
97-
if ( topJet.numberOfDaughters() > 3 )
98-
topSubjet3 = topJet.daughterPtr(3).key();
99-
jet.addUserInt("TopSubjet0", topSubjet0 );
100-
jet.addUserInt("TopSubjet1", topSubjet1 );
101-
jet.addUserInt("TopSubjet2", topSubjet2 );
102-
jet.addUserInt("TopSubjet3", topSubjet3 );
103-
break;
104-
}
88+
float temp_dR2 = reco::deltaR2(jet.eta(),jet.phi(),puppiSDJet.eta(),puppiSDJet.phi());
89+
if ( temp_dR2 < distMax_ ) {
10590

106-
}*/
91+
TLorentzVector puppi_softdrop, puppi_softdrop_subjet;
92+
auto const & sbSubjetsPuppi = puppiSDJet.subjets("SoftDrop");
93+
for ( auto const & it : sbSubjetsPuppi ) {
94+
puppi_softdrop_subjet.SetPtEtaPhiM(it->pt(),it->eta(),it->phi(),it->mass());
95+
puppi_softdrop+=puppi_softdrop_subjet;
96+
}
97+
jet.addUserFloat("subjetSumMassSoftDropPuppi", puppi_softdrop.M() );
98+
}
99+
}
107100

108101

102+
for ( auto const & jetWithSubjet : *jetWithSubjetHandle ) {
109103

110-
for ( auto const & vJet : *vjetHandle ) {
111-
float temp_dR2 = reco::deltaR2(jet.eta(),jet.phi(),vJet.eta(),vJet.phi());
112-
if ( temp_dR2 < distMax_ ) {
104+
float temp_dR2 = reco::deltaR2(jet.eta(),jet.phi(),jetWithSubjet.eta(),jetWithSubjet.phi());
105+
if ( temp_dR2 < distMax_ ) {
106+
int vSubjet0=-1, vSubjet1=-1;
107+
if ( jetWithSubjet.numberOfDaughters() > 0 )
108+
vSubjet0 = jetWithSubjet.daughterPtr(0).key();
109+
if ( jetWithSubjet.numberOfDaughters() > 1 )
110+
vSubjet1 = jetWithSubjet.daughterPtr(1).key();
111+
jet.addUserInt("VSubjet0", vSubjet0 );
112+
jet.addUserInt("VSubjet1", vSubjet1 );
113+
break;
114+
}
115+
}
113116

114-
int vSubjet0=-1, vSubjet1=-1;
115-
if ( vJet.numberOfDaughters() > 0 )
116-
vSubjet0 = vJet.daughterPtr(0).key();
117-
if ( vJet.numberOfDaughters() > 1 )
118-
vSubjet1 = vJet.daughterPtr(1).key();
119-
jet.addUserInt("VSubjet0", vSubjet0 );
120-
jet.addUserInt("VSubjet1", vSubjet1 );
121-
break;
122-
}
123-
124-
}
125-
126-
} //// Loop over all jets
127-
128-
iEvent.put( jetColl );
117+
} //// Loop over all jets
118+
iEvent.put( jetColl );
129119

130120
}
131121

0 commit comments

Comments
 (0)