X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;ds=sidebyside;f=FMD%2FAliFMDReconstructor.cxx;h=bb1717fa1d9921e00cd7d247b2c735cc9a10b563;hb=e969a926a5c485fcb81983e7a27ca1e0b2ce4cbf;hp=cd2d474ea208f06785f581363747d74903257612;hpb=97e942384341fc4671a105cc4ec47b27a01996ca;p=u%2Fmrichter%2FAliRoot.git diff --git a/FMD/AliFMDReconstructor.cxx b/FMD/AliFMDReconstructor.cxx index cd2d474ea20..bb1717fa1d9 100644 --- a/FMD/AliFMDReconstructor.cxx +++ b/FMD/AliFMDReconstructor.cxx @@ -35,8 +35,6 @@ // #include // ALILOG_H // #include // 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); } //____________________________________________________________________