diff --git a/Trigger/TrigAnalysis/TrigInDetAnalysisExample/TrigInDetAnalysisExample/Analysis_Tier0.h b/Trigger/TrigAnalysis/TrigInDetAnalysisExample/TrigInDetAnalysisExample/Analysis_Tier0.h index a54685edb56a0bc7e6974e68ca226cfe9917e718..d90094e9a240b718b16db5fe01848a49286ba159 100644 --- a/Trigger/TrigAnalysis/TrigInDetAnalysisExample/TrigInDetAnalysisExample/Analysis_Tier0.h +++ b/Trigger/TrigAnalysis/TrigInDetAnalysisExample/TrigInDetAnalysisExample/Analysis_Tier0.h @@ -70,8 +70,7 @@ class Analysis_Tier0 : public TrackAnalysis { TProfile* h_d0eff; TProfile* h_z0eff; TProfile* h_nVtxeff; - - TProfile* h_vtxlbeff; + TProfile* h_lbeff; TProfile* h_pTres; TProfile* h_ipTres; @@ -118,6 +117,8 @@ class Analysis_Tier0 : public TrackAnalysis { TH1F* h_chain; + TH1F* h_ntrk; + TH1F* h_trkpT; TH1F* h_trketa; TH1F* h_trkphi; @@ -134,6 +135,9 @@ class Analysis_Tier0 : public TrackAnalysis { TH1F* h_nsihits; TH1F* h_ntrt; + TH1F* h_ntrk_rec; + + TH1F* h_trkpT_rec; TH1F* h_trketa_rec; TH1F* h_trkphi_rec; diff --git a/Trigger/TrigAnalysis/TrigInDetAnalysisExample/TrigInDetAnalysisExample/T_AnalysisConfig_Tier0.h b/Trigger/TrigAnalysis/TrigInDetAnalysisExample/TrigInDetAnalysisExample/T_AnalysisConfig_Tier0.h index 1217a73db585389a2a4538c077931e1c36670ad6..2a5745e624d5a3237b184cfb9de864e9c9566da6 100644 --- a/Trigger/TrigAnalysis/TrigInDetAnalysisExample/TrigInDetAnalysisExample/T_AnalysisConfig_Tier0.h +++ b/Trigger/TrigAnalysis/TrigInDetAnalysisExample/TrigInDetAnalysisExample/T_AnalysisConfig_Tier0.h @@ -876,12 +876,14 @@ protected: } - /// now loop pver the rois (again) + /// now loop over the rois (again) for ( unsigned iroi=0 ; iroi<chain.size() ; iroi++ ) { m_selectorRef->clear(); + // std::cout << "SUTT: filterOnRoi() " << this->filterOnRoi() << " " << chain.rois().at(iroi).roi() << std::endl; + if ( this->filterOnRoi() ) filterRef.setRoi( &chain.rois().at(iroi).roi() ); else filterRef.setRoi( 0 ); @@ -1086,6 +1088,8 @@ protected: //Noff = m_selectorRef->tracks().size(); ref_tracks = m_selectorRef->tracks(); + // std::cout << "SUTT ref_tracks" << ref_tracks.size() << std::endl; + if ( m_provider->msg().level() <= MSG::VERBOSE ) { m_provider->msg(MSG::VERBOSE) << "ref tracks.size() " << m_selectorRef->tracks().size() << endreq; for ( int ii=m_selectorRef->tracks().size() ; ii-- ; ) @@ -1146,7 +1150,9 @@ protected: /// match test and reference tracks m_associator->match( ref_tracks, test_tracks ); - + + // std::cout << "SUTT: execute : N tracks " << ref_tracks.size() << " " << test_tracks.size() << std::endl; + _analysis->execute( ref_tracks, test_tracks, m_associator ); // std::cout << "chain " << m_chainNames[ichain] << " " << "\tvtx name " << vtx_name << std::endl; @@ -1325,6 +1331,8 @@ protected: m_chainNames.at(ic).tail().find("_EFID") != std::string::npos ) mongroup = folder_name + "/EFID"; else if ( m_chainNames.at(ic).tail().find("L2SiTrackFinder") != std::string::npos ) mongroup = folder_name + "/L2STAR"+m_chainNames.at(ic).extra(); else if ( m_chainNames.at(ic).tail().find("InDetTrigParticle") != std::string::npos ) mongroup = folder_name + "/EFID_RUN1"; + else if ( m_chainNames.at(ic).tail().find("_FTKRefit") != std::string::npos ) mongroup = folder_name + "/FTKRefit"; + else if ( m_chainNames.at(ic).tail().find("_FTK") != std::string::npos ) mongroup = folder_name + "/FTK"; else mongroup = folder_name + "/Unknown"; if ( m_chainNames.at(ic).vtx()!="" ) mongroup += "/" + m_chainNames.at(ic).vtx(); diff --git a/Trigger/TrigAnalysis/TrigInDetAnalysisExample/run/tida_athanarun2.py b/Trigger/TrigAnalysis/TrigInDetAnalysisExample/run/tida_athanarun2.py new file mode 100644 index 0000000000000000000000000000000000000000..f4271e17c8b6de0d5da587cbba641ac1f76bfe2d --- /dev/null +++ b/Trigger/TrigAnalysis/TrigInDetAnalysisExample/run/tida_athanarun2.py @@ -0,0 +1,168 @@ +#Skeleton joboption for a simple analysis job + + + +include("runs.py") + +# if athenaCommonFlags.FilesInput()==[]: +# FilesInput=[ +# "root://eosatlas//eos/atlas/atlastier0/rucio/data16_13TeV/physics_Main/00304128/data16_13TeV.00304128.physics_Main.merge.AOD.f716_m1620/data16_13TeV.00304128.physics_Main.merge.AOD.f716_m1620._lb1996._0001.1" +# ] + +FilesInput = files + + +theApp.EvtMax=100000 #says how many events to run over. Set to -1 for all events + + + +import AthenaPoolCnvSvc.ReadAthenaPool #sets up reading of POOL files (e.g. xAODs) +# svcMgr.EventSelector.InputCollections=[os.environ['ASG_TEST_FILE_DATA']] #replace with input file +svcMgr.EventSelector.InputCollections=FilesInput + +algseq = CfgMgr.AthSequencer("AthAlgSeq") #gets the main AthSequencer +# algseq += CfgMgr.WillAlg() #adds an instance of your alg to it + +#only specifying here so that has the standard 'TrigDecisionTool' name +ToolSvc += CfgMgr.Trig__TrigDecisionTool("TrigDecisionTool") + +from TrigEDMConfig.TriggerEDM import EDMLibraries +ToolSvc.TrigDecisionTool.Navigation.Dlls = EDMLibraries + +# IOVDbSvc.DBInstance="" + + +##### Histogram File Part ################# +from AthenaMonitoring.AthenaMonitoringConf import AthenaMonManager +algseq += CfgMgr.AthenaMonManager( "HLTMonManager") +HLTMonManager = algseq.HLTMonManager + + +############ TrigIDtrkMonitoring part ################################ + +from AthenaCommon.AppMgr import ToolSvc + +if ( False ) : + from TrigInDetAnalysisExample.TrigInDetAnalysisExampleConf import TrigTestBase + + tidabjet = TrigTestBase(name = "IDBjetTool", + histoPathBase = "/Trigger/HLT") + tidabjet.AnalysisConfig = "Tier0" + tidabjet.SliceTag = "HLT/TRIDT/Bjet/Expert" + tidabjet.ntupleChainNames += [ + "Offline", + "HLT_j.*bperf_split:key=InDetTrigTrackingxAODCnv_BjetPrmVtx_FTF:roi=SuperRoi" + ] + + ToolSvc += tidabjet; + + HLTMonManager.AthenaMonTools += [ "TrigTestBase/IDBjetTool" ] + + from GaudiSvc.GaudiSvcConf import THistSvc + ServiceMgr += THistSvc() + ServiceMgr.THistSvc.Output = ["AANT DATAFILE='TIDA_T0.root' OPT='RECREATE'"] + HLTMonManager.FileKey = "AANT" + + + +if ( True ) : + + from TrigIDtrkMonitoring.TrigIDtrkMonitoringConfig import TrigIDtrkMonitoringTool + + montools = TrigIDtrkMonitoringTool() + + print montools + + HLTMonManager.AthenaMonTools += montools + + + from GaudiSvc.GaudiSvcConf import THistSvc + ServiceMgr += THistSvc() + ServiceMgr.THistSvc.Output = ["AANT DATAFILE='TIDA_T0.root' OPT='RECREATE'"] + HLTMonManager.FileKey = "AANT" + + + + +############ TrigInDetAnalysis part ################################ + +if ( False ) : + from TrigInDetAnalysisExample.TrigInDetAnalysisExampleConf import TrigTestMonToolAC + TestMonTool = TrigTestMonToolAC( name="TestMonToolAC") + TestMonTool.buildNtuple = True + TestMonTool.AnalysisConfig = "nTuple" #Change to Tier0 for T0 Analysis + TestMonTool.EnableLumi = False + # TestMonTool.RequireDecision = False + TestMonTool.RequireDecision = True + TestMonTool.mcTruth = False + TestMonTool.ntupleChainNames = [''] + + TestMonTool.KeepAllEvents = False + # TestMonTool.TrigConfigTool = "TrigConf::xAODConfigTool" + TestMonTool.ntupleChainNames += [ + "Offline", + "Vertex", + "Muons", + + # "HLT_j.*bperf_split:key=InDetTrigTrackingxAODCnv_BjetPrmVtx_FTF:roi=SuperRoi:vtx=xPrimVx", + # "HLT_j.*bperf_split:key=InDetTrigTrackingxAODCnv_BjetPrmVtx_FTF:roi=SuperRoi", + # "HLT_j.*bperf_split:key=InDetTrigTrackingxAODCnv_Bjet_IDTrig", + # "HLT_j.*bperf_split:key=InDetTrigTrackingxAODCnv_Bjet_FTF", + + "HLT_j.*b.*perf_split:key=InDetTrigTrackingxAODCnv_BjetPrmVtx_FTF:roi=SuperRoi:vtx=xPrimVx", + "HLT_j.*b.*perf_split:key=InDetTrigTrackingxAODCnv_BjetPrmVtx_FTF:roi=SuperRoi:vtx=EFHistoPrmVtx", + # "HLT_j.*b.*perf_split:key=InDetTrigTrackingxAODCnv_BjetPrmVtx_FTF:roi=SuperRoi:vtx=xPrimVx", + # "HLT_j.*b.*perf_split:key=InDetTrigTrackingxAODCnv_BjetPrmVtx_FTF:roi=SuperRoi:vtx=EFHistoPrmVtx", + # "HLT_j.*b.*perf_split:key=InDetTrigTrackingxAODCnv_BjetPrmVtx_FTF:roi=SuperRoi", +# "HLT_j.*b.*perf_split:key=InDetTrigTrackingxAODCnv_Bjet_IDTrig", + "HLT_j.*b.*perf_split:key=InDetTrigTrackingxAODCnv_Bjet_FTF" + + #EFHistoPrmVtx + # "Electrons", + + # "Electrons_MediumCB", + # "Electrons_TightCB", + # "Electrons_MediumLH", + # "Electrons_TightLH", + # "Taus", + + # "Taus_1Prong", + # "Taus_Loose_1Prong", + # "Taus_Medium_1Prong", + # "Taus_Tight_1Prong", + # "Taus_3Prong", + # "Taus_Loose_3Prong", + # "Taus_Medium_3Prong", + # "Taus_Tight_3Prong", + + # "HLT_e.*idperf.*:InDetTrigTrackingxAODCnv_Electron_FTF", + # "HLT_e.*idperf.*:InDetTrigTrackingxAODCnv_Electron_IDTrig", + "HLT_mu.*_idperf.*:InDetTrigTrackingxAODCnv_Muon_FTF", + "HLT_mu.*_idperf.*:InDetTrigTrackingxAODCnv_Muon_IDTrig", + "HLT_mu.*_idperf.*:InDetTrigTrackingxAODCnv_Muon_FTF;DTE", +# "HLT_mu.*_idperf.*:InDetTrigTrackingxAODCnv_Muon_IDTrig;DTE", + # "HLT_mu.*idperf.*:InDetTrigTrackingxAODCnv_Muon_IDTrig", + # "HLT_tau.*idperf.*track:key=InDetTrigTrackingxAODCnv_Tau_IDTrig", + # "HLT_tau.*idperf.*track:key=InDetTrigTrackingxAODCnv_Tau_FTF", + # "HLT_tau.*idperf.*tracktwo:key=InDetTrigTrackingxAODCnv_TauCore_FTF:roi=forID1", + # "HLT_tau.*idperf.*tracktwo:key=InDetTrigTrackingxAODCnv_TauIso_FTF:roi=forID3", + # "HLT_tau.*idperf.*tracktwo:key=InDetTrigTrackingxAODCnv_Tau_IDTrig:roi=forID3", + + # "HLT_tau.*idperf.*tracktwo:key=InDetTrigTrackingxAODCnv_TauCore_FTF:roi=forID1", + # "HLT_tau.*idperf.*tracktwo:key=InDetTrigTrackingxAODCnv_TauIso_FTF:roi=forID3", + # "HLT_tau.*idperf.*tracktwo:key=InDetTrigTrackingxAODCnv_Tau_IDTrig:roi=forID3", + ] + + from AthenaCommon.AppMgr import release_metadata + d = release_metadata() + TestMonTool.releaseMetaData = d['nightly name'] + " " + d['nightly release'] + " " + d['date'] + " " + d['platform'] + " " + d['release'] + TestMonTool.outputFileName="TrkNtuple.root" + ToolSvc += TestMonTool + HLTMonManager.AthenaMonTools += [ "TrigTestMonToolAC/TestMonToolAC" ] + print TestMonTool + + + + +# include("AthAnalysisBaseComps/SuppressLogging.py") #Optional include to suppress as much athena output as possible. Keep at bottom of joboptions so that it doesn't suppress the logging of the things you have configured above + diff --git a/Trigger/TrigAnalysis/TrigInDetAnalysisExample/src/Analysis_Tier0.cxx b/Trigger/TrigAnalysis/TrigInDetAnalysisExample/src/Analysis_Tier0.cxx index 291050ac4e972176b1db54794362f036512d6e22..1d994822dc682eef0aba2fe10137cb88dc07d628 100644 --- a/Trigger/TrigAnalysis/TrigInDetAnalysisExample/src/Analysis_Tier0.cxx +++ b/Trigger/TrigAnalysis/TrigInDetAnalysisExample/src/Analysis_Tier0.cxx @@ -36,6 +36,38 @@ void Analysis_Tier0::initialise() { addHistogram(h_chain); + /// variable width bins for track occupancy + + double vnbins[81] = { + -0.5, + 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, + 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, 16.5, 17.5, 18.5, 19.5, + 20.5, 21.5, 22.5, 23.5, 24.5, 25.5, 26.5, 27.5, 28.5, 29.5, + 31.5, 32.5, 33.5, 34.5, 36.5, 37.5, 39.5, + 40.5, 42.5, 43.5, 45.5, 47.5, 49.5, + 50.5, 52.5, 54.5, 57.5, 59.5, + 61.5, 63.5, 66.5, 69.5, + 71.5, 74.5, 77.5, + 80.5, 83.5, 86.5, + 90.5, 93.5, 97.5, + 100.5, 104.5, 108.5, + 113.5, 117.5, + 122.5, 126.5, + 131.5, 136.5, + 142.5, 147.5, + 153.5, 159.5, + 165.5, + 171.5, 178.5, + 185.5, + 192.5, + 200.5 }; + + + + h_ntrk = new TH1F( "reftrk_N", "Reference tracks", 80, vnbins ); + + addHistogram(h_ntrk); + /// reference track distributions // double pt_bins[25] = { 0, 1, 2, 3, 4, 8, 10, 12, 14, 16, 18, 20, 25, 30, 35, 40, 45, 50, 60, 70, 80, 90, 100 }; @@ -76,6 +108,10 @@ void Analysis_Tier0::initialise() { /// test track distributions + h_ntrk_rec = new TH1F( "testtrk_N", "Test tracks", 80, vnbins ); + + addHistogram(h_ntrk_rec); + // h_trkpT_rec = new TH1F("testtrk_pT" , "Test track pT", 25, 0., 100.); h_trkpT_rec = new TH1F("testtrk_pT" , "Test track pT", 25, &ptbins[0] ); h_trkphi_rec = new TH1F("testtrk_phi", "Test track Phi", 25, -M_PI, M_PI); @@ -121,9 +157,9 @@ void Analysis_Tier0::initialise() { h_z0eff = new TProfile( "Eff_z0", "z0 efficiency", 50, -225., 225. ); h_nVtxeff = new TProfile( "Eff_nVtx", "nVtx efficiency", 41, -0.5, 40.5 ); - h_vtxlbeff = new TProfile( "Eff_lb", "efficinecy vs lumiblock", 301, -0.5, 3009.5 ); + h_lbeff = new TProfile( "Eff_lb", "efficinecy vs lumiblock", 301, -0.5, 3009.5 ); - addHistogram( h_vtxlbeff ); + addHistogram( h_lbeff ); h_trkvtx_x_lb = new TProfile( "trkvtx_x_vs_lb", "track vertex x vs lumiblock", 301, -0.5, 3009.5 ); h_trkvtx_y_lb = new TProfile( "trkvtx_y_vs_lb", "track vertex y vs lumiblock", 301, -0.5, 3009.5 ); @@ -315,7 +351,7 @@ void Analysis_Tier0::initialise() { void Analysis_Tier0::execute(const std::vector<TIDA::Track*>& referenceTracks, - const std::vector<TIDA::Track*>& /*testTracks*/, + const std::vector<TIDA::Track*>& testTracks, TrackAssociator* associator) { /// Loop over reference tracks @@ -326,6 +362,9 @@ void Analysis_Tier0::execute(const std::vector<TIDA::Track*>& referenceTracks, /// of passed events for this chain h_chain->Fill( 0.5 ) ; + h_ntrk->Fill( referenceTracks.size() ); + h_ntrk_rec->Fill( testTracks.size() ); + for( ; reference!=referenceEnd ; reference++ ) { // Get reference parameters @@ -353,6 +392,8 @@ void Analysis_Tier0::execute(const std::vector<TIDA::Track*>& referenceTracks, h_phieff->Fill( referencePhi, eff_weight ); h_nVtxeff->Fill( m_nVtx, eff_weight ); + h_lbeff->Fill( event()->lumi_block(), eff_weight ); + h_trkpT->Fill( std::fabs(referencePT)*0.001 ); h_trketa->Fill( referenceEta ); h_trkphi->Fill( referencePhi ); diff --git a/Trigger/TrigAnalysis/TrigInDetAnalysisExample/src/VtxAnalysis.cxx b/Trigger/TrigAnalysis/TrigInDetAnalysisExample/src/VtxAnalysis.cxx index ba8e69644164644c4537ab0d91ba67fb09ffb6bf..12295d72f69566488f6be9241c4f3dc5f71ac32d 100644 --- a/Trigger/TrigAnalysis/TrigInDetAnalysisExample/src/VtxAnalysis.cxx +++ b/Trigger/TrigAnalysis/TrigInDetAnalysisExample/src/VtxAnalysis.cxx @@ -54,6 +54,7 @@ void VtxAnalysis::initialise() { + hnvtx = new TH1F( "vx_nvtx", ";number of vertices", 100, -0.5, 100.5 ); hzed = new TH1F( "vx_zed", ";vtx z [mm]", 200, -300, 300 ); hntrax = new TH1F( "vx_ntrax", ";number of tracks", 100, 0.5, 200.5 ); @@ -75,7 +76,7 @@ void VtxAnalysis::initialise() { addHistogram( hzed_res ); - rdz_vs_zed = new TProfile( "vx_rdz_vs_zed", "rdz_vs_zed; vtx z [mm];z residual [mm]", 100, -300, 300 ); + rdz_vs_zed = new TProfile( "vx_rdz_vs_zed", "rdz_vs_zed; vtx z [mm];z residual [mm]", 100, -300, 300 ); rdz_vs_ntrax = new TProfile( "vx_rdz_vs_ntrax", "rdz_vs_ntrax;number of tracks;z residual [mm]", 80, vnbins ); rdz_vs_nvtx = new TProfile( "vx_rdz_vs_nvtx", "rdz_vs_nvtx;number of vertices;z residual [mm]", 51, -0.125, 50.125 ); @@ -85,15 +86,15 @@ void VtxAnalysis::initialise() { // rdz_vs_mu = new TProfile( "rdz_vs_mu", 30, 0, 30, 400, -20, 20 ); - eff_zed = new TProfile( "vx_zed_eff", "zed_eff;efficiency [%];offline vtx z [mm]", 200, -300, 300 ); - eff_ntrax = new TProfile( "vx_ntrax_eff", "ntrax_eff;number of tracks;efficiency [%]", 80, vnbins ); - eff_nvtx = new TProfile( "vx_nvtx_eff", "nvtx_eff;number of vertices;efficiency [%]", 100, -0.5, 100.5 ); - eff_mu = new TProfile( "vx_mu_eff", "lb_eff;<#mu>;efficiency [%]", 61, -0.5, 60.5 ); - eff_lb = new TProfile( "vx_lb_eff", "lb_eff;lumi block;efficiency [%]", 300, -0.5, 3009.5 ); - // eff_mu = new Efficiency( hmu, "mu_eff" ); + eff_zed = new TProfile( "vx_zed_eff", "zed_eff;efficiency;offline vtx z [mm]", 200, -300, 300 ); + eff_ntrax = new TProfile( "vx_ntrax_eff", "ntrax_eff;number of tracks;efficiency", 80, vnbins ); + eff_nvtx = new TProfile( "vx_nvtx_eff", "nvtx_eff;number of vertices;efficiency", 100, -0.5, 100.5 ); + eff_mu = new TProfile( "vx_mu_eff", "lb_eff;<#mu>;efficiency", 61, -0.5, 60.5 ); + eff_lb = new TProfile( "vx_lb_eff", "lb_eff;lumi block;efficiency", 151, -0.5, 3019.5 ); addHistogram( eff_zed ); addHistogram( eff_ntrax ); + addHistogram( eff_nvtx ); addHistogram( eff_mu ); addHistogram( eff_lb );