diff --git a/Trigger/TrigT1/TrigT1CaloFexSim/TrigT1CaloFexSim/JwoJ.h b/Trigger/TrigT1/TrigT1CaloFexSim/TrigT1CaloFexSim/JwoJ.h index a95a39275f8f5c10abf9b141d152b701d2ce0429..238f5385349e4c174545e461657b705eacae051f 100644 --- a/Trigger/TrigT1/TrigT1CaloFexSim/TrigT1CaloFexSim/JwoJ.h +++ b/Trigger/TrigT1/TrigT1CaloFexSim/TrigT1CaloFexSim/JwoJ.h @@ -26,7 +26,9 @@ *@return @c std::vector<float> */ std::vector<float> Run_JwoJ(const xAOD::JGTowerContainer* towers, const std::vector<TowerObject::Block> blocks, float rho, float pTcone_cut, bool useEtaBins, bool useNegTowers){ - + /* + By this definition, if we set useNegTowers to true, then we will use all the towers. If we set it to false, then we veto them after pileup subtraction. + */ pTcone_cut*=Gaudi::Units::GeV; std::vector<float> Et_vals; float Ht = 0; float Htx = 0; float Hty = 0; @@ -45,6 +47,10 @@ std::vector<float> Run_JwoJ(const xAOD::JGTowerContainer* towers, const std::vec if(useEtaBins){ seed_Et -= rho; + if(!useNegTowers){ + //If we set useNegTowers = False, then we would set all their ET = 0; This is set after pileup subtraction, which is a choice that could be studied, but seems reasonable. + if(seed_Et<0)seed_Et=0; + } block_etx = seed_Et*TMath::Cos(block_phi); block_ety = seed_Et*TMath::Sin(block_phi); @@ -60,6 +66,10 @@ std::vector<float> Run_JwoJ(const xAOD::JGTowerContainer* towers, const std::vec }else{ if(TMath::Abs(blocks[b].Eta()) < 2.4){ seed_Et -= rho; + if(!useNegTowers){ + //If we set useNegTowers = False, then we would set all their ET = 0; + if(seed_Et<0)seed_Et=0; + } block_etx = seed_Et*TMath::Cos(block_phi); block_ety = seed_Et*TMath::Sin(block_phi); diff --git a/Trigger/TrigT1/TrigT1CaloFexSim/src/JGTowerReader.cxx b/Trigger/TrigT1/TrigT1CaloFexSim/src/JGTowerReader.cxx index e543d8124c815c74c07d9736528946da1b7c9679..0c35bfde7ae87e005dde95088ea3e7c641c6034e 100644 --- a/Trigger/TrigT1/TrigT1CaloFexSim/src/JGTowerReader.cxx +++ b/Trigger/TrigT1/TrigT1CaloFexSim/src/JGTowerReader.cxx @@ -677,7 +677,7 @@ StatusCode JGTowerReader::GFexAlg(const xAOD::JGTowerContainer* gTs){ CHECK(METAlg::Baseline_MET(pu_sub, "gXERHO", noNoise, m_useNegTowers)); CHECK(METAlg::Baseline_MET(gCaloTowers,"gXENOISECUT",gT_noise, m_useNegTowers)); CHECK(METAlg::JwoJ_MET(pu_sub, puSub_gBlocks,"gXEJWOJRHO",m_pTcone_cut,false, false, m_useNegTowers)); - CHECK(METAlg::JwoJ_MET(gTs, gBlocks, "gXEJWOJ",m_pTcone_cut,false, true, m_useNegTowers)); + CHECK(METAlg::JwoJ_MET(gTs, gBlocks, "gXEJWOJ",m_pTcone_cut,false, true, /*m_useNegTowers*/ true));//by default, m_useNegTowers=false, but setting it = true here for consistency CHECK(METAlg::Pufit_MET(gCaloTowers,"gXEPUFIT", m_useNegTowers) ); diff --git a/Trigger/TrigT1/TrigT1CaloFexSim/src/METAlg.cxx b/Trigger/TrigT1/TrigT1CaloFexSim/src/METAlg.cxx index c745a2721e644b2a2365a90c6155b9d533ea3413..97acd8683210874998013c96ad43a694fa736bc2 100644 --- a/Trigger/TrigT1/TrigT1CaloFexSim/src/METAlg.cxx +++ b/Trigger/TrigT1/TrigT1CaloFexSim/src/METAlg.cxx @@ -310,7 +310,6 @@ StatusCode METAlg::JwoJ_MET(const xAOD::JGTowerContainer* towers, const std::vec float Ey = ay*(Et_values[2])+ by*Et_values[4] + cy; float EtMiss = TMath::Sqrt(Ex*Ex + Ey*Ey); - float phi = 0; float mht_phi = 0; if(Et_values[5]>0) mht_phi = TMath::ACos(Et_values[1]/Et_values[5]);