|
ATLAS Offline Software
|
Go to the documentation of this file.
13 #include "GaudiKernel/ITHistSvc.h"
14 #include "GaudiKernel/ConcurrencyFlags.h"
30 const std::string&
name,
34 declareInterface< ISecVertexInJetFinder >(
this);
53 ATH_MSG_DEBUG(
"Using InDetEtaDependentCutsSvc. Individual inclusive track selections from config not used");
56 ATH_MSG_DEBUG(
"Using individual inclusive track selections from config");
59 if (
m_fitter.retrieve().isFailure()) {
61 return StatusCode::SUCCESS;
68 return StatusCode::SUCCESS;
91 ATH_MSG_FATAL(
"Filling histograms not supported in MT jobs.");
92 return StatusCode::FAILURE;
95 SmartIF<ITHistSvc> hist_root{Gaudi::svcLocator()->service(
"THistSvc")};
101 else histDir=
"/file1/stat/SVrtInJet"+
name()+
"/";
102 m_h = std::make_unique<Hists>();
116 for(
int ntv=2; ntv<=10; ntv++)
m_chiScale[ntv]=TMath::ChisquareQuantile(0.9,2.*ntv-3.)/ntv;
134 return StatusCode::SUCCESS;
139 const std::string& histDir)
141 m_hb_massPiPi =
new TH1D(
"massPiPi",
" mass PiPi",160,200., 1000.);
142 m_hb_massPiPi1 =
new TH1D(
"massPiPi1",
" mass PiPi",100,200., 2000.);
143 m_hb_massPPi =
new TH1D(
"massPPi",
" massPPi", 100,1000., 1250.);
144 m_hb_massEE =
new TH1D(
"massEE",
" massEE", 100,0., 200.);
145 m_hb_nvrt2 =
new TH1D(
"nvrt2",
" vertices2", 50,0., 50.);
146 m_hb_ratio =
new TH1D(
"ratio",
" ratio", 51,0., 1.02);
147 m_hb_totmass =
new TH1D(
"totmass",
" totmass", 250,0., 10000.);
148 m_hb_totmassEE =
new TH1D(
"massEEcomvrt",
" totmass EE common vertex", 100,0., 1000.);
149 m_hb_totmass2T0 =
new TH1D(
"mass2trcomvrt0",
" totmass 2tr common vertex", 800,0., 4000.);
150 m_hb_totmass2T1 =
new TH1D(
"mass2trcomvrt1",
" totmass 2tr common vertex", 200,0., 10000.);
151 m_hb_totmass2T2 =
new TH1D(
"mass2trcomvrt2",
" totmass 2tr common vertex", 200,0., 10000.);
152 m_hb_impact =
new TH1D(
"impact",
" impact", 100,0., 20.);
153 m_hb_impactR =
new TH1D(
"impactR",
" impactR", 400,-30., 70.);
154 m_hb_impactZ =
new TH1D(
"impactZ",
" impactZ", 100,-30., 70.);
155 m_hb_impactRZ =
new TH2D(
"impactRZ",
" impactRZ", 40,-10., 10., 60, -30.,30. );
156 m_hb_trkD0 =
new TH1D(
"trkD0",
" d0 of tracks", 100,-20., 20.);
157 m_hb_r2d =
new TH1D(
"r2interact",
"Interaction radius 2tr selected", 150,0., 150.);
158 m_hb_r1dc =
new TH1D(
"r1interactCommon",
"Interaction 1tr radius common", 150,0., 150.);
159 m_hb_r2dc =
new TH1D(
"r2interactCommon",
"Interaction 2tr radius common", 150,0., 150.);
160 m_hb_r3dc =
new TH1D(
"r3interactCommon",
"Interaction 3tr radius common", 150,0., 150.);
161 m_hb_rNdc =
new TH1D(
"rNinteractCommon",
"Interaction Ntr radius common", 150,0., 150.);
162 m_hb_dstToMat =
new TH1D(
"dstToMatL",
"Distance to material layer", 80,0., 40.);
163 m_hb_impV0 =
new TH1D(
"impactV0",
" V0 impact", 100,0., 50.);
164 m_hb_ntrkjet =
new TH1D(
"ntrkjet",
" NTrk in jet", 50,0., 50.);
165 m_hb_jmom =
new TH1D(
"jetmom",
" Jet mom", 200,0., 2000000.);
166 m_hb_mom =
new TH1D(
"jetmomvrt",
" Jet mom with sec. vertex", 200,0., 2000000.);
167 m_hb_signif3D =
new TH1D(
"signif3D",
" Signif3D for initial 2tr vertex", 140,-20., 50.);
168 m_hb_sig3DTot =
new TH1D(
"sig3dcommon",
" Signif3D for common vertex", 140,-20., 50.);
169 m_hb_sig3D1tr =
new TH1D(
"sig3D1tr",
"Signif3D for 1tr vertices", 140,-20., 50.);
170 m_hb_sig3D2tr =
new TH1D(
"sig3D2tr",
"Signif3D for 2tr single vertex", 140,-20., 50.);
171 m_hb_sig3DNtr =
new TH1D(
"sig3DNtr",
"Signif3D for many-tr single vertex", 140,-20., 50.);
173 m_hb_distVV =
new TH1D(
"distvv",
"Vertex-Vertex dist", 100,0., 20.);
174 m_hb_diffPS =
new TH1D(
"diffPS",
"Primary-Secondary assoc", 200,-20., 20.);
175 m_hb_trkPtMax =
new TH1D(
"trkPtMax",
"Maximal track Pt to jet", 100, 0., 5000.);
176 m_hb_rawVrtN =
new TH1F(
"rawVrtN",
"Number of raw vertices multivertex case", 20, 0., 20.);
178 m_hb_trkPErr =
new TH1F(
"trkPErr",
"Track momentum error for P>10 GeV", 100, 0., 0.5);
231 m_tuple =
new TTree(
"Tracks",
"Tracks");
289 return StatusCode::SUCCESS;
297 return StatusCode::SUCCESS;
304 const TLorentzVector & jetDir,
305 const std::vector<const xAOD::IParticle*> & IInpTrk)
309 std::vector<const xAOD::TrackParticle*> InpTrk;
310 std::vector<const xAOD::TrackParticle*> SelSecTrk;
311 std::vector< std::vector<const xAOD::TrackParticle*> > SelSecTrkPerVrt;
312 std::vector<const xAOD::TrackParticle*> xaodTrkFromV0;
313 std::vector<xAOD::Vertex*> listVrtSec(0);
314 double SecVtxMass = 0.;
316 double EnergyJet = 0.;
317 int N2trVertices = 0 ;
324 h.m_curTup->nTrkInJet=0;
327 h.m_curTup->TotM=0.;
h.m_curTup->ewgt=1.;
335 InpTrk.clear(); InpTrk.reserve(IInpTrk.size());
336 std::vector<const xAOD::IParticle*>::const_iterator i_itrk;
337 for (i_itrk = IInpTrk.begin(); i_itrk < IInpTrk.end(); ++i_itrk) {
339 if(
tmp)InpTrk.push_back(
tmp);
343 std::unique_ptr<workVectorArrxAOD> tmpVectxAOD= std::make_unique<workVectorArrxAOD>();
344 tmpVectxAOD->InpTrk.resize(InpTrk.size());
345 std::copy(InpTrk.begin(),InpTrk.end(), tmpVectxAOD->InpTrk.begin());
347 SelSecTrkPerVrt.swap(tmpVectxAOD->FoundSecondTracks);
348 xaodTrkFromV0.swap(tmpVectxAOD->TrkFromV0);
352 if(secVrt !=
nullptr) listVrtSec.push_back(secVrt);
355 h.m_pr_effVrt->Fill((
float)nRefPVTrk,0.);
356 h.m_pr_effVrtEta->Fill( jetDir.Eta(),0.);
370 std::vector<const xAOD::IParticle*> iparTrkFromV0(0);
371 for(
auto &
i : xaodTrkFromV0)iparTrkFromV0.push_back(
i);
381 catch (std::bad_alloc& ba){
382 ATH_MSG_DEBUG(
"Trk::VxSecVKalVertexInfo allocation failure! "<< ba.what());
def retrieve(aClass, aKey=None)
bool msgLvl(const MSG::Level lvl) const
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
def TProfile(*args, **kwargs)
::StatusCode StatusCode
StatusCode definition for legacy code.
std::pair< std::vector< unsigned int >, bool > res
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
std::vector< Result > Results
std::unique_ptr< TH2D > ITkPixMaterialMap()
Class describing a Vertex.
def TH1F(name, title, nxbins, bins_par2, bins_par3=None, path='', **kwargs)
#define ATLAS_THREAD_SAFE
Class describing a TrackParticle.