Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

Atlfast::ClusterMaker Class Reference

ClusterMaking is currently defined as a process which uses Cells from the TES and forms Clusters from them. More...

#include <ClusterMaker.h>

Collaboration diagram for Atlfast::ClusterMaker:

Collaboration graph
[legend]
List of all members.

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


Detailed Description

ClusterMaking is currently defined as a process which uses Cells from the TES and forms Clusters from them.

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.


Constructor & Destructor Documentation

Atlfast::ClusterMaker::ClusterMaker const std::string &    name,
ISvcLocator *    pSvcLocator
 

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   }

Atlfast::ClusterMaker::~ClusterMaker   [virtual]
 

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   } 

Member Function Documentation

StatusCode Atlfast::ClusterMaker::initialize  
 

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   }

StatusCode Atlfast::ClusterMaker::execute  
 

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   }

StatusCode Atlfast::ClusterMaker::finalize  
 

Standard Athena-Algorithm method.

Definition at line 160 of file ClusterMaker.cxx.

00160                                    {
00161     return StatusCode::SUCCESS ;
00162   }

double Atlfast::ClusterMaker::rCone   [private]
 

Looks up R-cone size according to position of initiator.


Member Data Documentation

double Atlfast::ClusterMaker::m_rConeBarrel [private]
 

R-cone size for summation of Cells within barrel region.

Definition at line 155 of file ClusterMaker.h.

Referenced by initialize().

double Atlfast::ClusterMaker::m_rConeForward [private]
 

R-cone size for summation of Cells within forward regions.

Definition at line 157 of file ClusterMaker.h.

Referenced by initialize().

double Atlfast::ClusterMaker::m_minInitiatorET [private]
 

Minimun eT needed for a Cell to initiate a new Cluster.

Definition at line 160 of file ClusterMaker.h.

Referenced by initialize().

double Atlfast::ClusterMaker::m_minClusterET [private]
 

Minimum eT which a candidate cluster must have to be retained.

Definition at line 163 of file ClusterMaker.h.

Referenced by initialize().

bool Atlfast::ClusterMaker::m_masslessJets [private]
 

Whether to construct Clusters (jets) as massless or not.

Definition at line 166 of file ClusterMaker.h.

Referenced by initialize().

std::string Atlfast::ClusterMaker::m_strategy [private]
 

Cluster Strategy.

Definition at line 169 of file ClusterMaker.h.

Referenced by initialize().

IClusterStrategy* Atlfast::ClusterMaker::m_clusterStrategy [private]
 

Definition at line 170 of file ClusterMaker.h.

Referenced by execute(), initialize(), and ~ClusterMaker().

bool Atlfast::ClusterMaker::m_processTracks [private]
 

What to process.

Definition at line 172 of file ClusterMaker.h.

Referenced by initialize().

bool Atlfast::ClusterMaker::m_processCells [private]
 

Definition at line 173 of file ClusterMaker.h.

Referenced by initialize().

std::string Atlfast::ClusterMaker::m_inputCellLocation [private]
 

TES input locations.

Definition at line 175 of file ClusterMaker.h.

Referenced by execute(), and initialize().

std::string Atlfast::ClusterMaker::m_inputTrackLocation [private]
 

Definition at line 176 of file ClusterMaker.h.

Referenced by execute(), and initialize().

std::string Atlfast::ClusterMaker::m_outputLocation [private]
 

TES output Cluster location.

Definition at line 178 of file ClusterMaker.h.

Referenced by execute(), and initialize().

std::string Atlfast::ClusterMaker::m_unusedCellLocation [private]
 

TES output unused tracks and clusters location.

Definition at line 180 of file ClusterMaker.h.

Referenced by execute(), and initialize().

std::string Atlfast::ClusterMaker::m_unusedTrackLocation [private]
 

Definition at line 181 of file ClusterMaker.h.

Referenced by execute(), and initialize().

KinematicHelper Atlfast::ClusterMaker::m_kinehelp [private]
 

Help with common kinematic operations.

Definition at line 190 of file ClusterMaker.h.

TesIO* Atlfast::ClusterMaker::m_tesIO [private]
 

helper class to deal with TES I/O 1

Definition at line 212 of file ClusterMaker.h.

Referenced by execute(), initialize(), and ~ClusterMaker().


The documentation for this class was generated from the following files:
Generated on Tue Jan 28 09:57:34 2003 for AtlfastAlgs by doxygen1.3-rc1