* about the suitability of this software for any purpose. It is *
* provided "as is" without express or implied warranty. *
**************************************************************************/
-
/* $Id$ */
-
+/** @file AliFMDReconstructor.cxx
+ @author Christian Holm Christensen <cholm@nbi.dk>
+ @date Mon Mar 27 12:47:09 2006
+ @brief FMD reconstruction
+*/
//____________________________________________________________________
//
-// This is a class that constructs AliFMDMult (reconstructed
-// multiplicity) from of Digits
-//
-// This class reads either digits from a TClonesArray or raw data from
+// This is a class that constructs AliFMDRecPoint objects from of Digits
+// This class reads either digits from a TClonesArray or raw data from
// a DDL file (or similar), and stores the read ADC counts in an
-// internal cache (fAdcs).
+// internal cache (fAdcs). The rec-points are made via the naiive
+// method.
//
//-- Authors: Evgeny Karpechev(INR) and Alla Maevsksia
// Latest changes by Christian Holm Christensen <cholm@nbi.dk>
//____________________________________________________________________
#include <AliLog.h> // ALILOG_H
-#include <AliRun.h> // ALIRUN_H
+// #include <AliRun.h> // ALIRUN_H
#include <AliRunLoader.h> // ALIRUNLOADER_H
-#include <AliLoader.h> // ALILOADER_H
#include <AliHeader.h> // ALIHEADER_H
-#include <AliRawReader.h> // ALIRAWREADER_H
#include <AliGenEventHeader.h> // ALIGENEVENTHEADER_H
-#include "AliFMD.h" // ALIFMD_H
#include "AliFMDGeometry.h" // ALIFMDGEOMETRY_H
#include "AliFMDParameters.h" // ALIFMDPARAMETERS_H
-#include "AliFMDDetector.h" // ALIFMDDETECTOR_H
-#include "AliFMDRing.h" // ALIFMDRING_H
#include "AliFMDDigit.h" // ALIFMDDIGIT_H
#include "AliFMDReconstructor.h" // ALIFMDRECONSTRUCTOR_H
-#include "AliFMDRawStream.h" // ALIFMDRAWSTREAM_H
#include "AliFMDRawReader.h" // ALIFMDRAWREADER_H
#include "AliFMDRecPoint.h" // ALIFMDMULTNAIIVE_H
#include "AliESD.h" // ALIESD_H
#include <AliESDFMD.h> // ALIESDFMD_H
-#include <TFile.h>
+class AliRawReader;
//____________________________________________________________________
ClassImp(AliFMDReconstructor)
// Initialize the reconstructor
AliDebug(1, Form("Init called with runloader 0x%x", runLoader));
// Initialize the geometry
- AliFMDGeometry* fmd = AliFMDGeometry::Instance();
- fmd->Init();
- fmd->InitTransformations();
+ AliFMDGeometry* geom = AliFMDGeometry::Instance();
+ geom->Init();
+ geom->InitTransformations();
+
+ // Initialize the parameters
+ AliFMDParameters* param = AliFMDParameters::Instance();
+ param->Init();
// Current vertex position
fCurrentVertex = 0;
AliFMDParameters* param = AliFMDParameters::Instance();
// Check that the strip is not marked as dead
if (param->IsDead(digit->Detector(), digit->Ring(),
- digit->Sector(), digit->Strip())) continue;
+ digit->Sector(), digit->Strip())) {
+ AliDebug(10, Form("FMD%d%c[%2d,%3d] is dead", digit->Detector(),
+ digit->Ring(), digit->Sector(), digit->Strip()));
+ continue;
+ }
// digit->Print();
// Get eta and phi
digit->Ring(),
digit->Sector(),
digit->Strip());
- AliDebug(10, Form("Subtracting pedestal %f from signal %d",
+ AliDebug(15, Form("Subtracting pedestal %f from signal %d",
pedM, digit->Counts()));
if (digit->Count3() > 0) counts = digit->Count3();
else if (digit->Count2() > 0) counts = digit->Count2();
else counts = digit->Count1();
counts = TMath::Max(Int_t(counts - pedM), 0);
- if (counts > 0) AliDebug(10, "Got a hit strip");
+ if (counts > 0) AliDebug(15, "Got a hit strip");
return UShort_t(counts);
}
digit->Sector(),
digit->Strip());
Double_t edep = count * gain;
- AliDebug(10, Form("Converting counts %d to energy via factor %f",
+ AliDebug(15, Form("Converting counts %d to energy via factor %f",
count, gain));
return edep;
}
Double_t edepMIP = param->GetEdepMip();
Float_t mult = edep / edepMIP;
if (edep > 0)
- AliDebug(10, Form("Translating energy %f to multiplicity via "
+ AliDebug(15, Form("Translating energy %f to multiplicity via "
"divider %f->%f", edep, edepMIP, mult));
return mult;
}
// Get the eta and phi of a digit
//
// Get geometry.
- AliFMDGeometry* fmd = AliFMDGeometry::Instance();
+ AliFMDGeometry* geom = AliFMDGeometry::Instance();
Double_t x, y, z, r, theta;
- fmd->Detector2XYZ(digit->Detector(), digit->Ring(), digit->Sector(),
+ geom->Detector2XYZ(digit->Detector(), digit->Ring(), digit->Sector(),
digit->Strip(), x, y, z);
// Correct for vertex offset.
z += fCurrentVertex;