- ::Fatal("UnfoldingChiSquare","Unfolding not implemented") ;
-}
-//____________________________________________________________________________
-void AliEMCALClusterizerv1::Print(Option_t * /*option*/)const
-{
- // Print clusterizer parameters
-
- TString message("\n") ;
-
- if( strcmp(GetName(), "") !=0 ){
-
- // Print parameters
-
- TString taskName(GetName()) ;
- taskName.ReplaceAll(Version(), "") ;
-
- printf("--------------- ");
- printf(taskName.Data()) ;
- printf(" ");
- printf(GetTitle()) ;
- printf("-----------\n");
- printf("Clusterizing digits from the file: ");
- printf(taskName.Data());
- printf("\n Branch: ");
- printf(GetName());
- printf("\n ECA Local Maximum cut = %f", fECALocMaxCut);
- printf("\n ECA Logarithmic weight = %f", fECAW0);
- if(fToUnfold)
- printf("\nUnfolding on\n");
- else
- printf("\nUnfolding off\n");
-
- printf("------------------------------------------------------------------");
- }
- else
- printf("AliEMCALClusterizerv1 not initialized ") ;
-}
-
-//____________________________________________________________________________
-void AliEMCALClusterizerv1::PrintRecPoints(Option_t * option)
-{
- // Prints list of RecPoints produced at the current pass of AliEMCALClusterizer
- AliEMCALLoader *emcalLoader = dynamic_cast<AliEMCALLoader*>(AliRunLoader::GetRunLoader()->GetDetectorLoader("EMCAL"));
- TObjArray * aECARecPoints = emcalLoader->RecPoints() ;
-
- if(strstr(option,"deb")) {
- printf("PrintRecPoints: Clusterization result:") ;
-
- printf("event # %d\n", emcalLoader->GetRunLoader()->GetEventNumber() ) ;
- printf(" Found %d ECA Rec Points\n ",
- aECARecPoints->GetEntriesFast()) ;
- }
-
- fRecPointsInRun += aECARecPoints->GetEntriesFast() ;
-
- if(strstr(option,"all")) {
- if(strstr(option,"deb")) {
- printf("\n-----------------------------------------------------------------------\n") ;
- printf("Clusters in ECAL section\n") ;
- printf("Index Ene(GeV) Multi Module GX GY GZ lX lY lZ Dispersion Lambda 1 Lambda 2 # of prim Primaries list\n") ;
- }
- Int_t index =0;
- Float_t maxE=0;
- Float_t maxL1=0;
- Float_t maxL2=0;
- Float_t maxDis=0;
-
- AliEMCALHistoUtilities::FillH1(fHists, 12, double(aECARecPoints->GetEntries()));
-
- for (index = 0 ; index < aECARecPoints->GetEntries() ; index++) {
- AliEMCALRecPoint * rp = dynamic_cast<AliEMCALRecPoint * >(aECARecPoints->At(index)) ;
- TVector3 globalpos;
- //rp->GetGlobalPosition(globalpos);
- TVector3 localpos;
- rp->GetLocalPosition(localpos);
- Float_t lambda[2];
- rp->GetElipsAxis(lambda);
- Int_t * primaries;
- Int_t nprimaries;
- primaries = rp->GetPrimaries(nprimaries);
- if(strstr(option,"deb"))
- printf("\n%6d %8.4f %3d %4.1f %4.1f %4.1f %4.1f %4.1f %4.1f %4.1f %4f %4f %2d : ",
- rp->GetIndexInList(), rp->GetEnergy(), rp->GetMultiplicity(),
- globalpos.X(), globalpos.Y(), globalpos.Z(), localpos.X(), localpos.Y(), localpos.Z(),
- rp->GetDispersion(), lambda[0], lambda[1], nprimaries) ;
- /////////////
- if(rp->GetEnergy()>maxE){
- maxE=rp->GetEnergy();
- maxL1=lambda[0];
- maxL2=lambda[1];
- maxDis=rp->GetDispersion();
- }
- fPointE->Fill(rp->GetEnergy());
- fPointL1->Fill(lambda[0]);
- fPointL2->Fill(lambda[1]);
- fPointDis->Fill(rp->GetDispersion());
- fPointMult->Fill(rp->GetMultiplicity());
- /////////////
- if(strstr(option,"deb")){
- for (Int_t iprimary=0; iprimary<nprimaries; iprimary++) {
- printf("%d ", primaries[iprimary] ) ;
- }
- }
- }
-
- fMaxE->Fill(maxE);
- fMaxL1->Fill(maxL1);
- fMaxL2->Fill(maxL2);
- fMaxDis->Fill(maxDis);
-
- if(strstr(option,"deb"))
- printf("\n-----------------------------------------------------------------------\n");
- }
-}
-TList* AliEMCALClusterizerv1::BookHists()
-{
- //set up histograms for monitoring clusterizer performance
-
- gROOT->cd();
-
- fPointE = new TH1F("00_pointE","point energy", 2000, 0.0, 150.);
- fPointL1 = new TH1F("01_pointL1","point L1", 1000, 0.0, 3.);
- fPointL2 = new TH1F("02_pointL2","point L2", 1000, 0.0, 3.);
- fPointDis = new TH1F("03_pointDisp","point dispersion", 1000, 0.0, 10.);
- fPointMult = new TH1F("04_pointMult","#cell in point(cluster)", 101, -0.5, 100.5);
- fDigitAmp = new TH1F("05_digitAmp","Digit Amplitude", 2000, 0.0, 5000.);
- fMaxE = new TH1F("06_maxE","Max point energy", 2000, 0.0, 150.);
- fMaxL1 = new TH1F("07_maxL1","Largest (first) of eigenvalue of covariance matrix", 1000, 0.0, 3.);
- fMaxL2 = new TH1F("08_maxL2","Smalest (second) of eigenvalue of covariace matrix", 1000, 0.0, 3.);
- fMaxDis = new TH1F("09_maxDis","Point dispersion", 1000, 0.0, 10.); // 9
- //
- new TH1F("10_adcOfDigits","adc of digits(threshold control)", 1001, -0.5, 1000.5); // 10
- new TH1F("11_energyOfDigits","energy of digits(threshold control)", 1000, 0.0, 1.); // 11
- new TH1F("12_numberOfPoints","number of points(clusters)", 101, -0.5, 100.5); // 12
-
- return AliEMCALHistoUtilities::MoveHistsToList("EmcalClusterizerv1ControlHists", kFALSE);
-}
-
-void AliEMCALClusterizerv1::SaveHists(const char *fn)
-{
- AliEMCALHistoUtilities::SaveListOfHists(fHists, fn, kTRUE);
-}
-
-void AliEMCALClusterizerv1::PrintRecoInfo()
-{
- printf(" AliEMCALClusterizerv1::PrintRecoInfo() : version %s \n", Version() );
- TH1F *h = (TH1F*)fHists->At(12);
- if(h) {
- printf(" ## Multiplicity of RecPoints ## \n");
- for(int i=1; i<=h->GetNbinsX(); i++) {
- int nbin = int((*h)[i]);
- int mult = int(h->GetBinCenter(i));
- if(nbin > 0) printf(" %i : %5.5i %6.3f %% \n", mult, nbin, 100.*nbin/h->GetEntries());
- }
- }
-}
-
-void AliEMCALClusterizerv1::DrawLambdasHists()
-{
- if(fMaxL1) {
- fMaxL1->Draw();
- if(fMaxL2) fMaxL2->Draw("same");
- if(fMaxDis) {
- fMaxDis->Draw("same");
- }
- }
-}
-
-void AliEMCALClusterizerv1::Browse(TBrowser* b)
-{
- if(fHists) b->Add(fHists);
- if(fGeom) b->Add(fGeom);
- TTask::Browse(b);