ATLAS Offline Software
Public Member Functions | Public Attributes | List of all members
LArG4ShowerLibFunctions.FCALDistEtaShowerLib Class Reference
Collaboration diagram for LArG4ShowerLibFunctions.FCALDistEtaShowerLib:

Public Member Functions

def __init__ (self)
 
def scaleEnergy (self, scalefactor)
 
def truncate (self, truncate, nShowersMin=0)
 
def moveDist (self, oldDist, newDist)
 
def moveEta (self, oldEta, newEta)
 
def removeDist (self, dist)
 
def removeEta (self, eta)
 
def fromLibs (self, libs)
 
def readFromFile (self, filename)
 
def writeToFile (self, filename)
 
def printInfo (self)
 
def drawHits (self)
 

Public Attributes

 library
 
 detector
 
 particle
 
 release
 
 geometry
 
 geant
 
 phys
 
 comment
 
 xrod_cent
 
 yrod_cent
 
 step
 

Detailed Description

Definition at line 895 of file LArG4ShowerLibFunctions.py.

Constructor & Destructor Documentation

◆ __init__()

def LArG4ShowerLibFunctions.FCALDistEtaShowerLib.__init__ (   self)

Definition at line 897 of file LArG4ShowerLibFunctions.py.

897  def __init__(self) :
898  self.library = {} # key (float) - eta, value (dict), key - dist, value - (list) list of StoredEnergyShower objs
899  self.detector= ""
900  self.particle= ""
901  self.release= ""
902  self.geometry= ""
903  self.geant= ""
904  self.phys= ""
905  self.comment= ""
906  self.xrod_cent = 0.0
907  self.yrod_cent = 0.0
908  self.step = 0.0

Member Function Documentation

◆ drawHits()

def LArG4ShowerLibFunctions.FCALDistEtaShowerLib.drawHits (   self)

Definition at line 1320 of file LArG4ShowerLibFunctions.py.

1320  def drawHits(self):
1321  from ROOT import TH3F
1322  from math import sqrt,copysign,log10
1323  hits = TH3F("HITS","Hits Distrib",50,1,1000,101,-300,300,100,0,500)
1324  containmentZ = TH3F("CONTZ","ContZ Distrib",50,1,1000,101,-300,300,100,0,500)
1325  containmentR = TH3F("CONTR","ContR Distrib",50,1,1000,101,-300,300,100,0,500)
1326 
1327  etas = sorted(self.library.keys())
1328  for eta in etas :
1329  dists = sorted(self.library[eta].keys())
1330  for distlow,disthigh in zip(dists,(dists[1:] + [4.5])) : #looping over eta bins
1331  for storedShower in self.library[eta][distlow] :
1332  containmentR.Fill(log10(storedShower.egen)*333,storedShower.rsize,storedShower.zsize,10)
1333  containmentR.Fill(log10(storedShower.egen)*333,-storedShower.rsize,storedShower.zsize,10)
1334  containmentZ.Fill(log10(storedShower.egen)*333,0,storedShower.zsize,10)
1335  for hit in storedShower.shower :
1336  hits.Fill(log10(storedShower.egen)*333,copysign(sqrt(hit.x*hit.x + hit.y*hit.y),hit.x),hit.z)
1337 
1338  return hits,containmentZ,containmentR

◆ fromLibs()

def LArG4ShowerLibFunctions.FCALDistEtaShowerLib.fromLibs (   self,
  libs 
)

Definition at line 962 of file LArG4ShowerLibFunctions.py.

962  def fromLibs(self,libs) :
963  for lib in libs :
964  if not isinstance(lib,self.__class__):
965  print ("ERROR: Different types of libs")
966  return False
967  self.detector = libs[0].detector
968  self.particle = libs[0].particle
969  self.release = libs[0].release
970  self.geometry = libs[0].geometry
971  self.geant = libs[0].geant
972  self.phys = libs[0].phys
973  self.comment = libs[0].comment
974  self.xrod_cent = libs[0].xrod_cent
975  self.yrod_cent = libs[0].yrod_cent
976  self.step = libs[0].step
977  etas = set(libs[0].library.keys())
978  for lib in libs :
979  if ( self.detector != lib.detector or
980  self.particle != lib.particle or
981  self.release != lib.release or
982  self.geometry != lib.geometry or
983  self.geant != lib.geant or
984  self.phys != lib.phys or
985  self.xrod_cent != lib.xrod_cent or
986  self.yrod_cent != lib.yrod_cent or
987  self.step != lib.step or
988  etas != set(lib.library.keys()) ) :
989  print ("ERROR: DIFFERENT LIBS!!!")
990  return False
991  for eta in libs[0].library.keys() :
992  if (set(libs[0].library[eta].keys()) != set(lib.library[eta].keys())) :
993  print ("ERROR: DIFFERENT LIBS!!!")
994  return False
995  for lib in libs :
996  for k,v in lib.library.items():
997  for ki,vi in v.items():
998  self.library.setdefault(k,dict()).setdefault(ki,set()).update(vi)
999  for k,v in self.library.items():
1000  for ki,vi in v.items():
1001  self.library[k][ki] = list(vi)
1002  return True

◆ moveDist()

def LArG4ShowerLibFunctions.FCALDistEtaShowerLib.moveDist (   self,
  oldDist,
  newDist 
)

Definition at line 938 of file LArG4ShowerLibFunctions.py.

938  def moveDist(self,oldDist,newDist) :
939  rez = False
940  for eta,etabin in self.library.items():
941  if (oldDist in etabin.keys()) :
942  etabin[newDist] = etabin.pop(oldDist)
943  rez=True
944  return rez

◆ moveEta()

def LArG4ShowerLibFunctions.FCALDistEtaShowerLib.moveEta (   self,
  oldEta,
  newEta 
)

Definition at line 945 of file LArG4ShowerLibFunctions.py.

945  def moveEta(self,oldEta,newEta) :
946  if not (oldEta in self.library.keys()) :
947  return False
948  self.library[newEta] = self.library.pop(oldEta)
949  return True

◆ printInfo()

def LArG4ShowerLibFunctions.FCALDistEtaShowerLib.printInfo (   self)

Definition at line 1250 of file LArG4ShowerLibFunctions.py.

1250  def printInfo(self) :
1251  print ("VERSION: FCALDistEtaEnergyLib","PARTICLE:",self.particle,"DETECTOR:",self.detector)
1252  print (self.release, self.geometry, self.geant, self.phys)
1253  print ("xrodcent:",self.xrod_cent,"yrodcent:",self.yrod_cent,"step:",self.step)
1254  print (self.comment)
1255  ebins = [1,2,3,4,5,10,20,50,100,200,500,1000]
1256  etas = sorted(self.library.keys())
1257  print ("Number of etabins:",str(len(etas)))
1258  fstot = 0
1259  for etabin in self.library.values():
1260  for distbin in etabin.values():
1261  fstot +=len(distbin)
1262  print ("Number of showers:",str(fstot))
1263  print ("-"*(13+len(ebins)*8)) #horizontal line
1264  infostr = "|dists|ebins|"
1265  for ebin in ebins : #header for energy bins
1266  infostr += ("<%d" %ebin).rjust(7) #str(ebin).rjust(7)
1267  infostr += "|"
1268  print (infostr)
1269  print ("-"*(13+len(ebins)*8)) #horizontal line
1270  for eta in etas :
1271  dists = sorted(self.library[eta].keys())
1272  for distlow,disthigh in zip(dists,(dists[1:] + [4.5])) : #looping over eta bins
1273  prevebin = 0
1274  erec = {}
1275  egen = {}
1276  hits = {}
1277  count = {}
1278  for ebin in ebins : # for all energy bins
1279  count[ebin] = 0
1280  erec[ebin] = 0.
1281  egen[ebin] = 0.
1282  hits[ebin] = 0.
1283  for shower in self.library[eta][distlow] :
1284  if (shower.egen <= ebin) and (shower.egen > prevebin) :
1285  count[ebin] += 1
1286  egenshow = shower.egen
1287  erecshow = 0
1288  for hit in shower.shower :
1289  erecshow += hit.e
1290  erec[ebin] += erecshow
1291  egen[ebin] += egenshow
1292  hits[ebin] += len(shower.shower)
1293  if (count[ebin] > 0) :
1294  hits[ebin] /= count[ebin]
1295  prevebin = ebin
1296  infostr = "|#" # |
1297  infostr+= str(eta).rjust(10) # | eta header
1298  infostr+= "|" # |\
1299  infostr2 = "|Hits"
1300  infostr2+= str(round(distlow,5)).rjust(7) # | eta header
1301  infostr2+= "|" # |
1302  infostr3 = "|E/E"
1303  infostr3+= str(round(disthigh,3)).rjust(8) # | eta header
1304  infostr3+= "|" # |
1305  for ebin in ebins :
1306  infostr+= str(count[ebin]).rjust(7) #print the number of showers
1307  if (egen[ebin] > 0) :
1308  infostr2+= ("%.2f" %(hits[ebin])).rjust(7)
1309  infostr3+= ("%.5f" %(erec[ebin]/egen[ebin])).rjust(7)
1310  else :
1311  infostr2+= ("%.2f" %(hits[ebin])).rjust(7)
1312  infostr3+= "0.0".rjust(7) #else print "xxx"
1313  infostr+="|"
1314  infostr2+="|"
1315  infostr3+="|"
1316  print (infostr)
1317  print (infostr2)
1318  print (infostr3)
1319  print ("-"*(12+len(ebins)*8)) #horizontal line

◆ readFromFile()

def LArG4ShowerLibFunctions.FCALDistEtaShowerLib.readFromFile (   self,
  filename 
)

Definition at line 1003 of file LArG4ShowerLibFunctions.py.

1003  def readFromFile(self,filename) :
1004  log = logging.getLogger("FCALDistEtaShowerLib::readFromFile()")
1005  from ROOT import TFile
1006  #from sets import Set
1007  tfile = TFile(filename)
1008  try:
1009  ver = int(tfile.Get("version").GetVal())
1010  except Exception:
1011  print ("Not an FCALDistEtaEnergyLib: Broken file")
1012  tfile.Close()
1013  return False
1014 
1015  if (ver != 5) : #<<<<<<<<<<<<<<<<<<<<<<-------------- lib ver
1016  print ("Not an FCALDistEtaEnergyLib")
1017  tfile.Close()
1018  return False
1019  meta = tfile.Get("meta")
1020  libr = tfile.Get("library")
1021 
1022  for event in meta :
1023  self.detector=str(event.detector)
1024  self.particle=str(event.particle)
1025  self.release=str(event.release)
1026  self.geometry=str(event.geometry)
1027  self.geant=str(event.geantVersion)
1028  self.phys=str(event.physicsList)
1029  self.comment=str(event.comment)
1030 
1031  state = -1
1032  lastShower = False
1033  lastEta = False
1034 
1035  log.debug("dector: %s", str(event.detector))
1036  log.debug("particle: %s", str(event.particle))
1037  log.debug("release: %s", str(event.release))
1038  log.debug("geometry: %s", str(event.geometry))
1039  log.debug("geant ver: %s", str(event.geantVersion))
1040  log.debug("physList: %s", str(event.physicsList))
1041  log.debug("comment: %s", str(event.comment))
1042 
1043  for event in libr : #this is quite unclear, but easy to implement, we change the "state" depending on what we are reading
1044  log.debug("-------")
1045  log.debug("x=%f, y=%f, z=%f, e=%f",event.x,event.y,event.z,event.e)
1046  log.debug("beginnnig ev loop. lastShower: %s",str(lastShower))
1047  log.debug("beginnnig ev loop. state: %s",str(state))
1048 
1049  if (state == -1) : #library header (calculator parameters)
1050  log.debug("in state=-1")
1051 
1052  self.xrod_cent = event.x
1053  self.yrod_cent = event.y
1054  self.step = event.z
1055  state = 0
1056  elif (state == 0) : #eta bin header
1057  log.debug("in state=0")
1058  log.debug("x=distsInCurEta, y=curEta")
1059 
1060  distsInCurEta = event.x
1061  curEta = round(event.y,4)
1062  self.library[curEta] = {}
1063  if (distsInCurEta > 0) :
1064  state = 1 #go to dist header
1065  elif (state == 1) :
1066  log.debug("in state=1")
1067  log.debug("x=showersInCurDist, y=curDist")
1068 
1069  showersInCurDist = event.x
1070  curDist = round(event.y,4)
1071  self.library[curEta][curDist] = []
1072  distsInCurEta -= 1
1073  if (distsInCurEta == 0) :
1074  lastEta = True
1075  if (showersInCurDist > 0) :
1076  state = 2 #go to shower header
1077  else : #empty dist bin
1078  if (lastEta) : #special case of last eta bin being the empty one
1079  lastEta = False
1080  state = 0
1081  elif (state == 2) :
1082  # writing shower info
1083  log.debug("in state=2")
1084  log.debug("x=hitsInCurShower, y=curShower.rSize, z=curShower.zSize, e=curShower.genEnergy")
1085 
1086  hitsInCurShower = event.x
1087  rSize = event.y
1088  zSize = event.z
1089  genEnergy = event.e
1090  showersInCurDist -= 1
1091  if (showersInCurDist == 0) : #last shower
1092  lastShower = True
1093  curShower = StoredEnergyShower()
1094  curShower.egen = genEnergy
1095  curShower.rsize = rSize
1096  curShower.zsize = zSize
1097  #curShower["hits"] = []
1098  if (hitsInCurShower > 0) :
1099  state = 3 #go to hits
1100  else : #empty shower
1101  log.debug("Appending shower to lib pos %s %s",curEta,curDist)
1102 
1103  self.library[curEta][curDist].append(curShower)
1104  if (lastShower) : #special case of last shower in bin being the empty one
1105  lastShower = False
1106  if (lastEta) : #double special case: last shower in last eta bin is empty
1107  lastEta = False
1108  state = 0 #next eta bin
1109  else :
1110  state = 1 #next dist bin
1111  elif (state == 3) :
1112 
1113  log.debug("in state=3")
1114  log.debug("x=hit.x, y=hit.y, z=hit.z, e=hit.e")
1115 
1116  hit = FourVector()
1117  hit.e = event.e
1118  hit.x = event.x
1119  hit.y = event.y
1120  hit.z = event.z
1121  hit.time = event.time
1122  curShower.shower.append(hit)
1123  hitsInCurShower -= 1
1124  if (hitsInCurShower == 0) : #last hit
1125  log.debug("Appending shower+hit to lib pos %s %s",curEta,curDist)
1126 
1127  self.library[curEta][curDist].append(curShower)
1128  if (lastShower) : # end of dist bin
1129  lastShower = False
1130  if (lastEta) : #end of eta bin as well
1131  lastEta = False
1132  state = 0 #next eta bin
1133  else :
1134  state = 1 #next dist bin
1135  else : #not yet
1136  state = 2
1137 
1138  log.debug("ending ev loop. lastShower: %s", lastShower)
1139  log.debug("ending ev loop. state %s", state)
1140  if log.root.level == logging.DEBUG:
1141  input("Continue? Press Enter.")
1142 
1143  tfile.Close()
1144  if (state != 0) : #the last entry should be the last hit of the last shower in the last bin. if not - file is corrupted
1145  print ("FILE CORRUPTED!!")
1146  return False
1147  return True

◆ removeDist()

def LArG4ShowerLibFunctions.FCALDistEtaShowerLib.removeDist (   self,
  dist 
)

Definition at line 950 of file LArG4ShowerLibFunctions.py.

950  def removeDist(self,dist) :
951  rez = False
952  for eta,etabin in self.library.items():
953  if (dist in etabin.keys()) :
954  self.library.pop(dist)
955  rez=True
956  return rez

◆ removeEta()

def LArG4ShowerLibFunctions.FCALDistEtaShowerLib.removeEta (   self,
  eta 
)

Definition at line 957 of file LArG4ShowerLibFunctions.py.

957  def removeEta(self,eta) :
958  if not (eta in self.library.keys()) :
959  return False
960  self.library.pop(eta)
961  return True

◆ scaleEnergy()

def LArG4ShowerLibFunctions.FCALDistEtaShowerLib.scaleEnergy (   self,
  scalefactor 
)

Definition at line 909 of file LArG4ShowerLibFunctions.py.

909  def scaleEnergy(self,scalefactor) :
910  for etabin in self.library.values():
911  for distbin in etabin.values():
912  for storedShower in distbin :
913  for hit in storedShower.shower :
914  hit.e *= scalefactor
915  self.comment += " SCALED: "+str(scalefactor)

◆ truncate()

def LArG4ShowerLibFunctions.FCALDistEtaShowerLib.truncate (   self,
  truncate,
  nShowersMin = 0 
)

Definition at line 916 of file LArG4ShowerLibFunctions.py.

916  def truncate(self,truncate,nShowersMin=0) :
917  log = logging.getLogger("FCALDistEtaShowerLib::truncate()")
918  showers = []
919  for eta,etabin in self.library.items():
920  for dist,distbin in etabin.items():
921  log.info("Number of showers in %s %s is %d",str(eta),str(dist),len(distbin))
922  for storedShower in distbin :
923  showers += [(eta, dist, storedShower)]
924  log.info("total number of showers: %d", len(showers))
925  if nShowersMin:
926  log.info("will not remove from eta-dist bins with less then %d showers", nShowersMin)
927  if len(showers) <= truncate :
928  log.warning("Size of the library is already less: %d < %d",truncate,len(showers))
929  return
930  from random import randint
931  while (len(showers) > truncate) :
932  rand = randint(0,len(showers)-1)
933  if len(self.library[showers[rand][0]][showers[rand][1]]) < nShowersMin:
934  continue
935  self.library[showers[rand][0]][showers[rand][1]].remove(showers[rand][2])
936  del showers[rand]
937  return

◆ writeToFile()

def LArG4ShowerLibFunctions.FCALDistEtaShowerLib.writeToFile (   self,
  filename 
)

Definition at line 1148 of file LArG4ShowerLibFunctions.py.

1148  def writeToFile(self,filename) :
1149  from ROOT import TFile,TTree,TParameter
1150  from ROOT import gROOT, addressof
1151  gROOT.ProcessLine(
1152  "struct MyMetaStruct {\
1153  Char_t detector[40];\
1154  Char_t release[40];\
1155  Char_t geometry[40];\
1156  Char_t geant[40];\
1157  Char_t phys[40];\
1158  Char_t comment[400];\
1159  Int_t particle;\
1160  };" )
1161  from ROOT import MyMetaStruct
1162  gROOT.ProcessLine(
1163  "struct MyStruct {\
1164  Float_t x;\
1165  Float_t y;\
1166  Float_t z;\
1167  Float_t e;\
1168  Float_t time;\
1169  };" )
1170  from ROOT import MyStruct
1171 
1172  tfile = TFile(filename,"RECREATE")
1173 
1174  ver = TParameter(int)("version",5) #<<<<<<<<<<<<<<<<<<<<<<-------------- lib ver
1175  ver.Write("version")
1176 
1177  meta = TTree()
1178  libr = TTree()
1179 
1180  mmstruct = MyMetaStruct()
1181 
1182  mmstruct.detector = "%s" % (str(self.detector))
1183  mmstruct.particle = int(self.particle)
1184  mmstruct.release = "%s" % (str(self.release))
1185  mmstruct.geometry = "%s" % (str(self.geometry))
1186  mmstruct.geant = "%s" % (str(self.geant))
1187  mmstruct.phys = "%s" % (str(self.phys))
1188  mmstruct.comment = "%s" % (str(self.comment))
1189 
1190  meta.Branch("detector",addressof(mmstruct,"detector"),"detector/C")
1191  meta.Branch("particle",addressof(mmstruct,"particle"),"particle/I")
1192  meta.Branch("release",addressof(mmstruct,"release"),"release/C")
1193  meta.Branch("geometry",addressof(mmstruct,"geometry"),"geometry/C")
1194  meta.Branch("geantVersion",addressof(mmstruct,"geant"),"geantVersion/C")
1195  meta.Branch("physicsList",addressof(mmstruct,"phys"),"physicsList/C")
1196  meta.Branch("comment",addressof(mmstruct,"comment"),"physicsList/C")
1197 
1198  meta.Fill()
1199 
1200  mstruct = MyStruct()
1201 
1202  libr.Branch("x",addressof(mstruct,"x"),"x/F")
1203  libr.Branch("y",addressof(mstruct,"y"),"y/F")
1204  libr.Branch("z",addressof(mstruct,"z"),"z/F")
1205  libr.Branch("e",addressof(mstruct,"e"),"e/F")
1206  libr.Branch("time",addressof(mstruct,"time"),"time/F")
1207 
1208  etas = sorted(self.library.keys())
1209 
1210  mstruct.x = self.xrod_cent
1211  mstruct.y = self.yrod_cent
1212  mstruct.z = self.step
1213  mstruct.e = 0
1214  mstruct.time = 0
1215  libr.Fill()
1216 
1217  for eta in etas :
1218  dists = sorted(self.library[eta].keys())
1219  mstruct.x = len(self.library[eta])
1220  mstruct.y = eta
1221  mstruct.z = 0
1222  mstruct.e = 0
1223  mstruct.time = 0
1224  libr.Fill()
1225  for dist in dists :
1226  mstruct.x = len(self.library[eta][dist])
1227  mstruct.y = dist
1228  mstruct.z = 0
1229  mstruct.e = 0
1230  mstruct.time = 0
1231  libr.Fill()
1232  self.library[eta][dist].sort(key=lambda x: x.egen)
1233  for storedShower in self.library[eta][dist] :
1234  mstruct.x = len(storedShower.shower)
1235  mstruct.y = storedShower.rsize
1236  mstruct.z = storedShower.zsize
1237  mstruct.e = storedShower.egen
1238  mstruct.time = 0
1239  libr.Fill()
1240  for hit in storedShower.shower:
1241  mstruct.e = hit.e
1242  mstruct.x = hit.x
1243  mstruct.y = hit.y
1244  mstruct.z = hit.z
1245  mstruct.time = hit.time
1246  libr.Fill()
1247  meta.Write("meta")
1248  libr.Write("library")
1249  tfile.Close()

Member Data Documentation

◆ comment

LArG4ShowerLibFunctions.FCALDistEtaShowerLib.comment

Definition at line 905 of file LArG4ShowerLibFunctions.py.

◆ detector

LArG4ShowerLibFunctions.FCALDistEtaShowerLib.detector

Definition at line 899 of file LArG4ShowerLibFunctions.py.

◆ geant

LArG4ShowerLibFunctions.FCALDistEtaShowerLib.geant

Definition at line 903 of file LArG4ShowerLibFunctions.py.

◆ geometry

LArG4ShowerLibFunctions.FCALDistEtaShowerLib.geometry

Definition at line 902 of file LArG4ShowerLibFunctions.py.

◆ library

LArG4ShowerLibFunctions.FCALDistEtaShowerLib.library

Definition at line 898 of file LArG4ShowerLibFunctions.py.

◆ particle

LArG4ShowerLibFunctions.FCALDistEtaShowerLib.particle

Definition at line 900 of file LArG4ShowerLibFunctions.py.

◆ phys

LArG4ShowerLibFunctions.FCALDistEtaShowerLib.phys

Definition at line 904 of file LArG4ShowerLibFunctions.py.

◆ release

LArG4ShowerLibFunctions.FCALDistEtaShowerLib.release

Definition at line 901 of file LArG4ShowerLibFunctions.py.

◆ step

LArG4ShowerLibFunctions.FCALDistEtaShowerLib.step

Definition at line 908 of file LArG4ShowerLibFunctions.py.

◆ xrod_cent

LArG4ShowerLibFunctions.FCALDistEtaShowerLib.xrod_cent

Definition at line 906 of file LArG4ShowerLibFunctions.py.

◆ yrod_cent

LArG4ShowerLibFunctions.FCALDistEtaShowerLib.yrod_cent

Definition at line 907 of file LArG4ShowerLibFunctions.py.


The documentation for this class was generated from the following file:
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
MuonGM::round
float round(const float toRound, const unsigned int decimals)
Definition: Mdt.cxx:27
dumpHVPathFromNtuple.append
bool append
Definition: dumpHVPathFromNtuple.py:91
python.Bindings.values
values
Definition: Control/AthenaPython/python/Bindings.py:805
PixelModuleFeMask_create_db.remove
string remove
Definition: PixelModuleFeMask_create_db.py:83
systematicsTool.readFromFile
def readFromFile(filename, regexFilter=None, regexVeto=None)
Definition: systematicsTool.py:789
systematicsTool.writeToFile
def writeToFile(histDict, fOut)
Definition: systematicsTool.py:1035
PlotPulseshapeFromCool.input
input
Definition: PlotPulseshapeFromCool.py:106
histSizes.list
def list(name, path='/')
Definition: histSizes.py:38
DerivationFramework::TriggerMatchingUtils::sorted
std::vector< typename T::value_type > sorted(T begin, T end)
Helper function to create a sorted vector from an unsorted one.
CxxUtils::set
constexpr std::enable_if_t< is_bitmask_v< E >, E & > set(E &lhs, E rhs)
Convenience function to set bits in a class enum bitmask.
Definition: bitmask.h:232
TrigJetMonitorAlgorithm.items
items
Definition: TrigJetMonitorAlgorithm.py:79
python.processes.powheg.ZZ.ZZ.__init__
def __init__(self, base_directory, **kwargs)
Constructor: all process options are set here.
Definition: ZZ.py:18
str
Definition: BTagTrackIpAccessor.cxx:11
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
WriteBchToCool.update
update
Definition: WriteBchToCool.py:67
LArG4ShowerLibProcessing.truncate
truncate
Definition: LArG4ShowerLibProcessing.py:39