----------------------- Digitization ----------------------- To run the digitization (using the default noise and SFs) start by following your instructions (checking out the LArDigitization package). Then the code LArDigitMaker.cxx needs to be modified in a hard-coded way in the initialize (anywhere) by setting: m_rndmEvtRun = false This is the default in the code, but in some job option (which I could never track down) it over-rides it to be true (this is what calculates the random number based on the run-event number). Then just recompile the package. Below is a joboption that I used to do the digitization (probably looks very similar to what you already have). --------Start of myDigiOptions_squareBeam.py--------- ########################################################## # User Digitization Job Options # Detector description ###DetDescrVersion='ATLAS-H6-2003-00' DetDescrVersion="ATLAS-CSC-02-00-00" #--- Flags ------------------------------------------------------------- ###from AthenaCommon.GlobalFlags import GlobalFlags from AthenaCommon.DetFlags import DetFlags #--- Output printout level ----------------------------------- #output threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL) MessageSvc = Service( "MessageSvc" ) MessageSvc.OutputLevel = 3 # - switch off non-existing detectors DetFlags.ID_setOff() DetFlags.Muon_setOff() DetFlags.Tile_setOff() DetFlags.Calo_setOff() DetFlags.LAr_setOn() DetFlags.HEC_setOff() DetFlags.em_setOff() ###DetFlags.FCal_setOn() DetFlags.digitize.Truth_setOn() ###Added by JPA in order to ignore detector tag difference #--- GeoModel Stuff --------------------------------------------------- GeoModelSvc = Service( "GeoModelSvc" ) GeoModelSvc.IgnoreTagDifference=True ##################################################End JPA # Run through EvtMax events; if -1 run to end of file EvtMax = -1 ########################################################### PoolHitsInput = ["/data/data021/lheelan/atlas/Athena13.0.30/tb03/mc_simulation/mc_simulation_rootfiles/H6TB2003MC_squareBeam_simu_2324.pool.root"] PoolRDOOutput = "/data/data021/lheelan/atlas/Athena13.0.30/tb03/mc_digitization/mc_digitization_rootfiles/H6TB2003MC_squareBeam_digi_2324.pool.root" #doCaloNoise=False doCaloNoise=True doInDetNoise=False doMuonNoise=False # digitization flags and random seeds LArDigitUseOldSeed=False # doesn't seem to make a difference! from Digitization.DigitizationFlags import jobproperties # input user defined seeds # remember in LArDigitMaker.cxx to hardcode m_rndmEvtRun=false jobproperties.Digitization.rndmSeedOffset1=2 jobproperties.Digitization.rndmSeedList.addSeed("LArDigitization", 111111, 222222 ) jobproperties.Digitization.rndmSeedList.addSeed("digitmaker1", 333333, 444444 ) --------------End of myDigiOptions_squareBeam.py--------------------- ----------------------- Reconstruction ----------------------- As for the reconstruction, again following from your directions, below is the job option that I have used: -----------Start of myTopOptions_squareBeam.py---------------- #example of personal topOptions # # to use it # athena >! athena.log # ( myTopOptions.py is defaulted through jobOptions.py soft link) # # see RecExCommon/share/RecExCommon_flags.py for more available flags # and https://twiki.cern.ch/twiki/bin/view/Atlas/RecExCommonFlags # for more complete documentation. # # doESD, DetDescrVersion and other flags # needs be set before the include, since several # secondary flags are configured according to that one # DetDescrVersion="ATLAS-CSC-02-00-00" # DetDescrVersion="ATLAS-DC3-02" # 11.0.42 files ###Added by JPA in order to ignore detector tag difference #--- GeoModel Stuff --------------------------------------------------- GeoModelSvc = Service( "GeoModelSvc" ) GeoModelSvc.IgnoreTagDifference=True ##################################################End JPA # the input data file #PoolRDOInput = [ "/data/data021/lheelan/atlas/Athena13.0.30/tb03/mc_digitization/mc_digitization_rootfiles/H6TB2003MC_squareBeam_digi_xxxxx.pool.root" ] #RootNtupleOutput = "/data/data021/lheelan/atlas/Athena13.0.30/tb03/mc_reconstruction/mc_reconstruction_rootfiles/H6TB2003MC_squareBeam_recoCBNT_xxxxx.root" PoolRDOInput = [ "/data/data021/lheelan/atlas/Athena13.0.30/tb03/mc_digitization/mc_digitization_rootfiles/H6TB2003MC_squareBeam_digi_2324.pool.root" ] RootNtupleOutput = "/data/data021/lheelan/atlas/Athena13.0.30/tb03/mc_reconstruction/mc_reconstruction_rootfiles/H6TB2003MC_squareBeam_recoCBNT_2324.root" #------------ doTrigger = False # for example do not run trigger simulation doTruth=False # number of event to process EvtMax=200 # include my own algorithm(s) # UserAlgs=[ "MyPackage/MyAlgorithm_jobOptions.py" ] # By default write ESD, AOD and TAG simultenaously, but note that in production # these should be done in separate steps (results might not be bit-by-bit identical). doESD=False # uncomment if do not run ESD making algorithms doWriteESD=False # uncomment if do not write ESD doAOD=False # uncomment if do not run AOD making algorithms doWriteAOD=False # uncomment if do not write AOD doWriteTAG=False # uncomment if do not write TAG ###doCBNT=True CBNTAthenaAware=True doCaloTopoCluster=True #---------- donewTracking = False doxKalman = False doiPatRec = False doEmCluster = False doMoore = False doMuonboy = False doConversion = False doEgamma = False doJetRec = False doTauRec = False doMuonIDStandAlone = False doMuonIDCombined = False doMuGirl = False doStaco= False doMuTag = False doTileMuID = False doCaloTrkMuId = False doMuonSpShower = False doMissingET = False doObjMissingET = False doMissingETSig = False # if needed to configure trigger # see https://twiki.cern.ch/twiki/bin/view/Atlas/TriggerFlags # include ( "TriggerRelease/TriggerFlags.py" ) # if needed to configure AOD building # see https://twiki.cern.ch/twiki/bin/view/Atlas/UserAnalysisTest#The_AOD_Production_Flags # from ParticleBuilderOptions.AODFlags import AODFlags # DetFlags modifications are best set here (uncomment RecExCommon_flags first) include ("RecExCommon/RecExCommon_flags.py") # switch off ID, calo, or muons DetFlags.ID_setOff() DetFlags.Calo_setOff() DetFlags.Muon_setOff() DetFlags.LAr_setOn() # main jobOption include ("RecExCommon/RecExCommon_topOptions.py") # user modifier should come here #---------------- # TopoCluster #---------------- from CaloRec.CaloTopoClusterFlags import jobproperties jobproperties.CaloTopoClusterFlags.doTopoClusterLocalCalib.set_Value(False) CaloTopoCluster.TopoMaker.CalorimeterNames = [ "LARFCAL" ] CaloTopoCluster.TopoMaker.SeedSamplingNames = ["FCAL0","FCAL1","FCAL2"] CaloTopoCluster.TopoMaker.SeedThresholdOnEorAbsEinSigma = 4.0 CaloTopoCluster.TopoMaker.NeighborThresholdOnAbsEinSigma = 2.0 CaloTopoCluster.TopoMaker.CellThresholdOnAbsEinSigma = 0.0 CaloTopoCluster.TopoMaker.SeedThresholdOnEtorAbsEt = -1 CaloTopoCluster.TopoMaker.NeighborThresholdOnAbsEt = -1 CaloTopoCluster.TopoMaker.CellThresholdOnAbsEt = -1 CaloTopoCluster.TopoMaker.SeedCutsInAbsE = TRUE #CaloTopoCluster.TopoMaker.NoiseSigma = 300*MeV #used if no noise tool make big for A side? CaloTopoCluster.TopoMaker.UseCaloNoiseTool = TRUE ToolSvc = Service( "ToolSvc" ) CaloTopoCluster.TopoMaker.CaloNoiseTool = "SimpleNoiseToolFromTextFile" ToolSvc.SimpleNoiseToolFromTextFile.CellNoiseUnits = MeV ToolSvc.SimpleNoiseToolFromTextFile.CellNoiseDefault = 3000*MeV #if no cell info in text file? ToolSvc.SimpleNoiseToolFromTextFile.CellNoiseDefaultWarning = TRUE #CaloTopoCluster.TopoMaker.CaloNoiseTool.ToolSvc.simplenoisetool.OutputLevel = INFO ToolSvc.SimpleNoiseToolFromTextFile.CellNoiseFileName ="NoiseFile.txt" CaloTopoCluster.TopoMaker.UsePileUpNoise = FALSE CaloTopoCluster.TopoMaker.NeighborOption = "all3D" #?CaloTopoCluster.TopoMaker.RestrictHECIWandFCalNeighbors = CaloTopoCluster.TopoMaker.ClusterEtorAbsEtCut = -1 CaloTopoCluster.TopoMaker.OutputLevel = DEBUG #------------------------- # CBNT TopoCluster #------------------------- from CaloRec.CaloRecConf import CBNTAA_CaloCluster CBNT_AthenaAware += CBNTAA_CaloCluster("CBNT_CaloClusterTopo") theCBNT_CaloClusterTopo=CBNTAA_CaloCluster("CBNT_CaloClusterTopo") theCBNT_CaloClusterTopo.Suffix = "_topo" theCBNT_CaloClusterTopo.EMOnly = FALSE theCBNT_CaloClusterTopo.Central = FALSE theCBNT_CaloClusterTopo.EndCap = TRUE theCBNT_CaloClusterTopo.AddCellDetailsNoise = TRUE theCBNT_CaloClusterTopo.AddCellDetails = TRUE theCBNT_CaloClusterTopo.AddCells = TRUE theCBNT_CaloClusterTopo.UseLink = TRUE theCBNT_CaloClusterTopo.ClusterColl = "CaloTopoCluster" theCBNT_CaloClusterTopo.MaxCaloCluster = 1000 #---------------------- # CBNT CaloCell #---------------------- from CaloIdentifier import SUBCALO from CaloRec.CaloRecConf import CBNTAA_CaloCell CBNT_AthenaAware += CBNTAA_CaloCell("CBNT_LArCell") theCBNT_LArCell = CBNTAA_CaloCell("CBNT_LArCell") theCBNT_LArCell.MaxNCells = 5000 theCBNT_LArCell.CaloNums=[SUBCALO.LARFCAL] -----------End of myTopOptions_squareBeam.py---------------- To do things like the data you will need to check out the CaloRec package: cmt co -r CaloRec-02-07-82 Calorimeter/CaloRec and modify: CBNTAA_CaloCluster.{cxx,h} CBNTAA_CaloCell.{cxx,h} Such that they also output the cell ID, and the x and y positions of the cells (in the clusters and in general). Under the attachments on this wiki you can find the modified versions of these two files. And just compile everything in the CaloRec package. In the same directory where you run this reco job option you will also need the file NoiseFile.txt, which is used in the topocluster for the simplenoisetoolfromtextfile. This file was generated using zero energy neutrino events (had to be massless particle for zero energy), and the rms of the 'energy' (essentially noise) was outputted for each channel. Under the attachments of this wiki you will also find this file (NoiseFile.txt).