// andreas.morsch@cern.ch //
///////////////////////////////////////////////////////////////////////////////
-#include <TVirtualMC.h>
#include <TClonesArray.h>
+#include <TGeoCompositeShape.h>
+#include <TGeoGlobalMagField.h>
+#include <TGeoManager.h>
#include <TGeoMaterial.h>
-#include <TGeoMedium.h>
-#include <TGeoVolume.h>
#include <TGeoMatrix.h>
+#include <TGeoMedium.h>
#include <TGeoPgon.h>
+#include <TGeoVolume.h>
#include <TGeoXtru.h>
-#include <TGeoCompositeShape.h>
-#include <TGeoManager.h>
+#include <TVirtualMC.h>
#include "AliBCM.h"
#include "AliBCMHit.h"
+#include "AliBCMLoader.h"
#include "AliMagF.h"
#include "AliRun.h"
#include "AliMC.h"
//
static Float_t edepT;
- static Double_t xh[3] = {0., 0., 0.};
+ static Double_t xh[4] = {0., 0., 0., 0.};
Float_t edep = 0.;
Int_t copy = -1;
- if (gMC->TrackCharge() &&
- gMC->CurrentVolID(copy) == fVolId) {
+ if (TVirtualMC::GetMC()->TrackCharge() &&
+ TVirtualMC::GetMC()->CurrentVolID(copy) == fVolId) {
// Charged particle inside sensitive volume
//
// Entering
- if (gMC->IsTrackEntering()) {
+ if (TVirtualMC::GetMC()->IsTrackEntering()) {
edepT = 0.;
- gMC->TrackPosition(xh[0],xh[1],xh[2]);
+ TVirtualMC::GetMC()->TrackPosition(xh[0],xh[1],xh[2]);
+ xh[3] = TVirtualMC::GetMC()->TrackTime();
}
//
// Any step
- if ((edep = gMC->Edep()) > 0.) {
+ if ((edep = TVirtualMC::GetMC()->Edep()) > 0.) {
Double_t x[3];
- gMC->TrackPosition(x[0],x[1],x[2]);
+ TVirtualMC::GetMC()->TrackPosition(x[0],x[1],x[2]);
edepT += edep;
}
//
// Exiting
- if(gMC->IsTrackExiting()||gMC->IsTrackStop()||gMC->IsTrackDisappeared())
+ if(TVirtualMC::GetMC()->IsTrackExiting()||TVirtualMC::GetMC()->IsTrackStop()||TVirtualMC::GetMC()->IsTrackDisappeared())
{
Int_t track = gAlice->GetMCApp()->GetCurrentTrackNumber();
TClonesArray &lhits = *fHits;
Float_t tmaxfd = -20. ; // Maximum angle due to field deflection
Float_t deemax = -.01; // Maximum fractional energy loss, DLS
Float_t stmin = -.8;
- Int_t isxfld = gAlice->Field()->Integ();
- Float_t sxmgmx = gAlice->Field()->Max();
+ Int_t isxfld = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ();
+ Float_t sxmgmx = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max();
AliMaterial(1, "PCD", 12.011, 6., rho, radl, absl);
//
//
// Here the BCM initialisation code (if any!)
- fVolId = gMC->VolId("BCMpcd");
+ fVolId = TVirtualMC::GetMC()->VolId("BCMpcd");
}
void AliBCM::MakeBranch(Option_t* option)
// const char *cR = strstr(option,"R");
// const char *cS = strstr(option,"S");
- if(cH && TreeH() && (fHits == 0x0)){
+ if(cH && fLoader->TreeH() && (fHits == 0x0)){
fHits = new TClonesArray("AliBCMHit");
fNhits = 0;
- MakeBranchInTree(TreeH(), "BCM" ,&fHits ,kBufSize, 0);
+ MakeBranchInTree(fLoader->TreeH(), "BCM" ,&fHits ,kBufSize, 0);
}
AliDetector::MakeBranch(option);
}
{
// Set branch address
- if (TreeH() && fHits==0x0)
+ if (fLoader->TreeH() && fHits==0x0)
fHits = new TClonesArray("AliBCMHit", 4000);
AliDetector::SetTreeAddress();
}
+
+//_____________________________________________________________________________
+AliLoader* AliBCM::MakeLoader(const char* topfoldername)
+{
+ //
+ // Builds BCM getter (AliLoader type)
+ AliDebug(1,Form("Creating AliBCMLoader, Top folder is %s ",topfoldername));
+ fLoader = new AliBCMLoader(GetName(),topfoldername);
+ return fLoader;
+}