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