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
7
8formatList = ["PHYSVAL","PHYS","PHYSLITE",
9 "LLP1","LLJ1","HIGG1D1","HIGG1D2", "HIGG9D1"
10 "JETM1","JETM2","JETM3","JETM4","JETM5","JETM7","JETM12","JETM42",
11 "IDTR2",
12 "EGAM1","EGAM2","EGAM3","EGAM4","EGAM5","EGAM7","EGAM8","EGAM9","EGAM10",
13 "FTAG1","FTAG1LITE","FTAG2","FTAG3","FTAG4","FTAG5","FTAGPU","FTAGXBB",
14 "BPHY1","BPHY2","BPHY3","BPHY4","BPHY5","BPHY6","BPHY10","BPHY12","BPHY14","BPHY15","BPHY16","BPHY18","BPHY21","BPHY22",
15 "BPHY23","BPHY24",
16 "STDM6","STDM7","STDM13","STDM16","STDM17",
17 "SUSY20",
18 "TRIG8","TRIG9","TRIG10",
19 "MUON1", "MUON5",
20 "TCAL1",
21 "TOPQ7"
22]
23
24truthFormatList = ["TRUTH0", "TRUTH1", "TRUTH3"]
25
26trainList = [
27 ["EGAM1","EGAM2","EGAM3","EGAM4","EGAM5","EGAM7","EGAM8","EGAM9","EGAM10","JETM1","JETM3","JETM4","FTAG1","FTAG2","FTAG3","IDTR2","TRIG8","TRIG9","LLP1","STDM7","STDM13","HIGG1D1","MUON1"]
28]
29
30
31# Files
32from AthenaConfiguration.TestDefaults import defaultTestFiles
33mc20File = defaultTestFiles.AOD_RUN2_MC[0]
34mc23File = defaultTestFiles.AOD_RUN3_MC[0]
35mc21_14TeV_File = defaultTestFiles.AOD_RUN4_MC[0]
36truthFile = defaultTestFiles.EVNT[0]
37data18File = defaultTestFiles.AOD_RUN2_DATA[0]
38data22File = defaultTestFiles.AOD_RUN3_DATA[0]
39com_dir = "/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/CampaignInputs/"
40data23File = com_dir+"data23/AOD/data23_13p6TeV.00453713.physics_Main.recon.AOD.f1357/2012events.data23_13p6TeV.00453713.physics_Main.recon.AOD.f1357._lb1416._0006.1"
41data23CosFile = 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"
42data24File = com_dir+"data24/AOD/data24_13p6TeV.00486658.physics_Main.recon.AOD.f1522_m2262_r16385_r16377/AOD.43718985._000221.pool.root.1"
43
44def generateText(formatName,label,inputFile,isTruth,isMC,nEvents):
45 add_str = ""
46 outputFileName = "test_"+label+formatName+add_str+".sh"
47 outputFile = open(outputFileName,"w")
48 outputFile.write("#!/bin/sh"+"\n")
49 outputFile.write("\n")
50 outputFile.write("# art-include: main/Athena"+"\n")
51 outputFile.write("# art-description: DAOD building "+formatName+" "+label+"\n")
52 outputFile.write("# art-type: grid"+"\n")
53 outputFile.write("# art-memory: 4096"+"\n")
54 outputFile.write("# art-output: *.pool.root"+"\n")
55 outputFile.write("# art-output: checkFile*.txt"+"\n")
56 outputFile.write("# art-output: checkxAOD*.txt"+"\n")
57 outputFile.write("# art-output: checkIndexRefs*.txt"+"\n")
58 outputFile.write("\n")
59 outputFile.write("set -e"+"\n")
60 outputFile.write("\n")
61 if (not isTruth):
62 outputFile.write("Derivation_tf.py \\\n")
63 outputFile.write("--inputAODFile "+inputFile+" \\\n")
64 outputFile.write("--outputDAODFile art.pool.root \\\n")
65 outputFile.write("--formats "+formatName+" \\\n")
66 outputFile.write("--maxEvents "+nEvents+" \\\n")
67 if isTruth:
68 outputFile.write("Derivation_tf.py \\\n")
69 outputFile.write("--inputEVNTFile "+inputFile+" \\\n")
70 outputFile.write("--outputDAODFile art.pool.root \\\n")
71 outputFile.write("--formats "+formatName+" \\\n")
72 outputFile.write("--maxEvents "+nEvents+"\n")
73 outputFile.write("\n")
74 outputFile.write("echo \"art-result: $? reco\""+"\n")
75 outputFile.write("\n")
76 outputFile.write("checkFile.py DAOD_"+formatName+".art.pool.root > checkFile_"+formatName+".txt"+"\n")
77 outputFile.write("\n")
78 outputFile.write("echo \"art-result: $? checkfile\""+'\n')
79 outputFile.write("\n")
80 outputFile.write("checkxAOD.py DAOD_"+formatName+".art.pool.root > checkxAOD_"+formatName+".txt"+"\n")
81 outputFile.write("\n")
82 outputFile.write("echo \"art-result: $? checkxAOD\""+'\n')
83 outputFile.write("\n")
84 outputFile.write("checkIndexRefs.py DAOD_"+formatName+".art.pool.root > checkIndexRefs_"+formatName+".txt 2>&1"+"\n")
85 outputFile.write("\n")
86 outputFile.write("echo \"art-result: $? checkIndexRefs\""+'\n')
87 outputFile.close()
88 os.system("chmod +x "+outputFileName)
89
90def generateTrains(formatList,label,inputFile,isMC,nEvents):
91 add_str = ""
92 outputFileName = "test_"+label+"_".join(formatList)+add_str+".sh"
93 outputFile = open(outputFileName,"w")
94 outputFile.write("#!/bin/sh"+"\n")
95 outputFile.write("\n")
96 outputFile.write("# art-include: main/Athena"+"\n")
97 outputFile.write("# art-description: DAOD building "+" ".join(formatList)+" "+label+"\n")
98 outputFile.write("# art-type: grid"+"\n")
99 outputFile.write("# art-output: *.pool.root"+"\n")
100 outputFile.write("# art-output: checkFile*.txt"+"\n")
101 outputFile.write("# art-output: checkxAOD*.txt"+"\n")
102 outputFile.write("# art-output: checkIndexRefs*.txt"+"\n")
103 outputFile.write("\n")
104 outputFile.write("set -e"+"\n")
105 outputFile.write("\n")
106 outputFile.write("Derivation_tf.py \\\n")
107 outputFile.write("--inputAODFile "+inputFile+" \\\n")
108 outputFile.write("--outputDAODFile art.pool.root \\\n")
109 outputFile.write("--formats "+" ".join(formatList)+" \\\n")
110 outputFile.write("--maxEvents "+nEvents+" \\\n")
111 outputFile.write("\n")
112 outputFile.write("echo \"art-result: $? reco\""+"\n")
113 for formatname in formatList:
114 outputFile.write("\n")
115 outputFile.write("checkFile.py DAOD_"+formatname+".art.pool.root > checkFile_"+formatname+".txt"+"\n")
116 outputFile.write("\n")
117 outputFile.write("echo \"art-result: $? checkfile\""+'\n')
118 outputFile.write("\n")
119 outputFile.write("checkxAOD.py DAOD_"+formatname+".art.pool.root > checkxAOD_"+formatname+".txt"+"\n")
120 outputFile.write("\n")
121 outputFile.write("echo \"art-result: $? checkxAOD\""+'\n')
122 outputFile.write("\n")
123 outputFile.write("checkIndexRefs.py DAOD_"+formatname+".art.pool.root > checkIndexRefs_"+formatname+".txt 2>&1"+"\n")
124 outputFile.write("\n")
125 outputFile.write("echo \"art-result: $? checkIndexRefs\""+'\n')
126 outputFile.close()
127 os.system("chmod +x "+outputFileName)
128
129if (makeDataDAODs or makeMCDAODs):
130 for formatName in formatList:
131 # Special cases
132 if formatName == "JETM7":
133 # JETM7 requires per-vertex jet reconstruction, therefore running only over 100 events
134 if makeDataDAODs:
135 generateText(formatName,"data18",data18File,False,False,"100")
136 generateText(formatName,"data24",data24File,False,False,"100")
137 if makeMCDAODs:
138 generateText(formatName,"mc20",mc20File,False,True,"100")
139 generateText(formatName,"mc23",mc23File,False,True,"100")
140 generateText(formatName,"mc21_14TeV_",mc21_14TeV_File,False,True,"100")
141 continue
142 if formatName == "JETM42":
143 # JETM42 currently only used for upgrade studies
144 if makeMCDAODs:
145 generateText(formatName,"mc21_14TeV_",mc21_14TeV_File,False,True,"-1")
146 continue
147 # End special cases
148 if makeDataDAODs:
149 generateText(formatName,"data18",data18File,False,False,"-1")
150 generateText(formatName,"data22",data22File,False,False,"-1")
151 generateText(formatName,"data23",data23File,False,False,"-1")
152 generateText(formatName,"data24",data24File,False,False,"-1")
153 if makeMCDAODs:
154 generateText(formatName,"mc20",mc20File,False,True,"-1")
155 generateText(formatName,"mc23",mc23File,False,True,"-1")
156 generateText(formatName,"mc21_14TeV_",mc21_14TeV_File,False,True,"-1")
157 generateText("NCB1","data23cos",data23CosFile,False,False,"-1")
158
159if makeTruthDAODs:
160 for formatName in truthFormatList:
161 generateText(formatName,"mc23",truthFile,True,False,"1000")
162
163if makeTrains:
164 for train in trainList:
165 if makeDataDAODs:
166 generateTrains(train,"data18",data18File,False,"-1")
167 generateTrains(train,"data22",data22File,False,"-1")
168 generateTrains(train,"data23",data23File,False,"-1")
169 generateTrains(train,"data24",data24File,False,"-1")
170 if makeMCDAODs:
171 generateTrains(train,"mc20",mc20File,True,"-1")
172 generateTrains(train,"mc23",mc23File,True,"-1")
173 generateTrains(train,"mc21_14TeV_",mc21_14TeV_File,True,"-1")
generateText(formatName, label, inputFile, isTruth, isMC, nEvents)
generateTrains(formatList, label, inputFile, isMC, nEvents)