ATLAS Offline Software
Loading...
Searching...
No Matches
makeARTScripts.py
Go to the documentation of this file.
1import os
2
3makeDataDAODs=True
4makeMCDAODs=True
5makeTruthDAODs=True
6makeTrains=True
7makePHYStoPHYSLITE=True
8
9formatList = ["PHYSVAL","PHYS","PHYSLITE",
10 "LLP1","LLJ1","HIGG1D1","HIGG1D2", "HIGG9D1"
11 "JETM1","JETM2","JETM3","JETM4","JETM5","JETM7","JETM12","JETM42",
12 "IDTR2",
13 "EGAM1","EGAM2","EGAM3","EGAM4","EGAM5","EGAM7","EGAM8","EGAM9","EGAM10",
14 "FTAG1","FTAG1LITE","FTAG2","FTAG3","FTAG4","FTAG5","FTAGPU","FTAGXBB",
15 "BPHY1","BPHY2","BPHY3","BPHY4","BPHY5","BPHY6","BPHY10","BPHY12","BPHY14","BPHY15","BPHY16","BPHY18","BPHY21","BPHY22",
16 "BPHY23","BPHY24",
17 "STDM6","STDM7","STDM13","STDM16","STDM17",
18 "SUSY20",
19 "TRIG8","TRIG9","TRIG10",
20 "MUON1", "MUON5",
21 "TCAL1",
22 "TOPQ7"
23]
24
25truthFormatList = ["TRUTH0", "TRUTH1", "TRUTH3"]
26
27trainList = [
28 ["EGAM1","EGAM2","EGAM3","EGAM4","EGAM5","EGAM7","EGAM8","EGAM9","EGAM10","JETM1","JETM3","JETM4","FTAG1","FTAG2","FTAG3","IDTR2","TRIG8","TRIG9","LLP1","STDM7","STDM13","HIGG1D1","MUON1"]
29]
30
31
32# Files
33from AthenaConfiguration.TestDefaults import defaultTestFiles
34mc20File = defaultTestFiles.AOD_RUN2_MC[0]
35mc23aFile = defaultTestFiles.AOD_RUN3_MC[0]
36mc21_14TeV_File = defaultTestFiles.AOD_RUN4_MC[0]
37truthFile = defaultTestFiles.EVNT[0]
38data18File = defaultTestFiles.AOD_RUN2_DATA[0]
39data22File = defaultTestFiles.AOD_RUN3_DATA[0]
40com_dir = "/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/CampaignInputs/"
41data23File = com_dir+"data23/AOD/data23_13p6TeV.00453713.physics_Main.recon.AOD.f1357/2012events.data23_13p6TeV.00453713.physics_Main.recon.AOD.f1357._lb1416._0006.1"
42data23CosFile = com_dir+"data23_cos/AOD/data23_cos.00459152.physics_CosmicMuons.merge.AOD.f1383_m2195/data23_cos.00459152.physics_CosmicMuons.merge.AOD.f1383_m2195._lb0124-lb0126._0001.1"
43data24File = com_dir+"data24/AOD/data24_13p6TeV.00486658.physics_Main.recon.AOD.f1522_m2262_r16385_r16377/AOD.43718985._000221.pool.root.1"
44
45data25Input = "user.martindl.data25_13p6TeV.00498515.physics_Main.merge.AOD.r17521_p7232"
46data25File = "root://eosatlas.cern.ch//eos/atlas/atlascerngroupdisk/data-art/large-input/CampaignInputs/data25/AOD/data25_13p6TeV.00498515.physics_Main.merge.AOD.r17521_p7232/AOD.49752827._000024.pool.root.1"
47
48mc23dInput = "user.martindl.mc23_13p6TeV.601229.PhPy8EG_A14_ttbar_hdamp258p75_SingleLep.recon.AOD.e8514_s4159_r15530"
49mc23dFile = "root://eosatlas.cern.ch//eos/atlas/atlascerngroupdisk/data-art/large-input/CampaignInputs/mc23/AOD/mc23_13p6TeV.601229.PhPy8EG_A14_ttbar_hdamp258p75_SingleLep.recon.AOD.e8514_s4159_r15530/AOD.38803011._001713.pool.root.1"
50mc23eInput = "user.martindl.mc23_13p6TeV.601229.PhPy8EG_A14_ttbar_hdamp258p75_SingleLep.recon.AOD.e8514_s4369_r16083"
51mc23eFile = "root://eosatlas.cern.ch//eos/atlas/atlascerngroupdisk/data-art/large-input/CampaignInputs/mc23/AOD/mc23_13p6TeV.601229.PhPy8EG_A14_ttbar_hdamp258p75_SingleLep.recon.AOD.e8514_s4369_r16083/AOD.41608496._001231.pool.root.1"
52mc23gInput = "user.martindl.mc23_13p6TeV.601229.PhPy8EG_A14_ttbar_hdamp258p75_SingleLep.recon.AOD.e8514_s4618_r17610"
53mc23gFile = "root://eosatlas.cern.ch//eos/atlas/atlascerngroupdisk/data-art/large-input/CampaignInputs/mc23/AOD/mc23_13p6TeV.601229.PhPy8EG_A14_ttbar_hdamp258p75_SingleLep.recon.AOD.e8514_s4618_r17610/AOD.50092877._002250.pool.root.1"
54
55
56import os
57mc20PHYSFile = os.getenv('ASG_TEST_FILE_MC')
58mc23PHYSFile = os.getenv('ASG_TEST_FILE_RUN3_MC')
59data18PHYSFile = os.getenv('ASG_TEST_FILE_DATA')
60data23PHYSFile = os.getenv('ASG_TEST_FILE_RUN3_DATA')
61
62def generateText(formatName,label,inputFile,isTruth,nEvents,artInput=""):
63 add_str = ""
64 outputFileName = "test_"+label+formatName+add_str+".sh"
65 outputFile = open(outputFileName,"w")
66 outputFile.write("#!/bin/sh"+"\n")
67 outputFile.write("\n")
68 outputFile.write("# art-include: main/Athena"+"\n")
69 outputFile.write("# art-description: DAOD building "+formatName+" "+label+"\n")
70 outputFile.write("# art-type: grid"+"\n")
71 outputFile.write("# art-memory: 4096"+"\n")
72 if artInput:
73 outputFile.write("# art-input: "+artInput+"\n")
74 outputFile.write("# art-input-nfiles: 1 \n")
75 outputFile.write("# art-output: *.pool.root"+"\n")
76 outputFile.write("# art-output: checkFile*.txt"+"\n")
77 outputFile.write("# art-output: checkxAOD*.txt"+"\n")
78 outputFile.write("# art-output: checkIndexRefs*.txt"+"\n")
79 outputFile.write("\n")
80 outputFile.write("set -e"+"\n")
81 outputFile.write("\n")
82 if artInput:
83 outputFile.write("if [[ -z ${ArtInFile} ]]; then\n")
84 outputFile.write(" ArtInFile=\""+inputFile+"\"\n")
85 outputFile.write("fi\n")
86 outputFile.write("\n")
87 if (not isTruth):
88 outputFile.write("Derivation_tf.py \\\n")
89 if artInput:
90 outputFile.write("--inputAODFile ${ArtInFile} \\\n")
91 else:
92 outputFile.write("--inputAODFile "+inputFile+" \\\n")
93 outputFile.write("--outputDAODFile art.pool.root \\\n")
94 outputFile.write("--formats "+formatName+" \\\n")
95 outputFile.write("--maxEvents "+nEvents+" \\\n")
96 if isTruth:
97 outputFile.write("Derivation_tf.py \\\n")
98 outputFile.write("--inputEVNTFile "+inputFile+" \\\n")
99 outputFile.write("--outputDAODFile art.pool.root \\\n")
100 outputFile.write("--formats "+formatName+" \\\n")
101 outputFile.write("--maxEvents "+nEvents+"\n")
102 outputFile.write("\n")
103 outputFile.write("echo \"art-result: $? reco\""+"\n")
104 outputFile.write("\n")
105 outputFile.write("checkFile.py DAOD_"+formatName+".art.pool.root > checkFile_"+formatName+".txt"+"\n")
106 outputFile.write("\n")
107 outputFile.write("echo \"art-result: $? checkfile\""+'\n')
108 outputFile.write("\n")
109 outputFile.write("checkxAOD.py DAOD_"+formatName+".art.pool.root > checkxAOD_"+formatName+".txt"+"\n")
110 outputFile.write("\n")
111 outputFile.write("echo \"art-result: $? checkxAOD\""+'\n')
112 outputFile.write("\n")
113 outputFile.write("checkIndexRefs.py DAOD_"+formatName+".art.pool.root > checkIndexRefs_"+formatName+".txt 2>&1"+"\n")
114 outputFile.write("\n")
115 outputFile.write("echo \"art-result: $? checkIndexRefs\""+'\n')
116 outputFile.close()
117 os.system("chmod +x "+outputFileName)
118
119def generateTrains(formatList,label,inputFile,nEvents):
120 add_str = ""
121 outputFileName = "test_"+label+"_".join(formatList)+add_str+".sh"
122 outputFile = open(outputFileName,"w")
123 outputFile.write("#!/bin/sh"+"\n")
124 outputFile.write("\n")
125 outputFile.write("# art-include: main/Athena"+"\n")
126 outputFile.write("# art-description: DAOD building "+" ".join(formatList)+" "+label+"\n")
127 outputFile.write("# art-type: grid"+"\n")
128 outputFile.write("# art-output: *.pool.root"+"\n")
129 outputFile.write("# art-output: checkFile*.txt"+"\n")
130 outputFile.write("# art-output: checkxAOD*.txt"+"\n")
131 outputFile.write("# art-output: checkIndexRefs*.txt"+"\n")
132 outputFile.write("\n")
133 outputFile.write("set -e"+"\n")
134 outputFile.write("\n")
135 outputFile.write("Derivation_tf.py \\\n")
136 outputFile.write("--inputAODFile "+inputFile+" \\\n")
137 outputFile.write("--outputDAODFile art.pool.root \\\n")
138 outputFile.write("--formats "+" ".join(formatList)+" \\\n")
139 outputFile.write("--maxEvents "+nEvents+" \\\n")
140 outputFile.write("\n")
141 outputFile.write("echo \"art-result: $? reco\""+"\n")
142 for formatname in formatList:
143 outputFile.write("\n")
144 outputFile.write("checkFile.py DAOD_"+formatname+".art.pool.root > checkFile_"+formatname+".txt"+"\n")
145 outputFile.write("\n")
146 outputFile.write("echo \"art-result: $? checkfile\""+'\n')
147 outputFile.write("\n")
148 outputFile.write("checkxAOD.py DAOD_"+formatname+".art.pool.root > checkxAOD_"+formatname+".txt"+"\n")
149 outputFile.write("\n")
150 outputFile.write("echo \"art-result: $? checkxAOD\""+'\n')
151 outputFile.write("\n")
152 outputFile.write("checkIndexRefs.py DAOD_"+formatname+".art.pool.root > checkIndexRefs_"+formatname+".txt 2>&1"+"\n")
153 outputFile.write("\n")
154 outputFile.write("echo \"art-result: $? checkIndexRefs\""+'\n')
155 outputFile.close()
156 os.system("chmod +x "+outputFileName)
157
158def generatePHYStoPHYSLITE(label,inputFile,nEvents):
159 add_str = "PHYStoPHYSLITE"
160 outputFileName = "test_"+label+"_"+add_str+".sh"
161 outputFile = open(outputFileName,"w")
162 outputFile.write("#!/bin/sh"+"\n")
163 outputFile.write("\n")
164 outputFile.write("# art-include: main/Athena"+"\n")
165 outputFile.write("# art-description: DAOD building PHYStoPHYSLITE "+label+"\n")
166 outputFile.write("# art-type: grid"+"\n")
167 outputFile.write("# art-output: *.pool.root"+"\n")
168 outputFile.write("# art-output: checkFile*.txt"+"\n")
169 outputFile.write("# art-output: checkxAOD*.txt"+"\n")
170 outputFile.write("# art-output: checkIndexRefs*.txt"+"\n")
171 outputFile.write("\n")
172 outputFile.write("set -e"+"\n")
173 outputFile.write("\n")
174 outputFile.write("Derivation_tf.py \\\n")
175 outputFile.write("--inputDAOD_PHYSFile "+inputFile+" \\\n")
176 outputFile.write("--outputD2AODFile art.pool.root \\\n")
177 outputFile.write("--formats PHYSLITE \\\n")
178 outputFile.write("--maxEvents "+nEvents+" \\\n")
179 outputFile.write("\n")
180 outputFile.write("echo \"art-result: $? reco\""+"\n")
181 outputFile.write("\n")
182 outputFile.write("checkFile.py D2AOD_PHYSLITE.art.pool.root > checkFile_PHYSLITE.txt"+"\n")
183 outputFile.write("\n")
184 outputFile.write("echo \"art-result: $? checkfile\""+'\n')
185 outputFile.write("\n")
186 outputFile.write("checkxAOD.py D2AOD_PHYSLITE.art.pool.root > checkxAOD_PHYSLITE.txt"+"\n")
187 outputFile.write("\n")
188 outputFile.write("echo \"art-result: $? checkxAOD\""+'\n')
189 outputFile.write("\n")
190 outputFile.write("checkIndexRefs.py D2AOD_PHYSLITE.art.pool.root > checkIndexRefs_PHYSLITE.txt 2>&1"+"\n")
191 outputFile.write("\n")
192 outputFile.write("echo \"art-result: $? checkIndexRefs\""+'\n')
193 outputFile.close()
194 os.system("chmod +x "+outputFileName)
195
196if (makeDataDAODs or makeMCDAODs):
197 for formatName in formatList:
198 # Special cases
199 if formatName == "JETM7":
200 # JETM7 requires per-vertex jet reconstruction, therefore running only over 100 events
201 if makeDataDAODs:
202 generateText(formatName,"data18",data18File,False,"100")
203 generateText(formatName,"data24",data24File,False,"100")
204 if makeMCDAODs:
205 generateText(formatName,"mc20",mc20File,False,"100")
206 generateText(formatName,"mc23",mc23aFile,False,"100")
207 generateText(formatName,"mc21_14TeV_",mc21_14TeV_File,False,"100")
208 continue
209 if formatName == "JETM42":
210 # JETM42 currently only used for upgrade studies
211 if makeMCDAODs:
212 generateText(formatName,"mc21_14TeV_",mc21_14TeV_File,False,"-1")
213 continue
214 # End special cases
215 if makeDataDAODs:
216 generateText(formatName,"data18",data18File,False,"-1")
217 generateText(formatName,"data22",data22File,False,"-1")
218 generateText(formatName,"data23",data23File,False,"-1")
219 generateText(formatName,"data24",data24File,False,"-1")
220 if formatName in ["PHYS", "PHYSLITE"]:
221 generateText(formatName,"data25",data25File,False,"1000",data25Input)
222 if makeMCDAODs:
223 generateText(formatName,"mc20",mc20File,False,"-1")
224 if formatName in ["PHYS", "PHYSLITE"]:
225 generateText(formatName,"mc23a",mc23aFile,False,"-1")
226 generateText(formatName,"mc23d",mc23dFile,False,"1000",mc23dInput)
227 generateText(formatName,"mc23e",mc23eFile,False,"1000",mc23eInput)
228 generateText(formatName,"mc23g",mc23gFile,False,"1000",mc23gInput)
229 else:
230 generateText(formatName,"mc23",mc23aFile,False,"-1")
231 generateText(formatName,"mc21_14TeV_",mc21_14TeV_File,False,"-1")
232 generateText("NCB1","data23cos",data23CosFile,False,"-1")
233
234if makeTruthDAODs:
235 for formatName in truthFormatList:
236 generateText(formatName,"mc23",truthFile,True,"1000")
237
238if makeTrains:
239 for train in trainList:
240 if makeDataDAODs:
241 generateTrains(train,"data18",data18File,"-1")
242 generateTrains(train,"data22",data22File,"-1")
243 generateTrains(train,"data23",data23File,"-1")
244 generateTrains(train,"data24",data24File,"-1")
245 if makeMCDAODs:
246 generateTrains(train,"mc20",mc20File,"-1")
247 generateTrains(train,"mc23",mc23aFile,"-1")
248 generateTrains(train,"mc21_14TeV_",mc21_14TeV_File,"-1")
249
250if makePHYStoPHYSLITE:
251 if makeDataDAODs:
252 generatePHYStoPHYSLITE("data18",data18PHYSFile,"-1")
253 generatePHYStoPHYSLITE("data23",data23PHYSFile,"-1")
254 if makeMCDAODs:
255 generatePHYStoPHYSLITE("mc20",mc20PHYSFile,"-1")
256 generatePHYStoPHYSLITE("mc23a",mc23PHYSFile,"-1")
generateTrains(formatList, label, inputFile, nEvents)
generatePHYStoPHYSLITE(label, inputFile, nEvents)
generateText(formatName, label, inputFile, isTruth, nEvents, artInput="")