// These files are not in the same directory, so there's no reason to
// ask the preprocessor to search in the current directory for these
// files by including them with `#include "..."'
-// #include <math.h> // __CMATH__
+#include <cmath> // __CMATH__
#include <TClonesArray.h> // ROOT_TClonesArray
#include <TGeometry.h> // ROOT_TGeomtry
#include <TNode.h> // ROOT_TNode
#include <TTUBE.h> // ROOT_TTUBE
#include <TTree.h> // ROOT_TTree
#include <TBrowser.h> // ROOT_TBrowser
-// #include <TVirtualMC.h> // ROOT_TVirtualMC
+#include <TVirtualMC.h> // ROOT_TVirtualMC
#include <TVector2.h> // ROOT_TVector2
#include <TGeoManager.h> // ROOT_TGeoManager
#include <AliRun.h> // ALIRUN_H
#include <AliMC.h> // ALIMC_H
#include <AliMagF.h> // ALIMAGF_H
-#include <AliLog.h> // ALILOG_H
+// #include <AliLog.h> // ALILOG_H
+#include "AliFMDDebug.h" // Better debug macros
#include "AliFMD.h" // ALIFMD_H
#include "AliFMDDigit.h" // ALIFMDDIGIT_H
#include "AliFMDSDigit.h" // ALIFMDSDIGIT_H
//
// Default constructor for class AliFMD
//
- AliDebug(10, "\tDefault CTOR");
+ AliFMDDebug(10, ("\tDefault CTOR"));
fHits = 0;
fDigits = 0;
fIshunt = 0;
//
// Standard constructor for Forward Multiplicity Detector
//
- AliDebug(10, "\tStandard CTOR");
+ AliFMDDebug(10, ("\tStandard CTOR"));
fBad = new TClonesArray("AliFMDHit");
// Initialise Hit array
// TGeoManager, and registers the mediums here. Alas, it's not
// really that easy.
//
- AliDebug(10, "\tCreating materials");
+ AliFMDDebug(10, ("\tCreating materials"));
// Get pointer to geometry singleton object.
AliFMDGeometry* geometry = AliFMDGeometry::Instance();
geometry->Init();
{
// Initialize the detector
//
- AliDebug(1, "Initialising FMD detector object");
- // AliFMDGeometry* fmd = AliFMDGeometry::Instance();
+ AliFMDDebug(1, ("Initialising FMD detector object"));
+ TVirtualMC* mc = TVirtualMC::GetMC();
+ AliFMDGeometry* fmd = AliFMDGeometry::Instance();
+ const TArrayI& actGeo = fmd->ActiveIds();
+ TArrayI actVmc(actGeo.fN);
+ for (Int_t i = 0; i < actGeo.fN; i++) {
+ TGeoVolume *sens = gGeoManager->GetVolume(actGeo[i]);
+ if (!sens) {
+ AliError(Form("No TGeo volume for sensitive volume ID=%d",actGeo[i]));
+ continue;
+ }
+ actVmc[i] = mc->VolId(sens->GetName());
+ AliFMDDebug(1, ("Active vol id # %d: %d changed to %d",
+ i, actGeo[i], actVmc[i]));
+ }
+ fmd->SetActive(actVmc.fArray, actVmc.fN);
// fmd->InitTransformations();
}
//
// Build simple ROOT TNode geometry for event display. With the new
// geometry modeller, TGeoManager, this seems rather redundant.
- AliDebug(10, "\tCreating a simplified geometry");
+ AliFMDDebug(10, ("\tCreating a simplified geometry"));
AliFMDGeometry* fmd = AliFMDGeometry::Instance();
{
// Draw a shaded view of the Forward multiplicity detector. This
// isn't really useful anymore.
- AliDebug(10, "\tDraw detector");
+ AliFMDDebug(10, ("\tDraw detector"));
}
//____________________________________________________________________
&& hit->Sector() == sector
&& hit->Strip() == strip
&& hit->Track() == track) {
- AliDebug(1, Form("already had a hit in FMD%d%c[%2d,%3d] for track # %d,"
+ AliFMDDebug(1, ("already had a hit in FMD%d%c[%2d,%3d] for track # %d,"
" adding energy (%f) to that hit (%f) -> %f",
detector, ring, sector, strip, track, edep, hit->Edep(),
hit->Edep() + edep));
new (a[fNdigits++])
AliFMDDigit(detector, ring, sector, strip, count1, count2, count3);
+ AliFMDDebug(15, ("Adding digit # %5d/%5d for FMD%d%c[%2d,%3d]=(%d,%d,%d)",
+ fNdigits-1, a.GetEntriesFast(),
+ detector, ring, sector, strip, count1, count2, count3));
+
}
//____________________________________________________________________
{
// Browse this object.
//
- AliDebug(30, "\tBrowsing the FMD");
+ AliFMDDebug(30, ("\tBrowsing the FMD"));
AliDetector::Browse(b);
b->Add(AliFMDGeometry::Instance());
}