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