CMS 3D CMS Logo

CentralityDQM.cc
Go to the documentation of this file.
2 
3 #include <memory>
4 
5 // DQM
8 
9 // Framework
16 
17 // Centrality
19 
20 using namespace edm;
21 using namespace reco;
22 using namespace hi;
23 
24 //
25 // -- Constructor
26 //
28  edm::LogInfo("CentralityDQM") << " Starting CentralityDQM "
29  << "\n";
30 
31  centralityTag_ = ps.getParameter<InputTag>("centralitycollection");
32  centralityToken = consumes<reco::Centrality>(centralityTag_);
33 
34  centralityBinTag_ = (ps.getParameter<edm::InputTag>("centralitybincollection"));
35  centralityBinToken = consumes<int>(centralityBinTag_);
36 
37  vertexTag_ = ps.getParameter<InputTag>("vertexcollection");
38  vertexToken = consumes<std::vector<reco::Vertex> >(vertexTag_);
39 
40  eventplaneTag_ = ps.getParameter<InputTag>("eventplanecollection");
41  eventplaneToken = consumes<reco::EvtPlaneCollection>(eventplaneTag_);
42 
43  // just to initialize
44 }
45 
46 //
47 // -- Destructor
48 //
50  edm::LogInfo("CentralityDQM") << " Deleting CentralityDQM "
51  << "\n";
52 }
53 
54 //
55 // -- Book histograms
56 //
58  // void CentralityDQM::bookHistograms(DQMStore* bei){
59 
60  bei.setCurrentFolder("Physics/Centrality/");
61 
62  h_hiNpix = bei.book1D("h_hiNpix", "h_hiNpix", 750, 0, 75000);
63  h_hiNpixelTracks = bei.book1D("h_hiNpixelTracks", "hiNpixelTracks", 500, 0, 5000);
64  h_hiNtracks = bei.book1D("h_hiNtracks", "h_hiNtracks", 500, 0, 5000);
65  h_hiNtracksPtCut = bei.book1D("h_hiNtracksPtCut", "h_hiNtracksPtCut", 500, 0, 5000);
66  h_hiNtracksEtaCut = bei.book1D("h_hiNtracksEtaCut", "h_hiNtracksEtaCut", 500, 0, 5000);
67  h_hiNtracksEtaPtCut = bei.book1D("h_hiNtracksEtaPtCut", "h_hiNtracksEtaPtCut", 500, 0, 5000);
68 
69  h_hiHF = bei.book1D("h_hiHF", "h_hiHF", 900, 0, 9000);
70  h_hiHFplus = bei.book1D("h_hiHFplus", "h_hiHFplus", 900, 0, 9000);
71  h_hiHFminus = bei.book1D("h_hiHFminus", "h_hiHFminus", 900, 0, 9000);
72  h_hiHFplusEta4 = bei.book1D("h_hiHFplusEta4", "h_hiHFplusEta4", 900, 0, 9000);
73  h_hiHFminusEta4 = bei.book1D("h_hiHFminusEta4", "h_hiHFminusEta4", 900, 0, 9000);
74 
75  h_hiHFhit = bei.book1D("h_hiHFhit", "h_hiHFhit", 3000, 0, 300000);
76  h_hiHFhitPlus = bei.book1D("h_hiHFhitPlus", "h_hiHFhitPlus", 2000, 0, 200000);
77  h_hiHFhitMinus = bei.book1D("h_hiHFhitMinus", "h_hiHFhitMinus", 2000, 0, 200000);
78 
79  h_hiEB = bei.book1D("h_hiEB", "h_hiEB", 600, 0, 6000);
80  h_hiET = bei.book1D("h_hiET", "h_hiET", 600, 0, 6000);
81  h_hiEE = bei.book1D("h_hiEE", "h_hiEE", 600, 0, 6000);
82  h_hiEEplus = bei.book1D("h_hiEEplus", "h_hiEEplus", 600, 0, 6000);
83  h_hiEEminus = bei.book1D("h_hiEEminus", "h_hiEEminus", 600, 0, 6000);
84  h_hiZDC = bei.book1D("h_hiZDC", "h_hiZDC", 600, 0, 6000);
85  h_hiZDCplus = bei.book1D("h_hiZDCplus", "h_hiZDCplus", 600, 0, 6000);
86  h_hiZDCminus = bei.book1D("h_hiZDCminus", "h_hiZDCminus", 600, 0, 6000);
87 
88  h_vertex_x = bei.book1D("h_vertex_x", "h_vertex_x", 400, -4, 4);
89  h_vertex_y = bei.book1D("h_vertex_y", "h_vertex_y", 400, -4, 4);
90  h_vertex_z = bei.book1D("h_vertex_z", "h_vertex_z", 400, -40, 40);
91 
92  h_cent_bin = bei.book1D("h_cent_bin", "h_cent_bin", 200, 0, 200);
93 
94  Double_t psirange = 4;
95  bei.setCurrentFolder("Physics/Centrality/EventPlane/");
96  h_ep_HFm2 = bei.book1D("h_ep_HFm2", "h_ep_HFm2", 800, -psirange, psirange);
97  h_ep_HFp2 = bei.book1D("h_ep_HFp2", "h_ep_HFp2", 800, -psirange, psirange);
98  h_ep_trackmid2 = bei.book1D("h_ep_trackmid2", "h_ep_trackmid2", 800, -psirange, psirange);
99  h_ep_trackm2 = bei.book1D("h_ep_trackm2", "h_ep_trackm2", 800, -psirange, psirange);
100  h_ep_trackp2 = bei.book1D("h_ep_trackp2", "h_ep_trackp2", 800, -psirange, psirange);
101  h_ep_HFm3 = bei.book1D("h_ep_HFm3", "h_ep_HFm3", 800, -psirange, psirange);
102  h_ep_HFp3 = bei.book1D("h_ep_HFp3", "h_ep_HFp3", 800, -psirange, psirange);
103  h_ep_trackmid3 = bei.book1D("h_ep_trackmid3", "h_ep_trackmid3", 800, -psirange, psirange);
104 }
105 
106 //
107 // -- Analyze
108 //
110  using namespace edm;
112  iEvent.getByToken(centralityToken, cent); //_centralitytag comes from the cfg
113 
114  edm::Handle<int> cbin;
115  iEvent.getByToken(centralityBinToken, cbin);
116 
117  // as an inputTag and is
118  //"hiCentrality"
120  iEvent.getByToken(eventplaneToken, ep);
121 
122  if (cent.isValid()) {
123  int hibin = -999;
124  if (cbin.isValid())
125  hibin = *cbin;
126 
127  // std::cout<< " ------------------------------------- " << hibin << std::endl;
128 
129  h_cent_bin->Fill(hibin);
130  h_hiNpix->Fill(cent->multiplicityPixel());
131  h_hiNpixelTracks->Fill(cent->NpixelTracks());
132  h_hiNtracks->Fill(cent->Ntracks()); //
133 
134  h_hiNtracksPtCut->Fill(cent->NtracksPtCut());
135  h_hiNtracksEtaCut->Fill(cent->NtracksEtaCut());
136  h_hiNtracksEtaPtCut->Fill(cent->NtracksEtaPtCut());
137 
138  h_hiHF->Fill(cent->EtHFtowerSum());
139  h_hiHFplus->Fill(cent->EtHFtowerSumPlus());
140  h_hiHFminus->Fill(cent->EtHFtowerSumMinus());
141  h_hiHFplusEta4->Fill(cent->EtHFtruncatedPlus());
142  h_hiHFminusEta4->Fill(cent->EtHFtruncatedMinus());
143 
144  h_hiHFhit->Fill(cent->EtHFhitSum());
145  h_hiHFhitPlus->Fill(cent->EtHFhitSumPlus());
146  h_hiHFhitMinus->Fill(cent->EtHFhitSumMinus());
147 
148  h_hiZDC->Fill(cent->zdcSum());
149  h_hiZDCplus->Fill(cent->zdcSumPlus());
150  h_hiZDCminus->Fill(cent->zdcSumMinus());
151 
152  h_hiEEplus->Fill(cent->EtEESumPlus());
153  h_hiEEminus->Fill(cent->EtEESumMinus());
154  h_hiEE->Fill(cent->EtEESum());
155  h_hiEB->Fill(cent->EtEBSum());
156  h_hiET->Fill(cent->EtMidRapiditySum());
157 
159  iEvent.getByToken(vertexToken, vertex);
160  h_vertex_x->Fill(vertex->begin()->x());
161  h_vertex_y->Fill(vertex->begin()->y());
162  h_vertex_z->Fill(vertex->begin()->z());
163  }
164 
165  if (ep.isValid()) {
166  EvtPlaneCollection::const_iterator rp = ep->begin();
167 
168  h_ep_HFm2->Fill(rp[HFm2].angle(0));
169  h_ep_HFp2->Fill(rp[HFp2].angle(0));
170  h_ep_trackmid2->Fill(rp[trackmid2].angle(0));
171  h_ep_trackm2->Fill(rp[trackm2].angle(0));
172  h_ep_trackp2->Fill(rp[trackp2].angle(0));
173 
174  h_ep_HFm3->Fill(rp[HFm3].angle(0));
175  h_ep_HFp3->Fill(rp[HFp3].angle(0));
176  h_ep_trackmid3->Fill(rp[trackmid3].angle(0));
177  }
178 }
~CentralityDQM() override
double zdcSum() const
Definition: Centrality.h:54
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
double EtHFtruncatedPlus() const
Definition: Centrality.h:31
double NtracksEtaPtCut() const
Definition: Centrality.h:49
double NtracksEtaCut() const
Definition: Centrality.h:48
void bookHistograms(DQMStore::IBooker &bei, edm::Run const &, edm::EventSetup const &) override
double EtHFtowerSum() const
Definition: Centrality.h:24
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:36
CentralityDQM(const edm::ParameterSet &ps)
double zdcSumMinus() const
Definition: Centrality.h:56
double EtHFhitSumMinus() const
Definition: Centrality.h:23
double multiplicityPixel() const
Definition: Centrality.h:43
int iEvent
Definition: GenABIO.cc:224
double Ntracks() const
Definition: Centrality.h:46
Definition: EPCuts.h:4
double EtEESumMinus() const
Definition: Centrality.h:35
double EtHFhitSumPlus() const
Definition: Centrality.h:22
double NtracksPtCut() const
Definition: Centrality.h:47
double EtHFtowerSumMinus() const
Definition: Centrality.h:26
double EtEESum() const
Definition: Centrality.h:33
void analyze(edm::Event const &e, edm::EventSetup const &eSetup) override
double EtEBSum() const
Definition: Centrality.h:39
double EtHFhitSum() const
Definition: Centrality.h:21
Log< level::Info, false > LogInfo
double EtMidRapiditySum() const
Definition: Centrality.h:57
bool isValid() const
Definition: HandleBase.h:70
double EtEESumPlus() const
Definition: Centrality.h:34
fixed size matrix
HLT enums.
double EtHFtowerSumPlus() const
Definition: Centrality.h:25
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
double NpixelTracks() const
Definition: Centrality.h:50
Definition: Run.h:45
double zdcSumPlus() const
Definition: Centrality.h:55
double EtHFtruncatedMinus() const
Definition: Centrality.h:32
T angle(T x1, T y1, T z1, T x2, T y2, T z2)
Definition: angle.h:11