/* $Id$ */
+//
+// Class for a simple description of the LHC.
+// The LHC is described by two beams,
+// the interaction regions and the
+// beam loss processes.
+// Run paramters can be set in order to simulate the time evolution
+// of emittance, number of particles per bunch and luminosity.
+// Author: Andreas Morsch
+// andreas.morsch@cern.ch
+
#include "AliLHC.h"
#include "AliLhcIRegion.h"
#include "AliLhcProcess.h"
* See cxx source for full Copyright notice */
/* $Id$ */
+
+//
+// Class for a simple description of the LHC.
+// The LHC is described by two beams,
+// the interaction regions and the
+// beam loss processes.
+// Run paramters can be set in order to simulate the time evolution
+// of emittance, number of particles per bunch and luminosity.
+// Author: Andreas Morsch
+// andreas.morsch@cern.ch
+
#include <TObject.h>
#include <TList.h>
#include <TObjArray.h>
virtual void SetAverageBeta(Float_t b) {fAverageBeta = b;}
virtual void SetAverageDisp(Float_t b) {fAverageDisp = b;}
- virtual Float_t Radius() {return fRadius;}
- virtual Float_t AverageBeta() {return fAverageBeta;}
- virtual Float_t AverageDisp() {return fAverageDisp;}
- virtual Float_t SetUpTime() {return fSetUpTime;}
- virtual Float_t FillingTime() {return fFillingTime;}
+ virtual Float_t Radius() const {return fRadius;}
+ virtual Float_t AverageBeta() const {return fAverageBeta;}
+ virtual Float_t AverageDisp() const {return fAverageDisp;}
+ virtual Float_t SetUpTime() const {return fSetUpTime;}
+ virtual Float_t FillingTime() const {return fFillingTime;}
virtual AliLhcBeam* Beam(Int_t i)
{return (AliLhcBeam*) (*fBeams)[i];}
- virtual TList* IRegions(){return fIRegions;}
+ virtual TList* IRegions() const {return fIRegions;}
virtual void Init();
virtual void EvolveTime();
virtual void Evaluate();
- virtual Float_t Time() {return fTime;}
- virtual Float_t TimeStep() {return fTimeStep;}
- virtual Float_t* TimeA() {return fTimeA;}
- virtual Int_t Nt() {return fNt;}
+ virtual Float_t Time() const {return fTime;}
+ virtual Float_t TimeStep() const {return fTimeStep;}
+ virtual Float_t* TimeA() const {return fTimeA;}
+ virtual Int_t Nt() const {return fNt;}
AliLHC & operator=(const AliLHC & rhs);
**************************************************************************/
/* $Id$ */
+//
+// Class that holds all parameters about an LHC beam.
+// The parameters can change with time.
+// A monitor can be set that stores the time distribution of
+// emittance and number of particles per bunch.
+// Author: Andreas Morsch
+// andreas.morsch@cern.ch
+//
#include "AliLhcBeam.h"
#include "AliLHC.h"
void AliLhcBeam::IncreaseEmittance(Float_t de, Float_t del)
{
+//
+// Increase the emittance
fEmittance *= (1.+de);
fEmittanceL *= (1.+del);
fEnergySpread *= (1.+del);
}
void AliLhcBeam::SetMonitor(Int_t n)
{
+//
+// Initialize a monitor with n time bins
fNmax = n;
if (fEmittanceArray) delete fEmittanceArray;
if (fEmittanceLArray) delete fEmittanceLArray;
#ifndef ALILHCBEAM_H
-#define ALILHCBAEM_H
+#define ALILHCBEAM_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
/* $Id$ */
+
+//
+// Class that holds all parameters about an LHC beam.
+// The parameters can change with time.
+// A monitor can be set that stores the time distribution of
+// emittance and number of particles per bunch.
+// Author: Andreas Morsch
+// andreas.morsch@cern.ch
+//
+
#include <TNamed.h>
#include "AliLhcMonitor.h"
virtual void Init();
- virtual Float_t N() {return fN;}
- virtual Float_t A() {return fA;}
- virtual Float_t Z() {return fZ;}
- virtual Float_t Emittance() {return fEmittance;}
- virtual Float_t Energy() {return fEnergy;}
- virtual Float_t Gamma() {return fGamma;}
- virtual Float_t LongEmittance() {return fEmittanceL;}
- virtual Float_t EnergySpread() {return fEnergySpread;}
+ virtual Float_t N() const {return fN;}
+ virtual Float_t A() const {return fA;}
+ virtual Float_t Z() const {return fZ;}
+ virtual Float_t Emittance() const {return fEmittance;}
+ virtual Float_t Energy() const {return fEnergy;}
+ virtual Float_t Gamma() const {return fGamma;}
+ virtual Float_t LongEmittance() const {return fEmittanceL;}
+ virtual Float_t EnergySpread() const {return fEnergySpread;}
virtual void SetParticle(Float_t a, Float_t z) {fA = a; fZ = z;}
virtual void SetN(Float_t n) {fN = n;}
/* $Id$ */
+//
+// Realisation of AliLhcMonitor simulating an LHC interaction region.
+// The interaction region is described by the two LHC beams,
+// by the beta* and the crossing angle.
+// As a monitor it records the luminosity, average luminosity and beta*
+// time evolution.
+// Author: Andreas Morsch
+// andreas.morsch@cern.ch
+//
#include "AliLhcIRegion.h"
#include "AliLhcBeam.h"
#include "AliLHC.h"
* See cxx source for full Copyright notice */
/* $Id$ */
+
+//
+// Realisation of AliLhcMonitor simulating an LHC interaction region.
+// The interaction region is described by the two LHC beams,
+// by the beta* and the crossing angle.
+// As a monitor it records the luminosity, average luminosity and beta*
+// time evolution.
+// Author: Andreas Morsch
+// andreas.morsch@cern.ch
+//
#include <TNamed.h>
#include "AliLhcMonitor.h"
virtual void Init();
virtual Float_t Luminosity();
- virtual Float_t InitialLumi() {return fLuminosity0;}
- virtual Float_t BetaStar() {return fBetaStar;}
+ virtual Float_t InitialLumi() const {return fLuminosity0;}
+ virtual Float_t BetaStar() const {return fBetaStar;}
virtual void SetBetaStar(Float_t beta) {fBetaStar = beta;}
virtual void SetCrossingAngle(Float_t angle) {fCrossingAngle = angle;}
virtual void SetAccelerator(AliLHC* acc) {fAccelerator = acc;}
/* $Id$ */
+//
+// Realisation of AliLhcProcess for the fast simulation of the
+// Intra Beam Scattering process
+// in transverse and longitudinal direction.
+// Author: Andreas Morsch
+// andreas.morsch@cern.ch
+//
+
#include "AliLhcProcessIBS.h"
#include "AliLHC.h"
#include "AliLhcIRegion.h"
void AliLhcProcessIBS::Evolve(Float_t dt)
{
+//
+// Evolve by one time step dt
printf("\n Here process %s %f:", GetName(), dt);
for (Int_t i=0; i<2; i++) {
// Density
Double_t b = par[1];
Double_t cc = par[2];
- const Double_t bc = 0.5772;
+ const Double_t kbc = 0.5772;
Double_t xx = x[0];
Double_t x2=xx*xx;
Double_t x1=1.0-x2;
Double_t p=1.0/TMath::Sqrt(x2+a*a*x1);
Double_t q=1.0/TMath::Sqrt(x2+b*b*x1);
- return (1.0-3.0*x2)*p*q*(2.0*TMath::Log(0.5*cc*(p+q))-bc);
+ return (1.0-3.0*x2)*p*q*(2.0*TMath::Log(0.5*cc*(p+q))-kbc);
}
* See cxx source for full Copyright notice */
/* $Id$ */
+
+//
+// Realisation of AliLhcProcess for the fast simulation of the
+// Intra Beam Scattering process
+// in transverse and longitudinal direction.
+// Author: Andreas Morsch
+// andreas.morsch@cern.ch
+//
+
#include "AliLhcProcess.h"
class TList;
class AliLhcBeam;
AliLhcBeam* fBeam[2]; // Beams
Float_t fR[2]; // elem. ion radius
Float_t fE[2]; // ion radius
- Float_t fTaux;
- Float_t fTaue;
+ Float_t fTaux; // transverse time constant
+ Float_t fTaue; // longitudinal time constant
Float_t* fTauxArray; // [fNmax]
Float_t* fTaueArray; // [fNmax]