49 void endJob()
override;
59 int counterMatrix[5][5];
87 for (
int i=0;
i<5;
i++) {
88 for (
int j=0;j<5;j++) {
109 map<string,int> dimuonHLT_triggers;
110 dimuonHLT_triggers.insert(make_pair(
"HLT1MuonPrescalePt3",0));
111 dimuonHLT_triggers.insert(make_pair(
"HLT1MuonPrescalePt7x7",1));
112 dimuonHLT_triggers.insert(make_pair(
"HLT1MuonIso",2));
113 dimuonHLT_triggers.insert(make_pair(
"HLT1MuonNonIso15",3));
114 dimuonHLT_triggers.insert(make_pair(
"HLT2MuonNonIso",4));
116 map<string,int> jetHLT_triggers;
117 jetHLT_triggers.insert(make_pair(
"HLT1jetPE5",0));
118 jetHLT_triggers.insert(make_pair(
"HLT1jetPE3",1));
119 jetHLT_triggers.insert(make_pair(
"HLT1jetPE1",2));
120 jetHLT_triggers.insert(make_pair(
"candHLT1jetPE7",3));
123 for (
int i=0;
i<5;
i++) trgMask[
i] =
false;
126 string dimuonTableNames[10];
127 dimuonTableNames[0] =
"global-global";
128 dimuonTableNames[1] =
"global-trackerSta";
129 dimuonTableNames[2] =
"global-sta";
130 dimuonTableNames[3] =
"global-tracker";
131 dimuonTableNames[4] =
"trackerSta-trackerSta";
132 dimuonTableNames[5] =
"trackerSta-sta";
133 dimuonTableNames[6] =
"trackerSta-tracker";
134 dimuonTableNames[7] =
"sta-sta";
135 dimuonTableNames[8] =
"sta-tracker";
136 dimuonTableNames[9] =
"tracker-tracker";
138 string muonTableNames[10];
139 muonTableNames[0] =
"global";
140 muonTableNames[1] =
"trackerSta";
141 muonTableNames[2] =
"sta";
142 muonTableNames[3] =
"tracker";
144 cout <<
"-------------------NEW event---------------------------" << endl;
146 vector<int> dimuonTable;
159 const unsigned int n_TriggerResults( triggerResults.
product()->
size() );
160 for (
unsigned int itrig( 0 ); itrig < n_TriggerResults; ++itrig )
164 map<string,int>::iterator iterMuHLT = dimuonHLT_triggers.find(triggerNames.
triggerName( itrig ));
165 if (iterMuHLT != dimuonHLT_triggers.end()) {
166 cout <<
"ecco la chiave Mu HLT " << (*iterMuHLT).second << endl;
167 if (triggerResults.
product()->
state( itrig )==1) trgMask[(*iterMuHLT).second] =
true;
169 map<string,int>::iterator iterjetHLT = jetHLT_triggers.find(triggerNames.
triggerName( itrig ));
170 if (iterjetHLT != jetHLT_triggers.end()) {
171 cout <<
"ecco la chiave jet HLT " << (*iterjetHLT).second << endl;
178 if ( muonTable[0]>1) {
179 for(
unsigned int i = 0;
i < muons->
size(); ++
i) {
185 cout <<
"muCand : " <<
i <<
" pt " << muCandRef->
pt() <<
" eta " << muCandRef->
eta() << endl;
186 cout <<
"muCandStaComponent : " <<
i <<
" pt " << muStaComponentRef->pt() <<
" eta " << muStaComponentRef->eta() << endl;
192 for (
int i=0;
i<5;
i++) {
193 for (
int j=0; j<5; j++) {
203 for (
int i=0;
i<nCat;
i++) n_.push_back(0);
204 for(
unsigned int i = 0;
i < d->
size(); ++
i) {
206 bool mu0global =
false;
207 bool mu0trackerSta =
false;
209 bool mu0tracker =
false;
210 bool mu1global =
false;
211 bool mu1trackerSta =
false;
213 bool mu1tracker =
false;
226 if (mu0global && mu1global) n_[0]++;
227 if ( (mu0global && mu1trackerSta) || (mu1global && mu0trackerSta) ) n_[1]++;
228 if ( (mu0global && mu1sta) || (mu1global && mu0sta) ) n_[2]++;
229 if ( (mu0global && mu1tracker) || (mu1global && mu0tracker) ) n_[3]++;
230 if (mu0trackerSta && mu1trackerSta) n_[4]++;
231 if ( (mu0trackerSta && mu1sta) || (mu1trackerSta && mu0sta) ) n_[5]++;
232 if ( (mu0trackerSta && mu1tracker) || (mu1trackerSta && mu0tracker) ) n_[6]++;
233 if (mu0sta && mu1sta) n_[7]++;
234 if ( (mu0sta && mu1tracker) || (mu1sta && mu0tracker) ) n_[8]++;
235 if (mu0tracker && mu1tracker) n_[9]++;
245 for (
int i=0;
i<nCat;
i++) n_.push_back(0);
246 for(
unsigned int i = 0;
i < d->
size(); ++
i) {
248 bool muglobal =
false;
249 bool mutrackerSta =
false;
251 bool mutracker =
false;
257 cout <<
"muglobal " << muglobal <<
" mutrackserSta " << mutrackerSta <<
" must " << musta <<
" mutracker " << mutracker << endl;
258 if (muglobal) n_[0]++;
259 if (mutrackerSta) n_[1]++;
261 if (mutracker) n_[3]++;
269 cout <<
"------------------------------------ Counters --------------------------------" << endl;
270 for (
int i=0;
i<5;
i++) {
271 cout <<
"trg " <<
i <<
": ";
272 for (
int j=0; j<5; j++) {
bool wasrun() const
Was at least one path run?
virtual bool isStandAloneMuon() const =0
virtual const Candidate * daughter(size_type i) const =0
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
bool accept() const
Has at least one path accepted the event?
stand alone muon component tag
def setup(process, global_tag, zero_tesla=False)
Strings const & triggerNames() const
example_stream void analyze(const edm::Event &, const edm::EventSetup &) override
EDGetTokenT< CandidateView > tracksToken
RefToBase< value_type > refAt(size_type i) const
virtual bool isTrackerMuon() const =0
#define DEFINE_FWK_MODULE(type)
vector< int > nDimuonsByType(const Handle< CandidateView > d)
unsigned int size() const
Get number of paths stored.
static std::string const triggerResults
virtual bool isGlobalMuon() const =0
EDGetTokenT< CandidateView > anyDimuonToken
virtual double eta() const =0
momentum pseudorapidity
T const * product() const
virtual double pt() const =0
transverse momentum
std::string const & triggerName(unsigned int index) const
edm::Ref< TrackCollection > TrackRef
persistent reference to a Track
vector< int > nMuonsByType(const Handle< CandidateView > d)
EDGetTokenT< TriggerResults > triggerResultsToken
void analyze(const edm::Event &event, const edm::EventSetup &setup) override
T get() const
get a component
dimuonHLTFilterCheck(const edm::ParameterSet &pset)
EDGetTokenT< CandidateView > muonToken
hlt::HLTState state(const unsigned int i) const
Get status of ith path.