9 #include "Math/Vector3D.h" 121 : centralityVariable_(iConfig.getParameter<
std::
string>(
"centralityVariable")),
122 centralityBinTag_(iConfig.getParameter<
edm::
InputTag>(
"centralityBinTag")),
123 centralityTag_(iConfig.getParameter<
edm::
InputTag>(
"centralityTag")),
124 vertexTag_(iConfig.getParameter<
edm::
InputTag>(
"vertexTag")),
125 inputPlanesTag_(iConfig.getParameter<
edm::
InputTag>(
"inputPlanesTag")),
126 trackTag_(iConfig.getParameter<
edm::
InputTag>(
"trackTag")),
127 FlatOrder_(iConfig.getParameter<
int>(
"FlatOrder")),
128 NumFlatBins_(iConfig.getParameter<
int>(
"NumFlatBins")),
129 caloCentRef_(iConfig.getParameter<double>(
"caloCentRef")),
130 caloCentRefWidth_(iConfig.getParameter<double>(
"caloCentRefWidth")),
131 CentBinCompression_(iConfig.getParameter<
int>(
"CentBinCompression")),
132 Noffmin_(iConfig.getParameter<
int>(
"Noffmin")),
133 Noffmax_(iConfig.getParameter<
int>(
"Noffmax")),
134 useOffsetPsi_(iConfig.getParameter<
bool>(
"useOffsetPsi")) {
138 if (iConfig.
exists(
"nonDefaultGlauberModel")) {
154 produces<reco::EvtPlaneCollection>();
178 using namespace reco;
197 if (minbin > 0 && maxbin >= minbin) {
225 int Noff = centrality_->
Ntracks();
238 vs_sell = vertices3->size();
240 vzr_sell = vertices3->begin()->z();
256 auto evtplaneOutput = std::make_unique<EvtPlaneCollection>();
262 for (EvtPlaneCollection::const_iterator rp = evtPlanes_->begin(); rp != evtPlanes_->end(); rp++) {
263 double psiOffset = rp->angle(0);
264 double s = rp->sumSin(0);
265 double c = rp->sumCos(0);
275 double psiFlat =
flat[indx]->
getFlatPsi(psiOffset, vzr_sell, bin);
277 new EvtPlane(indx, 2, psiFlat, soff, coff, rp->sumw(), rp->sumw2(), rp->sumPtOrEt(), rp->sumPtOrEt2(),
m);
279 ep[indx]->addLevel(3, 0., rp->sumSin(3), rp->sumCos(3));
281 ep[indx]->addLevel(1, psiOffset, soff, coff);
286 if (ep[
i] !=
nullptr)
287 evtplaneOutput->push_back(*ep[
i]);
290 for (
int i = 0;
i < indx;
i++)
void init(int order, int nbins, std::string tag, int vord)
void addLevel(int level, double ang, double sumsin, double sumcos)
T getParameter(std::string const &) const
edm::InputTag centralityBinTag_
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
std::vector< CBin > m_table
std::vector< TrackingParticle > TrackingParticleCollection
std::string centralityVariable_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
edm::EDGetTokenT< reco::Centrality > centralityToken
edm::ESWatcher< HeavyIonRcd > hiWatcher
double getSoffset(double s, double vtx, int centbin) const
double getOffsetPsi(double s, double c) const
bool exists(std::string const ¶meterName) const
checks if a parameter exists
TrackingParticleRefVector::iterator tp_iterator
~HiEvtPlaneFlatProducer() override
void setCaloCentRefBins(const int caloCentRefMinBin, const int caloCentRefMaxBin)
std::vector< Vertex > VertexCollection
collection of Vertex objects
HiEvtPlaneFlatten * flat[NumEPNames]
const std::string EPNames[]
edm::InputTag inputPlanesTag_
#define DEFINE_FWK_MODULE(type)
void produce(edm::Event &, const edm::EventSetup &) override
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
edm::EDGetTokenT< std::vector< reco::Vertex > > vertexToken
std::string centralityMC_
edm::EDGetTokenT< reco::TrackCollection > trackToken
double getCoffset(double c, double vtx, int centbin) const
double getFlatPsi(double psi, double vtx, int centbin) const
std::string centralityLabel_
T const * product() const
HiEvtPlaneFlatProducer(const edm::ParameterSet &)
bool check(const edm::EventSetup &iSetup)
edm::Handle< reco::TrackCollection > trackCollection_
edm::ESWatcher< HeavyIonRPRcd > hirpWatcher
edm::InputTag centralityTag_
edm::EDGetTokenT< int > centralityBinToken
edm::EDGetTokenT< reco::EvtPlaneCollection > inputPlanesToken
static const int NumEPNames