72 edm::LogInfo(
"SUSY_HLT_DoubleEle_Hadronic") <<
"SUSY_HLT_DoubleEle_Hadronic::analyze" << std::endl;
79 if ( !pfJetCollection.
isValid() ){
80 edm::LogError (
"SUSY_HLT_DoubleEle_Hadronic") <<
"invalid collection: PFJets" <<
"\n";
85 if ( !caloJetCollection.
isValid() ){
86 edm::LogError (
"SUSY_HLT_DoubleEle_Hadronic") <<
"invalid collection: CaloJets" <<
"\n";
95 if ( !ElectronCollection.
isValid() ){
96 edm::LogError (
"SUSY_HLT_DoubleEle_Hadronic") <<
"invalid collection: Electrons " <<
"\n";
107 edm::LogError (
"SUSY_HLT_DoubleEle_Hadronic") <<
"invalid collection: TriggerResults" <<
"\n";
112 if(!triggerSummary.
isValid()) {
113 edm::LogError (
"SUSY_HLT_DoubleEle_Hadronic") <<
"invalid collection: TriggerSummary" <<
"\n";
119 std::vector<float> ptElectron, etaElectron, phiElectron;
122 if( !(filterIndex >= triggerSummary->
sizeFilters()) ){
124 for(
size_t j = 0; j < keys.size(); ++j ){
126 if(fabs(foundObject.
id()) == 11){
129 for(
unsigned int x=0;
x<ptElectron.size();
x++){
130 if(fabs(ptElectron[
x] - foundObject.
pt()) < 0.01 || fabs(etaElectron[
x] - foundObject.
eta()) < 0.001 || fabs(phiElectron[
x] - foundObject.
phi()) < 0.001)
138 ptElectron.push_back(foundObject.
pt());
139 etaElectron.push_back(foundObject.
eta());
140 phiElectron.push_back(foundObject.
phi());
144 if (ptElectron.size()>=2) {
157 bool hasFired =
false;
158 bool hasFiredAuxiliaryForElectronLeg =
false;
159 bool hasFiredAuxiliaryForHadronicLeg =
false;
161 unsigned int numTriggers = trigNames.
size();
162 for(
unsigned int hltIndex=0; hltIndex<numTriggers; ++hltIndex ){
170 if(hasFiredAuxiliaryForElectronLeg || hasFiredAuxiliaryForHadronicLeg) {
173 int indexOfMatchedElectron[2] = {-1};
174 int matchedCounter = 0;
175 int offlineCounter = 0;
176 for(reco::GsfElectronCollection::const_iterator
Electron = ElectronCollection->begin(); (
Electron != ElectronCollection->end() && matchedCounter < 2) ; ++
Electron) {
177 for(
size_t off_i = 0; off_i < ptElectron.size(); ++off_i) {
179 indexOfMatchedElectron[matchedCounter] = offlineCounter;
189 for (reco::PFJetCollection::const_iterator i_pfjet = pfJetCollection->begin(); i_pfjet != pfJetCollection->end(); ++i_pfjet){
191 if (fabs(i_pfjet->eta()) >
etaThrJet_)
continue;
192 pfHT += i_pfjet->pt();
194 for (reco::CaloJetCollection::const_iterator i_calojet = caloJetCollection->begin(); i_calojet != caloJetCollection->end(); ++i_calojet){
195 if (i_calojet->pt() <
ptThrJet_)
continue;
196 if (fabs(i_calojet->eta()) >
etaThrJet_)
continue;
197 caloHT += i_calojet->pt();
200 if(hasFiredAuxiliaryForElectronLeg && ElectronCollection->size()>1) {
201 if(hasFired && indexOfMatchedElectron[1] >= 0) {
206 if(hasFiredAuxiliaryForHadronicLeg) {
MonitorElement * h_EleTurnOn_den
edm::EDGetTokenT< reco::PFJetCollection > thePfJetCollection_
bool wasrun() const
Was at least one path run?
ROOT::Math::LorentzVector< ROOT::Math::PtEtaPhiM4D< double > > PtEtaPhiMLorentzVectorD
Lorentz vector with cartesian internal representation.
MonitorElement * h_pfHTTurnOn_den
trigger::size_type sizeFilters() const
edm::EDGetTokenT< reco::GsfElectronCollection > theElectronCollection_
edm::EDGetTokenT< edm::TriggerResults > triggerResults_
bool accept() const
Has at least one path accepted the event?
const Keys & filterKeys(trigger::size_type index) const
trigger::size_type filterIndex(const edm::InputTag &filterTag) const
find index of filter in data-member vector from filter tag
MonitorElement * h_triggerDoubleEleMass
Strings::size_type size() const
edm::EDGetTokenT< trigger::TriggerEvent > theTrigSummary_
MonitorElement * h_EleTurnOn_num
edm::InputTag triggerFilter_
Single trigger physics object (e.g., an isolated muon)
const TriggerObjectCollection & getObjects() const
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
std::string triggerPathAuxiliaryForHadronic_
std::vector< Electron > ElectronCollection
collectin of Electron objects
edm::EDGetTokenT< reco::CaloJetCollection > theCaloJetCollection_
std::vector< TriggerObject > TriggerObjectCollection
collection of trigger physics objects (e.g., all isolated muons)
static const char *const trigNames[]
std::string const & triggerName(unsigned int index) const
std::vector< size_type > Keys
MonitorElement * h_triggerElePhi
std::string triggerPathAuxiliaryForElectron_
MonitorElement * h_triggerElePt
MonitorElement * h_triggerEleEta
MonitorElement * h_pfHTTurnOn_num