CMS 3D CMS Logo

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

#include <HiBasicGenTest.h>

Inheritance diagram for HiBasicGenTest:
edm::EDAnalyzer

Public Member Functions

virtual void analyze (const edm::Event &, const edm::EventSetup &)
 
virtual void beginJob ()
 
virtual void beginRun (const edm::Run &, const edm::EventSetup &)
 
virtual void endJob ()
 
virtual void endRun (const edm::Run &, const edm::EventSetup &)
 
 HiBasicGenTest (const edm::ParameterSet &)
 
virtual ~HiBasicGenTest ()
 
- Public Member Functions inherited from edm::EDAnalyzer
 EDAnalyzer ()
 
std::string workerType () const
 
virtual ~EDAnalyzer ()
 

Private Attributes

MonitorElementb [3]
 
DQMStoredbe
 
MonitorElementdnchdeta [3]
 
MonitorElementdnchdphi [3]
 
MonitorElementdnchdpt [3]
 
edm::ESHandle< ParticleDataTablepdt
 
MonitorElementrp
 

Additional Inherited Members

- Public Types inherited from edm::EDAnalyzer
typedef EDAnalyzer ModuleType
 
typedef WorkerT< EDAnalyzerWorkerType
 
- Static Public Member Functions inherited from edm::EDAnalyzer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 
- Protected Member Functions inherited from edm::EDAnalyzer
CurrentProcessingContext const * currentContext () const
 

Detailed Description

Definition at line 18 of file HiBasicGenTest.h.

Constructor & Destructor Documentation

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

Definition at line 17 of file HiBasicGenTest.cc.

References cppFunctionSkipper::operator.

HiBasicGenTest::~HiBasicGenTest ( )
virtual

Definition at line 23 of file HiBasicGenTest.cc.

23 {}

Member Function Documentation

void HiBasicGenTest::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
virtual

Implements edm::EDAnalyzer.

Definition at line 65 of file HiBasicGenTest.cc.

References b, begin, DeDxDiscriminatorTools::charge(), end, eta(), edm::Event::getByLabel(), AlCaHLTBitMon_ParallelJobs::p, phi, Pi, and pi.

66 {
67 
69  iEvent.getByLabel("generator",mc);
70  const HepMC::GenEvent *evt = mc->GetEvent();
71  const HepMC::HeavyIon *hi = evt->heavy_ion();
72 
73  double ip = hi->impact_parameter();
74  double phi0 = hi->event_plane_angle();
75 
76  // fill reaction plane distribution
77  rp->Fill(phi0);
78 
79  // if the event is in one of the centrality bins of interest fill hists
80  int cbin=-1;
81  if(ip < 5.045) cbin=0;
82  else if (ip < 7.145 && ip > 5.045) cbin=1;
83  else if (ip < 15.202 && ip > 14.283) cbin=2;
84  if(cbin<0) return;
85 
86  // fill impact parameter distributions
87  b[cbin]->Fill(ip);
88 
89  // loop over particles
90  HepMC::GenEvent::particle_const_iterator begin = evt->particles_begin();
91  HepMC::GenEvent::particle_const_iterator end = evt->particles_end();
92  for(HepMC::GenEvent::particle_const_iterator it = begin; it != end; ++it){
93 
94  // only fill hists for status=1 particles
95  if((*it)->status() != 1) continue;
96 
97  // only fill hists for charged particles
98  int pdg_id = (*it)->pdg_id();
99  const ParticleData * part = pdt->particle(pdg_id);
100  int charge = static_cast<int>(part->charge());
101  if(charge==0) continue;
102 
103  float eta = (*it)->momentum().eta();
104  float phi = (*it)->momentum().phi();
105  float pt = (*it)->momentum().perp();
106 
107  dnchdeta[cbin]->Fill(eta);
108  dnchdpt[cbin]->Fill(pt);
109 
110  double pi = TMath::Pi();
111  double p = phi-phi0;
112  if(p > pi) p = p - 2*pi;
113  if(p < -1*pi) p = p + 2*pi;
114  dnchdphi[cbin]->Fill(p);
115 
116  }
117 
118  return;
119 
120 }
const double Pi
MonitorElement * rp
MonitorElement * dnchdpt[3]
T eta() const
double charge(const std::vector< uint8_t > &Ampls)
edm::ESHandle< ParticleDataTable > pdt
void Fill(long long x)
MonitorElement * dnchdeta[3]
MonitorElement * dnchdphi[3]
MonitorElement * b[3]
#define end
Definition: vmac.h:38
HepPDT::ParticleData ParticleData
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:356
part
Definition: HCALResponse.h:21
#define begin
Definition: vmac.h:31
double pi
Definition: DDAxes.h:10
void HiBasicGenTest::beginJob ( void  )
virtual

Setting the DQM top directories

Booking the ME's

Reimplemented from edm::EDAnalyzer.

Definition at line 25 of file HiBasicGenTest.cc.

References b.

26 {
27  if(dbe){
29  dbe->setCurrentFolder("Generator/Particles");
30 
32  for(int ibin=0; ibin<3; ibin++) {
33  dnchdeta[ibin] = dbe->book1D(Form("dnchdeta%d",ibin), ";#eta;dN^{ch}/d#eta", 100, -6.0, 6.0);
34  dnchdpt[ibin] = dbe->book1D(Form("dnchdpt%d",ibin), ";p_{T};dN^{ch}/dp_{T}", 200, 0.0, 100.0);
35  b[ibin] = dbe->book1D(Form("b%d",ibin),";b[fm];events",100, 0.0, 20.0);
36  dnchdphi[ibin] = dbe->book1D(Form("dnchdphi%d",ibin),";#phi;dN^{ch}/d#phi",100, -3.2, 3.2);
37 
38  dbe->tag(dnchdeta[ibin]->getFullname(),1+ibin*4);
39  dbe->tag(dnchdpt[ibin]->getFullname(),2+ibin*4);
40  dbe->tag(b[ibin]->getFullname(),3+ibin*4);
41  dbe->tag(dnchdphi[ibin]->getFullname(),4+ibin*4);
42  }
43 
44  rp = dbe->book1D("phi0",";#phi_{RP};events",100,-3.2,3.2);
45  dbe->tag(rp->getFullname(),13);
46 
47 
48  }
49  return;
50 }
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:717
MonitorElement * rp
MonitorElement * dnchdpt[3]
void tag(MonitorElement *me, unsigned int myTag)
Definition: DQMStore.cc:1354
MonitorElement * dnchdeta[3]
MonitorElement * dnchdphi[3]
MonitorElement * b[3]
const std::string getFullname(void) const
get full name of ME including Pathname
DQMStore * dbe
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:429
void HiBasicGenTest::beginRun ( const edm::Run iRun,
const edm::EventSetup iSetup 
)
virtual

Reimplemented from edm::EDAnalyzer.

Definition at line 57 of file HiBasicGenTest.cc.

References edm::EventSetup::getData().

58 {
59  iSetup.getData(pdt);
60  return;
61 }
void getData(T &iHolder) const
Definition: EventSetup.h:67
edm::ESHandle< ParticleDataTable > pdt
void HiBasicGenTest::endJob ( void  )
virtual

Reimplemented from edm::EDAnalyzer.

Definition at line 52 of file HiBasicGenTest.cc.

52  {
53  // normalization of histograms can be done here (or in post-processor)
54  return;
55 }
void HiBasicGenTest::endRun ( const edm::Run iRun,
const edm::EventSetup iSetup 
)
virtual

Reimplemented from edm::EDAnalyzer.

Definition at line 63 of file HiBasicGenTest.cc.

63 {return;}

Member Data Documentation

MonitorElement* HiBasicGenTest::b[3]
private

Definition at line 35 of file HiBasicGenTest.h.

DQMStore* HiBasicGenTest::dbe
private

Definition at line 31 of file HiBasicGenTest.h.

MonitorElement* HiBasicGenTest::dnchdeta[3]
private

Definition at line 33 of file HiBasicGenTest.h.

MonitorElement* HiBasicGenTest::dnchdphi[3]
private

Definition at line 36 of file HiBasicGenTest.h.

MonitorElement* HiBasicGenTest::dnchdpt[3]
private

Definition at line 34 of file HiBasicGenTest.h.

edm::ESHandle< ParticleDataTable > HiBasicGenTest::pdt
private

Definition at line 39 of file HiBasicGenTest.h.

MonitorElement* HiBasicGenTest::rp
private

Definition at line 37 of file HiBasicGenTest.h.