Page MenuHomeHEPForge

CrossSection.h
No OneTemporary

CrossSection.h

//==============================================================================
// CrossSection.h
//
// Copyright (C) 2010-2013 Tobias Toll and Thomas Ullrich
//
// This file is part of Sartre version: 1.1
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation.
// This program is distributed in the hope that it will be useful,
// but without any warranty; without even the implied warranty of
// merchantability or fitness for a particular purpose. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//
// Author: Thomas Ullrich
// Last update:
// $Date: 2013-05-29 21:26:19 +0100 (Wed, 29 May 2013) $
// $Author: thomas.ullrich@bnl.gov $
//==============================================================================
//
// Functor class.
//
// operator() returns d^3sig/(dt dQ2 dW2) in nb/GeV^6.
//
//===============================================================================
#ifndef CrossSection_h
#define CrossSection_h
#include "Enumerations.h"
#include "PhotonFlux.h"
class TRandom3;
class EventGeneratorSettings;
class TableCollection;
class CrossSection {
public:
CrossSection(TableCollection* = 0, TableCollection* = 0);
~CrossSection();
double operator()(double t, double Q2, double W2);
double operator()(const double*); // array of t, Q2, W2
double unuranPDF(const double*); // for UNU.RAN using log(Q2) and returning log of cross-section
void setTableCollection(TableCollection*);
void setProtonTableCollection(TableCollection*);
GammaPolarization polarizationOfLastCall() const;
DiffractiveMode diffractiveModeOfLastCall() const;
void setCheckKinematics(bool);
protected:
double dsigdtdQ2dW2_total(double t, double Q2, double W2);
double dsigdt_total(double t, double Q2, double W2, GammaPolarization) const;
double dsigdt_coherent(double t, double Q2, double W2, GammaPolarization) const;
double dsigdtdQ2dW2_total(double t, double Q2, double W2, GammaPolarization) const;
double dsigdtdQ2dW2_coherent(double t, double Q2, double W2, GammaPolarization) const;
double logDerivateOfAmplitude(double t, double Q2, double W2, GammaPolarization) const;
double realAmplitudeCorrection(double t, double Q2, double W2, GammaPolarization pol) const;
double realAmplitudeCorrection(double lambda) const;
double skewednessCorrection(double t, double Q2, double W2, GammaPolarization pol) const;
double skewednessCorrection(double lambda) const;
private:
TRandom3* mRandom;
GammaPolarization mPolarization;
DiffractiveMode mDiffractiveMode;
PhotonFlux mPhotonFlux;
TableCollection* mTableCollection;
TableCollection* mProtonTableCollection;
EventGeneratorSettings* mSettings;
double mS;
double mVmMass;
bool mCheckKinematics;
};
#endif

File Metadata

Mime Type
text/x-c++
Expires
Sat, Dec 21, 4:35 PM (21 h, 28 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4000259
Default Alt Text
CrossSection.h (3 KB)

Event Timeline