//#include <TTree.h>
#include <TClonesArray.h>
#include <TVirtualMC.h>
+#include <TTree.h>
// --- Standard library ---
#include "AliPHOSImpact.h"
#include "AliPHOSvImpacts.h"
#include "AliRun.h"
+#include "AliLoader.h"
#include "AliMC.h"
#include "AliLog.h"
//____________________________________________________________________________
AliPHOSvImpacts::AliPHOSvImpacts():
- fEMCImpacts(0),
- fCPVImpacts(0),
- fPPSDImpacts(0)
+ fEMCImpacts(new TList),
+ fCPVImpacts(new TList),
+ fPPSDImpacts(new TList),
+ fNEMCImpacts(),
+ fNCPVImpacts(),
+ fNPPSDImpacts()
{
// ctor
}
AliPHOSv1(name,title),
fEMCImpacts(new TList),
fCPVImpacts(new TList),
- fPPSDImpacts(0)
+ fPPSDImpacts(0),
+ fNEMCImpacts(),
+ fNCPVImpacts(),
+ fNPPSDImpacts()
{
// ctor : title is used to identify the layout
//
nImpacts= fNCPVImpacts[module];
fNCPVImpacts[module]++ ;
}
+ else
+ AliFatal(Form("Wrong PHOS configuration: det=%s",det));
new((*impacts)[nImpacts]) AliPHOSImpact(shunt,primary,track,pid,p,xyz) ;
AliDebugClass(1,Form("Module %d %s: ",module,det));
if (AliLog::GetGlobalDebugLevel()>0)
- (dynamic_cast<AliPHOSImpact*>((impacts->At(nImpacts))))->Print();
+ (static_cast<AliPHOSImpact*>((impacts->At(nImpacts))))->Print();
}
//____________________________________________________________________________
Int_t i;
for (i=0; i<GetGeometry()->GetNModules(); i++) {
- (dynamic_cast<TClonesArray*>(fEMCImpacts->At(i))) -> Clear();
+ (static_cast<TClonesArray*>(fEMCImpacts->At(i))) -> Clear();
fNEMCImpacts[i] = 0 ;
}
for (i=0; i<GetGeometry()->GetNModules(); i++) {
- (dynamic_cast<TClonesArray*>(fCPVImpacts->At(i))) -> Clear();
+ (static_cast<TClonesArray*>(fCPVImpacts->At(i))) -> Clear();
fNCPVImpacts[i] = 0 ;
}
// Add impact to EMC
- static Int_t idPXTL = gMC->VolId("PXTL");
- if( gMC->CurrentVolID(copy) == idPXTL &&
- gMC->IsTrackEntering() ) {
- gMC->TrackMomentum(pmom);
- gMC->TrackPosition(pos) ;
+ static Int_t idPXTL = TVirtualMC::GetMC()->VolId("PXTL");
+ if( TVirtualMC::GetMC()->CurrentVolID(copy) == idPXTL &&
+ TVirtualMC::GetMC()->IsTrackEntering() ) {
+ TVirtualMC::GetMC()->TrackMomentum(pmom);
+ TVirtualMC::GetMC()->TrackPosition(pos) ;
Int_t i;
for (i=0; i<3; i++) xyzm[i] = pos[i];
xyzm[i] = pos[i] ;
pm[i] = pmom[i];
}
- gMC -> Gmtod (xyzm, xyzd, 1); // transform coordinate from master to daughter system
- gMC -> Gmtod (pm, pd, 2); // transform 3-momentum from master to daughter system
+ TVirtualMC::GetMC() -> Gmtod (xyzm, xyzd, 1); // transform coordinate from master to daughter system
+ TVirtualMC::GetMC() -> Gmtod (pm, pd, 2); // transform 3-momentum from master to daughter system
// Select tracks coming to the crystal from up or down sides
if ((pd[1]<0 && xyzd[1] > GetGeometry()->GetCrystalSize(1)/2-0.1) ||
(pd[1]>0 && xyzd[1] < -GetGeometry()->GetCrystalSize(1)/2+0.1)) {
// Select tracks coming to the crystal from up or down sides
- Int_t pid = gMC->TrackPid();
+ Int_t pid = TVirtualMC::GetMC()->TrackPid();
Int_t module;
- gMC->CurrentVolOffID(10,module);
+ TVirtualMC::GetMC()->CurrentVolOffID(10,module);
module--;
AddImpact("EMC ",fIshunt, primary,tracknumber, module, pid, pmom, xyzm);
}
// Add impact to CPV
- static Int_t idPCPQ = gMC->VolId("PCPQ");
- if( gMC->CurrentVolID(copy) == idPCPQ &&
- gMC->IsTrackEntering() ) {
- gMC->TrackMomentum(pmom);
- gMC->TrackPosition(pos) ;
+ static Int_t idPCPQ = TVirtualMC::GetMC()->VolId("PCPQ");
+ if( TVirtualMC::GetMC()->CurrentVolID(copy) == idPCPQ &&
+ TVirtualMC::GetMC()->IsTrackEntering() ) {
+ TVirtualMC::GetMC()->TrackMomentum(pmom);
+ TVirtualMC::GetMC()->TrackPosition(pos) ;
Int_t i;
for (i=0; i<3; i++) xyzm[i] = pos[i];
xyzm[i] = pos[i] ;
pm[i] = pmom[i];
}
- Int_t pid = gMC->TrackPid();
+ Int_t pid = TVirtualMC::GetMC()->TrackPid();
Int_t module;
- gMC->CurrentVolOffID(3,module);
+ TVirtualMC::GetMC()->CurrentVolOffID(3,module);
module--;
AddImpact("CPV ",fIshunt, primary,tracknumber, module, pid, pmom, xyzm);
}