Skip to content

Commit

Permalink
Merge pull request #20975 from alberto-sanchez/ConvertFilters
Browse files Browse the repository at this point in the history
converting filters to global
  • Loading branch information
cmsbuild committed Oct 23, 2017
2 parents dba53a0 + bd97325 commit cd92755
Show file tree
Hide file tree
Showing 9 changed files with 100 additions and 138 deletions.
1 change: 1 addition & 0 deletions GeneratorInterface/GenFilters/BuildFile.xml
Expand Up @@ -9,6 +9,7 @@
<use name="root"/>
<use name="GeneratorInterface/Pythia6Interface"/>
<use name="GeneratorInterface/Core"/>
<use name="pythia8"/>
<use name="SimGeneral/HepPDTRecord"/>
<use name="DataFormats/GeometryVector"/>
<use name="DataFormats/GeometrySurface"/>
Expand Down
12 changes: 6 additions & 6 deletions GeneratorInterface/GenFilters/interface/MCSingleParticleFilter.h
Expand Up @@ -24,7 +24,7 @@

// user include files
#include "FWCore/Framework/interface/Frameworkfwd.h"
#include "FWCore/Framework/interface/EDFilter.h"
#include "FWCore/Framework/interface/global/EDFilter.h"

#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/MakerMacros.h"
Expand All @@ -39,23 +39,23 @@ namespace edm {
class HepMCProduct;
}

class MCSingleParticleFilter : public edm::EDFilter {
class MCSingleParticleFilter : public edm::global::EDFilter<> {
public:
explicit MCSingleParticleFilter(const edm::ParameterSet&);
~MCSingleParticleFilter();
~MCSingleParticleFilter() override;


virtual bool filter(edm::Event&, const edm::EventSetup&);
bool filter(edm::StreamID, edm::Event&, const edm::EventSetup&) const override;
private:
// ----------memeber function----------------------
// ----------member data ---------------------------

edm::EDGetTokenT<edm::HepMCProduct> token_;
const edm::EDGetTokenT<edm::HepMCProduct> token_;
std::vector<int> particleID;
std::vector<double> ptMin;
std::vector<double> etaMin;
std::vector<double> etaMax;
std::vector<int> status;
double betaBoost;
const double betaBoost;
};
#endif
30 changes: 14 additions & 16 deletions GeneratorInterface/GenFilters/interface/PythiaDauFilter.h
Expand Up @@ -24,13 +24,14 @@

// user include files
#include "FWCore/Framework/interface/Frameworkfwd.h"
#include "FWCore/Framework/interface/EDFilter.h"
#include "FWCore/Framework/interface/global/EDFilter.h"

#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/MakerMacros.h"

#include "FWCore/ParameterSet/interface/ParameterSet.h"

#include "Pythia8/Pythia.h"

//
// class decleration
Expand All @@ -39,30 +40,27 @@ namespace edm {
class HepMCProduct;
}

class PythiaDauFilter : public edm::EDFilter {
class PythiaDauFilter : public edm::global::EDFilter<> {
public:
explicit PythiaDauFilter(const edm::ParameterSet&);
~PythiaDauFilter();
~PythiaDauFilter() override;


virtual bool filter(edm::Event&, const edm::EventSetup&);
bool filter(edm::StreamID, edm::Event&, const edm::EventSetup&) const override;
private:
// ----------memeber function----------------------

// ----------member data ---------------------------

edm::EDGetTokenT<edm::HepMCProduct> token_;
const edm::EDGetTokenT<edm::HepMCProduct> token_;
std::vector<int> dauIDs;
int particleID;
bool chargeconju;
int ndaughters;
double minptcut;
double maxptcut;
double minetacut;
double maxetacut;
const int particleID;
const bool chargeconju;
const int ndaughters;
const double minptcut;
const double maxptcut;
const double minetacut;
const double maxetacut;
std::unique_ptr<Pythia8::Pythia> fLookupGen; // this instance is for accessing particleData information
};
#define PYCOMP pycomp_
extern "C" {
int PYCOMP(int& ip);
}
#endif
28 changes: 13 additions & 15 deletions GeneratorInterface/GenFilters/interface/PythiaDauVFilter.h
Expand Up @@ -24,13 +24,14 @@

// user include files
#include "FWCore/Framework/interface/Frameworkfwd.h"
#include "FWCore/Framework/interface/EDFilter.h"
#include "FWCore/Framework/interface/global/EDFilter.h"

#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/MakerMacros.h"

#include "FWCore/ParameterSet/interface/ParameterSet.h"

#include "Pythia8/Pythia.h"

//
// class decleration
Expand All @@ -39,28 +40,25 @@ namespace edm {
class HepMCProduct;
}

class PythiaDauVFilter : public edm::EDFilter {
class PythiaDauVFilter : public edm::global::EDFilter<> {
public:
explicit PythiaDauVFilter(const edm::ParameterSet&);
~PythiaDauVFilter();
~PythiaDauVFilter() override;


virtual bool filter(edm::Event&, const edm::EventSetup&);
bool filter(edm::StreamID, edm::Event&, const edm::EventSetup&) const override;
private:
int fVerbose;
edm::EDGetTokenT<edm::HepMCProduct> token_;
const int fVerbose;
const edm::EDGetTokenT<edm::HepMCProduct> token_;
std::vector<int> dauIDs;
int particleID;
int motherID;
bool chargeconju;
int ndaughters;
const int particleID;
const int motherID;
const bool chargeconju;
const int ndaughters;
std::vector<double> minptcut;
double maxptcut;
const double maxptcut;
std::vector<double> minetacut;
std::vector<double> maxetacut;
std::unique_ptr<Pythia8::Pythia> fLookupGen; // this instance is for accessing particleData information
};
#define PYCOMP pycomp_
extern "C" {
int PYCOMP(int& ip);
}
#endif
42 changes: 17 additions & 25 deletions GeneratorInterface/GenFilters/interface/PythiaFilterGammaGamma.h
Expand Up @@ -10,42 +10,34 @@
//

#include "FWCore/Framework/interface/Frameworkfwd.h"
#include "FWCore/Framework/interface/EDFilter.h"
#include "FWCore/Framework/interface/global/EDFilter.h"

#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/MakerMacros.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"

#include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h"
namespace edm {
class HepMCProduct;
}

#include "TH1D.h"
#include "TH1I.h"

class PythiaFilterGammaGamma : public edm::EDFilter {
class PythiaFilterGammaGamma : public edm::global::EDFilter<> {
public:
explicit PythiaFilterGammaGamma(const edm::ParameterSet&);
~PythiaFilterGammaGamma();
~PythiaFilterGammaGamma() override;

virtual bool filter(edm::Event&, const edm::EventSetup&);
bool filter(edm::StreamID, edm::Event&, const edm::EventSetup&) const override;
private:

const HepMC::GenEvent *myGenEvent;

edm::EDGetTokenT<edm::HepMCProduct> token_;
double minptcut;
double maxptcut;
double minetacut;
double maxetacut;
int maxEvents;
int nSelectedEvents, nGeneratedEvents, counterPrompt;

double ptSeedThr, etaSeedThr, ptGammaThr, etaGammaThr, ptTkThr, etaTkThr;
double ptElThr, etaElThr, dRTkMax, dRSeedMax, dPhiSeedMax, dEtaSeedMax, dRNarrowCone, pTMinCandidate1, pTMinCandidate2, etaMaxCandidate;
double invMassMin, invMassMax;
double energyCut;
int nTkConeMax, nTkConeSum;
bool acceptPrompts;
double promptPtThreshold;
const edm::EDGetTokenT<edm::HepMCProduct> token_;
const int maxEvents;

const double ptSeedThr, etaSeedThr, ptGammaThr, etaGammaThr, ptTkThr, etaTkThr;
const double ptElThr, etaElThr, dRTkMax, dRSeedMax, dPhiSeedMax, dEtaSeedMax, dRNarrowCone, pTMinCandidate1, pTMinCandidate2, etaMaxCandidate;
const double invMassMin, invMassMax;
const double energyCut;
const int nTkConeMax, nTkConeSum;
const bool acceptPrompts;
const double promptPtThreshold;

};
#endif
6 changes: 3 additions & 3 deletions GeneratorInterface/GenFilters/src/MCSingleParticleFilter.cc
Expand Up @@ -37,7 +37,7 @@ betaBoost(iConfig.getUntrackedParameter("BetaBoost",0.))
|| (etaMin.size() > 1 && particleID.size() != etaMin.size())
|| (etaMax.size() > 1 && particleID.size() != etaMax.size())
|| (status.size() > 1 && particleID.size() != status.size()) ) {
cout << "WARNING: MCPROCESSFILTER : size of MinPthat and/or MaxPthat not matching with ProcessID size!!" << endl;
edm::LogInfo("MCSingleParticleFilter") << "WARNING: size of MinPthat and/or MaxPthat not matching with ProcessID size!!" << endl;
}

// if ptMin size smaller than particleID , fill up further with defaults
Expand Down Expand Up @@ -83,7 +83,7 @@ MCSingleParticleFilter::~MCSingleParticleFilter()


// ------------ method called to skim the data ------------
bool MCSingleParticleFilter::filter(edm::Event& iEvent, const edm::EventSetup& iSetup)
bool MCSingleParticleFilter::filter(edm::StreamID, edm::Event& iEvent, const edm::EventSetup& iSetup) const
{
using namespace edm;
bool accepted = false;
Expand Down Expand Up @@ -116,6 +116,6 @@ bool MCSingleParticleFilter::filter(edm::Event& iEvent, const edm::EventSetup& i

}

if (accepted){ return true; } else {return false;}
return accepted;

}
11 changes: 6 additions & 5 deletions GeneratorInterface/GenFilters/src/PythiaDauFilter.cc
Expand Up @@ -3,11 +3,11 @@


#include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h"
#include "HepMC/PythiaWrapper6_4.h"
#include <iostream>

using namespace edm;
using namespace std;
using namespace Pythia8;


PythiaDauFilter::PythiaDauFilter(const edm::ParameterSet& iConfig) :
Expand All @@ -24,6 +24,9 @@ maxetacut(iConfig.getUntrackedParameter("MaxEta", 10.))
vector<int> defdauID;
defdauID.push_back(0);
dauIDs = iConfig.getUntrackedParameter< vector<int> >("DaughterIDs",defdauID);
// create pythia8 instance to access particle data
edm::LogInfo("PythiaDauFilter::PythiaDauFilter") << "Creating pythia8 instance for particle properties" << endl;
if(!fLookupGen.get()) fLookupGen.reset(new Pythia());
}


Expand All @@ -41,7 +44,7 @@ PythiaDauFilter::~PythiaDauFilter()
//

// ------------ method called to produce the data ------------
bool PythiaDauFilter::filter(edm::Event& iEvent, const edm::EventSetup& iSetup)
bool PythiaDauFilter::filter(edm::StreamID, edm::Event& iEvent, const edm::EventSetup& iSetup) const
{
using namespace edm;
bool accepted = false;
Expand Down Expand Up @@ -99,9 +102,7 @@ bool PythiaDauFilter::filter(edm::Event& iEvent, const edm::EventSetup& iSetup)
++ndau;
for( unsigned int i=0; i<dauIDs.size(); ++i) {
int IDanti = -dauIDs[i];
int pythiaCode = PYCOMP(dauIDs[i]);
int has_antipart = pydat2.kchg[3-1][pythiaCode-1];
if( has_antipart == 0 ) IDanti = dauIDs[i];
if ( !(fLookupGen->particleData.isParticle( IDanti )) ) IDanti = dauIDs[i];
if( (*des)->pdg_id() != IDanti ) continue ;
if( (*des)->momentum().perp() > minptcut &&
(*des)->momentum().perp() < maxptcut &&
Expand Down

0 comments on commit cd92755

Please sign in to comment.