PHYSICS
This page will describe some mechanisms and physics ideas behind the Atlfast Algorithms. It will give some comparison to the old Fortran-Atlfast and describe how to configure each algorithm and what it's outputs are. Hopefully this will then give the user an idea of how best utilise Atlfast for their particular analysis. Further information on configuring your Atlfast job can be found here. As many of the Atlfast algorithms functionality is based on the Fortran-Atlfast version, reading the note on the Fortran version will be useful in understanding the motivations for certain designs etc., ATL-PHYS-98-131. Athena-Atlfast was tested directly with a wrapped version of the fortran code running in the Athena framework (AtlfastTemp). This then meant both versions (Fortran-Atlfast and Athena-Atlfast) were run on identical physics events. The results of these tests can be found here.
There is also a summary of the differences between Athena-Atlfast and Fortran-Atlfast.
AtlfastAlgs contains the following core Algorithms, all of which are vital for running Atlfast and are setup in the AtlfastDoNotTouch.txt file, and thus run in every job that uses the StandardAtlfast files:
GlobalEventDataMaker
CellMaker
ClusterMaker
DefaultReconstructedParticleMaker
Isolator
JetMaker
AtlfastB
EventHeaderMaker
In addition to the core Algorithms, Atlfast also has the following Utility Algorithms that can be used to extend you Atlfast job and produce further useful outputs. To run any of them you need to add them to your AtlfastStandardOptions AFTER the #include "AtlfastDoNotTouch.txt" line
TrackMaker
Monitor
StandardNtupleMaker
TrackNtupleMaker
AtlfastProtoJetMaker
This Algorithm must always be the first to run when executing an Atlfast job. It creates a singleton object called GlobalEventData. GlobalEventData is then used by all the other Algorithms to configure their global quantities that must be consistant across all algorithms. The values of these quantites can be set by the user by setting the GlobalEVentDataMakers individual variables in the job Options file. It should be noted that the default value for the transition between the barrel and forword detectors in eta (BarrelForwardEta) is set to the correct value of 3.2. In the old Fortran-Atlfast this value (YPAR(17)) was set to 3.0. The variables that can be set are as follows:
VARIABLE
|
DESCRIPTION
|
DEFAULT VALUE
|
FORTRAN-ATLFAST EQUIVALENT
|
Luminosity
|
Luminosity of run (high=2, low=1)
This is important in the smearers and energy pileup.
|
2
|
LPAR(2)
|
Invisables
|
These are the particles that pass through the Atlas detector and are unseen. The Neutrinos are hard wired as invisible and cannot be changed.
|
12,14,16
|
-
|
RandSeed
|
The initial value of the seed used in the random number generator used by the smearers.
|
12345
|
-
|
BFieldOn
|
A switch to turn the magnetic field on and off.
|
true
|
LPAR(3)
|
BarrelForwardEta
|
The eta value of the transition between the forward and barrel detectors.
|
3.2
|
YPAR(17)
|
This Algorithm outputs a cell map into the transient event store, which is just a std::vector containing all the Atlfast::Cells that have a pt above a certain threshold (which is set by the user). The equivalent Fortran-Atlfast routine is the first part of MAKCLU (ATL-PHYS-98-131 page 55).
CellMaker Runs as follows:
In its initialise phase
It constructs a simple calorimeter model (Atlfast::Calorimeter) which is made of three sections (Atlfast::CalSection.)
Two end detectors in the range :
5 < |eta| < GlobalEventData.BarrelForwardEta() and -pi < phi < +pi
These has a granualarity of 0.2 in both eta and phi.
One Barrel detector in in the range :
|eta| < GlobalEventData.BarrelForwardEta() and -pi < phi < +pi
It has a granualarity of 0.1 in both eta and phi.
In its execute phase
It reads in all the final-state MonteCarlo particles from the TES using Atlfast::TesIO, which is an interface object with StoreGate.
It bends the particles trajectory using an Atlfast::MagField object. This also removes the particles which fail to reach the Calorimeter due to the Magnetic filed.
It gives the particles to the Calorimeter, which deposits the particles energy into the Cells.
It writes out the std::vector of hit cells to the TES using Atlfast::TesIO.
The following parameters can be set in CellMaker:
VARIABLE
|
DESCRIPTION
|
DEFAULT VALUE
|
FORTRAN-ATLFAST EQUIVALENT
|
OutputLocation
|
The key used by storegate when storing the Cells. The user should be very careful when changing this as it is used by a number of other algorithms to retrieve the Atlfast::Cells
|
"/Event/AtlfastCells"
|
-
|
EtaCoverage
|
The Eta coverage of the Calorimeter
|
5.0
|
YPAR(12)
|
MinETCell
|
The Et cut that cells have to pass to be considered a hit cell and thus stored in the TES.
|
0.0
|
YPAR(15)
|
GranBarrelEta
|
The Granularity of the barrel detector in the Eta direction
|
0.1
|
YPAR(18)
|
GranBarrelPhi
|
The Granularity of the barrel detector in the Phi direction
|
0.1
|
YPAR(19)
|
GranForwardEta
|
The Granularity of the forward detector in the Eta direction
|
0.2
|
YPAR(18)*2
|
GranForwardPhi
|
The Granularity of the forward detector in the Phi direction
|
0.2
|
YPAR(19)*2
|
This Algorithm constructs Atlfast::Clusters from the Atlfast::Cells and Stores them in a std::vector in the TES. It also stores a std::vector containg the hit cells that were not associated with any of the clusters. The default Atlfast Clustering algorithm is a Cone Algorithm. The equivalent Fortran-Atlfast routine is the second part of MAKCLU (ATL-PHYS-98-131 page 55).
ClusterMaker Runs as follows:
In its initialise phase
It instantiates a TesIO object
It Instantiates an object to do the clustering. The default Algorithn is the ClusterConeStrategy
In its execute phase
It copies the Atlfast::Cells from the TES using TesIO
Use the selected cluster strategy to make Atlfast::Clusters
Stores the clusters in the TES
Stores the unused 'hit' cells in the TES.
The default clustering algorithm in atlfast (and the only one available at the moment) is the Cone Strategy.
The ClusterConeStrategy works as follows:
The cells are partitioned into those with ET above the Cluster Initiator threshold and those below the Cluster Initiator threshold.
The cells ablove initiator threshold are sorted by ET.
All the cells within a radius RCone of the First Iniator cell are added together to form a ClusterConeStrategy::PreCluster.
If the PreClusters Et is above the minimum cluster Et then it is used to construct a proper cluster ans all the cells making up that cluster are removed from the list.
The process is repeated with the remaining cells until all cells with ET above the Cluster Initiator threshold have been tried.
The clusters are put into a std::vector
The remaining cells are put into a std::vector and stored as unused cells
The following parameters can be set in ClusterMaker:
VARIABLE
|
DESCRIPTION
|
DEFAULT VALUE
|
FORTRAN-ATLFAST EQUIVALENT
|
InputLocation
|
The key used by storegate when retrieving the Cells.
|
"/Event/AtlfastCells"
|
-
|
OutputLocation
|
The key used by storegate when storing the Clusters. The user should be very careful when changing this as it is used by a number of other algorithms to retrieve the Atlfast::Clusterss
|
"/Event/AtlfastClusters"
|
-
|
UnusedCellLocation
|
The key used by storegate when storing the unused Cells. The user should be very careful when changing this as it is used by a number of other algorithms to retrieve the Atlfast unused cells
|
"/Event/AtlfastUnusedCells"
|
-
|
RConeBarrel
|
Radius of the cone used by the ClusterCone Algorithm in the Barrel region
|
0.401
|
YPAR(11)
|
RConeForward
|
Radius of the cone used by the ClusterCone Algorithm in the Forward region
|
0.401
|
YPAR(16)
|
MinIniatorET
|
Minimum Et for cell to have to be considered a seed cell in the cone algorithm
|
1.5
|
YPAR(13)
|
MinClusterET
|
ET cut on preClusters when forming Clusters. preClusters with Et above this are converted in true Clusters, all other are rejected.
|
5.0
|
YPAR(10)
|
Strategy
|
Clustering strategy to be used
|
"Cone"
|
-
|
MasslessJets
|
Switch to turn on/off massless clusters. Normaly the clusters are constructed and their 4-vector is recalibrated to give massless clusters, however, if this switch is set to false the clusters 4-vector is calculated directly from adding the cells 4-vectors together, thus producing a result with non-zero mass. (*see note below)
|
true
|
-
|
*Note on cluster mass.
The default atlfast ClusterMaker (setting MasslessJets = true) adds up all the 4-momentum of the Cells making up the Cluster and then calculates the 4-vector of the Cluster as follows
m_P = sum of 4-vectors of the cells
m_eT = sum of the eT's of the cells
m_eta_weighted = sum of the (cell->eta() * cell->eT())
m_eta = m_eta_weighted / m_eT
m_theta = atan( exp( - m_eta ) ) * 2.0 ;
t = m_eT / sin( m_theta ) ;
x = m_eT * cos( m_P->phi() ) ;
y = m_eT * sin( m_P->phi() ) ;
z = t * cos( m_theta ) ;
return HepLorentzVector( x, y, z, t ) ;
ClusterMaker has an option of MasslessJets = false. When this is set the Clusters 4-momentum is calculated as follows:
t = m_P->e();
x = m_P->px();
y = m_P->py();
z = m_P->pz();
return HepLorentzVector( x, y, z, t ) ;
|
DefaultReconstructedParticleMaker (DRPM) constructs the electrons, muons and photons in the Atlfast job. It is instantiated three times during the Atlfast job, once in the guise of ElectronMaker, once as MuonMaker and once as PhotonMaker. Each time it is passed the pdg id so that it knows what type of particles it has to make. The Fortran-Atlfast has three routines that represent DRPM, MAKELE, MAKMUO, MAKPHO (ATL-PHYS-98-131 page 56-57) These however, also perform isolation, which is done by Isolator in Athena-Atlfast
CellMaker Runs as follows:
In its initialise phase
A HepMC_helper::SelectType is instantiated. This selects particles of the suplied pdg id type.
A HepMC_helper::MCCuts is instantiated. This puts cuts on the particles transverse-momentum and pseudorapidity.
A HepMC_helper::IsFinalState is instantiated. This selects only final state particles.
The three HepMC::helpers are put into a std::vector as IMCselectors and this is used to make an HepMC_helper::NCutter.
A TesIO object is instantiated to interact with StoreGate.
The GlobalEventData object is accessed and the luminosity and random seed retrieved.
An appropriate smearer is instantiated, depending on the particle type being made.
In its execute phase
Collects the MonteCarlo from the TES that pass all selection cuts unsing TesIO.
Makes a new ReconstructedParticleCollection.
For each particle it creates a ReconstructedParticle. smearing its momentum if smearing switchec on
Tests if that particle passes the transverse-momentum and pseudorapidity cuts.
All acceptable particles are put into the ReconstructedParticleCollection.
sorts the particles by descending transverse-momentum.
Stores the ReconstructedParticleCollection in the TES using TesIO.
The following parameters can be set in CellMaker:
VARIABLE
|
DESCRIPTION
|
DEFAULT VALUE
|
FORTRAN-ATLFAST EQUIVALENT (*see below)
|
ParticleType
|
pdg id of the particle to be constructed
|
11
|
-
|
mcMinimumPt
|
pT cut on Monte Carlo Event selection
|
0.0
|
-
|
mcMaximumEta
|
Eta cut on Monte Carlo Event selection
|
100.0
|
-
|
MinimumPt
|
pT cut on Reconstructed Particle
|
5.0
|
-
|
MaximumEta
|
Eta cut on Reconstructed Particle
|
2.5
|
-
|
DoSmearing
|
Switch to turn smearing on and off.
|
"true"
|
-
|
MuonSmearKey
|
Selects type of muon smearer to be used
|
1
|
-
|
OutputLocation
|
Sets StoreGate key for the Reconstructed Particles.
|
"/Event/AtlfastReconstructedParticle"
|
-
|
As DRPM is instantiated as three different makers in the AtlfastJobs, the parameters have "default" values for each instantiation in the AtlfastStandardOptions.txt some of which releate directly to settings in the old Fortran-Atlfast. These are as follows:
ElectronMaker
VARIABLE
|
DEFAULT VALUE
|
FORTRAN-ATLFAST EQUIVALENT
|
ParticleType
|
11
|
-
|
MinimumPt
|
5.0
|
YPAR(40)
|
MaximumEta
|
2.5
|
YPAR(41)
|
DoSmearing
|
"true"
|
LPAR(4)
|
OutputLocation
|
"/Event/AtlfastElectrons"
|
-
|
MuonMaker
VARIABLE
|
DEFAULT VALUE
|
FORTRAN-ATLFAST EQUIVALENT
|
ParticleType
|
13
|
-
|
mcMinimumPt
|
0.5
|
YPAR(100)
|
MinimumPt
|
6.0
|
YPAR(20)
|
MaximumEta
|
2.5
|
YPAR(21)
|
DoSmearing
|
"true"
|
LPAR(4)
|
MuonSmearKey
|
3
|
LPAR(5)
|
OutputLocation
|
"/Event/AtlfastMuons"
|
-
|
PhotonMaker
VARIABLE
|
DEFAULT VALUE
|
FORTRAN-ATLFAST EQUIVALENT
|
ParticleType
|
22
|
-
|
MinimumPt
|
5.0
|
YPAR(30)
|
MaximumEta
|
2.5
|
YPAR(31)
|
DoSmearing
|
"true"
|
LPAR(4)
|
OutputLocation
|
"/Event/AtlfastPhotons"
|
-
|
The DefaultReconstructedParticle Smearers
DRPM has a memeber variable which is an ISmearer interface class. This is instantiated as a different concrete smearer depending on the type of particles being made. If there is no smearer avaialable for the particle type selected the DefaultSmearer is used. All Atlfast Smearers are ISmearers. All the smearers in Atlfast are direct translations of the Fortran-Atlfast code into C++
The ElectronSeamer parmaterisation is shown here.
The PhotonSeamer parmaterisation is shown here.
MuonSeamer The muon smearer has six posible settings or SmearKeys. The different parameterisations are shown here.
This Algorithm Calculates whether the reconstructed particles are Isolated are not. It performs two Isolation tests, one against clusters and the others agains cells. Both the Isolation distances and energy levels can be set by the user. Atlfast Instantiates one Isolator for each flavour of reconstructed particle. It stores the particles in the TES in two std::vectors, one for Isolated particles and one for non-Isolated particles.
CellMaker Runs as follows:
In its initialise phase
It instantiates a TesIO object to interface with StorGate.
It retrieves the visibleToCal object from GlobalEventData
In its execute phase
Retrieves the ReconstructedPerticles, Cells and Clusters from the TES using TesIO.
Iterates over all th reconstructed particles anf for each:
Partition the clusters into those that are associated with a particle and those that aren't
Sorts non-associated Clusters by distance from the ReconstructedParticle.
If closest cluster is within rClusterMatch of the particle it is initially associated with the particle.
If the sum of eT of all the non-associatted clusters within rClusterIsolation of the ReconstructedParticle is greater than eClusterIsolation the particle is returned as non-isolated and it's associated cluster is returned to the non-associated clusters.
If ClusterIsolation passed, CellIsolation is performed.
The eT of all the cells within rCellIsolation of the particle is summed up.
If the particle is of type visable-to-cal, it's eT is subtracted from the sum of eT.
If the sum of eT is greater than eCellIsolation the particle is returned as non-isolated and it's associated cluster is returned to the non-associated clusters.
If CellIsolation is passed, the associated cluster is confirmed as the particles associated cluster and the particle is returned as isolated.
The Isolated and non-Isolated particles are stored in the TES.
The following parameters can be set in Isolator:
VARIABLE
|
DESCRIPTION
|
DEFAULT VALUE
|
FORTRAN-ATLFAST EQUIVALENT (*see below)
|
RClusterMatch
|
maximum distance between a cluster and a particle for the two to be associated.
|
0.150
|
-
|
RClusterIsolation
|
Radius of cone around particle that clusters eT are summed up in for CluesterIsolation.
|
0.400
|
-
|
EClusterIsolation
|
eT value used to determine cluster Isolation.
|
0.0
|
-
|
RCellIsolation
|
Radius of cone around particle that cells eT are summed up in to determine CellIsolation.
|
0.200
|
-
|
ECellIsolation
|
eT value used to determine cell Isolation.
|
10.0
|
-
|
InputLocation
|
StoreGate key of the Reconstructed Particles
|
"Unknown"
|
-
|
CellLocation
|
StoreGate key for the AtlfastCells
|
"/Event/AtlfastCell"
|
-
|
ClusterLocation
|
StoreGate key for the Atlfast CLusters.
|
"/Event/AtlfastCluster"
|
-
|
IsolatedOutputLocation
|
StoreGate key for the Outputted Isolated particles.
|
"Unknown"
|
-
|
NonIsolatedOutputLocation
|
StoreGate key for the Outputted Non-Isolated particles.
|
"Unknown"
|
-
|
As Isolator is instantiated three times in the AtlfastJobs (once for each ReconstructedParticle type), the parameters have "default" values for each instantiation in the AtlfastStandardOptions.txt some of which releate directly to settings in the old Fortran-Atlfast. These are as follows:
ElectronIsolator
VARIABLE
|
DEFAULT VALUE
|
FORTRAN-ATLFAST EQUIVALENT
|
RClusterMatch
|
0.150
|
YPAR(45)
|
RClusterIsolation
|
0.400
|
YPAR(47)
|
EClusterIsolation
|
0.0
|
-
|
RCellIsolation
|
0.200
|
YPAR(48)
|
ECellIsolation
|
10.0
|
YPAR(49)
|
InputLocation
|
"/Atlfast/Electrons"
|
-
|
IsolatedOutputLocation
|
"/Atlfast/IsolatedElectrons"
|
-
|
NonIsolatedOutputLocation
|
"/Atlfast/NonIsolatedElectrons"
|
-
|
PhotonIsolator
VARIABLE
|
DEFAULT VALUE
|
FORTRAN-ATLFAST EQUIVALENT
|
RClusterMatch
|
0.150
|
YPAR(35)
|
RClusterIsolation
|
0.400
|
YPAR(37)
|
EClusterIsolation
|
0.0
|
-
|
RCellIsolation
|
0.200
|
YPAR(38)
|
ECellIsolation
|
10.0
|
YPAR(39)
|
InputLocation
|
"/Atlfast/Photons"
|
-
|
IsolatedOutputLocation
|
"/Atlfast/IsolatedPhotons"
|
-
|
NonIsolatedOutputLocation
|
"/Atlfast/NonIsolatedPhotons"
|
-
|
MuonIsolator
VARIABLE
|
DEFAULT VALUE
|
FORTRAN-ATLFAST EQUIVALENT
|
RClusterMatch
|
0.0
|
-
|
RClusterIsolation
|
0.400
|
YPAR(27)
|
EClusterIsolation
|
0.0
|
-
|
RCellIsolation
|
0.200
|
YPAR(28)
|
ECellIsolation
|
10.0
|
YPAR(29)
|
InputLocation
|
"/Atlfast/Muons"
|
-
|
IsolatedOutputLocation
|
"/Atlfast/IsolatedMuons"
|
-
|
NonIsolatedOutputLocation
|
"/Atlfast/NonIsolatedMuons"
|
-
|
JetMaker takes Unassociated-Clusters and constructs Jets from them by simple testing the Clusters against selection criteria and addinging in any appropriate muons. It smears the Clusters four momentum before the Jet construction. This process was performed by MAKJET in the Fortran-Atlfast (ATL-PHYS-98-131 page 57). It also performs some rudimentary b, c and tau jet tagging in the same manner as the MAKBJE, MAKCJE and MAKTAU routines in the Fortran-Atlfast (ATL-PHYS-98-131 page 57-58). As well as making, smearing and tagging the Jets, JetMaker also calculates the missing momentum of the overall event. It does this by smearing the unused Cells and adding them to the unused smaeared Clusters. This job is done by MAKMIS in the Fortran-Atlfast (ATL-PHYS-98-131 page 58).
JetMaker Runs as follows:
In its initialise phase
It instantiates a TesIO object to interact with the TES.
It instantiates two JetSmearers, one set with values for smearing the Jets and the other with values for smearing the Cells.
In its execute phase
Retrieves Clusters and non-Isolated Muons from the TES.
Makes an empty JetCollection container.
Makes two HepMC_helper::SelectJetTag objects, one of c-jets and one for b=jets and a HepMC_helper::SelectTauTag tau-jets.
Retrieves three sets of HepMC::GenParticles from the TES using the HepMC_helper::SelectJetTags and HepMC_helper::SelectTauTag.
Iterates over all the Clusters.
Takes the cluster, smears its four-momentum and makes a Atlfast::Jet candidate from it.
Associates cluster with Jet.
Adds the four momentum of any non-Isloated Muons that are within rcone of the Jet candidate to the Jet candidates four-momentum and removes the muon from the list.
Tests to see if the Jet candidate is Acceptable, by testing its pT and eta against the minPt and maxEta cuts.
If it is acceptable it is put into the JetCollection else the candidates four-momenta is added to the missing momentum and the candidate is deleted.
Stores the JetCollection in the TES once all Clusters have been tested.
Retrieves the unused Cells from the TES.
Smears the cells four-momenta.
Adds the cells four-momenta to the missing momentum.
Stores the missing momentum in the TES.
The following parameters can be set in JetMaker:
VARIABLE
|
DESCRIPTION
|
DEFAULT VALUE
|
FORTRAN-ATLFAST EQUIVALENT
|
MinimumPT
|
Minimum PT value for a JetCandidate to be accepted as a jet
|
10.0
|
YPAR(51)
|
MaxEta
|
Maximum Eta value for a JetCandidate to be accepted as a jet
|
5.0
|
YPAR(52)
|
DoSMearing
|
Switch Jet and MissingMomentum smearing on
|
true
|
LPAR(4)
|
RconeB
|
Radius of Jet finding cone in Barrel region
|
0.401
|
YPAR(11)
|
RconeF
|
Radius of Jet finding cone in Forward region
|
0.401
|
YPAR(16)
|
bPtMin
|
Minimum Pt of b-quarks used in the b-tagging.
|
5.0
|
YPAR(63)
|
bMaxDeltaR
|
Maximum distance from jet of b-quarks used for the b-tagging.
|
0.2
|
YPAR(65)
|
cPtMin
|
Minimum Pt of c-quarks used in the c-tagging.
|
5.0
|
YPAR(73)
|
cMaxDeltaR
|
Maximum distance from jet of c-quarks used for the c-tagging.
|
0.2
|
YPAR(75)
|
tauPtMin
|
Minimum Pt of taus used in the tau-tagging.
|
10.0
|
YPAR(90)
|
tauMaxDeltaR
|
Maximum distance from jet of taus used for the tau-tagging.
|
0.3
|
YPAR(92)
|
tauJetPtRatio
|
The ratio between the Pt of the tau minus the Pt of the tau-neutrino and the Pt of the jet has to be greater than this for the jet to be tagged a a Tau-Jet.
|
0.9
|
YPAR(93)
|
etaTagMaxo
|
Maximum Eta of particles used in the all jet-tagging.
|
2.5
|
YPAR(61),YPAR(71),YPAR(91)
|
InputLocation
|
StoreGate key for the Cluster Location in the TES.
|
"/Event/AtlfastClusters"
|
-
|
OutputLocation
|
StoreGate key for the Jet Location in the TES.
|
"/Event/AtlfastJets"
|
-
|
UnusedCellLocation
|
StoreGate key for the unused Cells in the TES.
|
"/Event/AtlfastUnusedCells"
|
-
|
MuonLocation
|
StoreGate key for the non-isolated Muons in the TES.
|
"/Event/AtlfastNonIsolatedMuons"
|
-
|
MissingMomentumLocation
|
StoreGate key for the missing momentum in the TES.
|
"/Event/AtlfastMissingMomentum"
|
-
|
|