ATLAS Offline Software
TBBeamQualityMuonToolH6.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 //#####################################################
6 //# #
7 //# File : TBBeamQualityMuonToolH6.cxx #
8 //# Package: TBRec #
9 //# #
10 //# Author : Marco Bieri <mbieri@sfu.ca> #
11 //# #
12 //# Last Modofied: Nov 18/2004 #
13 //#####################################################
14 
16 
17 // TRIGGERS
19 
20 
21 #include <string>
22 #include <ios>
23 #include <algorithm>
24 
26  const std::string& name,
27  const IInterface* parent)
29  m_mu1(false),
30  m_mu2(false),
31  m_mu3(false),
32  m_mu4(false),
33  m_successflag(false)
34 {
35  declareInterface<TBBeamQualityTool>(this);
36 }
37 
39 { }
40 
42 {
43  MsgStream log(msgSvc(),name());
44 
45  log << MSG::DEBUG
46  << "initialize"
47  << endmsg;
48 
49  // setting triggflag
50 
51  if(m_triggflag.size()==0){ //trig
52 
53  m_triggflag.push_back(0x00000001); // Entry 0: S1 accept
54  m_triggflag.push_back(0x00000002); // Entry 1: S2 accept
55  m_triggflag.push_back(0x00000004); // Enrty 2: S3 accept
56  m_triggflag.push_back(0x00000008); // Entry 3: B2 accept
57  m_triggflag.push_back(0x00000010); // Entry 4: VetoLeft
58  m_triggflag.push_back(0x00000020); // Entry 5: VetoRight
59  m_triggflag.push_back(0x00000040); // Entry 6: VetoDown
60  m_triggflag.push_back(0x00000080); // Entry 7: VetoUp
61  m_triggflag.push_back(0x00000100); // Entry 8: Mu 1 Left
62  m_triggflag.push_back(0x00000200); // Entry 9: Mu 2 Left
63  m_triggflag.push_back(0x00000400); // Entry 10: Mu 2 Left
64  m_triggflag.push_back(0x00000800); // Entry 11: Early PileUp
65  m_triggflag.push_back(0x00001000); // Enrty 12: Late PileUp
66  m_triggflag.push_back(0x00002000); // Entry 13: In Spill Tag
67  m_triggflag.push_back(0x00004000); // Entry 14: Off Spill Tag
68  m_triggflag.push_back(0x00008000); // Entry 15: Cedar 6 0f 8 segments
69  m_triggflag.push_back(0x00010000); // Entry 16: Mu 2 Right
70  m_triggflag.push_back(0x00020000); // Entry 17: Hole Counter
71  m_triggflag.push_back(0x00040000); // Entry 18: W1*W2 coincidence
72  m_triggflag.push_back(0x00080000); // Entry 19: B1 accept
73  m_triggflag.push_back(0x00100000); // Entry 20: Scalar Reset Tag
74  m_triggflag.push_back(0x08000000); // Entry 21: Cedar 7 of 8 segments
75  m_triggflag.push_back(0x10000000); // Entry 21: Cedar 8 of 8 segments
76  } //trig
77  return StatusCode::SUCCESS;
78 }
79 
80 StatusCode TBBeamQualityMuonToolH6::accept(const std::vector<std::string>& particles)
81 {//accept
82 
83  MsgStream log(msgSvc(),name());
84 
85  // Trigger Pattern Pointer
86  TBTriggerPatternUnit * triggpat_object;
87 
88  ATH_CHECK( evtStore()->retrieve(triggpat_object, m_SGTrigkey) );
89 
90  unsigned int word =triggpat_object->getTriggerWord();
91 
92  m_mu1=false;
93  m_mu2=false;
94  m_mu3=false;
95  m_mu4=false;
96 
97  // muon triggers are:
98  // Entry 8: Mu 1 Left
99  // Entry 9: Mu 2 Left
100  // Entry 10: Mu 2 Left
101  // Entry 16: Mu 2 Right
102 
103  if ((word & m_triggflag[8])!=0) {
104  m_mu1=true;
105  }
106  if ((word & m_triggflag[9])!=0) {
107  m_mu2=true;
108  }
109  if ((word & m_triggflag[10])!=0) {
110  m_mu3=true;
111  }
112  if ((word & m_triggflag[16])!=0) {
113  m_mu4=true;
114  }
115 
116  //checking for muon coincidence:
117 
118  // rejecting event for all particles except for muons
119 
120  //muons
121  log<<MSG::DEBUG
122  <<particles[0]
123  <<endmsg;
124 
125  if(particles[0]=="mu+" || particles[0]=="mu-"){
126  m_successflag=false;
127 
128  if (((m_mu1==true)&(m_mu3==true))||((m_mu1==true)&(m_mu4==true))||((m_mu2==true)&(m_mu3==true))||((m_mu2==true)&(m_mu4==true))) {
129  m_successflag=true;
130  }
131  }else{
132  //all particles except muons
133  m_successflag=true;
134 
135  if (((m_mu1==true)&(m_mu3==true))||((m_mu1==true)&(m_mu4==true))||((m_mu2==true)&(m_mu3==true))||((m_mu2==true)&(m_mu4==true))) {
136  m_successflag=false;
137  }
138  }
139  if(m_successflag==true){
140  return StatusCode::SUCCESS;
141  }else{
142  return StatusCode::FAILURE;
143  }
144 }//accept
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
TBBeamQualityMuonToolH6::m_mu4
bool m_mu4
Definition: TBBeamQualityMuonToolH6.h:47
TBBeamQualityMuonToolH6::TBBeamQualityMuonToolH6
TBBeamQualityMuonToolH6(const std::string &type, const std::string &name, const IInterface *parent)
Definition: TBBeamQualityMuonToolH6.cxx:25
TBBeamQualityMuonToolH6::m_mu3
bool m_mu3
Definition: TBBeamQualityMuonToolH6.h:46
TBTriggerPatternUnit::getTriggerWord
unsigned int getTriggerWord() const
Definition: TBTriggerPatternUnit.h:50
TBTriggerPatternUnit.h
TBBeamQualityMuonToolH6::m_triggflag
std::vector< unsigned int > m_triggflag
Definition: TBBeamQualityMuonToolH6.h:42
TBBeamQualityMuonToolH6::initializeTool
virtual StatusCode initializeTool() override
Definition: TBBeamQualityMuonToolH6.cxx:41
AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:85
StdJOSetup.msgSvc
msgSvc
Provide convenience handles for various services.
Definition: StdJOSetup.py:36
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
test_pyathena.parent
parent
Definition: test_pyathena.py:15
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
TBBeamQualityMuonToolH6::m_mu2
bool m_mu2
Definition: TBBeamQualityMuonToolH6.h:45
TBBeamQualityMuonToolH6::accept
virtual StatusCode accept(const std::vector< std::string > &) override
Definition: TBBeamQualityMuonToolH6.cxx:80
TBBeamQualityTool
Definition: TBBeamQualityTool.h:26
TBBeamQualityMuonToolH6::m_mu1
bool m_mu1
Definition: TBBeamQualityMuonToolH6.h:44
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
TBBeamQualityMuonToolH6.h
TBBeamQualityMuonToolH6::m_SGTrigkey
std::string m_SGTrigkey
Definition: TBBeamQualityMuonToolH6.h:39
TBBeamQualityMuonToolH6::m_successflag
bool m_successflag
Definition: TBBeamQualityMuonToolH6.h:48
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
DEBUG
#define DEBUG
Definition: page_access.h:11
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
LArG4FSStartPointFilter.particles
list particles
Definition: LArG4FSStartPointFilter.py:84
TBTriggerPatternUnit
Definition: TBTriggerPatternUnit.h:27
TBBeamQualityMuonToolH6::~TBBeamQualityMuonToolH6
virtual ~TBBeamQualityMuonToolH6()
Definition: TBBeamQualityMuonToolH6.cxx:38