...
runitallbatch2 suballbatch2 allSME250p80m30.lst ffhzzE250p80m30.lst
...
Code Block |
---|
[noric02] ~/sidhome/lcfi $ diff /u/ey/homer/sidhome/lcfi/build/v01-16-03/MarlinFastJet/v00-01/src/{FastJetProcessor.cpp,FastJetProcessor.cpp.original} 50d49 < // string jetparts = _lcJetOutName + string("Parts"); 52,53d50 < // registerOutputCollection(LCIO::RECONSTRUCTEDPARTICLE, "jetOut", "The identified jets", jetparts, "JetOut"); < registerOutputCollection(LCIO::RECONSTRUCTEDPARTICLE, "jetpartsOut", "The identified jet components", _lcJetPartsName, "JetParts"); 390,395d386 < // cout << "step1 - creating vector of particles" << endl; < // create output collection with particles used in it < IMPL::LCCollectionVec* lccJetsOutParts = new IMPL::LCCollectionVec(LCIO::RECONSTRUCTEDPARTICLE); < < int nelem = 0; < 404d394 < evt->addCollection(lccJetsOutParts, _lcJetPartsName); // store empty collection 411c401 < nelem = convertFromRecParticle(particleIn); --- > convertFromRecParticle(particleIn); 413,418d402 < if (nelem < 2) < { < _statsNrSkippedEmptyEvents++; < evt->addCollection(lccJetsOutParts, _lcJetPartsName); // store empty collection < throw DataNotAvailableException("Collection is there, but its empty after quality cuts!"); < } 441d424 < 443,444c426 < // if (_reconstructedPars->getNumberOfElements() < (int)_nrJets) < if (nelem < (int)_nrJets) --- > if (_reconstructedPars->getNumberOfElements() < (int)_nrJets) 491,546d472 < // cout << "step2 - beginning loop over jets" << endl; < for (it=jets.begin(); it != jets.end(); it++) < { < // create a reconstructed particle for this jet, and add all the containing particles to it < // ReconstructedParticle* recparts = getRecPar( (*it), cs.constituents(*it) ); < for (unsigned int n = 0; n < cs.constituents(*it).size(); ++n) < { < // cout << "step3 - adding particle" << endl; < ReconstructedParticle* p = dynamic_cast< ReconstructedParticle* > (_reconstructedPars->getElementAt(cs.constituents(*it)[n].user_index())) ; < < // create a true ReconstructedParticle < ReconstructedParticleImpl* recp = new ReconstructedParticleImpl(); < < // save the particle's parameters < recp->setEnergy( p->getEnergy() ); < recp->setMass( p->getMass() ); < recp->setCharge( p->getCharge() ); < recp->setMomentum( p->getMomentum() ); < recp->setType( p->getType() ); < recp->setCovMatrix( p->getCovMatrix() ); < recp->setMass( p->getMass() ); < recp->setCharge( p->getCharge() ); < recp->setReferencePoint( p->getReferencePoint() ); < for ( unsigned int k = 0 ; k < p->getParticleIDs().size() ; k++ ) < { < ParticleID *pid = p->getParticleIDs()[k] ; < IMPL::ParticleIDImpl* implPID = new IMPL::ParticleIDImpl() ; < implPID->setType( pid->getType() ) ; < implPID->setPDG( pid->getPDG() ) ; < implPID->setLikelihood( pid->getLikelihood() ) ; < implPID->setAlgorithmType( pid->getAlgorithmType() ) ; < for ( unsigned int l = 0 ; l < pid->getParameters().size() ; l++ ) < { implPID->addParameter( pid->getParameters()[l] ) ; } < recp->addParticleID( implPID ) ; < } < recp->setParticleIDUsed( p->getParticleIDUsed() ); < recp->setGoodnessOfPID( p->getGoodnessOfPID() ); < for ( unsigned int k = 0 ; k < p->getParticles().size() ; k++ ) < { recp->addParticle( p->getParticles()[k] ); } < for ( unsigned int k = 0 ; k < p->getClusters().size() ; k++ ) < { recp->addCluster( p->getClusters()[k] ); } < for ( unsigned int k = 0 ; k < p->getTracks().size() ; k++ ) < { recp->addTrack( p->getTracks()[k] ); } < recp->setStartVertex( p->getStartVertex() ); < < lccJetsOutParts->addElement( recp ); < < < } < } < < // cout << "step4 -- adding collection" << endl; < // string jetparts = _lcJetOutName + string("Parts"); < evt->addCollection(lccJetsOutParts, _lcJetPartsName); < // cout << "step5 --- past new code" << endl; < 560d485 < // cout << "step6" << endl; 698c623 < int FastJetProcessor::convertFromRecParticle(LCCollection* recCol) --- > void FastJetProcessor::convertFromRecParticle(LCCollection* recCol) 700d624 < int nelem=0; 705,720c629,634 < // add some quality cuts to resolve a background overlay problem - Homer < double px = par->getMomentum()[0]; < double py = par->getMomentum()[1]; < double pz = par->getMomentum()[2]; < < if ((fabs(pz)/sqrt(px*px+py*py+pz*pz)) < 0.99 && par->getEnergy() < 1000.) { < < nelem++; < < _pjList.push_back( < fastjet::PseudoJet( par->getMomentum()[0], < par->getMomentum()[1], < par->getMomentum()[2], < par->getEnergy() ) ); < _pjList.back().set_user_index(i); // save the id of this recParticle < } --- > _pjList.push_back( > fastjet::PseudoJet( par->getMomentum()[0], > par->getMomentum()[1], > par->getMomentum()[2], > par->getEnergy() ) ); > _pjList.back().set_user_index(i); // save the id of this recParticle 722d635 |
...
All difference in the LCFIPlus routines were commented out; not including these should make no difference in the output.
algoEtc.cc FlavorTag.cc flavtag.cc
...
Analysis code:
IsolatedHighPElectronIdentifier.java
...
Combined 4-jet 6-jet performance using a cut at EvisJETS of 140 GeV to determine the preselection cuts to be used:
variables_id_c1.png variables_id_c2.png variables_id_c3.png
...
TMVA driver routine and cut-table code:
...
Preselection variables:
factory->AddVariable( "evisjets", "Evis JETS", "GeV", 'F' );
factory->AddVariable( "mvisjets", "Mvis JETS", "GeV", 'F' );
factory->AddVariable( "ptvisjets", "PTvis JETS", "GeV/c", 'F' );
factory->AddVariable( "blike", "B Likeness", "", 'F' );
factory->AddVariable( "clike", "C likeness", "", 'F' );
factory->AddVariable( "nelec", "Number of HE Electrons", 'F' );
factory->AddVariable( "hmass", "Higgs Mass","GeV/c2", 'F' );
factory->AddVariable( "ejet1", "Z energy","GeV", 'F' );
factory->AddVariable( "ejet2", "Zstr energy", "GeV", 'F' );
factory->AddVariable( "cjet1", "Z cos theta","", 'F' );
factory->AddVariable( "cjet2", "Zstr cos theta", "", 'F' );
factory->AddVariable( "mjet1", "Z mass", "GeV/c2", 'F' );
factory->AddVariable( "mjet2", "Zstr mass", "GeV/c2", 'F' );
factory->AddVariable( "dphi", "azimuthal separation of Z jets", "", 'F' );
factory->AddVariable( "jetthrust", "thrust", "1", 'F' );
factory->AddVariable( "nchtrks", "Number Charged Tracks", "", 'F' );
...
Code Block |
---|
if ( EvisJETS<140.0){
if (nTrks>10 && EvisJETS>60.0 && PTvisJETS>5.0 && hmass>50. && hmass<140. && fabs(fabs(dph)-3.14159)>0.15 && ej1>40. && jetthrust<0.99) presel=1; // #4 LOW EVIS
} else {
if (nTrks>20 && EvisJETS<220.0 && PTvisJETS>5.0 && hmass>100. && hmass<150. && fabs(fabs(dph)-3.14159)>0.05 && ej1<130. && jetthrust<0.99) presel=1; // #10
}
|
...
// common0410 |
...
Performance of different MVA options:
Code Block |
---|
[neal@localhost weights]$ grep -A 8 -i optimal- ../hzzv14-presel-v4-new-common0410results.txt --- Classifier ( #signal, #backgr.) Optimal-cut S/sqrt(S+B) NSig NBkg EffSig EffBkg -- --------------------------------------------------------------------------------------------- --- Cuts: ( 664.0744,1312202.5) -0.0050 0 0 0 0 0 --- Likelihood: ( 664.0744,1312202.5) 1.0000 0.728991 644.0848 779980.1 0.9699 0.5944 --- Fisher: ( 664.0744,1312202.5) 0.0120 1.70335 258.2099 22721.13 0.3888 0.01732 --- BDTG: ( 664.0744,1312202.5) -0.9823 1.17754 538.5353 208621.3 0.811 0.159 --- BDT: ( 664.0744,1312202.5) -0.0462 3.42709 100.6751 762.2891 0.1516 0.0005809 -- --------------------------------------------------------------------------------------------- |
...