HiggsAnalysis/HiggsAnalysis-00-01-00/share/HiggsAnalysisNtupleWriter.py

00001 # Author: Ketevi A. Assamagan
00002 # BNL, June 12, 2004
00003 
00004 #    run with: athena  -c 'jetcontainer = "Cone4Topo" ; dataset = "5333" ; outputdir = "/.at/mdtraid06/mgroh"' HiggsAnalysisNtupleWriter.py
00005 #    Nur für dumme Sandra:
00006 #    athena  -c 'dataset = "mydata"' HiggsAnalysisNtupleWriter.py
00007 
00008 # if values are not given as an argument
00009 # run with default values:
00010 try: jetcontainer
00011 except NameError:
00012    #jetcontainer = "Cone4Topo"
00013    jetcontainer = "Cone4Tower"
00014 
00015 print "jetcontainer = ", jetcontainer
00016 
00017 #try: dataset
00018 #except NameError:
00019 #   print '\n*****************************************\n'
00020 #   print '\n*********   Define a Dataset!   *********\n'
00021 #   print '\n*****************************************\n'
00022 #   sys.exit()
00023 
00024 try: dataset
00025 except NameError:
00026    dataset = "mydata"   
00027 print "dataset = ", dataset
00028 
00029 try: outputdir
00030 except NameError:
00031    outputdir = ""
00032 print "outputdir: ", outputdir
00033 
00034 
00035 # put the names of the jetcontainers together
00036 jetcontainername =  jetcontainer + "ParticleJets"
00037 namelist = ["H1Topo", "UnCalTopo", "Topo", "Tower"]
00038 truthjetcontainername = ""
00039 
00040 for k_string in namelist:
00041    
00042    if k_string in jetcontainername:
00043       
00044       truthjetcontainername = jetcontainername.replace(k_string,"Truth")
00045       break;
00046 print "Jet Container: ", jetcontainername
00047 print "Truth Jet Container: ", truthjetcontainername
00048 
00049 
00050 
00051 # import the data types 
00052 import EventKernel.ParticleDataType
00053 
00054 EventSelector = Service( "EventSelector" )
00055 
00056 # load additional libraries for back navigation
00057 from AnalysisExamples.AnalysisFlags import AnalysisFlags
00058 
00059 include( "AthenaPoolCnvSvc/ReadAthenaPool_jobOptions.py" )
00060 
00061 if AnalysisFlags.DoNavigation:
00062         include ("RecExCommon/AllDet_detDescr.py")
00063         EventSelector.BackNavigation = True
00064 
00065 # the Dlls
00066 include( "ParticleBuilderOptions/ESD_PoolCnv_jobOptions.py" )
00067 include( "ParticleBuilderOptions/AOD_PoolCnv_jobOptions.py")
00068 include( "ParticleBuilderOptions/McAOD_PoolCnv_jobOptions.py")
00069 include( "EventAthenaPool/EventAthenaPool_joboptions.py" )
00070 
00071 # write out a summary of the time spent
00072 theApp.Dlls += [ "GaudiAud" ]
00073 theAuditorSvc = AuditorSvc()
00074 theAuditorSvc.Auditors  += [ "ChronoAuditor", "MemStatAuditor"]
00075 
00076 # User Analysis Dll's
00077 theApp.Dlls   += [ "CBNT_Athena", "CBNT_Utils" ]
00078 theApp.Dlls   += [ "AnalysisTools" ]
00079 theApp.Dlls   += [ "AnalysisExamples" ]
00080 
00081 # The algorithms to run
00082 theApp.TopAlg += [ "CBNT_Athena/AOD_ANA" ]
00083 AOD_ANA = Algorithm( "AOD_ANA" )
00084 
00085 
00086 #to read Rel11 data in Rel12 -> doesn't work
00087 #include("./inputdata/official.mc12.005350.PythiabbA110_45.recon.AOD.v12000601_tid006454.py")
00088 #include("./inputdata/official.mc12_V1.005350.PythiabbA110_45.recon.AOD.v12000601_tid007629.py")
00089 #include("./inputdata/official.mc12.005351.PythiabbA200_30.recon.AOD.v12000601_full.py")
00090 #include("./inputdata/official.mc12.006343.PythiabbA400_30.recon.AOD.v12000601_full.py")
00091 #include("./inputdata/mpi.mc12.005350.PythiabbA110_45.recon.AOD.v12000601.d12003103.py")
00092 #include("./inputdata/mpi.mc12.005351.PythiabbA200_30.recon.AOD.v12000601_full.py")
00093 
00094 #include("./inputdata/mpi.mc12.006396.sherpaZ3ljetsmumu.recon.AOD.v12000601_full.py")
00095 #include("./inputdata/official.mc12.005200.T1_McAtNlo_Jimmy.recon.AOD.v12000601_tid005997.py")
00096 #include("./inputdata/mpi.mc12.006396.sherpaZ3ljetsmumu.recon.AOD.v12000601.py") 
00097 #new data
00098 if dataset == "mydata":
00099    #include("./inputdata/official.mc12.005351.PythiabbA200_30.recon.AOD.v12000601_full.py")
00100    #include("./inputdata/official.mc12.005350.PythiabbA110_45.recon.AOD.v12000601_tid006454.py")
00101    include("./inputdata/official.csc11.005300.PythiaH130zz4l.recon.AOD.v12000601_tid007180.py")
00102 
00103 elif dataset == "5300":
00104    include("./official.csc11.005300.PythiaH130zz4l.recon.AOD.v12000601_tid007180.py")
00105 
00106 elif dataset.endswith(".py"):
00107    include(dataset)
00108    tuple = dataset.rsplit("/",1)
00109    dataset = tuple[1].rstrip(".py")
00110    
00111 else:
00112    print '\nERROR: Couldn\'t read dataset:', dataset
00113    print '       please provide dataset number or \'.py\' file\n'
00114    sys.exit()
00115 
00116 #filename = "/mnt/scratch/" + dataset + ".aan.root"
00117 #filename = outputdir + dataset + "_" + jetcontainername + ".aan.root"
00118 filename = "tmp.aan.root"
00119 
00120 print '\n************************************************************\n'
00121 print " \nUsing following names: "
00122 print "   filename: ", filename   
00123 print "   jetcontainername: ",  jetcontainername  
00124 print "   truthjetcontainername: ", truthjetcontainername
00125 print '\n************************************************************\n'
00126 
00127 
00128 theApp.Dlls   += [ "AnalysisTools" ]
00129 theApp.Dlls   += [ "HiggsAnalysis" ]
00130 CBNTAthenaAware = True
00131 include ("CBNT_Athena/CBNT_AthenaAware_jobOptions.py")
00132 include ("CBNT_Athena/CBNT_EventInfo_jobOptions.py")
00133 CBNT_AthenaAware = Algorithm( "CBNT_AthenaAware" )
00134 CBNT_AthenaAware.Members += [ 
00135                                 "HiggsAnalysisNtupleWriter"
00136                             ]
00137 
00138 ############# The properties of the HiggsAnalysisNtupleWriter Algorithm
00139 
00140 HiggsAnalysisNtupleWriter = Algorithm( "HiggsAnalysisNtupleWriter" )
00141 
00142 
00143 
00144 HiggsAnalysisNtupleWriter.doTrigger        = TRUE
00145 HiggsAnalysisNtupleWriter.doMissingEt      = FALSE
00146 HiggsAnalysisNtupleWriter.doElectrons      = FALSE
00147 HiggsAnalysisNtupleWriter.doPhotons        = FALSE
00148 HiggsAnalysisNtupleWriter.doMuons          = TRUE
00149 HiggsAnalysisNtupleWriter.doJets           = FALSE
00150 HiggsAnalysisNtupleWriter.doTauJets        = FALSE
00151 HiggsAnalysisNtupleWriter.doTruthJets      = FALSE
00152 HiggsAnalysisNtupleWriter.doTruthParticles = TRUE
00153 
00154 HiggsAnalysisNtupleWriter.truthparticleMaximumLeptonBarcode = 1000000
00155 HiggsAnalysisNtupleWriter.truthparticleNoPDGAbove100        = TRUE
00156 
00157 
00158 AtlFastFlag = 0
00159 
00160 HiggsAnalysisNtupleWriter.AtlFastFlag = AtlFastFlag
00161 print 'AtlFastFlag = ', AtlFastFlag
00162 
00163 HiggsAnalysisNtupleWriter.AOD_files = EventSelector.InputCollections
00164 
00165 
00166 if AtlFastFlag == 1:
00167     
00168    HiggsAnalysisNtupleWriter.triggerDecisionContainer   = "notAvailable"
00169    HiggsAnalysisNtupleWriter.photonContainer            = "AtlfastPhotonCollection"
00170    HiggsAnalysisNtupleWriter.electronContainer          = "AtlfastElectronCollection"
00171    HiggsAnalysisNtupleWriter.muonContainer              = "AtlfastMuonCollection"
00172    HiggsAnalysisNtupleWriter.jetContainer               = "AtlfastParticleJetContainer"
00173    HiggsAnalysisNtupleWriter.taujetContainer            = "AtlfastTauJetContainer"
00174    HiggsAnalysisNtupleWriter.missingEtFinalContainer    = "AtlfastMissingEt"
00175    HiggsAnalysisNtupleWriter.truthparticleContainer     = "SpclMC"
00176    HiggsAnalysisNtupleWriter.truthjetContainer          = "notAvailable"
00177    HiggsAnalysisNtupleWriter.missingEtCorrTopoContainer = "notAvailable"
00178    HiggsAnalysisNtupleWriter.missingEtCalibContainer    = "notAvailable"
00179    HiggsAnalysisNtupleWriter.missingEtMuonboyContainer  = "notAvailable"
00180    HiggsAnalysisNtupleWriter.missingEtMooreContainer    = "notAvailable"
00181    HiggsAnalysisNtupleWriter.missingEtCryoContainer     = "notAvailable"
00182    HiggsAnalysisNtupleWriter.missingEtCryoConeContainer = "notAvailable"
00183    HiggsAnalysisNtupleWriter.truthmissingEtContainer    = "notAvailable"
00184    
00185 else:
00186 
00187    #----------------------------------------------------- trigger  
00188    HiggsAnalysisNtupleWriter.triggerDecisionContainer     = "MyTriggerDecision"
00189    HiggsAnalysisNtupleWriter.triggerLVL1ROIContainer      = "LVL1_ROI"
00190    #----------------------------------------------------- photons
00191    HiggsAnalysisNtupleWriter.photonContainer              = "PhotonCollection"
00192    #----------------------------------------------------- electrons
00193    HiggsAnalysisNtupleWriter.electronContainer            = "ElectronCollection"
00194    #----------------------------------------------------- muons
00195    HiggsAnalysisNtupleWriter.muonContainer                = "MuidMuonCollection"
00196    #HiggsAnalysisNtupleWriter.muonContainer               = "StacoMuonCollection"
00197    #----------------------------------------------------- jets
00198    #HiggsAnalysisNtupleWriter.jetContainer                = jetcontainername
00199    #HiggsAnalysisNtupleWriter.jetContainer                = "ConeTowerParticleJets"
00200    HiggsAnalysisNtupleWriter.jetContainer                 = "Cone4TowerParticleJets"
00201    #----------------------------------------------------- tau jets
00202    HiggsAnalysisNtupleWriter.taujetContainer              = "TauJetCollection"
00203    #---------------------------------------------------- truth jets
00204    HiggsAnalysisNtupleWriter.truthjetContainer            = truthjetcontainername
00205    #HiggsAnalysisNtupleWriter.truthjetContainer           = "Cone4TruthParticleJets"
00206    #----------------------------------------------------- missing energy
00207    HiggsAnalysisNtupleWriter.missingEtFinalContainer      = "MET_Final"
00208    #HiggsAnalysisNtupleWriter.missingEtFinalContainer     = "MET_RefFinal"
00209    #HiggsAnalysisNtupleWriter.missingEtFinalContainer     = "ObjMET_Final"
00210    HiggsAnalysisNtupleWriter.missingEtCorrTopoContainer   = "MET_CorrTopo"
00211    HiggsAnalysisNtupleWriter.missingEtCalibContainer      = "MET_Calib"
00212    HiggsAnalysisNtupleWriter.missingEtMuonboyContainer    = "MET_MuonBoy"
00213    HiggsAnalysisNtupleWriter.missingEtMooreContainer      = "MET_Muon"
00214    HiggsAnalysisNtupleWriter.missingEtCryoContainer       = "MET_Cryo"
00215    HiggsAnalysisNtupleWriter.missingEtCryoConeContainer   = "MET_CryoCone"
00216    HiggsAnalysisNtupleWriter.truthmissingEtContainer      = "MET_Truth"
00217    #----------------------------------------------------- truth particles
00218    HiggsAnalysisNtupleWriter.truthparticleContainer       = "SpclMC"
00219 
00220 
00221 ##########################################
00222 # setup TTree registration Service
00223 # save ROOT histograms and Tuple
00224 theApp.Dlls += [ "RootHistCnv" ]
00225 theApp.HistogramPersistency = "ROOT"
00226 THistSvc         = Service ( "THistSvc" )
00227 THistSvc.Output  = ["AANT DATAFILE='"+filename+"' OPT='RECREATE'"]
00228 NTupleSvc        = Service( "NTupleSvc" )
00229 NTupleSvc.Output = [ "FILE1 DATAFILE='"+filename+"' OPT='NEW'" ]
00230 theApp.TopAlg += [ "AANTupleStream" ]
00231 AANTupleStream               = Algorithm( "AANTupleStream" )
00232 AANTupleStream.ExtraRefNames = [ "StreamATLFAST","Stream1" ]
00233 AANTupleStream.OutputName = filename
00234 AANTupleStream.WriteInputDataHeader = True
00235 AANTupleStream.OutputLevel         = WARNING
00236 
00237 # Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL )
00238 MessageSvc = Service( "MessageSvc" )
00239 MessageSvc.OutputLevel = WARNING
00240 #MessageSvc.OutputLevel = WARNING
00241 #MessageSvc.OutputLevel = DEBUG
00242 
00243 # Number of Events to process
00244 theApp.EvtMax = 50000
00245 
00246 

Generated on Tue Oct 21 11:50:42 2008 for NtupleAnalysis by  doxygen 1.5.1