CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
TauValidation.h
Go to the documentation of this file.
1 #ifndef TauValidation_H
2 #define TauValidation_H
3 
4 /*class TauValidation
5  *
6  * Class to fill Event Generator dqm monitor elements; works on HepMCProduct
7  *
8  *
9  */
10 
11 // framework & common header files
12 
16 
21 
22 //DQM services
27 
29 
31 #include "TLorentzVector.h"
32 
34 
36 {
37  public:
38  // tau decays
39  enum {undetermined,
42  pi,
43  rho,
44  a1,
45  K,
52  // tau mother particles
53  enum {other,
54  B,
55  D,
57  Z,
58  W,
59  HSM,
60  H0,
61  A0,
62  Hpm};
63 
64  public:
65  explicit TauValidation(const edm::ParameterSet&);
66  virtual ~TauValidation();
67  virtual void bookHistograms(DQMStore::IBooker &i, edm::Run const &, edm::EventSetup const &) override;
68  virtual void dqmBeginRun(const edm::Run& r, const edm::EventSetup& c) override;
69  virtual void analyze(edm::Event const&, edm::EventSetup const&) override;
70  private:
72 
73  int tauMother(const HepMC::GenParticle*, double weight);
74  int tauProngs(const HepMC::GenParticle*, double weight);
75  int tauDecayChannel(const HepMC::GenParticle*, double weight=0.0);
76  int findMother(const HepMC::GenParticle*);
78  void rtau(const HepMC::GenParticle*,int,int, double weight);
79  void spinEffectsWHpm(const HepMC::GenParticle*,int,int,std::vector<HepMC::GenParticle*> &part,double weight);
80  void spinEffectsZH(const HepMC::GenParticle* boson, double weight);
81  double leadingPionMomentum(const HepMC::GenParticle*, double weight);
82  double visibleTauEnergy(const HepMC::GenParticle*);
83  TLorentzVector leadingPionP4(const HepMC::GenParticle*);
84  TLorentzVector motherP4(const HepMC::GenParticle*);
85  void photons(const HepMC::GenParticle*, double weight);
86  void findTauList(const HepMC::GenParticle* tau,std::vector<const HepMC::GenParticle*> &TauList);
87  void findFSRandBrem(const HepMC::GenParticle* p, bool doBrem, std::vector<const HepMC::GenParticle*> &ListofFSR,
88  std::vector<const HepMC::GenParticle*> &ListofBrem);
89  void FindPhotosFSR(const HepMC::GenParticle* p,std::vector<const HepMC::GenParticle*> &ListofFSR,double &BosonScale);
91  const std::vector<HepMC::GenParticle*> GetMothers(const HepMC::GenParticle* boson);
92  double Zstoa(double zs);
93 
95 
96  double tauEtCut;
97 
100 
103  *TauRtauW, *TauRtauHpm,
112  *LifeTime;
113 
114  unsigned int NJAKID;
116  std::vector<std::vector<MonitorElement *> > JAKInvMass;
117 
118  int zsbins;
119  double zsmin,zsmax;
120 
122 };
123 
124 #endif
125 
void findTauList(const HepMC::GenParticle *tau, std::vector< const HepMC::GenParticle * > &TauList)
MonitorElement * TauFSRPhotonsN
int i
Definition: DBlmapReader.cc:9
virtual ~TauValidation()
MonitorElement * TauSpinEffectsH_rhorhoAcoplanarityplus
MonitorElement * TauPhi
MonitorElement * TauSpinEffectsW_X
MonitorElement * TauSpinEffectsHpm_UpsilonA1
std::vector< std::vector< MonitorElement * > > JAKInvMass
MonitorElement * TauSpinEffectsZ_Xb
MonitorElement * nTaus
WeightManager wmanager_
Definition: TauValidation.h:71
MonitorElement * DecayLength
MonitorElement * TauRtauW
TauValidation(const edm::ParameterSet &)
MonitorElement * TauPt
MonitorElement * TauSpinEffectsH_MVis
void spinEffectsZH(const HepMC::GenParticle *boson, double weight)
MonitorElement * TauMothers
MonitorElement * TauSpinEffectsHpm_eX
MonitorElement * TauSpinEffectsW_muX
MonitorElement * TauBremPhotonsN
MonitorElement * JAKID
MonitorElement * TauSpinEffectsZ_Xf
int tauProngs(const HepMC::GenParticle *, double weight)
edm::EDGetTokenT< edm::HepMCProduct > hepmcCollectionToken_
MonitorElement * TauBremPhotonsPtSum
MonitorElement * TauSpinEffectsH_pipiAcoplanarity
MonitorElement * TauSpinEffectsHpm_UpsilonRho
MonitorElement * TauSpinEffectsZ_eX
int findMother(const HepMC::GenParticle *)
MonitorElement * TauProngs
int tauMother(const HepMC::GenParticle *, double weight)
int tauDecayChannel(const HepMC::GenParticle *, double weight=0.0)
virtual void dqmBeginRun(const edm::Run &r, const edm::EventSetup &c) override
MonitorElement * TauSpinEffectsH_pipiAcollinearityzoom
const std::vector< HepMC::GenParticle * > GetMothers(const HepMC::GenParticle *boson)
MonitorElement * TauSpinEffectsW_UpsilonRho
void photons(const HepMC::GenParticle *, double weight)
MonitorElement * TauSpinEffectsH_rhorhoAcoplanarityminus
virtual void analyze(edm::Event const &, edm::EventSetup const &) override
double leadingPionMomentum(const HepMC::GenParticle *, double weight)
MonitorElement * TauSpinEffectsH_Xf
MonitorElement * TauFSRPhotonsPt
MonitorElement * TauSpinEffectsZ_muX
MonitorElement * TauDecayChannels
edm::InputTag hepmcCollection_
Definition: TauValidation.h:94
MonitorElement * TauSpinEffectsH_Zs
MonitorElement * TauFSRPhotonsPtSum
double visibleTauEnergy(const HepMC::GenParticle *)
TLorentzVector leadingPionP4(const HepMC::GenParticle *)
bool isLastTauinChain(const HepMC::GenParticle *tau)
virtual void bookHistograms(DQMStore::IBooker &i, edm::Run const &, edm::EventSetup const &) override
MonitorElement * TauSpinEffectsZ_MVis
MonitorElement * TauSpinEffectsH_pipiAcollinearity
TLorentzVector motherP4(const HepMC::GenParticle *)
void rtau(const HepMC::GenParticle *, int, int, double weight)
part
Definition: HCALResponse.h:20
void FindPhotosFSR(const HepMC::GenParticle *p, std::vector< const HepMC::GenParticle * > &ListofFSR, double &BosonScale)
MonitorElement * TauSpinEffectsZ_X
edm::ESHandle< HepPDT::ParticleDataTable > fPDGTable
PDT table.
Definition: TauValidation.h:99
MonitorElement * TauSpinEffectsH_eX
MonitorElement * TauSpinEffectsW_eX
double Zstoa(double zs)
const HepMC::GenParticle * GetMother(const HepMC::GenParticle *tau)
void spinEffectsWHpm(const HepMC::GenParticle *, int, int, std::vector< HepMC::GenParticle * > &part, double weight)
MonitorElement * LifeTime
MonitorElement * TauSpinEffectsH_muX
MonitorElement * TauSpinEffectsW_UpsilonA1
MonitorElement * TauEta
void findFSRandBrem(const HepMC::GenParticle *p, bool doBrem, std::vector< const HepMC::GenParticle * > &ListofFSR, std::vector< const HepMC::GenParticle * > &ListofBrem)
unsigned int NJAKID
MonitorElement * TauSpinEffectsZ_Zs
MonitorElement * TauSpinEffectsHpm_X
int weight
Definition: histoStyle.py:50
MonitorElement * TauSpinEffectsHpm_muX
MonitorElement * TauSpinEffectsH_Xb
MonitorElement * nPrimeTaus
MonitorElement * TauBremPhotonsPt
MonitorElement * TauRtauHpm
Definition: Run.h:41
MonitorElement * TauSpinEffectsH_X