]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - FMD/AliFMD.cxx
Fix warnings as requested by Federico
[u/mrichter/AliRoot.git] / FMD / AliFMD.cxx
index 37a28200b661d9d556bad067a0f94ee9624e4237..437fcf52bf24b6b8a4db29d74e25e8ef57cbb96f 100644 (file)
@@ -430,6 +430,60 @@ void AliFMD::CreateMaterials()
 
 }
 
+#if 0
+//____________________________________________________________________
+void  
+AliFMD::SetTrackingParameters(Int_t imed, 
+                             Float_t gamma,                 
+                             Float_t electron, 
+                             Float_t neutral_hadron, 
+                             Float_t charged_hadron, 
+                             Float_t muon,
+                             Float_t electron_bremstrahlung, 
+                             Float_t muon__bremstrahlung, 
+                             Float_t electron_delta,
+                             Float_t muon_delta,
+                             Float_t muon_pair,
+                             Int_t   annihilation, 
+                             Int_t   bremstrahlung, 
+                             Int_t   compton_scattering, 
+                             Int_t   decay,
+                             Int_t   delta_ray, 
+                             Int_t   hadronic, 
+                             Int_t   energy_loss, 
+                             Int_t   multiple_scattering, 
+                             Int_t   pair_production, 
+                             Int_t   photon_production, 
+                             Int_t   rayleigh_scattering)
+{
+  // Disabled by request of FCA, kept for reference only
+  if (!gMC) return;
+  TArrayI& idtmed = *(GetIdtmed());
+  Int_t    iimed  = idtmed[imed];
+  // gMC->Gstpar(iimed, "CUTGAM",      gamma);
+  // gMC->Gstpar(iimed, "CUTELE",      electron);
+  // gMC->Gstpar(iimed, "CUTNEU",      neutral_hadron);
+  // gMC->Gstpar(iimed, "CUTHAD",      charged_hadron);
+  // gMC->Gstpar(iimed, "CUTMUO",      muon);
+  // gMC->Gstpar(iimed, "BCUTE",       electron_bremstrahlung);
+  // gMC->Gstpar(iimed, "BCUTM",       muon__bremstrahlung);
+  // gMC->Gstpar(iimed, "DCUTE",       electron_delta);
+  // gMC->Gstpar(iimed, "DCUTM",       muon_delta);
+  // gMC->Gstpar(iimed, "PPCUTM",      muon_pair);
+  // gMC->Gstpar(iimed, "ANNI",        Float_t(annihilation));
+  // gMC->Gstpar(iimed, "BREM",        Float_t(bremstrahlung));
+  // gMC->Gstpar(iimed, "COMP",        Float_t(compton_scattering));
+  // gMC->Gstpar(iimed, "DCAY",        Float_t(decay));
+  // gMC->Gstpar(iimed, "DRAY",        Float_t(delta_ray));
+  // gMC->Gstpar(iimed, "HADR",        Float_t(hadronic));
+  // gMC->Gstpar(iimed, "LOSS",        Float_t(energy_loss));
+  // gMC->Gstpar(iimed, "MULS",        Float_t(multiple_scattering));
+  // gMC->Gstpar(iimed, "PAIR",        Float_t(pair_production));
+  // gMC->Gstpar(iimed, "PHOT",        Float_t(photon_production));
+  // gMC->Gstpar(iimed, "RAYL",        Float_t(rayleigh_scattering));
+}
+#endif
+
 //____________________________________________________________________
 void  
 AliFMD::Init()
@@ -439,9 +493,28 @@ AliFMD::Init()
   AliFMDDebug(1, ("Initialising FMD detector object"));
   TVirtualMC*      mc     = TVirtualMC::GetMC();
   AliFMDGeometry*  fmd    = AliFMDGeometry::Instance();
-  const TArrayI&   actGeo = fmd->ActiveIds();
+  TArrayI          actGeo = fmd->ActiveIds();
+  bool             valid  = true;
+  if (actGeo.fN <= 0) valid = false;
+  else { 
+    for (int i = 0; i < actGeo.fN; i++) {
+      if (actGeo[i] < 0) { 
+       valid = false;
+       break;
+      }
+    }
+  }
+  if (!valid) { 
+    AliFMDDebug(1, ("Extracting geometry info from loaded geometry"));
+    fmd->ExtractGeomInfo();
+    actGeo = fmd->ActiveIds();
+  }
   TArrayI          actVmc(actGeo.fN);
   for (Int_t i = 0; i < actGeo.fN; i++) {
+    if (actGeo[i] < 0) { 
+      AliError(Form("Invalid id: %d", actGeo[i]));
+      continue;
+    }
     TGeoVolume *sens = gGeoManager->GetVolume(actGeo[i]);
     if (!sens) {
       AliError(Form("No TGeo volume for sensitive volume ID=%d",actGeo[i]));
@@ -464,7 +537,7 @@ AliFMD::FinishEvent()
   // 
   if (AliLog::GetDebugLevel("FMD", "AliFMD") < 10) return;
   if (fBad && fBad->GetEntries() > 0) {
-    AliWarning((Form("EndEvent", "got %d 'bad' hits", fBad->GetEntries())));
+    AliWarning(Form("got %d 'bad' hits", fBad->GetEntries()));
     TIter next(fBad);
     AliFMDHit* hit;
     while ((hit = static_cast<AliFMDHit*>(next()))) hit->Print("D");
@@ -708,7 +781,8 @@ AliFMD::AddDigitByFields(UShort_t       detector,
                         Short_t        count2,
                         Short_t        count3, 
                         Short_t        count4,
-                        const TArrayI& refs)
+                        UShort_t       nrefs,
+                        Int_t*         refs)
 {
   // add a real digit - as coming from data
   // 
@@ -723,14 +797,14 @@ AliFMD::AddDigitByFields(UShort_t       detector,
   //    count3    ADC count (a 10-bit word), or -1 if not used
   TClonesArray& a = *(DigitsArray());
   
-  new (a[fNdigits++]) 
-    AliFMDDigit(detector, ring, sector, strip, 
-               count1, count2, count3, count4, refs);
   AliFMDDebug(15, ("Adding digit # %5d/%5d for FMD%d%c[%2d,%3d]"
                   "=(%d,%d,%d,%d) with %d tracks",
                   fNdigits-1, a.GetEntriesFast(),
                   detector, ring, sector, strip, 
-                  count1, count2, count3, count4, refs.fN));
+                  count1, count2, count3, count4, nrefs));
+  new (a[fNdigits++]) 
+    AliFMDDigit(detector, ring, sector, strip, 
+               count1, count2, count3, count4, nrefs, refs);
   
 }
 
@@ -777,7 +851,7 @@ AliFMD::AddSDigitByFields(UShort_t       detector,
                          Short_t        count4, 
                          UShort_t       ntot, 
                          UShort_t       nprim,
-                         const TArrayI& refs)
+                         Int_t*         refs)
 {
   // add a summable digit
   // 
@@ -795,6 +869,11 @@ AliFMD::AddSDigitByFields(UShort_t       detector,
   TClonesArray& a = *(SDigitsArray());
   // AliFMDDebug(0, ("Adding sdigit # %d", fNsdigits));
   
+  AliFMDDebug(15, ("Adding sdigit # %5d/%5d for FMD%d%c[%2d,%3d]"
+                  "=(%d,%d,%d,%d) with %d tracks %d primaries (%p)",
+                  fNsdigits-1, a.GetEntriesFast(),
+                  detector, ring, sector, strip, 
+                  count1, count2, count3, count4, ntot, nprim, refs));
   new (a[fNsdigits++]) 
     AliFMDSDigit(detector, ring, sector, strip, edep, 
                 count1, count2, count3, count4, ntot, nprim, refs);