diff --git a/JetAnalyzers/BuildFile.xml b/JetAnalyzers/BuildFile.xml
index a4d9509b..8852bf1d 100644
--- a/JetAnalyzers/BuildFile.xml
+++ b/JetAnalyzers/BuildFile.xml
@@ -15,6 +15,7 @@
+
diff --git a/JetAnalyzers/bin/jet_correction_analyzer_x.cc b/JetAnalyzers/bin/jet_correction_analyzer_x.cc
index 69453955..33a19c37 100644
--- a/JetAnalyzers/bin/jet_correction_analyzer_x.cc
+++ b/JetAnalyzers/bin/jet_correction_analyzer_x.cc
@@ -18,6 +18,7 @@
#include "CondFormats/JetMETObjects/interface/FactorizedJetCorrector.h"
#include "PhysicsTools/Utilities/interface/LumiReWeighting.h"
#if __has_include("xrootd/XrdCl/XrdClFileSystem.hh")
+#include "xrootd/XProtocol/XProtocol.hh"
#include "xrootd/XrdCl/XrdClFileSystem.hh"
#define has_xrdcl 1
#else
diff --git a/JetAnalyzers/interface/JetResponseAnalyzer.hh b/JetAnalyzers/interface/JetResponseAnalyzer.hh
index 55a2a23a..ac3adb7d 100644
--- a/JetAnalyzers/interface/JetResponseAnalyzer.hh
+++ b/JetAnalyzers/interface/JetResponseAnalyzer.hh
@@ -38,6 +38,7 @@
#include "DataFormats/VertexReco/interface/Vertex.h"
#include "DataFormats/VertexReco/interface/VertexFwd.h"
#include "DataFormats/TrackReco/interface/TrackFwd.h"
+#include "DataFormats/PatCandidates/interface/PackedGenParticle.h"
#include "JetMETCorrections/Objects/interface/JetCorrector.h"
@@ -101,10 +102,9 @@ private:
edm::EDGetTokenT srcVtx_;
edm::EDGetTokenT srcGenInfo_;
edm::EDGetTokenT > srcPileupInfo_;
- //edm::EDGetTokenT > srcPFCandidates_;
edm::EDGetTokenT srcPFCandidates_;
edm::EDGetTokenT > > srcPFCandidatesAsFwdPtr_;
- edm::EDGetTokenT > srcGenParticles_;
+ edm::EDGetTokenT > srcGenParticles_;
std::string jecLabel_;
diff --git a/JetAnalyzers/python/Defaults_cff.py b/JetAnalyzers/python/Defaults_cff.py
index b5bd3a06..c43f02a8 100644
--- a/JetAnalyzers/python/Defaults_cff.py
+++ b/JetAnalyzers/python/Defaults_cff.py
@@ -25,7 +25,7 @@
JetResponseParameters = cms.PSet(
# record flavor information, consider both RefPt and JetPt
doComposition = cms.bool(True),
- doFlavor = cms.bool(True),
+ doFlavor = cms.bool(False),
doRefPt = cms.bool(True),
doJetPt = cms.bool(True),
saveCandidates = cms.bool(False),
diff --git a/JetAnalyzers/python/JetReconstruction_cff.py b/JetAnalyzers/python/JetReconstruction_cff.py
index 5d9f7098..51d89a82 100644
--- a/JetAnalyzers/python/JetReconstruction_cff.py
+++ b/JetAnalyzers/python/JetReconstruction_cff.py
@@ -87,7 +87,7 @@
#!
#! PF JETS CHS
#!
-ak1PFCHSJets = ak1PFJets.clone( src = 'pfNoPileUpJME' )
+ak1PFCHSJets = ak1PFJets.clone( src = 'pfCHS' )
ak2PFCHSJets = ak1PFCHSJets.clone( rParam=0.2 )
ak3PFCHSJets = ak1PFCHSJets.clone( rParam=0.3 )
ak4PFCHSJets = ak1PFCHSJets.clone( rParam=0.4 )
diff --git a/JetAnalyzers/python/addAlgorithm.py b/JetAnalyzers/python/addAlgorithm.py
index 4b89cc95..f27defbf 100644
--- a/JetAnalyzers/python/addAlgorithm.py
+++ b/JetAnalyzers/python/addAlgorithm.py
@@ -5,7 +5,7 @@
################################################################################
partons = cms.EDProducer('PartonSelector',
- src = cms.InputTag('genParticles'),
+ src = cms.InputTag('packedGenParticles'),
withLeptons = cms.bool(False),
skipFirstN = cms.uint32(0)
)
@@ -20,6 +20,9 @@
from JetMETAnalysis.JetAnalyzers.JetCorrection_cff import *
from RecoTauTag.TauTagTools.tauDecayModes_cfi import *
from CommonTools.PileupAlgos.Puppi_cff import *
+from JetMETAnalysis.JetAnalyzers.customizePuppiTune_cff import *
+
+genParticlesForJetsNoNu.src = cms.InputTag("packedGenParticles")
stdClusteringAlgorithms = ['ak'] #Options: {ak,kt}
stdJetTypes = ['calo','pf','pfchs','puppi'] #Options: {'calo','pf','pfchs','puppi'}
@@ -382,7 +385,12 @@ def addAlgorithm(process, alg_size_type_corr, Defaults, reco, doProducer):
sequence = cms.Sequence(recJets * sequence)
if type == 'PUPPI':
process.load('CommonTools.PileupAlgos.Puppi_cff')
+ process.load('JetMETAnalysis.JetAnalyzers.customizePuppiTune_cff')
#puppi.candName = cms.InputTag("particleFlow")
+ #80x change
+ puppiCentral[0].applyLowPUCorr = cms.bool(False)
+ puppiForward[0].applyLowPUCorr = cms.bool(False)
+ puppi.vertexName = "offlineSlimmedPrimaryVertices"
sequence = cms.Sequence(puppi * sequence)
if type == 'Track':
process.load('JetMETAnalysis.JetAnalyzers.TrackJetReconstruction_cff')
@@ -505,10 +513,10 @@ def addAlgorithm(process, alg_size_type_corr, Defaults, reco, doProducer):
srcRhos = cms.InputTag(''),
srcRho = cms.InputTag(''),
srcRhoHLT = cms.InputTag(''),
- srcVtx = cms.InputTag('offlinePrimaryVertices'),
+ srcVtx = cms.InputTag('offlineSlimmedPrimaryVertices'),
srcJetToUncorJetMap = cms.InputTag(jetToUncorJet.label(), 'rec2gen'),
srcPFCandidates = cms.InputTag(''),
- srcGenParticles = cms.InputTag('genParticles')
+ srcGenParticles = cms.InputTag('packedGenParticles')
)
if doProducer:
jraAnalyzer = 'JetResponseAnalyzerProducer'
@@ -519,10 +527,10 @@ def addAlgorithm(process, alg_size_type_corr, Defaults, reco, doProducer):
jecLabel = cms.string(''),
srcRho = cms.InputTag(''),
srcRhoHLT = cms.InputTag(''),
- srcVtx = cms.InputTag('offlinePrimaryVertices'),
+ srcVtx = cms.InputTag('offlineSlimmedPrimaryVertices'),
srcJetToUncorJetMap = cms.InputTag(jetToUncorJet.label(), 'rec2gen'),
srcPFCandidates = cms.InputTag(''),
- srcGenParticles = cms.InputTag('genParticles')
+ srcGenParticles = cms.InputTag('packedGenParticles')
)
if type == 'CaloHLT':
@@ -531,35 +539,38 @@ def addAlgorithm(process, alg_size_type_corr, Defaults, reco, doProducer):
elif type == 'Calo':
jra.srcRho = cms.InputTag("fixedGridRhoFastjetAllCalo")
elif type == 'PFchs':
- process.kt6PFchsJetsRhos = kt6PFJets.clone(src = 'pfNoPileUpJME',
+ process.pfCHS = cms.EDFilter("CandPtrSelector", src = cms.InputTag("packedPFCandidates"), cut = cms.string("fromPV"))
+ process.kt6PFchsJetsRhos = kt6PFJets.clone(src = 'pfCHS',
doFastJetNonUniform = cms.bool(True),
puCenters = cms.vdouble(-5,-4,-3,-2,-1,0,1,2,3,4,5),
puWidth = cms.double(.8),
nExclude = cms.uint32(2))
- sequence = cms.Sequence(process.kt6PFchsJetsRhos * sequence)
+ sequence = cms.Sequence(process.pfCHS * process.kt6PFchsJetsRhos * sequence)
jra.srcRhos = cms.InputTag("kt6PFchsJetsRhos", "rhos")
jra.srcRho = cms.InputTag("fixedGridRhoFastjetAll")
- jra.srcPFCandidates = cms.InputTag('pfNoPileUpJME')
+ jra.srcPFCandidates = cms.InputTag('pfCHS')
elif type == 'PFHLT':
- jra.srcRho = ak4PFL1Fastjet.srcRho #added 02/15/2012
+ jra.srcRho = ak4PFL1Fastjet.srcRho
jra.srcRhoHLT = ak5PFHLTL1Fastjet.srcRho
elif type == 'PFchsHLT':
- jra.srcRho = ak4PFchsL1Fastjet.srcRho #added 02/15/2012
+ jra.srcRho = ak4PFchsL1Fastjet.srcRho
jra.srcRhoHLT = ak5PFchsHLTL1Fastjet.srcRho
elif type == 'PF':
+ process.particleFlow = cms.EDFilter("CandPtrSelector", src = cms.InputTag("packedPFCandidates"), cut = cms.string(""))
process.kt6PFJetsRhos = kt6PFJets.clone(doFastJetNonUniform = cms.bool(True),
puCenters = cms.vdouble(-5,-4,-3,-2,-1,0,1,2,3,4,5),
puWidth = cms.double(.8),
nExclude = cms.uint32(2))
- sequence = cms.Sequence(process.kt6PFJetsRhos * sequence)
+ sequence = cms.Sequence(process.particleFlow * process.kt6PFJetsRhos * sequence)
jra.srcRhos = cms.InputTag("kt6PFJetsRhos", "rhos")
jra.srcRho = cms.InputTag("fixedGridRhoFastjetAll")
- jra.srcPFCandidates = cms.InputTag('particleFlow')
+ jra.srcPFCandidates = cms.InputTag('packedPFCandidates')
elif type == 'PUPPI':
+ process.particleFlow = cms.EDFilter("CandPtrSelector", src = cms.InputTag("packedPFCandidates"), cut = cms.string(""))
process.kt6PFJetsRhos = kt6PFJets.clone(doFastJetNonUniform = cms.bool(True),
puCenters = cms.vdouble(-5,-4,-3,-2,-1,0,1,2,3,4,5),
puWidth = cms.double(.8), nExclude = cms.uint32(2))
- sequence = cms.Sequence(process.kt6PFJetsRhos * sequence)
+ sequence = cms.Sequence(process.particleFlow * process.kt6PFJetsRhos * sequence)
jra.srcRhos = cms.InputTag("kt6PFJetsRhos", "rhos")
jra.srcRho = cms.InputTag("fixedGridRhoFastjetAll")
jra.srcPFCandidates = cms.InputTag('puppi')
@@ -574,14 +585,8 @@ def addAlgorithm(process, alg_size_type_corr, Defaults, reco, doProducer):
setattr(process,alg_size_type_corr,jra)
sequence = cms.Sequence(sequence * jra)
-
- ## add chs to path is needed
- if type == 'PFchs':
- sequence = cms.Sequence(process.pfNoPileUpJMESequence * sequence)
-
- ## create the path and put in the sequence
sequence = cms.Sequence(sequence)
setattr(process, alg_size_type_corr + 'Sequence', sequence)
path = cms.Path( sequence )
- setattr(process, alg_size_type_corr + 'Path', path)
+ setattr(process, alg_size_type_corr + 'Path', path)
print alg_size_type_corr
diff --git a/JetAnalyzers/src/JetResponseAnalyzer.cc b/JetAnalyzers/src/JetResponseAnalyzer.cc
index dc0ccc14..35bc0afe 100644
--- a/JetAnalyzers/src/JetResponseAnalyzer.cc
+++ b/JetAnalyzers/src/JetResponseAnalyzer.cc
@@ -25,11 +25,11 @@ JetResponseAnalyzer::JetResponseAnalyzer(const edm::ParameterSet& iConfig)
, srcRhoHLT_ (consumes(iConfig.getParameter ("srcRhoHLT")))
, srcVtx_ (consumes(iConfig.getParameter ("srcVtx")))
, srcGenInfo_ (consumes(edm::InputTag("generator")) )
- , srcPileupInfo_ (consumes >(edm::InputTag("addPileupInfo")) )
+ , srcPileupInfo_ (consumes >(edm::InputTag("slimmedAddPileupInfo")) )
//, srcPFCandidates_ (consumes >(iConfig.getParameter("srcPFCandidates")))
, srcPFCandidates_ (consumes(iConfig.getParameter("srcPFCandidates")))
, srcPFCandidatesAsFwdPtr_(consumes > >(iConfig.getParameter("srcPFCandidates")))
- , srcGenParticles_ (consumes >(iConfig.getParameter("srcGenParticles")))
+ , srcGenParticles_ (consumes >(iConfig.getParameter("srcGenParticles")))
, jecLabel_ (iConfig.getParameter ("jecLabel"))
, doComposition_ (iConfig.getParameter ("doComposition"))
, doFlavor_ (iConfig.getParameter ("doFlavor"))
@@ -115,6 +115,46 @@ void JetResponseAnalyzer::beginJob()
}
+void getMult( vector const & particles, int* nMult, int* chMult ) {
+
+ vector::const_iterator itParticle;
+ for (itParticle=particles.begin();itParticle!=particles.end();++itParticle){
+ const reco::Candidate* pfCand = itParticle->get();
+
+ switch (std::abs(pfCand->pdgId())) {
+
+ case 211: //PFCandidate::h: // charged hadron
+ (*chMult)++;
+ break;
+
+ case 130: //PFCandidate::h0 : // neutral hadron
+ (*nMult)++;
+ break;
+
+ case 22: //PFCandidate::gamma: // photon
+ (*nMult)++;
+ break;
+
+ case 11: // PFCandidate::e: // electron
+ (*chMult)++;
+ break;
+
+ case 13: //PFCandidate::mu: // muon
+ (*chMult)++;
+ break;
+
+ case 1: // PFCandidate::h_HF : // hadron in HF
+ (*nMult)++;
+ break;
+
+ case 2: //PFCandidate::egamma_HF : // electromagnetic in HF
+ (*nMult)++;
+ break;
+ }
+ }
+}
+
+//_______________
//______________________________________________________________________________
void JetResponseAnalyzer::analyze(const edm::Event& iEvent,
const edm::EventSetup& iSetup)
@@ -134,7 +174,7 @@ void JetResponseAnalyzer::analyze(const edm::Event& iEvent,
edm::Handle vtx;
edm::Handle pfCandidates;
edm::Handle > > pfCandidatesAsFwdPtr;
- edm::Handle > genParticles;
+ edm::Handle > genParticles;
// Jet CORRECTOR
jetCorrector_ = (jecLabel_.empty()) ? 0 : JetCorrector::getJetCorrector(jecLabel_,iSetup);
@@ -189,8 +229,8 @@ void JetResponseAnalyzer::analyze(const edm::Event& iEvent,
JRAEvt_->refpvz = -1000.0;
iEvent.getByToken(srcGenParticles_, genParticles);
for (size_t i = 0; i < genParticles->size(); ++i) {
- const reco::GenParticle & genIt = (*genParticles)[i];
- if ( genIt.isHardProcess() ) {
+ const pat::PackedGenParticle & genIt = (*genParticles)[i];
+ if ( genIt.fromHardProcessFinalState() ) {
JRAEvt_->refpvz = genIt.vz();
break;
}
@@ -264,11 +304,10 @@ void JetResponseAnalyzer::analyze(const edm::Event& iEvent,
else JRAEvt_->refdrjt->pop_back();
continue;
}
-
JRAEvt_->refpdgid->push_back(0);
- JRAEvt_->refpdgid_algorithmicDef->push_back(0);
- JRAEvt_->refpdgid_physicsDef->push_back(0);
if (getFlavorFromMap_) {
+ JRAEvt_->refpdgid_algorithmicDef->push_back(0);
+ JRAEvt_->refpdgid_physicsDef->push_back(0);
reco::JetMatchedPartonsCollection::const_iterator itPartonMatch;
itPartonMatch=refToPartonMap->begin();
for (;itPartonMatch!=refToPartonMap->end();++itPartonMatch) {
@@ -315,10 +354,6 @@ void JetResponseAnalyzer::analyze(const edm::Event& iEvent,
}
}
}
- else {
- JRAEvt_->refpdgid_algorithmicDef->at(JRAEvt_->nref)=0;
- JRAEvt_->refpdgid_physicsDef->at(JRAEvt_->nref)=0;
- }
JRAEvt_->refpdgid->at(JRAEvt_->nref)=ref->pdgId();
// Beta/Beta Star Calculation
@@ -439,12 +474,21 @@ void JetResponseAnalyzer::analyze(const edm::Event& iEvent,
JRAEvt_->jtmuf ->push_back(pfJetRef->muonEnergyFraction() *JRAEvt_->jtjec->at(JRAEvt_->nref));
JRAEvt_->jthfhf->push_back(pfJetRef->HFHadronEnergyFraction() *JRAEvt_->jtjec->at(JRAEvt_->nref));
JRAEvt_->jthfef->push_back(pfJetRef->HFEMEnergyFraction() *JRAEvt_->jtjec->at(JRAEvt_->nref));
+ int chMult=0, nMult=0;
+ getMult( ref.castTo()->getJetConstituents(), &nMult, &chMult );
+ JRAEvt_->refnMult ->push_back( nMult );
+ JRAEvt_->refchMult->push_back( chMult );
+
+ //this method exists for pfjets (neutralMultiplicity()), but not for genjets
+ //original i thought since genjet didn't have it i should make this method
+ chMult=0; nMult=0;
+ getMult( jet.castTo()->getJetConstituents(), &nMult, &chMult );
+ JRAEvt_->jtnMult ->push_back( nMult );
+ JRAEvt_->jtchMult->push_back( chMult );
}
}
-
JRAEvt_->nref++;
}
-
// PFCANDIDATE INFORMATION
//Dual handle idea from https://github.com/aperloff/cmssw/blob/CMSSW_7_6_X/RecoJets/JetProducers/plugins/VirtualJetProducer.cc
//Random-Cone algo from https://github.com/cihar29/OffsetAnalysis/blob/master/run_offset.py
@@ -483,8 +527,6 @@ void JetResponseAnalyzer::analyze(const edm::Event& iEvent,
}
}
}
-
-
tree_->Fill();
return;
diff --git a/JetUtilities/interface/JRAEvent.h b/JetUtilities/interface/JRAEvent.h
index 8a4ba580..0ea7f1cd 100644
--- a/JetUtilities/interface/JRAEvent.h
+++ b/JetUtilities/interface/JRAEvent.h
@@ -80,6 +80,8 @@ public :
vector* refpdgid_physicsDef;
vector* refe;
vector* refpt;
+ vector* refnMult;
+ vector* refchMult;
vector* refeta;
vector* refphi;
vector* refy;
@@ -88,6 +90,8 @@ public :
vector* refarea;
vector* jte;
vector* jtpt;
+ vector* jtnMult;
+ vector* jtchMult;
vector* jteta;
vector* jtphi;
vector* jty;
@@ -140,6 +144,8 @@ public :
TBranch *b_refpdgid_physicsDef; //!
TBranch *b_refe; //!
TBranch *b_refpt; //!
+ TBranch *b_refnMult; //!
+ TBranch *b_refchMult; //!
TBranch *b_refeta; //!
TBranch *b_refphi; //!
TBranch *b_refy; //!
@@ -148,6 +154,8 @@ public :
TBranch *b_refarea; //!
TBranch *b_jte; //!
TBranch *b_jtpt; //!
+ TBranch *b_jtnMult; //!
+ TBranch *b_jtchMult; //!
TBranch *b_jteta; //!
TBranch *b_jtphi; //!
TBranch *b_jty; //!
diff --git a/JetUtilities/src/HistogramUtilities.cc b/JetUtilities/src/HistogramUtilities.cc
index bd4c23a4..ef2a4788 100644
--- a/JetUtilities/src/HistogramUtilities.cc
+++ b/JetUtilities/src/HistogramUtilities.cc
@@ -117,7 +117,7 @@ namespace HistUtil {
b[i] = hist->GetBinLowEdge(i+1);
}
Double_t median = Median(nbins,x,y,b,0,debug);
- // Set the error equal to the difference between the median and the bin boundary
+/* // Set the error equal to the difference between the median and the bin boundary
// Choose the difference which is biggest
// We cannot determine the exact median from binned values
// The best we can do is a linear approximation of where inside the bin the median resides
@@ -126,14 +126,27 @@ namespace HistUtil {
Double_t width = hist->GetBinWidth(hist->FindBin(median));
Double_t high_edge = hist->GetBinLowEdge(hist->FindBin(median)) + width;
Double_t error = std::max(std::abs(median-low_edge),std::abs(high_edge-median));
+*/
+
+ // The error on the median is non-trivial
+ // We use the "standard" relationship http://davidmlane.com/hyperstat/A106993.html
+ // for the error. But this only works if your distribution is ~normal.
+ // Fine binning is better to more precisely calculate the median & RMS
+ // EffectiveEntries is used to account for weights
+ Double_t error = 1.253 * hist->GetRMS() / TMath::Sqrt(hist->GetEffectiveEntries());
+
if (debug) {
- cout << "\tlow_dege: " << low_edge << endl << "\thigh_edge: " << high_edge << endl
+ /* cout << "\tlow_dege: " << low_edge << endl << "\thigh_edge: " << high_edge << endl
<< "\twidth: " << width << endl << "\terror: " << error << endl;
cout << "\tdouble check error: " << std::max(std::abs(median-low_edge),std::abs(high_edge-median)) << endl
<< "\tabs(median-low_edge): " << std::abs(median-low_edge) << endl
<< "\tabs(high_edge-median): " << std::abs(high_edge-median) << endl
<< "\tmedian-low_edge: " << median-low_edge << endl
<< "\thigh_edge-median: " << high_edge-median << endl;
+*/
+ cout << "\terror: " << error << endl;
+ cout << "\tRMS: " << hist->GetRMS() << endl
+ << "\tentries: " << hist->GetEffectiveEntries() << endl;
}
delete [] x;
delete [] y;
diff --git a/JetUtilities/src/JRAEvent.cc b/JetUtilities/src/JRAEvent.cc
index 64f863a8..f879f52a 100644
--- a/JetUtilities/src/JRAEvent.cc
+++ b/JetUtilities/src/JRAEvent.cc
@@ -84,8 +84,8 @@ void JRAEvent::MakeTree(TTree* tree)
fChain->Branch("evt", &evt, "evt/L");
fChain->Branch("nref", &nref, "nref/b");
fChain->Branch("refrank", "vector", &refrank);
+ fChain->Branch("refpdgid", "vector", &refpdgid);
if(!flags.test(0) || (flags.test(0) && flags.test(2))) {
- fChain->Branch("refpdgid", "vector", &refpdgid);
fChain->Branch("refpdgid_algorithmicDef", "vector", &refpdgid_algorithmicDef);
fChain->Branch("refpdgid_physicsDef", "vector", &refpdgid_physicsDef);
}
@@ -120,6 +120,11 @@ void JRAEvent::MakeTree(TTree* tree)
fChain->Branch("jtmuf", "vector", &jtmuf);
fChain->Branch("jthfhf", "vector", &jthfhf);
fChain->Branch("jthfef", "vector", &jthfef);
+
+ fChain->Branch("refnMult", "vector", &refnMult);
+ fChain->Branch("refchMult", "vector", &refchMult);
+ fChain->Branch("jtnMult", "vector", &jtnMult);
+ fChain->Branch("jtchMult", "vector", &jtchMult);
}
}
if (!flags.test(0) || (flags.test(0) && flags.test(6) && flags.test(7))) {
@@ -184,8 +189,8 @@ void JRAEvent::Init(TTree *tree)
fChain->SetBranchAddress("evt", &evt, &b_evt);
fChain->SetBranchAddress("nref", &nref, &b_nref);
fChain->SetBranchAddress("refrank", &refrank, &b_refrank);
+ fChain->SetBranchAddress("refpdgid", &refpdgid, &b_refpdgid);
if(!flags.test(0) || (flags.test(0) && flags.test(2))) {
- fChain->SetBranchAddress("refpdgid", &refpdgid, &b_refpdgid);
fChain->SetBranchAddress("refpdgid_algorithmicDef", &refpdgid_algorithmicDef, &b_refpdgid_algorithmicDef);
fChain->SetBranchAddress("refpdgid_physicsDef", &refpdgid_physicsDef, &b_refpdgid_physicsDef);
}
@@ -220,6 +225,11 @@ void JRAEvent::Init(TTree *tree)
fChain->SetBranchAddress("jtmuf", &jtmuf, &b_jtmuf);
fChain->SetBranchAddress("jthfhf", &jthfhf, &b_jthfhf);
fChain->SetBranchAddress("jthfef", &jthfef, &b_jthfef);
+
+ fChain->SetBranchAddress("refnMult", &refnMult, &b_refnMult);
+ fChain->SetBranchAddress("refchMult", &refchMult, &b_refchMult);
+ fChain->SetBranchAddress("jtnMult", &jtnMult, &b_jtnMult);
+ fChain->SetBranchAddress("jtchMult", &jtchMult, &b_jtchMult);
}
}
if (!flags.test(0) || (flags.test(0) && flags.test(6) && flags.test(7))) {
@@ -274,8 +284,8 @@ void JRAEvent::MakeVectors()
ntrks_highpt = new vector;
rhos = new vector;
refrank = new vector;
+ refpdgid = new vector;
if(!flags.test(0) || (flags.test(0) && flags.test(2))) {
- refpdgid = new vector;
refpdgid_algorithmicDef = new vector;
refpdgid_physicsDef = new vector;
}
@@ -310,6 +320,11 @@ void JRAEvent::MakeVectors()
jtmuf = new vector;
jthfhf = new vector;
jthfef = new vector;
+
+ refnMult = new vector;
+ refchMult = new vector;
+ jtnMult = new vector;
+ jtchMult = new vector;
}
}
if (!flags.test(0) || (flags.test(0) && flags.test(6) && flags.test(7))) {
@@ -336,8 +351,8 @@ void JRAEvent::clear()
ntrks_highpt->clear();
rhos->clear();
refrank->clear();
+ refpdgid->clear();
if(!flags.test(0) || (flags.test(0) && flags.test(2))) {
- refpdgid->clear();
refpdgid_algorithmicDef->clear();
refpdgid_physicsDef->clear();
}
@@ -372,6 +387,11 @@ void JRAEvent::clear()
jtmuf->clear();
jthfhf->clear();
jthfef->clear();
+
+ refnMult->clear();
+ refchMult->clear();
+ jtnMult->clear();
+ jtchMult->clear();
}
}
if (!flags.test(0) || (flags.test(0) && flags.test(6) && flags.test(7))) {