8def SampleHandler_QueryAmi(samples):
9
10
11
12
13
14
15 amiClient = pyAMI.client.Client('atlas')
16
17
18
19
20
21
22
23
24
25 data = ROOT.SH.MetaDataQuery()
26 data.messages = 'done by ami query'
27
28
29 for sample in samples:
30 sample_noscope = sample.split(':')[-1]
31
32 mydata = ROOT.SH.MetaDataSample(sample)
33
34
35 mydata.source = 'https://atlas-ami.cern.ch/AMI/pyAMI/'
36 mydata.unknown = 0
37
38 if sample.startswith("mc"):
39 mydata.isData = 0
40 elif sample.startswith("data"):
41 mydata.isData = 1
42 else:
43 mydata.isData = -1
44
45
46
47 if "_tid" in sample_noscope:
48 print(
"Stripping tid suffix from " + sample_noscope)
49 sample_noscope = sample_noscope.split("_tid")[0]
50
51
52
53
54 try:
55 amiinfo = get_dataset_info(amiClient, sample_noscope)[0]
56 except Exception as e:
57 print(
"failed to get AMI info for " + sample_noscope +
": " + str(e))
58 mydata.unknown = 1
59 data.addSample(mydata)
60 continue
61
62 mydata.nevents = int(amiinfo['totalEvents'])
63
64
65
66 if mydata.isData == 1:
67 mydata.crossSection = -1
68 mydata.filterEfficiency = -1
69 else:
70 mydata.luminosity = -1
71
72 try:
73 xsec = float(amiinfo['approx_crossSection'])
74 effic = float(amiinfo['approx_GenFiltEff'])
75 except KeyError as e:
76 print(
"AMI info missing cross-section/filter efficiency for " + sample_noscope +
": " + str(e))
77 mydata.unknown = 1
78 data.addSample(mydata)
79 continue
80 mydata.crossSection = xsec
81 mydata.filterEfficiency = effic
82 if mydata.crossSection > 0 and mydata.filterEfficiency > 0:
83 mydata.luminosity = float(float(mydata.nevents) / (mydata.crossSection * mydata.filterEfficiency))
84
85 data.addSample(mydata)
86 return data
void print(char *figname, TCanvas *c1)