CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes
TauValidation Class Reference

#include <TauValidation.h>

Inheritance diagram for TauValidation:
one::DQMEDAnalyzer< T > one::dqmimplementation::DQMBaseClass< T... >

Public Types

enum  {
  undetermined, electron, muon, pi,
  rho, a1, K, Kstar,
  pi1pi0, pinpi0, tripi, tripinpi0,
  stable
}
 
enum  {
  other, B, D, gamma,
  Z, W, HSM, H0,
  A0, Hpm
}
 

Public Member Functions

void analyze (edm::Event const &, edm::EventSetup const &) override
 
void bookHistograms (DQMStore::IBooker &i, edm::Run const &, edm::EventSetup const &) override
 
void dqmBeginRun (const edm::Run &r, const edm::EventSetup &c) override
 
 TauValidation (const edm::ParameterSet &)
 
 ~TauValidation () override
 
- Public Member Functions inherited from one::DQMEDAnalyzer< T >
 DQMEDAnalyzer ()=default
 
 DQMEDAnalyzer (DQMEDAnalyzer< T... > const &)=delete
 
 DQMEDAnalyzer (DQMEDAnalyzer< T... > &&)=delete
 
 ~DQMEDAnalyzer () override=default
 

Private Member Functions

void countParticles (const reco::GenParticle *p, int &allCount, int &eCount, int &muCount, int &pi0Count, int &piCount, int &rhoCount, int &a1Count, int &KCount, int &KstarCount)
 
void findFSRandBrem (const reco::GenParticle *p, bool doBrem, std::vector< const reco::GenParticle * > &ListofFSR, std::vector< const reco::GenParticle * > &ListofBrem)
 
int findMother (const reco::GenParticle *)
 
void FindPhotosFSR (const reco::GenParticle *p, std::vector< const reco::GenParticle * > &ListofFSR, double &BosonScale)
 
void findTauList (const reco::GenParticle *tau, std::vector< const reco::GenParticle * > &TauList)
 
const reco::GenParticleGetMother (const reco::GenParticle *tau)
 
const std::vector< const reco::GenParticle * > GetMothers (const reco::GenParticle *boson)
 
bool isLastTauinChain (const reco::GenParticle *tau)
 
double leadingPionMomentum (const reco::GenParticle *, double weight)
 
TLorentzVector leadingPionP4 (const reco::GenParticle *)
 
TLorentzVector motherP4 (const reco::GenParticle *)
 
void photons (const reco::GenParticle *, double weight)
 
void spinEffectsWHpm (const reco::GenParticle *, int, int, std::vector< const reco::GenParticle * > &part, double weight)
 
void spinEffectsZH (const reco::GenParticle *boson, double weight)
 
int tauDecayChannel (const reco::GenParticle *tau, int jak_id, unsigned int TauBitMask, double weight)
 
int tauMother (const reco::GenParticle *, double weight)
 
int tauProngs (const reco::GenParticle *, double weight)
 
double visibleTauEnergy (const reco::GenParticle *)
 
double Zstoa (double zs)
 

Private Attributes

MonitorElementDecayLength
 
edm::ESHandle< HepPDT::ParticleDataTablefPDGTable
 PDT table. More...
 
edm::InputTag genparticleCollection_
 
edm::EDGetTokenT< reco::GenParticleCollectiongenparticleCollectionToken_
 
MonitorElementLifeTime
 
MonitorElementMODEID
 
std::vector< std::vector< MonitorElement * > > MODEInvMass
 
unsigned int NMODEID
 
MonitorElementnPrimeTaus
 
MonitorElementnTaus
 
MonitorElementTauBremPhotonsN
 
MonitorElementTauBremPhotonsPt
 
MonitorElementTauBremPhotonsPtSum
 
MonitorElementTauDecayChannels
 
MonitorElementTauEta
 
MonitorElementTauFSRPhotonsN
 
MonitorElementTauFSRPhotonsPt
 
MonitorElementTauFSRPhotonsPtSum
 
MonitorElementTauMothers
 
MonitorElementTauPhi
 
MonitorElementTauProngs
 
MonitorElementTauPt
 
MonitorElementTauSpinEffectsH_eX
 
MonitorElementTauSpinEffectsH_muX
 
MonitorElementTauSpinEffectsH_MVis
 
MonitorElementTauSpinEffectsH_pipiAcollinearity
 
MonitorElementTauSpinEffectsH_pipiAcollinearityzoom
 
MonitorElementTauSpinEffectsH_pipiAcoplanarity
 
MonitorElementTauSpinEffectsH_rhorhoAcoplanarityminus
 
MonitorElementTauSpinEffectsH_rhorhoAcoplanarityplus
 
MonitorElementTauSpinEffectsH_X
 
MonitorElementTauSpinEffectsH_Xb
 
MonitorElementTauSpinEffectsH_Xf
 
MonitorElementTauSpinEffectsH_Zs
 
MonitorElementTauSpinEffectsHpm_eX
 
MonitorElementTauSpinEffectsHpm_muX
 
MonitorElementTauSpinEffectsHpm_UpsilonA1
 
MonitorElementTauSpinEffectsHpm_UpsilonRho
 
MonitorElementTauSpinEffectsHpm_X
 
MonitorElementTauSpinEffectsW_eX
 
MonitorElementTauSpinEffectsW_muX
 
MonitorElementTauSpinEffectsW_UpsilonA1
 
MonitorElementTauSpinEffectsW_UpsilonRho
 
MonitorElementTauSpinEffectsW_X
 
MonitorElementTauSpinEffectsZ_eX
 
MonitorElementTauSpinEffectsZ_muX
 
MonitorElementTauSpinEffectsZ_MVis
 
MonitorElementTauSpinEffectsZ_X
 
MonitorElementTauSpinEffectsZ_X100to120
 
MonitorElementTauSpinEffectsZ_X120UP
 
MonitorElementTauSpinEffectsZ_X50to75
 
MonitorElementTauSpinEffectsZ_X75to88
 
MonitorElementTauSpinEffectsZ_X88to100
 
MonitorElementTauSpinEffectsZ_Xb
 
MonitorElementTauSpinEffectsZ_Xf
 
MonitorElementTauSpinEffectsZ_Zs
 
int zsbins
 
double zsmax
 
double zsmin
 

Detailed Description

Definition at line 26 of file TauValidation.h.

Member Enumeration Documentation

anonymous enum
Enumerator
undetermined 
electron 
muon 
pi 
rho 
a1 
Kstar 
pi1pi0 
pinpi0 
tripi 
tripinpi0 
stable 

Definition at line 30 of file TauValidation.h.

anonymous enum
Enumerator
other 
gamma 
HSM 
H0 
A0 
Hpm 

Definition at line 44 of file TauValidation.h.

Constructor & Destructor Documentation

TauValidation::TauValidation ( const edm::ParameterSet iPSet)
explicit

Definition at line 18 of file TauValidation.cc.

References genparticleCollection_, and genparticleCollectionToken_.

19  : // wmanager_(iPSet,consumesCollector())
20  genparticleCollection_(iPSet.getParameter<edm::InputTag>("genparticleCollection")),
21  NMODEID(TauDecay::NMODEID - 1), // fortran to C++ index
22  zsbins(20),
23  zsmin(-0.5),
24  zsmax(0.5) {
25  genparticleCollectionToken_ = consumes<reco::GenParticleCollection>(genparticleCollection_);
26 }
T getParameter(std::string const &) const
unsigned int NMODEID
edm::EDGetTokenT< reco::GenParticleCollection > genparticleCollectionToken_
edm::InputTag genparticleCollection_
Definition: TauValidation.h:86
TauValidation::~TauValidation ( )
override

Definition at line 28 of file TauValidation.cc.

28 {}

Member Function Documentation

void TauValidation::analyze ( edm::Event const &  ,
edm::EventSetup const &   
)
override

Gathering the reco::GenParticleCollection information

Definition at line 368 of file TauValidation.cc.

References funct::abs(), TauDecay_GenParticle::AnalyzeTau(), pfBoostedDoubleSVAK8TagInfos_cfi::beta, EnergyCorrector::c, DecayLength, MonitorElement::Fill(), genparticleCollectionToken_, GenHFHadronMatcher_cfi::genParticles, TauDecay_GenParticle::Get_TauDecayProducts(), edm::Event::getByToken(), PdtPdgMini::Higgs0, mps_fire::i, isLastTauinChain(), TauDecay::isTauFinalStateParticle(), PdtPdgMini::K_plus, LifeTime, TauDecay::MODE_3PI, TauDecay::MODE_KPIK, TauDecay::MODE_KPIPI, TauDecay::MODE_PI2PI0, MODEID, MODEInvMass, NMODEID, nPrimeTaus, TauDecay::nProng(), nTaus, PdtPdgMini::nu_e, PdtPdgMini::nu_mu, PdtPdgMini::nu_tau, photons(), PdtPdgMini::pi_plus, nanoDQM_cfi::PV, spinEffectsWHpm(), spinEffectsZH(), nanoDQM_cfi::SV, tauDecayChannel(), TauEta, tauMother(), TauPhi, TauProngs, TauPt, mps_merge::weight, and PdtPdgMini::Z0.

368  {
371  iEvent.getByToken(genparticleCollectionToken_, genParticles);
372 
373  double weight = 1.0; //= wmanager_.weight(iEvent);
375  // find taus
376  for (reco::GenParticleCollection::const_iterator iter = genParticles->begin(); iter != genParticles->end(); ++iter) {
377  if (abs(iter->pdgId()) == PdtPdgMini::Z0 || abs(iter->pdgId()) == PdtPdgMini::Higgs0) {
378  spinEffectsZH(&(*iter), weight);
379  }
380  if (abs(iter->pdgId()) == 15) {
381  if (isLastTauinChain(&(*iter))) {
382  nTaus->Fill(0.5, weight);
383  int mother = tauMother(&(*iter), weight);
384  if (mother > -1) { // exclude B, D and other non-signal decay modes
385  nPrimeTaus->Fill(0.5, weight);
386  TauPt->Fill(iter->pt(), weight);
387  TauEta->Fill(iter->eta(), weight);
388  TauPhi->Fill(iter->phi(), weight);
389  photons(&(*iter), weight);
391  // Adding MODEID and Mass information
393  unsigned int jak_id, TauBitMask;
394  if (TD.AnalyzeTau(&(*iter), jak_id, TauBitMask, false, false)) {
395  MODEID->Fill(jak_id, weight);
396  TauProngs->Fill(TD.nProng(TauBitMask), weight);
397  tauDecayChannel(&(*iter), jak_id, TauBitMask, weight);
398  if (jak_id <= NMODEID) {
399  int tcharge = iter->pdgId() / abs(iter->pdgId());
400  std::vector<const reco::GenParticle *> part = TD.Get_TauDecayProducts();
401  spinEffectsWHpm(&(*iter), mother, jak_id, part, weight);
402  TLorentzVector LVQ(0, 0, 0, 0);
403  TLorentzVector LVS12(0, 0, 0, 0);
404  TLorentzVector LVS13(0, 0, 0, 0);
405  TLorentzVector LVS23(0, 0, 0, 0);
406  bool haspart1 = false;
407  TVector3 PV, SV;
408  bool hasDL(false);
409  for (unsigned int i = 0; i < part.size(); i++) {
410  if (abs(part.at(i)->pdgId()) != PdtPdgMini::nu_tau && TD.isTauFinalStateParticle(part.at(i)->pdgId()) &&
411  !hasDL) {
412  hasDL = true;
413  TLorentzVector tlv(iter->px(), iter->py(), iter->pz(), iter->energy());
414  PV = TVector3(iter->vx(), iter->vy(), iter->vz());
415  SV = TVector3(part.at(i)->vx(), part.at(i)->vy(), part.at(i)->vz());
416  TVector3 DL = SV - PV;
417  DecayLength->Fill(DL.Dot(tlv.Vect()) / tlv.P(), weight);
418  double c(2.99792458E8), Ltau(DL.Mag() / 100) /*cm->m*/, beta(iter->p() / iter->mass());
419  LifeTime->Fill(Ltau / (c * beta), weight);
420  }
421 
422  if (TD.isTauFinalStateParticle(part.at(i)->pdgId()) && abs(part.at(i)->pdgId()) != PdtPdgMini::nu_e &&
423  abs(part.at(i)->pdgId()) != PdtPdgMini::nu_mu && abs(part.at(i)->pdgId()) != PdtPdgMini::nu_tau) {
424  TLorentzVector LV(part.at(i)->px(), part.at(i)->py(), part.at(i)->pz(), part.at(i)->energy());
425  LVQ += LV;
426  if (jak_id == TauDecay::MODE_3PI || jak_id == TauDecay::MODE_PI2PI0 ||
427  jak_id == TauDecay::MODE_KPIK || jak_id == TauDecay::MODE_KPIPI) {
428  if ((tcharge == part.at(i)->pdgId() / abs(part.at(i)->pdgId()) && TD.nProng(TauBitMask) == 3) ||
429  ((jak_id == TauDecay::MODE_3PI || jak_id == TauDecay::MODE_PI2PI0) &&
430  TD.nProng(TauBitMask) == 1 && abs(part.at(i)->pdgId()) == PdtPdgMini::pi_plus)) {
431  LVS13 += LV;
432  LVS23 += LV;
433  } else {
434  LVS12 += LV;
435  if (!haspart1 && ((jak_id == TauDecay::MODE_3PI || jak_id == TauDecay::MODE_PI2PI0) ||
436  ((jak_id != TauDecay::MODE_3PI || jak_id == TauDecay::MODE_PI2PI0) &&
437  abs(part.at(i)->pdgId()) == PdtPdgMini::K_plus))) {
438  LVS13 += LV;
439  haspart1 = true;
440  } else {
441  LVS23 += LV;
442  }
443  }
444  }
445  }
446  }
447  part.clear();
448  MODEInvMass.at(jak_id).at(0)->Fill(LVQ.M(), weight);
449  if (jak_id == TauDecay::MODE_3PI || jak_id == TauDecay::MODE_PI2PI0 || jak_id == TauDecay::MODE_KPIK ||
450  jak_id == TauDecay::MODE_KPIPI) {
451  MODEInvMass.at(jak_id).at(1)->Fill(LVS13.M(), weight);
452  MODEInvMass.at(jak_id).at(2)->Fill(LVS23.M(), weight);
453  MODEInvMass.at(jak_id).at(3)->Fill(LVS12.M(), weight);
454  }
455  }
456  } else {
457  MODEID->Fill(jak_id, weight);
458  }
459  }
460  }
461  }
462  }
463 } //analyze
MonitorElement * TauPhi
Definition: TauValidation.h:92
MonitorElement * MODEID
MonitorElement * nTaus
Definition: TauValidation.h:91
MonitorElement * DecayLength
Definition: TauValidation.h:92
std::vector< std::vector< MonitorElement * > > MODEInvMass
math::XYZTLorentzVectorD LV
MonitorElement * TauPt
Definition: TauValidation.h:92
void spinEffectsWHpm(const reco::GenParticle *, int, int, std::vector< const reco::GenParticle * > &part, double weight)
bool isLastTauinChain(const reco::GenParticle *tau)
Definition: weight.py:1
void Fill(long long x)
MonitorElement * TauProngs
Definition: TauValidation.h:92
bool isTauFinalStateParticle(int pdgid)
Definition: TauDecay.cc:36
void photons(const reco::GenParticle *, double weight)
int iEvent
Definition: GenABIO.cc:224
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
unsigned int NMODEID
int tauMother(const reco::GenParticle *, double weight)
std::vector< const reco::GenParticle * > Get_TauDecayProducts()
int tauDecayChannel(const reco::GenParticle *tau, int jak_id, unsigned int TauBitMask, double weight)
part
Definition: HCALResponse.h:20
edm::EDGetTokenT< reco::GenParticleCollection > genparticleCollectionToken_
MonitorElement * LifeTime
Definition: TauValidation.h:92
MonitorElement * TauEta
Definition: TauValidation.h:92
bool AnalyzeTau(const reco::GenParticle *Tau, unsigned int &MODE_ID, unsigned int &TauBitMask, bool dores, bool dopi0)
MonitorElement * nPrimeTaus
Definition: TauValidation.h:91
void spinEffectsZH(const reco::GenParticle *boson, double weight)
unsigned int nProng(unsigned int &TauBitMask)
Definition: TauDecay.cc:218
void TauValidation::bookHistograms ( DQMStore::IBooker i,
edm::Run const &  ,
edm::EventSetup const &   
)
override

Setting the DQM top directories

Definition at line 32 of file TauValidation.cc.

References A0, a1, B, DQMHelper::book1dHisto(), D, DecayLength, TauDecay::DecayMode(), electron, gamma, H0, Hpm, HSM, K, Kstar, LifeTime, TauDecay::MODE_3PI, TauDecay::MODE_KPIK, TauDecay::MODE_KPIPI, TauDecay::MODE_PI2PI0, MODEID, MODEInvMass, NMODEID, nPrimeTaus, nTaus, other, Pi, pi, pi1pi0, pinpi0, rho, MonitorElement::setBinLabel(), DQMStore::IBooker::setCurrentFolder(), stable, AlCaHLTBitMon_QueryRunRegistry::string, TauBremPhotonsN, TauBremPhotonsPt, TauBremPhotonsPtSum, TauDecayChannels, TauEta, TauFSRPhotonsN, TauFSRPhotonsPt, TauFSRPhotonsPtSum, TauMothers, TauPhi, TauProngs, TauPt, TauSpinEffectsH_eX, TauSpinEffectsH_muX, TauSpinEffectsH_MVis, TauSpinEffectsH_pipiAcollinearity, TauSpinEffectsH_pipiAcollinearityzoom, TauSpinEffectsH_pipiAcoplanarity, TauSpinEffectsH_rhorhoAcoplanarityminus, TauSpinEffectsH_rhorhoAcoplanarityplus, TauSpinEffectsH_X, TauSpinEffectsH_Xb, TauSpinEffectsH_Xf, TauSpinEffectsH_Zs, TauSpinEffectsHpm_eX, TauSpinEffectsHpm_muX, TauSpinEffectsHpm_UpsilonA1, TauSpinEffectsHpm_UpsilonRho, TauSpinEffectsHpm_X, TauSpinEffectsW_eX, TauSpinEffectsW_muX, TauSpinEffectsW_UpsilonA1, TauSpinEffectsW_UpsilonRho, TauSpinEffectsW_X, TauSpinEffectsZ_eX, TauSpinEffectsZ_muX, TauSpinEffectsZ_MVis, TauSpinEffectsZ_X, TauSpinEffectsZ_X100to120, TauSpinEffectsZ_X120UP, TauSpinEffectsZ_X50to75, TauSpinEffectsZ_X75to88, TauSpinEffectsZ_X88to100, TauSpinEffectsZ_Xb, TauSpinEffectsZ_Xf, TauSpinEffectsZ_Zs, tmp, tripi, tripinpi0, undetermined, W, Z, zsbins, zsmax, and zsmin.

32  {
34  DQMHelper dqm(&i);
35  i.setCurrentFolder("Generator/Tau");
36  // Number of analyzed events
37  nTaus = dqm.book1dHisto("nTaus", "n analyzed Taus", 1, 0., 1., "bin", "Number of #tau's found");
38  nPrimeTaus =
39  dqm.book1dHisto("nPrimeTaus", "n analyzed prime Taus", 1, 0., 1., "bin", "Number of #tau's from Gauge Bosons");
40 
41  //Kinematics
42  TauPt = dqm.book1dHisto("TauPt", "Tau pT", 100, 0, 100, "P_{T}^{#tau}", "Number of #tau's from Gauge Bosons");
43  TauEta = dqm.book1dHisto("TauEta", "Tau eta", 100, -2.5, 2.5, "#eta^{#tau}", "Number of #tau's from Gauge Bosons");
44  TauPhi = dqm.book1dHisto("TauPhi", "Tau phi", 100, -3.14, 3.14, "#phi^{#tau}", "Number of #tau's from Gauge Bosons");
45  TauProngs = dqm.book1dHisto("TauProngs", "Tau n prongs", 7, 0, 7, "N_{prongs}", "Number of #tau's from Gauge Bosons");
46  TauDecayChannels = dqm.book1dHisto(
47  "TauDecayChannels", "Tau decay channels", 13, 0, 13, "Tau POG Decay Mode", "Number of #tau's from Gauge Bosons");
50  TauDecayChannels->setBinLabel(1 + muon, "mu");
51  TauDecayChannels->setBinLabel(1 + pi, "#pi^{#pm}");
52  TauDecayChannels->setBinLabel(1 + rho, "#rho^{#pm}");
53  TauDecayChannels->setBinLabel(1 + a1, "a_{1}^{#pm}");
54  TauDecayChannels->setBinLabel(1 + pi1pi0, "#pi^{#pm}#pi^{0}");
55  TauDecayChannels->setBinLabel(1 + pinpi0, "#pi^{#pm}n#pi^{0}");
56  TauDecayChannels->setBinLabel(1 + tripi, "3#pi^{#pm}");
57  TauDecayChannels->setBinLabel(1 + tripinpi0, "3#pi^{#pm}n#pi^{0}");
58  TauDecayChannels->setBinLabel(1 + K, "K");
59  TauDecayChannels->setBinLabel(1 + Kstar, "K^{*}");
60  TauDecayChannels->setBinLabel(1 + stable, "Stable");
61 
62  TauMothers = dqm.book1dHisto("TauMothers", "Tau mother particles", 10, 0, 10, "Mother of #tau", "Number of #tau's");
63 
64  TauMothers->setBinLabel(1 + other, "?");
65  TauMothers->setBinLabel(1 + B, "B Decays");
66  TauMothers->setBinLabel(1 + D, "D Decays");
67  TauMothers->setBinLabel(1 + gamma, "#gamma");
68  TauMothers->setBinLabel(1 + Z, "Z");
69  TauMothers->setBinLabel(1 + W, "W");
70  TauMothers->setBinLabel(1 + HSM, "H_{SM}/h^{0}");
71  TauMothers->setBinLabel(1 + H0, "H^{0}");
72  TauMothers->setBinLabel(1 + A0, "A^{0}");
73  TauMothers->setBinLabel(1 + Hpm, "H^{#pm}");
74 
75  DecayLength = dqm.book1dHisto(
76  "DecayLength", "#tau Decay Length", 100, -20, 20, "L_{#tau} (cm)", "Number of #tau's from Gauge Bosons");
77  LifeTime = dqm.book1dHisto(
78  "LifeTime", "#tau LifeTime ", 500, 0, 10000E-15, "#tau_{#tau} (s)", "Number of #tau's from Gauge Bosons");
79 
80  TauSpinEffectsW_X = dqm.book1dHisto(
81  "TauSpinEffectsWX", "X for pion", 50, 0, 1, "X", "Number of #tau#rightarrow#pi#nu from W^{#pm} Bosons");
82  TauSpinEffectsHpm_X = dqm.book1dHisto(
83  "TauSpinEffectsHpmX", "X for pion", 50, 0, 1, "X", "Number of #tau#rightarrow#pi#nu from H^{#pm} Bosons");
84 
85  TauSpinEffectsW_eX = dqm.book1dHisto(
86  "TauSpinEffectsWeX", "X for e", 50, 0, 1, "X", "Number of #tau#rightarrowe#nu#nu from W^{#pm} Bosons");
87  TauSpinEffectsHpm_eX = dqm.book1dHisto(
88  "TauSpinEffectsHpmeX", "X for e", 50, 0, 1, "X", "Number of #tau#rightarrowe#nu#nu from H^{#pm} Bosons");
89 
90  TauSpinEffectsW_muX = dqm.book1dHisto(
91  "TauSpinEffectsWmuX", "X for mu", 50, 0, 1, "X", "Number of #tau#rightarrow#mu#nu#nu from W^{#pm} Bosons");
92  TauSpinEffectsHpm_muX = dqm.book1dHisto(
93  "TauSpinEffectsHpmmuX", "X for mue", 50, 0, 1, "X", "Number of #tau#rightarrow#mu#nu#nu from H^{#pm} Bosons");
94 
95  TauSpinEffectsW_UpsilonRho = dqm.book1dHisto("TauSpinEffectsWUpsilonRho",
96  "#Upsilon for #rho",
97  50,
98  -1,
99  1,
100  "#Upsilon",
101  "Number of #tau#rightarrow#rho#nu from Gauge Bosons");
102  TauSpinEffectsHpm_UpsilonRho = dqm.book1dHisto("TauSpinEffectsHpmUpsilonRho",
103  "#Upsilon for #rho",
104  50,
105  -1,
106  1,
107  "#Upsilon",
108  "Number of #tau#rightarrow#rho#nu from Gauge Bosons");
109 
110  TauSpinEffectsW_UpsilonA1 = dqm.book1dHisto("TauSpinEffectsWUpsilonA1",
111  "#Upsilon for a1",
112  50,
113  -1,
114  1,
115  "#Upsilon",
116  "Number of #tau#rightarrow#pi#pi#pi#nu from Gauge Bosons");
117  TauSpinEffectsHpm_UpsilonA1 = dqm.book1dHisto("TauSpinEffectsHpmUpsilonA1",
118  "#Upsilon for a1",
119  50,
120  -1,
121  1,
122  "#Upsilon",
123  "Number of #tau#rightarrow#pi#pi#pi#nu from Gauge Bosons");
124 
126  dqm.book1dHisto("TauSpinEffectsH_pipiAcoplanarity",
127  "H Acoplanarity for #pi^{-}#pi^{+}",
128  50,
129  0,
130  2 * TMath::Pi(),
131  "Acoplanarity",
132  "Number of H#rightarrow#tau^{-}(#rightarrow#pi^{-}#nu)#tau^{+}(#rightarrow#pi^{+}#nu) Events");
133 
135  dqm.book1dHisto("TauSpinEffectsH_pipiAcollinearity",
136  "H Acollinearity for #pi^{-}#pi^{+}",
137  50,
138  0,
139  TMath::Pi(),
140  "Acollinearity",
141  "Number of H#rightarrow#tau^{-}(#rightarrow#pi^{-}#nu)#tau^{+}(#rightarrow#pi^{+}#nu) Events");
143  dqm.book1dHisto("TauSpinEffectsH_pipiAcollinearityzoom",
144  "H Acollinearity for #pi^{-}#pi^{+}",
145  50,
146  3,
147  TMath::Pi(),
148  "Acollinearity",
149  "Number of H#rightarrow#tau^{-}(#rightarrow#pi^{-}#nu)#tau^{+}(#rightarrow#pi^{+}#nu) Events");
150 
152  dqm.book1dHisto("TauSpinEffectsZMVis",
153  "Mass of pi+ pi-",
154  25,
155  0,
156  1.1,
157  "M_{#pi^{+}#pi^{-}} (GeV)",
158  "Number of Z#rightarrow#tau^{-}(#rightarrow#pi^{-}#nu)#tau^{+}(#rightarrow#pi^{+}#nu) Events");
160  dqm.book1dHisto("TauSpinEffectsHMVis",
161  "Mass of pi+ pi-",
162  25,
163  0,
164  1.1,
165  "M_{#pi^{+}#pi^{-}} (GeV)",
166  "Number of H#rightarrow#tau^{-}(#rightarrow#pi^{-}#nu)#tau^{+}(#rightarrow#pi^{+}#nu) Events");
167 
169  dqm.book1dHisto("TauSpinEffectsZZs",
170  "Z_{s}",
171  zsbins,
172  zsmin,
173  zsmax,
174  "Z_{s}",
175  "Number of Z#rightarrow#tau^{-}(#rightarrow#pi^{-}#nu)#tau^{+}(#rightarrow#pi^{+}#nu Events");
177  dqm.book1dHisto("TauSpinEffectsHZs",
178  "Z_{s}",
179  zsbins,
180  zsmin,
181  zsmax,
182  "Z_{s}",
183  "Number of H#rightarrow#tau^{-}(#rightarrow#pi^{-}#nu)#tau^{+}(#rightarrow#pi^{+}#nu Events");
184 
185  TauSpinEffectsZ_X = dqm.book1dHisto(
186  "TauSpinEffectsZX", "X for pion of #tau^{-}", 25, 0, 1.0, "X", "Number of #tau#rightarrow#pi#nu from Z Bosons");
187  TauSpinEffectsZ_X50to75 = dqm.book1dHisto("TauSpinEffectsZX50to75",
188  "X for pion of #tau^{-} (50GeV-75GeV)",
189  10,
190  0,
191  1.0,
192  "X",
193  "Number of #tau#rightarrow#pi#nu from Z(50GeV<M<75GeV) Bosons");
194  TauSpinEffectsZ_X75to88 = dqm.book1dHisto("TauSpinEffectsZX75to88",
195  "X for pion of #tau^{-} (75GeV-88GeV)",
196  10,
197  0,
198  1.0,
199  "X",
200  "Number of #tau#rightarrow#pi#nu from Z(75GeV<M<88GeV) Bosons");
201  TauSpinEffectsZ_X88to100 = dqm.book1dHisto("TauSpinEffectsZX88to100",
202  "X for pion of #tau^{-} (88GeV-100GeV)",
203  10,
204  0,
205  1.0,
206  "X",
207  "Number of #tau#rightarrow#pi#nu from Z(88GeV<M<100GeV) Bosons");
208  TauSpinEffectsZ_X100to120 = dqm.book1dHisto("TauSpinEffectsZX100to120",
209  "X for pion of #tau^{-} (100GeV-120GeV)",
210  10,
211  0,
212  1.0,
213  "X",
214  "Number of #tau#rightarrow#pi#nu from Z(100GeV<M<120GeV) Bosons");
215  TauSpinEffectsZ_X120UP = dqm.book1dHisto("TauSpinEffectsZX120UP",
216  "X for pion of #tau^{-} (>120GeV)",
217  10,
218  0,
219  1.0,
220  "X",
221  "Number of #tau#rightarrow#pi#nu from Z(120GeV<MGeV) Bosons");
222 
223  TauSpinEffectsH_X = dqm.book1dHisto(
224  "TauSpinEffectsH_X", "X for pion of #tau^{-}", 25, 0, 1.0, "X", "Number of #tau#rightarrow#pi#nu from H Bosons");
225 
226  TauSpinEffectsZ_Xf = dqm.book1dHisto("TauSpinEffectsZXf",
227  "X for pion of forward emitted #tau^{-}",
228  25,
229  0,
230  1.0,
231  "X_{f}",
232  "Number of #tau#rightarrow#pi#nu from Z Bosons");
233  TauSpinEffectsH_Xf = dqm.book1dHisto("TauSpinEffectsHXf",
234  "X for pion of forward emitted #tau^{-}",
235  25,
236  0,
237  1.0,
238  "X_{f}",
239  "Number of #tau#rightarrow#pi#nu from H Bosons");
240 
241  TauSpinEffectsZ_Xb = dqm.book1dHisto("TauSpinEffectsZXb",
242  "X for pion of backward emitted #tau^{-}",
243  25,
244  0,
245  1.0,
246  "X_{b}",
247  "Number of #tau#rightarrow#pi#nu from Z Bosons");
248  TauSpinEffectsH_Xb = dqm.book1dHisto("TauSpinEffectsHXb",
249  "X for pion of backward emitted #tau^{-}",
250  25,
251  0,
252  1.0,
253  "X_{b}",
254  "Number of #tau#rightarrow#pi#nu from H Bosons");
255 
256  TauSpinEffectsZ_eX = dqm.book1dHisto(
257  "TauSpinEffectsZeX", "X for e", 50, 0, 1, "X", "Number of #tau#rightarrowe#nu#nu from Gauge Bosons");
258  TauSpinEffectsH_eX = dqm.book1dHisto(
259  "TauSpinEffectsHeX", "X for e", 50, 0, 1, "X", "Number of #tau#rightarrowe#nu#nu from Gauge Bosons");
260 
261  TauSpinEffectsZ_muX = dqm.book1dHisto(
262  "TauSpinEffectsZmuX", "X for mu", 50, 0, 1, "X", "Number of #tau#rightarrow#mu#nu#nu from Gauge Bosons");
263  TauSpinEffectsH_muX = dqm.book1dHisto(
264  "TauSpinEffectsHmuX", "X for mu", 50, 0, 1, "X", "Number of #tau#rightarrow#mu#nu#nu from Gauge Bosons");
265 
267  dqm.book1dHisto("TauSpinEffectsH_rhorhoAcoplanarityminus",
268  "#phi^{*-} (acoplanarity) for Higgs #rightarrow #rho-#rho (y_{1}*y_{2}<0)",
269  32,
270  0,
271  2 * TMath::Pi(),
272  "#phi^{*-} (Acoplanarity)",
273  "Number of H#rightarrow#tau^{-}(#rightarrow#rho^{-}#nu)#tau^{+}(#rightarrow#rho^{+}#nu) Events");
275  dqm.book1dHisto("TauSpinEffectsH_rhorhoAcoplanarityplus",
276  "#phi^{*+} (acoplanarity) for Higgs #rightarrow #rho-#rho (y_{1}*y_{2}>0)",
277  32,
278  0,
279  2 * TMath::Pi(),
280  "#phi^{*+} (Acoplanarity)",
281  "Number of H#rightarrow#tau^{-}(#rightarrow#rho^{-}#nu)#tau^{+}(#rightarrow#rho^{+}#nu) Events");
282 
283  TauFSRPhotonsN = dqm.book1dHisto("TauFSRPhotonsN",
284  "FSR Photons radiating from/with tau (Gauge Boson)",
285  5,
286  -0.5,
287  4.5,
288  "N^{FSR Photons radiating from/with #tau}",
289  "Number of #tau's from Gauge Bosons");
290  TauFSRPhotonsPt = dqm.book1dHisto("TauFSRPhotonsPt",
291  "Pt of FSR Photons radiating from/with tau (Gauge Boson)",
292  100,
293  0,
294  100,
295  "P_{t}^{FSR Photons radiating from/with #tau [per #tau]} (GeV)",
296  "Number of #tau's from Gauge Bosons");
297  TauFSRPhotonsPtSum = dqm.book1dHisto("TauFSRPhotonsPtSum",
298  "Pt of FSR Photons radiating from/with tau (Gauge Boson)",
299  100,
300  0,
301  100,
302  "P_{t}^{FSR Photons radiating from/with #tau [per #tau]} (GeV)",
303  "Number of #tau's from Gauge Bosons");
304 
305  TauBremPhotonsN = dqm.book1dHisto("TauBremPhotonsN",
306  "Brem. Photons radiating in tau decay",
307  5,
308  -0.5,
309  4.5,
310  "N FSR Photons radiating from/with tau",
311  "Number of #tau's from Gauge Bosons");
312  TauBremPhotonsPt = dqm.book1dHisto("TauBremPhotonsPt",
313  "Sum Brem Pt ",
314  100,
315  0,
316  100,
317  "P_{t}^{Brem. Photons radiating in tau decay} (GeV)",
318  "Number of #tau's from Gauge Bosons");
319  TauBremPhotonsPtSum = dqm.book1dHisto("TauBremPhotonsPtSum",
320  "Sum of Brem Pt ",
321  100,
322  0,
323  100,
324  "Sum P_{t}^{Brem. Photons radiating in tau decay} (GeV)",
325  "Number of #tau's from Gauge Bosons");
326 
327  MODEID = dqm.book1dHisto("JAKID", "JAK ID", NMODEID + 1, -0.5, NMODEID + 0.5);
328  for (unsigned int j = 0; j < NMODEID + 1; j++) {
329  MODEInvMass.push_back(std::vector<MonitorElement *>());
330  std::string tmp = "JAKID";
331  tmp += std::to_string(j);
332  MODEInvMass.at(j).push_back(dqm.book1dHisto("M" + tmp,
333  "M_{" + TauDecay::DecayMode(j) + "} (GeV)",
334  80,
335  0,
336  2.0,
337  "M_{" + TauDecay::DecayMode(j) + "} (GeV)",
338  "Number of #tau's from Gauge Bosons"));
341  j == TauDecay::MODE_KPIPI) {
342  MODEInvMass.at(j).push_back(dqm.book1dHisto("M13" + tmp,
343  "M_{13," + TauDecay::DecayMode(j) + "} (GeV)",
344  80,
345  0,
346  2.0,
347  "M_{13," + TauDecay::DecayMode(j) + "} (GeV)",
348  "Number of #tau's from Gauge Bosons"));
349  MODEInvMass.at(j).push_back(dqm.book1dHisto("M23" + tmp,
350  "M_{23," + TauDecay::DecayMode(j) + "} (GeV)",
351  80,
352  0,
353  2.0,
354  "M_{23," + TauDecay::DecayMode(j) + "} (GeV)",
355  "Number of #tau's from Gauge Bosons"));
356  MODEInvMass.at(j).push_back(dqm.book1dHisto("M12" + tmp,
357  "M_{12," + TauDecay::DecayMode(j) + "} (GeV)",
358  80,
359  0,
360  2.0,
361  "M_{12," + TauDecay::DecayMode(j) + "} (GeV)",
362  "Number of #tau's from Gauge Bosons"));
363  }
364  }
365  return;
366 }
MonitorElement * TauFSRPhotonsN
Definition: TauValidation.h:92
const double Pi
MonitorElement * TauSpinEffectsH_rhorhoAcoplanarityplus
Definition: TauValidation.h:92
MonitorElement * TauPhi
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsW_X
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsHpm_UpsilonA1
Definition: TauValidation.h:92
MonitorElement * MODEID
MonitorElement * TauSpinEffectsZ_Xb
Definition: TauValidation.h:92
MonitorElement * nTaus
Definition: TauValidation.h:91
MonitorElement * DecayLength
Definition: TauValidation.h:92
std::vector< std::vector< MonitorElement * > > MODEInvMass
MonitorElement * TauPt
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsH_MVis
Definition: TauValidation.h:92
MonitorElement * TauMothers
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsHpm_eX
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsZ_X100to120
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsW_muX
Definition: TauValidation.h:92
MonitorElement * TauBremPhotonsN
Definition: TauValidation.h:92
void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
MonitorElement * TauSpinEffectsZ_Xf
Definition: TauValidation.h:92
MonitorElement * TauBremPhotonsPtSum
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsH_pipiAcoplanarity
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsHpm_UpsilonRho
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsZ_eX
Definition: TauValidation.h:92
MonitorElement * TauProngs
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsH_pipiAcollinearityzoom
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsW_UpsilonRho
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsZ_X88to100
Definition: TauValidation.h:92
void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:268
MonitorElement * TauSpinEffectsH_rhorhoAcoplanarityminus
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsZ_X50to75
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsH_Xf
Definition: TauValidation.h:92
MonitorElement * TauFSRPhotonsPt
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsZ_muX
Definition: TauValidation.h:92
MonitorElement * TauDecayChannels
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsH_Zs
Definition: TauValidation.h:92
unsigned int NMODEID
MonitorElement * TauFSRPhotonsPtSum
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsZ_MVis
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsZ_X75to88
Definition: TauValidation.h:92
static std::string DecayMode(unsigned int &MODE_ID)
Definition: TauDecay.cc:258
MonitorElement * TauSpinEffectsH_pipiAcollinearity
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsZ_X
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsH_eX
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsW_eX
Definition: TauValidation.h:92
std::vector< std::vector< double > > tmp
Definition: MVATrainer.cc:100
MonitorElement * LifeTime
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsH_muX
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsW_UpsilonA1
Definition: TauValidation.h:92
MonitorElement * TauEta
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsZ_Zs
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsHpm_X
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsHpm_muX
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsZ_X120UP
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsH_Xb
Definition: TauValidation.h:92
MonitorElement * nPrimeTaus
Definition: TauValidation.h:91
MonitorElement * TauBremPhotonsPt
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsH_X
Definition: TauValidation.h:92
void TauValidation::countParticles ( const reco::GenParticle p,
int &  allCount,
int &  eCount,
int &  muCount,
int &  pi0Count,
int &  piCount,
int &  rhoCount,
int &  a1Count,
int &  KCount,
int &  KstarCount 
)
private

Definition at line 636 of file TauValidation.cc.

References funct::abs(), reco::CompositeRefCandidateT< D >::daughter(), mps_fire::i, reco::CompositeRefCandidateT< D >::numberOfDaughters(), reco::LeafCandidate::pdgId(), and sysUtil::pid.

Referenced by tauDecayChannel().

645  {
646  for (unsigned int i = 0; i < p->numberOfDaughters(); i++) {
647  const reco::GenParticle *dau = static_cast<const reco::GenParticle *>(p->daughter(i));
648  int pid = dau->pdgId();
649  allCount++;
650  if (abs(pid) == 11)
651  eCount++;
652  else if (abs(pid) == 13)
653  muCount++;
654  else if (abs(pid) == 111)
655  pi0Count++;
656  else if (abs(pid) == 211)
657  piCount++;
658  else if (abs(pid) == 213)
659  rhoCount++;
660  else if (abs(pid) == 20213)
661  a1Count++;
662  else if (abs(pid) == 321)
663  KCount++;
664  else if (abs(pid) == 323)
665  KstarCount++;
666  countParticles(dau, allCount, eCount, muCount, pi0Count, piCount, rhoCount, a1Count, KCount, KstarCount);
667  }
668 }
int pdgId() const final
PDG identifier.
const Candidate * daughter(size_type) const override
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
size_t numberOfDaughters() const override
number of daughters
void countParticles(const reco::GenParticle *p, int &allCount, int &eCount, int &muCount, int &pi0Count, int &piCount, int &rhoCount, int &a1Count, int &KCount, int &KstarCount)
void TauValidation::dqmBeginRun ( const edm::Run r,
const edm::EventSetup c 
)
override

Definition at line 30 of file TauValidation.cc.

References fPDGTable, and edm::EventSetup::getData().

30 { c.getData(fPDGTable); }
bool getData(T &iHolder) const
Definition: EventSetup.h:111
edm::ESHandle< HepPDT::ParticleDataTable > fPDGTable
PDT table.
Definition: TauValidation.h:89
void TauValidation::findFSRandBrem ( const reco::GenParticle p,
bool  doBrem,
std::vector< const reco::GenParticle * > &  ListofFSR,
std::vector< const reco::GenParticle * > &  ListofBrem 
)
private

Definition at line 506 of file TauValidation.cc.

References funct::abs(), reco::CompositeRefCandidateT< D >::daughter(), mps_fire::i, isLastTauinChain(), reco::CompositeRefCandidateT< D >::numberOfDaughters(), common_cff::pdgId, and reco::LeafCandidate::pdgId().

Referenced by photons().

509  {
510  // note this code split the FSR and Brem based one if the tau decays into a tau+photon or not with the Fortran Tauola Interface, this is not 100% correct because photos puts the tau with the regular tau decay products.
511  if (abs(p->pdgId()) == 15) {
512  if (isLastTauinChain(p)) {
513  doBrem = true;
514  } else {
515  doBrem = false;
516  }
517  }
518  int photo_ID = 22;
519  for (unsigned int i = 0; i < p->numberOfDaughters(); i++) {
520  const reco::GenParticle *dau = static_cast<const reco::GenParticle *>(p->daughter(i));
521  if (abs((dau)->pdgId()) == abs(photo_ID) && !doBrem) {
522  ListofFSR.push_back(dau);
523  }
524  if (abs((dau)->pdgId()) == abs(photo_ID) && doBrem) {
525  ListofBrem.push_back(dau);
526  }
527  if (abs((dau)->pdgId()) != 111 && abs((dau)->pdgId()) != 221) { // remove pi0 and eta decays
528  findFSRandBrem(dau, doBrem, ListofFSR, ListofBrem);
529  }
530  }
531 }
int pdgId() const final
PDG identifier.
const Candidate * daughter(size_type) const override
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
bool isLastTauinChain(const reco::GenParticle *tau)
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
size_t numberOfDaughters() const override
number of daughters
void findFSRandBrem(const reco::GenParticle *p, bool doBrem, std::vector< const reco::GenParticle * > &ListofFSR, std::vector< const reco::GenParticle * > &ListofBrem)
int TauValidation::findMother ( const reco::GenParticle tau)
private

Definition at line 486 of file TauValidation.cc.

References GetMother(), and reco::LeafCandidate::pdgId().

Referenced by spinEffectsZH(), and tauMother().

486 { return TauValidation::GetMother(tau)->pdgId(); }
int pdgId() const final
PDG identifier.
const reco::GenParticle * GetMother(const reco::GenParticle *tau)
void TauValidation::FindPhotosFSR ( const reco::GenParticle p,
std::vector< const reco::GenParticle * > &  ListofFSR,
double &  BosonScale 
)
private

Definition at line 533 of file TauValidation.cc.

References funct::abs(), reco::CompositeRefCandidateT< D >::daughter(), GetMother(), mps_fire::i, funct::m, reco::CompositeRefCandidateT< D >::numberOfDaughters(), and reco::LeafCandidate::pdgId().

Referenced by photons().

535  {
536  BosonScale = 0.0;
537  const reco::GenParticle *m = GetMother(p);
538  int mother_pid = m->pdgId();
539  if (m->pdgId() != p->pdgId()) {
540  for (unsigned int i = 0; i < m->numberOfDaughters(); i++) {
541  const reco::GenParticle *dau = static_cast<const reco::GenParticle *>(m->daughter(i));
542  if (abs(dau->pdgId()) == 22) {
543  ListofFSR.push_back(dau);
544  }
545  }
546  }
547  if (abs(mother_pid) == 24)
548  BosonScale = 1.0; // W
549  if (abs(mother_pid) == 23)
550  BosonScale = 2.0; // Z;
551  if (abs(mother_pid) == 22)
552  BosonScale = 2.0; // gamma;
553  if (abs(mother_pid) == 25)
554  BosonScale = 2.0; // HSM;
555  if (abs(mother_pid) == 35)
556  BosonScale = 2.0; // H0;
557  if (abs(mother_pid) == 36)
558  BosonScale = 2.0; // A0;
559  if (abs(mother_pid) == 37)
560  BosonScale = 1.0; //Hpm;
561 }
int pdgId() const final
PDG identifier.
const Candidate * daughter(size_type) const override
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
const reco::GenParticle * GetMother(const reco::GenParticle *tau)
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
size_t numberOfDaughters() const override
number of daughters
void TauValidation::findTauList ( const reco::GenParticle tau,
std::vector< const reco::GenParticle * > &  TauList 
)
private

Definition at line 496 of file TauValidation.cc.

References mps_fire::i, reco::CompositeRefCandidateT< D >::mother(), reco::CompositeRefCandidateT< D >::numberOfMothers(), reco::LeafCandidate::pdgId(), and metsig::tau.

Referenced by photons().

496  {
497  TauList.insert(TauList.begin(), tau);
498  for (unsigned int i = 0; i < tau->numberOfMothers(); i++) {
499  const reco::GenParticle *mother = static_cast<const reco::GenParticle *>(tau->mother(i));
500  if (mother->pdgId() == tau->pdgId()) {
501  findTauList(mother, TauList);
502  }
503  }
504 }
int pdgId() const final
PDG identifier.
size_t numberOfMothers() const override
number of mothers
void findTauList(const reco::GenParticle *tau, std::vector< const reco::GenParticle * > &TauList)
const Candidate * mother(size_type=0) const override
return mother at a given position, i = 0, ... numberOfMothers() - 1 (read only mode) ...
const reco::GenParticle * TauValidation::GetMother ( const reco::GenParticle tau)
private

Definition at line 465 of file TauValidation.cc.

References mps_fire::i, reco::CompositeRefCandidateT< D >::mother(), reco::CompositeRefCandidateT< D >::numberOfMothers(), reco::LeafCandidate::pdgId(), and metsig::tau.

Referenced by findMother(), FindPhotosFSR(), and motherP4().

465  {
466  for (unsigned int i = 0; i < tau->numberOfMothers(); i++) {
467  const reco::GenParticle *mother = static_cast<const reco::GenParticle *>(tau->mother(i));
468  if (mother->pdgId() == tau->pdgId())
469  return GetMother(mother);
470  return mother;
471  }
472  return tau;
473 }
int pdgId() const final
PDG identifier.
size_t numberOfMothers() const override
number of mothers
const reco::GenParticle * GetMother(const reco::GenParticle *tau)
const Candidate * mother(size_type=0) const override
return mother at a given position, i = 0, ... numberOfMothers() - 1 (read only mode) ...
const std::vector< const reco::GenParticle * > TauValidation::GetMothers ( const reco::GenParticle boson)
private

Definition at line 475 of file TauValidation.cc.

References mps_fire::i, reco::CompositeRefCandidateT< D >::mother(), reco::CompositeRefCandidateT< D >::numberOfMothers(), and reco::LeafCandidate::pdgId().

Referenced by spinEffectsZH().

475  {
476  std::vector<const reco::GenParticle *> mothers;
477  for (unsigned int i = 0; i < boson->numberOfMothers(); i++) {
478  const reco::GenParticle *mother = static_cast<const reco::GenParticle *>(boson->mother(i));
479  if (mother->pdgId() == boson->pdgId())
480  return GetMothers(mother);
481  mothers.push_back(mother);
482  }
483  return mothers;
484 }
int pdgId() const final
PDG identifier.
size_t numberOfMothers() const override
number of mothers
const std::vector< const reco::GenParticle * > GetMothers(const reco::GenParticle *boson)
const Candidate * mother(size_type=0) const override
return mother at a given position, i = 0, ... numberOfMothers() - 1 (read only mode) ...
bool TauValidation::isLastTauinChain ( const reco::GenParticle tau)
private

Definition at line 488 of file TauValidation.cc.

References reco::CompositeRefCandidateT< D >::daughter(), mps_fire::i, reco::CompositeRefCandidateT< D >::numberOfDaughters(), reco::Candidate::pdgId(), and reco::LeafCandidate::pdgId().

Referenced by analyze(), and findFSRandBrem().

488  {
489  for (unsigned int i = 0; i < tau->numberOfDaughters(); i++) {
490  if (tau->daughter(i)->pdgId() == tau->pdgId())
491  return false;
492  }
493  return true;
494 }
int pdgId() const final
PDG identifier.
const Candidate * daughter(size_type) const override
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
virtual int pdgId() const =0
PDG identifier.
size_t numberOfDaughters() const override
number of daughters
double TauValidation::leadingPionMomentum ( const reco::GenParticle tau,
double  weight 
)
private

Definition at line 1022 of file TauValidation.cc.

References leadingPionP4().

1022  {
1023  return leadingPionP4(tau).P();
1024 }
TLorentzVector leadingPionP4(const reco::GenParticle *)
TLorentzVector TauValidation::leadingPionP4 ( const reco::GenParticle tau)
private

Definition at line 1026 of file TauValidation.cc.

References funct::abs(), reco::CompositeRefCandidateT< D >::daughter(), reco::LeafCandidate::energy(), mps_fire::i, reco::CompositeRefCandidateT< D >::numberOfDaughters(), reco::LeafCandidate::p(), p4, reco::LeafCandidate::pdgId(), sysUtil::pid, reco::LeafCandidate::px(), reco::LeafCandidate::py(), and reco::LeafCandidate::pz().

Referenced by leadingPionMomentum(), spinEffectsWHpm(), and spinEffectsZH().

1026  {
1027  TLorentzVector p4(0, 0, 0, 0);
1028  for (unsigned int i = 0; i < tau->numberOfDaughters(); i++) {
1029  const reco::GenParticle *dau = static_cast<const reco::GenParticle *>(tau->daughter(i));
1030  int pid = dau->pdgId();
1031  if (abs(pid) == 15)
1032  return leadingPionP4(dau);
1033  if (!(abs(pid) == 211 || abs(pid) == 13 || abs(pid) == 11))
1034  continue;
1035  if (dau->p() > p4.P())
1036  p4 = TLorentzVector(dau->px(), dau->py(), dau->pz(), dau->energy());
1037  }
1038  return p4;
1039 }
int pdgId() const final
PDG identifier.
const Candidate * daughter(size_type) const override
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
double px() const final
x coordinate of momentum vector
double pz() const final
z coordinate of momentum vector
double p4[4]
Definition: TauolaWrapper.h:92
double energy() const final
energy
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
double p() const final
magnitude of momentum vector
size_t numberOfDaughters() const override
number of daughters
double py() const final
y coordinate of momentum vector
TLorentzVector leadingPionP4(const reco::GenParticle *)
TLorentzVector TauValidation::motherP4 ( const reco::GenParticle tau)
private

Definition at line 1041 of file TauValidation.cc.

References reco::LeafCandidate::energy(), GetMother(), funct::m, reco::LeafCandidate::px(), reco::LeafCandidate::py(), and reco::LeafCandidate::pz().

Referenced by spinEffectsWHpm().

1041  {
1042  const reco::GenParticle *m = GetMother(tau);
1043  return TLorentzVector(m->px(), m->py(), m->pz(), m->energy());
1044 }
double px() const final
x coordinate of momentum vector
const reco::GenParticle * GetMother(const reco::GenParticle *tau)
double pz() const final
z coordinate of momentum vector
double energy() const final
energy
double py() const final
y coordinate of momentum vector
void TauValidation::photons ( const reco::GenParticle tau,
double  weight 
)
private

Definition at line 1060 of file TauValidation.cc.

References MonitorElement::Fill(), findFSRandBrem(), FindPhotosFSR(), findTauList(), mps_fire::i, TauBremPhotonsN, TauBremPhotonsPt, TauBremPhotonsPtSum, TauFSRPhotonsN, TauFSRPhotonsPt, TauFSRPhotonsPtSum, and mps_merge::weight.

Referenced by analyze().

1060  {
1061  // Find First tau in chain
1062  std::vector<const reco::GenParticle *> TauList;
1063  findTauList(tau, TauList);
1064 
1065  // Get List of Gauge Boson to tau(s) FSR and Brem
1066  bool passedW = false;
1067  std::vector<const reco::GenParticle *> ListofFSR;
1068  ListofFSR.clear();
1069  std::vector<const reco::GenParticle *> ListofBrem;
1070  ListofBrem.clear();
1071  std::vector<const reco::GenParticle *> FSR_photos;
1072  FSR_photos.clear();
1073  double BosonScale(1);
1074  if (!TauList.empty()) {
1075  TauValidation::findFSRandBrem(TauList.at(0), passedW, ListofFSR, ListofBrem);
1076  TauValidation::FindPhotosFSR(TauList.at(0), FSR_photos, BosonScale);
1077 
1078  // Add the Tau Brem. information
1079  TauBremPhotonsN->Fill(ListofBrem.size(), weight);
1080  double photonPtSum = 0;
1081  for (unsigned int i = 0; i < ListofBrem.size(); i++) {
1082  photonPtSum += ListofBrem.at(i)->pt();
1083  TauBremPhotonsPt->Fill(ListofBrem.at(i)->pt(), weight);
1084  }
1085  TauBremPhotonsPtSum->Fill(photonPtSum, weight);
1086 
1087  // Now add the Gauge Boson FSR information
1088  if (BosonScale != 0) {
1089  TauFSRPhotonsN->Fill(ListofFSR.size(), weight);
1090  photonPtSum = 0;
1091  for (unsigned int i = 0; i < ListofFSR.size(); i++) {
1092  photonPtSum += ListofFSR.at(i)->pt();
1093  TauFSRPhotonsPt->Fill(ListofFSR.at(i)->pt(), weight);
1094  }
1095  double FSR_photosSum(0);
1096  for (unsigned int i = 0; i < FSR_photos.size(); i++) {
1097  FSR_photosSum += FSR_photos.at(i)->pt();
1098  TauFSRPhotonsPt->Fill(FSR_photos.at(i)->pt() / BosonScale, weight * BosonScale);
1099  }
1100  TauFSRPhotonsPtSum->Fill(photonPtSum + FSR_photosSum / BosonScale, weight);
1101  }
1102  }
1103 }
MonitorElement * TauFSRPhotonsN
Definition: TauValidation.h:92
void FindPhotosFSR(const reco::GenParticle *p, std::vector< const reco::GenParticle * > &ListofFSR, double &BosonScale)
MonitorElement * TauBremPhotonsN
Definition: TauValidation.h:92
Definition: weight.py:1
MonitorElement * TauBremPhotonsPtSum
Definition: TauValidation.h:92
void Fill(long long x)
MonitorElement * TauFSRPhotonsPt
Definition: TauValidation.h:92
MonitorElement * TauFSRPhotonsPtSum
Definition: TauValidation.h:92
void findTauList(const reco::GenParticle *tau, std::vector< const reco::GenParticle * > &TauList)
void findFSRandBrem(const reco::GenParticle *p, bool doBrem, std::vector< const reco::GenParticle * > &ListofFSR, std::vector< const reco::GenParticle * > &ListofBrem)
MonitorElement * TauBremPhotonsPt
Definition: TauValidation.h:92
void TauValidation::spinEffectsWHpm ( const reco::GenParticle tau,
int  mother,
int  decay,
std::vector< const reco::GenParticle * > &  part,
double  weight 
)
private

Definition at line 670 of file TauValidation.cc.

References a1, funct::abs(), randomXiThetaGunProducer_cfi::energy, MonitorElement::Fill(), gamma, mps_fire::i, leadingPionP4(), TauDecay::MODE_3PI, TauDecay::MODE_ELECTRON, TauDecay::MODE_MUON, TauDecay::MODE_PI2PI0, TauDecay::MODE_PION, TauDecay::MODE_PIPI0, motherP4(), pi, PdtPdgMini::pi0, PdtPdgMini::pi_minus, PdtPdgMini::pi_plus, rho, TauSpinEffectsHpm_eX, TauSpinEffectsHpm_muX, TauSpinEffectsHpm_UpsilonA1, TauSpinEffectsHpm_UpsilonRho, TauSpinEffectsHpm_X, TauSpinEffectsW_eX, TauSpinEffectsW_muX, TauSpinEffectsW_UpsilonA1, TauSpinEffectsW_UpsilonRho, TauSpinEffectsW_X, and mps_merge::weight.

Referenced by analyze().

671  {
672  // polarization only for 1-prong hadronic taus with no neutral pions
674  TLorentzVector momP4 = motherP4(tau);
675  TLorentzVector pionP4 = leadingPionP4(tau);
676  pionP4.Boost(-1 * momP4.BoostVector());
677  double energy = pionP4.E() / (momP4.M() / 2);
678  if (decay == TauDecay::MODE_PION) {
679  if (abs(mother) == 24)
680  TauSpinEffectsW_X->Fill(energy, weight);
681  else if (abs(mother) == 37)
682  TauSpinEffectsHpm_X->Fill(energy, weight);
683  }
684  else if (decay == TauDecay::MODE_MUON) {
685  if (abs(mother) == 24)
686  TauSpinEffectsW_muX->Fill(energy, weight);
687  else if (abs(mother) == 37)
689  }
690  else if (decay == TauDecay::MODE_ELECTRON) {
691  if (abs(mother) == 24)
692  TauSpinEffectsW_eX->Fill(energy, weight);
693  else if (abs(mother) == 37)
694  TauSpinEffectsHpm_eX->Fill(energy, weight);
695  }
696  } else if (decay == TauDecay::MODE_PIPI0) {
697  TLorentzVector rho(0, 0, 0, 0), pi(0, 0, 0, 0);
698  for (unsigned int i = 0; i < part.size(); i++) {
699  TLorentzVector LV(part.at(i)->px(), part.at(i)->py(), part.at(i)->pz(), part.at(i)->energy());
700  if (abs(part.at(i)->pdgId()) == PdtPdgMini::pi_plus) {
701  pi += LV;
702  rho += LV;
703  }
704  else if (abs(part.at(i)->pdgId()) == PdtPdgMini::pi0) {
705  rho += LV;
706  }
707  }
708  if (abs(mother) == 24)
709  TauSpinEffectsW_UpsilonRho->Fill(2 * pi.P() / rho.P() - 1, weight);
710  else if (abs(mother) == 37)
711  TauSpinEffectsHpm_UpsilonRho->Fill(2 * pi.P() / rho.P() - 1, weight);
712  } else if (decay == TauDecay::MODE_3PI || decay == TauDecay::MODE_PI2PI0) { // only for pi2pi0 for now
713  TLorentzVector a1(0, 0, 0, 0), pi_p(0, 0, 0, 0), pi_m(0, 0, 0, 0);
714  int nplus(0), nminus(0);
715  for (unsigned int i = 0; i < part.size(); i++) {
716  TLorentzVector LV(part.at(i)->px(), part.at(i)->py(), part.at(i)->pz(), part.at(i)->energy());
717  if (part.at(i)->pdgId() == PdtPdgMini::pi_plus) {
718  pi_p += LV;
719  a1 += LV;
720  nplus++;
721  }
722  else if (part.at(i)->pdgId() == PdtPdgMini::pi_minus) {
723  pi_m += LV;
724  a1 += LV;
725  nminus++;
726  }
727  }
728  double gamma = 0;
729  if (nplus + nminus == 3 && nplus == 1)
730  gamma = 2 * pi_p.P() / a1.P() - 1;
731  else if (nplus + nminus == 3 && nminus == 1)
732  gamma = 2 * pi_m.P() / a1.P() - 1;
733  else {
734  pi_p += pi_m;
735  gamma = 2 * pi_p.P() / a1.P() - 1;
736  }
737  if (abs(mother) == 24)
739  else if (abs(mother) == 37)
741  }
742 }
MonitorElement * TauSpinEffectsW_X
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsHpm_UpsilonA1
Definition: TauValidation.h:92
math::XYZTLorentzVectorD LV
MonitorElement * TauSpinEffectsHpm_eX
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsW_muX
Definition: TauValidation.h:92
Definition: weight.py:1
MonitorElement * TauSpinEffectsHpm_UpsilonRho
Definition: TauValidation.h:92
void Fill(long long x)
TLorentzVector motherP4(const reco::GenParticle *)
MonitorElement * TauSpinEffectsW_UpsilonRho
Definition: TauValidation.h:92
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
part
Definition: HCALResponse.h:20
MonitorElement * TauSpinEffectsW_eX
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsW_UpsilonA1
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsHpm_X
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsHpm_muX
Definition: TauValidation.h:92
TLorentzVector leadingPionP4(const reco::GenParticle *)
void TauValidation::spinEffectsZH ( const reco::GenParticle boson,
double  weight 
)
private

Definition at line 744 of file TauValidation.cc.

References funct::abs(), TauDecay_GenParticle::AnalyzeTau(), PdtPdgMini::anti_d, PdtPdgMini::anti_u, ALCARECOTkAlJpsiMuMu_cff::charge, PdtPdgMini::d, reco::CompositeRefCandidateT< D >::daughter(), reco::LeafCandidate::energy(), MonitorElement::Fill(), findMother(), fPDGTable, TauDecay_GenParticle::Get_TauDecayProducts(), GetMothers(), PdtPdgMini::Higgs0, mps_fire::i, createfilelist::int, leadingPionP4(), funct::m, TauDecay::MODE_ELECTRON, TauDecay::MODE_MUON, TauDecay::MODE_PION, TauDecay::MODE_PIPI0, gen::n, reco::CompositeRefCandidateT< D >::numberOfDaughters(), reco::LeafCandidate::pdgId(), Pi, sysUtil::pid, reco::LeafCandidate::px(), reco::LeafCandidate::py(), reco::LeafCandidate::pz(), lumiQueryAPI::q, TauSpinEffectsH_eX, TauSpinEffectsH_muX, TauSpinEffectsH_MVis, TauSpinEffectsH_pipiAcollinearity, TauSpinEffectsH_pipiAcollinearityzoom, TauSpinEffectsH_pipiAcoplanarity, TauSpinEffectsH_rhorhoAcoplanarityminus, TauSpinEffectsH_rhorhoAcoplanarityplus, TauSpinEffectsH_X, TauSpinEffectsH_Xb, TauSpinEffectsH_Xf, TauSpinEffectsH_Zs, TauSpinEffectsZ_eX, TauSpinEffectsZ_muX, TauSpinEffectsZ_MVis, TauSpinEffectsZ_X, TauSpinEffectsZ_X100to120, TauSpinEffectsZ_X120UP, TauSpinEffectsZ_X50to75, TauSpinEffectsZ_X75to88, TauSpinEffectsZ_X88to100, TauSpinEffectsZ_Xb, TauSpinEffectsZ_Xf, TauSpinEffectsZ_Zs, PdtPdgMini::u, mps_merge::weight, globals_cff::x1, globals_cff::x2, Z, PdtPdgMini::Z0, zsbins, zsmax, zsmin, and Zstoa().

Referenced by analyze().

744  {
745  int ntau(0);
746  for (unsigned int i = 0; i < boson->numberOfDaughters(); i++) {
747  const reco::GenParticle *dau = static_cast<const reco::GenParticle *>(boson->daughter(i));
748  if (ntau == 1 && dau->pdgId() == 15)
749  return;
750  if (boson->pdgId() != 15 && abs(dau->pdgId()) == 15)
751  ntau++;
752  }
753  if (ntau != 2)
754  return;
755  if (abs(boson->pdgId()) == PdtPdgMini::Z0 || abs(boson->pdgId()) == PdtPdgMini::Higgs0) {
756  TLorentzVector tautau(0, 0, 0, 0);
757  TLorentzVector pipi(0, 0, 0, 0);
758  TLorentzVector taum(0, 0, 0, 0);
759  TLorentzVector taup(0, 0, 0, 0);
760  TLorentzVector rho_plus, rho_minus, pi_rhominus, pi0_rhominus, pi_rhoplus, pi0_rhoplus, pi_plus, pi_minus;
761  bool hasrho_minus(false), hasrho_plus(false), haspi_minus(false), haspi_plus(false);
762  int nSinglePionDecays(0), nSingleMuonDecays(0), nSingleElectronDecays(0);
763  double x1(0), x2(0);
764  TLorentzVector Zboson(boson->px(), boson->py(), boson->pz(), boson->energy());
765  for (unsigned int i = 0; i < boson->numberOfDaughters(); i++) {
766  const reco::GenParticle *dau = static_cast<const reco::GenParticle *>(boson->daughter(i));
767  int pid = dau->pdgId();
768  if (abs(findMother(dau)) != 15 && abs(pid) == 15) {
770  unsigned int jak_id, TauBitMask;
771  if (TD.AnalyzeTau(dau, jak_id, TauBitMask, false, false)) {
772  std::vector<const reco::GenParticle *> part = TD.Get_TauDecayProducts();
773  if (jak_id == TauDecay::MODE_PION || jak_id == TauDecay::MODE_MUON || jak_id == TauDecay::MODE_ELECTRON) {
774  if (jak_id == TauDecay::MODE_PION)
775  nSinglePionDecays++;
776  if (jak_id == TauDecay::MODE_MUON)
777  nSingleMuonDecays++;
778  if (jak_id == TauDecay::MODE_ELECTRON)
779  nSingleElectronDecays++;
780  TLorentzVector LVtau(dau->px(), dau->py(), dau->pz(), dau->energy());
781  tautau += LVtau;
782  TLorentzVector LVpi = leadingPionP4(dau);
783  pipi += LVpi;
784  const HepPDT::ParticleData *pd = fPDGTable->particle(dau->pdgId());
785  int charge = (int)pd->charge();
786  LVtau.Boost(-1 * Zboson.BoostVector());
787  LVpi.Boost(-1 * Zboson.BoostVector());
788 
789  if (jak_id == TauDecay::MODE_MUON) {
790  if (abs(boson->pdgId()) == PdtPdgMini::Z0)
791  TauSpinEffectsZ_muX->Fill(LVpi.P() / LVtau.E(), weight);
792  if (abs(boson->pdgId()) == PdtPdgMini::Higgs0)
793  TauSpinEffectsH_muX->Fill(LVpi.P() / LVtau.E(), weight);
794  }
795  if (jak_id == TauDecay::MODE_ELECTRON) {
796  if (abs(boson->pdgId()) == PdtPdgMini::Z0)
797  TauSpinEffectsZ_eX->Fill(LVpi.P() / LVtau.E(), weight);
798  if (abs(boson->pdgId()) == PdtPdgMini::Higgs0)
799  TauSpinEffectsH_eX->Fill(LVpi.P() / LVtau.E(), weight);
800  }
801 
802  if (jak_id == TauDecay::MODE_PION) {
803  if (abs(boson->pdgId()) == PdtPdgMini::Z0) {
804  TauSpinEffectsZ_X->Fill(LVpi.P() / LVtau.E(), weight);
805  if (50.0 < Zboson.M() && Zboson.M() < 75.0)
806  TauSpinEffectsZ_X50to75->Fill(LVpi.P() / LVtau.E(), weight);
807  if (75.0 < Zboson.M() && Zboson.M() < 88.0)
808  TauSpinEffectsZ_X75to88->Fill(LVpi.P() / LVtau.E(), weight);
809  if (88.0 < Zboson.M() && Zboson.M() < 100.0)
810  TauSpinEffectsZ_X88to100->Fill(LVpi.P() / LVtau.E(), weight);
811  if (100.0 < Zboson.M() && Zboson.M() < 120.0)
812  TauSpinEffectsZ_X100to120->Fill(LVpi.P() / LVtau.E(), weight);
813  if (120.0 < Zboson.M())
814  TauSpinEffectsZ_X120UP->Fill(LVpi.P() / LVtau.E(), weight);
815  }
816  if (abs(boson->pdgId()) == PdtPdgMini::Higgs0)
817  TauSpinEffectsH_X->Fill(LVpi.P() / LVtau.E(), weight);
818  }
819  if (charge < 0) {
820  x1 = LVpi.P() / LVtau.E();
821  taum = LVtau;
822  } else {
823  x2 = LVpi.P() / LVtau.E();
824  }
825  }
826  TLorentzVector LVtau(dau->px(), dau->py(), dau->pz(), dau->energy());
827  if (pid == 15)
828  taum = LVtau;
829  if (pid == -15)
830  taup = LVtau;
831  if (jak_id == TauDecay::MODE_PIPI0) {
832  for (unsigned int i = 0; i < part.size(); i++) {
833  int pid_d = part.at(i)->pdgId();
834  if (abs(pid_d) == 211 || abs(pid_d) == 111) {
835  TLorentzVector LV(part.at(i)->px(), part.at(i)->py(), part.at(i)->pz(), part.at(i)->energy());
836  if (pid == 15) {
837  hasrho_minus = true;
838  if (pid_d == -211) {
839  pi_rhominus = LV;
840  }
841  if (abs(pid_d) == 111) {
842  pi0_rhominus = LV;
843  }
844  }
845  if (pid == -15) {
846  hasrho_plus = true;
847  if (pid_d == 211) {
848  pi_rhoplus = LV;
849  }
850  if (abs(pid_d) == 111) {
851  pi0_rhoplus = LV;
852  }
853  }
854  }
855  }
856  }
857  if (jak_id == TauDecay::MODE_PION) {
858  for (unsigned int i = 0; i < part.size(); i++) {
859  int pid_d = part.at(i)->pdgId();
860  if (abs(pid_d) == 211) {
861  TLorentzVector LV(part.at(i)->px(), part.at(i)->py(), part.at(i)->pz(), part.at(i)->energy());
862  if (pid == 15) {
863  haspi_minus = true;
864  if (pid_d == -211) {
865  pi_minus = LV;
866  }
867  }
868  if (pid == -15) {
869  haspi_plus = true;
870  if (pid_d == 211) {
871  pi_plus = LV;
872  }
873  }
874  }
875  }
876  }
877  }
878  }
879  }
880  if (hasrho_minus && hasrho_plus) {
881  //compute rhorho
882  rho_minus = pi_rhominus;
883  rho_minus += pi0_rhominus;
884  rho_plus = pi_rhoplus;
885  rho_plus += pi0_rhoplus;
886  TLorentzVector rhorho = rho_minus;
887  rhorho += rho_plus;
888 
889  // boost to rhorho cm
890  TLorentzVector pi_rhoplusb = pi_rhoplus;
891  pi_rhoplusb.Boost(-1 * rhorho.BoostVector());
892  TLorentzVector pi0_rhoplusb = pi0_rhoplus;
893  pi0_rhoplusb.Boost(-1 * rhorho.BoostVector());
894  TLorentzVector pi_rhominusb = pi_rhominus;
895  pi_rhominusb.Boost(-1 * rhorho.BoostVector());
896  TLorentzVector pi0_rhominusb = pi0_rhominus;
897  pi0_rhominusb.Boost(-1 * rhorho.BoostVector());
898 
899  // compute n+/-
900  TVector3 n_plus = pi_rhoplusb.Vect().Cross(pi0_rhoplusb.Vect());
901  TVector3 n_minus = pi_rhominusb.Vect().Cross(pi0_rhominusb.Vect());
902 
903  // compute the acoplanarity
904  double Acoplanarity = acos(n_plus.Dot(n_minus) / (n_plus.Mag() * n_minus.Mag()));
905  if (pi_rhominusb.Vect().Dot(n_plus) > 0) {
906  Acoplanarity *= -1;
907  Acoplanarity += 2 * TMath::Pi();
908  }
909 
910  // now boost to tau frame
911  pi_rhoplus.Boost(-1 * taup.BoostVector());
912  pi0_rhoplus.Boost(-1 * taup.BoostVector());
913  pi_rhominus.Boost(-1 * taum.BoostVector());
914  pi0_rhominus.Boost(-1 * taum.BoostVector());
915 
916  // compute y1 and y2
917  double y1 = (pi_rhoplus.E() - pi0_rhoplus.E()) / (pi_rhoplus.E() + pi0_rhoplus.E());
918  double y2 = (pi_rhominus.E() - pi0_rhominus.E()) / (pi_rhominus.E() + pi0_rhominus.E());
919 
920  // fill histograms
921  if (abs(boson->pdgId()) == PdtPdgMini::Higgs0 && y1 * y2 < 0)
923  if (abs(boson->pdgId()) == PdtPdgMini::Higgs0 && y1 * y2 > 0)
925  }
926  if (haspi_minus && haspi_plus) {
927  TLorentzVector tauporig = taup;
928  TLorentzVector taumorig = taum;
929 
930  // now boost to Higgs frame
931  pi_plus.Boost(-1 * Zboson.BoostVector());
932  pi_minus.Boost(-1 * Zboson.BoostVector());
933 
934  taup.Boost(-1 * Zboson.BoostVector());
935  taum.Boost(-1 * Zboson.BoostVector());
936 
937  if (abs(boson->pdgId()) == PdtPdgMini::Higgs0) {
939  acos(pi_plus.Vect().Dot(pi_minus.Vect()) / (pi_plus.P() * pi_minus.P())));
941  acos(pi_plus.Vect().Dot(pi_minus.Vect()) / (pi_plus.P() * pi_minus.P())));
942  }
943 
944  double proj_m = taum.Vect().Dot(pi_minus.Vect()) / (taum.P() * taum.P());
945  double proj_p = taup.Vect().Dot(pi_plus.Vect()) / (taup.P() * taup.P());
946  TVector3 Tau_m = taum.Vect();
947  TVector3 Tau_p = taup.Vect();
948  Tau_m *= proj_m;
949  Tau_p *= proj_p;
950  TVector3 Pit_m = pi_minus.Vect() - Tau_m;
951  TVector3 Pit_p = pi_plus.Vect() - Tau_p;
952 
953  double Acoplanarity = acos(Pit_m.Dot(Pit_p) / (Pit_p.Mag() * Pit_m.Mag()));
954  TVector3 n = Pit_p.Cross(Pit_m);
955  if (n.Dot(Tau_m) / Tau_m.Mag() > 0) {
956  Acoplanarity *= -1;
957  Acoplanarity += 2 * TMath::Pi();
958  }
959  // fill histograms
960  if (abs(boson->pdgId()) == PdtPdgMini::Higgs0)
962  taup = tauporig;
963  taum = taumorig;
964  }
965  if (nSinglePionDecays == 2 && tautau.M() != 0) {
966  for (int i = 0; i < zsbins; i++) {
967  double zslow = ((double)i) * (zsmax - zsmin) / ((double)zsbins) + zsmin;
968  double zsup = ((double)i + 1) * (zsmax - zsmin) / ((double)zsbins) + zsmin;
969  double aup = Zstoa(zsup), alow = Zstoa(zslow);
970  if (x2 - x1 > alow && x2 - x1 < aup) {
971  double zs = (zsup + zslow) / 2;
972  if (abs(boson->pdgId()) == PdtPdgMini::Z0)
974  if (abs(boson->pdgId()) == PdtPdgMini::Higgs0)
976  break;
977  }
978  }
979  if (abs(boson->pdgId()) == PdtPdgMini::Z0)
980  TauSpinEffectsZ_MVis->Fill(pipi.M() / tautau.M(), weight);
981  if (abs(boson->pdgId()) == PdtPdgMini::Higgs0)
982  TauSpinEffectsH_MVis->Fill(pipi.M() / tautau.M(), weight);
983 
984  if (x1 != 0) {
985  const std::vector<const reco::GenParticle *> m = GetMothers(boson);
986  int q(0), qbar(0);
987  TLorentzVector Z(0, 0, 0, 0);
988  for (unsigned int i = 0; i < m.size(); i++) {
989  if (m.at(i)->pdgId() == PdtPdgMini::d || m.at(i)->pdgId() == PdtPdgMini::u) {
990  q++;
991  }
992  if (m.at(i)->pdgId() == PdtPdgMini::anti_d || m.at(i)->pdgId() == PdtPdgMini::anti_u) {
993  qbar++;
994  }
995  }
996  if (q == 1 && qbar == 1) { // assume q has largest E (valence vs see quarks)
997  if (taum.Vect().Dot(Zboson.Vect()) / (Zboson.P() * taum.P()) > 0) {
998  if (abs(boson->pdgId()) == PdtPdgMini::Z0)
1000  if (abs(boson->pdgId()) == PdtPdgMini::Higgs0)
1002  } else {
1003  if (abs(boson->pdgId()) == PdtPdgMini::Z0)
1005  if (abs(boson->pdgId()) == PdtPdgMini::Higgs0)
1007  }
1008  }
1009  }
1010  }
1011  }
1012 }
const double Pi
int pdgId() const final
PDG identifier.
const Candidate * daughter(size_type) const override
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
int findMother(const reco::GenParticle *)
MonitorElement * TauSpinEffectsH_rhorhoAcoplanarityplus
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsZ_Xb
Definition: TauValidation.h:92
math::XYZTLorentzVectorD LV
MonitorElement * TauSpinEffectsH_MVis
Definition: TauValidation.h:92
double px() const final
x coordinate of momentum vector
MonitorElement * TauSpinEffectsZ_X100to120
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsZ_Xf
Definition: TauValidation.h:92
Definition: weight.py:1
MonitorElement * TauSpinEffectsH_pipiAcoplanarity
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsZ_eX
Definition: TauValidation.h:92
void Fill(long long x)
MonitorElement * TauSpinEffectsH_pipiAcollinearityzoom
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsZ_X88to100
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsH_rhorhoAcoplanarityminus
Definition: TauValidation.h:92
double pz() const final
z coordinate of momentum vector
MonitorElement * TauSpinEffectsZ_X50to75
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsH_Xf
Definition: TauValidation.h:92
double energy() const final
energy
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
MonitorElement * TauSpinEffectsZ_muX
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsH_Zs
Definition: TauValidation.h:92
HepPDT::ParticleData ParticleData
std::vector< const reco::GenParticle * > Get_TauDecayProducts()
const std::vector< const reco::GenParticle * > GetMothers(const reco::GenParticle *boson)
MonitorElement * TauSpinEffectsZ_MVis
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsZ_X75to88
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsH_pipiAcollinearity
Definition: TauValidation.h:92
part
Definition: HCALResponse.h:20
size_t numberOfDaughters() const override
number of daughters
MonitorElement * TauSpinEffectsZ_X
Definition: TauValidation.h:92
double py() const final
y coordinate of momentum vector
edm::ESHandle< HepPDT::ParticleDataTable > fPDGTable
PDT table.
Definition: TauValidation.h:89
MonitorElement * TauSpinEffectsH_eX
Definition: TauValidation.h:92
double Zstoa(double zs)
MonitorElement * TauSpinEffectsH_muX
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsZ_Zs
Definition: TauValidation.h:92
bool AnalyzeTau(const reco::GenParticle *Tau, unsigned int &MODE_ID, unsigned int &TauBitMask, bool dores, bool dopi0)
MonitorElement * TauSpinEffectsZ_X120UP
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsH_Xb
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsH_X
Definition: TauValidation.h:92
TLorentzVector leadingPionP4(const reco::GenParticle *)
int TauValidation::tauDecayChannel ( const reco::GenParticle tau,
int  jak_id,
unsigned int  TauBitMask,
double  weight 
)
private

Definition at line 595 of file TauValidation.cc.

References a1, countParticles(), electron, MonitorElement::Fill(), K, Kstar, muon, pi, pi1pi0, pinpi0, rho, stable, reco::LeafCandidate::status(), TauDecayChannels, tripi, tripinpi0, and undetermined.

Referenced by analyze().

595  {
596  int channel = undetermined;
597  if (tau->status() == 1)
598  channel = stable;
599  int allCount = 0, eCount = 0, muCount = 0, pi0Count = 0, piCount = 0, rhoCount = 0, a1Count = 0, KCount = 0,
600  KstarCount = 0;
601 
602  countParticles(tau, allCount, eCount, muCount, pi0Count, piCount, rhoCount, a1Count, KCount, KstarCount);
603 
604  // resonances
605  if (KCount >= 1)
606  channel = K;
607  if (KstarCount >= 1)
608  channel = Kstar;
609  if (a1Count >= 1)
610  channel = a1;
611  if (rhoCount >= 1)
612  channel = rho;
613  if (channel != undetermined && weight != 0.0)
614  TauDecayChannels->Fill(channel, weight);
615 
616  // final state products
617  if (piCount == 1 && pi0Count == 0)
618  channel = pi;
619  if (piCount == 1 && pi0Count == 1)
620  channel = pi1pi0;
621  if (piCount == 1 && pi0Count > 1)
622  channel = pinpi0;
623  if (piCount == 3 && pi0Count == 0)
624  channel = tripi;
625  if (piCount == 3 && pi0Count > 0)
626  channel = tripinpi0;
627  if (eCount == 1)
628  channel = electron;
629  if (muCount == 1)
630  channel = muon;
631  if (weight != 0.0)
632  TauDecayChannels->Fill(channel, weight);
633  return channel;
634 }
Definition: weight.py:1
void Fill(long long x)
MonitorElement * TauDecayChannels
Definition: TauValidation.h:92
void countParticles(const reco::GenParticle *p, int &allCount, int &eCount, int &muCount, int &pi0Count, int &piCount, int &rhoCount, int &a1Count, int &KCount, int &KstarCount)
int status() const final
status word
int TauValidation::tauMother ( const reco::GenParticle tau,
double  weight 
)
private

Definition at line 563 of file TauValidation.cc.

References A0, funct::abs(), B, D, MonitorElement::Fill(), findMother(), gamma, H0, Hpm, HSM, label, other, reco::LeafCandidate::pdgId(), TauMothers, W, and Z.

Referenced by analyze().

563  {
564  if (abs(tau->pdgId()) != 15)
565  return -3;
566  int mother_pid = findMother(tau);
567  if (mother_pid == -2)
568  return -2;
569  int label = other;
570  if (abs(mother_pid) == 24)
571  label = W;
572  if (abs(mother_pid) == 23)
573  label = Z;
574  if (abs(mother_pid) == 22)
575  label = gamma;
576  if (abs(mother_pid) == 25)
577  label = HSM;
578  if (abs(mother_pid) == 35)
579  label = H0;
580  if (abs(mother_pid) == 36)
581  label = A0;
582  if (abs(mother_pid) == 37)
583  label = Hpm;
584  int mother_shortpid = (abs(mother_pid) % 10000);
585  if (mother_shortpid > 500 && mother_shortpid < 600)
586  label = B;
587  if (mother_shortpid > 400 && mother_shortpid < 500)
588  label = D;
589  TauMothers->Fill(label, weight);
590  if (label == B || label == D || label == other)
591  return -1;
592  return mother_pid;
593 }
int pdgId() const final
PDG identifier.
int findMother(const reco::GenParticle *)
MonitorElement * TauMothers
Definition: TauValidation.h:92
Definition: weight.py:1
void Fill(long long x)
char const * label
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
int TauValidation::tauProngs ( const reco::GenParticle ,
double  weight 
)
private
double TauValidation::visibleTauEnergy ( const reco::GenParticle tau)
private

Definition at line 1046 of file TauValidation.cc.

References funct::abs(), reco::CompositeRefCandidateT< D >::daughter(), reco::LeafCandidate::energy(), mps_fire::i, reco::CompositeRefCandidateT< D >::numberOfDaughters(), p4, reco::LeafCandidate::pdgId(), sysUtil::pid, reco::LeafCandidate::px(), reco::LeafCandidate::py(), and reco::LeafCandidate::pz().

1046  {
1047  TLorentzVector p4(tau->px(), tau->py(), tau->pz(), tau->energy());
1048  for (unsigned int i = 0; i < tau->numberOfDaughters(); i++) {
1049  const reco::GenParticle *dau = static_cast<const reco::GenParticle *>(tau->daughter(i));
1050  int pid = dau->pdgId();
1051  if (abs(pid) == 15)
1052  return visibleTauEnergy(dau);
1053  if (abs(pid) == 12 || abs(pid) == 14 || abs(pid) == 16) {
1054  p4 -= TLorentzVector(dau->px(), dau->py(), dau->pz(), dau->energy());
1055  }
1056  }
1057  return p4.E();
1058 }
int pdgId() const final
PDG identifier.
const Candidate * daughter(size_type) const override
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
double px() const final
x coordinate of momentum vector
double pz() const final
z coordinate of momentum vector
double p4[4]
Definition: TauolaWrapper.h:92
double energy() const final
energy
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
double visibleTauEnergy(const reco::GenParticle *)
size_t numberOfDaughters() const override
number of daughters
double py() const final
y coordinate of momentum vector
double TauValidation::Zstoa ( double  zs)
private

Definition at line 1014 of file TauValidation.cc.

References a, and mathSSE::sqrt().

Referenced by spinEffectsZH().

1014  {
1015  double a = 1 - sqrt(fabs(1.0 - 2 * fabs(zs)));
1016  if (zs < 0) {
1017  a *= -1.0;
1018  }
1019  return a;
1020 }
T sqrt(T t)
Definition: SSEVec.h:18
double a
Definition: hdecay.h:121

Member Data Documentation

MonitorElement * TauValidation::DecayLength
private

Definition at line 92 of file TauValidation.h.

Referenced by analyze(), and bookHistograms().

edm::ESHandle<HepPDT::ParticleDataTable> TauValidation::fPDGTable
private

PDT table.

Definition at line 89 of file TauValidation.h.

Referenced by dqmBeginRun(), and spinEffectsZH().

edm::InputTag TauValidation::genparticleCollection_
private

Definition at line 86 of file TauValidation.h.

Referenced by TauValidation().

edm::EDGetTokenT<reco::GenParticleCollection> TauValidation::genparticleCollectionToken_
private

Definition at line 111 of file TauValidation.h.

Referenced by analyze(), and TauValidation().

MonitorElement * TauValidation::LifeTime
private

Definition at line 92 of file TauValidation.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TauValidation::MODEID
private

Definition at line 105 of file TauValidation.h.

Referenced by analyze(), and bookHistograms().

std::vector<std::vector<MonitorElement *> > TauValidation::MODEInvMass
private

Definition at line 106 of file TauValidation.h.

Referenced by analyze(), and bookHistograms().

unsigned int TauValidation::NMODEID
private

Definition at line 104 of file TauValidation.h.

Referenced by analyze(), and bookHistograms().

MonitorElement * TauValidation::nPrimeTaus
private

Definition at line 91 of file TauValidation.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TauValidation::nTaus
private

Definition at line 91 of file TauValidation.h.

Referenced by analyze(), and bookHistograms().

MonitorElement * TauValidation::TauBremPhotonsN
private

Definition at line 92 of file TauValidation.h.

Referenced by bookHistograms(), and photons().

MonitorElement * TauValidation::TauBremPhotonsPt
private

Definition at line 92 of file TauValidation.h.

Referenced by bookHistograms(), and photons().

MonitorElement * TauValidation::TauBremPhotonsPtSum
private

Definition at line 92 of file TauValidation.h.

Referenced by bookHistograms(), and photons().

MonitorElement * TauValidation::TauDecayChannels
private

Definition at line 92 of file TauValidation.h.

Referenced by bookHistograms(), and tauDecayChannel().

MonitorElement * TauValidation::TauEta
private

Definition at line 92 of file TauValidation.h.

Referenced by analyze(), and bookHistograms().

MonitorElement * TauValidation::TauFSRPhotonsN
private

Definition at line 92 of file TauValidation.h.

Referenced by bookHistograms(), and photons().

MonitorElement * TauValidation::TauFSRPhotonsPt
private

Definition at line 92 of file TauValidation.h.

Referenced by bookHistograms(), and photons().

MonitorElement * TauValidation::TauFSRPhotonsPtSum
private

Definition at line 92 of file TauValidation.h.

Referenced by bookHistograms(), and photons().

MonitorElement * TauValidation::TauMothers
private

Definition at line 92 of file TauValidation.h.

Referenced by bookHistograms(), and tauMother().

MonitorElement * TauValidation::TauPhi
private

Definition at line 92 of file TauValidation.h.

Referenced by analyze(), and bookHistograms().

MonitorElement * TauValidation::TauProngs
private

Definition at line 92 of file TauValidation.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TauValidation::TauPt
private

Definition at line 92 of file TauValidation.h.

Referenced by analyze(), and bookHistograms().

MonitorElement * TauValidation::TauSpinEffectsH_eX
private

Definition at line 92 of file TauValidation.h.

Referenced by bookHistograms(), and spinEffectsZH().

MonitorElement * TauValidation::TauSpinEffectsH_muX
private

Definition at line 92 of file TauValidation.h.

Referenced by bookHistograms(), and spinEffectsZH().

MonitorElement * TauValidation::TauSpinEffectsH_MVis
private

Definition at line 92 of file TauValidation.h.

Referenced by bookHistograms(), and spinEffectsZH().

MonitorElement * TauValidation::TauSpinEffectsH_pipiAcollinearity
private

Definition at line 92 of file TauValidation.h.

Referenced by bookHistograms(), and spinEffectsZH().

MonitorElement * TauValidation::TauSpinEffectsH_pipiAcollinearityzoom
private

Definition at line 92 of file TauValidation.h.

Referenced by bookHistograms(), and spinEffectsZH().

MonitorElement * TauValidation::TauSpinEffectsH_pipiAcoplanarity
private

Definition at line 92 of file TauValidation.h.

Referenced by bookHistograms(), and spinEffectsZH().

MonitorElement * TauValidation::TauSpinEffectsH_rhorhoAcoplanarityminus
private

Definition at line 92 of file TauValidation.h.

Referenced by bookHistograms(), and spinEffectsZH().

MonitorElement * TauValidation::TauSpinEffectsH_rhorhoAcoplanarityplus
private

Definition at line 92 of file TauValidation.h.

Referenced by bookHistograms(), and spinEffectsZH().

MonitorElement * TauValidation::TauSpinEffectsH_X
private

Definition at line 92 of file TauValidation.h.

Referenced by bookHistograms(), and spinEffectsZH().

MonitorElement * TauValidation::TauSpinEffectsH_Xb
private

Definition at line 92 of file TauValidation.h.

Referenced by bookHistograms(), and spinEffectsZH().

MonitorElement * TauValidation::TauSpinEffectsH_Xf
private

Definition at line 92 of file TauValidation.h.

Referenced by bookHistograms(), and spinEffectsZH().

MonitorElement * TauValidation::TauSpinEffectsH_Zs
private

Definition at line 92 of file TauValidation.h.

Referenced by bookHistograms(), and spinEffectsZH().

MonitorElement * TauValidation::TauSpinEffectsHpm_eX
private

Definition at line 92 of file TauValidation.h.

Referenced by bookHistograms(), and spinEffectsWHpm().

MonitorElement * TauValidation::TauSpinEffectsHpm_muX
private

Definition at line 92 of file TauValidation.h.

Referenced by bookHistograms(), and spinEffectsWHpm().

MonitorElement * TauValidation::TauSpinEffectsHpm_UpsilonA1
private

Definition at line 92 of file TauValidation.h.

Referenced by bookHistograms(), and spinEffectsWHpm().

MonitorElement * TauValidation::TauSpinEffectsHpm_UpsilonRho
private

Definition at line 92 of file TauValidation.h.

Referenced by bookHistograms(), and spinEffectsWHpm().

MonitorElement * TauValidation::TauSpinEffectsHpm_X
private

Definition at line 92 of file TauValidation.h.

Referenced by bookHistograms(), and spinEffectsWHpm().

MonitorElement * TauValidation::TauSpinEffectsW_eX
private

Definition at line 92 of file TauValidation.h.

Referenced by bookHistograms(), and spinEffectsWHpm().

MonitorElement * TauValidation::TauSpinEffectsW_muX
private

Definition at line 92 of file TauValidation.h.

Referenced by bookHistograms(), and spinEffectsWHpm().

MonitorElement * TauValidation::TauSpinEffectsW_UpsilonA1
private

Definition at line 92 of file TauValidation.h.

Referenced by bookHistograms(), and spinEffectsWHpm().

MonitorElement * TauValidation::TauSpinEffectsW_UpsilonRho
private

Definition at line 92 of file TauValidation.h.

Referenced by bookHistograms(), and spinEffectsWHpm().

MonitorElement * TauValidation::TauSpinEffectsW_X
private

Definition at line 92 of file TauValidation.h.

Referenced by bookHistograms(), and spinEffectsWHpm().

MonitorElement * TauValidation::TauSpinEffectsZ_eX
private

Definition at line 92 of file TauValidation.h.

Referenced by bookHistograms(), and spinEffectsZH().

MonitorElement * TauValidation::TauSpinEffectsZ_muX
private

Definition at line 92 of file TauValidation.h.

Referenced by bookHistograms(), and spinEffectsZH().

MonitorElement * TauValidation::TauSpinEffectsZ_MVis
private

Definition at line 92 of file TauValidation.h.

Referenced by bookHistograms(), and spinEffectsZH().

MonitorElement * TauValidation::TauSpinEffectsZ_X
private

Definition at line 92 of file TauValidation.h.

Referenced by bookHistograms(), and spinEffectsZH().

MonitorElement * TauValidation::TauSpinEffectsZ_X100to120
private

Definition at line 92 of file TauValidation.h.

Referenced by bookHistograms(), and spinEffectsZH().

MonitorElement * TauValidation::TauSpinEffectsZ_X120UP
private

Definition at line 92 of file TauValidation.h.

Referenced by bookHistograms(), and spinEffectsZH().

MonitorElement * TauValidation::TauSpinEffectsZ_X50to75
private

Definition at line 92 of file TauValidation.h.

Referenced by bookHistograms(), and spinEffectsZH().

MonitorElement * TauValidation::TauSpinEffectsZ_X75to88
private

Definition at line 92 of file TauValidation.h.

Referenced by bookHistograms(), and spinEffectsZH().

MonitorElement * TauValidation::TauSpinEffectsZ_X88to100
private

Definition at line 92 of file TauValidation.h.

Referenced by bookHistograms(), and spinEffectsZH().

MonitorElement * TauValidation::TauSpinEffectsZ_Xb
private

Definition at line 92 of file TauValidation.h.

Referenced by bookHistograms(), and spinEffectsZH().

MonitorElement * TauValidation::TauSpinEffectsZ_Xf
private

Definition at line 92 of file TauValidation.h.

Referenced by bookHistograms(), and spinEffectsZH().

MonitorElement * TauValidation::TauSpinEffectsZ_Zs
private

Definition at line 92 of file TauValidation.h.

Referenced by bookHistograms(), and spinEffectsZH().

int TauValidation::zsbins
private

Definition at line 108 of file TauValidation.h.

Referenced by bookHistograms(), and spinEffectsZH().

double TauValidation::zsmax
private

Definition at line 109 of file TauValidation.h.

Referenced by bookHistograms(), and spinEffectsZH().

double TauValidation::zsmin
private

Definition at line 109 of file TauValidation.h.

Referenced by bookHistograms(), and spinEffectsZH().