]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - FMD/AliFMDReconstructor.cxx
Preliminary files for CMake
[u/mrichter/AliRoot.git] / FMD / AliFMDReconstructor.cxx
index cd2d474ea208f06785f581363747d74903257612..bb1717fa1d9921e00cd7d247b2c735cc9a10b563 100644 (file)
@@ -35,8 +35,6 @@
 // #include <AliLog.h>                        // ALILOG_H
 // #include <AliRun.h>                        // ALIRUN_H
 #include "AliFMDDebug.h"
-// to be removed as soon as we remove it from the base class
-#include "AliRunLoader.h"
 #include "AliFMDGeometry.h"                // ALIFMDGEOMETRY_H
 #include "AliFMDParameters.h"              // ALIFMDPARAMETERS_H
 #include "AliFMDDigit.h"                   // ALIFMDDIGIT_H
@@ -80,6 +78,7 @@ AliFMDReconstructor::AliFMDReconstructor()
   // Make a new FMD reconstructor object - default CTOR.  
   SetNoiseFactor();
   SetAngleCorrect();
+  if (AliDebugLevel() > 0) fDiagnostics = kTRUE;
 }
   
 
@@ -140,7 +139,7 @@ AliFMDReconstructor::~AliFMDReconstructor()
 
 //____________________________________________________________________
 void 
-AliFMDReconstructor::Init(AliRunLoader* /*runLoader*/
+AliFMDReconstructor::Init() 
 {
   // Initialize the reconstructor 
 
@@ -162,6 +161,7 @@ AliFMDReconstructor::Init(AliRunLoader* /*runLoader*/)
   
   // Check if we need diagnostics histograms 
   if (!fDiagnostics) return;
+  AliInfo("Making diagnostics histograms");
   fDiagStep1   = new TH2I("diagStep1", "Read ADC vs. Noise surpressed ADC",
                        1024, -.5, 1023.5, 1024, -.5, 1023.5);
   fDiagStep1->SetDirectory(0);
@@ -224,6 +224,26 @@ AliFMDReconstructor::GetVertex() const
 }
   
 
+//____________________________________________________________________
+void 
+AliFMDReconstructor::Reconstruct(AliRawReader* /*reader*/, TTree*) const
+{
+  // Reconstruct directly from raw data (no intermediate output on
+  // digit tree or rec point tree).  
+  // Parameters: 
+  //   reader  Raw event reader 
+  //   ctree    Not used. 
+  AliError("Method is not used");
+#if 0
+  TClonesArray*   array = new TClonesArray("AliFMDDigit");
+  AliFMDRawReader rawRead(reader, 0);
+  rawRead.ReadAdcs(array);
+  ProcessDigits(array);
+  array->Delete();
+  delete array;
+#endif
+}
+
 //____________________________________________________________________
 void 
 AliFMDReconstructor::Reconstruct(TTree* digitsTree, 
@@ -306,16 +326,18 @@ AliFMDReconstructor::ProcessDigits(TClonesArray* digits) const
                      digit->Strip(), digit->Counts(), counts, edep, mult));
     
     // Create a `RecPoint' on the output branch. 
-    AliFMDRecPoint* m = 
-      new ((*fMult)[fNMult]) AliFMDRecPoint(digit->Detector(), 
-                                           digit->Ring(), 
-                                           digit->Sector(),
-                                           digit->Strip(),
-                                           eta, phi, 
-                                           edep, mult);
-    (void)m; // Suppress warnings about unused variables. 
-    fNMult++;
-
+    if (fMult) {
+      AliFMDRecPoint* m = 
+       new ((*fMult)[fNMult]) AliFMDRecPoint(digit->Detector(), 
+                                             digit->Ring(), 
+                                             digit->Sector(),
+                                             digit->Strip(),
+                                             eta, phi, 
+                                             edep, mult);
+      (void)m; // Suppress warnings about unused variables. 
+      fNMult++;
+    }
+    
     fESDObj->SetMultiplicity(digit->Detector(), digit->Ring(), 
                             digit->Sector(),  digit->Strip(), mult);
     fESDObj->SetEta(digit->Detector(), digit->Ring(), 
@@ -334,8 +356,6 @@ AliFMDReconstructor::SubtractPedestal(AliFMDDigit* digit) const
   // load this to subtract a pedestal that was given in a database or
   // something like that. 
 
-  Int_t             counts = 0;
-  Int_t             adc    = 0;
   AliFMDParameters* param  = AliFMDParameters::Instance();
   Float_t           ped    = param->GetPedestal(digit->Detector(), 
                                                digit->Ring(), 
@@ -347,10 +367,11 @@ AliFMDReconstructor::SubtractPedestal(AliFMDDigit* digit) const
                                                     digit->Strip());
   AliFMDDebug(15, ("Subtracting pedestal %f from signal %d", 
                   ped, digit->Counts()));
-  if (digit->Count3() > 0)      adc = digit->Count3();
-  else if (digit->Count2() > 0) adc = digit->Count2();
-  else                          adc = digit->Count1();
-  counts = TMath::Max(Int_t(adc - ped), 0);
+  // if (digit->Count3() > 0)      adc = digit->Count3();
+  // else if (digit->Count2() > 0) adc = digit->Count2();
+  // else                          adc = digit->Count1();
+  Int_t adc    = digit->Counts();
+  Int_t counts = TMath::Max(Int_t(adc - ped), 0);
   if (counts < noise * fNoiseFactor) counts = 0;
   if (counts > 0) AliFMDDebug(15, ("Got a hit strip"));
   if (fDiagStep1) fDiagStep1->Fill(adc, counts);
@@ -474,9 +495,12 @@ AliFMDReconstructor::FillESD(TTree*  /* digitsTree */,
 
   if (!fDiagnostics || !esd) return;
   static bool first = true;
-  Int_t evno = esd->GetEventNumberInFile(); // This is most likely NOT the event number you'd like to use. It has nothing to do with the 'real' event number.
-  AliFMDDebug(1, ("Writing diagnostics histograms to FMD.Diag.root/%03d",
-                  evno));
+  // This is most likely NOT the event number you'd like to use. It
+  // has nothing to do with the 'real' event number. 
+  // - That's OK.  We just use it for the name of the directory -
+  // nothing else.  Christian
+  Int_t evno = esd->GetEventNumberInFile(); 
+  AliFMDDebug(1, ("Writing diagnostics histograms to FMD.Diag.root/%03d",evno));
   TFile f("FMD.Diag.root", (first ? "RECREATE" : "UPDATE"));
   first = false;
   f.cd(); 
@@ -499,60 +523,13 @@ AliFMDReconstructor::FillESD(TTree*  /* digitsTree */,
   if (fDiagAll)   fDiagAll->Reset();
 }
 
-
-//____________________________________________________________________
-void 
-AliFMDReconstructor::Reconstruct(AliRawReader*,TTree*) const 
-{
-  // Cannot be used.  See member function with same name but with 2
-  // TTree arguments.   Make sure you do local reconstrucion 
-  AliFMDDebug(2, ("Calling FillESD with loader and tree"));
-  AliError("MayNotUse");
-}
-//____________________________________________________________________
-void 
-AliFMDReconstructor::Reconstruct(AliRunLoader*) const 
-{
-  // Cannot be used.  See member function with same name but with 2
-  // TTree arguments.   Make sure you do local reconstrucion 
-  AliFMDDebug(2, ("Calling FillESD with loader"));
-  AliError("MayNotUse");
-}
 //____________________________________________________________________
-void 
-AliFMDReconstructor::Reconstruct(AliRunLoader*, AliRawReader*) const 
-{
-  // Cannot be used.  See member function with same name but with 2
-  // TTree arguments.   Make sure you do local reconstrucion 
-  AliFMDDebug(2, ("Calling FillESD with loader and raw reader"));
-  AliError("MayNotUse");
-}
-//____________________________________________________________________
-void 
-AliFMDReconstructor::FillESD(AliRawReader*,TTree*,AliESDEvent*) const 
-{
-  // Cannot be used.  See member function with same name but with 2
-  // TTree arguments.   Make sure you do local reconstrucion 
-  AliFMDDebug(2, ("Calling FillESD with raw reader, tree, and ESD"));
-  AliError("MayNotUse");
-}
-//____________________________________________________________________
-void 
-AliFMDReconstructor::FillESD(AliRunLoader*,AliESDEvent*) const
-{
-  // Cannot be used.  See member function with same name but with 2
-  // TTree arguments.   Make sure you do local reconstrucion 
-  AliFMDDebug(2, ("Calling FillESD with loader and ESD"));
-  AliError("MayNotUse");
-}
-//____________________________________________________________________
-void 
-AliFMDReconstructor::FillESD(AliRunLoader*,AliRawReader*,AliESDEvent*) const 
+void
+AliFMDReconstructor::FillESD(AliRawReader*, TTree* clusterTree, 
+                            AliESDEvent* esd) const
 {
-  // Cannot be used.  See member function with same name but with 2
-  // TTree arguments.   Make sure you do local reconstrucion 
-  AliFMDDebug(2, ("Calling FillESD with loader, raw reader, and ESD"));
-  AliError("MayNotUse");
+  TTree* dummy = 0;
+  FillESD(dummy, clusterTree, esd);
 }
 
 //____________________________________________________________________