// --- ROOT system ---
-#include <TROOT.h>
+class TROOT;
#include <TH1.h>
#include <TFile.h>
-#include <TFolder.h>
+class TFolder;
#include <TMath.h>
#include <TMinuit.h>
#include <TTree.h>
-#include <TSystem.h>
+class TSystem;
#include <TBenchmark.h>
#include <TBrowser.h>
+
// --- Standard library ---
// --- AliRoot header files ---
#include "AliRunLoader.h"
#include "AliRun.h"
+#include "AliESD.h"
#include "AliEMCALLoader.h"
#include "AliEMCALClusterizerv1.h"
#include "AliEMCALRecPoint.h"
#include "AliEMCALGeometry.h"
#include "AliEMCALHistoUtilities.h"
#include "AliCDBManager.h"
-#include "AliCDBStorage.h"
+
+class AliCDBStorage;
#include "AliCDBEntry.h"
ClassImp(AliEMCALClusterizerv1)
//____________________________________________________________________________
- AliEMCALClusterizerv1::AliEMCALClusterizerv1() : AliEMCALClusterizer()
+AliEMCALClusterizerv1::AliEMCALClusterizerv1()
+ : AliEMCALClusterizer(),
+ fHists(0),fPointE(0),fPointL1(0),fPointL2(0),
+ fPointDis(0),fPointMult(0),fDigitAmp(0),fMaxE(0),
+ fMaxL1(0),fMaxL2(0),fMaxDis(0),fGeom(0),
+ fDefaultInit(kTRUE),
+ fToUnfold(kFALSE),
+ fNumberOfECAClusters(0),fNTowerInGroup(0),fCalibData(0),
+ fADCchannelECA(0.),fADCpedestalECA(0.),fECAClusteringThreshold(0.),fECALocMaxCut(0.),
+ fECAW0(0.),fRecPointsInRun(0),fTimeGate(0.),fMinECut(0.)
{
// default ctor (to be used mainly by Streamer)
InitParameters() ;
- fDefaultInit = kTRUE ;
fGeom = AliEMCALGeometry::GetInstance();
fGeom->GetTransformationForSM(); // Global <-> Local
}
//____________________________________________________________________________
AliEMCALClusterizerv1::AliEMCALClusterizerv1(const TString alirunFileName, const TString eventFolderName)
-:AliEMCALClusterizer(alirunFileName, eventFolderName)
+ : AliEMCALClusterizer(alirunFileName, eventFolderName),
+ fHists(0),fPointE(0),fPointL1(0),fPointL2(0),
+ fPointDis(0),fPointMult(0),fDigitAmp(0),fMaxE(0),
+ fMaxL1(0),fMaxL2(0),fMaxDis(0),fGeom(0),
+ fDefaultInit(kFALSE),
+ fToUnfold(kFALSE),
+ fNumberOfECAClusters(0),fNTowerInGroup(0),fCalibData(0),
+ fADCchannelECA(0.),fADCpedestalECA(0.),fECAClusteringThreshold(0.),fECALocMaxCut(0.),
+ fECAW0(0.),fRecPointsInRun(0),fTimeGate(0.),fMinECut(0.)
{
// ctor with the indication of the file where header Tree and digits Tree are stored
InitParameters() ;
Init() ;
- fDefaultInit = kFALSE ;
+}
+
+//____________________________________________________________________________
+AliEMCALClusterizerv1::AliEMCALClusterizerv1(const AliEMCALClusterizerv1& clus)
+ : AliEMCALClusterizer(clus),
+ fHists(clus.fHists),
+ fPointE(clus.fPointE),
+ fPointL1(clus.fPointL1),
+ fPointL2(clus.fPointL2),
+ fPointDis(clus.fPointDis),
+ fPointMult(clus.fPointMult),
+ fDigitAmp(clus.fDigitAmp),
+ fMaxE(clus.fMaxE),
+ fMaxL1(clus.fMaxL1),
+ fMaxL2(clus.fMaxL2),
+ fMaxDis(clus.fMaxDis),
+ fGeom(clus.fGeom),
+ fDefaultInit(clus.fDefaultInit),
+ fToUnfold(clus.fToUnfold),
+ fNumberOfECAClusters(clus.fNumberOfECAClusters),
+ fNTowerInGroup(clus.fNTowerInGroup),
+ fCalibData(clus.fCalibData),
+ fADCchannelECA(clus.fADCchannelECA),
+ fADCpedestalECA(clus.fADCpedestalECA),
+ fECAClusteringThreshold(clus.fECAClusteringThreshold),
+ fECALocMaxCut(clus.fECALocMaxCut),
+ fECAW0(clus.fECAW0),
+ fRecPointsInRun(clus.fRecPointsInRun),
+ fTimeGate(clus.fTimeGate),
+ fMinECut(clus.fMinECut)
+{
+ //copy ctor
}
//____________________________________________________________________________
for(iDigit = 0; iDigit < nDigits; iDigit++){
digit = maxAt[iDigit];
- Int_t relid[2] ;
Float_t x = 0.;
Float_t z = 0.;
- fGeom->AbsToRelNumbering(digit->GetId(), relid) ;
- fGeom->PosInAlice(relid, x, z) ;
+ // have to be tune for TRD1; May 31,06
+ // Int_t relid[2] ;
+ // fGeom->AbsToRelNumbering(digit->GetId(), relid) ; // obsolete method
+ // fGeom->PosInAlice(relid, x, z) ; // obsolete method
Float_t energy = maxAtEnergy[iDigit] ;
recPoint = dynamic_cast<AliEMCALRecPoint *>(aECARecPoints->At(fNumberOfECAClusters)) ;
fNumberOfECAClusters++ ;
- recPoint->SetClusterType(AliEMCALRecPoint::kPseudoCluster);
+ recPoint->SetClusterType(AliESDCaloCluster::kPseudoCluster);
recPoint->AddDigit(*digit, digit->GetAmp()) ;
clusterECAdigitslist[iDigitInECACluster] = digit->GetIndexInList() ;
nextdigit.Reset() ; // will start from beggining
}
}
- if(recPoint) cout << "cl.e " << recPoint->GetEnergy() << endl;
+ if(recPoint)
+ AliDebug(1,Form("MakeClusters: cl.e %f \n", recPoint->GetEnergy()));
+ //if(recPoint) cout << "cl.e " << recPoint->GetEnergy() << endl;
delete digitsC ;
}
AliEMCALHistoUtilities::FillH1(fHists, 11, e);
if(e < fMinECut ) digitsC->Remove(digit);
else ehs += e;
- }
- cout << " Number of digits " << digits->GetEntries() << " -> (e>" <<fMinECut <<")";
- cout << digitsC->GetEntries()<< " ehs "<<ehs<<endl;
+ }
+ AliDebug(1,Form("MakeClusters: Number of digits %d -> (e %f), ehs %d\n",
+ digits->GetEntries(),fMinECut,ehs));
+ //cout << " Number of digits " << digits->GetEntries() << " -> (e>" <<fMinECut <<")";
+ //cout << digitsC->GetEntries()<< " ehs "<<ehs<<endl;
// Clusterization starts
// cout << "Outer Loop" << endl;
recPoint = dynamic_cast<AliEMCALRecPoint *>(aECARecPoints->At(fNumberOfECAClusters)) ;
fNumberOfECAClusters++ ;
- recPoint->SetClusterType(AliEMCALRecPoint::kClusterv1);
+ recPoint->SetClusterType(AliESDCaloCluster::kClusterv1);
recPoint->AddDigit(*digit, Calibrate(digit->GetAmp(), digit->GetId())) ;
clusterECAdigitslist[iDigitInECACluster] = digit->GetIndexInList() ;
} // scan over digits already in cluster
nextdigit.Reset() ; // will start from beggining
}
- } // while digit
- if(recPoint) cout << "cl.e " << recPoint->GetEnergy() << endl;
+ } // while digit
+ if(recPoint)
+ AliDebug(1,Form("MakeClusters: cl.e %f \n", recPoint->GetEnergy()));
+ //if(recPoint) cout << "cl.e " << recPoint->GetEnergy() << endl;
delete digitsC ;
AliDebug(1,Form("total no of clusters %d from %d digits",fNumberOfECAClusters,digits->GetEntriesFast()));
}
TList* AliEMCALClusterizerv1::BookHists()
{
+ //set up histograms for monitoring clusterizer performance
+
gROOT->cd();
fPointE = new TH1F("pointE","point energy", 2000, 0.0, 150.);