103 def getXSRef(self,HORef,explanation=None):
104
105 foundRefXS=False
106 HOXS="UNKNOWN"
107 HOSrc="UNKNOWN"
108
109
110 for highXsecLine in self.xsRefLines:
111 refexplanation="Unknown"
112 highXsecInfo=highXsecLine.split(',')
113 if len(highXsecInfo)<3:
114 print self.colors.FAIL+"ERROR: Higher-order cross section line only has %i fields (expected 3)"%len(highXsecInfo)+self.colors.ENDC
115 continue
116
117 highXsecRef=highXsecInfo[0].
strip()
118 highXsecVal=highXsecInfo[1].
strip()
119 if explanation:
120 highXsecSrc=explanation
121 else:
122 highXsecSrc=highXsecInfo[2].
strip()
123
124 if str(highXsecRef) == str(HORef):
125 if highXsecVal=="Undefined" or highXsecVal=="":
126 print self.colors.FAIL+"ERROR: Higher order cross section value undefined - skipping"+self.colors.ENDC
127 highXsecVal="Unknown"
128
129 elif highXsecRef=="Undefined" or highXsecRef=="":
130 print self.colors.FAIL+"ERROR: Higher order cross section reference undefined - skipping"+self.colors.ENDC
131 highXsecRef="Unknown"
132
133 elif highXsecSrc=="Undefined" or highXsecSrc=="":
134 print self.colors.WARNING+"WARNING: Higher order cross section source undefined - skipping"+self.colors.ENDC
135
136 refexplanation=highXsecVal+","+highXsecSrc
137 HOXS=highXsecVal
138 HOSrc=highXsecSrc
139 foundRefXS=True
140 break
141
142 if foundRefXS:
143
144 print self.colors.FAIL+"New k-factor for existing HORef - do I need to recalculate HOXS and and propage to all samples with HORef?!"+self.colors.ENDC
145 self.findAllSamplesForXSRef()
146 else:
147 print self.colors.FAIL+"ERROR: Reference cross section %s not matched to CrossSectionReference file."%(HORef)+self.colors.ENDC
148 explanation="Unknown"
149
150
151
152 HORef = "UNKNOWN"
153 newanswer='X'
154 tmpans=False
155
156 while not tmpans:
157 HORef = raw_input('Please enter new HORef for %s (or type "skip"): '%(HORef))
158 if HORef=='skip':
159 HORef="UNKNOWN"
160 newanswer='skip'
161 tmpans=True
162 continue
163 newanswer='X'
164 while newanswer not in ['y','n','skip']: newanswer = raw_input('Continue upload with new HORef = %s? (y/n/skip): '%HOXS)
165 if newanswer in ['y','skip']:
166 tmpans=True
167
168 HOXS = "UNKNOWN"
169 newanswer='X'
170 tmpans=False
171 while not tmpans and newanswer!='skip':
172 HOXS = raw_input('Please enter new HOXS for %s (or type "skip"): '%(HORef))
173 if HOXS=='skip':
174 HOXS="UNKNOWN"
175 newanswer='skip'
176 tmpans=True
177 continue
178 newanswer='X'
179 while newanswer not in ['y','n','skip']: newanswer = raw_input('Continue upload with new HOXS = %s? (y/n/skip): '%HOXS)
180 if newanswer in ['y','skip']:
181 tmpans=True
182
183 HOSrc = "UNKNOWN"
184 tmpans=False
185 while not tmpans and newanswer!='skip':
186 HOSrc = raw_input('Please enter new HOSrc for %s (or type "skip"): '%(HORef))
187 if HOSrc=='skip':
188 HOSrc="UNKNOWN"
189 newanswer='skip'
190 tmpans=True
191 continue
192
193 newanswer='X'
194 while newanswer not in ['y','n','skip']: newanswer = raw_input('Continue upload with new HOSrc = %s? (y/n/skip): '%HOSrc)
195 if newanswer in ['y','skip']:
196 tmpans=True
197
198 if newanswer=='skip':
199 print self.colors.OKBLUE+"INFO: Skipping new HOXS/HOSrc value for %s"%(HORef)+self.colors.ENDC
200 highXsecVal="UNKNOWN"
201 else:
202 print self.colors.OKGREEN+"INFO: Adding new HOXS,HOSrc values %s,%s for %s"%(HOXS,HOSrc,HORef)+self.colors.ENDC
203 self.addNewXSRefEntry(HORef,HOXS,HOSrc)
204
205
206 return HOXS,HORef,HOSrc
207
208
209