CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
CentralityDQM.cc
Go to the documentation of this file.
2 
3 #include <memory>
4 
5 // DQM
9 
10 // Framework
17 
18 // Centrality
21 
22 using namespace edm;
23 using namespace reco;
24 using namespace hi;
25 
26 //
27 // -- Constructor
28 //
30 
31  edm::LogInfo("CentralityDQM") << " Starting CentralityDQM "
32  << "\n";
33 
34  centralityTag_ = ps.getParameter<InputTag>("centralitycollection");
35  centralityToken = consumes<reco::Centrality>(centralityTag_);
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  edm::EventSetup const&) {
59  // void CentralityDQM::bookHistograms(DQMStore* bei){
60 
61  bei.setCurrentFolder("Physics/Centrality/");
62 
63  h_hiNpix = bei.book1D("h_hiNpix", "h_hiNpix", 750, 0, 75000);
64  h_hiNpixelTracks =
65  bei.book1D("h_hiNpixelTracks", "hiNpixelTracks", 500, 0, 5000);
66  h_hiNtracks = bei.book1D("h_hiNtracks", "h_hiNtracks", 500, 0, 5000);
67  h_hiNtracksPtCut =
68  bei.book1D("h_hiNtracksPtCut", "h_hiNtracksPtCut", 500, 0, 5000);
69  h_hiNtracksEtaCut =
70  bei.book1D("h_hiNtracksEtaCut", "h_hiNtracksEtaCut", 500, 0, 5000);
71  h_hiNtracksEtaPtCut =
72  bei.book1D("h_hiNtracksEtaPtCut", "h_hiNtracksEtaPtCut", 500, 0, 5000);
73 
74  h_hiHF = bei.book1D("h_hiHF", "h_hiHF", 900, 0, 9000);
75  h_hiHFplus = bei.book1D("h_hiHFplus", "h_hiHFplus", 900, 0, 9000);
76  h_hiHFminus = bei.book1D("h_hiHFminus", "h_hiHFminus", 900, 0, 9000);
77  h_hiHFplusEta4 = bei.book1D("h_hiHFplusEta4", "h_hiHFplusEta4", 900, 0, 9000);
78  h_hiHFminusEta4 =
79  bei.book1D("h_hiHFminusEta4", "h_hiHFminusEta4", 900, 0, 9000);
80 
81  h_hiHFhit = bei.book1D("h_hiHFhit", "h_hiHFhit", 3000, 0, 300000);
82  h_hiHFhitPlus = bei.book1D("h_hiHFhitPlus", "h_hiHFhitPlus", 2000, 0, 200000);
83  h_hiHFhitMinus =
84  bei.book1D("h_hiHFhitMinus", "h_hiHFhitMinus", 2000, 0, 200000);
85 
86  h_hiEB = bei.book1D("h_hiEB", "h_hiEB", 600, 0, 6000);
87  h_hiET = bei.book1D("h_hiET", "h_hiET", 600, 0, 6000);
88  h_hiEE = bei.book1D("h_hiEE", "h_hiEE", 600, 0, 6000);
89  h_hiEEplus = bei.book1D("h_hiEEplus", "h_hiEEplus", 600, 0, 6000);
90  h_hiEEminus = bei.book1D("h_hiEEminus", "h_hiEEminus", 600, 0, 6000);
91  h_hiZDC = bei.book1D("h_hiZDC", "h_hiZDC", 600, 0, 6000);
92  h_hiZDCplus = bei.book1D("h_hiZDCplus", "h_hiZDCplus", 600, 0, 6000);
93  h_hiZDCminus = bei.book1D("h_hiZDCminus", "h_hiZDCminus", 600, 0, 6000);
94 
95  h_vertex_x = bei.book1D("h_vertex_x", "h_vertex_x", 400, -4, 4);
96  h_vertex_y = bei.book1D("h_vertex_y", "h_vertex_y", 400, -4, 4);
97  h_vertex_z = bei.book1D("h_vertex_z", "h_vertex_z", 400, -40, 40);
98 
99  Double_t psirange = 4;
100  bei.setCurrentFolder("Physics/Centrality/EventPlane/");
101  h_ep_HFm1 = bei.book1D("h_ep_HFm1", "h_ep_HFm1", 800,-psirange,psirange);
102  h_ep_HFp1 = bei.book1D("h_ep_HFp1", "h_ep_HFp1", 800,-psirange,psirange);
103  h_ep_trackm1 = bei.book1D("h_ep_trackm1", "h_ep_trackm1", 800,-psirange,psirange);
104  h_ep_trackp1 = bei.book1D("h_ep_trackp1", "h_ep_trackp1", 800,-psirange,psirange);
105  h_ep_castor1 = bei.book1D("h_ep_castor1", "h_ep_castor1", 800,-psirange,psirange);
106  h_ep_HFm2 = bei.book1D("h_ep_HFm2", "h_ep_HFm2", 800,-psirange,psirange);
107  h_ep_HFp2 = bei.book1D("h_ep_HFp2", "h_ep_HFp2", 800,-psirange,psirange);
108  h_ep_trackmid2 = bei.book1D("h_ep_trackmid2", "h_ep_trackmid2", 800,-psirange,psirange);
109  h_ep_trackm2 = bei.book1D("h_ep_trackm2", "h_ep_trackm2", 800,-psirange,psirange);
110  h_ep_trackp2 = bei.book1D("h_ep_trackp2", "h_ep_trackp2", 800,-psirange,psirange);
111  h_ep_castor2 = bei.book1D("h_ep_castor2", "h_ep_castor2", 800,-psirange,psirange);
112  h_ep_HFm3 = bei.book1D("h_ep_HFm3", "h_ep_HFm3", 800,-psirange,psirange);
113  h_ep_HFp3 = bei.book1D("h_ep_HFp3", "h_ep_HFp3", 800,-psirange,psirange);
114  h_ep_trackmid3 = bei.book1D("h_ep_trackmid3", "h_ep_trackmid3", 800,-psirange,psirange);
115 
116 }
117 
118 //
119 // -- Analyze
120 //
122  const edm::EventSetup& iSetup) {
123 
124  using namespace edm;
126  iEvent.getByToken(centralityToken, cent); //_centralitytag comes from the cfg
127  // as an inputTag and is
128  //"hiCentrality"
130  iEvent.getByToken(eventplaneToken, ep);
131 
132  if (!cent.isValid()) return;
133 
134  h_hiNpix->Fill(cent->multiplicityPixel());
135  h_hiNpixelTracks->Fill(cent->NpixelTracks());
136  h_hiNtracks->Fill(cent->Ntracks()); //
137 
138  h_hiNtracksPtCut->Fill(cent->NtracksPtCut());
139  h_hiNtracksEtaCut->Fill(cent->NtracksEtaCut());
140  h_hiNtracksEtaPtCut->Fill(cent->NtracksEtaPtCut());
141 
142  h_hiHF->Fill(cent->EtHFtowerSum());
143  h_hiHFplus->Fill(cent->EtHFtowerSumPlus());
144  h_hiHFminus->Fill(cent->EtHFtowerSumMinus());
145  h_hiHFplusEta4->Fill(cent->EtHFtruncatedPlus());
146  h_hiHFminusEta4->Fill(cent->EtHFtruncatedMinus());
147 
148  h_hiHFhit->Fill(cent->EtHFhitSum());
149  h_hiHFhitPlus->Fill(cent->EtHFhitSumPlus());
150  h_hiHFhitMinus->Fill(cent->EtHFhitSumMinus());
151 
152  h_hiZDC->Fill(cent->zdcSum());
153  h_hiZDCplus->Fill(cent->zdcSumPlus());
154  h_hiZDCminus->Fill(cent->zdcSumMinus());
155 
156  h_hiEEplus->Fill(cent->EtEESumPlus());
157  h_hiEEminus->Fill(cent->EtEESumMinus());
158  h_hiEE->Fill(cent->EtEESum());
159  h_hiEB->Fill(cent->EtEBSum());
160  h_hiET->Fill(cent->EtMidRapiditySum());
161 
163  iEvent.getByToken(vertexToken, vertex);
164  h_vertex_x->Fill(vertex->begin()->x());
165  h_vertex_y->Fill(vertex->begin()->y());
166  h_vertex_z->Fill(vertex->begin()->z());
167 
168  EvtPlaneCollection::const_iterator rp = ep->begin();
169  h_ep_HFm1->Fill((rp+HFm1)->angle());
170  h_ep_HFp1->Fill((rp+HFp1)->angle());
171  h_ep_trackm1->Fill((rp+trackm1)->angle());
172  h_ep_trackp1->Fill((rp+trackp1)->angle());
173  h_ep_castor1->Fill((rp+Castor1)->angle());
174 
175  h_ep_HFm2->Fill((rp+HFm2)->angle());
176  h_ep_HFp2->Fill((rp+HFp2)->angle());
177  h_ep_trackmid2->Fill((rp+trackmid2)->angle());
178  h_ep_trackm2->Fill((rp+trackm2)->angle());
179  h_ep_trackp2->Fill((rp+trackp2)->angle());
180  h_ep_castor2->Fill((rp+Castor2)->angle());
181 
182  h_ep_HFm3->Fill((rp+HFm3)->angle());
183  h_ep_HFp3->Fill((rp+HFp3)->angle());
184  h_ep_trackmid3->Fill((rp+trackmid3)->angle());
185 
186 }
T getParameter(std::string const &) const
virtual void bookHistograms(DQMStore::IBooker &bei, edm::Run const &, edm::EventSetup const &) override
CentralityDQM(const edm::ParameterSet &ps)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:449
int iEvent
Definition: GenABIO.cc:230
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
virtual void analyze(edm::Event const &e, edm::EventSetup const &eSetup) override
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:274
virtual ~CentralityDQM()
Definition: Run.h:41
T angle(T x1, T y1, T z1, T x2, T y2, T z2)
Definition: angle.h:11