#include <HiEvtPlaneFlatten/HiEvtPlaneFlatProducer/src/HiEvtPlaneFlatProducer.cc>
Public Member Functions | |
HiEvtPlaneFlatProducer (const edm::ParameterSet &) | |
~HiEvtPlaneFlatProducer () | |
Private Member Functions | |
virtual void | beginJob () |
virtual void | endJob () |
virtual void | produce (edm::Event &, const edm::EventSetup &) |
Private Attributes | |
edm::InputTag | centrality_ |
Double_t | epang [NumEPNames] |
HiEvtPlaneFlatten * | flat [NumEPNames] |
edm::InputTag | inputPlanes_ |
int | nRP |
RPFlatParams * | rpFlat |
bool | storeNames_ |
int | vs_sell |
edm::InputTag | vtxCollection_ |
float | vzErr_sell |
float | vzr_sell |
Description: [one line class summary]
Implementation: [Notes on implementation]
Definition at line 85 of file HiEvtPlaneFlatProducer.cc.
HiEvtPlaneFlatProducer::HiEvtPlaneFlatProducer | ( | const edm::ParameterSet & | iConfig | ) | [explicit] |
Definition at line 127 of file HiEvtPlaneFlatProducer.cc.
References hi::EPNames, hi::EPOrder, edm::ParameterSet::getParameter(), i, and hi::NumEPNames.
{ vtxCollection_ = iConfig.getParameter<edm::InputTag>("vtxCollection_"); inputPlanes_ = iConfig.getParameter<edm::InputTag>("inputPlanes_"); centrality_ = iConfig.getParameter<edm::InputTag>("centrality_"); storeNames_ = 1; //register your products produces<reco::EvtPlaneCollection>(); //now do what ever other initialization is needed Int_t FlatOrder = 21; for(int i = 0; i<NumEPNames; i++) { flat[i] = new HiEvtPlaneFlatten(); flat[i]->Init(FlatOrder,11,4,EPNames[i],EPOrder[i]); Double_t psirange = 4; if(EPOrder[i]==2 ) psirange = 2; if(EPOrder[i]==3 ) psirange = 1.5; if(EPOrder[i]==4 ) psirange = 1; if(EPOrder[i]==5) psirange = 0.8; if(EPOrder[i]==6) psirange = 0.6; } }
HiEvtPlaneFlatProducer::~HiEvtPlaneFlatProducer | ( | ) |
Definition at line 152 of file HiEvtPlaneFlatProducer.cc.
{ // do anything here that needs to be done at desctruction time // (e.g. close files, deallocate resources etc.) }
void HiEvtPlaneFlatProducer::beginJob | ( | void | ) | [private, virtual] |
void HiEvtPlaneFlatProducer::endJob | ( | void | ) | [private, virtual] |
void HiEvtPlaneFlatProducer::produce | ( | edm::Event & | iEvent, |
const edm::EventSetup & | iSetup | ||
) | [private, virtual] |
Implements edm::EDProducer.
Definition at line 167 of file HiEvtPlaneFlatProducer.cc.
References newFWLiteAna::bin, EcalCondTools::compare(), hi::EPNames, edm::EventSetup::get(), edm::Event::getByLabel(), i, j, reco::EvtPlane::label(), hi::NumEPNames, edm::Event::put(), dt_dqm_sourceclient_common_cff::reco, RPFlatParams::EP::RPNameIndx, RPFlatParams::EP::x, and RPFlatParams::EP::y.
{ using namespace edm; using namespace std; using namespace reco; // //Get Centrality // edm::Handle<int> ch; iEvent.getByLabel(centrality_,ch); int bin = *(ch.product()); // double centval = 2.5*bin+1.25; // //Get Vertex // edm::Handle<reco::VertexCollection> vertexCollection3; iEvent.getByLabel(vtxCollection_,vertexCollection3); const reco::VertexCollection * vertices3 = vertexCollection3.product(); vs_sell = vertices3->size(); if(vs_sell>0) { vzr_sell = vertices3->begin()->z(); vzErr_sell = vertices3->begin()->zError(); } else vzr_sell = -999.9; // //Get Flattening Parameters // edm::ESHandle<RPFlatParams> flatparmsDB_; iSetup.get<HeavyIonRPRcd>().get(flatparmsDB_); int flatTableSize = flatparmsDB_->m_table.size(); for(int i = 0; i<flatTableSize; i++) { const RPFlatParams::EP* thisBin = &(flatparmsDB_->m_table[i]); for(int j = 0; j<NumEPNames; j++) { int indx = thisBin->RPNameIndx[j]; if(indx>=0) { flat[indx]->SetXDB(i, thisBin->x[j]); flat[indx]->SetYDB(i, thisBin->y[j]); } } } // //Get Event Planes // Handle<reco::EvtPlaneCollection> evtPlanes; iEvent.getByLabel(inputPlanes_,evtPlanes); if(!evtPlanes.isValid()){ // cout << "Error! Can't get hiEvtPlane product!" << endl; return ; } double psiFull[NumEPNames]; for(int i = 0; i<NumEPNames; i++) { psiFull[i] = -10; } std::auto_ptr<EvtPlaneCollection> evtplaneOutput(new EvtPlaneCollection); EvtPlane * ep[NumEPNames]; for(int i = 0; i<NumEPNames; i++) { ep[i]=0; } for (EvtPlaneCollection::const_iterator rp = evtPlanes->begin();rp !=evtPlanes->end(); rp++) { if(rp->angle() > -5) { string baseName = rp->label(); for(int i = 0; i< NumEPNames; i++) { if(EPNames[i].compare(baseName)==0) { double psiFlat = flat[i]->GetFlatPsi(rp->angle(),vzr_sell,bin); epang[i]=psiFlat; if(EPNames[i].compare(rp->label())==0) { psiFull[i] = psiFlat; if(storeNames_) ep[i]= new EvtPlane(psiFlat, rp->sumSin(), rp->sumCos(),rp->label().data()); else ep[i]= new EvtPlane(psiFlat, rp->sumSin(), rp->sumCos(),""); } } } } } for(int i = 0; i< NumEPNames; i++) { if(ep[i]!=0) evtplaneOutput->push_back(*ep[i]); } iEvent.put(evtplaneOutput); storeNames_ = 0; }
Definition at line 99 of file HiEvtPlaneFlatProducer.cc.
Double_t HiEvtPlaneFlatProducer::epang[NumEPNames] [private] |
Definition at line 105 of file HiEvtPlaneFlatProducer.cc.
HiEvtPlaneFlatten* HiEvtPlaneFlatProducer::flat[NumEPNames] [private] |
Definition at line 106 of file HiEvtPlaneFlatProducer.cc.
Definition at line 98 of file HiEvtPlaneFlatProducer.cc.
int HiEvtPlaneFlatProducer::nRP [private] |
Definition at line 108 of file HiEvtPlaneFlatProducer.cc.
RPFlatParams* HiEvtPlaneFlatProducer::rpFlat [private] |
Definition at line 107 of file HiEvtPlaneFlatProducer.cc.
bool HiEvtPlaneFlatProducer::storeNames_ [private] |
Definition at line 109 of file HiEvtPlaneFlatProducer.cc.
int HiEvtPlaneFlatProducer::vs_sell [private] |
Definition at line 101 of file HiEvtPlaneFlatProducer.cc.
Definition at line 97 of file HiEvtPlaneFlatProducer.cc.
float HiEvtPlaneFlatProducer::vzErr_sell [private] |
Definition at line 103 of file HiEvtPlaneFlatProducer.cc.
float HiEvtPlaneFlatProducer::vzr_sell [private] |
Definition at line 102 of file HiEvtPlaneFlatProducer.cc.