#include "AliFMDHit.h" // ALIFMDHIT_H
// #include "AliFMDDigit.h" // ALIFMDDIGIT_H
#include "AliFMDParameters.h" // ALIFMDPARAMETERS_H
-// #include <AliRunDigitizer.h> // ALIRUNDIGITIZER_H
+// #include <AliDigitizationInput.h> // ALIRUNDIGITIZER_H
//#include <AliRun.h> // ALIRUN_H
#include <AliLoader.h> // ALILOADER_H
#include <AliRun.h> // ALILOADER_H
AliFMDMap::kMaxSectors,
AliFMDMap::kMaxStrips),
fShapingTime(6),
- fStoreTrackRefs(kTRUE)
+ fStoreTrackRefs(kTRUE),
+ fIgnoredLabels(0)
{
AliFMDDebug(1, ("Constructed"));
// Default ctor - don't use it
}
//____________________________________________________________________
-AliFMDBaseDigitizer::AliFMDBaseDigitizer(AliRunDigitizer* manager)
- : AliDigitizer(manager, "AliFMDBaseDigitizer", "FMD Digitizer base class"),
+AliFMDBaseDigitizer::AliFMDBaseDigitizer(AliDigitizationInput* digInput)
+ : AliDigitizer(digInput, "AliFMDBaseDigitizer", "FMD Digitizer base class"),
fFMD(0),
fRunLoader(0),
- fEdep(AliFMDMap::kMaxDetectors,
- AliFMDMap::kMaxRings,
- AliFMDMap::kMaxSectors,
- AliFMDMap::kMaxStrips),
+ fEdep(0), // nDet==0 means 51200 slots
fShapingTime(6),
- fStoreTrackRefs(kTRUE)
+ fStoreTrackRefs(kTRUE),
+ fIgnoredLabels(0)
{
// Normal CTOR
AliFMDDebug(1, ("Constructed"));
: AliDigitizer(name, title),
fFMD(0),
fRunLoader(0),
- fEdep(AliFMDMap::kMaxDetectors,
- AliFMDMap::kMaxRings,
- AliFMDMap::kMaxSectors,
- AliFMDMap::kMaxStrips),
+ fEdep(0), // nDet==0 means 51200 slots
fShapingTime(6),
- fStoreTrackRefs(kTRUE)
+ fStoreTrackRefs(kTRUE),
+ fIgnoredLabels(0)
{
// Normal CTOR
AliFMDDebug(1, (" Constructed"));
// Destructor
}
+//____________________________________________________________________
+AliFMDBaseDigitizer&
+AliFMDBaseDigitizer::operator=(const AliFMDBaseDigitizer& o)
+{
+ //
+ // Assignment operator
+ //
+ // Return:
+ // Reference to this object
+ //
+ if (&o == this) return *this;
+ AliDigitizer::operator=(o);
+ fRunLoader = o.fRunLoader;
+ fEdep = o.fEdep;
+ fShapingTime = o.fShapingTime;
+ fStoreTrackRefs = o.fStoreTrackRefs;
+ fIgnoredLabels = o.fIgnoredLabels;
+ return *this;
+}
+
//____________________________________________________________________
Bool_t
AliFMDBaseDigitizer::Init()
// the digits array (AliFMD::fDigits)
//
AliFMDDebug(5, ("Will now digitize all the summed signals"));
+ fIgnoredLabels = 0;
AliFMDGeometry* geometry = AliFMDGeometry::Instance();
TArrayI counts(4);
} // Sector
} // Ring
} // Detector
+ if (fIgnoredLabels > 0)
+ AliWarning(Form("%d track labels could not be associated with digits "
+ "due to limited storage facilities in AliDigit",
+ fIgnoredLabels));
}
//____________________________________________________________________
fFMD->AddDigitByFields(detector, ring, sector, strip,
count1, count2, count3, count4,
ntot, fStoreTrackRefs ? refs.fArray : 0);
+ if (fStoreTrackRefs && ntot > 3) fIgnoredLabels += ntot - 3;
}
//____________________________________________________________________
//____________________________________________________________________
void
-AliFMDBaseDigitizer::StoreDigits(AliLoader* loader)
+AliFMDBaseDigitizer::StoreDigits(const AliLoader* loader)
{
// Write the digits to disk
AliFMDDebug(5, ("Storing %d digits", fFMD->Digits()->GetEntries()));