82 static constexpr
int kMaxEvtPlane = 29;
99 double eventPlane2 = -100;
100 double eventPlane3 = -100;
102 constexpr
int nParamVals = 9;
103 auto rhoFlowFitParamsOut = std::make_unique<std::vector<double>>(nParamVals, 1
e-6);
105 rhoFlowFitParamsOut->at(0) = 0;
106 rhoFlowFitParamsOut->at(1) = 0;
107 rhoFlowFitParamsOut->at(2) = 0;
108 rhoFlowFitParamsOut->at(3) = 0;
109 rhoFlowFitParamsOut->at(4) = 0;
111 double eventPlane2Cos = 0;
112 double eventPlane2Sin = 0;
114 double eventPlane3Cos = 0;
115 double eventPlane3Sin = 0;
117 std::vector<bool> pfcuts(pfCands.size(),
false);
119 for (
auto const& pfCandidate : pfCands) {
121 if (pfCandidate.particleId() != 1 ||
std::abs(pfCandidate.eta()) > 1.0 || pfCandidate.pt() < .3 ||
122 pfCandidate.pt() > 3.) {
128 for (
auto const&
jet : *
jets) {
140 pfcuts[iCand] =
true;
143 eventPlane2Cos +=
std::cos(2 * pfCandidate.phi());
144 eventPlane2Sin +=
std::sin(2 * pfCandidate.phi());
146 eventPlane3Cos +=
std::cos(3 * pfCandidate.phi());
147 eventPlane3Sin +=
std::sin(3 * pfCandidate.phi());
152 eventPlane2 = std::atan2(eventPlane2Sin, eventPlane2Cos) / 2.;
153 eventPlane3 = std::atan2(eventPlane3Sin, eventPlane3Cos) / 3.;
158 int pfcuts_count = 0;
159 if (nFill >= 100 && eventPlane2 > -99) {
165 phi_h->SetDirectory(
nullptr);
166 for (
auto const& pfCandidate : pfCands) {
167 if (pfcuts.at(pfcuts_count))
168 phi_h->Fill(pfCandidate.phi());
185 rhoFlowFitParamsOut->at(0) =
flowFit_p_->GetParameter(0);
186 rhoFlowFitParamsOut->at(1) =
flowFit_p_->GetParameter(1);
187 rhoFlowFitParamsOut->at(2) =
flowFit_p_->GetParameter(2);
188 rhoFlowFitParamsOut->at(3) =
flowFit_p_->GetParameter(3);
189 rhoFlowFitParamsOut->at(4) =
flowFit_p_->GetParameter(4);
191 rhoFlowFitParamsOut->at(5) =
flowFit_p_->GetChisquare();
192 rhoFlowFitParamsOut->at(6) =
flowFit_p_->GetNDF();
194 rhoFlowFitParamsOut->at(7) =
lineFit_p_->GetChisquare();
195 rhoFlowFitParamsOut->at(8) =
lineFit_p_->GetNDF();
const edm::EDGetTokenT< reco::EvtPlaneCollection > evtPlaneToken_
Sin< T >::type sin(const T &t)
std::string to_string(const V &value)
const edm::EDGetTokenT< reco::PFCandidateCollection > pfCandsToken_
Cos< T >::type cos(const T &t)
Abs< T >::type abs(const T &t)
const bool doFreePlaneFit_
const edm::EDGetTokenT< reco::JetView > jetToken_
const bool doJettyExclusion_
static const int NumEPNames
std::unique_ptr< TF1 > lineFit_p_
std::unique_ptr< TF1 > flowFit_p_