ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/L1RpcTriggerAnalysis/src/AnaMenu.cc
(Generate patch)

Comparing UserCode/L1RpcTriggerAnalysis/src/AnaMenu.cc (file contents):
Revision 1.2 by konec, Tue Nov 6 12:56:51 2012 UTC vs.
Revision 1.7 by konec, Wed Apr 24 19:54:35 2013 UTC

# Line 16 | Line 16 | namespace {
16   }
17  
18  
19 + void  AnaMenu::updateMenu(const std::vector<std::string> & menuL1, const std::vector<std::string> & menuHLT)
20 + {
21 +  if (menuL1.size() != 0) theMenuL1 = menuL1;
22 +  if (menuHLT.size() != 0) theMenuHLT = menuHLT;
23 + }
24 +
25   bool AnaMenu::filter( const EventObj* ev, const MuonObj* muon,
26                        const TriggerMenuResultObj *bitsL1,
27                        const TriggerMenuResultObj *bitsHLT)
28  
29   {
24  if (bitsL1->names.size() != 0)    namesL1=bitsL1->names;
25  if (bitsHLT->names.size() != 0)   namesHLT=bitsHLT->names;
30    const std::vector<unsigned int> & algosL1 = bitsL1->firedAlgos;
31    const std::vector<unsigned int> & algosHLT = bitsHLT->firedAlgos;
32  
29
33    typedef std::vector<unsigned int>::const_iterator CIT;
34  
35 < //  static int count = 0;
36 < //  std::cout <<"----------"<<std::endl;
37 <  bool hasNoL1Mu= false;
35 >
36 >  bool okL1 = false;
37 >  
38 > //  debug = true;
39 >  if (debug) std::cout <<"--------------------------------------------------------------"<<std::endl;
40 >  if (debug) std::cout << "================== L1 names: "<< std::endl;
41 >  std::vector<std::string> acceptL1_Names = theConfig.exists("acceptL1_Names") ?  theConfig.getParameter<std::vector<std::string> >("acceptL1_Names") : std::vector<std::string>();
42    for (CIT it=algosL1.begin(); it != algosL1.end(); ++it) {
43 <    std::string nameAlgo = namesL1[*it];
44 < //    std::cout <<nameAlgo << std::endl;
43 >    bool aokL1 = false;
44 >    std::string nameAlgo = theMenuL1[*it];
45      if (theAlgosL1.find(nameAlgo) == theAlgosL1.end()) theAlgosL1[nameAlgo]=0;    
46      bool isMu = ( nameAlgo.find("Mu") != std::string::npos);
47 <    if (!isMu) hasNoL1Mu = true;
47 >    if (theConfig.getParameter<bool>("acceptL1_OtherThanMu") && !isMu ) aokL1 = true;
48 >    if (theConfig.getParameter<bool>("acceptL1_Mu") &&  isMu) aokL1 = true;
49 >    for ( std::vector<std::string>::const_iterator is=acceptL1_Names.begin(); is != acceptL1_Names.end(); ++is) if (nameAlgo==(*is)) aokL1 = true;
50 >    if (debug) {std::cout <<nameAlgo; if (aokL1) std::cout <<" <--"; std::cout << std::endl; }
51 >    if (aokL1) okL1=true;
52    }
42 // if (hasNoL1Mu) std::cout <<" HAS NO L1 MUON!: " <<++count<< std::endl;
53  
54 <  bool hasNoHLTMu= false;
54 >  bool okHLT = false;
55 >  if (debug) std::cout << "================== L1 names: "<< std::endl;
56    for (CIT it=algosHLT.begin(); it != algosHLT.end(); ++it) {
57 <    std::string nameAlgo = namesHLT[*it];
58 < //    std::cout <<nameAlgo << std::endl;
57 >    bool aokHLT = false;
58 >    std::string nameAlgo = theMenuHLT[*it];
59      if (theAlgosHLT.find(nameAlgo) == theAlgosHLT.end()) theAlgosHLT[nameAlgo]=0;    
60 <    if (nameAlgo.find("Physic") != std::string::npos) continue;
61 <    bool isMu = ( (nameAlgo.find("Mu") != std::string::npos) && (nameAlgo.find("Multi") == std::string::npos) );
62 <    if (!isMu) hasNoHLTMu = true;
60 >    bool isMu = (    (    (nameAlgo.find("Mu") != std::string::npos   )
61 >                       && (nameAlgo.find("Multi") == std::string::npos) )
62 >                  || (     nameAlgo.find("muon") != std::string::npos   )  );
63 >    if ( theConfig.getParameter<bool>("acceptHLT_OtherThanMuPhysicsAlCa")
64 >         && !isMu
65 >         && (nameAlgo.find("Physics") == std::string::npos)
66 >         && (nameAlgo.find("AlCa") == std::string::npos) ) aokHLT = true;
67 >    if (theConfig.getParameter<bool>("acceptHLT_Mu") && isMu) aokHLT = true;
68 >    if (theConfig.getParameter<bool>("acceptHLT_L1")       && (nameAlgo.find("HLT_L1")   != std::string::npos) ) aokHLT = true;
69 >    if (theConfig.getParameter<bool>("acceptHLT_Physics")  && (nameAlgo.find("Physics")  != std::string::npos) ) aokHLT = true;
70 >    if (theConfig.getParameter<bool>("acceptHLT_ZeroBias") && (nameAlgo.find("ZeroBias") != std::string::npos) ) aokHLT = true;
71 >    if (debug) {std::cout <<nameAlgo; if (aokHLT) std::cout <<" <--"; std::cout << std::endl; }
72 >    if (aokHLT) okHLT=true;
73    }
53 //  if (hasNoHLTMu) std::cout <<" HAS NO HLT MUON!" << std::endl;
74  
75 <  //if (hasNoL1Mu && hasNoHLTMu) {
76 <  if (!hasNoL1Mu && !hasNoHLTMu) {
77 <    for (CIT it=algosL1.begin();  it != algosL1.end();  ++it)  theAlgosL1[ namesL1[*it] ]++;
58 <    for (CIT it=algosHLT.begin(); it != algosHLT.end(); ++it) theAlgosHLT[ namesHLT[*it] ]++;
75 >  if (okL1  && okHLT) {
76 >    for (CIT it=algosL1.begin();  it != algosL1.end();  ++it)  theAlgosL1[ theMenuL1[*it] ]++;
77 >    for (CIT it=algosHLT.begin(); it != algosHLT.end(); ++it) theAlgosHLT[ theMenuHLT[*it] ]++;
78      if (hMuonPt_MEN)  hMuonPt_MEN->Fill(muon->pt());
79      if (hMuonEta_MEN) hMuonEta_MEN->Fill(muon->eta());
80      if (hMuonPhi_MEN) hMuonPhi_MEN->Fill(muon->phi());
81 <    return true;
82 <  }
81 >    return true;
82 >  } else return  false;
83  
65  return  false;
84   }
85  
86   void AnaMenu::resume(TObjArray& histos)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines