]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - FMD/AliFMDBaseDigitizer.cxx
Redmer Bertens: small update of AddTaskJetFlow.C macro
[u/mrichter/AliRoot.git] / FMD / AliFMDBaseDigitizer.cxx
index cf88ee26b44993ad74500506beb2e403705014b5..7dcf7e416decb52782dd8768b4ce09d451f01a34 100644 (file)
 #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
@@ -231,23 +231,22 @@ AliFMDBaseDigitizer::AliFMDBaseDigitizer()
          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"));
@@ -260,12 +259,10 @@ AliFMDBaseDigitizer::AliFMDBaseDigitizer(const Char_t* name,
   : 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"));
@@ -278,6 +275,26 @@ AliFMDBaseDigitizer::~AliFMDBaseDigitizer()
   // 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()
@@ -380,6 +397,7 @@ AliFMDBaseDigitizer::DigitizeHits() const
   // the digits array (AliFMD::fDigits)
   //
   AliFMDDebug(5, ("Will now digitize all the summed signals"));
+  fIgnoredLabels = 0;
   AliFMDGeometry* geometry = AliFMDGeometry::Instance();
   
   TArrayI counts(4);
@@ -459,6 +477,10 @@ AliFMDBaseDigitizer::DigitizeHits() const
       } // 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));
 }
 
 //____________________________________________________________________
@@ -574,6 +596,7 @@ AliFMDBaseDigitizer::AddDigit(UShort_t        detector,
   fFMD->AddDigitByFields(detector, ring, sector, strip, 
                         count1, count2, count3, count4, 
                         ntot, fStoreTrackRefs ? refs.fArray : 0);
+  if (fStoreTrackRefs && ntot > 3) fIgnoredLabels += ntot - 3;
 }
 
 //____________________________________________________________________
@@ -600,7 +623,7 @@ AliFMDBaseDigitizer::MakeOutputTree(AliLoader* loader)
 
 //____________________________________________________________________
 void
-AliFMDBaseDigitizer::StoreDigits(AliLoader* loader)
+AliFMDBaseDigitizer::StoreDigits(const AliLoader* loader)
 {
   // Write the digits to disk 
   AliFMDDebug(5, ("Storing %d digits",   fFMD->Digits()->GetEntries()));