ATLAS Offline Software
Loading...
Searching...
No Matches
PhotonChainConfiguration.PhotonChainConfiguration Class Reference
Inheritance diagram for PhotonChainConfiguration.PhotonChainConfiguration:
Collaboration diagram for PhotonChainConfiguration.PhotonChainConfiguration:

Public Member Functions

 __init__ (self, chainDict)
 prepareSequence (self)
 assembleChainImpl (self, flags)
 getFastCalo (self, flags, is_probe_leg=False)
 getFastPhoton (self, flags, is_probe_leg=False)
 getPrecisionCaloPhoton (self, flags, is_probe_leg=False)
 getHipTRT (self, flags, is_probe_leg=False)
 getPrecisionPhoton (self, flags, is_probe_leg=False)
 getPhotonCaloIso (self, flags, is_probe_leg=False)

Public Attributes

 chainDict = chainDict
 chainName

Detailed Description

Definition at line 47 of file PhotonChainConfiguration.py.

Constructor & Destructor Documentation

◆ __init__()

PhotonChainConfiguration.PhotonChainConfiguration.__init__ ( self,
chainDict )

Definition at line 49 of file PhotonChainConfiguration.py.

49 def __init__(self, chainDict):
50 ChainConfigurationBase.__init__(self,chainDict)
51 self.chainDict = chainDict
52

Member Function Documentation

◆ assembleChainImpl()

PhotonChainConfiguration.PhotonChainConfiguration.assembleChainImpl ( self,
flags )

Definition at line 105 of file PhotonChainConfiguration.py.

105 def assembleChainImpl(self, flags):
106 chainSteps = []
107 log.debug("Assembling chain for %s", self.chainName)
108
109 # This will contain the name of the steps we will want to configure
110 steps = self.prepareSequence()
111
112 # This is it, lets print the list of stepNames
113 log.debug("stepNames: %s", steps)
114 for step in steps:
115 log.debug('Adding photon trigger step %s', step)
116 is_probe_leg = self.chainPart['tnpInfo']=='probe'
117 chainstep = getattr(self, step)(flags, is_probe_leg=is_probe_leg)
118 chainSteps+=[chainstep]
119
120 myChain = self.buildChain(chainSteps)
121
122 return myChain
123

◆ getFastCalo()

PhotonChainConfiguration.PhotonChainConfiguration.getFastCalo ( self,
flags,
is_probe_leg = False )

Definition at line 127 of file PhotonChainConfiguration.py.

127 def getFastCalo(self, flags, is_probe_leg=False):
128 stepName = "PhotonFastCalo"
129
130 return self.getStep(flags, stepName,[fastCaloSequenceGenCfg], name='Photon', is_probe_leg=is_probe_leg)
131

◆ getFastPhoton()

PhotonChainConfiguration.PhotonChainConfiguration.getFastPhoton ( self,
flags,
is_probe_leg = False )

Definition at line 132 of file PhotonChainConfiguration.py.

132 def getFastPhoton(self, flags, is_probe_leg=False):
133 stepName = "FastPhoton"
134 return self.getStep(flags, stepName,[fastPhotonSequenceGenCfg], is_probe_leg=is_probe_leg)
135

◆ getHipTRT()

PhotonChainConfiguration.PhotonChainConfiguration.getHipTRT ( self,
flags,
is_probe_leg = False )

Definition at line 145 of file PhotonChainConfiguration.py.

145 def getHipTRT(self, flags, is_probe_leg=False):
146 stepName = "hipTRT"
147 return self.getStep(flags, stepName,[TRTHitGeneratorSequenceGenCfg], is_probe_leg=is_probe_leg)
148

◆ getPhotonCaloIso()

PhotonChainConfiguration.PhotonChainConfiguration.getPhotonCaloIso ( self,
flags,
is_probe_leg = False )

Definition at line 159 of file PhotonChainConfiguration.py.

159 def getPhotonCaloIso(self, flags, is_probe_leg=False):
160
161 stepName = "precision_photon_CaloIso"
162 comboTools = []
163 do_ion = 'ion' in self.chainPart['extra']
164
165 if do_ion:
166 stepName += '_ion'
167
168 if "dPhi15" in self.chainDict["topo"]:
169 stepName+='_dPhi15'
170 if "m80" in self.chainDict["topo"]:
171 stepName+= '_m80'
172 comboTools.append(diphotonDPhiMassHypoToolFromDict)
173 else:
174 comboTools.append(diphotonDPhiHypoToolFromDict)
175
176 return self.getStep(flags, stepName,sequenceCfgArray=[precisionPhotonCaloIsoSequenceGenCfg], name='Photon', comboTools=comboTools, ion=do_ion, is_probe_leg=is_probe_leg)

◆ getPrecisionCaloPhoton()

PhotonChainConfiguration.PhotonChainConfiguration.getPrecisionCaloPhoton ( self,
flags,
is_probe_leg = False )

Definition at line 136 of file PhotonChainConfiguration.py.

136 def getPrecisionCaloPhoton(self, flags, is_probe_leg=False):
137 do_ion = 'ion' in self.chainPart['extra']
138 if do_ion:
139 stepName = "PhotonPrecisionHICalo"
140 else:
141 stepName = "PhotonPrecisionCalo"
142
143 return self.getStep(flags, stepName,[precisionCaloSequenceGenCfg], ion=do_ion, is_probe_leg=is_probe_leg)
144

◆ getPrecisionPhoton()

PhotonChainConfiguration.PhotonChainConfiguration.getPrecisionPhoton ( self,
flags,
is_probe_leg = False )

Definition at line 149 of file PhotonChainConfiguration.py.

149 def getPrecisionPhoton(self, flags, is_probe_leg=False):
150
151 stepName = "precision_photon"
152 do_ion = 'ion' in self.chainPart['extra'] == 'ion'
153
154 if do_ion:
155 stepName += '_ion'
156
157 return self.getStep(flags, stepName,sequenceCfgArray=[precisionPhotonSequenceGenCfg], ion=do_ion, is_probe_leg=is_probe_leg)
158

◆ prepareSequence()

PhotonChainConfiguration.PhotonChainConfiguration.prepareSequence ( self)

Definition at line 56 of file PhotonChainConfiguration.py.

56 def prepareSequence(self):
57 # This function prepares the list of step names from which assembleChainImpl would make the chain assembly from.
58
59 # --------------------
60 # define here the names of the steps and obtain the chainStep configuration
61 # --------------------
62
63 stepNames = [] # This will contain the name of the steps we will want to configure
64 # Put first fast Calo. Two possible variants now:
65 # Step 1
66 stepNames += ['getFastCalo']
67
68 # OK now, unless its a HipTRT chain we need to do fastPhoton here:
69 if self.chainPart['extra'] == 'hiptrt':
70 stepNames += ['getHipTRT']
71 # for hiptrt chains, there is noprecision Calo nor precision Photon so returning sequence here:
72 return stepNames
73
74 # Now we do fast Photon
75 # Step 2
76 stepNames += ['getFastPhoton']
77
78
79 # After we need to place precisionCalo. There is no chain (except hiptrt) that does not require precision calo. Otherwise please insert logic here:
80 # Step 3
81 stepNames += ['getPrecisionCaloPhoton']
82
83 # And we will do precisionPhoton UNLESS its an etcut chain
84 if 'etcut' in self.chainPart['IDinfo']:
85 # if its an etcut chain we return the sequence up to here
86 return stepNames
87
88
89 #Now its the turn of precision Photon. Here we apply cutbased identification
90 #Step 4
91 stepNames += ['getPrecisionPhoton']
92
93 # Finally we need to run isolaton *IF* its an isolated chain
94 # Step 5
95 if 'noiso' in self.chainPart['isoInfo'] or 'icaloloose' in self.chainPart['isoInfo'] or 'icalomedium' in self.chainPart['isoInfo'] or 'icalotight' in self.chainPart['isoInfo']:
96 stepNames += ['getPhotonCaloIso']
97
98 return stepNames
99
100
101

Member Data Documentation

◆ chainDict

PhotonChainConfiguration.PhotonChainConfiguration.chainDict = chainDict

Definition at line 51 of file PhotonChainConfiguration.py.

◆ chainName

PhotonChainConfiguration.PhotonChainConfiguration.chainName

Definition at line 107 of file PhotonChainConfiguration.py.


The documentation for this class was generated from the following file: