-/**************************************************************************
+ /**************************************************************************
* 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 geometry parameters object
- // and post it to a folder (Post retrieves the correct geometry)
- AliPHOSGetter::GetInstance(gDirectory->GetName(), 0)->PostGeometry() ;
-
- 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 ;
+ // 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 ;
}
//____________________________________________________________________________
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 !!!!
+ Info("MakeType", "SHOULD NOT BE USED until values of probabilities are properly set ") ;
+ assert(1==0) ; // NB: ALL VALUES SHOULD BE CHECKED !!!!
switch (test) {
case 22: // it's a photon // NB: ALL VALUES SHOLD BE CHECKED !!!!
}
//____________________________________________________________________________
-Double_t AliPHOSvFast::SigmaP(Double_t energy, Int_t incidence)
+Double_t AliPHOSvFast::SigmaP(Double_t energy, Double_t incidence)
{
// Calculates the energy dependent position resolution
{
// 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) ;