File indexing completed on 2024-04-06 12:27:57
0001
0002
0003 if (( ${
0004 then
0005 if (( ${
0006 then
0007 pushd $HCALDAQ_SW_LOC/src/$HCAL_CMSSW_RELEASE/src >/dev/null
0008 eval `scramv1 runtime -sh`
0009 popd >/dev/null
0010 fi
0011 fi
0012
0013 if (( ${
0014 then
0015 echo Please setup your runtime environment!
0016 exit
0017 fi
0018
0019 ARG1=$1
0020 OUTPUTFILE=$2
0021
0022 if [[ -e ./reco_setup.rc ]]
0023 then
0024 source ./reco_setup.rc
0025 fi
0026
0027 if (( ${
0028 then
0029 UNPACKCALIB=true
0030 else
0031 UNPACKCALIB=false
0032 fi
0033
0034
0035
0036 if [[ "${ARG1}" == *[[:alpha:]]* ]]
0037 then
0038
0039 FILE=$ARG1
0040 else
0041
0042 FILE=`printf "${FORMAT}" ${ARG1}`
0043 fi
0044
0045 echo $FILE
0046
0047 if (( ${
0048 then
0049 EVENTLIMIT="-1";
0050 fi
0051
0052 if (( ${
0053 then
0054 echo "Must have a map file in the reco_setup.rc or config file"
0055 exit 1
0056 fi
0057
0058
0059
0060 CFGFILE=/tmp/runCMSSWReco_${USER}.cfg
0061 cat > ${CFGFILE}<<EOF
0062 process RECO = {
0063 service = MessageLogger
0064 {
0065 untracked vstring destinations = { "cout" }
0066 untracked vstring categories = { "DDLParser", "FwkJob", "FwkReport"}
0067 untracked PSet cout = {untracked string threshold = "INFO"
0068 untracked PSet INFO = { untracked int32 limit = 10000 }
0069 untracked PSet DDLParser = { untracked int32 limit = 0 }
0070 untracked PSet FwkJob = { untracked int32 limit =10 }
0071 untracked PSet FwkReport = { untracked int32 limit = 20 }
0072 }
0073 }
0074 EOF
0075
0076
0077
0078 if [[ "$MODE" == "TESTSTAND" || "${FILE}" == *"HTB_"* ]]
0079 then
0080
0081 STREAMS=","${FEDS}
0082 STREAMS=${STREAMS/20/020}
0083 STREAMS=${STREAMS//,/\',\'HCAL_DCC}
0084 STREAMS="'HCAL_Trigger"${STREAMS}\'
0085
0086 if [[ "$MODE" == "TESTSTAND" && "$FIRSTFED" == "" ]]
0087 then
0088 FIRSTFED=20
0089 fi
0090 EXTRAPREPATH="tbunpacker,"
0091 cat >> ${CFGFILE}<<EOF
0092 // Loads the events from testbeam files
0093 source = HcalTBSource {
0094 untracked vstring fileNames = { "file:${FILE}" }
0095 untracked int32 maxEvents = ${EVENTLIMIT}
0096 untracked vstring streams = { ${STREAMS} }
0097 }
0098 module tbunpacker = HcalTBObjectUnpacker {
0099 untracked int32 HcalTriggerFED = 1
0100 untracked int32 HcalSlowDataFED = -1
0101 untracked int32 HcalTDCFED = -1
0102 untracked int32 HcalSourcePosFED = -1
0103 untracked bool IncludeUnmatchedHits = false
0104 untracked string ConfigurationFile='configQADCTDC.txt'
0105 }
0106 module hcaldigi = HcalRawToDigi {
0107 int32 firstSample = 0
0108 int32 lastSample = 9
0109 untracked bool UnpackCalib = ${UNPACKCALIB}
0110 bool FilterDataQuality = true
0111 untracked int32 HcalFirstFED = ${FIRSTFED}
0112 untracked vint32 FEDs = { ${FEDS} }
0113 }
0114 EOF
0115
0116
0117
0118
0119
0120
0121
0122
0123
0124
0125
0126
0127
0128
0129
0130
0131
0132
0133
0134
0135
0136
0137
0138
0139
0140
0141
0142
0143
0144
0145
0146
0147
0148
0149
0150
0151
0152
0153
0154 elif [[ "$MODE" == "TB06" ]]
0155 then
0156
0157 if [[ -z "$FIRSTFED" ]]
0158 then
0159 FIRSTFED=700
0160 fi
0161
0162 PREF=${FILE
0163 if (( ${
0164 then
0165 FILE="file:$FILE"
0166 fi
0167
0168 EXTRAPREPATH="tbunpacker,"
0169 cat >> ${CFGFILE}<<EOF
0170 source = PoolSource {
0171 untracked vstring fileNames = { "${FILE}" }
0172 untracked int32 maxEvents = ${EVENTLIMIT}
0173 }
0174
0175 module tbunpacker = HcalTBObjectUnpacker {
0176 untracked int32 HcalTriggerFED = 1
0177 untracked int32 HcalSlowDataFED = -1
0178 untracked int32 HcalTDCFED = -1
0179 untracked int32 HcalQADCFED = -1
0180 untracked int32 HcalSourcePosFED = -1
0181 untracked bool IncludeUnmatchedHits = false
0182
0183 }
0184 module hcaldigi = HcalRawToDigi {
0185 int32 firstSample = 0
0186 int32 lastSample = 9
0187 untracked bool UnpackCalib = ${UNPACKCALIB}
0188 bool FilterDataQuality = true
0189 untracked int32 HcalFirstFED = ${FIRSTFED}
0190 untracked vint32 FEDs = { ${FEDS} }
0191 }
0192 EOF
0193 elif [[ "$MODE" == "USC" ]]
0194 then
0195 EXTRAPREPATH="tbunpacker,"
0196 cat >> ${CFGFILE}<<EOF
0197 // Loads the events from testbeam files
0198 source = HcalTBSource {
0199 untracked vstring fileNames = { "file:${FILE}" }
0200 untracked int32 maxEvents = ${EVENTLIMIT}
0201 untracked vstring streams = { 'HCAL_Trigger',
0202 'HCAL_DCC700','HCAL_DCC701','HCAL_DCC702','HCAL_DCC703',
0203 'HCAL_DCC704','HCAL_DCC705','HCAL_DCC706','HCAL_DCC707',
0204 'HCAL_DCC708','HCAL_DCC709','HCAL_DCC710','HCAL_DCC711',
0205 'HCAL_DCC712','HCAL_DCC713','HCAL_DCC714','HCAL_DCC715',
0206 'HCAL_DCC716','HCAL_DCC717','HCAL_DCC718','HCAL_DCC719',
0207 'HCAL_DCC720','HCAL_DCC721','HCAL_DCC722','HCAL_DCC723',
0208 'HCAL_DCC724','HCAL_DCC725','HCAL_DCC726','HCAL_DCC727',
0209 'HCAL_DCC728','HCAL_DCC729','HCAL_DCC730','HCAL_DCC731' }
0210 }
0211
0212 module tbunpacker = HcalTBObjectUnpacker {
0213 untracked int32 HcalTriggerFED = 1
0214 untracked int32 HcalSlowDataFED = -1
0215 untracked int32 HcalTDCFED = -1
0216 untracked int32 HcalSourcePosFED = -1
0217 untracked bool IncludeUnmatchedHits = false
0218 untracked string ConfigurationFile='configQADCTDC.txt'
0219 }
0220
0221 module hcaldigi = HcalRawToDigi {
0222 int32 firstSample = 0
0223 int32 lastSample = 9
0224 untracked bool UnpackCalib = ${UNPACKCALIB}
0225 bool FilterDataQuality = true
0226 // untracked int32 HcalFirstFED = ${FIRSTFED}
0227 untracked vint32 FEDs = {}
0228 }
0229 EOF
0230 else
0231 echo Unknown mode '$MODE'
0232 exit
0233 fi
0234
0235
0236 cat >> ${CFGFILE}<<EOF99
0237 module hbhereco = HcalSimpleReconstructor {
0238 /// Indicate which digi time sample to start with when
0239 /// integrating the signal
0240 int32 firstSample = 1
0241 /// Indicate how many digi time samples to integrate over
0242 int32 samplesToAdd = 8
0243 /// Indicate whether to apply energy-dependent time-slew corrections
0244 bool correctForTimeslew = true
0245 /// Indicate whether to apply corrections for pulse containment in the summing window
0246 bool correctForPhaseContainment = true
0247 /// Nanosecond phase for pulse containment correction (default of 13 ns appropriate for simulation)
0248 double correctionPhaseNS = 13.0
0249 /// Indicate which subdetector to reconstruct for.
0250 string Subdetector = 'HBHE'
0251 /// Give the label associated with the HcalRawToDigi unpacker module.
0252 /// NOTE: cross-dependency here.
0253 InputTag digiLabel = hcaldigi
0254 }
0255
0256 module horeco = HcalSimpleReconstructor {
0257 /// Indicate which digi time sample to start with when
0258 /// integrating the signal
0259 int32 firstSample = 1
0260 /// Indicate how many digi time samples to integrate over
0261 int32 samplesToAdd = 8
0262 /// Indicate whether to apply energy-dependent time-slew corrections
0263 bool correctForTimeslew = false
0264 /// Indicate whether to apply corrections for pulse containment in the summing window
0265 bool correctForPhaseContainment = true
0266 /// Nanosecond phase for pulse containment correction (default of 13 ns appropriate for simulation)
0267 double correctionPhaseNS = 13.0
0268 /// Indicate which subdetector to reconstruct for.
0269 string Subdetector = 'HO'
0270 /// Give the label associated with the HcalRawToDigi unpacker module.
0271 /// NOTE: cross-dependency here.
0272 InputTag digiLabel = hcaldigi
0273 }
0274
0275 module hfreco = HcalSimpleReconstructor {
0276 /// Indicate which digi time sample to start with when
0277 /// integrating the signal
0278 int32 firstSample = 1
0279 /// Indicate how many digi time samples to integrate over
0280 int32 samplesToAdd = 4
0281 /// Indicate whether to apply energy-dependent time-slew corrections
0282 bool correctForTimeslew = true
0283 /// Indicate whether to apply corrections for pulse containment in the summing window (not in HF or ZDC)
0284 bool correctForPhaseContainment = false
0285 /// Nanosecond phase for pulse containment correction (ignored if correction is not used)
0286 double correctionPhaseNS = 0.0
0287 /// Indicate which subdetector to reconstruct for.
0288 string Subdetector = 'HF'
0289 /// Give the label associated with the HcalRawToDigi unpacker module.
0290 /// NOTE: cross-dependency here.
0291 InputTag digiLabel = hcaldigi
0292 }
0293
0294 module plotanal = HcalQLPlotAnal {
0295 untracked InputTag hbheRHtag = hbhereco
0296 untracked InputTag hoRHtag = horeco
0297 untracked InputTag hfRHtag = hfreco
0298 untracked InputTag hcalDigiTag = hcaldigi
0299 untracked InputTag hcalTrigTag = tbunpacker
0300 untracked string outputFilename = "${OUTPUTFILE}"
0301 untracked bool doCalib = ${UNPACKCALIB} // false is the default
0302
0303 // untracked double calibFC2GeV = 0.2 // 0.2 is the default
0304
0305 PSet HistoParameters =
0306 {
0307 double pedGeVlo = ${PED_E_GEV_LO}
0308 double pedGeVhi = ${PED_E_GEV_HI}
0309 double pedADClo = ${PED_E_ADC_LO}
0310 double pedADChi = ${PED_E_ADC_HI}
0311 double ledGeVlo = ${LED_E_GEV_LO}
0312 double ledGeVhi = ${LED_E_GEV_HI}
0313 double laserGeVlo = ${LASER_E_GEV_LO}
0314 double laserGeVhi = ${LASER_E_GEV_HI}
0315 double otherGeVlo = ${OTHER_E_GEV_LO}
0316 double otherGeVhi = ${OTHER_E_GEV_HI}
0317 double beamGeVlo = ${BEAM_E_GEV_LO}
0318 double beamGeVhi = ${BEAM_E_GEV_HI}
0319 double timeNSlo = ${TIME_NS_LO}
0320 double timeNShi = ${TIME_NS_HI}
0321 }
0322 }
0323
0324 path p = { ${EXTRAPREPATH} hcaldigi, hbhereco, horeco, hfreco, plotanal }
0325
0326
0327 // stuff for the calibration system
0328 es_module = HcalDbProducer {}
0329 EOF99
0330
0331
0332
0333 HARDCODED="\"PedestalWidths\", \"GainWidths\", \"QIEShape\", \"QIEData\", \"ChannelQuality\""
0334 TEXT="{\nstring object=\"ElectronicsMap\"\nFileInPath file=\"${MAPFILE}\"\n}\n"
0335
0336 if (( ${
0337 then
0338 TEXT=${TEXT}",{\nstring object=\"Pedestals\"\nFileInPath file=\"${PEDESTALFILE}\"\n}\n"
0339 else
0340 HARDCODED=${HARDCODED}", \"Pedestals\""
0341 fi
0342
0343 if (( ${
0344 then
0345 TEXT=${TEXT}",{\nstring object=\"Gains\"\nFileInPath file=\"${GAINSFILE}\"\n}\n"
0346 else
0347 HARDCODED=${HARDCODED}", \"Gains\""
0348 fi
0349
0350 echo " es_source es_hardcode = HcalHardcodeCalibrations { untracked vstring toGet= { ${HARDCODED} } }" >> ${CFGFILE}
0351
0352 echo " es_source es_ascii = HcalTextCalibrations { VPSet input = {" >> ${CFGFILE}
0353 printf "${TEXT}" >> ${CFGFILE}
0354 echo " } }" >> ${CFGFILE}
0355
0356 echo "}" >> ${CFGFILE}
0357
0358
0359 cmsRun ${CFGFILE}