X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;ds=sidebyside;f=PHOS%2FAliPHOSvFast.cxx;h=32ae66feac0e115485fff0cc7572effee72791f8;hb=c73e818954dddc41110e472137ac3e478d9f6782;hp=75b2cea76f9c7c3fad95bb8caefd87b5083fe859;hpb=21cd0c07a367c6e6836907ecf5222aef9cb05c05;p=u%2Fmrichter%2FAliRoot.git diff --git a/PHOS/AliPHOSvFast.cxx b/PHOS/AliPHOSvFast.cxx index 75b2cea76f9..32ae66feac0 100644 --- a/PHOS/AliPHOSvFast.cxx +++ b/PHOS/AliPHOSvFast.cxx @@ -1,4 +1,4 @@ -/************************************************************************** + /************************************************************************** * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * * * * Author: The ALICE Off-line Project. * @@ -15,6 +15,17 @@ /* $Id$ */ +/* History of cvs commits: + * + * $Log$ + * Revision 1.30 2006/09/13 07:31:01 kharlov + * Effective C++ corrections (T.Pocheptsov) + * + * 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 @@ -26,73 +37,65 @@ // --- ROOT system --- -#include "TBRIK.h" -#include "TNode.h" -#include "TParticle.h" -#include "TTree.h" -#include "TGeometry.h" -#include "TFile.h" +#include +#include +#include +#include "TClonesArray.h" +#include // --- Standard library --- // --- AliRoot header files --- #include "AliPHOSFastRecParticle.h" #include "AliPHOSGeometry.h" +#include "AliPHOSLoader.h" #include "AliPHOSvFast.h" -#include "AliPHOSGetter.h" #include "AliRun.h" -#include "AliConst.h" -#include "AliMC.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 Getter - AliPHOSGetter::GetInstance(gDirectory->GetName(), 0) ; - + // 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 ; } //____________________________________________________________________________ @@ -115,63 +118,6 @@ void AliPHOSvFast::AddRecParticle(const AliPHOSFastRecParticle & rp) fNRecParticles++ ; } -//____________________________________________________________________________ -void AliPHOSvFast::BuildGeometry() -{ - // Build the PHOS geometry for the ROOT display - //BEGIN_HTML - /* -

- PHOS FAST in ALICE displayed by root -

-

All Views

-

-

- Fast All Views -

-

Front View

-

-

- Fast Front View -

- */ - //END_HTML - - const Int_t kColorPHOS = kRed ; - - Double_t const kRADDEG = 180.0 / kPI ; - - new TBRIK( "BigBox", "PHOS box", "void", GetBigBox(0)/2, - GetBigBox(1)/2, - GetBigBox(2)/2 ); - - // position PHOS into ALICE - - Float_t r = GetGeometry()->GetIPtoCrystalSurface() + GetBigBox(1) / 2.0 ; - Int_t number = 988 ; - Float_t pphi = TMath::ATan( GetBigBox(0) / ( 2.0 * GetGeometry()->GetIPtoCrystalSurface() ) ) ; - pphi *= kRADDEG ; - TNode * top = gAlice->GetGeometry()->GetNode("alice") ; - - char * nodename = new char[20] ; - char * rotname = new char[20] ; - - for( Int_t i = 1; i <= GetGeometry()->GetNModules(); i++ ) { - Float_t angle = pphi * 2 * ( i - GetGeometry()->GetNModules() / 2.0 - 0.5 ) ; - sprintf(rotname, "%s%d", "rot", number++) ; - new TRotMatrix(rotname, rotname, 90, angle, 90, 90 + angle, 0, 0); - top->cd(); - sprintf(nodename,"%s%d", "Module", i) ; - Float_t x = r * TMath::Sin( angle / kRADDEG ) ; - Float_t y = -r * TMath::Cos( angle / kRADDEG ) ; - TNode * bigboxnode = new TNode(nodename, nodename, "BigBox", x, y, 0, rotname ) ; - bigboxnode->SetLineColor(kColorPHOS) ; - fNodes->Add(bigboxnode) ; - } - delete[] nodename ; - delete[] rotname ; -} - //____________________________________________________________________________ void AliPHOSvFast::CreateGeometry() { @@ -199,7 +145,7 @@ void AliPHOSvFast::CreateGeometry() // --- 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++ ) { @@ -257,26 +203,21 @@ Float_t AliPHOSvFast::GetBigBox(Int_t index) const } return rv ; } - //___________________________________________________________________________ -void AliPHOSvFast::MakeBranch(Option_t* opt, const char *file) + +void AliPHOSvFast::MakeBranch(Option_t* opt) { // Create new branch in the current reconstructed Root Tree - - AliDetector::MakeBranch(opt,file) ; - - char branchname[10]; - sprintf(branchname,"%s",GetName()); + AliDetector::MakeBranch(opt); const char *cd = strstr(opt,"R"); - if (fFastRecParticles && gAlice->TreeR() && cd) { - MakeBranchInTree(gAlice->TreeR(), - branchname, &fFastRecParticles, fBufferSize, file); + if (fFastRecParticles && fLoader->TreeR() && cd) { + MakeBranchInTree(fLoader->TreeR(), GetName(), &fFastRecParticles, fBufferSize, 0); } } - //____________________________________________________________________________ -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 @@ -284,9 +225,9 @@ Double_t AliPHOSvFast::MakeEnergy(const Double_t energy) Double_t sigma = SigmaE(energy) ; return fRan.Gaus(energy, sigma) ; } - //____________________________________________________________________________ -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 @@ -306,7 +247,7 @@ TVector3 AliPHOSvFast::MakePosition(const Double_t energy, const TVector3 pos, c } //____________________________________________________________________________ -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 @@ -355,8 +296,8 @@ Int_t AliPHOSvFast::MakeType(AliPHOSFastRecParticle & rp ) 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 !!!!