#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));
UShort_t(digits[3]), // Strip #
UShort_t(digits[4]), // ADC Count1
Short_t(digits[5]), // ADC Count2
- Short_t(digits[6])); // ADC Count3
+ Short_t(digits[6]), // ADC Count3
+ Short_t(digits[7]));
}
//____________________________________________________________________
UShort_t strip,
UShort_t count1,
Short_t count2,
- Short_t count3)
+ Short_t count3,
+ Short_t count4)
{
// add a real digit - as coming from data
//
TClonesArray& a = *(DigitsArray());
new (a[fNdigits++])
- AliFMDDigit(detector, ring, sector, strip, count1, count2, count3);
+ AliFMDDigit(detector, ring, sector, strip, count1, count2, count3, count4);
+ AliFMDDebug(15, ("Adding digit # %5d/%5d for FMD%d%c[%2d,%3d]=(%d,%d,%d,%d)",
+ fNdigits-1, a.GetEntriesFast(),
+ detector, ring, sector, strip,
+ count1, count2, count3, count4));
+
}
//____________________________________________________________________
Float_t(digits[4]), // Edep
UShort_t(digits[5]), // ADC Count1
Short_t(digits[6]), // ADC Count2
- Short_t(digits[7])); // ADC Count3
+ Short_t(digits[7]), // ADC Count3
+ Short_t(digits[8]));
}
//____________________________________________________________________
Float_t edep,
UShort_t count1,
Short_t count2,
- Short_t count3)
+ Short_t count3,
+ Short_t count4)
{
// add a summable digit
//
TClonesArray& a = *(SDigitsArray());
new (a[fNsdigits++])
- AliFMDSDigit(detector, ring, sector, strip, edep, count1, count2, count3);
+ AliFMDSDigit(detector, ring, sector, strip, edep,
+ count1, count2, count3, count4);
}
//____________________________________________________________________
{
// Browse this object.
//
- AliDebug(30, "\tBrowsing the FMD");
+ AliFMDDebug(30, ("\tBrowsing the FMD"));
AliDetector::Browse(b);
b->Add(AliFMDGeometry::Instance());
}