78 GenPlane(
string name,
double etaminval1,
double etamaxval1,
double etaminval2,
double etamaxval2,
int orderval) {
90 order = (double)orderval;
94 if ((eta >= etamin1 && eta < etamax1) || (etamin2 != etamax2 && eta >= etamin2 && eta < etamax2)) {
103 sumPtOrEt2 += PtOrEt * PtOrEt;
123 svNoWgt = sumsinNoWgt;
124 cvNoWgt = sumcosNoWgt;
128 PtOrEt2 = sumPtOrEt2;
130 double q = sv * sv + cv *
cv;
132 ang = atan2(sv, cv) /
order;
224 : centralityVariable_(iConfig.getParameter<
std::
string>(
"centralityVariable")),
225 centralityBinTag_(iConfig.getParameter<
edm::
InputTag>(
"centralityBinTag")),
226 vertexTag_(iConfig.getParameter<
edm::
InputTag>(
"vertexTag")),
227 caloTag_(iConfig.getParameter<
edm::
InputTag>(
"caloTag")),
228 castorTag_(iConfig.getParameter<
edm::
InputTag>(
"castorTag")),
229 trackTag_(iConfig.getParameter<
edm::
InputTag>(
"trackTag")),
230 loadDB_(iConfig.getParameter<
bool>(
"loadDB")),
231 minet_(iConfig.getParameter<double>(
"minet")),
232 maxet_(iConfig.getParameter<double>(
"maxet")),
233 minpt_(iConfig.getParameter<double>(
"minpt")),
234 maxpt_(iConfig.getParameter<double>(
"maxpt")),
235 minvtx_(iConfig.getParameter<double>(
"minvtx")),
236 maxvtx_(iConfig.getParameter<double>(
"maxvtx")),
237 dzerr_(iConfig.getParameter<double>(
"dzerr")),
238 chi2_(iConfig.getParameter<double>(
"chi2")),
239 FlatOrder_(iConfig.getParameter<
int>(
"FlatOrder")),
240 NumFlatBins_(iConfig.getParameter<
int>(
"NumFlatBins")),
241 caloCentRef_(iConfig.getParameter<double>(
"caloCentRef")),
242 caloCentRefWidth_(iConfig.getParameter<double>(
"caloCentRefWidth")),
243 CentBinCompression_(iConfig.getParameter<
int>(
"CentBinCompression")) {
246 if (iConfig.
exists(
"nonDefaultGlauberModel")) {
261 produces<reco::EvtPlaneCollection>();
287 using namespace reco;
302 if (minbin > 0 && maxbin >= minbin) {
342 vs_sell = vertices3->size();
345 vzr_sell = vertices3->begin()->z();
351 if (vzr_sell < minvtx_ or vzr_sell >
maxvtx_)
356 double tower_eta, tower_phi;
357 double tower_energyet, tower_energyet_e, tower_energyet_h;
363 tower_eta =
j->eta();
364 tower_phi =
j->phi();
365 tower_energyet_e =
j->emEt();
366 tower_energyet_h =
j->hadEt();
367 tower_energyet = tower_energyet_e + tower_energyet_h;
375 if (tower_energyet < minet)
377 if (tower_energyet > maxet)
380 double w = tower_energyet;
385 w =
flat[
i]->
getW(tower_energyet, vzr_sell, bin);
403 tower_eta =
j->eta();
404 tower_phi =
j->phi();
405 tower_energyet =
j->et();
414 if (tower_energyet < minet)
416 if (tower_energyet > maxet)
418 double w = tower_energyet;
421 w =
flat[
i]->
getW(tower_energyet, vzr_sell, bin);
438 double vzErr2 = 0.0, vxyErr = 0.0;
441 vtxPoint =
vertex_->begin()->position();
442 vzErr2 = (
vertex_->begin()->zError()) * (
vertex_->begin()->zError());
452 if (
j->numberOfValidHits() < 7)
456 double d0 = 0.0,
dz = 0.0, d0sigma = 0.0, dzsigma = 0.0;
457 d0 = -1. *
j->dxy(vtxPoint);
458 dz =
j->dz(vtxPoint);
459 d0sigma =
sqrt(
j->d0Error() *
j->d0Error() + vxyErr);
460 dzsigma =
sqrt(
j->dzError() *
j->dzError() + vzErr2);
468 if (
j->normalizedChi2() >
chi2_)
474 if (fabs(
dz / dzsigma) > 3)
476 if (fabs(d0 / d0sigma) > 3)
479 if (
j->ptError() /
j->pt() > 0.1)
482 if (
j->numberOfValidHits() < 12)
486 track_eta =
j->eta();
487 track_phi =
j->phi();
496 if (track_pt < minpt)
498 if (track_pt > maxpt)
506 w =
flat[
i]->
getW(track_pt, vzr_sell, bin);
518 auto evtplaneOutput = std::make_unique<EvtPlaneCollection>();
533 rp[
i]->
getAngle(ang, sv, cv, svNoWgt, cvNoWgt, wv, wv2, pe, pe2, epmult);
534 evtplaneOutput->push_back(
EvtPlane(
i, 0, ang, sv, cv, wv, wv2, pe, pe2, epmult));
535 evtplaneOutput->back().addLevel(3, 0., svNoWgt, cvNoWgt);
void init(int order, int nbins, std::string tag, int vord)
edm::InputTag centralityBinTag_
std::string centralityLabel_
T getParameter(std::string const &) const
edm::Handle< CaloTowerCollection > caloCollection_
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
std::vector< CBin > m_table
common ppss p3p6s2 common epss epspn46 common const1 w2
edm::Handle< reco::TrackCollection > trackCollection_
std::string centralityMC_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
edm::ESWatcher< HeavyIonRcd > hiWatcher
Sin< T >::type sin(const T &t)
std::vector< CaloTower >::const_iterator const_iterator
bool exists(std::string const ¶meterName) const
checks if a parameter exists
void setCaloCentRefBins(const int caloCentRefMinBin, const int caloCentRefMaxBin)
std::vector< Vertex > VertexCollection
collection of Vertex objects
edm::EDGetTokenT< int > centralityBinToken
edm::EDGetTokenT< std::vector< reco::CastorTower > > castorToken
const std::string EPNames[]
const double maxTransverse[]
void produce(edm::Event &, const edm::EventSetup &) override
double getEtScale(double vtx, int centbin) const
edm::ESWatcher< HeavyIonRPRcd > hirpWatcher
#define DEFINE_FWK_MODULE(type)
const std::string MomConsWeight[]
GenPlane * rp[NumEPNames]
Cos< T >::type cos(const T &t)
HiEvtPlaneFlatten * flat[NumEPNames]
void addParticle(double w, double PtOrEt, double s, double c, double eta)
edm::EDGetTokenT< std::vector< reco::Vertex > > vertexToken
GenPlane(string name, double etaminval1, double etamaxval1, double etaminval2, double etamaxval2, int orderval)
EvtPlaneProducer(const edm::ParameterSet &)
edm::EDGetTokenT< reco::TrackCollection > trackToken
edm::Handle< std::vector< reco::CastorTower > > castorCollection_
std::string centralityVariable_
double getW(double pt, double vtx, int centbin) const
T const * product() const
XYZPointD XYZPoint
point in space with cartesian internal representation
bool accepted(std::vector< std::string_view > const &, std::string_view)
bool check(const edm::EventSetup &iSetup)
~EvtPlaneProducer() override
bool isPixel(HitType hitType)
static const int NumEPNames
edm::EDGetTokenT< CaloTowerCollection > caloToken
double getAngle(double &ang, double &sv, double &cv, double &svNoWgt, double &cvNoWgt, double &w, double &w2, double &PtOrEt, double &PtOrEt2, uint &epmult)
void reset(double vett[256])
edm::Handle< std::vector< reco::Vertex > > vertex_
const double minTransverse[]