/* $Id$ */
+/* History of cvs commits:
+ *
+ * $Log$
+ * Revision 1.29 2005/05/28 14:19:05 schutz
+ * Compilation warnings fixed by T.P.
+ *
+ */
+
//_________________________________________________________________________
// Implementation of the PHOS manager class for fast simulations
// Tracks particles until the reach a grossly designed PHOS module
// --- ROOT system ---
#include <TBRIK.h>
-#include <TFile.h>
#include <TGeometry.h>
#include <TNode.h>
#include <TParticle.h>
-#include <TTree.h>
+#include "TClonesArray.h"
#include <TVirtualMC.h>
// --- Standard library ---
// --- AliRoot header files ---
-#include "AliConst.h"
#include "AliPHOSFastRecParticle.h"
#include "AliPHOSGeometry.h"
#include "AliPHOSLoader.h"
ClassImp(AliPHOSvFast)
-//____________________________________________________________________________
-AliPHOSvFast::AliPHOSvFast() : AliPHOS()
+AliPHOSvFast::AliPHOSvFast() :
+ fBigBoxX(0.),
+ fBigBoxY(0.),
+ fBigBoxZ(0.),
+ fFastRecParticles(0),
+ fNRecParticles(0),
+ fRan(0),
+ fResPara1(0.),
+ fResPara2(0.),
+ fResPara3(0.),
+ fPosParaA0(0.),
+ fPosParaA1(0.),
+ fPosParaB0(0.),
+ fPosParaB1(0.),
+ fPosParaB2(0.)
{
// default ctor : initialize data member
- fBigBoxX = 0. ;
- fBigBoxY = 0. ;
- fBigBoxZ = 0. ;
- fFastRecParticles = 0 ;
- fNRecParticles = 0 ;
- fRan = 0 ;
- fResPara1 = 0. ;
- fResPara2 = 0. ;
- fResPara3 = 0. ;
- fPosParaA0 = 0. ;
- fPosParaA1 = 0. ;
- fPosParaB0 = 0. ;
- fPosParaB1 = 0. ;
- fPosParaB2 = 0. ;
-
}
//____________________________________________________________________________
AliPHOSvFast::AliPHOSvFast(const char *name, const char *title):
- AliPHOS(name,title)
+ AliPHOS(name,title),
+ fBigBoxX(0.),
+ fBigBoxY(0.),
+ fBigBoxZ(0.),
+ fFastRecParticles(new AliPHOSFastRecParticle::FastRecParticlesList("AliPHOSFastRecParticle", 100)),
+ fNRecParticles(0),
+ fRan(0),
+ fResPara1(0.030), // GeV
+ fResPara2(0.00003),
+ fResPara3(0.00001),
+ fPosParaA0(2.87), // mm
+ fPosParaA1(-0.0975),
+ fPosParaB0(0.257),
+ fPosParaB1(0.137),
+ fPosParaB2(0.00619)
{
// ctor
-
-
// create the Loader
-
SetBigBox(0, GetGeometry()->GetOuterBoxSize(0) ) ;
SetBigBox(1, GetGeometry()->GetOuterBoxSize(3) + GetGeometry()->GetCPVBoxSize(1) ) ;
SetBigBox(2, GetGeometry()->GetOuterBoxSize(2) );
-
- fNRecParticles = 0 ;
- fFastRecParticles = new AliPHOSFastRecParticle::FastRecParticlesList("AliPHOSFastRecParticle", 100) ;
-
- fResPara1 = 0.030 ; // GeV
- fResPara2 = 0.00003 ;
- fResPara3 = 0.00001 ;
-
- fPosParaA0 = 2.87 ; // mm
- fPosParaA1 = -0.0975 ;
- fPosParaB0 = 0.257 ;
- fPosParaB1 = 0.137 ;
- fPosParaB2 = 0.00619 ;
}
+//____________________________________________________________________________
+AliPHOSvFast::AliPHOSvFast(AliPHOSvFast & fast) :
+ AliPHOS(fast),
+ fBigBoxX(0.),
+ fBigBoxY(0.),
+ fBigBoxZ(0.),
+ fFastRecParticles(0),
+ fNRecParticles(0),
+ fRan(0),
+ fResPara1(0.),
+ fResPara2(0.),
+ fResPara3(0.),
+ fPosParaA0(0.),
+ fPosParaA1(0.),
+ fPosParaB0(0.),
+ fPosParaB1(0.),
+ fPosParaB2(0.)
+{
+ //Copy ctor.
+ fast.Copy(*this) ;
+}
+
+
//____________________________________________________________________________
AliPHOSvFast::~AliPHOSvFast()
{
}
+//____________________________________________________________________________
+void AliPHOSvFast::Copy(TObject & base)const
+{
+ TObject::Copy(base) ;
+ AliPHOS::Copy(base) ;
+ AliPHOSvFast &fast = static_cast<AliPHOSvFast &>(base);
+ fast.fBigBoxX = fBigBoxX ;
+ fast.fBigBoxY = fBigBoxY ;
+ fast.fBigBoxZ = fBigBoxZ ;
+ fast.fNRecParticles = fNRecParticles ;
+ fast.fRan = fRan ;
+ fast.fResPara1 = fResPara1 ;
+ fast.fResPara2 = fResPara2 ;
+ fast.fResPara3 = fResPara3 ;
+ fast.fPosParaA0 = fPosParaA0 ;
+ fast.fPosParaA1 = fPosParaA1 ;
+ fast.fPosParaB0 = fPosParaB0 ;
+ fast.fPosParaB1 = fPosParaB1 ;
+ fast.fFastRecParticles = new TClonesArray(fFastRecParticles->GetClass()->GetName(), 100) ;
+ Int_t index ;
+ for (index = 0 ; index < fFastRecParticles->GetEntries(); index++)
+ (fast.fFastRecParticles)->AddAt(fFastRecParticles->At(index), index) ;
+}
+
//____________________________________________________________________________
void AliPHOSvFast::AddRecParticle(const AliPHOSFastRecParticle & rp)
{
const Int_t kColorPHOS = kRed ;
- Double_t const kRADDEG = 180.0 / kPI ;
+ Double_t const kRADDEG = 180.0 / TMath::Pi() ;
new TBRIK( "BigBox", "PHOS box", "void", GetBigBox(0)/2,
GetBigBox(1)/2,
// --- Position PHOS mdules in ALICE setup ---
Int_t idrotm[99] ;
- Double_t const kRADDEG = 180.0 / kPI ;
+ Double_t const kRADDEG = 180.0 / TMath::Pi() ;
for( Int_t i = 1; i <= GetGeometry()->GetNModules(); i++ ) {
}
//____________________________________________________________________________
-Double_t AliPHOSvFast::MakeEnergy(const Double_t energy)
+Double_t AliPHOSvFast::MakeEnergy(Double_t energy)
{
// Smears the energy according to the energy dependent energy resolution.
// A gaussian distribution is assumed
}
//____________________________________________________________________________
-TVector3 AliPHOSvFast::MakePosition(const Double_t energy, const TVector3 pos, const Double_t theta, const Double_t phi)
+TVector3 AliPHOSvFast::MakePosition(Double_t energy, TVector3 pos, Double_t theta, Double_t phi)
{
// Smears the impact position according to the energy dependent position resolution
// A gaussian position distribution is assumed
}
//____________________________________________________________________________
-void AliPHOSvFast::MakeRecParticle(const Int_t modid, const TVector3 pos, AliPHOSFastRecParticle & rp)
+void AliPHOSvFast::MakeRecParticle(Int_t modid, TVector3 pos, AliPHOSFastRecParticle & rp)
{
// Modify the primary particle properties according
// 1. the response function of PHOS
else
test = rp.GetPdgCode() ;
- Info("MakeType", "SHOULD NOT BE USED until values of probabilities are properly set ") ;
- assert(1==0) ; // NB: ALL VALUES SHOULD BE CHECKED !!!!
+ Fatal("MakeType", "SHOULD NOT BE USED until values of probabilities are properly set ") ;
+ // NB: ALL VALUES SHOULD BE CHECKED !!!!
switch (test) {
case 22: // it's a photon // NB: ALL VALUES SHOLD BE CHECKED !!!!