14 std::vector<int>
pdgids = {0, 11, 211, 13, 321};
17 std::vector<int>
charges = {0, 1, -1};
26 std::vector<std::function<bool(unsigned int)>>
sels = {
27 [&](
unsigned int isim) {
return 1.; },
30 [&](
unsigned int isim) {
36 std::vector<SimTrackSetDefinition> list_effSetDef;
41 for (
unsigned int isel = 0; isel <
sels.size(); ++isel) {
42 list_effSetDef.push_back(
82 TString(
"pT5_lower_") +
selnames[isel],
87 list_effSetDef.push_back(
89 TString(
"T5_lower_") +
selnames[isel],
96 TString(
"pT3_lower_") +
selnames[isel],
109 std::vector<RecoTrackSetDefinition> list_FRSetDef;
110 list_FRSetDef.push_back(
114 [&](
unsigned int itc) {
return 1; },
119 list_FRSetDef.push_back(
128 list_FRSetDef.push_back(
137 list_FRSetDef.push_back(
146 list_FRSetDef.push_back(
161 [&](
unsigned int ipT5) {
return 1; },
165 [&]() {
return static_cast<const std::vector<int>
>(std::vector<int>(
tas::pT5_pt().size(), 1)); }));
170 [&](
unsigned int it5) {
return 1; },
174 [&]() {
return static_cast<const std::vector<int>
>(std::vector<int>(
tas::t5_pt().size(), 1)); }));
179 [&](
unsigned int ipT3) {
return 1; },
183 [&]() {
return static_cast<const std::vector<int>
>(std::vector<int>(
tas::pT3_pt().size(), 1)); }));
189 std::vector<RecoTrackSetDefinition> list_DRSetDef;
190 list_DRSetDef.push_back(
194 [&](
unsigned int itc) {
return 1; },
199 list_DRSetDef.push_back(
208 list_DRSetDef.push_back(
217 list_DRSetDef.push_back(
226 list_DRSetDef.push_back(
241 [&](
unsigned int ipT5) {
return 1; },
245 [&]() {
return static_cast<const std::vector<int>
>(std::vector<int>(
tas::pT5_pt().size(), 1)); }));
250 [&](
unsigned int it5) {
return 1; },
254 [&]() {
return static_cast<const std::vector<int>
>(std::vector<int>(
tas::t5_pt().size(), 1)); }));
259 [&](
unsigned int ipT3) {
return 1; },
263 [&]() {
return static_cast<const std::vector<int>
>(std::vector<int>(
tas::pT3_pt().size(), 1)); }));
298 TH1F* h_nevts =
new TH1F(
"nevts",
"nevts", 1, 0, 1);
299 h_nevts->SetBinContent(1,
nevts);
320 for (
auto& effset : effsets)
326 TString category_name = TString::Format(
"%s_%d_%d", effset.
set_name.Data(), effset.
pdgid, effset.
q);
439 for (
auto& DRset : DRsets) {
446 TString category_name = DRset.
set_name;
493 for (
auto& FRset : FRsets) {
500 TString category_name = FRset.
set_name;
553 for (
auto& effset : effsets) {
554 for (
unsigned int isimtrk = 0; isimtrk <
lstEff.
sim_pt().size(); ++isimtrk) {
583 bool pass = effset.
pass(isimtrk);
584 bool sel = effset.
sel(isimtrk);
586 if (effset.
pdgid != 0) {
596 if (effset.
pdgid == 0 and
q == 0)
602 TString category_name = TString::Format(
"%s_%d_%d", effset.
set_name.Data(), effset.
pdgid, effset.
q);
606 const float vtx_z_thresh = 30;
607 const float vtx_perp_thresh = 2.5;
666 for (
auto& FRset : FRsets) {
667 for (
unsigned int itc = 0; itc < FRset.pt().size(); ++itc) {
675 float pt = FRset.
pt().at(itc);
676 float eta = FRset.
eta().at(itc);
677 float phi = FRset.
phi().at(itc);
678 TString category_name = FRset.
set_name;
679 bool pass = FRset.
pass(itc);
680 bool sel = FRset.
sel(itc);
704 for (
auto& DRset : DRsets) {
705 for (
unsigned int itc = 0; itc < DRset.pt().size(); ++itc) {
713 float pt = DRset.
pt().at(itc);
714 float eta = DRset.
eta().at(itc);
715 float phi = DRset.
phi().at(itc);
716 TString category_name = DRset.
set_name;
717 bool pass = DRset.
pass(itc);
718 bool sel = DRset.
sel(itc);
const std::vector< int > & pT5_isFake()
const std::vector< float > & t5_phi()
const std::vector< float > & pT5_eta()
std::vector< float > getPtBounds(int mode)
const std::vector< int > & sim_TC_matched()
const std::vector< float > & pT3_eta()
const std::vector< float > & tc_pt()
const std::vector< int > & t5_isFake()
const std::vector< int > & tc_type()
const std::vector< float > & sim_vy()
void pushbackToBranch(TString, T)
std::function< const std::vector< float >)> pt
const std::vector< float > & sim_eta()
const std::vector< int > & tc_isDuplicate()
const std::vector< float > & tc_eta()
const std::vector< int > & tc_type()
const std::vector< int > & sim_pT3_matched()
unsigned int getNEventsProcessed()
const std::vector< int > & pT3_isFake()
std::function< bool(unsigned int)> pass
const std::vector< float > & sim_phi()
const std::vector< int > & t5_isDuplicate()
const std::vector< float > & sim_pca_dxy()
const std::vector< float > & sim_vx()
const std::vector< int > & sim_T5_matched()
const std::vector< float > & vtx_y()
const std::vector< float > & tc_phi()
const T & getBranchLazy(TString)
void createBranch(TString, bool=true)
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
std::function< bool(unsigned int)> pass
const std::vector< int > & sim_pT5_matched()
RooUtil::Looper< Trktree > looper
Abs< T >::type abs(const T &t)
const std::vector< int > & sim_q()
const std::vector< float > & sim_pt()
RooUtil::Histograms histograms
std::function< const std::vector< float >)> phi
std::function< bool(unsigned int)> sel
const std::vector< float > & vtx_x()
const std::vector< float > & vtx_z()
void addVecHistogram(TString, unsigned int, float, float, std::function< std::vector< float >()>, std::function< std::vector< float >()> wgt=nullptr)
const std::vector< float > & pT5_phi()
const std::vector< int > & sim_pdgId()
const std::vector< float > & sim_vz()
const std::vector< float > & t5_pt()
std::vector< int > pdgids
const std::vector< float > & pT3_phi()
void initializeInputsAndOutputs()
std::function< const std::vector< float >)> eta
const std::vector< int > & sim_TC_matched_mask()
const std::vector< float > & sim_pca_dz()
const std::vector< float > & pT3_pt()
charges
only generated particles of these IDs are considered
const std::vector< float > & pT5_pt()
void bookHistograms(Histograms &histograms)
const std::vector< int > & pT3_isDuplicate()
const std::vector< int > & pT5_isDuplicate()
std::function< bool(unsigned int)> sel
const std::vector< int > & tc_isFake()
const std::vector< float > & t5_eta()