-/**************************************************************************
+ /**************************************************************************
* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* *
* Author: The ALICE Off-line Project. *
// --- ROOT system ---
-#include "TBRIK.h"
-#include "TNode.h"
-#include "TParticle.h"
-#include "TTree.h"
-#include "TGeometry.h"
-#include "TFile.h"
+#include <TBRIK.h>
+#include <TGeometry.h>
+#include <TNode.h>
+#include <TParticle.h>
+#include "TClonesArray.h"
+#include <TVirtualMC.h>
// --- Standard library ---
-#include <stdio.h>
-
// --- 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)
// 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) ) ;
}
+//____________________________________________________________________________
+void AliPHOSvFast::Copy(AliPHOSvFast & fast)
+{
+ TObject::Copy(fast) ;
+ AliPHOS::Copy(fast) ;
+ 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++ ) {
}
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)
{
// Smears the energy according to the energy dependent energy resolution.
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)
{
// Smears the impact position according to the energy dependent position resolution
else
test = rp.GetPdgCode() ;
- cout << " SHOULD NOT BE USED until values of probabilities are properly set " << endl ;
- assert(1==0) ; // NB: ALL VALUES SHOLD 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 !!!!
{
// Only verifies if the particle reaches PHOS and stops the tracking
- Int_t primary = gAlice->GetPrimary( gAlice->CurrentTrack() );
-
TLorentzVector lv ;
gMC->TrackPosition(lv) ;
TVector3 pos = lv.Vect() ;
TParticle * part = new TParticle(gMC->TrackPid(), 0,-1,-1,-1,-1, pTrack, lv) ;
AliPHOSFastRecParticle rp(*part) ;
- rp.SetPrimary(primary) ;
// Adds the response of PHOS to the particle
MakeRecParticle(modid, pos, rp) ;