Atlfast::FinalStateParticleHistogramMaker Class Reference

Plots information from truth particles using various selectors. More...

#include <FinalStateParticleHistogramMaker.h>

Collaboration diagram for Atlfast::FinalStateParticleHistogramMaker:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 FinalStateParticleHistogramMaker (const std::string &name, ISvcLocator *pSvcLocator)
virtual ~FinalStateParticleHistogramMaker ()
virtual StatusCode initialize ()
virtual StatusCode execute ()
virtual StatusCode finalize ()

Private Member Functions

void PutIntoContainer (string &, HepMC_helper::MCselectorWrapper *)
void BookHistograms (string &)
void SetHistogramLimits ()
void AllSelectorSetups (string &, HepMC_helper::MCselectorWrapper *)
void Z0SelectorSetups (string &, HepMC_helper::MCselectorWrapper *)
void VisibleToCalSelectorSetups (string &, HepMC_helper::MCselectorWrapper *, GlobalEventData *)
void InvisibleToAtlasSelectorSetups (string &, HepMC_helper::MCselectorWrapper *, GlobalEventData *)
void IsFinalStateSelectorSetups (string &, HepMC_helper::MCselectorWrapper *)
void BSelectorSetups (string &, HepMC_helper::MCselectorWrapper *)
void ElectronSelectorSetups (string &, HepMC_helper::MCselectorWrapper *)
void PhotonSelectorSetups (string &, HepMC_helper::MCselectorWrapper *)
void MuonSelectorSetups (string &, HepMC_helper::MCselectorWrapper *)
void DefaultReconstructedParticleSelectorSetups (HepMC_helper::MCselectorWrapper *&, int particleType, double ptMin, double etaMax)

Private Attributes

std::string m_inputLocation
TesIOm_tesIO
std::string m_mcLocation
int m_multBins
double m_multLow
double m_multHigh
int m_eBins
double m_eLow
double m_eHigh
int m_pxBins
double m_pxLow
double m_pxHigh
int m_pyBins
double m_pyLow
double m_pyHigh
int m_pzBins
double m_pzLow
double m_pzHigh
int m_eSumBins
double m_eSumLow
double m_eSumHigh
int m_pxSumBins
double m_pxSumLow
double m_pxSumHigh
int m_pySumBins
double m_pySumLow
double m_pySumHigh
int m_pzSumBins
double m_pzSumLow
double m_pzSumHigh
vector< pair< string, HepMC_helper::MCselectorWrapper * > > m_selectorContainer
map< string, vector< IHistogram1D * > > m_histogramContainer

Detailed Description

Plots information from truth particles using various selectors.

This class uses the main selectors used throughout Atlfast. The plots are designed to be made as a double-check for the truth information coming into Atlfast's Algorithms.

Definition at line 100 of file FinalStateParticleHistogramMaker.h.


Constructor & Destructor Documentation

Atlfast::FinalStateParticleHistogramMaker::FinalStateParticleHistogramMaker ( const std::string &  name,
ISvcLocator *  pSvcLocator 
)

Standard Athena-Algorithm Constructor

Definition at line 105 of file FinalStateParticleHistogramMaker.cxx.

00106     : Algorithm( name, pSvcLocator ){
00107     
00108     
00109     // Default paths for entities in the TES
00110     m_inputLocation    = "/Event/McEventCollection";
00111     
00112     declareProperty( "InputLocation", m_inputLocation ) ;
00113 
00114     SetHistogramLimits();
00115 
00116   }

Atlfast::FinalStateParticleHistogramMaker::~FinalStateParticleHistogramMaker (  )  [virtual]

Default Destructor

Definition at line 119 of file FinalStateParticleHistogramMaker.cxx.

00119 {} 


Member Function Documentation

StatusCode Atlfast::FinalStateParticleHistogramMaker::initialize (  )  [virtual]

Standard Athena-Algorithm method

Definition at line 134 of file FinalStateParticleHistogramMaker.cxx.

00135   {
00136 
00137     MsgStream log( messageService(), name() ) ;
00138     log << MSG::DEBUG << "Initialising" << endreq;
00139     
00140     string identifier;
00141     HepMC_helper::MCselectorWrapper* wrapper = 0;
00142     
00143     //set up MC selector.
00144     GlobalEventData* ged = GlobalEventData::Instance();
00145 
00146     AllSelectorSetups(identifier,wrapper);
00147     Z0SelectorSetups(identifier,wrapper);
00148     VisibleToCalSelectorSetups(identifier,wrapper,ged);
00149     InvisibleToAtlasSelectorSetups(identifier,wrapper,ged);
00150     IsFinalStateSelectorSetups(identifier,wrapper);
00151     BSelectorSetups(identifier,wrapper);
00152     ElectronSelectorSetups(identifier,wrapper);
00153     PhotonSelectorSetups(identifier,wrapper);
00154     MuonSelectorSetups(identifier,wrapper);
00155 
00156     m_mcLocation       = ged -> mcLocation();
00157     m_tesIO = new TesIO(m_mcLocation, ged->justHardScatter());
00158     
00159     return StatusCode::SUCCESS ;
00160 
00161   }

StatusCode Atlfast::FinalStateParticleHistogramMaker::execute (  )  [virtual]

Standard Athena-Algorithm method

Definition at line 376 of file FinalStateParticleHistogramMaker.cxx.

00377   {
00378     //................................
00379     // make a message logging stream
00380     
00381     MsgStream log( messageService(), name() ) ;
00382     log << MSG::DEBUG << "Executing" << endreq;
00383     
00384     
00385     // apply a function to each element in m_selectorContainer
00386     //SB: no side effect in the constructor of this functor, and no
00387     //    useful public method to retrieve a particular "sum" variable from
00388     //    the STL algorithm, so it is not useful to retrieve the output of
00389     //    this for_each loop...
00390     /*FillHistograms mp =*/  
00391     std::for_each( m_selectorContainer.begin(),
00392                    m_selectorContainer.end(),
00393                    FillHistograms(m_tesIO,log,m_histogramContainer) );
00394     
00395     return StatusCode::SUCCESS;
00396   }

StatusCode Atlfast::FinalStateParticleHistogramMaker::finalize (  )  [virtual]

Standard Athena-Algorithm method

Definition at line 363 of file FinalStateParticleHistogramMaker.cxx.

00364   {
00365     // .. put any finalisation in here...
00366     
00367     return StatusCode::SUCCESS ;
00368   }

void Atlfast::FinalStateParticleHistogramMaker::PutIntoContainer ( string &  ,
HepMC_helper::MCselectorWrapper  
) [private]

void Atlfast::FinalStateParticleHistogramMaker::BookHistograms ( string &   )  [private]

Definition at line 338 of file FinalStateParticleHistogramMaker.cxx.

00338                                                                  {
00339     
00340     int nHistAll = 0;
00341     vector<IHistogram1D*> &hists = m_histogramContainer[id];
00342     string path = "/stat/finalstate_"+id+"/";
00343     string of = " of GenParticles from '"+id+"' selectors";
00344 
00345     hists.push_back(histoSvc()->book(path,++nHistAll,"Multiplicity"+of,m_multBins,m_multLow,m_multHigh));
00346     hists.push_back(histoSvc()->book(path,++nHistAll,"Energy"+of,m_eBins,m_eLow,m_eHigh));
00347     hists.push_back(histoSvc()->book(path,++nHistAll,"px"+of,m_pxBins,m_pxLow,m_pxHigh));
00348     hists.push_back(histoSvc()->book(path,++nHistAll,"py"+of,m_pyBins,m_pyLow,m_pyHigh));
00349     hists.push_back(histoSvc()->book(path,++nHistAll,"pz"+of,m_pzBins,m_pzLow,m_pzHigh));
00350     hists.push_back(histoSvc()->book(path,++nHistAll,"Energy sum"+of,m_eSumBins,m_eSumLow,m_eSumHigh));
00351     hists.push_back(histoSvc()->book(path,++nHistAll,"px sum"+of,m_pxSumBins,m_pxSumLow,m_pxSumHigh));
00352     hists.push_back(histoSvc()->book(path,++nHistAll,"py sum"+of,m_pySumBins,m_pySumLow,m_pySumHigh));
00353     hists.push_back(histoSvc()->book(path,++nHistAll,"pz sum"+of,m_pzSumBins,m_pzSumLow,m_pzSumHigh));
00354 
00355     return;
00356 
00357   }

void Atlfast::FinalStateParticleHistogramMaker::SetHistogramLimits (  )  [private]

Definition at line 163 of file FinalStateParticleHistogramMaker.cxx.

00163                                                            {
00164     
00165     declareProperty("MultiplicityBins", m_multBins = 100);
00166     declareProperty("MultiplicityLow",  m_multLow = 0.);
00167     declareProperty("MultiplicityHigh", m_multHigh = 1000.);
00168 
00169     declareProperty("EnergyBins",       m_eBins = 100);
00170     declareProperty("EnergyLow",        m_eLow = 0.);
00171     declareProperty("EnergyHigh",       m_eHigh = 50.*GeV);
00172     declareProperty("PxBins",           m_pxBins = 100);
00173     declareProperty("PxLow",            m_pxLow = -20.*GeV);
00174     declareProperty("PxHigh",           m_pxHigh = 20.*GeV);
00175     declareProperty("PyBins",           m_pyBins = 100);
00176     declareProperty("PyLow",            m_pyLow = -20.*GeV);
00177     declareProperty("PyHigh",           m_pyHigh = 20.*GeV);
00178     declareProperty("PzBins",           m_pzBins = 100);
00179     declareProperty("PzLow",            m_pzLow = -20.*GeV);
00180     declareProperty("PzHigh",           m_pzHigh = 20.*GeV);
00181 
00182     declareProperty("EnergySumBins",    m_eSumBins = 100);
00183     declareProperty("EnergySumLow",     m_eSumLow = 13000.*GeV);
00184     declareProperty("EnergySumHigh",    m_eSumHigh = 15000.*GeV);
00185     declareProperty("PxSumBins",        m_pxSumBins = 100);
00186     declareProperty("PxSumLow",         m_pxSumLow = -2.*GeV);
00187     declareProperty("PxSumHigh",        m_pxSumHigh = 2.*GeV);
00188     declareProperty("PySumBins",        m_pySumBins = 100);
00189     declareProperty("PySumLow",         m_pySumLow = -2.*GeV);
00190     declareProperty("PySumHigh",        m_pySumHigh = 2.*GeV);
00191     declareProperty("PzSumBins",        m_pzSumBins = 100);
00192     declareProperty("PzSumLow",         m_pzSumLow = -2.*GeV);
00193     declareProperty("PzSumHigh",        m_pzSumHigh = 2.*GeV);
00194 
00195     return;
00196 
00197   }

void Atlfast::FinalStateParticleHistogramMaker::AllSelectorSetups ( string &  ,
HepMC_helper::MCselectorWrapper  
) [private]

Definition at line 199 of file FinalStateParticleHistogramMaker.cxx.

00200                                                                                                   {
00201     identifier = "all";    
00202     wrapper = new HepMC_helper::MCselectorWrapper( new HepMC_helper::All() ) ;
00203     BookHistograms(identifier);
00204     PutIntoContainer(identifier,wrapper);
00205     return;
00206 
00207   }

void Atlfast::FinalStateParticleHistogramMaker::Z0SelectorSetups ( string &  ,
HepMC_helper::MCselectorWrapper  
) [private]

Definition at line 209 of file FinalStateParticleHistogramMaker.cxx.

00210                                                                                                  {
00211     
00212     identifier = "z0selector"; 
00213     wrapper = new HepMC_helper::MCselectorWrapper( new HepMC_helper::SelectZ0(0.0, FLT_MAX));
00214     BookHistograms(identifier);
00215     PutIntoContainer(identifier,wrapper);
00216     return;
00217 
00218   }

void Atlfast::FinalStateParticleHistogramMaker::VisibleToCalSelectorSetups ( string &  ,
HepMC_helper::MCselectorWrapper ,
GlobalEventData  
) [private]

Definition at line 220 of file FinalStateParticleHistogramMaker.cxx.

00222                                                                                          {
00223  
00224     // Same selector as used in CellMaker
00225 
00226     identifier = "visibleToCal";
00227     wrapper = new HepMC_helper::MCselectorWrapper(ged -> visibleToCal());
00228     BookHistograms(identifier);
00229     PutIntoContainer(identifier,wrapper);
00230     return;
00231 
00232   }

void Atlfast::FinalStateParticleHistogramMaker::InvisibleToAtlasSelectorSetups ( string &  ,
HepMC_helper::MCselectorWrapper ,
GlobalEventData  
) [private]

Definition at line 234 of file FinalStateParticleHistogramMaker.cxx.

00236                                                                                              {
00237     
00238     // Same selector as used in EventHeaderMaker::escapedMomentum
00239 
00240     identifier = "invisibleToAtlas";
00241     wrapper = new HepMC_helper::MCselectorWrapper(ged -> visibleToAtlas());
00242     BookHistograms(identifier);
00243     PutIntoContainer(identifier,wrapper);
00244     return;
00245 
00246   }

void Atlfast::FinalStateParticleHistogramMaker::IsFinalStateSelectorSetups ( string &  ,
HepMC_helper::MCselectorWrapper  
) [private]

Definition at line 248 of file FinalStateParticleHistogramMaker.cxx.

00249                                                                                                            {
00250     identifier = "isFinalState";
00251     wrapper = new HepMC_helper::MCselectorWrapper(new HepMC_helper::IsFinalState() );
00252     BookHistograms(identifier);
00253     PutIntoContainer(identifier,wrapper);
00254     return;
00255     
00256   }

void Atlfast::FinalStateParticleHistogramMaker::BSelectorSetups ( string &  ,
HepMC_helper::MCselectorWrapper  
) [private]

Definition at line 258 of file FinalStateParticleHistogramMaker.cxx.

00259                                                                                                 {
00260     
00261     identifier = "bSelector";    
00262     wrapper = 
00263       new HepMC_helper::MCselectorWrapper( new HepMC_helper::SelectJetTag (ParticleCodes::BQUARK, 
00264                                                                            5.0*GeV, 
00265                                                                            2.5));
00266     BookHistograms(identifier);
00267     PutIntoContainer(identifier,wrapper);
00268     return;
00269 
00270   }

void Atlfast::FinalStateParticleHistogramMaker::ElectronSelectorSetups ( string &  ,
HepMC_helper::MCselectorWrapper  
) [private]

Definition at line 272 of file FinalStateParticleHistogramMaker.cxx.

00273                                                                                                        {
00274  
00275     // Same selectors as used in DefaultReconstructedParticleMaker/ElectronMaker
00276 
00277     identifier = "electronSelector";
00278     DefaultReconstructedParticleSelectorSetups(wrapper,11,0.0*GeV,100.0); // Current defaults
00279     BookHistograms(identifier);
00280     PutIntoContainer(identifier,wrapper);
00281     return;
00282 
00283   }

void Atlfast::FinalStateParticleHistogramMaker::PhotonSelectorSetups ( string &  ,
HepMC_helper::MCselectorWrapper  
) [private]

Definition at line 285 of file FinalStateParticleHistogramMaker.cxx.

00286                                                                                                      {
00287     
00288     // Same selectors as used in DefaultReconstructedParticleMaker/PhotonMaker
00289 
00290     identifier = "photonSelector";
00291     DefaultReconstructedParticleSelectorSetups(wrapper,22,0.0*GeV,100.0); // Current defaults
00292     BookHistograms(identifier);
00293     PutIntoContainer(identifier,wrapper);
00294     return;
00295     
00296   }

void Atlfast::FinalStateParticleHistogramMaker::MuonSelectorSetups ( string &  ,
HepMC_helper::MCselectorWrapper  
) [private]

Definition at line 298 of file FinalStateParticleHistogramMaker.cxx.

00299                                                                                                    {
00300 
00301     // Same selectors as used in DefaultReconstructedParticleMaker/MuonMaker
00302 
00303     identifier = "muonSelector"; 
00304     DefaultReconstructedParticleSelectorSetups(wrapper,13,0.5*GeV,100.0); // Current defaults
00305     BookHistograms(identifier);
00306     PutIntoContainer(identifier,wrapper);
00307     return;
00308 
00309   }

void Atlfast::FinalStateParticleHistogramMaker::DefaultReconstructedParticleSelectorSetups ( HepMC_helper::MCselectorWrapper *&  ,
int  particleType,
double  ptMin,
double  etaMax 
) [private]

Definition at line 312 of file FinalStateParticleHistogramMaker.cxx.

00312                                                                                           {
00313     
00314     // Common code for all DefaultReconstructedParticles
00315 
00316     HepMC_helper::IMCselector* typeSelector = 
00317       new HepMC_helper::SelectType(particleType);
00318     HepMC_helper::IMCselector* kineSelector = 
00319       new HepMC_helper::MCCuts(ptMin, etaMax);
00320     HepMC_helper::IMCselector* fstaSelector = 
00321       new HepMC_helper::IsFinalState();
00322     
00323     vector<HepMC_helper::IMCselector*> selectors;
00324     selectors.push_back(fstaSelector);
00325     selectors.push_back(typeSelector);
00326     selectors.push_back(kineSelector);   
00327 
00328     HepMC_helper::NCutter* ncutter = new HepMC_helper::NCutter(selectors);
00329     wrapper = new HepMC_helper::MCselectorWrapper(ncutter);    
00330 
00331     delete typeSelector;
00332     delete kineSelector;
00333     delete fstaSelector;
00334     return;
00335     
00336   }


Member Data Documentation

std::string Atlfast::FinalStateParticleHistogramMaker::m_inputLocation [private]

TES input location

Definition at line 147 of file FinalStateParticleHistogramMaker.h.

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

Definition at line 148 of file FinalStateParticleHistogramMaker.h.

std::string Atlfast::FinalStateParticleHistogramMaker::m_mcLocation [private]

Definition at line 150 of file FinalStateParticleHistogramMaker.h.

int Atlfast::FinalStateParticleHistogramMaker::m_multBins [private]

Definition at line 153 of file FinalStateParticleHistogramMaker.h.

double Atlfast::FinalStateParticleHistogramMaker::m_multLow [private]

Definition at line 153 of file FinalStateParticleHistogramMaker.h.

double Atlfast::FinalStateParticleHistogramMaker::m_multHigh [private]

Definition at line 153 of file FinalStateParticleHistogramMaker.h.

int Atlfast::FinalStateParticleHistogramMaker::m_eBins [private]

Definition at line 154 of file FinalStateParticleHistogramMaker.h.

double Atlfast::FinalStateParticleHistogramMaker::m_eLow [private]

Definition at line 154 of file FinalStateParticleHistogramMaker.h.

double Atlfast::FinalStateParticleHistogramMaker::m_eHigh [private]

Definition at line 154 of file FinalStateParticleHistogramMaker.h.

int Atlfast::FinalStateParticleHistogramMaker::m_pxBins [private]

Definition at line 155 of file FinalStateParticleHistogramMaker.h.

double Atlfast::FinalStateParticleHistogramMaker::m_pxLow [private]

Definition at line 155 of file FinalStateParticleHistogramMaker.h.

double Atlfast::FinalStateParticleHistogramMaker::m_pxHigh [private]

Definition at line 155 of file FinalStateParticleHistogramMaker.h.

int Atlfast::FinalStateParticleHistogramMaker::m_pyBins [private]

Definition at line 156 of file FinalStateParticleHistogramMaker.h.

double Atlfast::FinalStateParticleHistogramMaker::m_pyLow [private]

Definition at line 156 of file FinalStateParticleHistogramMaker.h.

double Atlfast::FinalStateParticleHistogramMaker::m_pyHigh [private]

Definition at line 156 of file FinalStateParticleHistogramMaker.h.

int Atlfast::FinalStateParticleHistogramMaker::m_pzBins [private]

Definition at line 157 of file FinalStateParticleHistogramMaker.h.

double Atlfast::FinalStateParticleHistogramMaker::m_pzLow [private]

Definition at line 157 of file FinalStateParticleHistogramMaker.h.

double Atlfast::FinalStateParticleHistogramMaker::m_pzHigh [private]

Definition at line 157 of file FinalStateParticleHistogramMaker.h.

int Atlfast::FinalStateParticleHistogramMaker::m_eSumBins [private]

Definition at line 158 of file FinalStateParticleHistogramMaker.h.

double Atlfast::FinalStateParticleHistogramMaker::m_eSumLow [private]

Definition at line 158 of file FinalStateParticleHistogramMaker.h.

double Atlfast::FinalStateParticleHistogramMaker::m_eSumHigh [private]

Definition at line 158 of file FinalStateParticleHistogramMaker.h.

int Atlfast::FinalStateParticleHistogramMaker::m_pxSumBins [private]

Definition at line 159 of file FinalStateParticleHistogramMaker.h.

double Atlfast::FinalStateParticleHistogramMaker::m_pxSumLow [private]

Definition at line 159 of file FinalStateParticleHistogramMaker.h.

double Atlfast::FinalStateParticleHistogramMaker::m_pxSumHigh [private]

Definition at line 159 of file FinalStateParticleHistogramMaker.h.

int Atlfast::FinalStateParticleHistogramMaker::m_pySumBins [private]

Definition at line 160 of file FinalStateParticleHistogramMaker.h.

double Atlfast::FinalStateParticleHistogramMaker::m_pySumLow [private]

Definition at line 160 of file FinalStateParticleHistogramMaker.h.

double Atlfast::FinalStateParticleHistogramMaker::m_pySumHigh [private]

Definition at line 160 of file FinalStateParticleHistogramMaker.h.

int Atlfast::FinalStateParticleHistogramMaker::m_pzSumBins [private]

Definition at line 161 of file FinalStateParticleHistogramMaker.h.

double Atlfast::FinalStateParticleHistogramMaker::m_pzSumLow [private]

Definition at line 161 of file FinalStateParticleHistogramMaker.h.

double Atlfast::FinalStateParticleHistogramMaker::m_pzSumHigh [private]

Definition at line 161 of file FinalStateParticleHistogramMaker.h.

vector< pair< string, HepMC_helper::MCselectorWrapper* > > Atlfast::FinalStateParticleHistogramMaker::m_selectorContainer [private]

Vector with all MCselectorWrapper pointers and an identifying string

Definition at line 164 of file FinalStateParticleHistogramMaker.h.

map< string, vector<IHistogram1D*> > Atlfast::FinalStateParticleHistogramMaker::m_histogramContainer [private]

Definition at line 165 of file FinalStateParticleHistogramMaker.h.


The documentation for this class was generated from the following files:
Generated on Mon Sep 24 14:19:39 2007 for AtlfastAlgs by  doxygen 1.5.1