HepEx0505013.hh

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 #ifndef RIVET_HepEx0505013_HH
00003 #define RIVET_HepEx0505013_HH
00004 
00005 #include "Rivet/Analysis.hh"
00006 #include "Rivet/Projections/D0ILConeJets.hh"
00007 #include "Rivet/Projections/KtJets.hh"
00008 #ifdef HAVE_FASTJET 
00009 #include "Rivet/Projections/FastJets.hh"
00010 #endif
00011 #include "Rivet/Projections/PVertex.hh"
00012 #include "Rivet/Projections/TotalVisibleMomentum.hh"
00013 #include "Rivet/Projections/JetShape.hh"
00014 #include "Rivet/RivetAIDA.fhh"
00015 #include "Rivet/RivetCLHEP.hh"
00016 
00017 
00018 namespace Rivet {
00019 
00020   /// @todo Need a class description.
00021   class HepEx0505013 : public Analysis {
00022 
00023   public:
00024 
00025     /// Default constructor
00026     inline HepEx0505013()
00027       // NB. eta in [-2.,2.] cut specified via FinalState constructor
00028       // NB. jetshape rmin=0.0, rmax=0.7, interval=0.1, r1minPsi=0.3
00029       : _fsproj(-2., 2.), _vfsproj(_fsproj), 
00030         #ifdef HAVE_FASTJET 
00031         _jetsproj(_fsproj), 
00032         #else
00033         _jetsproj(_fsproj), 
00034         #endif
00035         _calmetproj(_fsproj), _vertexproj(), 
00036         _jetshapeproj(_vfsproj, 0.0, 0.7, 0.1, 0.3) 
00037     { 
00038       
00039       setBeams(PROTON, ANTIPROTON);
00040 
00041 
00042       // Add particle/antiparticle vetoing: 12=nu_e, 14=nu_mu, 16=nu_tau
00043       _vfsproj
00044         .addVetoPairId(12)
00045         .addVetoPairId(14)
00046         .addVetoPairId(16);
00047       
00048       // Veto muons (PDG code = 13) with pT above 1.0 GeV
00049       _vfsproj.addVetoDetail(13, 1.0, numeric_limits<double>::max());
00050 
00051       _jetshapeproj.setJetAxes(_jetaxes);
00052       _jetshapeproj.setDiffJetShapes(_diffjetshapes);
00053       _jetshapeproj.setIntJetShapes(_intjetshapes);
00054       _jetshapeproj.setOneMinPsiShape(_oneminPsishape);
00055 
00056       addProjection(_fsproj);
00057       addProjection(_vfsproj);
00058       addProjection(_jetsproj);
00059       addProjection(_calmetproj);
00060       addProjection(_vertexproj);
00061       addProjection(_jetshapeproj);
00062 
00063 
00064       _Rjet = 0.7;
00065 
00066       _pTbins.resize(19);
00067       _pTbins[0]  =  37.;
00068       _pTbins[1]  =  45.;
00069       _pTbins[2]  =  55.;
00070       _pTbins[3]  =  63.;
00071       _pTbins[4]  =  73.;
00072       _pTbins[5]  =  84.;
00073       _pTbins[6]  =  97.;
00074       _pTbins[7]  = 112.;
00075       _pTbins[8]  = 128.;
00076       _pTbins[9]  = 148.;
00077       _pTbins[10] = 166.;
00078       _pTbins[11] = 186.;
00079       _pTbins[12] = 208.;
00080       _pTbins[13] = 229.;
00081       _pTbins[14] = 250.;
00082       _pTbins[15] = 277.;
00083       _pTbins[16] = 304.;
00084       _pTbins[17] = 340.;
00085       _pTbins[18] = 380.;
00086 
00087       for (int i=0; i<18; ++i)
00088     _ShapeWeights[i] = 0.;
00089 
00090     }
00091       
00092 
00093   public:
00094 
00095     /// Factory method
00096     static Analysis* create() { return new HepEx0505013(); }
00097 
00098     /// Return the name of this analysis.
00099     inline string getName() const {
00100       return "HepEx0505013";
00101     }
00102 
00103   public:
00104 
00105     void init();
00106     
00107     void analyze(const Event & event);
00108     
00109     void finalize();
00110 
00111   private:
00112 
00113     /// The final state projector used by this analysis.
00114     FinalState _fsproj;
00115     
00116     ///The vetoed final state projector needed by the jet algorithm
00117     VetoedFinalState _vfsproj; 
00118     
00119     /// The D0ILConeJets projector used by this analysis.
00120     ////D0ILConeJets _jetsproj;
00121     /// The KtJets projector alternatively usable by this analysis.
00122     ////KtJets _jetsproj;
00123     #ifdef HAVE_FASTJET
00124     /// The FastJets projector alternatively usable by this analysis.
00125     FastJets _jetsproj;
00126     #else
00127     /// The D0ILConeJets projector used by this analysis.
00128     D0ILConeJets _jetsproj;
00129     /// The KtJets projector alternatively usable by this analysis.
00130     ////KtJets _jetsproj;
00131     #endif
00132     
00133     /// The Calorimeter Missing Et projector
00134     TotalVisibleMomentum _calmetproj;
00135 
00136     /// The Primary Vertex projector
00137     PVertex _vertexproj;
00138 
00139     /// The Calorimeter Missing Et projector
00140     JetShape _jetshapeproj;
00141     
00142 
00143   private:
00144 
00145     vector<LorentzVector> _jetaxes;
00146 
00147     vector<vector<double> >  _diffjetshapes;
00148     vector<vector<double> >  _intjetshapes;
00149     vector<double> _oneminPsishape;
00150 
00151     double _Rjet;
00152 
00153     double _ShapeWeights[18];
00154 
00155     /// pT bins to be distiguished during analysis
00156     vector<double> _pTbins;
00157 
00158 
00159     /// Hide the assignment operator
00160     HepEx0505013& operator=(const HepEx0505013&);
00161 
00162     //@{
00163     /// Histograms
00164     AIDA::IHistogram1D* _histRho_pT[18];
00165     AIDA::IHistogram1D* _histPsi_pT[18];
00166     AIDA::IHistogram1D* _histOneMinPsi;
00167     //@}
00168 
00169   };
00170 
00171 }
00172 
00173 #endif