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 142 of file PhotonChainConfiguration.py.

142 def getHipTRT(self, flags, is_probe_leg=False):
143 stepName = "hipTRT"
144 return self.getStep(flags, stepName,[TRTHitGeneratorSequenceGenCfg], is_probe_leg=is_probe_leg)
145

◆ getPhotonCaloIso()

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

Definition at line 156 of file PhotonChainConfiguration.py.

156 def getPhotonCaloIso(self, flags, is_probe_leg=False):
157
158 stepName = "precision_photon_CaloIso"
159 comboTools = []
160 do_ion = 'ion' in self.chainPart['extra']
161
162 if do_ion:
163 stepName += '_ion'
164
165 if "dPhi15" in self.chainDict["topo"]:
166 stepName+='_dPhi15'
167 if "m80" in self.chainDict["topo"]:
168 stepName+= '_m80'
169 comboTools.append(diphotonDPhiMassHypoToolFromDict)
170 else:
171 comboTools.append(diphotonDPhiHypoToolFromDict)
172
173 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 stepName = "PhotonPrecisionHICalo" if do_ion else "PhotonPrecisionCalo"
139
140 return self.getStep(flags, stepName,[precisionCaloSequenceGenCfg], ion=do_ion, is_probe_leg=is_probe_leg)
141

◆ getPrecisionPhoton()

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

Definition at line 146 of file PhotonChainConfiguration.py.

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

◆ 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: