9 #include "Math/Vector3D.h" 123 centralityVariable_ ( iConfig.getParameter<
std::
string>(
"centralityVariable")),
124 centralityBinTag_ ( iConfig.getParameter<
edm::InputTag>(
"centralityBinTag")),
125 centralityTag_ ( iConfig.getParameter<
edm::InputTag>(
"centralityTag")),
126 vertexTag_ ( iConfig.getParameter<
edm::InputTag>(
"vertexTag")),
127 inputPlanesTag_ ( iConfig.getParameter<
edm::InputTag>(
"inputPlanesTag")),
128 trackTag_ ( iConfig.getParameter<
edm::InputTag>(
"trackTag")),
129 FlatOrder_ ( iConfig.getParameter<
int>(
"FlatOrder")),
130 NumFlatBins_ ( iConfig.getParameter<
int>(
"NumFlatBins")),
131 caloCentRef_ ( iConfig.getParameter<double>(
"caloCentRef")),
132 caloCentRefWidth_ ( iConfig.getParameter<double>(
"caloCentRefWidth")),
133 CentBinCompression_ ( iConfig.getParameter<
int>(
"CentBinCompression")),
134 Noffmin_ ( iConfig.getParameter<
int>(
"Noffmin")),
135 Noffmax_ ( iConfig.getParameter<
int>(
"Noffmax")),
136 useOffsetPsi_ ( iConfig.getParameter<
bool>(
"useOffsetPsi"))
141 if(iConfig.
exists(
"nonDefaultGlauberModel")){
157 produces<reco::EvtPlaneCollection>();
189 using namespace reco;
209 if(minbin>0 && maxbin>=minbin) {
235 int Noff = centrality_->
Ntracks();
248 vs_sell = vertices3->size();
250 vzr_sell = vertices3->begin()->z();
266 auto evtplaneOutput = std::make_unique<EvtPlaneCollection>();
272 for (EvtPlaneCollection::const_iterator rp = evtPlanes_->begin();rp !=evtPlanes_->end(); rp++) {
273 double psiOffset = rp->
angle(0);
274 double s = rp->sumSin(0);
275 double c = rp->sumCos(0);
286 ep[indx]=
new EvtPlane(indx, 2, psiFlat, soff, coff,rp->sumw(), rp->sumw2(), rp->sumPtOrEt(), rp->sumPtOrEt2(),
m);
288 ep[indx]->addLevel(3,0., rp->sumSin(3), rp->sumCos(3));
289 if(
useOffsetPsi_) ep[indx]->addLevel(1, psiOffset, soff, coff);
294 if(ep[
i]!=
nullptr) evtplaneOutput->push_back(*ep[
i]);
298 for(
int i = 0;
i<indx;
i++)
delete ep[
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
bin
set the eta bin as selection string.
std::string centralityLabel_
float angle(int level=2) const
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