ATLAS Offline Software
SuperChicUtils.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
2 
3 
4 import subprocess, os, shlex, re
5 
6 from AthenaCommon import Logging
7 
8 
9 logger = Logging.logging.getLogger("Superchic_i")
10 
11 
13 
14  def __init__(self, runArgs):
15  self.superchicpath = os.environ['SUPERCHIC_SOURCE_PATH']
16 
17  #SuperChic specific variables for input.DAT, see writeInputDAT function for more elaboration
18  self.rts = 13000. #collision energy (GeV)
19  if hasattr(runArgs,"ecmEnergy"):
20  self.rts = runArgs.ecmEnergy
21 
22  self.isurv = 4 #Model of soft survival (from 1 -> 4, corresponding to arXiv:1306.2149)
23  self.intag = 'in' #tag for input files
24  self.PDFname = 'MMHT2014lo68cl'
25  self.PDFmember = 0
26  self.proc = 5 #Please consult Superchic Manual https://superchic.hepforge.org/
27  self.beam = 'prot'
28  self.outtg = 'out'
29  self.sfaci = True
30  self.diff = 'el' #interaction: elastic ('el'), single ('sd','sda','sdb') and double ('dd') dissociation.
31  self.an = 208
32  self.az = 82
33  self.rz = 6.68
34  self.dz = 0.447
35  self.rn = 6.7
36  self.dn = 0.55
37  self.ionqcd = 'coh'
38  self.ionbreakup = True
39  self.fAA = '00'
40  self.fracsigX = 1
41  self.ncall = 10000
42  self.itmx = 10
43  self.prec = 0.5
44  self.ncall1 = 10000
45  self.inccall = 10000
46  self.itend = 1000
47 
48  self.iseed = 34
49  if hasattr(runArgs,"randomSeed"):
50  self.iseed = runArgs.randomSeed
51 
52  self.genunw = True
53 
54  self.nev = "500"
55  if hasattr(runArgs,"maxEvents"):
56  self.nev = runArgs.maxEvents
57 
58  self.erec = 'lhe' #output file type
59  self.readwt = False
60  self.wtmax = 0
61  self.ymin = -2.4 # Minimum object rapidity Y_X
62  self.ymax = 2.4 # Maximum object rapidity Y_X
63  self.mmin = 6. # Minimum object mass M_X
64  self.mmax = 500. # Maximum object mass M_X
65  self.gencuts = True # Generate cuts below
66  self.scorr = True
67  self.fwidth = True
68  self.ptxmax = 100.
69  self.ptamin = 3.0 # Minimum pT of outgoing object a (gamma)
70  self.ptbmin = 3.0 # Minimum pT of outgoing object b (gamma)
71  self.etaamin = -2.4 # Minimum eta of outgoing object a
72  self.etaamax = 2.4 # Maximum eta of outgoing object a
73  self.etabmin = -2.4 # Minimum eta of outgoing object b
74  self.etabmax = 2.4 # Maximum eta of outgoing object b
75  self.acoabmax = 100.
76  self.ptcmin = 0
77  self.etacmin = -2.5
78  self.etacmax = 2.5
79  self.ptdmin = 0
80  self.etadmin = -2.5
81  self.etadmax = 2.5
82  self.ptemin = 0
83  self.etaemin = -2.5
84  self.etaemax = 2.5
85  self.ptfmin = 0
86  self.etafmin = -2.5
87  self.etafmax = 2.5
88  self.rjet = 0.6
89  self.jalg = 'antikt'
90  self.m2b = 0.133
91  self.pdgid1 = 211
92  self.pdgid2 = -211
93  self.malp = 1000
94  self.gax = 0.001
95  self.alpt = 'ps'
96  self.mpol = 500
97  self.mmon = 933
98  self.gamm = 10
99  self.mcharg = 100
100  self.mneut = 80
101  self.wlp = 'el'
102  self.wlm = 'el'
103  self.tau = 0.04
104  self.mxs = 100
105 
106  def toFortran(self):
107 
108  def fortDouble(x):
109  return str(x)+"d0"
110  def fortInt(x):
111  return str(x)
112  def fortBool(x):
113  return '.true.' if x else '.false.'
114  def fortStr(x):
115  return "'{}'".format(x)
116 
117  conf = ""
118  conf+="***********************************************************************************\n"
119  conf+="****** Initialize afain if FIRST FIVE PARAMETERS ARE CHANGED (and beam = 'prot'):******\n"
120  conf+="***********************************************************************************\n"
121  conf+=fortDouble(self.rts) + " ! [rts] : CMS collision energy (GeV) \n"
122  conf+=fortInt(self.isurv) + " ! [isurv] : Model of soft survival (from 1 -> 4)\n"
123  conf+=fortStr(self.intag) + " ! [intag] for input files \n"
124  conf+="***********************************************************************************\n"
125  conf+="***********************************************************************************\n"
126  conf+=fortStr(self.PDFname) + " ! [PDFname] : PDF set \n"
127  conf+=fortInt(self.PDFmember) + " ! [PDFmember] : PDF member \n"
128  conf+="***********************************************************************************\n"
129  conf+=fortInt(self.proc) + " ! [proc] : Process number \n"
130  conf+=fortStr(self.beam) + " ! [beam] : Beam type ('prot', 'ion', 'ionp' or 'el') \n"
131  conf+=fortStr(self.outtg) + " ! [outtg] : for output file \n"
132  conf+=fortBool(self.sfaci) + " ! [sfaci] : Include soft survival effects \n"
133  conf+="***********************************************************************************\n"
134  conf+="***********************************************************************************\n"
135  conf+="***********************************************************************************\n"
136  conf+=fortStr(self.diff) + " ! [diff] : dissociation flag \n"
137  conf+="***********************************************************************************\n"
138  conf+=fortDouble(self.an) + " ! [an] : Ion mass number \n"
139  conf+=fortDouble(self.az) + " ! [az] : Ion atomic number \n"
140  conf+=fortDouble(self.rz) + " ! [rz] : Ion proton density - radius \n"
141  conf+=fortDouble(self.dz) + " ! [dz] : Ion proton density - skin thickness \n"
142  conf+=fortDouble(self.rn) + " ! [rn] : Ion neutron density - radius \n"
143  conf+=fortDouble(self.dn) + " ! [dn] : Ion neutron density - skin thickness \n"
144  conf+=fortStr(self.ionqcd) + " ! [ionqcd] : Coherent ('coh') or incoherent ('incoh') for QCD-induced processes \n"
145  conf+=fortBool(self.ionbreakup) + " ! [ionbreakup] \n"
146  conf+=fortStr(self.fAA) + " ! [fAA] \n"
147  conf+=fortDouble(self.fracsigX) + " ! [fracsigX] : multiply sig_(gamA) by this factor (1d0 - default) \n"
148  conf+="***********************************************************************************\n"
149  conf+="*************Integration parameters************************************************\n"
150  conf+="***********************************************************************************\n"
151  conf+=fortInt(self.ncall) + " ! [ncall] : Number of calls for preconditioning \n"
152  conf+=fortInt(self.itmx) + " ! [itmx] : Number of iterations for preconditioning \n"
153  conf+=fortDouble(self.prec) + " ! [prec] : Relative accuracy (in %) in main run \n"
154  conf+=fortInt(self.ncall1) + " ! [ncall1] : Number of calls in first iteration \n"
155  conf+=fortInt(self.inccall) + " ! [inccall] : Number of increase calls per iteration \n"
156  conf+=fortInt(self.itend) + " ! [itend] : Maximum number of iterations \n"
157  conf+=fortInt(self.iseed) + " ! [iseed] : Random number seed (integer > 0) \n"
158  conf+="***********************************************************************************\n"
159  conf+="********************Unweighted events**********************************************\n"
160  conf+="***********************************************************************************\n"
161  conf+=fortBool(self.genunw) + " ! [genunw] : Generate unweighted events \n"
162  conf+=fortInt(int(self.nev*1.01)) + " ! [nev] : Number of events (preferably controlled by maxEvents option in Gen_tf command) \n"
163  conf+=fortStr(self.erec) + " ! [erec] : Event record format ('hepmc','lhe','hepevt') \n"
164  conf+=fortBool(self.readwt) + " ! [readwt] : Set to true to read in pre-calculated maxium weight below \n"
165  conf+=fortDouble(self.wtmax) + " ! [wtmax] : Maximum weight \n"
166  conf+="***********************************************************************************\n"
167  conf+="***********************************************************************************\n"
168  conf+="******************* general cuts ************************************************\n"
169  conf+=fortDouble(self.ymin) + " ! [ymin] : Minimum object rapidity Y_X \n"
170  conf+=fortDouble(self.ymax) + " ! [ymax] : Maximum object rapidity Y_X \n"
171  conf+=fortDouble(self.mmin) + " ! [mmin] : Minimum object mass M_X (redundant for resonance production) \n"
172  conf+=fortDouble(self.mmax) + " ! [mmax] : Maximum object mass M_X (redundant for resonance production) \n"
173  conf+=fortBool(self.gencuts) + " ! [gencuts] : Generate cuts below \n"
174  conf+=fortBool(self.scorr) + " ! [scorr] : Include spin correlations (for chi_c/b decays) \n"
175  conf+=fortBool(self.fwidth) + " ! [fwidth] : Include finite width (for chi_c decays) \n"
176  conf+="***********************************************************************************\n"
177  conf+="************ See manual for momentum assignments***********************************\n"
178  conf+="***********************************************************************************\n"
179  conf+="******************* Proton Cuts ***************************************************\n"
180  conf+="***********************************************************************************\n"
181  conf+=fortDouble(self.ptxmax) + " ! [ptxmax] : max pT of the system \n"
182  conf+="***********************************************************************************\n"
183  conf+="**********2 body final states : p(a) + p(b) ***************************************\n"
184  conf+="***********************************************************************************\n"
185  conf+=fortDouble(self.ptamin) + " ! [ptamin] \n"
186  conf+=fortDouble(self.ptbmin) + " ! [ptbmin] \n"
187  conf+=fortDouble(self.etaamin) + " ! [etaamin] \n"
188  conf+=fortDouble(self.etaamax) + " ! [etaamax] \n"
189  conf+=fortDouble(self.etabmin) + " ! [etabmin] \n"
190  conf+=fortDouble(self.etabmax) + " ! [etabmax] \n"
191  conf+=fortDouble(self.acoabmax) + " ! [acoabmax] \n"
192  conf+="***********************************************************************************\n"
193  conf+="****** 3 body final states : p(a) + p(b) + p(c) ***********************************\n"
194  conf+="***********************************************************************************\n"
195  conf+=fortDouble(self.ptamin) + " ! [ptamin] \n"
196  conf+=fortDouble(self.ptbmin) + " ! [ptbmin] \n"
197  conf+=fortDouble(self.ptcmin) + " ! [ptcmin] \n"
198  conf+=fortDouble(self.etaamin) + " ! [etaamin] \n"
199  conf+=fortDouble(self.etaamax) + " ! [etaamax] \n"
200  conf+=fortDouble(self.etabmin) + " ! [etabmin] \n"
201  conf+=fortDouble(self.etabmax) + " ! [etabmax] \n"
202  conf+=fortDouble(self.etacmin) + " ! [etacmin] \n"
203  conf+=fortDouble(self.etacmax) + " ! [etacmax] \n"
204  conf+="***********************************************************************************\n"
205  conf+="****** 4 body final states : p(a) + p(b) + p(c) + p(d) ****************************\n"
206  conf+="***********************************************************************************\n"
207  conf+=fortDouble(self.ptamin) + " ! [ptamin] \n"
208  conf+=fortDouble(self.ptbmin) + " ! [ptbmin] \n"
209  conf+=fortDouble(self.ptcmin) + " ! [ptcmin] \n"
210  conf+=fortDouble(self.ptdmin) + " ! [ptdmin] \n"
211  conf+=fortDouble(self.etaamin) + " ! [etaamin] \n"
212  conf+=fortDouble(self.etaamax) + " ! [etaamax] \n"
213  conf+=fortDouble(self.etabmin) + " ! [etabmin] \n"
214  conf+=fortDouble(self.etabmax) + " ! [etabmax] \n"
215  conf+=fortDouble(self.etacmin) + " ! [etacmin] \n"
216  conf+=fortDouble(self.etacmax) + " ! [etacmax] \n"
217  conf+=fortDouble(self.etadmin) + " ! [etadmin] \n"
218  conf+=fortDouble(self.etadmax) + " ! [etadmax] \n"
219  conf+="***********************************************************************************\n"
220  conf+="****** 6 body final states : p(a) + p(b) + p(c) + p(d) + p(e) + p(f) **************\n"
221  conf+="***********************************************************************************\n"
222  conf+=fortDouble(self.ptamin) + " ! [ptamin] \n"
223  conf+=fortDouble(self.ptbmin) + " ! [ptbmin] \n"
224  conf+=fortDouble(self.ptcmin) + " ! [ptcmin] \n"
225  conf+=fortDouble(self.ptdmin) + " ! [ptdmin] \n"
226  conf+=fortDouble(self.ptemin) + " ! [ptemin] \n"
227  conf+=fortDouble(self.ptfmin) + " ! [ptfmin] \n"
228  conf+=fortDouble(self.etaamin) + " ! [etaamin] \n"
229  conf+=fortDouble(self.etaamax) + " ! [etaamax] \n"
230  conf+=fortDouble(self.etabmin) + " ! [etabmin] \n"
231  conf+=fortDouble(self.etabmax) + " ! [etabmax] \n"
232  conf+=fortDouble(self.etacmin) + " ! [etacmin] \n"
233  conf+=fortDouble(self.etacmax) + " ! [etacmax] \n"
234  conf+=fortDouble(self.etadmin) + " ! [etadmin] \n"
235  conf+=fortDouble(self.etadmax) + " ! [etadmax] \n"
236  conf+=fortDouble(self.etaemin) + " ! [etaemin] \n"
237  conf+=fortDouble(self.etaemax) + " ! [etaemax] \n"
238  conf+=fortDouble(self.etaemin) + " ! [etafmin] \n"
239  conf+=fortDouble(self.etafmax) + " ! [etafmax] \n"
240  conf+="***********************************************************************************\n"
241  conf+="******************* jet algorithm parameters **************************************\n"
242  conf+="***********************************************************************************\n"
243  conf+=fortDouble(self.rjet) + " ! [rjet] : Jet Radius \n"
244  conf+=fortStr(self.jalg) + " ! [jalg] : Jet algorithm ('antikt','kt') \n"
245  conf+="***********************************************************************************\n"
246  conf+="***** chi_c/b two-body decays *****************************************************\n"
247  conf+="***********************************************************************************\n"
248  conf+=fortDouble(self.m2b) + " ! [m2b] : mass of decay particles \n"
249  conf+=fortInt(self.pdgid1) + " ! [pdgid1] : PDG number particle 1 \n"
250  conf+=fortInt(self.pdgid2) + " ! [pdgid2] : PDG number particle 2 \n"
251  conf+="***********************************************************************************\n"
252  conf+="******* ALP Parameters ***********************************************************\n"
253  conf+="***********************************************************************************\n"
254  conf+=fortDouble(self.malp) + " ! [malp] : ALP mass (GeV) \n"
255  conf+=fortDouble(self.gax) + " ! [gax] : ALP coupling (GeV^-1) \n"
256  conf+=fortStr(self.alpt) + " ! [alpt] : AlP type (scalar - 'sc', pseudoscalar - 'ps') \n"
257  conf+="***********************************************************************************\n"
258  conf+="**** Monopole Parameters **********************************************************\n"
259  conf+="***********************************************************************************\n"
260  conf+=fortDouble(self.mpol) + " ! [mpol] : Monopole mass \n"
261  conf+=fortDouble(self.mmon) + " ! [mmon] : Monopolium mass \n"
262  conf+=fortDouble(self.gamm) + " ! [gamm] : Monopolium width \n"
263  conf+="***********************************************************************************\n"
264  conf+="**** SUSY Parameters ************************************************************\n"
265  conf+="***********************************************************************************\n"
266  conf+=fortDouble(self.mcharg) + " ! [mcharg] : Chargino/Slepton mass \n"
267  conf+=fortDouble(self.mneut) + " ! [mneut] : Neutralino mass \n"
268  conf+="***********************************************************************************\n"
269  conf+="***********************************************************************************\n"
270  conf+="***********************************************************************************\n"
271  conf+=fortStr(self.wlp) + " ! [wlp] : leptonic decay (either 'mu' or 'el') for Wplus \n"
272  conf+=fortStr(self.wlm) + " ! [wlm] : leptonic decay (either 'mu' or 'el') for Wminus \n"
273 
274  conf+="****************************************************************************************\n"
275  conf+="****** V+X simplified model \n"
276  conf+="****************************************************************************************\n"
277  conf+=fortDouble(self.tau) + " ! [tau] : mass distribution decay constant (GeV^-1) \n"
278  conf+=fortDouble(self.mxs) + " ! [mxs] : mass of MX \n"
279 
280 
281  return conf
282 
283  def outputLHEFile(self):
284  return "evrecs/evrec"+self.outtg+".dat"
285 
286 
287 def writeInputDAT(Init):
288 
289  with open("input.DAT", "w") as outF:
290  outF.write(Init.toFortran())
291 
292  return
293 
294 
295 def run_command(command, stdin = None):
296  """
297  Run a command and print output continuously
298  """
299  process = subprocess.Popen(shlex.split(command), stdout=subprocess.PIPE, stdin=stdin)
300  while True:
301  output = process.stdout.readline().decode("utf-8")
302  if output == '' and process.poll() is not None:
303  break
304  if output:
305  # remove ANSI escape formatting characters
306  reaesc = re.compile(r'(\x9B|\x1B\[)[0-?]*[ -\/]*[@-~]')
307  text = reaesc.sub('', output.strip())
308  logger.info(text)
309 
310  rc = process.poll()
311  return rc
312 
313 
314 def SuperChicInitialize(Init, stdin=None):
315 
316  logger.info("Starting SuperChic Initialization")
317 
318  if not os.path.exists('inputs'):
319  os.makedirs('inputs')
320  if not os.path.exists('evrecs'):
321  os.makedirs('evrecs')
322  if not os.path.exists('outputs'):
323  os.makedirs('outputs')
324 
325 
326  try:
327  inputDAT = open('input.DAT')
328 
329  except IOError:
330  raise Exception("problem with file IO; potentially input.DAT not created correctly")
331  else:
332 
333  try:
334  rc = run_command(Init.superchicpath+"/bin/init", inputDAT)
335 
336  except OSError:
337  raise Exception("init executable or file not found")
338 
339  except Exception:
340  raise Exception("Non-OSError or IOError in init execution block")
341 
342  if rc:
343  raise Exception('Unexpected error in superchic init execution')
344 
345  return
346 
347 
349 
350  logger.info("Starting SuperChic Itself")
351 
352  if not os.path.exists('inputs'):
353  os.makedirs('inputs')
354  if not os.path.exists('evrecs'):
355  os.makedirs('evrecs')
356  if not os.path.exists('outputs'):
357  os.makedirs('outputs')
358 
359 
360  try:
361  inputDAT = open('input.DAT')
362  except IOError:
363  raise Exception ("problem with IO; potentially input.DAT not created correctly")
364  else:
365 
366  try:
367  rc = run_command(Init.superchicpath+'/bin/superchic', stdin=inputDAT)
368 
369  except OSError:
370  raise Exception("Superchic executable or file not found")
371 
372  except Exception:
373  raise Exception("Non-OSError or IOError in Superchic execution block")
374 
375  if rc:
376  raise Exception('Unexpected error in superchic execution')
377 
378  return
379 
380 
381 
382 def SuperChicRun(Init, genSeq):
383 
384  # dump the job configuration for fortran code
385  print(Init.toFortran())
386 
387  # attach config to genSequence for later usin in showering
388  genSeq.SuperChicConfig = Init
389 
390  writeInputDAT(Init)
391  SuperChicInitialize(Init)
392  SuperChicExecute(Init)
393 
394  return
SuperChicUtils.SuperChicConfig.ptxmax
ptxmax
Definition: SuperChicUtils.py:68
SuperChicUtils.SuperChicConfig.m2b
m2b
Definition: SuperChicUtils.py:90
SuperChicUtils.SuperChicConfig.mpol
mpol
Definition: SuperChicUtils.py:96
AtlasMcWeight::decode
double decode(number_type binnedWeight)
Convert weight from unsigned to double.
Definition: AtlasMcWeight.cxx:32
SuperChicUtils.SuperChicConfig.gencuts
gencuts
Definition: SuperChicUtils.py:65
SuperChicUtils.writeInputDAT
def writeInputDAT(Init)
Definition: SuperChicUtils.py:287
SuperChicUtils.SuperChicConfig.ymin
ymin
Definition: SuperChicUtils.py:61
SuperChicUtils.SuperChicConfig.mmax
mmax
Definition: SuperChicUtils.py:64
vtune_athena.format
format
Definition: vtune_athena.py:14
SuperChicUtils.SuperChicConfig.etaamin
etaamin
Definition: SuperChicUtils.py:71
SuperChicUtils.SuperChicConfig.fAA
fAA
Definition: SuperChicUtils.py:39
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
SuperChicUtils.SuperChicConfig.mxs
mxs
Definition: SuperChicUtils.py:104
SuperChicUtils.SuperChicConfig.beam
beam
Definition: SuperChicUtils.py:27
SuperChicUtils.SuperChicConfig.toFortran
def toFortran(self)
Definition: SuperChicUtils.py:106
SuperChicUtils.SuperChicInitialize
def SuperChicInitialize(Init, stdin=None)
Definition: SuperChicUtils.py:314
SuperChicUtils.SuperChicConfig.mneut
mneut
Definition: SuperChicUtils.py:100
SuperChicUtils.SuperChicConfig.mmon
mmon
Definition: SuperChicUtils.py:97
SuperChicUtils.SuperChicConfig.ptamin
ptamin
Definition: SuperChicUtils.py:69
SuperChicUtils.SuperChicConfig.wlm
wlm
Definition: SuperChicUtils.py:102
SuperChicUtils.SuperChicConfig.etafmax
etafmax
Definition: SuperChicUtils.py:87
SuperChicUtils.SuperChicConfig.etaemin
etaemin
Definition: SuperChicUtils.py:83
SuperChicUtils.SuperChicConfig.rts
rts
Definition: SuperChicUtils.py:18
SuperChicUtils.SuperChicConfig.etacmin
etacmin
Definition: SuperChicUtils.py:77
SuperChicUtils.SuperChicRun
def SuperChicRun(Init, genSeq)
Definition: SuperChicUtils.py:382
SuperChicUtils.SuperChicConfig.tau
tau
Definition: SuperChicUtils.py:103
SuperChicUtils.SuperChicConfig.diff
diff
Definition: SuperChicUtils.py:30
SuperChicUtils.SuperChicConfig.rn
rn
Definition: SuperChicUtils.py:35
SuperChicUtils.SuperChicConfig.az
az
Definition: SuperChicUtils.py:32
SuperChicUtils.SuperChicConfig.etacmax
etacmax
Definition: SuperChicUtils.py:78
SuperChicUtils.SuperChicConfig.fracsigX
fracsigX
Definition: SuperChicUtils.py:40
SuperChicUtils.SuperChicConfig.outputLHEFile
def outputLHEFile(self)
Definition: SuperChicUtils.py:283
SuperChicUtils.SuperChicConfig.PDFname
PDFname
Definition: SuperChicUtils.py:24
SuperChicUtils.SuperChicConfig.readwt
readwt
Definition: SuperChicUtils.py:59
SuperChicUtils.SuperChicConfig.superchicpath
superchicpath
Definition: SuperChicUtils.py:15
SuperChicUtils.SuperChicConfig.mmin
mmin
Definition: SuperChicUtils.py:63
SuperChicUtils.SuperChicConfig.ymax
ymax
Definition: SuperChicUtils.py:62
SuperChicUtils.SuperChicConfig.genunw
genunw
Definition: SuperChicUtils.py:52
SuperChicUtils.SuperChicConfig.etabmax
etabmax
Definition: SuperChicUtils.py:74
SuperChicUtils.SuperChicConfig.malp
malp
Definition: SuperChicUtils.py:93
SuperChicUtils.SuperChicConfig.dn
dn
Definition: SuperChicUtils.py:36
SuperChicUtils.SuperChicConfig.ptcmin
ptcmin
Definition: SuperChicUtils.py:76
SuperChicUtils.SuperChicConfig.ptfmin
ptfmin
Definition: SuperChicUtils.py:85
SuperChicUtils.SuperChicExecute
def SuperChicExecute(Init)
Definition: SuperChicUtils.py:348
SuperChicUtils.SuperChicConfig.pdgid1
pdgid1
Definition: SuperChicUtils.py:91
SuperChicUtils.SuperChicConfig.gax
gax
Definition: SuperChicUtils.py:94
SuperChicUtils.SuperChicConfig.iseed
iseed
Definition: SuperChicUtils.py:48
SuperChicUtils.SuperChicConfig.isurv
isurv
Definition: SuperChicUtils.py:22
SuperChicUtils.SuperChicConfig.ptdmin
ptdmin
Definition: SuperChicUtils.py:79
SuperChicUtils.SuperChicConfig.__init__
def __init__(self, runArgs)
Definition: SuperChicUtils.py:14
SuperChicUtils.SuperChicConfig.itmx
itmx
Definition: SuperChicUtils.py:42
SuperChicUtils.SuperChicConfig.an
an
Definition: SuperChicUtils.py:31
SuperChicUtils.SuperChicConfig
Definition: SuperChicUtils.py:12
SuperChicUtils.SuperChicConfig.ncall
ncall
Definition: SuperChicUtils.py:41
SuperChicUtils.SuperChicConfig.etadmin
etadmin
Definition: SuperChicUtils.py:80
print
void print(char *figname, TCanvas *c1)
Definition: TRTCalib_StrawStatusPlots.cxx:25
SuperChicUtils.SuperChicConfig.ptbmin
ptbmin
Definition: SuperChicUtils.py:70
SuperChicUtils.SuperChicConfig.sfaci
sfaci
Definition: SuperChicUtils.py:29
SuperChicUtils.SuperChicConfig.wtmax
wtmax
Definition: SuperChicUtils.py:60
SuperChicUtils.SuperChicConfig.mcharg
mcharg
Definition: SuperChicUtils.py:99
SuperChicUtils.SuperChicConfig.rjet
rjet
Definition: SuperChicUtils.py:88
SuperChicUtils.SuperChicConfig.etabmin
etabmin
Definition: SuperChicUtils.py:73
SuperChicUtils.SuperChicConfig.PDFmember
PDFmember
Definition: SuperChicUtils.py:25
SuperChicUtils.SuperChicConfig.pdgid2
pdgid2
Definition: SuperChicUtils.py:92
SuperChicUtils.SuperChicConfig.ptemin
ptemin
Definition: SuperChicUtils.py:82
SuperChicUtils.SuperChicConfig.rz
rz
Definition: SuperChicUtils.py:33
Trk::open
@ open
Definition: BinningType.h:40
SuperChicUtils.SuperChicConfig.nev
nev
Definition: SuperChicUtils.py:54
SuperChicUtils.SuperChicConfig.ncall1
ncall1
Definition: SuperChicUtils.py:44
SuperChicUtils.SuperChicConfig.etaemax
etaemax
Definition: SuperChicUtils.py:84
SuperChicUtils.SuperChicConfig.acoabmax
acoabmax
Definition: SuperChicUtils.py:75
SuperChicUtils.SuperChicConfig.jalg
jalg
Definition: SuperChicUtils.py:89
SuperChicUtils.SuperChicConfig.erec
erec
Definition: SuperChicUtils.py:58
SuperChicUtils.SuperChicConfig.itend
itend
Definition: SuperChicUtils.py:46
str
Definition: BTagTrackIpAccessor.cxx:11
SuperChicUtils.run_command
def run_command(command, stdin=None)
Definition: SuperChicUtils.py:295
SuperChicUtils.SuperChicConfig.fwidth
fwidth
Definition: SuperChicUtils.py:67
SuperChicUtils.SuperChicConfig.inccall
inccall
Definition: SuperChicUtils.py:45
SuperChicUtils.SuperChicConfig.ionbreakup
ionbreakup
Definition: SuperChicUtils.py:38
SuperChicUtils.SuperChicConfig.etaamax
etaamax
Definition: SuperChicUtils.py:72
SuperChicUtils.SuperChicConfig.prec
prec
Definition: SuperChicUtils.py:43
SuperChicUtils.SuperChicConfig.gamm
gamm
Definition: SuperChicUtils.py:98
SuperChicUtils.SuperChicConfig.dz
dz
Definition: SuperChicUtils.py:34
SuperChicUtils.SuperChicConfig.intag
intag
Definition: SuperChicUtils.py:23
SuperChicUtils.SuperChicConfig.wlp
wlp
Definition: SuperChicUtils.py:101
SuperChicUtils.SuperChicConfig.scorr
scorr
Definition: SuperChicUtils.py:66
SuperChicUtils.SuperChicConfig.etafmin
etafmin
Definition: SuperChicUtils.py:86
SuperChicUtils.SuperChicConfig.outtg
outtg
Definition: SuperChicUtils.py:28
SuperChicUtils.SuperChicConfig.ionqcd
ionqcd
Definition: SuperChicUtils.py:37
SuperChicUtils.SuperChicConfig.proc
proc
Definition: SuperChicUtils.py:26
SuperChicUtils.SuperChicConfig.etadmax
etadmax
Definition: SuperChicUtils.py:81
SuperChicUtils.SuperChicConfig.alpt
alpt
Definition: SuperChicUtils.py:95