// --- Standard library ---
-#include <iostream.h>
#include <stdlib.h>
// --- AliRoot header files ---
{
// Initializes the PHOS parameters :
// IHEP is the Protvino CPV (cathode pad chambers)
- // GPS2 is the Subatech Pre-Shower (two micromegas sandwiching a passive lead converter)
- // MIXT 4 PHOS modules withe the IHEP CPV qnd one PHOS module with the Subatche Pre-Shower
+ TString test(GetName()) ;
+ if (test != "IHEP" ) {
+ Fatal("Init", "%s is not a known geometry (choose among IHEP)", test.Data() ) ;
+ }
+
fgInit = kTRUE ;
fNModules = 5;
}
-
//____________________________________________________________________________
AliPHOSGeometry * AliPHOSGeometry::GetInstance()
{
// Returns the pointer of the unique instance; singleton specific
- return (AliPHOSGeometry *) fgGeom ;
+ return static_cast<AliPHOSGeometry *>( fgGeom ) ;
}
//____________________________________________________________________________
}
}
else {
- if ( strcmp(fgGeom->GetName(), name) != 0 ) {
- cout << "AliPHOSGeometry <E> : current geometry is " << fgGeom->GetName() << endl
- << " you cannot call " << name << endl ;
- }
+ if ( strcmp(fgGeom->GetName(), name) != 0 )
+ ::Error("GetInstance", "Current geometry is %s. You cannot call %s", fgGeom->GetName(), name) ;
else
rv = (AliPHOSGeometry *) fgGeom ;
}
{
// Calculates the position of the PHOS modules in ALICE global coordinate system
- Double_t const kRADDEG = 180.0 / kPI ;
+ Double_t const kRADDEG = 180.0 / TMath::Pi() ;
Float_t pphi = 2 * TMath::ATan( GetOuterBoxSize(0) / ( 2.0 * GetIPtoUpperCPVsurface() ) ) ;
pphi *= kRADDEG ;
if (pphi > fAngle){
- cout << "AliPHOSGeometry: PHOS modules overlap!\n";
- cout << "pphi = " << pphi << " fAngle " << fAngle << endl ;
+ Error("SetPHOSAngles", "PHOS modules overlap!\n pphi = %f fAngle = %f", pphi, fAngle);
}
pphi = fAngle;
else if ( opt == Degre() )
conv = 180. / TMath::Pi() ;
else {
- cout << "<I> AliPHOSGeometry::EmcXtalCoverage : " << opt << " unknown option; result in radian " << endl ;
+ Warning("EmcModuleCoverage", "%s unknown option; result in radian", opt) ;
conv = 1. ;
}
else if ( opt == Degre() )
conv = 180. / TMath::Pi() ;
else {
- cout << "<I> AliPHOSGeometry::EmcXtalCoverage : " << opt << " unknown option; result in radian " << endl ;
+ Warning("EmcXtalCoverage", "%s unknown option; result in radian", opt) ;
conv = 1. ;
}
}
Float_t phi = GetPHOSAngle( tmpPHOS->GetPHOSMod()) ;
- Double_t const kRADDEG = 180.0 / kPI ;
+ Double_t const kRADDEG = 180.0 / TMath::Pi() ;
Float_t rphi = phi / kRADDEG ;
TRotation rot ;
TRotation dummy = rot.Invert() ; // to transform from original frame to rotate frame
gpos.Transform(rot) ; // rotate the baby
+ gmat = 0; // Not implemented yet
}
}
Float_t phi = GetPHOSAngle( tmpPHOS->GetPHOSMod()) ;
- Double_t const kRADDEG = 180.0 / kPI ;
+ Double_t const kRADDEG = 180.0 / TMath::Pi() ;
Float_t rphi = phi / kRADDEG ;
TRotation rot ;
}
}
+Bool_t AliPHOSGeometry::Impact(const TParticle * particle) const
+{
+ Bool_t In=kFALSE;
+ Int_t ModuleNumber=0;
+ Double_t z,x;
+ ImpactOnEmc(particle->Theta(),particle->Phi(),ModuleNumber,z,x);
+ if(ModuleNumber) In=kTRUE;
+ else In=kFALSE;
+ return In;
+}
+
//____________________________________________________________________________
Bool_t AliPHOSGeometry::RelToAbsNumbering(const Int_t * relid, Int_t & AbsId) const
{
pos.SetY(y0) ;
Float_t phi = GetPHOSAngle( phosmodule) ;
- Double_t const kRADDEG = 180.0 / kPI ;
+ Double_t const kRADDEG = 180.0 / TMath::Pi() ;
Float_t rphi = phi / kRADDEG ;
TRotation rot ;
Int_t column = relid[3] ; //offset along z axis
- if ( relid[1] == 0 ) { // its a PbW04 crystal
- x = - ( GetNPhi()/2. - row + 0.5 ) * GetCrystalSize(0) ; // position of Xtal with respect
- z = ( GetNZ() /2. - column + 0.5 ) * GetCrystalSize(2) ; // of center of PHOS module
+ if ( relid[1] == 0 ) { // its a PbW04 crystal
+ x = - ( GetNPhi()/2. - row + 0.5 ) * GetCellStep() ; // position of Xtal with respect
+ z = ( GetNZ() /2. - column + 0.5 ) * GetCellStep() ; // of center of PHOS module
}
else {
x = - ( GetNumberOfCPVPadsPhi()/2. - row - 0.5 ) * GetPadSizePhi() ; // position of pad with respect