63int main(
int argc,
char** argv ){
69 TString fileName =
"root://eosatlas.cern.ch//eos/atlas/atlastier0/tzero/prod/valid1/PowhegPythia8_AU2CT10_Zmumu/147807/valid1.147807.PowhegPythia8_AU2CT10_Zmumu.recon.AOD.e2658_s1967_s1964_r5787_v114/valid1.147807.PowhegPythia8_AU2CT10_Zmumu.recon.AOD.e2658_s1967_s1964_r5787_v114._000187.1";
77 const TString tag =
"t2_";
78 Info(
APP_NAME,
"Opening file: %s", fileName.Data() );
79 std::unique_ptr< TFile > ifile( TFile::Open( fileName,
"READ" ) );
87 selTool.setProperty(
"maxZ0SinTheta", 3.);
88 selTool.setProperty(
"minPt", 1000.);
89 selTool.setProperty(
"CutLevel",
"Loose");
95 m_trkIsoTool.setProperty(
"TrackSelectionTool", ToolHandle< InDet::IInDetTrackSelectionTool >(selTool.name()) );
98 Info(
APP_NAME,
"m_caloIsoTool.initialize() failed");
102 Info(
APP_NAME,
"selTool.initialize() failed");
106 Info(
APP_NAME,
"m_trkIsoTool.initialize() failed");
109 vector<xAOD::Iso::IsolationType> isoTypes;
116 vector<xAOD::Iso::IsolationType> isoTypesCalo;
124 vector<xAOD::Iso::IsolationType> isoTypesPFlow;
134 CHECK(event.readFrom(ifile.get()));
138 Long64_t maxEVT = -1;
139 Long64_t
entries =
event.getEntries();
140 if((
entries < maxEVT) || (maxEVT <= 0)) {
143 Info(
APP_NAME,
"%lld events found, %lld events will be processed.",
entries, maxEVT);
144 const int INTERVAL = maxEVT > 20000? 10000: maxEVT/10;
145 for( Long64_t entry = 0; entry < maxEVT; ++entry ) {
146 event.getEntry( entry );
148 CHECK( event.retrieve( ei,
"EventInfo" ) );
151 if(entry%INTERVAL==0){
158 CHECK( event.retrieve( muons,
"Muons" ) );
162 CHECK( event.retrieve( electrons,
"Electrons" ) );
166 CHECK( event.retrieve( photons,
"Photons" ) );
168 for(
auto muon: *muons){
169 Info(
APP_NAME,
"---------NEW MUON -------");
172 for(
unsigned int i=0; i<isoTypes.size(); i++){
173 float iso =
result.ptcones[i];
174 float isoV =
result.ptvarcones_10GeVDivPt[i];
176 if(!m_helperTool->
isolation(value0, *muon, isoTypes[i])) Info(
APP_NAME,
"Muon default track iso not got.");
177 Info(
APP_NAME,
"Muon track isolation %d is %f and %f (=%f?)", i, iso, isoV, value0);
182 for(
unsigned int i=0; i<isoTypesCalo.size(); i++){
184 if(!m_helperTool->
isolation(value0, *muon, isoTypesCalo[i], corrlist2.
calobitset)) Info(
APP_NAME,
"Muon coreCone Calo iso not got.");
185 Info(
APP_NAME,
"Muon topo isolation %d is %f (=%f?)", i, result2.
etcones[i], value0);
190 for(
unsigned int i=0; i<isoTypesPFlow.size(); i++){
192 if(!m_helperTool->
isolation(value0, *muon, isoTypesPFlow[i])) Info(
APP_NAME,
"Muon default pflow iso not got.");
193 Info(
APP_NAME,
"Muon neflow isolation %d is %f (=%f?)", i, result3.
etcones[i], value0);
198 for(
auto electron: *electrons){
199 Info(
APP_NAME,
"---------NEW ELECTRON -------");
202 for(
unsigned int i=0; i<isoTypes.size(); i++){
203 float iso =
result.ptcones[i];
204 float isoV =
result.ptvarcones_10GeVDivPt[i];
206 if(!m_helperTool->
isolation(value0, *electron, isoTypes[i])) Info(
APP_NAME,
"Electron default track iso not got.");
207 Info(
APP_NAME,
"Electron track isolation %d is %f and %f (=%f?)", i, iso, isoV, value0);
212 for(
unsigned int i=0; i<isoTypesCalo.size(); i++){
214 if(!m_helperTool->
isolation(value0, *electron, isoTypesCalo[i], corrlist2.
calobitset)) Info(
APP_NAME,
"Electron coreCone Calo iso not got.");
215 Info(
APP_NAME,
"Electron topo isolation %d is %f (=%f?)", i, result2.
etcones[i], value0);
221 for(
auto photon: *photons){
222 Info(
APP_NAME,
"---------NEW photon -------");
225 for(
unsigned int i=0; i<isoTypes.size(); i++){
226 float iso =
result.ptcones[i];
227 float isoV =
result.ptvarcones_10GeVDivPt[i];
229 if(!m_helperTool->
isolation(value0, *photon, isoTypes[i])) Info(
APP_NAME,
"photon default track iso not got.");
230 Info(
APP_NAME,
"Photon track isolation %d is %f and %f (=%f?)", i, iso, isoV, value0);
235 for(
unsigned int i=0; i<isoTypesCalo.size(); i++){
237 if(!m_helperTool->
isolation(value0, *photon, isoTypesCalo[i], corrlist2.
calobitset)) Info(
APP_NAME,
"photon coreCone Calo iso not got.");
238 Info(
APP_NAME,
"Photon topo isolation %d is %f (=%f?)", i, result2.
etcones[i], value0);
246 Info(
APP_NAME,
"Finished successfully!");