00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 from AthenaCommon.GlobalFlags import GlobalFlags
00021 GlobalFlags.DetGeo.set_atlas()
00022
00023
00024 from TrigDecision.TrigDecisionConfig import TrigDecisionTool
00025 tdt = TrigDecisionTool()
00026 ToolSvc += tdt
00027
00028
00029
00030 from RecExConfig.RecFlags import rec
00031 rec.readAOD=True
00032 rec.doWriteAOD=False
00033 rec.doWriteESD=False
00034
00035
00036
00037
00038 from TriggerJobOpts.TriggerFlags import TriggerFlags
00039 TriggerFlags.configurationSourceList = ['ds']
00040
00041
00042 from TriggerJobOpts.TriggerConfigGetter import TriggerConfigGetter
00043 cfg = TriggerConfigGetter()
00044
00045 LoadATLASGeometry=True
00046 DetDescrVersion="ATLAS-CSC-02-01-00"
00047
00048
00049
00050
00051 sys.path.append('data')
00052 import datatools
00053 import datetime
00054
00055
00056 if not 'dataset' in dir():
00057 dataset = "default"
00058
00059 if not 'outputdir' in dir():
00060 outputdir = ""
00061
00062 if not 'AtlFastFlag' in dir():
00063 AtlFastFlag = False;
00064 if (dataset.lower().find('atlfast') != -1):
00065 AtlFastFlag = True;
00066
00067 if not 'doAODFix1mm' in dir():
00068 doAODFix1mm = False;
00069
00070 if not 'doEventWeight' in dir():
00071 doEventWeight = True;
00072 if (dataset.lower().find('sherpa') != -1):
00073 doEventWeight = False;
00074
00075 if not 'filenumber' in dir() or filenumber < 0:
00076 filenumber = 0;
00077
00078 if not 'jetcontainer' in dir():
00079 jetcontainer = "Cone4H1Topo"
00080
00081 if not 'nevents' in dir():
00082 nevents = -1
00083
00084 if not 'doTrackJets' in dir() or AtlFastFlag == True:
00085 doTrackJets = False
00086
00087 if not 'doTrackParticles' in dir() or AtlFastFlag == True:
00088 doTrackParticles = False
00089
00090
00091 jetcontainername = jetcontainer + "Jets"
00092 namelist = ["H1Topo", "UnCalTopo", "Topo", "Tower"]
00093 truthjetcontainername = ""
00094
00095 for k_string in namelist:
00096
00097 if k_string in jetcontainername:
00098
00099 truthjetcontainername = jetcontainername.replace(k_string,"Truth")
00100 break
00101
00102
00103
00104 import EventKernel.ParticleDataType
00105
00106
00107
00108
00109 from AnalysisExamples.AnalysisFlags import AnalysisFlags
00110
00111 include( "AthenaPoolCnvSvc/ReadAthenaPool_jobOptions.py" )
00112 if AnalysisFlags.DoNavigation:
00113 include ("RecExCommon/AllDet_detDescr.py")
00114 ServiceMgr.EventSelector.BackNavigation = True
00115
00116
00117 include( "ParticleBuilderOptions/ESD_PoolCnv_jobOptions.py" )
00118 include( "ParticleBuilderOptions/AOD_PoolCnv_jobOptions.py")
00119 include( "ParticleBuilderOptions/McAOD_PoolCnv_jobOptions.py")
00120 include( "EventAthenaPool/EventAthenaPool_joboptions.py" )
00121 include( "TrackIsolationTools/TrackIsolationTool_jobOptions.py" )
00122
00123
00124 if(doTrackJets):
00125
00126 theApp.ExtSvc += [ "VertexCollectionSvc" ]
00127 VertexCollectionSvc = Service( "VertexCollectionSvc" )
00128 theApp.TopAlg += [ "MPIHiggsAnalysis::VertexCollector" ]
00129 VertexCollector = Algorithm( "MPIHiggsAnalysis::VertexCollector" )
00130
00131
00132 include( "Cone4TrackJet_jobOptions.py" )
00133 include( "Cone4TruthTrackJet_jobOptions.py" )
00134
00135
00136 HistogramPersistencySvc = Service( "HistogramPersistencySvc" )
00137 theApp.Dlls += [ "RootHistCnv" ]
00138 theApp.HistogramPersistency = "ROOT"
00139
00140
00141
00142
00143 theApp.Dlls += [ "GaudiAud" ]
00144
00145 theAuditorSvc.Auditors += [ "ChronoAuditor", "MemStatAuditor"]
00146
00147
00148 theApp.Dlls += [ "CBNT_Athena", "CBNT_Utils" ]
00149 theApp.Dlls += [ "AnalysisTools" ]
00150 theApp.Dlls += [ "AnalysisExamples" ]
00151
00152
00153
00154
00155
00156
00157 data_lib = datatools.DataLib()
00158
00159
00160
00161 jo_path = ''
00162
00163 if dataset.find('jo:') != -1:
00164 dataset = dataset.replace('jo:','');
00165 jo_path = '/.at/mdtraid04/12.0.X_data/data_jo_files/'
00166 print "Include data from .py file in path: ", jo_path
00167
00168
00169
00170 include("data/datasetdef.py")
00171 include("data/datasetdef_manfred.py")
00172 include("data/datasetdef_steffen.py")
00173 include("data/datasetdef_thies.py")
00174 include("data/datasetdef_joerg.py")
00175
00176
00177
00178
00179 if dataset == "default":
00180 datasetname = 'defaultfile'
00181 print '\nError: You have to pass a dataset through the command line'
00182 print ' or define a default dataset here.\n'
00183 sys.exit()
00184
00185 elif dataset.endswith(".py"):
00186 include(jo_path + dataset)
00187 tuple = dataset.rsplit("/",1)
00188 datasetname = tuple[len(tuple)-1].replace(".py","")
00189
00190 elif dataset.endswith(".root"):
00191 ServiceMgr.EventSelector.InputCollections = [ dataset ]
00192 tuple = dataset.rsplit("/",1)
00193 datasetname = tuple[len(tuple)-1].replace(".root","")
00194
00195 else:
00196 ds = data_lib.find_dataset(dataset)
00197 print ds
00198 if jo_path == '':
00199 datatools.include_files(ds.get_path(),ServiceMgr.EventSelector)
00200 else:
00201 include(jo_path + ds.get_long() + '.py')
00202 datasetname = dataset
00203
00204
00205 if len(outputdir)>0 and not outputdir.endswith("/"):
00206 outputdir += "/"
00207
00208
00209
00210 filename = outputdir + datasetname + "_" + jetcontainername + ".aan.root"
00211
00212 if filenumber > 0:
00213 filename = filename.replace(jetcontainername,
00214 jetcontainername+"_"+str(filenumber))
00215
00216 if (AtlFastFlag == True) and\
00217 (datasetname.lower().find('atlfast') == -1):
00218
00219 filename = filename.replace("_"+jetcontainername,
00220 "_atlfast_"+jetcontainername)
00221
00222 if doAODFix1mm == True:
00223 filename = filename.replace(jetcontainername,
00224 jetcontainername+"_1mmFix")
00225
00226 if doTrackJets == True:
00227 filename = filename.replace(jetcontainername,
00228 jetcontainername+"_TrackJets")
00229
00230
00231 print '\n************************************************************\n'
00232 print " Using the following configuration: "
00233 print " dataset: ", dataset
00234 print " datasetname: ", datasetname
00235 print " outputdir: ", outputdir
00236 print " AtlFastFlag: ", AtlFastFlag
00237 print " doAODFix1mm: ", doAODFix1mm
00238 print " doEventWeight: ", doEventWeight
00239 print " doTrackJets: ", doTrackJets
00240 print " filenumber: ", filenumber
00241 print " nevents: ", nevents
00242 print " filename: ", filename
00243 print " jetcontainer: ", jetcontainername
00244 print " truthjetcontainer: ", truthjetcontainername
00245 print '\n************************************************************\n'
00246
00247
00248
00249
00250
00251
00252
00253 theApp.Dlls += [ "AnalysisTools" ]
00254
00255 CBNTAthenaAware = True
00256 include ("CBNT_Athena/CBNT_AthenaAware_jobOptions.py")
00257 include ("CBNT_Athena/CBNT_EventInfo_jobOptions.py")
00258
00259
00260 from NtupleWriter14.NtupleWriter14Conf import AANtupleWriter14
00261 CBNT_AthenaAware += AANtupleWriter14()
00262
00263
00264
00265
00266
00267
00268 CBNT_AthenaAware.AANtupleWriter14.doTrigger = True
00269 CBNT_AthenaAware.AANtupleWriter14.doMissingEt = True
00270 CBNT_AthenaAware.AANtupleWriter14.doElectrons = True
00271 CBNT_AthenaAware.AANtupleWriter14.doPhotons = True
00272 CBNT_AthenaAware.AANtupleWriter14.doMuons = True
00273 CBNT_AthenaAware.AANtupleWriter14.doJets = True
00274 CBNT_AthenaAware.AANtupleWriter14.doTauJets = True
00275 CBNT_AthenaAware.AANtupleWriter14.doTruthJets = True
00276 CBNT_AthenaAware.AANtupleWriter14.doTruthParticles = True
00277 CBNT_AthenaAware.AANtupleWriter14.doEventWeight = doEventWeight
00278
00279 CBNT_AthenaAware.AANtupleWriter14.doTrackJets = doTrackJets
00280 CBNT_AthenaAware.AANtupleWriter14.doVertices = doTrackJets
00281
00282 CBNT_AthenaAware.AANtupleWriter14.truthparticleMaximumLeptonBarcode = 100000
00283 CBNT_AthenaAware.AANtupleWriter14.truthparticleNoPDGAbove100 = False
00284
00285 CBNT_AthenaAware.AANtupleWriter14.AtlFastFlag = AtlFastFlag
00286 CBNT_AthenaAware.AANtupleWriter14.doAODFix1mm = doAODFix1mm
00287
00288
00289 CBNT_AthenaAware.AANtupleWriter14.AOD_files = ServiceMgr.EventSelector.InputCollections
00290
00291
00292 if AtlFastFlag == True:
00293
00294 CBNT_AthenaAware.AANtupleWriter14.triggerDecisionContainer = "notAvailable"
00295 CBNT_AthenaAware.AANtupleWriter14.photonContainer = "AtlfastPhotonCollection"
00296 CBNT_AthenaAware.AANtupleWriter14.electronContainer = "AtlfastElectronCollection"
00297 CBNT_AthenaAware.AANtupleWriter14.muonContainer = ["AtlfastMuonCollection"]
00298 CBNT_AthenaAware.AANtupleWriter14.jetContainer = "AtlfastParticleJetContainer"
00299 CBNT_AthenaAware.AANtupleWriter14.taujetContainer = "AtlfastTauJetContainer"
00300 CBNT_AthenaAware.AANtupleWriter14.missingEtContainerCollection = ["AtlfastMissingEt"]
00301 CBNT_AthenaAware.AANtupleWriter14.truthparticleContainer = "SpclMC"
00302 CBNT_AthenaAware.AANtupleWriter14.truthjetContainer = "notAvailable"
00303 CBNT_AthenaAware.AANtupleWriter14.truthmissingEtContainer = "notAvailable"
00304 CBNT_AthenaAware.AANtupleWriter14.TrackParticleContainer = "AtlfastTrackParticles"
00305
00306
00307 else:
00308
00309 CBNT_AthenaAware.AANtupleWriter14.triggerDecisionContainer = "TrigDecision"
00310 CBNT_AthenaAware.AANtupleWriter14.triggerMuonLVL1Container = "LVL1_ROI"
00311 CBNT_AthenaAware.AANtupleWriter14.triggerMuonLVL2Container = "CombinedMuonFeature"
00312 CBNT_AthenaAware.AANtupleWriter14.triggerMuonEFContainer = "TrigMuonEFContainer"
00313 CBNT_AthenaAware.AANtupleWriter14.triggerMissingEtContainer = "TrigEFMissingET"
00314 CBNT_AthenaAware.AANtupleWriter14.photonContainer = "PhotonAODCollection"
00315 CBNT_AthenaAware.AANtupleWriter14.electronContainer = "ElectronAODCollection"
00316 CBNT_AthenaAware.AANtupleWriter14.muonContainer = ["MuidMuonCollection",
00317 "StacoMuonCollection"]
00318 CBNT_AthenaAware.AANtupleWriter14.jetContainer = jetcontainername
00319
00320 CBNT_AthenaAware.AANtupleWriter14.taujetContainer = "TauRecContainer"
00321 CBNT_AthenaAware.AANtupleWriter14.truthjetContainer = truthjetcontainername
00322
00323 CBNT_AthenaAware.AANtupleWriter14.missingEtContainerCollection = ["MET_Base",
00324 "MET_Calib",
00325 "MET_CorrTopo",
00326 "MET_LocHadTopo",
00327 "MET_Topo",
00328 "MET_TopoObj",
00329 "MET_MuonBoy",
00330 "MET_Cryo",
00331 "MET_CryoCone",
00332 "MET_RefFinal",
00333 "MET_RefEle",
00334 "MET_RefJet",
00335 "MET_CellOut",
00336 "MET_CorrTopo",
00337 "MET_LocHadTopo",
00338
00339
00340 "MET_Topo",
00341 "ObjMET_Elec",
00342 "ObjMET_Muon",
00343 "ObjMET_Jet",
00344 "ObjMET_MiniJet",
00345 "ObjMET_IdTrk",
00346 "ObjMET_Rest",
00347 "ObjMET_Final"]
00348 CBNT_AthenaAware.AANtupleWriter14.truthmissingEtContainer = "MET_Truth"
00349 CBNT_AthenaAware.AANtupleWriter14.truthparticleContainer = "SpclMC"
00350 CBNT_AthenaAware.AANtupleWriter14.jetTrackContainer = "Cone4TrackJets"
00351 CBNT_AthenaAware.AANtupleWriter14.jetTruthTrackContainer = "Cone4TruthTrackJets"
00352 CBNT_AthenaAware.AANtupleWriter14.TrackParticleContainer = "TrackParticleCandidate"
00353
00354
00355 CBNT_AthenaAware.AANtupleWriter14.release = "14.2.0"
00356 CBNT_AthenaAware.AANtupleWriter14.svnversion = os.popen("svnversion -n .").read()
00357 CBNT_AthenaAware.AANtupleWriter14.date = datetime.datetime.now().strftime("%Y-%m-%d/%H:%M:%S")
00358
00359
00360
00361
00362 from GaudiSvc.GaudiSvcConf import THistSvc
00363 ServiceMgr += THistSvc()
00364 ServiceMgr.THistSvc.Output = [ "AANT DATAFILE='"+filename+"' OPT='RECREATE'" ]
00365 from AnalysisTools.AnalysisToolsConf import AANTupleStream
00366 topSequence += AANTupleStream()
00367 AANTupleStream = AANTupleStream()
00368 AANTupleStream.ExtraRefNames = [ "StreamATLFAST","Stream1" ]
00369 AANTupleStream.OutputName = filename
00370 AANTupleStream.WriteInputDataHeader = True
00371 AANTupleStream.OutputLevel = WARNING
00372
00373
00374 MessageSvc = Service( "MessageSvc" )
00375 MessageSvc.OutputLevel = 3
00376
00377
00378
00379
00380 theApp.EvtMax = nevents
00381
00382
00383 if(filenumber > 0):
00384 ServiceMgr.EventSelector.SkipEvents = (filenumber-1) * theApp.EvtMax
00385 print 'Skip:', ServiceMgr.EventSelector.SkipEvents, 'Events'
00386
00387
00388
00389
00390
00391
00392
00393
00394
00395
00396
00397
00398
00399
00400
00401
00402
00403
00404
00405
00406
00407
00408
00409
00410
00411
00412
00413
00414
00415
00416
00417
00418
00419
00420
00421
00422
00423
00424
00425
00426
00427
00428
00429
00430
00431
00432
00433
00434
00435
00436
00437
00438
00439
00440
00441
00442
00443
00444
00445
00446
00447
00448
00449
00450
00451
00452