Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-11-27 03:18:07

0001 #!/usr/bin/env python
0002 
0003 import os, sys
0004 
0005 #====================== check input ==========================
0006 
0007 VERSION = os.environ.get('CMSSW_VERSION')
0008 if VERSION is None:
0009     print('''No environment CMSSW_VERSION''')
0010     sys.exit()
0011 
0012 if len(sys.argv) < 5:
0013     print('Usage: python run.py PhysList Particle Fhcal VAR')
0014     print('Example: python run.py FTFP_BERT pi- 106.5 RR')
0015     sys.exit()
0016 else:
0017     phys = sys.argv[1]
0018     part = sys.argv[2]
0019     hcal = sys.argv[3]
0020     var  = sys.argv[4]
0021 
0022 text = 'Start RUN for ' + phys + ' ' + part + ' ' + hcal + ' ' + var
0023 print(text)
0024 
0025 cmd = 'mkdir -p ' + VERSION
0026 os.system(cmd)
0027 
0028 fname = VERSION + '/' + phys + '_' + part + '_' + var + '_'
0029 
0030 #====================== beam choice ==========================
0031 
0032 listEpin  = ['2','2.5','3','4','5','6','7','8','9','20','30','50','100','150','200','300']
0033 listEpip  = ['2','3','4','5','6','7','8','9','20']
0034 listEp    = ['2.21','3.14','4.11','5.09','6.07','7.06','8.05','9.05','20','30','350']
0035 listPp    = ['2','3','4','5','6','7','8','9','20','30','350']
0036 listEpbar = ['2.21','2.67','3.14','4.11','5.09','6.07','7.06','8.05','9.05']
0037 listPpbar = ['2','2.5','3','4','5','6','7','8','9']
0038 listEkp   = ['2.06','3.08','4.03','5','6','7','8','9']
0039 listPkp   = ['2','3','4','5','6','7','8','9']
0040 listEkn   = ['2.55','3.08','4.03','5','6','7','8','9']
0041 listPkn   = ['2.5','3','4','5','6','7','8','9']
0042 listEe    = ['50']
0043 
0044 pdg = '-211'
0045 geom = 'SimG4CMS.HcalTestBeam.TB2006GeometryXML_cfi'
0046 nE = int(16)
0047 ecal = '1.01'
0048 stat = '5000'
0049 
0050 if(part == 'e-') :
0051   pdg = '11'
0052   listE = listEe
0053   listP = listEe
0054   nE = int(1)
0055   hcal = '100'
0056   geom = 'SimG4CMS.HcalTestBeam.TB2006GeometryNoEcalXML_cfi'
0057 
0058 if(part == 'pi-') :
0059   listE = listEpin
0060   listP = listEpin
0061 
0062 if(part == 'pi+') :
0063   pdg = '211'
0064   listE = listEpip
0065   listP = listEpip
0066   nE = int(9)
0067 
0068 if(part == 'p') :
0069   pdg = '2212'
0070   listE = listEp
0071   listP = listPp
0072   nE = int(11)
0073 
0074 if(part == 'pbar') :
0075   pdg = '-2212'
0076   listE = listEpbar
0077   listP = listPpbar
0078   nE = int(9)
0079 
0080 if(part == 'kaon+') :
0081   pdg = '321'
0082   listE = listEkp
0083   listP = listPkp
0084   nE = int(8)
0085 
0086 if(part == 'kaon-') :
0087   pdg = '-321'
0088   listE = listEkn
0089   listP = listPkn
0090   nE = int(8)
0091 
0092 if(var == 'NO') :
0093   geom = 'SimG4CMS.HcalTestBeam.TB2006GeometryNoEcalXML_cfi'
0094   
0095 #====================== event loop ==========================
0096 
0097 outf = fname + '.log'
0098 cmd4 = 'rm -f ' + outf
0099 os.system(cmd4)
0100 cmd1 = 'echo "Start loop" > ' + outf
0101 print(cmd1)
0102 os.system(cmd1)
0103 
0104 for i in range( nE) :
0105   fnametmp = fname + '.py'
0106   cmd3 = 'rm -f ' + fnametmp
0107   os.system(cmd3)
0108   pfile = open(fnametmp, "w")
0109   pfile.write('import FWCore.ParameterSet.Config as cms \n\n' )
0110   pfile.write('from Configuration.Eras.Modifier_h2tb_cff import h2tb   \n\n' )
0111   pfile.write('process = cms.Process("PROD", h2tb) \n\n' )
0112   pfile.write('process.load("' + geom + '") \n\n')
0113   pfile.write('from SimG4CMS.HcalTestBeam.TB2006Analysis_cfi import * \n')
0114   pfile.write('process = testbeam2006(process) \n\n')
0115   pfile.write('process.TFileService = cms.Service("TFileService", \n')
0116   pfile.write('  fileName = cms.string("' + fname + listP[i] + 'gev.root") \n')
0117   pfile.write(') \n\n')
0118   pfile.write('process.common_beam_direction_parameters.MinE = cms.double('+listE[i]+') \n')
0119   pfile.write('process.common_beam_direction_parameters.MaxE = cms.double('+listE[i]+') \n')
0120   pfile.write('process.common_beam_direction_parameters.PartID = cms.vint32('+pdg+') \n')
0121   pfile.write('process.generator.PGunParameters.MinE = process.common_beam_direction_parameters.MinE \n')
0122   pfile.write('process.generator.PGunParameters.MaxE = process.common_beam_direction_parameters.MaxE \n')
0123   pfile.write('process.generator.PGunParameters.PartID = process.common_beam_direction_parameters.PartID \n')
0124   pfile.write('process.VtxSmeared.MinE = process.common_beam_direction_parameters.MinE \n')
0125   pfile.write('process.VtxSmeared.MaxE = process.common_beam_direction_parameters.MaxE \n')
0126   pfile.write('process.VtxSmeared.PartID = process.common_beam_direction_parameters.PartID \n')
0127   pfile.write('process.testbeam.MinE = process.common_beam_direction_parameters.MinE \n')
0128   pfile.write('process.testbeam.MaxE = process.common_beam_direction_parameters.MaxE \n')
0129   pfile.write('process.testbeam.PartID = process.common_beam_direction_parameters.PartID \n')
0130   if(part == 'e-') : pfile.write('process.testbeam.ECAL = cms.bool(False) \n')
0131   if(var == 'NO') : pfile.write('process.testbeam.ECAL = cms.bool(False) \n')
0132   pfile.write('process.testbeam.TestBeamAnalysis.EcalFactor = cms.double(' + ecal + ') \n')
0133   pfile.write('process.testbeam.TestBeamAnalysis.HcalFactor = cms.double(' + hcal + ') \n\n')
0134   pfile.write('process.maxEvents = cms.untracked.PSet( \n')
0135   pfile.write('  input = cms.untracked.int32(' + stat + ') \n')
0136   pfile.write(') \n\n')
0137   pfile.write('process.g4SimHits.Physics.type = "SimG4Core/Physics/' + phys + '" \n\n')
0138   pfile.write('process.g4SimHits.OnlySDs = ["CaloTrkProcessing", "EcalTBH4BeamDetector", "HcalTB02SensitiveDetector", "HcalTB06BeamDetector", "EcalSensitiveDetector", "HcalSensitiveDetector"] \n\n')
0139   pfile.close()
0140   cmd2 = 'cmsRun ' + fnametmp + ' >> ' + outf 
0141   os.system(cmd2)
0142 
0143 #====================== end ==========================