CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes
TauValidation Class Reference

#include <TauValidation.h>

Inheritance diagram for TauValidation:
DQMEDAnalyzer edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > > edm::stream::EDAnalyzerBase edm::EDConsumerBase

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 Types inherited from edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > >
typedef CacheContexts< T...> CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T...> HasAbility
 
typedef
CacheTypes::LuminosityBlockCache 
LuminosityBlockCache
 
typedef
LuminosityBlockContextT
< LuminosityBlockCache,
RunCache, GlobalCache
LuminosityBlockContext
 
typedef
CacheTypes::LuminosityBlockSummaryCache 
LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache,
GlobalCache
RunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Public Types inherited from edm::stream::EDAnalyzerBase
typedef EDAnalyzerAdaptorBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 

Public Member Functions

virtual void analyze (edm::Event const &, edm::EventSetup const &) override
 
virtual void bookHistograms (DQMStore::IBooker &i, edm::Run const &, edm::EventSetup const &) override
 
virtual void dqmBeginRun (const edm::Run &r, const edm::EventSetup &c) override
 
 TauValidation (const edm::ParameterSet &)
 
virtual ~TauValidation ()
 
- Public Member Functions inherited from DQMEDAnalyzer
virtual void beginRun (edm::Run const &, edm::EventSetup const &) final
 
virtual void beginStream (edm::StreamID id) final
 
 DQMEDAnalyzer (void)
 
virtual void endLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, dqmDetails::NoCache *) const final
 
virtual void endRunSummary (edm::Run const &, edm::EventSetup const &, dqmDetails::NoCache *) const final
 
uint32_t streamId () const
 
- Public Member Functions inherited from edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > >
 EDAnalyzer ()=default
 
- Public Member Functions inherited from edm::stream::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDAnalyzerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesDependentUpon (const std::string &iProcessName, std::vector< const char * > &oModuleLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

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::ParticleDataTable
fPDGTable
 PDT table. More...
 
edm::InputTag genparticleCollection_
 
edm::EDGetTokenT
< reco::GenParticleCollection
genparticleCollectionToken_
 
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
 

Additional Inherited Members

- Static Public Member Functions inherited from DQMEDAnalyzer
static std::shared_ptr
< dqmDetails::NoCache
globalBeginLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, LuminosityBlockContext const *)
 
static std::shared_ptr
< dqmDetails::NoCache
globalBeginRunSummary (edm::Run const &, edm::EventSetup const &, RunContext const *)
 
static void globalEndLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, LuminosityBlockContext const *, dqmDetails::NoCache *)
 
static void globalEndRunSummary (edm::Run const &, edm::EventSetup const &, RunContext const *, dqmDetails::NoCache *)
 
- Static Public Member Functions inherited from edm::stream::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

Definition at line 26 of file TauValidation.h.

Member Enumeration Documentation

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

Definition at line 30 of file TauValidation.h.

anonymous enum
Enumerator
other 
B 
D 
gamma 
Z 
W 
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_.

18  :
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 {
26  genparticleCollectionToken_=consumes<reco::GenParticleCollection>(genparticleCollection_);
27 }
T getParameter(std::string const &) const
unsigned int NMODEID
edm::EDGetTokenT< reco::GenParticleCollection > genparticleCollectionToken_
edm::InputTag genparticleCollection_
Definition: TauValidation.h:86
TauValidation::~TauValidation ( )
virtual

Definition at line 29 of file TauValidation.cc.

29 {}

Member Function Documentation

void TauValidation::analyze ( edm::Event const &  iEvent,
edm::EventSetup const &  iSetup 
)
overridevirtual

Gathering the reco::GenParticleCollection information

Implements edm::stream::EDAnalyzerBase.

Definition at line 156 of file TauValidation.cc.

References funct::abs(), TauDecay_GenParticle::AnalyzeTau(), beta, EnergyCorrector::c, DecayLength, MonitorElement::Fill(), genparticleCollectionToken_, genParticleCandidates2GenParticles_cfi::genParticles, TauDecay_GenParticle::Get_TauDecayProducts(), edm::Event::getByToken(), PdtPdgMini::Higgs0, 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, spinEffectsWHpm(), spinEffectsZH(), tauDecayChannel(), TauEta, tauMother(), TauPhi, TauProngs, TauPt, histoStyle::weight, and PdtPdgMini::Z0.

156  {
159  iEvent.getByToken(genparticleCollectionToken_, genParticles );
160 
161  double weight = 1.0;//= wmanager_.weight(iEvent);
163  // find taus
164  for (reco::GenParticleCollection::const_iterator iter = genParticles->begin(); iter != genParticles->end(); ++iter) {
165  if(abs(iter->pdgId())==PdtPdgMini::Z0 || abs(iter->pdgId())==PdtPdgMini::Higgs0){
166  spinEffectsZH(&(*iter),weight);
167  }
168  if(abs(iter->pdgId())==15){
169  if(isLastTauinChain(&(*iter))){
170  nTaus->Fill(0.5,weight);
171  int mother = tauMother(&(*iter),weight);
172  if(mother>-1){ // exclude B, D and other non-signal decay modes
173  nPrimeTaus->Fill(0.5,weight);
174  TauPt->Fill(iter->pt(),weight);
175  TauEta->Fill(iter->eta(),weight);
176  TauPhi->Fill(iter->phi(),weight);
177  photons(&(*iter),weight);
179  // Adding MODEID and Mass information
181  unsigned int jak_id, TauBitMask;
182  if(TD.AnalyzeTau(&(*iter),jak_id,TauBitMask,false,false)){
183  MODEID->Fill(jak_id,weight);
184  TauProngs->Fill(TD.nProng(TauBitMask),weight);
185  tauDecayChannel(&(*iter),jak_id,TauBitMask,weight);
186  if(jak_id<=NMODEID){
187  int tcharge=iter->pdgId()/abs(iter->pdgId());
188  std::vector<const reco::GenParticle*> part=TD.Get_TauDecayProducts();
189  spinEffectsWHpm(&(*iter),mother,jak_id,part,weight);
190  TLorentzVector LVQ(0,0,0,0);
191  TLorentzVector LVS12(0,0,0,0);
192  TLorentzVector LVS13(0,0,0,0);
193  TLorentzVector LVS23(0,0,0,0);
194  bool haspart1=false;
195  TVector3 PV,SV;
196  bool hasDL(false);
197  for(unsigned int i=0;i<part.size();i++){
198  if(abs(part.at(i)->pdgId())!=PdtPdgMini::nu_tau && TD.isTauFinalStateParticle(part.at(i)->pdgId()) && !hasDL){
199  hasDL=true;
200  TLorentzVector tlv(iter->px(),iter->py(),iter->pz(),iter->energy());
201  PV=TVector3(iter->vx(),iter->vy(),iter->vz());
202  SV=TVector3(part.at(i)->vx(),part.at(i)->vy(),part.at(i)->vz());
203  TVector3 DL=SV-PV;
204  DecayLength->Fill(DL.Dot(tlv.Vect())/tlv.P(),weight);
205  double c(2.99792458E8),Ltau(DL.Mag()/100)/*cm->m*/,beta(iter->p()/iter->mass());
206  LifeTime->Fill( Ltau/(c*beta),weight);
207  }
208 
209  if(TD.isTauFinalStateParticle(part.at(i)->pdgId()) && abs(part.at(i)->pdgId())!=PdtPdgMini::nu_e &&
210  abs(part.at(i)->pdgId())!=PdtPdgMini::nu_mu && abs(part.at(i)->pdgId())!=PdtPdgMini::nu_tau ){
211  TLorentzVector LV(part.at(i)->px(),part.at(i)->py(),part.at(i)->pz(),part.at(i)->energy());
212  LVQ+=LV;
213  if(jak_id==TauDecay::MODE_3PI || jak_id==TauDecay::MODE_PI2PI0 ||
214  jak_id==TauDecay::MODE_KPIK ||
215  jak_id==TauDecay::MODE_KPIPI
216  ){
217  if((tcharge==part.at(i)->pdgId()/abs(part.at(i)->pdgId()) && TD.nProng(TauBitMask)==3) || ((jak_id==TauDecay::MODE_3PI || jak_id==TauDecay::MODE_PI2PI0) && TD.nProng(TauBitMask)==1 && abs(part.at(i)->pdgId())==PdtPdgMini::pi_plus) ){
218  LVS13+=LV;
219  LVS23+=LV;
220  }
221  else{
222  LVS12+=LV;
223  if(!haspart1 && ((jak_id==TauDecay::MODE_3PI || jak_id==TauDecay::MODE_PI2PI0) || ((jak_id!=TauDecay::MODE_3PI || jak_id==TauDecay::MODE_PI2PI0) && abs(part.at(i)->pdgId())==PdtPdgMini::K_plus) )){
224  LVS13+=LV;
225  haspart1=true;
226  }
227  else{
228  LVS23+=LV;
229  }
230  }
231  }
232  }
233  }
234  part.clear();
235  MODEInvMass.at(jak_id).at(0)->Fill(LVQ.M(),weight);
236  if(jak_id==TauDecay::MODE_3PI || jak_id==TauDecay::MODE_PI2PI0 ||
237  jak_id==TauDecay::MODE_KPIK ||
238  jak_id==TauDecay::MODE_KPIPI
239  ){
240  MODEInvMass.at(jak_id).at(1)->Fill(LVS13.M(),weight);
241  MODEInvMass.at(jak_id).at(2)->Fill(LVS23.M(),weight);
242  MODEInvMass.at(jak_id).at(3)->Fill(LVS12.M(),weight);
243  }
244  }
245  }
246  else{
247  MODEID->Fill(jak_id,weight);
248  }
249  }
250  }
251  }
252  }
253 }//analyze
const double beta
int i
Definition: DBlmapReader.cc:9
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
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)
void Fill(long long x)
MonitorElement * TauProngs
Definition: TauValidation.h:92
bool isTauFinalStateParticle(int pdgid)
Definition: TauDecay.cc:36
math::XYZTLorentzVectorD LV
void photons(const reco::GenParticle *, double weight)
int iEvent
Definition: GenABIO.cc:230
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
int weight
Definition: histoStyle.py:50
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 &   
)
overridevirtual

Setting the DQM top directories

Implements DQMEDAnalyzer.

Definition at line 35 of file TauValidation.cc.

References A0, a1, DQMHelper::book1dHisto(), D, DecayLength, TauDecay::DecayMode(), electron, gamma, H0, Hpm, HSM, j, K, Kstar, LifeTime, TauDecay::MODE_3PI, TauDecay::MODE_KPIK, TauDecay::MODE_KPIPI, TauDecay::MODE_PI2PI0, MODEID, MODEInvMass, muon, 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, cond::to_string(), tripi, tripinpi0, undetermined, W, Z, zsbins, zsmax, and zsmin.

35  {
37  DQMHelper dqm(&i); i.setCurrentFolder("Generator/Tau");
38  // Number of analyzed events
39  nTaus = dqm.book1dHisto("nTaus", "n analyzed Taus", 1, 0., 1.,"bin","Number of #tau's found");
40  nPrimeTaus = dqm.book1dHisto("nPrimeTaus", "n analyzed prime Taus", 1, 0., 1.,"bin","Number of #tau's from Gauge Bosons");
41 
42  //Kinematics
43  TauPt = dqm.book1dHisto("TauPt","Tau pT", 100 ,0,100,"P_{T}^{#tau}","Number of #tau's from Gauge Bosons");
44  TauEta = dqm.book1dHisto("TauEta","Tau eta", 100 ,-2.5,2.5,"#eta^{#tau}","Number of #tau's from Gauge Bosons");
45  TauPhi = dqm.book1dHisto("TauPhi","Tau phi", 100 ,-3.14,3.14,"#phi^{#tau}","Number of #tau's from Gauge Bosons");
46  TauProngs = dqm.book1dHisto("TauProngs","Tau n prongs", 7 ,0,7,"N_{prongs}","Number of #tau's from Gauge Bosons");
47  TauDecayChannels = dqm.book1dHisto("TauDecayChannels","Tau decay channels", 13 ,0,13,"Tau POG Decay Mode","Number of #tau's from Gauge Bosons");
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}");
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 
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("DecayLength","#tau Decay Length", 100 ,-20,20,"L_{#tau} (cm)","Number of #tau's from Gauge Bosons");
76  LifeTime = dqm.book1dHisto("LifeTime","#tau LifeTime ", 500 ,0,10000E-15,"#tau_{#tau} (s)","Number of #tau's from Gauge Bosons");
77 
78  TauSpinEffectsW_X = dqm.book1dHisto("TauSpinEffectsWX","X for pion", 50 ,0,1,"X","Number of #tau#rightarrow#pi#nu from W^{#pm} Bosons");
79  TauSpinEffectsHpm_X = dqm.book1dHisto("TauSpinEffectsHpmX","X for pion", 50 ,0,1,"X","Number of #tau#rightarrow#pi#nu from H^{#pm} Bosons");
80 
81  TauSpinEffectsW_eX = dqm.book1dHisto("TauSpinEffectsWeX","X for e", 50 ,0,1,"X","Number of #tau#rightarrowe#nu#nu from W^{#pm} Bosons");
82  TauSpinEffectsHpm_eX = dqm.book1dHisto("TauSpinEffectsHpmeX","X for e", 50 ,0,1,"X","Number of #tau#rightarrowe#nu#nu from H^{#pm} Bosons");
83 
84  TauSpinEffectsW_muX = dqm.book1dHisto("TauSpinEffectsWmuX","X for mu", 50 ,0,1,"X","Number of #tau#rightarrow#mu#nu#nu from W^{#pm} Bosons");
85  TauSpinEffectsHpm_muX = dqm.book1dHisto("TauSpinEffectsHpmmuX","X for mue", 50 ,0,1,"X","Number of #tau#rightarrow#mu#nu#nu from H^{#pm} Bosons");
86 
87  TauSpinEffectsW_UpsilonRho = dqm.book1dHisto("TauSpinEffectsWUpsilonRho","#Upsilon for #rho", 50 ,-1,1,"#Upsilon","Number of #tau#rightarrow#rho#nu from Gauge Bosons");
88  TauSpinEffectsHpm_UpsilonRho = dqm.book1dHisto("TauSpinEffectsHpmUpsilonRho","#Upsilon for #rho", 50 ,-1,1,"#Upsilon","Number of #tau#rightarrow#rho#nu from Gauge Bosons");
89 
90  TauSpinEffectsW_UpsilonA1 = dqm.book1dHisto("TauSpinEffectsWUpsilonA1","#Upsilon for a1", 50 ,-1,1,"#Upsilon","Number of #tau#rightarrow#pi#pi#pi#nu from Gauge Bosons");
91  TauSpinEffectsHpm_UpsilonA1 = dqm.book1dHisto("TauSpinEffectsHpmUpsilonA1","#Upsilon for a1", 50 ,-1,1,"#Upsilon","Number of #tau#rightarrow#pi#pi#pi#nu from Gauge Bosons");
92 
93  TauSpinEffectsH_pipiAcoplanarity = dqm.book1dHisto("TauSpinEffectsH_pipiAcoplanarity","H Acoplanarity for #pi^{-}#pi^{+}", 50 ,0,2*TMath::Pi(),"Acoplanarity","Number of H#rightarrow#tau^{-}(#rightarrow#pi^{-}#nu)#tau^{+}(#rightarrow#pi^{+}#nu) Events");
94 
95  TauSpinEffectsH_pipiAcollinearity = dqm.book1dHisto("TauSpinEffectsH_pipiAcollinearity","H Acollinearity for #pi^{-}#pi^{+}", 50 ,0,TMath::Pi(),"Acollinearity","Number of H#rightarrow#tau^{-}(#rightarrow#pi^{-}#nu)#tau^{+}(#rightarrow#pi^{+}#nu) Events");
96  TauSpinEffectsH_pipiAcollinearityzoom = dqm.book1dHisto("TauSpinEffectsH_pipiAcollinearityzoom","H Acollinearity for #pi^{-}#pi^{+}", 50 ,3,TMath::Pi(),"Acollinearity","Number of H#rightarrow#tau^{-}(#rightarrow#pi^{-}#nu)#tau^{+}(#rightarrow#pi^{+}#nu) Events");
97 
98  TauSpinEffectsZ_MVis = dqm.book1dHisto("TauSpinEffectsZMVis","Mass of pi+ pi-", 25 ,0,1.1,"M_{#pi^{+}#pi^{-}} (GeV)","Number of Z#rightarrow#tau^{-}(#rightarrow#pi^{-}#nu)#tau^{+}(#rightarrow#pi^{+}#nu) Events");
99  TauSpinEffectsH_MVis = dqm.book1dHisto("TauSpinEffectsHMVis","Mass of pi+ pi-", 25 ,0,1.1,"M_{#pi^{+}#pi^{-}} (GeV)","Number of H#rightarrow#tau^{-}(#rightarrow#pi^{-}#nu)#tau^{+}(#rightarrow#pi^{+}#nu) Events");
100 
101  TauSpinEffectsZ_Zs = dqm.book1dHisto("TauSpinEffectsZZs","Z_{s}", zsbins ,zsmin,zsmax,"Z_{s}","Number of Z#rightarrow#tau^{-}(#rightarrow#pi^{-}#nu)#tau^{+}(#rightarrow#pi^{+}#nu Events");
102  TauSpinEffectsH_Zs = dqm.book1dHisto("TauSpinEffectsHZs","Z_{s}", zsbins ,zsmin,zsmax,"Z_{s}","Number of H#rightarrow#tau^{-}(#rightarrow#pi^{-}#nu)#tau^{+}(#rightarrow#pi^{+}#nu Events");
103 
104  TauSpinEffectsZ_X= dqm.book1dHisto("TauSpinEffectsZX","X for pion of #tau^{-}", 25 ,0,1.0,"X","Number of #tau#rightarrow#pi#nu from Z Bosons");
105  TauSpinEffectsZ_X50to75= dqm.book1dHisto("TauSpinEffectsZX50to75","X for pion of #tau^{-} (50GeV-75GeV)", 10 ,0,1.0,"X","Number of #tau#rightarrow#pi#nu from Z(50GeV<M<75GeV) Bosons");
106  TauSpinEffectsZ_X75to88= dqm.book1dHisto("TauSpinEffectsZX75to88","X for pion of #tau^{-} (75GeV-88GeV)", 10 ,0,1.0,"X","Number of #tau#rightarrow#pi#nu from Z(75GeV<M<88GeV) Bosons");
107  TauSpinEffectsZ_X88to100= dqm.book1dHisto("TauSpinEffectsZX88to100","X for pion of #tau^{-} (88GeV-100GeV)", 10 ,0,1.0,"X","Number of #tau#rightarrow#pi#nu from Z(88GeV<M<100GeV) Bosons");
108  TauSpinEffectsZ_X100to120= dqm.book1dHisto("TauSpinEffectsZX100to120","X for pion of #tau^{-} (100GeV-120GeV)", 10 ,0,1.0,"X","Number of #tau#rightarrow#pi#nu from Z(100GeV<M<120GeV) Bosons");
109  TauSpinEffectsZ_X120UP= dqm.book1dHisto("TauSpinEffectsZX120UP","X for pion of #tau^{-} (>120GeV)", 10 ,0,1.0,"X","Number of #tau#rightarrow#pi#nu from Z(120GeV<MGeV) Bosons");
110 
111 
112  TauSpinEffectsH_X= dqm.book1dHisto("TauSpinEffectsH_X","X for pion of #tau^{-}", 25 ,0,1.0,"X","Number of #tau#rightarrow#pi#nu from H Bosons");
113 
114  TauSpinEffectsZ_Xf = dqm.book1dHisto("TauSpinEffectsZXf","X for pion of forward emitted #tau^{-}", 25 ,0,1.0,"X_{f}","Number of #tau#rightarrow#pi#nu from Z Bosons");
115  TauSpinEffectsH_Xf = dqm.book1dHisto("TauSpinEffectsHXf","X for pion of forward emitted #tau^{-}", 25 ,0,1.0,"X_{f}","Number of #tau#rightarrow#pi#nu from H Bosons");
116 
117  TauSpinEffectsZ_Xb = dqm.book1dHisto("TauSpinEffectsZXb","X for pion of backward emitted #tau^{-}", 25 ,0,1.0,"X_{b}","Number of #tau#rightarrow#pi#nu from Z Bosons");
118  TauSpinEffectsH_Xb = dqm.book1dHisto("TauSpinEffectsHXb","X for pion of backward emitted #tau^{-}", 25 ,0,1.0,"X_{b}","Number of #tau#rightarrow#pi#nu from H Bosons");
119 
120  TauSpinEffectsZ_eX = dqm.book1dHisto("TauSpinEffectsZeX","X for e", 50 ,0,1,"X","Number of #tau#rightarrowe#nu#nu from Gauge Bosons");
121  TauSpinEffectsH_eX = dqm.book1dHisto("TauSpinEffectsHeX","X for e", 50 ,0,1,"X","Number of #tau#rightarrowe#nu#nu from Gauge Bosons");
122 
123  TauSpinEffectsZ_muX = dqm.book1dHisto("TauSpinEffectsZmuX","X for mu", 50 ,0,1,"X","Number of #tau#rightarrow#mu#nu#nu from Gauge Bosons");
124  TauSpinEffectsH_muX = dqm.book1dHisto("TauSpinEffectsHmuX","X for mu", 50 ,0,1,"X","Number of #tau#rightarrow#mu#nu#nu from Gauge Bosons");
125 
126  TauSpinEffectsH_rhorhoAcoplanarityminus = dqm.book1dHisto("TauSpinEffectsH_rhorhoAcoplanarityminus","#phi^{*-} (acoplanarity) for Higgs #rightarrow #rho-#rho (y_{1}*y_{2}<0)", 32 ,0,2*TMath::Pi(),"#phi^{*-} (Acoplanarity)","Number of H#rightarrow#tau^{-}(#rightarrow#rho^{-}#nu)#tau^{+}(#rightarrow#rho^{+}#nu) Events");
127  TauSpinEffectsH_rhorhoAcoplanarityplus = dqm.book1dHisto("TauSpinEffectsH_rhorhoAcoplanarityplus","#phi^{*+} (acoplanarity) for Higgs #rightarrow #rho-#rho (y_{1}*y_{2}>0)", 32 ,0,2*TMath::Pi(),"#phi^{*+} (Acoplanarity)","Number of H#rightarrow#tau^{-}(#rightarrow#rho^{-}#nu)#tau^{+}(#rightarrow#rho^{+}#nu) Events");
128 
129  TauFSRPhotonsN=dqm.book1dHisto("TauFSRPhotonsN","FSR Photons radiating from/with tau (Gauge Boson)", 5 ,-0.5,4.5,"N^{FSR Photons radiating from/with #tau}","Number of #tau's from Gauge Bosons");
130  TauFSRPhotonsPt=dqm.book1dHisto("TauFSRPhotonsPt","Pt of FSR Photons radiating from/with tau (Gauge Boson)", 100 ,0,100,"P_{t}^{FSR Photons radiating from/with #tau [per #tau]} (GeV)","Number of #tau's from Gauge Bosons");
131  TauFSRPhotonsPtSum=dqm.book1dHisto("TauFSRPhotonsPtSum","Pt of FSR Photons radiating from/with tau (Gauge Boson)", 100 ,0,100,"P_{t}^{FSR Photons radiating from/with #tau [per #tau]} (GeV)","Number of #tau's from Gauge Bosons");
132 
133  TauBremPhotonsN=dqm.book1dHisto("TauBremPhotonsN","Brem. Photons radiating in tau decay", 5 ,-0.5,4.5,"N FSR Photons radiating from/with tau","Number of #tau's from Gauge Bosons");
134  TauBremPhotonsPt=dqm.book1dHisto("TauBremPhotonsPt","Sum Brem Pt ", 100 ,0,100,"P_{t}^{Brem. Photons radiating in tau decay} (GeV)","Number of #tau's from Gauge Bosons");
135  TauBremPhotonsPtSum =dqm.book1dHisto("TauBremPhotonsPtSum","Sum of Brem Pt ", 100 ,0,100,"Sum P_{t}^{Brem. Photons radiating in tau decay} (GeV)","Number of #tau's from Gauge Bosons");
136 
137  MODEID =dqm.book1dHisto("JAKID","JAK ID",NMODEID+1,-0.5,NMODEID+0.5);
138  for(unsigned int j=0; j<NMODEID+1;j++){
139  MODEInvMass.push_back(std::vector<MonitorElement *>());
140  std::string tmp="JAKID";
141  tmp+=std::to_string(j);
142  MODEInvMass.at(j).push_back(dqm.book1dHisto("M"+tmp,"M_{"+TauDecay::DecayMode(j)+"} (GeV)", 80 ,0,2.0,"M_{"+TauDecay::DecayMode(j)+"} (GeV)","Number of #tau's from Gauge Bosons"));
147  MODEInvMass.at(j).push_back(dqm.book1dHisto("M13"+tmp,"M_{13,"+TauDecay::DecayMode(j)+"} (GeV)", 80 ,0,2.0,"M_{13,"+TauDecay::DecayMode(j)+"} (GeV)","Number of #tau's from Gauge Bosons"));
148  MODEInvMass.at(j).push_back(dqm.book1dHisto("M23"+tmp,"M_{23,"+TauDecay::DecayMode(j)+"} (GeV)", 80 ,0,2.0,"M_{23,"+TauDecay::DecayMode(j)+"} (GeV)","Number of #tau's from Gauge Bosons"));
149  MODEInvMass.at(j).push_back(dqm.book1dHisto("M12"+tmp,"M_{12,"+TauDecay::DecayMode(j)+"} (GeV)", 80 ,0,2.0,"M_{12,"+TauDecay::DecayMode(j)+"} (GeV)","Number of #tau's from Gauge Bosons"));
150  }
151  }
152  return;
153 }
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
std::string to_string(const T &t)
Definition: Logger.cc:26
MonitorElement * TauSpinEffectsW_UpsilonRho
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsZ_X88to100
Definition: TauValidation.h:92
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
int j
Definition: DBlmapReader.cc:9
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
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:274
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 388 of file TauValidation.cc.

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

Referenced by tauDecayChannel().

389  {
390  for(unsigned int i=0; i<p->numberOfDaughters(); i++){
391  const reco::GenParticle *dau=static_cast<const reco::GenParticle*>(p->daughter(i));
392  int pid = dau->pdgId();
393  allCount++;
394  if(abs(pid) == 11) eCount++;
395  if(abs(pid) == 13) muCount++;
396  if(abs(pid) == 111) pi0Count++;
397  if(abs(pid) == 211) piCount++;
398  if(abs(pid) == 213) rhoCount++;
399  if(abs(pid) == 20213) a1Count++;
400  if(abs(pid) == 321) KCount++;
401  if(abs(pid) == 323) KstarCount++;
402  countParticles(dau,allCount,eCount,muCount,pi0Count,piCount,rhoCount,a1Count,KCount,KstarCount);
403  }
404 }
int i
Definition: DBlmapReader.cc:9
virtual int pdgId() const
PDG identifier.
virtual size_t numberOfDaughters() const
number of daughters
virtual const Candidate * daughter(size_type) const
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
tuple pid
Definition: sysUtil.py:22
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 
)
overridevirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 31 of file TauValidation.cc.

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

31  {
32  c.getData( fPDGTable );
33 }
void getData(T &iHolder) const
Definition: EventSetup.h:79
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 295 of file TauValidation.cc.

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

Referenced by photons().

296  {
297  // 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.
298  if(abs(p->pdgId())==15){
299  if(isLastTauinChain(p)){ doBrem=true;}
300  else{ doBrem=false;}
301  }
302  int photo_ID=22;
303  for(unsigned int i = 0; i <p->numberOfDaughters(); i++){
304  const reco::GenParticle *dau=static_cast<const reco::GenParticle*>(p->daughter(i));
305  if(abs((dau)->pdgId()) == abs(photo_ID) && !doBrem){ListofFSR.push_back(dau);}
306  if(abs((dau)->pdgId()) == abs(photo_ID) && doBrem){ListofBrem.push_back(dau);}
307  if(abs((dau)->pdgId()) != 111 && abs((dau)->pdgId()) != 221){ // remove pi0 and eta decays
308  findFSRandBrem(dau,doBrem,ListofFSR,ListofBrem);
309  }
310  }
311 }
int i
Definition: DBlmapReader.cc:9
virtual int pdgId() const
PDG identifier.
bool isLastTauinChain(const reco::GenParticle *tau)
virtual size_t numberOfDaughters() const
number of daughters
virtual const Candidate * daughter(size_type) const
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
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 274 of file TauValidation.cc.

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

Referenced by spinEffectsZH(), and tauMother().

274  {
275  return TauValidation::GetMother(tau)->pdgId();
276 }
virtual int pdgId() const
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 313 of file TauValidation.cc.

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

Referenced by photons().

313  {
314  BosonScale=0.0;
315  const reco::GenParticle* m=GetMother(p);
316  int mother_pid=m->pdgId();
317  if(m->pdgId()!=p->pdgId()){
318  for(unsigned int i=0; i <m->numberOfDaughters(); i++){
319  const reco::GenParticle *dau=static_cast<const reco::GenParticle*>(m->daughter(i));
320  if(abs(dau->pdgId()) == 22) {
321  ListofFSR.push_back(dau);
322  }
323  }
324  }
325  if(abs(mother_pid) == 24) BosonScale=1.0; // W
326  if(abs(mother_pid) == 23) BosonScale=2.0; // Z;
327  if(abs(mother_pid) == 22) BosonScale=2.0; // gamma;
328  if(abs(mother_pid) == 25) BosonScale=2.0; // HSM;
329  if(abs(mother_pid) == 35) BosonScale=2.0; // H0;
330  if(abs(mother_pid) == 36) BosonScale=2.0; // A0;
331  if(abs(mother_pid) == 37) BosonScale=1.0; //Hpm;
332 }
int i
Definition: DBlmapReader.cc:9
virtual int pdgId() const
PDG identifier.
const reco::GenParticle * GetMother(const reco::GenParticle *tau)
virtual size_t numberOfDaughters() const
number of daughters
virtual const Candidate * daughter(size_type) const
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
void TauValidation::findTauList ( const reco::GenParticle tau,
std::vector< const reco::GenParticle * > &  TauList 
)
private

Definition at line 285 of file TauValidation.cc.

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

Referenced by photons().

285  {
286  TauList.insert(TauList.begin(),tau);
287  for(unsigned int i=0;i<tau->numberOfMothers();i++) {
288  const reco::GenParticle *mother=static_cast<const reco::GenParticle*>(tau->mother(i));
289  if(mother->pdgId() == tau->pdgId()){
290  findTauList(mother,TauList);
291  }
292  }
293 }
int i
Definition: DBlmapReader.cc:9
virtual int pdgId() const
PDG identifier.
virtual size_t numberOfMothers() const
number of mothers
void findTauList(const reco::GenParticle *tau, std::vector< const reco::GenParticle * > &TauList)
virtual const Candidate * mother(size_type=0) const
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 255 of file TauValidation.cc.

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

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

255  {
256  for (unsigned int i=0;i<tau->numberOfMothers();i++) {
257  const reco::GenParticle *mother=static_cast<const reco::GenParticle*>(tau->mother(i));
258  if(mother->pdgId() == tau->pdgId()) return GetMother(mother);
259  return mother;
260  }
261  return tau;
262 }
int i
Definition: DBlmapReader.cc:9
virtual int pdgId() const
PDG identifier.
const reco::GenParticle * GetMother(const reco::GenParticle *tau)
virtual size_t numberOfMothers() const
number of mothers
virtual const Candidate * mother(size_type=0) const
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 264 of file TauValidation.cc.

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

Referenced by spinEffectsZH().

264  {
265  std::vector<const reco::GenParticle*> mothers;
266  for (unsigned int i=0;i<boson->numberOfMothers();i++) {
267  const reco::GenParticle *mother=static_cast<const reco::GenParticle*>(boson->mother(i));
268  if(mother->pdgId() == boson->pdgId()) return GetMothers(mother);
269  mothers.push_back(mother);
270  }
271  return mothers;
272 }
int i
Definition: DBlmapReader.cc:9
virtual int pdgId() const
PDG identifier.
virtual size_t numberOfMothers() const
number of mothers
const std::vector< const reco::GenParticle * > GetMothers(const reco::GenParticle *boson)
virtual const Candidate * mother(size_type=0) const
return mother at a given position, i = 0, ... numberOfMothers() - 1 (read only mode) ...
bool TauValidation::isLastTauinChain ( const reco::GenParticle tau)
private

Definition at line 278 of file TauValidation.cc.

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

Referenced by analyze(), and findFSRandBrem().

278  {
279  for(unsigned int i = 0; i <tau->numberOfDaughters(); i++){
280  if(tau->daughter(i)->pdgId() == tau->pdgId()) return false;
281  }
282  return true;
283 }
int i
Definition: DBlmapReader.cc:9
virtual int pdgId() const
PDG identifier.
virtual size_t numberOfDaughters() const
number of daughters
virtual const Candidate * daughter(size_type) const
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
virtual int pdgId() const =0
PDG identifier.
double TauValidation::leadingPionMomentum ( const reco::GenParticle tau,
double  weight 
)
private

Definition at line 678 of file TauValidation.cc.

References leadingPionP4().

678  {
679  return leadingPionP4(tau).P();
680 }
TLorentzVector leadingPionP4(const reco::GenParticle *)
TLorentzVector TauValidation::leadingPionP4 ( const reco::GenParticle tau)
private

Definition at line 682 of file TauValidation.cc.

References funct::abs(), reco::CompositeRefCandidateT< D >::daughter(), reco::LeafCandidate::energy(), 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().

682  {
683  TLorentzVector p4(0,0,0,0);
684  for(unsigned int i = 0; i <tau->numberOfDaughters(); i++){
685  const reco::GenParticle *dau=static_cast<const reco::GenParticle*>(tau->daughter(i));
686  int pid = dau->pdgId();
687  if(abs(pid) == 15) return leadingPionP4(dau);
688  if(!(abs(pid)==211 || abs(pid)==13 || abs(pid)==11)) continue;
689  if(dau->p() > p4.P()) p4 = TLorentzVector(dau->px(),dau->py(),dau->pz(),dau->energy());
690  }
691  return p4;
692 }
int i
Definition: DBlmapReader.cc:9
virtual int pdgId() const
PDG identifier.
virtual double p() const
magnitude of momentum vector
virtual double energy() const
energy
double p4[4]
Definition: TauolaWrapper.h:92
virtual size_t numberOfDaughters() const
number of daughters
virtual const Candidate * daughter(size_type) const
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
virtual double px() const
x coordinate of momentum vector
tuple pid
Definition: sysUtil.py:22
virtual double pz() const
z coordinate of momentum vector
virtual double py() const
y coordinate of momentum vector
TLorentzVector leadingPionP4(const reco::GenParticle *)
TLorentzVector TauValidation::motherP4 ( const reco::GenParticle tau)
private

Definition at line 694 of file TauValidation.cc.

References reco::LeafCandidate::energy(), GetMother(), visualization-live-secondInstance_cfg::m, reco::LeafCandidate::px(), reco::LeafCandidate::py(), and reco::LeafCandidate::pz().

Referenced by spinEffectsWHpm().

694  {
695  const reco::GenParticle* m=GetMother(tau);
696  return TLorentzVector(m->px(),m->py(),m->pz(),m->energy());
697 }
virtual double energy() const
energy
const reco::GenParticle * GetMother(const reco::GenParticle *tau)
virtual double px() const
x coordinate of momentum vector
virtual double pz() const
z coordinate of momentum vector
virtual double py() const
y coordinate of momentum vector
void TauValidation::photons ( const reco::GenParticle tau,
double  weight 
)
private

Definition at line 712 of file TauValidation.cc.

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

Referenced by analyze().

712  {
713  // Find First tau in chain
714  std::vector<const reco::GenParticle*> TauList;
715  findTauList(tau,TauList);
716 
717  // Get List of Gauge Boson to tau(s) FSR and Brem
718  bool passedW=false;
719  std::vector<const reco::GenParticle*> ListofFSR; ListofFSR.clear();
720  std::vector<const reco::GenParticle*> ListofBrem; ListofBrem.clear();
721  std::vector<const reco::GenParticle*> FSR_photos; FSR_photos.clear();
722  double BosonScale(1);
723  if(TauList.size()>0){
724  TauValidation::findFSRandBrem(TauList.at(0),passedW,ListofFSR,ListofBrem);
725  TauValidation::FindPhotosFSR(TauList.at(0),FSR_photos,BosonScale);
726 
727  // Add the Tau Brem. information
728  TauBremPhotonsN->Fill(ListofBrem.size(),weight);
729  double photonPtSum=0;
730  for(unsigned int i=0;i<ListofBrem.size();i++){
731  photonPtSum+=ListofBrem.at(i)->pt();
732  TauBremPhotonsPt->Fill(ListofBrem.at(i)->pt(),weight);
733  }
734  TauBremPhotonsPtSum->Fill(photonPtSum,weight);
735 
736  // Now add the Gauge Boson FSR information
737  if(BosonScale!=0){
738  TauFSRPhotonsN->Fill(ListofFSR.size(),weight);
739  photonPtSum=0;
740  for(unsigned int i=0;i<ListofFSR.size();i++){
741  photonPtSum+=ListofFSR.at(i)->pt();
742  TauFSRPhotonsPt->Fill(ListofFSR.at(i)->pt(),weight);
743  }
744  double FSR_photosSum(0);
745  for(unsigned int i=0;i<FSR_photos.size();i++){
746  FSR_photosSum+=FSR_photos.at(i)->pt();
747  TauFSRPhotonsPt->Fill(FSR_photos.at(i)->pt()/BosonScale,weight*BosonScale);
748  }
749  TauFSRPhotonsPtSum->Fill(photonPtSum+FSR_photosSum/BosonScale,weight);
750  }
751  }
752 }
MonitorElement * TauFSRPhotonsN
Definition: TauValidation.h:92
int i
Definition: DBlmapReader.cc:9
void FindPhotosFSR(const reco::GenParticle *p, std::vector< const reco::GenParticle * > &ListofFSR, double &BosonScale)
MonitorElement * TauBremPhotonsN
Definition: TauValidation.h:92
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)
int weight
Definition: histoStyle.py:50
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 408 of file TauValidation.cc.

References a1, funct::abs(), relval_parameters_module::energy, MonitorElement::Fill(), gamma, 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 histoStyle::weight.

Referenced by analyze().

408  {
409  if(decay == TauDecay::MODE_PION || decay == TauDecay::MODE_MUON || decay == TauDecay::MODE_ELECTRON){ // polarization only for 1-prong hadronic taus with no neutral pions
410  TLorentzVector momP4 = motherP4(tau);
411  TLorentzVector pionP4 = leadingPionP4(tau);
412  pionP4.Boost(-1*momP4.BoostVector());
413  double energy = pionP4.E()/(momP4.M()/2);
414  if(decay == TauDecay::MODE_PION){
415  if(abs(mother) == 24) TauSpinEffectsW_X->Fill(energy,weight);
416  if(abs(mother) == 37) TauSpinEffectsHpm_X->Fill(energy,weight);
417  }
418  if(decay == TauDecay::MODE_MUON){
419  if(abs(mother) == 24) TauSpinEffectsW_muX->Fill(energy,weight);
420  if(abs(mother) == 37) TauSpinEffectsHpm_muX->Fill(energy,weight);
421  }
422  if(decay == TauDecay::MODE_ELECTRON){
423  if(abs(mother) == 24) TauSpinEffectsW_eX->Fill(energy,weight);
424  if(abs(mother) == 37) TauSpinEffectsHpm_eX->Fill(energy,weight);
425  }
426  }
427  else if(decay==TauDecay::MODE_PIPI0){
428  TLorentzVector rho(0,0,0,0),pi(0,0,0,0);
429  for(unsigned int i=0;i<part.size();i++){
430  TLorentzVector LV(part.at(i)->px(),part.at(i)->py(),part.at(i)->pz(),part.at(i)->energy());
431  if(abs(part.at(i)->pdgId())==PdtPdgMini::pi_plus){pi+=LV; rho+=LV;}
432  if(abs(part.at(i)->pdgId())==PdtPdgMini::pi0){rho+=LV;}
433  }
434  if(abs(mother) == 24) TauSpinEffectsW_UpsilonRho->Fill(2*pi.P()/rho.P()-1,weight);
435  if(abs(mother) == 37) TauSpinEffectsHpm_UpsilonRho->Fill(2*pi.P()/rho.P()-1,weight);
436  }
437  else if(decay==TauDecay::MODE_3PI || decay==TauDecay::MODE_PI2PI0){ // only for pi2pi0 for now
438  TLorentzVector a1(0,0,0,0),pi_p(0,0,0,0),pi_m(0,0,0,0);
439  int nplus(0),nminus(0);
440  for(unsigned int i=0;i<part.size();i++){
441  TLorentzVector LV(part.at(i)->px(),part.at(i)->py(),part.at(i)->pz(),part.at(i)->energy());
442  if(part.at(i)->pdgId()==PdtPdgMini::pi_plus){ pi_p+=LV; a1+=LV; nplus++;}
443  if(part.at(i)->pdgId()==PdtPdgMini::pi_minus){pi_m+=LV; a1+=LV; nminus++;}
444  }
445  double gamma=0;
446  if(nplus+nminus==3 && nplus==1) gamma=2*pi_p.P()/a1.P()-1;
447  if(nplus+nminus==3 && nminus==1) gamma=2*pi_m.P()/a1.P()-1;
448  else{
449  pi_p+=pi_m; gamma=2*pi_p.P()/a1.P()-1;
450  }
451  if(abs(mother) == 24) TauSpinEffectsW_UpsilonA1->Fill(gamma,weight);
452  if(abs(mother) == 37) TauSpinEffectsHpm_UpsilonA1->Fill(gamma,weight);
453  }
454 }
int i
Definition: DBlmapReader.cc:9
MonitorElement * TauSpinEffectsW_X
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsHpm_UpsilonA1
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsHpm_eX
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsW_muX
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsHpm_UpsilonRho
Definition: TauValidation.h:92
void Fill(long long x)
TLorentzVector motherP4(const reco::GenParticle *)
math::XYZTLorentzVectorD LV
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
int weight
Definition: histoStyle.py:50
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 456 of file TauValidation.cc.

References funct::abs(), TauDecay_GenParticle::AnalyzeTau(), PdtPdgMini::anti_d, PdtPdgMini::anti_u, RecoTauCleanerPlugins::charge, PdtPdgMini::d, reco::CompositeRefCandidateT< D >::daughter(), reco::LeafCandidate::energy(), MonitorElement::Fill(), findMother(), fPDGTable, TauDecay_GenParticle::Get_TauDecayProducts(), GetMothers(), PdtPdgMini::Higgs0, i, leadingPionP4(), visualization-live-secondInstance_cfg::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, histoStyle::weight, Z, PdtPdgMini::Z0, zsbins, zsmax, zsmin, and Zstoa().

Referenced by analyze().

456  {
457  int ntau(0);
458  for(unsigned int i = 0; i <boson->numberOfDaughters(); i++){
459  const reco::GenParticle *dau=static_cast<const reco::GenParticle*>(boson->daughter(i));
460  if(ntau==1 && dau->pdgId() == 15)return;
461  if(boson->pdgId()!= 15 && abs(dau->pdgId()) == 15)ntau++;
462  }
463  if(ntau!=2) return;
464  if(abs(boson->pdgId())==PdtPdgMini::Z0 || abs(boson->pdgId())==PdtPdgMini::Higgs0){
465  TLorentzVector tautau(0,0,0,0);
466  TLorentzVector pipi(0,0,0,0);
467  TLorentzVector taum(0,0,0,0);
468  TLorentzVector taup(0,0,0,0);
469  TLorentzVector rho_plus,rho_minus,pi_rhominus,pi0_rhominus,pi_rhoplus,pi0_rhoplus,pi_plus,pi_minus;
470  bool hasrho_minus(false),hasrho_plus(false),haspi_minus(false),haspi_plus(false);
471  int nSinglePionDecays(0),nSingleMuonDecays(0),nSingleElectronDecays(0);
472  double x1(0),x2(0);
473  TLorentzVector Zboson(boson->px(),boson->py(),boson->pz(),boson->energy());
474  for(unsigned int i = 0; i <boson->numberOfDaughters(); i++){
475  const reco::GenParticle *dau=static_cast<const reco::GenParticle*>(boson->daughter(i));
476  int pid = dau->pdgId();
477  if(abs(findMother(dau)) != 15 && abs(pid) == 15){
479  unsigned int jak_id, TauBitMask;
480  if(TD.AnalyzeTau(dau,jak_id,TauBitMask,false,false)){
481  std::vector<const reco::GenParticle*> part=TD.Get_TauDecayProducts();
482  if(jak_id==TauDecay::MODE_PION || jak_id==TauDecay::MODE_MUON || jak_id==TauDecay::MODE_ELECTRON){
483  if(jak_id==TauDecay::MODE_PION) nSinglePionDecays++;
484  if(jak_id==TauDecay::MODE_MUON) nSingleMuonDecays++;
485  if(jak_id==TauDecay::MODE_ELECTRON) nSingleElectronDecays++;
486  TLorentzVector LVtau(dau->px(),dau->py(),dau->pz(),dau->energy());
487  tautau += LVtau;
488  TLorentzVector LVpi=leadingPionP4(dau);
489  pipi+=LVpi;
490  const HepPDT::ParticleData* pd = fPDGTable->particle(dau->pdgId ());
491  int charge = (int) pd->charge();
492  LVtau.Boost(-1*Zboson.BoostVector());
493  LVpi.Boost(-1*Zboson.BoostVector());
494 
495 
496 
497  if(jak_id==TauDecay::MODE_MUON){
498  if(abs(boson->pdgId())==PdtPdgMini::Z0) TauSpinEffectsZ_muX->Fill(LVpi.P()/LVtau.E(),weight);
499  if(abs(boson->pdgId())==PdtPdgMini::Higgs0) TauSpinEffectsH_muX->Fill(LVpi.P()/LVtau.E(),weight);
500 
501  }
502  if(jak_id==TauDecay::MODE_ELECTRON){
503  if(abs(boson->pdgId())==PdtPdgMini::Z0) TauSpinEffectsZ_eX->Fill(LVpi.P()/LVtau.E(),weight);
504  if(abs(boson->pdgId())==PdtPdgMini::Higgs0) TauSpinEffectsH_eX->Fill(LVpi.P()/LVtau.E(),weight);
505  }
506 
507 
508  if(jak_id==TauDecay::MODE_PION){
509  if(abs(boson->pdgId())==PdtPdgMini::Z0){
510  TauSpinEffectsZ_X->Fill(LVpi.P()/LVtau.E(),weight);
511  if(50.0<Zboson.M() && Zboson.M()<75.0) TauSpinEffectsZ_X50to75->Fill(LVpi.P()/LVtau.E(),weight);
512  if(75.0<Zboson.M() && Zboson.M()<88.0) TauSpinEffectsZ_X75to88->Fill(LVpi.P()/LVtau.E(),weight);
513  if(88.0<Zboson.M() && Zboson.M()<100.0) TauSpinEffectsZ_X88to100->Fill(LVpi.P()/LVtau.E(),weight);
514  if(100.0<Zboson.M() && Zboson.M()<120.0) TauSpinEffectsZ_X100to120->Fill(LVpi.P()/LVtau.E(),weight);
515  if(120.0<Zboson.M()) TauSpinEffectsZ_X120UP->Fill(LVpi.P()/LVtau.E(),weight);
516  }
517  if(abs(boson->pdgId())==PdtPdgMini::Higgs0) TauSpinEffectsH_X->Fill(LVpi.P()/LVtau.E(),weight);
518  }
519  if(charge<0){x1=LVpi.P()/LVtau.E(); taum=LVtau;}
520  else{ x2=LVpi.P()/LVtau.E();}
521  }
522  TLorentzVector LVtau(dau->px(),dau->py(),dau->pz(),dau->energy());
523  if(pid == 15)taum=LVtau;
524  if(pid ==-15)taup=LVtau;
525  if(jak_id==TauDecay::MODE_PIPI0){
526  for(unsigned int i=0; i<part.size();i++){
527  int pid_d = part.at(i)->pdgId();
528  if(abs(pid_d)==211 || abs(pid_d)==111){
529  TLorentzVector LV(part.at(i)->px(),part.at(i)->py(),part.at(i)->pz(),part.at(i)->energy());
530  if(pid==15){
531  hasrho_minus=true;
532  if(pid_d==-211 ){ pi_rhominus=LV;}
533  if(abs(pid_d)==111 ){ pi0_rhominus=LV;}
534  }
535  if(pid==-15){
536  hasrho_plus=true;
537  if(pid_d==211 ){pi_rhoplus=LV;}
538  if(abs(pid_d)==111 ){pi0_rhoplus=LV;}
539  }
540  }
541  }
542  }
543  if(jak_id==TauDecay::MODE_PION){
544  for(unsigned int i=0; i<part.size();i++){
545  int pid_d = part.at(i)->pdgId();
546  if(abs(pid_d)==211 ){
547  TLorentzVector LV(part.at(i)->px(),part.at(i)->py(),part.at(i)->pz(),part.at(i)->energy());
548  if(pid==15){
549  haspi_minus=true;
550  if(pid_d==-211 ){ pi_minus=LV;}
551  }
552  if(pid==-15){
553  haspi_plus=true;
554  if(pid_d==211 ){pi_plus=LV;}
555  }
556  }
557  }
558  }
559  }
560  }
561  }
562  if(hasrho_minus && hasrho_plus){
563  //compute rhorho
564  rho_minus=pi_rhominus;
565  rho_minus+=pi0_rhominus;
566  rho_plus=pi_rhoplus;
567  rho_plus+=pi0_rhoplus;
568  TLorentzVector rhorho=rho_minus;rhorho+=rho_plus;
569 
570  // boost to rhorho cm
571  TLorentzVector pi_rhoplusb=pi_rhoplus; pi_rhoplusb.Boost(-1*rhorho.BoostVector());
572  TLorentzVector pi0_rhoplusb=pi0_rhoplus; pi0_rhoplusb.Boost(-1*rhorho.BoostVector());
573  TLorentzVector pi_rhominusb=pi_rhominus; pi_rhominusb.Boost(-1*rhorho.BoostVector());
574  TLorentzVector pi0_rhominusb=pi0_rhominus; pi0_rhominusb.Boost(-1*rhorho.BoostVector());
575 
576  // compute n+/-
577  TVector3 n_plus=pi_rhoplusb.Vect().Cross(pi0_rhoplusb.Vect());
578  TVector3 n_minus=pi_rhominusb.Vect().Cross(pi0_rhominusb.Vect());
579 
580  // compute the acoplanarity
581  double Acoplanarity=acos(n_plus.Dot(n_minus)/(n_plus.Mag()*n_minus.Mag()));
582  if(pi_rhominusb.Vect().Dot(n_plus)>0){Acoplanarity*=-1;Acoplanarity+=2*TMath::Pi();}
583 
584  // now boost to tau frame
585  pi_rhoplus.Boost(-1*taup.BoostVector());
586  pi0_rhoplus.Boost(-1*taup.BoostVector());
587  pi_rhominus.Boost(-1*taum.BoostVector());
588  pi0_rhominus.Boost(-1*taum.BoostVector());
589 
590  // compute y1 and y2
591  double y1=(pi_rhoplus.E()-pi0_rhoplus.E())/(pi_rhoplus.E()+pi0_rhoplus.E());
592  double y2=(pi_rhominus.E()-pi0_rhominus.E())/(pi_rhominus.E()+pi0_rhominus.E());
593 
594  // fill histograms
595  if(abs(boson->pdgId())==PdtPdgMini::Higgs0 && y1*y2<0) TauSpinEffectsH_rhorhoAcoplanarityminus->Fill(Acoplanarity,weight);
596  if(abs(boson->pdgId())==PdtPdgMini::Higgs0 && y1*y2>0) TauSpinEffectsH_rhorhoAcoplanarityplus->Fill(Acoplanarity,weight);
597  }
598  if(haspi_minus && haspi_plus){
599  TLorentzVector tauporig=taup;
600  TLorentzVector taumorig=taum;
601 
602  // now boost to Higgs frame
603  pi_plus.Boost(-1*Zboson.BoostVector());
604  pi_minus.Boost(-1*Zboson.BoostVector());
605 
606  taup.Boost(-1*Zboson.BoostVector());
607  taum.Boost(-1*Zboson.BoostVector());
608 
609  if(abs(boson->pdgId())==PdtPdgMini::Higgs0){
610  TauSpinEffectsH_pipiAcollinearity->Fill(acos(pi_plus.Vect().Dot(pi_minus.Vect())/(pi_plus.P()*pi_minus.P())));
611  TauSpinEffectsH_pipiAcollinearityzoom->Fill(acos(pi_plus.Vect().Dot(pi_minus.Vect())/(pi_plus.P()*pi_minus.P())));
612  }
613 
614  double proj_m=taum.Vect().Dot(pi_minus.Vect())/(taum.P()*taum.P());
615  double proj_p=taup.Vect().Dot(pi_plus.Vect())/(taup.P()*taup.P());
616  TVector3 Tau_m=taum.Vect();
617  TVector3 Tau_p=taup.Vect();
618  Tau_m*=proj_m;
619  Tau_p*=proj_p;
620  TVector3 Pit_m=pi_minus.Vect()-Tau_m;
621  TVector3 Pit_p=pi_plus.Vect()-Tau_p;
622 
623  double Acoplanarity=acos(Pit_m.Dot(Pit_p)/(Pit_p.Mag()*Pit_m.Mag()));
624  TVector3 n=Pit_p.Cross(Pit_m);
625  if(n.Dot(Tau_m)/Tau_m.Mag()>0){Acoplanarity*=-1; Acoplanarity+=2*TMath::Pi();}
626  // fill histograms
628  taup=tauporig;
629  taum=taumorig;
630  }
631  if(nSinglePionDecays == 2 && tautau.M()!= 0) {
632  for(int i=0;i<zsbins;i++){
633  double zslow=((double)i)*(zsmax-zsmin)/((double)zsbins)+zsmin;
634  double zsup=((double)i+1)*(zsmax-zsmin)/((double)zsbins)+zsmin;
635  double aup=Zstoa(zsup), alow=Zstoa(zslow);
636  if(x2-x1>alow && x2-x1<aup){
637  double zs=(zsup+zslow)/2;
640  break;
641  }
642  }
643  if(abs(boson->pdgId())==PdtPdgMini::Z0) TauSpinEffectsZ_MVis->Fill(pipi.M()/tautau.M(),weight);
644  if(abs(boson->pdgId())==PdtPdgMini::Higgs0) TauSpinEffectsH_MVis->Fill(pipi.M()/tautau.M(),weight);
645 
646  if(x1!=0){
647  const std::vector<const reco::GenParticle*> m=GetMothers(boson);
648  int q(0),qbar(0);
649  TLorentzVector Z(0,0,0,0);
650  for(unsigned int i=0;i<m.size();i++){
651  if(m.at(i)->pdgId()==PdtPdgMini::d || m.at(i)->pdgId()==PdtPdgMini::u ){q++;}
652  if(m.at(i)->pdgId()==PdtPdgMini::anti_d || m.at(i)->pdgId()==PdtPdgMini::anti_u ){qbar++;}
653  }
654  if(q==1 && qbar==1){// assume q has largest E (valence vs see quarks)
655  if(taum.Vect().Dot(Zboson.Vect())/(Zboson.P()*taum.P())>0){
658  }
659  else{
662  }
663  }
664  }
665  }
666  }
667 }
const double Pi
int i
Definition: DBlmapReader.cc:9
virtual int pdgId() const
PDG identifier.
int findMother(const reco::GenParticle *)
MonitorElement * TauSpinEffectsH_rhorhoAcoplanarityplus
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsZ_Xb
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsH_MVis
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsZ_X100to120
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsZ_Xf
Definition: TauValidation.h:92
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
math::XYZTLorentzVectorD LV
virtual double energy() const
energy
MonitorElement * TauSpinEffectsZ_X88to100
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsH_rhorhoAcoplanarityminus
Definition: TauValidation.h:92
MonitorElement * TauSpinEffectsZ_X50to75
Definition: TauValidation.h:92
virtual size_t numberOfDaughters() const
number of daughters
virtual const Candidate * daughter(size_type) const
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
MonitorElement * TauSpinEffectsH_Xf
Definition: TauValidation.h:92
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
virtual double px() const
x coordinate of momentum vector
part
Definition: HCALResponse.h:20
tuple pid
Definition: sysUtil.py:22
MonitorElement * TauSpinEffectsZ_X
Definition: TauValidation.h:92
edm::ESHandle< HepPDT::ParticleDataTable > fPDGTable
PDT table.
Definition: TauValidation.h:89
virtual double pz() const
z coordinate of momentum vector
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
int weight
Definition: histoStyle.py:50
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
virtual double py() const
y coordinate of momentum vector
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 354 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().

354  {
355  int channel = undetermined;
356  if(tau->status() == 1) channel = stable;
357  int allCount = 0,
358  eCount = 0,
359  muCount = 0,
360  pi0Count = 0,
361  piCount = 0,
362  rhoCount = 0,
363  a1Count = 0,
364  KCount = 0,
365  KstarCount = 0;
366 
367  countParticles(tau,allCount,eCount,muCount,pi0Count,piCount,rhoCount,a1Count,KCount,KstarCount);
368 
369  // resonances
370  if(KCount >= 1) channel = K;
371  if(KstarCount >= 1) channel = Kstar;
372  if(a1Count >= 1) channel = a1;
373  if(rhoCount >= 1) channel = rho;
374  if(channel!=undetermined && weight!=0.0) TauDecayChannels->Fill(channel,weight);
375 
376  // final state products
377  if(piCount == 1 && pi0Count == 0) channel = pi;
378  if(piCount == 1 && pi0Count == 1) channel = pi1pi0;
379  if(piCount == 1 && pi0Count > 1) channel = pinpi0;
380  if(piCount == 3 && pi0Count == 0) channel = tripi;
381  if(piCount == 3 && pi0Count > 0) channel = tripinpi0;
382  if(eCount == 1) channel = electron;
383  if(muCount == 1) channel = muon;
384  if(weight!=0.0) TauDecayChannels->Fill(channel,weight);
385  return channel;
386 }
virtual int status() const
status word
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 weight
Definition: histoStyle.py:50
int TauValidation::tauMother ( const reco::GenParticle tau,
double  weight 
)
private

Definition at line 334 of file TauValidation.cc.

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

Referenced by analyze().

334  {
335  if(abs(tau->pdgId()) != 15 ) return -3;
336  int mother_pid = findMother(tau);
337  if(mother_pid == -2) return -2;
338  int label = other;
339  if(abs(mother_pid) == 24) label = W;
340  if(abs(mother_pid) == 23) label = Z;
341  if(abs(mother_pid) == 22) label = gamma;
342  if(abs(mother_pid) == 25) label = HSM;
343  if(abs(mother_pid) == 35) label = H0;
344  if(abs(mother_pid) == 36) label = A0;
345  if(abs(mother_pid) == 37) label = Hpm;
346  int mother_shortpid=(abs(mother_pid)%10000);
347  if(mother_shortpid>500 && mother_shortpid<600 )label = B;
348  if(mother_shortpid>400 && mother_shortpid<500)label = D;
349  TauMothers->Fill(label,weight);
350  if(label==B || label == D || label == other) return -1;
351  return mother_pid;
352 }
virtual int pdgId() const
PDG identifier.
int findMother(const reco::GenParticle *)
MonitorElement * TauMothers
Definition: TauValidation.h:92
void Fill(long long x)
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
int weight
Definition: histoStyle.py:50
int TauValidation::tauProngs ( const reco::GenParticle ,
double  weight 
)
private
double TauValidation::visibleTauEnergy ( const reco::GenParticle tau)
private

Definition at line 699 of file TauValidation.cc.

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

699  {
700  TLorentzVector p4(tau->px(),tau->py(),tau->pz(),tau->energy());
701  for(unsigned int i = 0; i <tau->numberOfDaughters(); i++){
702  const reco::GenParticle *dau=static_cast<const reco::GenParticle*>(tau->daughter(i));
703  int pid = dau->pdgId();
704  if(abs(pid) == 15) return visibleTauEnergy(dau);
705  if(abs(pid) == 12 || abs(pid) == 14 || abs(pid) == 16) {
706  p4-=TLorentzVector(dau->px(),dau->py(),dau->pz(),dau->energy());
707  }
708  }
709  return p4.E();
710 }
int i
Definition: DBlmapReader.cc:9
virtual int pdgId() const
PDG identifier.
virtual double energy() const
energy
double p4[4]
Definition: TauolaWrapper.h:92
virtual size_t numberOfDaughters() const
number of daughters
virtual const Candidate * daughter(size_type) const
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
double visibleTauEnergy(const reco::GenParticle *)
virtual double px() const
x coordinate of momentum vector
tuple pid
Definition: sysUtil.py:22
virtual double pz() const
z coordinate of momentum vector
virtual double py() const
y coordinate of momentum vector
double TauValidation::Zstoa ( double  zs)
private

Definition at line 669 of file TauValidation.cc.

References a, and mathSSE::sqrt().

Referenced by spinEffectsZH().

669  {
670  double a=1-sqrt(fabs(1.0-2*fabs(zs)));
671  if(zs<0){
672  a*=-1.0;
673  }
674  return a;
675 }
T sqrt(T t)
Definition: SSEVec.h:48
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().