#include <ClusterMaker.h>
Collaboration diagram for Atlfast::ClusterMaker:
Public Methods | |
ClusterMaker (const std::string &name, ISvcLocator *pSvcLocator) | |
Standard Athena-Atlfast Constructor. | |
virtual | ~ClusterMaker () |
Default Destructor. | |
StatusCode | initialize () |
Standard Athena-Algorithm method. | |
StatusCode | execute () |
Standard Athena-Algorithm method. | |
StatusCode | finalize () |
Standard Athena-Algorithm method. | |
Private Methods | |
double | rCone () |
Looks up R-cone size according to position of initiator. | |
Private Attributes | |
double | m_rConeBarrel |
R-cone size for summation of Cells within barrel region. | |
double | m_rConeForward |
R-cone size for summation of Cells within forward regions. | |
double | m_minInitiatorET |
Minimun eT needed for a Cell to initiate a new Cluster. | |
double | m_minClusterET |
Minimum eT which a candidate cluster must have to be retained. | |
bool | m_masslessJets |
Whether to construct Clusters (jets) as massless or not. | |
std::string | m_strategy |
Cluster Strategy. | |
IClusterStrategy * | m_clusterStrategy |
bool | m_processTracks |
What to process. | |
bool | m_processCells |
std::string | m_inputCellLocation |
TES input locations. | |
std::string | m_inputTrackLocation |
std::string | m_outputLocation |
TES output Cluster location. | |
std::string | m_unusedCellLocation |
TES output unused tracks and clusters location. | |
std::string | m_unusedTrackLocation |
KinematicHelper | m_kinehelp |
Help with common kinematic operations. | |
TesIO * | m_tesIO |
helper class to deal with TES I/O 1 |
The strategy employed is to sum all Cells in a given R-cone around an initiator.
[Note: This might be more correctly called pre-jet formation as the R-cones are of jet size and therefore this algorithm does not really correspond to the normal notion of forming clusters from,say, adjacent energy deposits.]
Definition at line 113 of file ClusterMaker.h.
|
Standard Athena-Atlfast Constructor.
Definition at line 45 of file ClusterMaker.cxx.
00046 : Algorithm( name, pSvcLocator ){ 00047 00048 // Setting the parameter defaults. 00049 m_rConeBarrel = 0.401; //+.001 avoids grid problem 00050 m_rConeForward = 0.401; 00051 m_minInitiatorET = 1.5; 00052 m_minClusterET = 5.; 00053 m_processCells = true; 00054 m_processTracks = false; 00055 m_inputCellLocation = "/Event/AtlfastCells" ; 00056 m_inputTrackLocation = "/Event/AtlfastTracks" ; 00057 m_outputLocation = "/Event/AtlfastClusters"; 00058 m_unusedCellLocation = "/Event/AtlfastUnusedCells"; 00059 m_unusedTrackLocation = "/Event/AtlfastUnusedTracks"; 00060 m_masslessJets = true; 00061 m_strategy = "Cone"; 00062 // Declare the paramemters to Gaudi so that 00063 // they can be over-written via the job options file 00064 00065 declareProperty( "RConeBarrel", m_rConeBarrel ) ; 00066 declareProperty( "RConeForward", m_rConeForward ) ; 00067 declareProperty( "minInitiatorET", m_minInitiatorET ) ; 00068 declareProperty( "minClusterET", m_minClusterET ) ; 00069 declareProperty( "Strategy", m_strategy ) ; 00070 declareProperty( "ProcessCells", m_processCells ) ; 00071 declareProperty( "ProcessTracks", m_processTracks ) ; 00072 declareProperty( "InputCellLocation", m_inputCellLocation ) ; 00073 declareProperty( "InputTrackLocation", m_inputTrackLocation ) ; 00074 declareProperty( "OutputLocation", m_outputLocation ) ; 00075 declareProperty( "UnusedCellLocation", m_unusedCellLocation ) ; 00076 declareProperty( "UnusedTrackLocation", m_unusedTrackLocation ) ; 00077 declareProperty( "MasslessJets", m_masslessJets ) ; 00078 00079 } |
|
Default Destructor.
Definition at line 82 of file ClusterMaker.cxx. References m_clusterStrategy, and m_tesIO.
00082 { 00083 if(m_tesIO){ 00084 delete m_tesIO; 00085 } 00086 if(m_clusterStrategy){ 00087 delete m_clusterStrategy; 00088 } 00089 } |
|
Standard Athena-Algorithm method.
Definition at line 96 of file ClusterMaker.cxx. References m_clusterStrategy, m_inputCellLocation, m_inputTrackLocation, m_masslessJets, m_minClusterET, m_minInitiatorET, m_outputLocation, m_processCells, m_processTracks, m_rConeBarrel, m_rConeForward, m_strategy, m_tesIO, m_unusedCellLocation, and m_unusedTrackLocation.
00096 { 00097 00098 MsgStream log( messageService(), name() ) ; 00099 log << MSG::DEBUG<< "Cluster Maker initialising " << endreq; 00100 00101 00102 // m_tesIO = new TesIO( eventDataService() ); 00103 m_tesIO = new TesIO(); 00104 if(m_strategy == "Cone"){ 00105 m_clusterStrategy = new ClusterConeStrategy( 00106 m_rConeBarrel, 00107 m_rConeForward, 00108 m_minInitiatorET, 00109 m_minClusterET, 00110 m_masslessJets); 00111 00112 } else if(m_strategy == "Kt"){ 00113 m_clusterStrategy = new ClusterKtStrategy(m_minClusterET); 00114 } else if(m_strategy == "Shared"){ 00115 GlobalEventData* ged = GlobalEventData::Instance(); 00116 double barrelForwardEta = ged -> barrelForwardEta(); 00117 m_clusterStrategy = new SharedConeStrategy(m_rConeBarrel, 00118 m_rConeForward, 00119 m_minInitiatorET, 00120 m_minClusterET, 00121 barrelForwardEta); 00122 }else{ 00123 m_clusterStrategy = new ClusterConeStrategy( 00124 m_rConeBarrel, 00125 m_rConeForward, 00126 m_minInitiatorET, 00127 m_minClusterET, 00128 m_masslessJets); 00129 00130 m_strategy = "Cone"; 00131 } 00132 00133 HeaderPrinter hp("Atlfast Cluster Maker:", log); 00134 hp.add("Endcap Cone Size ", m_rConeForward); 00135 hp.add("Barrel Cone Size ", m_rConeBarrel); 00136 hp.add("Min ET for Cell initiator ", m_minInitiatorET); 00137 hp.add("Min ET for cluster ", m_minClusterET); 00138 hp.add("Cluster Strategy ", m_strategy); 00139 hp.add("Process Cells ", m_processCells); 00140 hp.add("Process Tracks ", m_processTracks); 00141 if(m_processCells){ 00142 hp.add("Input CellLocation ", m_inputCellLocation); 00143 } 00144 if(m_processTracks) { 00145 hp.add("Input TrackLocation ", m_inputTrackLocation); 00146 } 00147 hp.add("Output Location ", m_outputLocation); 00148 hp.add("Unused Cell Location ", m_unusedCellLocation); 00149 hp.add("Unused Track Location ", m_unusedTrackLocation); 00150 hp.add("Massless Jets ", m_masslessJets); 00151 hp.print(); 00152 00153 return StatusCode::SUCCESS ; 00154 } |
|
Standard Athena-Algorithm method.
Definition at line 177 of file ClusterMaker.cxx. References m_clusterStrategy, m_inputCellLocation, m_inputTrackLocation, m_outputLocation, m_tesIO, m_unusedCellLocation, and m_unusedTrackLocation.
00177 { 00178 MsgStream log( messageService(), name() ) ; 00179 std::string message; 00180 //......................................................... 00181 // Extract the elements (cells, tracks..) from the TES 00182 // 00183 IKinematicCollection elements; 00184 TesIoStat stat; 00185 if(m_processCells){ 00186 stat = m_tesIO->copy<CellCollection>(elements, m_inputCellLocation); 00187 message = stat? "Found Cells in TES":"No Cells found in TES"; 00188 log<<MSG::DEBUG << message <<" "<<elements.size()<<endreq; 00189 } 00190 if(m_processTracks){ 00191 stat = m_tesIO->copy<TrackCollection>(elements, m_inputTrackLocation); 00192 message = stat? "Found Tracks in TES":"No Tracks found in TES"; 00193 log<<MSG::DEBUG << message <<" "<<elements.size()<<endreq; 00194 } 00195 00196 // ...................... 00197 // Make a containers to store the new Cluster pointers, 00198 // and unused elements 00199 00200 ClusterCollection* clusters = new ClusterCollection ; 00201 IKinematicCollection unusedLocalElements; 00202 00203 log << MSG::DEBUG << "Starting Clustering Strategy" << endreq ; 00204 00205 m_clusterStrategy->makeClusters( log, elements, unusedLocalElements, clusters) ; 00206 00207 //...................................... 00208 // Set up for conversions of unused IKinematics back to concrete types 00209 // 00210 AssocTypeRecoverer<IKinematicCollection> atr(unusedLocalElements); 00211 00212 //Register the newly made clusters 00213 stat = m_tesIO -> store(clusters, m_outputLocation); 00214 message = stat ? "Clusters stored":"Failed to store Clusters "; 00215 log<<MSG::DEBUG<<message<<endreq; 00216 00217 // Register the any unused IKs if they are Cells 00218 stat = m_tesIO -> store(atr.cells(), m_unusedCellLocation); 00219 message =stat? "unused cells stored":"unused cells store failed"; 00220 log<<MSG::DEBUG<<message<<endreq; 00221 00222 // Register the any unused IKs if they are Tracks 00223 stat = m_tesIO -> store(atr.tracks(), m_unusedTrackLocation); 00224 message =stat? "unused tracks stored":"unused cells store failed"; 00225 log<<MSG::DEBUG<<message<<endreq; 00226 00227 return stat ; 00228 00229 } |
|
Standard Athena-Algorithm method.
Definition at line 160 of file ClusterMaker.cxx.
00160 {
00161 return StatusCode::SUCCESS ;
00162 }
|
|
Looks up R-cone size according to position of initiator.
|
|
R-cone size for summation of Cells within barrel region.
Definition at line 155 of file ClusterMaker.h. Referenced by initialize(). |
|
R-cone size for summation of Cells within forward regions.
Definition at line 157 of file ClusterMaker.h. Referenced by initialize(). |
|
Minimun eT needed for a Cell to initiate a new Cluster.
Definition at line 160 of file ClusterMaker.h. Referenced by initialize(). |
|
Minimum eT which a candidate cluster must have to be retained.
Definition at line 163 of file ClusterMaker.h. Referenced by initialize(). |
|
Whether to construct Clusters (jets) as massless or not.
Definition at line 166 of file ClusterMaker.h. Referenced by initialize(). |
|
Cluster Strategy.
Definition at line 169 of file ClusterMaker.h. Referenced by initialize(). |
|
Definition at line 170 of file ClusterMaker.h. Referenced by execute(), initialize(), and ~ClusterMaker(). |
|
What to process.
Definition at line 172 of file ClusterMaker.h. Referenced by initialize(). |
|
Definition at line 173 of file ClusterMaker.h. Referenced by initialize(). |
|
TES input locations.
Definition at line 175 of file ClusterMaker.h. Referenced by execute(), and initialize(). |
|
Definition at line 176 of file ClusterMaker.h. Referenced by execute(), and initialize(). |
|
TES output Cluster location.
Definition at line 178 of file ClusterMaker.h. Referenced by execute(), and initialize(). |
|
TES output unused tracks and clusters location.
Definition at line 180 of file ClusterMaker.h. Referenced by execute(), and initialize(). |
|
Definition at line 181 of file ClusterMaker.h. Referenced by execute(), and initialize(). |
|
Help with common kinematic operations.
Definition at line 190 of file ClusterMaker.h. |
|
helper class to deal with TES I/O 1
Definition at line 212 of file ClusterMaker.h. Referenced by execute(), initialize(), and ~ClusterMaker(). |