41 #include "TLorentzVector.h"
268 name =
"EECLT BC energy";
272 name =
"EECLT BC number";
276 name =
"EECLT BC size";
280 name =
"EECLT BC energy map EE +";
281 meBCEneFwdMap_ =
dqmStore_->
bookProfile2D(name, name, 20, -150., 150., 20, -150., 150., 100, 0., 500.,
"s");
285 name =
"EECLT BC number map EE +";
290 name =
"EECLT BC ET map EE +";
291 meBCETFwdMap_ =
dqmStore_->
bookProfile2D(name, name, 20, -150., 150., 20, -150., 150., 100, 0., 500.,
"s");
295 name =
"EECLT BC size map EE +";
296 meBCSizFwdMap_ =
dqmStore_->
bookProfile2D(name, name, 20, -150., 150., 20, -150., 150., 100, 0., 100.,
"s");
300 name =
"EECLT BC energy projection eta EE +";
305 name =
"EECLT BC energy projection phi EE +";
310 name =
"EECLT BC number projection eta EE +";
315 name =
"EECLT BC number projection phi EE +";
320 name =
"EECLT BC ET projection eta EE +";
325 name =
"EECLT BC ET projection phi EE +";
330 name =
"EECLT BC size projection eta EE +";
335 name =
"EECLT BC size projection phi EE +";
340 name =
"EECLT BC energy map EE -";
341 meBCEneBwdMap_ =
dqmStore_->
bookProfile2D(name, name, 20, -150., 150., 20, -150., 150., 100, 0., 500.,
"s");
345 name =
"EECLT BC number map EE -";
350 name =
"EECLT BC ET map EE -";
351 meBCETBwdMap_ =
dqmStore_->
bookProfile2D(name, name, 20, -150., 150., 20, -150., 150., 100, 0., 500.,
"s");
355 name =
"EECLT BC size map EE -";
356 meBCSizBwdMap_ =
dqmStore_->
bookProfile2D(name, name, 20, -150., 150., 20, -150., 150., 100, 0., 100.,
"s");
360 name =
"EECLT BC energy projection eta EE -";
365 name =
"EECLT BC energy projection phi EE -";
370 name =
"EECLT BC number projection eta EE -";
375 name =
"EECLT BC number projection phi EE -";
380 name =
"EECLT BC ET projection eta EE -";
385 name =
"EECLT BC ET projection phi EE -";
390 name =
"EECLT BC size projection eta EE -";
395 name =
"EECLT BC size projection phi EE -";
400 name =
"EECLT SC energy";
404 name =
"EECLT SC number";
408 name =
"EECLT SC size";
412 name =
"EECLT SC size (crystal)";
416 name =
"EECLT SC seed crystal energy";
420 name =
"EECLT SC e2";
424 name =
"EECLT SC energy vs seed crystal energy";
429 name =
"EECLT SC energy (low scale)";
433 name =
"EECLT SC seed occupancy map EE -";
438 name =
"EECLT SC seed occupancy map EE +";
443 name =
"EECLT SC single crystal cluster seed occupancy map EE -";
448 name =
"EECLT SC single crystal cluster seed occupancy map EE +";
457 name =
"EECLT s1s9 thr";
461 name =
"EECLT s9s25";
465 name =
"EECLT dicluster invariant mass Pi0";
469 name =
"EECLT dicluster invariant mass JPsi";
473 name =
"EECLT dicluster invariant mass Z0";
477 name =
"EECLT dicluster invariant mass high";
481 name =
"EECLT dicluster invariant mass Pi0 sel";
485 name =
"EECLT dicluster invariant mass JPsi sel";
489 name =
"EECLT dicluster invariant mass Z0 sel";
493 name =
"EECLT dicluster invariant mass high sel";
503 if ( !
init_ )
return;
705 if ( ! enable )
return;
735 int nbcc = pBasicClusters->size();
738 for ( reco::BasicClusterCollection::const_iterator bCluster = pBasicClusters->begin(); bCluster != pBasicClusters->end(); ++bCluster ) {
743 if ( bCluster->eta() > 0 ) {
752 meBCETFwdMap_->
Fill(bCluster->x(), bCluster->y(), bCluster->energy() *
sin(bCluster->position().theta()) );
768 meBCETBwdMap_->
Fill(bCluster->x(), bCluster->y(), bCluster->energy() *
sin(bCluster->position().theta()) );
780 float pt =
std::abs( bCluster->energy()*
sin(bCluster->position().theta()) );
792 for ( reco::BasicClusterCollection::const_iterator bc1 = bcSel.begin(); bc1 != bcSel.end(); ++bc1 ) {
794 bc1P.SetPtEtaPhiE(
std::abs(bc1->energy()*
sin(bc1->position().theta())),
795 bc1->eta(), bc1->phi(), bc1->energy());
796 for ( reco::BasicClusterCollection::const_iterator bc2 = bc1+1; bc2 != bcSel.end(); ++bc2 ) {
798 bc2P.SetPtEtaPhiE(
std::abs(bc2->energy()*
sin(bc2->position().theta())),
799 bc2->eta(), bc2->phi(), bc2->energy());
801 TLorentzVector candP = bc1P + bc2P;
804 float mass = candP.M();
805 if ( mass < 0.500 ) {
807 }
else if ( mass > 2.9 && mass < 3.3 ) {
809 }
else if ( mass > 40 && mass < 110 ) {
811 }
else if ( mass > 110 ) {
824 int nscc = pSuperClusters->size();
827 TLorentzVector sc1_p(0,0,0,0);
828 TLorentzVector sc2_p(0,0,0,0);
832 for ( reco::SuperClusterCollection::const_iterator sCluster = pSuperClusters->begin(); sCluster != pSuperClusters->end(); sCluster++ ) {
841 std::vector< std::pair<DetId,float> > sIds = sCluster->hitsAndFractions();
847 for(std::vector< std::pair<DetId,float> >::const_iterator idItr = sIds.begin(); idItr != sIds.end(); ++idItr) {
848 DetId id = idItr->first;
851 if(hitItr == eeRecHits->
end()) {
continue; }
852 if(hitItr->energy() > secondItr->energy()) { secondItr = hitItr; }
853 if(hitItr->energy() > seedItr->energy()) {
std::swap(seedItr,secondItr); }
856 eMax = seedItr->energy();
857 e2nd = secondItr->energy();
872 if( ism >= 1 && ism <= 9)
876 int eex = seedId.
ix();
877 int eey = seedId.
iy();
878 float xeex = eex - 0.5;
879 float xeey = eey - 0.5;
890 if ( sCluster->energy() > sc1_p.Energy() ) {
892 sc1_p.SetPtEtaPhiE(sCluster->energy()*
sin(sCluster->position().theta()),
893 sCluster->eta(), sCluster->phi(), sCluster->energy());
894 }
else if ( sCluster->energy() > sc2_p.Energy() ) {
895 sc2_p.SetPtEtaPhiE(sCluster->energy()*
sin(sCluster->position().theta()),
896 sCluster->eta(), sCluster->phi(), sCluster->energy());
902 TLorentzVector sum = sc1_p+sc2_p;
903 float mass = sum.M();
904 if ( mass < 0.500 ) {
906 }
else if ( mass > 2.9 && mass < 3.3 ) {
908 }
else if ( mass > 40 && mass < 110 ) {
910 }
else if ( mass > 110 ) {
MonitorElement * meBCETFwdMap_
MonitorElement * mes9s25_
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
const std::string & getName(void) const
get name of ME
MonitorElement * meBCETBwdMapProjEta_
void analyze(const edm::Event &e, const edm::EventSetup &c)
Analyze.
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
void rmdir(const std::string &fullpath)
MonitorElement * meBCNum_
Some "id" conversions.
MonitorElement * meBCNumFwdMap_
MonitorElement * meInvMassPi0_
MonitorElement * meInvMassHigh_
void beginJob(void)
BeginJob.
Sin< T >::type sin(const T &t)
std::vector< T >::const_iterator const_iterator
MonitorElement * meBCEneBwdMap_
MonitorElement * meBCSizFwdMapProjEta_
void beginRun(const edm::Run &r, const edm::EventSetup &c)
BeginRun.
void cleanup(void)
Cleanup.
EEClusterTask(const edm::ParameterSet &ps)
Constructor.
MonitorElement * meSCNum_
MonitorElement * meBCNumBwdMapProjPhi_
MonitorElement * meBCETBwdMapProjPhi_
MonitorElement * meBCEneFwdMapProjPhi_
MonitorElement * meBCEneFwdMapProjEta_
edm::InputTag SuperClusterCollection_
std::vector< SuperCluster > SuperClusterCollection
collection of SuperCluser objectr
MonitorElement * meBCNumFwdMapProjPhi_
MonitorElement * meBCNumBwdMapProjEta_
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
MonitorElement * meInvMassZ0Sel_
MonitorElement * meBCEneBwdMapProjEta_
void removeElement(const std::string &name)
MonitorElement * meBCSizBwdMap_
MonitorElement * meBCEneBwdMapProjPhi_
MonitorElement * meInvMassJPsiSel_
MonitorElement * meBCSizFwdMapProjPhi_
MonitorElement * meBCETFwdMapProjPhi_
MonitorElement * meBCSiz_
MonitorElement * meBCNumFwdMapProjEta_
MonitorElement * bookProfile(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, const char *option="s")
std::string getName(Reflex::Type &cc)
MonitorElement * meSCEneVsEMax_
MonitorElement * meSCSiz_
MonitorElement * meBCSizFwdMap_
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
MonitorElement * meSCEne_
MonitorElement * meSCMapSingleCrystal_[2]
MonitorElement * meSCSeedEne_
MonitorElement * meInvMassJPsi_
MonitorElement * meBCETFwdMapProjEta_
MonitorElement * meSCEneLowScale_
const_iterator end() const
edm::InputTag EcalRecHitCollection_
MonitorElement * meSCCrystalSiz_
MonitorElement * meBCNumBwdMap_
MonitorElement * meBCSizBwdMapProjPhi_
static void initGeometry(const edm::EventSetup &setup, bool verbose=false)
MonitorElement * meInvMassPi0Sel_
void endRun(const edm::Run &r, const edm::EventSetup &c)
EndRun.
T const * product() const
MonitorElement * meBCEneFwdMap_
std::vector< BasicCluster > BasicClusterCollection
collection of BasicCluster objects
T const * product() const
MonitorElement * meSCSeedMapOcc_[2]
iterator find(key_type k)
static unsigned iSM(const unsigned ism, const EcalSubdetector subdet)
edm::InputTag BasicClusterCollection_
MonitorElement * meBCEne_
static EcalSubdetector subDet(const EBDetId &id)
MonitorElement * meBCETBwdMap_
MonitorElement * meSCEne2_
MonitorElement * meInvMassHighSel_
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
int ism(int ieta, int iphi)
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
void Reset(void)
reset ME (ie. contents, errors, etc)
edm::InputTag EcalRawDataCollection_
void setCurrentFolder(const std::string &fullpath)
const_iterator begin() const
virtual ~EEClusterTask()
Destructor.
MonitorElement * mes1s9thr_
MonitorElement * meInvMassZ0_
MonitorElement * bookProfile2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, int nchZ, double lowZ, double highZ, const char *option="s")
MonitorElement * meBCSizBwdMapProjEta_