Remove old pi0 calibration classes, new class in PWG4/CaloCalib/AliAnalysisTaskEMCALP...
authorgconesab <gconesab@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 7 Oct 2009 12:30:57 +0000 (12:30 +0000)
committergconesab <gconesab@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 7 Oct 2009 12:30:57 +0000 (12:30 +0000)
16 files changed:
EMCAL/Calib/AliEMCALCalibCoefs.cxx [deleted file]
EMCAL/Calib/AliEMCALCalibCoefs.h [deleted file]
EMCAL/Calib/AliEMCALCell.cxx [deleted file]
EMCAL/Calib/AliEMCALCell.h [deleted file]
EMCAL/Calib/AliEMCALCellInfo.cxx [deleted file]
EMCAL/Calib/AliEMCALCellInfo.h [deleted file]
EMCAL/Calib/AliEMCALFolder.cxx [deleted file]
EMCAL/Calib/AliEMCALFolder.h [deleted file]
EMCAL/Calib/AliEMCALPi0Calibration.cxx [deleted file]
EMCAL/Calib/AliEMCALPi0Calibration.h [deleted file]
EMCAL/Calib/AliEMCALPi0SelectionParam.cxx [deleted file]
EMCAL/Calib/AliEMCALPi0SelectionParam.h [deleted file]
EMCAL/Calib/AliEMCALSuperModule.cxx [deleted file]
EMCAL/Calib/AliEMCALSuperModule.h [deleted file]
EMCAL/EMCALcalibLinkDef.h [deleted file]
EMCAL/libEMCALcalib.pkg [deleted file]

diff --git a/EMCAL/Calib/AliEMCALCalibCoefs.cxx b/EMCAL/Calib/AliEMCALCalibCoefs.cxx
deleted file mode 100644 (file)
index 3486c44..0000000
+++ /dev/null
@@ -1,268 +0,0 @@
-/**************************************************************************
- * Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
- *                                                                        *
- * Author: The ALICE Off-line Project.                                    *
- * Contributors are mentioned in the code where appropriate.              *
- *                                                                        *
- * Permission to use, copy, modify and distribute this software and its   *
- * documentation strictly for non-commercial purposes is hereby granted   *
- * without fee, provided that the above copyright notice appears in all   *
- * copies and that both the copyright notice and this permission notice   *
- * appear in the supporting documentation. The authors make no claims     *
- * about the suitability of this software for any purpose. It is          *
- * provided "as is" without express or implied warranty.                  *
- **************************************************************************/
-/* History of cvs commits:
- *
-* $Log$
-* Revision 1.3  2007/10/16 14:36:39  pavlinov
-* fixed code violation (almost)
-*
-* Revision 1.2  2007/09/11 19:38:15  pavlinov
-* added pi0 calibration, linearity, shower profile
-* co: warning: `$Log' is obsolescent; use ` * $Log'.
-* Revision 1.1  2007/08/08 15:58:01  hristov
-*/
-
-
-//_________________________________________________________________________
-//   Calibration coefficients
-//   The place for holding all information after calibration
-//   - not only calibration coefficients.
-//   For flash Adc we should keep at least ratio of high/low gains 
-//
-//*-- Author: Aleksei Pavlinov (WSU, Detroit, USA) 
-
-#include "AliEMCALCalibCoefs.h"
-
-#include "AliRun.h"
-#include "AliEMCALCalibData.h"
-#include "AliCDBMetaData.h"
-#include "AliCDBId.h"
-#include "AliCDBEntry.h"
-#include "AliCDBManager.h"
-#include "AliCDBStorage.h"
-#include "AliEMCALGeometry.h"
-
-#include "TH1F.h"
-#include <TString.h>
-
-ClassImp(AliEMCALCalibCoef) 
-// ----------------------------------------------------------------------
-AliEMCALCalibCoef::AliEMCALCalibCoef() : fAbsId(-1), fCc(-1), fECc(-1)
-{ 
-  // default constructor
-}
-
-// ----------------------------------------------------------------------
-AliEMCALCalibCoef::AliEMCALCalibCoef(const Int_t id, const Double_t c, const Double_t ec) :
-fAbsId(id), fCc(c), fECc(ec)
-{
-  // Oct 16, 2007
-}
-
-
-ClassImp(AliEMCALCalibCoefs)
-
-// ----------------------------------------------------------------------
-AliEMCALCalibCoefs::AliEMCALCalibCoefs() : TNamed("",""), fTable(0), fCurrentInd(0), fCalibMethod(0)
-{
-  // default constructor
-}
-
-// ----------------------------------------------------------------------
-AliEMCALCalibCoefs::AliEMCALCalibCoefs(const AliEMCALCalibCoefs& coefs) 
-  : TNamed(coefs), fTable(coefs.fTable), 
-    fCurrentInd(coefs.fCurrentInd), fCalibMethod(coefs.fCalibMethod)
-{
-  // copy constructor
-}
-
-// ----------------------------------------------------------------------
-AliEMCALCalibCoefs::AliEMCALCalibCoefs(const char* name, const Int_t nrow) : TNamed(name,"table of cell information") , fTable(0), fCurrentInd(0), fCalibMethod(0)
-{
-  // Oct 16, 2007
-  fTable = new TObjArray(nrow);
-}
-
-// ----------------------------------------------------------------------
-void AliEMCALCalibCoefs::AddAt(AliEMCALCalibCoef* r)
-{
-  // Oct 16, 2007
-  (*fTable)[fCurrentInd] = new AliEMCALCalibCoef(*r);
-  fCurrentInd++;
-}
-
-// ----------------------------------------------------------------------
-AliEMCALCalibCoefs::~AliEMCALCalibCoefs()
-{
-  // Destructor
-  if(fTable) {
-    fTable->Delete();
-    delete fTable;
-  }
-}
-
-// ----------------------------------------------------------------------
-AliEMCALCalibCoef* AliEMCALCalibCoefs::GetTable(Int_t i) const
-{
-  // Oct 16, 2007
-  return (AliEMCALCalibCoef*)fTable->At(i);
-}
-
-// ----------------------------------------------------------------------
-// Get initial Calib Data from DB
-AliEMCALCalibCoefs* AliEMCALCalibCoefs::GetCalibTableFromDb(const char *tn, AliEMCALCalibData **calData)
-{ 
-  //
-  // See ~/macros/ALICE/sim.C  for choice of CDB
-  // Get calib. table which was used than calculated rec.points
-  // 
-  static const char *calibType = "EMCAL/Calib/*";
-  static const char *calibTypeData = "EMCAL/Calib/Data";
-  // Initial cc
-  calData[0] = 0;
-
-  AliCDBManager* man = AliCDBManager::Instance(); 
-  AliCDBStorage* specificStorage = man->GetSpecificStorage(calibType);
-
-  AliEMCALCalibData* caldata = (AliEMCALCalibData*)
-    specificStorage->Get(calibTypeData, AliRunLoader::Instance()->GetRunNumber())->GetObject();
-  if(caldata == 0) return 0;
-
-  AliEMCALGeometry *g = AliEMCALGeometry::GetInstance();
-
-  AliEMCALCalibCoefs *tab = new  AliEMCALCalibCoefs(tn,g->GetNCells());
-  tab->SetCalibMethod(AliEMCALCalibCoefs::kMC);
-
-  for(Int_t id=0; id<g->GetNCells(); id++){
-    Int_t nSupMod=0, nModule=0, nIphi=0, nIeta=0, iphiCell=0, ietaCell=0;
-    g->GetCellIndex(id, nSupMod, nModule, nIphi, nIeta);
-    g->GetCellPhiEtaIndexInSModule(nSupMod, nModule, nIphi, nIeta, iphiCell, ietaCell);
-
-    AliEMCALCalibCoef r;
-    r.fAbsId = id;
-    r.fCc    = caldata->GetADCchannel(nSupMod, ietaCell, iphiCell); // column(ietaCell) : row(iphiCell)
-    r.fECc   = 0.0;
-
-    tab->AddAt(&r);
-  }
-  // tab->Purge();
-  tab->SetCalibMethod(AliEMCALCalibCoefs::kPI0);
-  calData[0] = caldata; 
-
-  printf("\n <I> AliEMCALCalibCoefs::GetCalibTableFromDb \n name |%s| title |%s| | storage |%s|\n", 
-        caldata->GetName(), caldata->GetTitle(),  specificStorage->GetURI().Data());
-
-  return tab;
-}
-
-// ----------------------------------------------------------------------
-TH1F* AliEMCALCalibCoefs::GetHistOfCalibTableFromDb(const char *tn)
-{
-  // First SM only
-  AliEMCALCalibData *calData[1]; // unused here
-
-  AliEMCALCalibCoefs* tab = GetCalibTableFromDb(tn, calData);
-  if(tab==0) return 0;
-
-  TH1F *h = new TH1F("hCCfirst", " fCc first  (in MeV)", 70, 12., 19.);
-  AliEMCALCalibCoef *r;
-  for(Int_t i=0; i<tab->GetSize(); i++){
-    r = tab->GetTable(i);
-    if(i>=1152) break;
-    h->Fill(r->fCc*1000.); // GEV ->MeV
-  }
-  delete tab;
-  return h;
-}
-
-// ----------------------------------------------------------------------
-AliEMCALCalibData* AliEMCALCalibCoefs::GetCalibTableForDb(const AliEMCALCalibCoefs *tab, const char* dbLocation,
-const char* coment)
-{
-  // See EMCAL/macros/CalibrationDB/AliEMCALSetCDB.C
-  // Define and save to CDB 
-  printf("<I> AliEMCALCalibCoefs::GetCalibTableForDb started \n");
-  AliEMCALCalibData* caldata=0;
-  if(tab==0) return caldata;
-
-  Int_t firstRun   =  0;
-  Int_t lastRun    = 10;
-  Int_t beamPeriod =  1;
-  const char* objFormat  = "";
-  caldata = new AliEMCALCalibData("EMCAL");
-  caldata->SetTitle(coment);
-
-  AliEMCALGeometry *g = AliEMCALGeometry::GetInstance();
-
-  for(int id=0; id<tab->GetSize(); id++){
-    Float_t ped=0.;
-
-    Int_t nSupMod=0, nModule=0, nIphi=0, nIeta=0, iphiCell=0, ietaCell=0;
-    g->GetCellIndex(id, nSupMod, nModule, nIphi, nIeta);
-    g->GetCellPhiEtaIndexInSModule(nSupMod, nModule, nIphi, nIeta, iphiCell, ietaCell);
-
-    AliEMCALCalibCoef *r = tab->GetTable(id);
-    // ietaCell - column; iphiCell - row
-    caldata->SetADCchannel (nSupMod, ietaCell, iphiCell, r->fCc);
-    caldata->SetADCpedestal(nSupMod, ietaCell, iphiCell, ped);
-  }
-  printf("<I> Fill AliEMCALCalibData table \n");
-  //Store calibration data into database
-  
-  AliCDBMetaData md;
-  md.SetComment(objFormat);
-  md.SetBeamPeriod(beamPeriod);
-  md.SetResponsible("Aleksei Pavlinov");
-
-  AliCDBManager* man = AliCDBManager::Instance();
-  if(man == 0) {
-    printf("<E> AliEMCALCalibCoefs::GetCalibTableForDb : define AliCDBManager, NO saving  !! \n"); 
-  } else {
-    //printf("<I> AliCDBManager %p \n", man); 
-    AliCDBId id("EMCAL/Calib/Data",firstRun,lastRun); // create in EMCAL/Calib/Data DBFolder 
-    TString dBFolder(dbLocation);
-    AliCDBStorage* loc = man->GetStorage(dBFolder.Data());
-    loc->Put(caldata, id, &md);
-  }
-
-  return caldata;
-}
-
-// ----------------------------------------------------------------------
-AliEMCALCalibCoef *AliEMCALCalibCoefs::GetRow(const int absId)
-{
-  // Oct 16, 2007
-  AliEMCALCalibCoef *r=0;
-  for(int id=0; id<fTable->GetSize(); id++){
-    r = GetTable(id);
-    if(r->fAbsId == absId) return r;
-  }
-  return 0;
-}
-
-// ----------------------------------------------------------------------
-void AliEMCALCalibCoefs::PrintTable()
-{
-  // Oct 16, 2007
-  printf(" Table : %s : nrows %i \n", GetName(), int(fTable->GetSize()));
-  for(int i=0; i<fTable->GetSize(); i++) PrintTable(i);
-}
-
-// ----------------------------------------------------------------------
-void AliEMCALCalibCoefs::PrintTable(const Int_t i)
-{
-  // Oct 16, 2007
-  if(i>=fTable->GetSize()) return;
-  printf("row %i \n", i);
-  PrintRec(GetTable(i));
-}
-
-// ----------------------------------------------------------------------
-void AliEMCALCalibCoefs::PrintRec(AliEMCALCalibCoef* r)
-{
-  // Oct 16, 2007
-  if(r==0) return;
-  printf(" abs Id %5.5i fCc %7.6f fECc %7.6f \n", r->fAbsId, r->fCc, r->fECc);
-}
diff --git a/EMCAL/Calib/AliEMCALCalibCoefs.h b/EMCAL/Calib/AliEMCALCalibCoefs.h
deleted file mode 100644 (file)
index 7e79b3a..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-#ifndef ALIEMCALCALIBCOEFS_H
-#define ALIEMCALCALIBCOEFS_H
-/* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
- * See cxx source for full Copyright notice     */
-
-/* $Id: AliEMCALCalibCoefs.h 24500 2008-03-13 23:39:38Z jklay $ */
-
-//_________________________________________________________________________
-//  Table of Calibration coefficients  
-//  Should be extended.
-//  Ratio high/low should be added too, pedestals and so on
-//                  
-//*-- Author: Aleksei Pavlinov (WSU, Detroit, USA) 
-
-// --- ROOT system ---
-#include <TNamed.h>
-#include <TObjArray.h>
-
-// unit is GeV
-class AliEMCALCalibCoef : public TObject {
-  friend class AliEMCALCalibCoefs;
-  friend class AliEMCALFolder;
-  friend class AliEMCALCell;
- public:
-  virtual const char* GetName() const {return Form("CC%5.5i",fAbsId);}
-  AliEMCALCalibCoef();
-  AliEMCALCalibCoef(const Int_t id, const Double_t c, const Double_t ec);
-  virtual ~AliEMCALCalibCoef() {};
-
- protected:
-  Int_t    fAbsId; // absolute id of cell 
-  Double_t fCc;    // Calib. coef
-  Double_t fECc;   // Calib. coef. error
-  ClassDef(AliEMCALCalibCoef,1) // Cell calibration information 
-};
-
-class TH1F;
-class AliEMCALCalibData;
-
-class AliEMCALCalibCoefs : public TNamed {
- public:
-  enum EEmcalCalibType {kMC, kEQUALIZATION, kMIP, kPI0}; // type of EMCAL calibrations 
-
-  AliEMCALCalibCoefs(); // default constractor
-  AliEMCALCalibCoefs(const AliEMCALCalibCoefs& coefs); // copy constractor
-  AliEMCALCalibCoefs(const char* name, const Int_t nrow);
-  virtual ~AliEMCALCalibCoefs();
-
-  AliEMCALCalibCoefs & operator = (const AliEMCALCalibCoefs  & /*rvalue*/) {
-    // assignement operator requested by coding convention but not needed
-    Fatal("operator =", "not implemented");
-    return *this;
-  };
-  void        AddAt(AliEMCALCalibCoef* r);
-  AliEMCALCalibCoef*  GetTable(Int_t i) const;
-  Int_t       GetSize()  const {return fTable->GetSize();}
-  Int_t       GetNRows() const {return fCurrentInd;}
-  void        Purge() {/* nothing */};
-
-  void  SetCalibMethod(Int_t var) {fCalibMethod=var;}
-  Int_t GetCalibMethod() const {return fCalibMethod;}
-  AliEMCALCalibCoef* GetRow(const int absId);
-  // Get initial Calib Data from DB
-  static AliEMCALCalibCoefs *GetCalibTableFromDb(const char *tn="CCIN", AliEMCALCalibData **calData=0);
-  //  const char* dbLocation="local:///data/r22b/ALICE/PROD/CALIBRATION_May_2007/PI0/PDSF/10GEV/DECALIB/DeCalibDB");
-  static TH1F *GetHistOfCalibTableFromDb(const char *tn="CCIN");
-  //const char* dbLocation="local:///data/r22b/ALICE/PROD/CALIBRATION_May_2007/PI0/PDSF/10GEV/DECALIB/DeCalibDB");
-  // Create DB calib table
-  static AliEMCALCalibData*  GetCalibTableForDb(const AliEMCALCalibCoefs *tab, 
-  const char* dbLocation="local://.", // current directory
-  const char* coment="pi0 calibration, MC, Jun 2007");
-  // Menu
-  void PrintTable();                 // *MENU*
-  void PrintTable(const Int_t i);    // *MENU*
-  void PrintRec(AliEMCALCalibCoef *r);
-
-  //
- protected:
-  TObjArray *fTable; // table of CC
-  Int_t fCurrentInd; // Current index
-  Int_t fCalibMethod;  // method of calibration - EEmcalCalibType
-
-  ClassDef(AliEMCALCalibCoefs,2) // Table of Calibration coefficients  
-};
-
-#endif // ALIEMCALCalibCoefs_H
diff --git a/EMCAL/Calib/AliEMCALCell.cxx b/EMCAL/Calib/AliEMCALCell.cxx
deleted file mode 100644 (file)
index d8e6f5f..0000000
+++ /dev/null
@@ -1,265 +0,0 @@
-/**************************************************************************
- * Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
- *                                                                        *
- * Author: The ALICE Off-line Project.                                    *
- * Contributors are mentioned in the code where appropriate.              *
- *                                                                        *
- * Permission to use, copy, modify and distribute this software and its   *
- * documentation strictly for non-commercial purposes is hereby granted   *
- * without fee, provided that the above copyright notice appears in all   *
- * copies and that both the copyright notice and this permission notice   *
- * appear in the supporting documentation. The authors make no claims     *
- * about the suitability of this software for any purpose. It is          *
- * provided "as is" without express or implied warranty.                  *
- **************************************************************************/
-
-/*
-$Log$
-Revision 1.3  2007/09/12 17:44:22  pavlinov
-fixed compilation problem under SuSe Linux
-
-Revision 1.2  2007/09/11 19:38:15  pavlinov
-added pi0 calibration, linearity, shower profile
-
-*/ 
-
-//_________________________________________________________________________
-// Cell folder which will keep all information 
-// about cell(tower) itself
-// Initial version was created with TDataSet staf
-// TObjectSet -> TFolder; Sep 6, 2007
-//
-//*-- Author: Aleksei Pavlinov (WSU, Detroit, USA) 
-
-#include "AliEMCALCell.h"
-#include "AliEMCALHistoUtilities.h"
-#include "AliEMCALGeometry.h"
-#include "AliEMCALFolder.h"
-#include "AliEMCALSuperModule.h"
-#include "AliEMCALCalibData.h"
-#include "AliEMCALCalibCoefs.h"
-#include "AliEMCALPi0Calibration.h"
-
-#include <cassert>
-
-#include <TROOT.h>
-#include <TStyle.h>
-#include <TList.h>
-#include <TH1.h>
-#include <TF1.h>
-#include <TNtuple.h>
-
-typedef  AliEMCALHistoUtilities u;
-
-ClassImp(AliEMCALCell)
-
-//______________________________________________________________
-AliEMCALCell::AliEMCALCell() : 
-TFolder(), 
- fParent(0),fLh(0),
-fAbsId(0),fSupMod(0),fModule(0),fPhi(0),fEta(0),fPhiCell(0),fEtaCell(0),fCcIn(0),fCcOut(0),
-fFun(0)
-{
-  //default ctor
-}
-
-//______________________________________________________________
-AliEMCALCell::AliEMCALCell(const AliEMCALCell& cell) : 
-  TFolder(cell.GetName(),cell.GetTitle()), 
-  fParent(cell.fParent),fLh(cell.fLh),
-  fAbsId(cell.fAbsId),fSupMod(cell.fSupMod),
-  fModule(cell.fModule),fPhi(cell.fPhi),
-  fEta(cell.fEta),fPhiCell(cell.fPhiCell),
-  fEtaCell(cell.fEtaCell),fCcIn(cell.fCcIn),
-  fCcOut(cell.fCcOut),fFun(cell.fFun)
-{
-  //copy ctor
-}
-
-//______________________________________________________________
-AliEMCALCell::AliEMCALCell(const Int_t absId, const char* title) : 
-  TFolder(Form("Cell%4.4i",absId),title), 
- fParent(0),fLh(0),
-fAbsId(absId),fSupMod(0),fModule(0),fPhi(0),fEta(0),fPhiCell(0),fEtaCell(0),fCcIn(0),fCcOut(0),
-fFun(0)
-{
-  // Oct 15, 2007  
-  AliEMCALGeometry *g = AliEMCALGeometry::GetInstance();
-  g->GetCellIndex(fAbsId, fSupMod, fModule, fPhi, fEta);
-  g->GetCellPhiEtaIndexInSModule(fSupMod, fModule, fPhi, fEta, fPhiCell, fEtaCell);
-
-} 
-
-//______________________________________________________________
-AliEMCALCell::~AliEMCALCell()
-{
-  // dtor
-}
-
-//-------------------------------------------------------------------------------------
-void AliEMCALCell::SetCCfromDB(AliEMCALCalibData *ccDb)
-{
-  // Oct 15, 2007
-  if(ccDb == 0) return;
-  // fADCchannelEC = fCalibData->GetADCchannel(iSupMod,ieta,iphi);
-  // fetaCel-column; fPhiCell- row
-  fCcIn = ccDb->GetADCchannel(fSupMod, fEtaCell, fPhiCell); // in GeV
-
-  TH1* h = (TH1*)GetHists()->At(0);
-  u::AddToNameAndTitle(h, 0, Form(", cc %5.2f MeV", fCcIn*1.e+3));
-}
-
-//______________________________________________________________
-void AliEMCALCell::SetCCfromCCTable(AliEMCALCalibCoefs *t)
-{
-  // Oct 15, 2007
-  if(t == 0) return;
-
-  if(fLh == 0) {
-    fLh = BookHists();
-    Add(fLh);
-  }
-
-  AliEMCALCalibCoef *r = t->GetTable(fAbsId);
-  if(r && r->fAbsId == fAbsId) {
-    fCcIn = r->fCc;
-  } else { // something wrong
-    if(r) printf(" fAbsId %i : r->absId %i \n", fAbsId, r->fAbsId);
-    assert(0);
-  }
-
-  TH1* h = (TH1*)GetHists()->At(0);
-  u::AddToNameAndTitle(h, 0, Form(", cc %5.2f MeV", fCcIn*1.e+3));
-}
-
-//______________________________________________________________
-void AliEMCALCell::FillEffMass(const Double_t mgg)
-{
-  u::FillH1(GetHists(), 0, mgg);
-}
-
-//______________________________________________________________
-void AliEMCALCell::FillCellNtuple(TNtuple *nt)
-{
-  if(nt==0) return;
-  nt->Fill(fAbsId,fSupMod,fModule,fPhi,fEta,fPhiCell,fEtaCell,fCcIn,fCcOut);
-}
-
-//______________________________________________________________
-void AliEMCALCell::FitHist(TH1* h, const char* name, const char* opt)
-{
-  // Oct 15, 2007
-  TString optFit(""), sopt(opt);
-  sopt.ToUpper();
-  if(h==0) return; 
-  printf("<I> AliEMCALCell::FitHist : |%s| is started : opt %s\n", h->GetName(), opt);
-  TString tit(h->GetTitle());
-
-  TF1 *gausPol2 = 0, *g=0, *bg=0;
-  if(h->GetListOfFunctions()->GetSize() == 0 || 1) {
-    g = u::Gausi(name, 0.0, 0.4, h); // gaus estimation
-
-    g->SetParLimits(0, h->Integral()/20., h->Integral());
-    g->SetParLimits(1, 0.08, 0.20);
-    g->SetParLimits(2, 0.001, 0.02);
-
-    g->SetParameter(0, 1200.);
-    g->SetParameter(1, h->GetBinLowEdge(h->GetMaximumBin()));
-    g->SetParameter(2, 0.010);
-
-    g->SetLineColor(kRed);
-    g->SetLineWidth(2);
-
-    optFit = "0NQ";
-    h->Fit(g, optFit.Data(),"", 0.001, 0.3);
-
-    optFit = "0NQIME";
-    h->Fit(g, optFit.Data(),"", 0.001, 0.3);
-
-    bg = new TF1(Form("bg%s",name), "pol2", 0.0, 0.3);  
-    optFit = "0NQ";
-    h->Fit(bg, optFit.Data(),"", 0.0, 0.3);
-
-    gausPol2 = u::GausiPol2(name, 0.00, 0.3, g, bg);
-    optFit = "0Q";
-    h->Fit(gausPol2, optFit.Data(),"", 0.03, 0.28);
-  // Clean up
-    delete g;
-    delete bg;
-    optFit = "0IME+"; // no drwaing at all
-    if(tit.Contains("SM") || sopt.Contains("DRAW")) optFit = "IME+";
-  } else {
-    gausPol2 = (TF1*)h->GetListOfFunctions()->At(0);
-    optFit = "IME+";
-    printf("<I> Function is defined alredy : %s optFit %s \n", gausPol2->GetTitle(), optFit.Data());
-  }
-  //  optFit = "IME+";
-  h->Fit(gausPol2, optFit.Data(),"", 0.01, 0.28);
-
-  if(optFit.Contains("0") == 0) {
-    gStyle->SetOptFit(111);
-    u::DrawHist(h,2);
-  }
-  printf("<I> AliEMCALCell::FitHist : |%s| is ended \n\n", h->GetName());
-}
-
-//______________________________________________________________
-void AliEMCALCell::FitEffMassHist(const char* opt)
-{
-  // Oct 15, 2007
-  static Double_t mPI0  = 0.13498; // mass of pi0
-  static Double_t mPI02 = mPI0*mPI0; // mass**2
-
-  AliEMCALFolder* emcal = AliEMCALPi0Calibration::GetEmcalFolder();
-  Int_t it = emcal->GetIterationNumber();
-
-  TH1* h = (TH1*)GetHists()->At(0);
-
-  FitHist(h, GetName(), opt);
-
-  fFun = (TF1*)h->GetListOfFunctions()->At(0);
-  if(fFun) {
-    Double_t mpi = fFun->GetParameter(1), mpi2 = mpi*mpi;
-    Double_t ccTmp = fCcIn * mPI02 / mpi2;
-    if(it<=1) { // Jul 16, 2007
-      fCcOut = ccTmp;
-    } else {
-      fCcOut = (ccTmp + fCcIn)/2.;
-    }
-    printf(" fFun %s | %s : iet %i\n", fFun->GetName(), fFun->GetTitle(), it);
-  }
-  printf(" %s | fCcIn %6.5f -> % 6.5f <- fCcOut \n", GetTitle(), fCcIn , fCcOut);
-}
-
-//______________________________________________________________
-void AliEMCALCell::PrintInfo()
-{
-  // Oct 15, 2007
-  printf(" %s %s \n", GetName(), GetTitle());
-  if(fLh == 0 ) return;
-  TH1* h = (TH1*)GetHists()->At(0);
-  TF1 *f = (TF1*)h->GetListOfFunctions()->At(0);
-  if(fFun) printf(" fFun : %s | %s \n", fFun->GetName(),  fFun->GetTitle());
-  else fFun = f;
-  // if(f) f->Dump();
-}
-
-//______________________________________________________________
-TList* AliEMCALCell::BookHists()
-{
-  // Oct 15, 2007
-  gROOT->cd();
-  TH1::AddDirectory(1);
-
-  AliEMCALFolder* emcal = AliEMCALPi0Calibration::GetEmcalFolder();
-  Int_t it = emcal->GetIterationNumber();
-
-  new TH1F("01_EffMass", "effective mass of #gamma,#gamma(m_{#pi^{0}}=134.98 MeV) ", 60,0.0,0.3);
-
-  TList *l = AliEMCALHistoUtilities::MoveHistsToList(Form("HistsOfCell%4.4i",fAbsId), kFALSE);
-  AliEMCALHistoUtilities::AddToNameAndTitleToList(l, Form("4.4i_It%i",fAbsId,it),
-                                                 Form(" Cell %4.4i, iter. %i",fAbsId, it));
-
-  TH1::AddDirectory(0);
-  return l;
-}
diff --git a/EMCAL/Calib/AliEMCALCell.h b/EMCAL/Calib/AliEMCALCell.h
deleted file mode 100644 (file)
index 6a47887..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-#ifndef ALIEMCALCELL_H
-#define ALIEMCALCELL_H
-/* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
- * See cxx source for full Copyright notice     */
-
-/* $Id: AliEMCALCell.h 24500 2008-03-13 23:39:38Z jklay $ */
-
-//_________________________________________________________________________
-//  EMCAL cell - keep everyrhing for calibration task     
-//  Initial version was created with TDataSet staf
-//  TObjectSet -> TFolder; Sep 6, 2007
-//                  
-//*-- Author: Aleksei Pavlinov (WSU, Detroit, USA) 
-
-#include <TFolder.h>
-
-class TList;
-class TH1;
-class TF1;
-class TNtuple;
-
-class AliEMCALCalibData;
-class AliEMCALCalibCoefs;
-
-class AliEMCALCell : public TFolder {
-
- public:
-  
-  AliEMCALCell(); //default ctor
-  AliEMCALCell(const AliEMCALCell& cell); //copy ctor
-  AliEMCALCell(const Int_t absId, const char* title="EMCAL cell");
-
-  virtual ~AliEMCALCell();
-
-  AliEMCALCell & operator = (const AliEMCALCell  & /*rvalue*/) {
-    // assignement operator requested by coding convention but not
-    // needed                           
-    Fatal("operator =", "not implemented");
-    return *this;
-  };
-
-  void SetCCfromDB(AliEMCALCalibData *ccDb);  // obsolete
-  void SetCCfromCCTable(AliEMCALCalibCoefs *t);
-
-  TList*   GetHists() {return fLh;}
-  TObject* GetParent() {return fParent;}
-  void     SetParent(TObject *parent) {fParent=parent;}
-  Int_t    GetAbsId()  const {return fAbsId;}
-  Int_t    GetSupMod() const {return fSupMod;}
-  Int_t    GetModule() const {return fModule;}
-
-  Double_t GetCcIn()  const {return  fCcIn;}
-  Double_t GetCcOut() const {return  fCcOut;}
-  TF1*     GetFunction() const {return fFun;}
-
-  void FillEffMass(const Double_t mgg);
-  void FillCellNtuple(TNtuple *nt);
-
-  static void FitHist(TH1* h, const char* name="",const char* opt="");
-  // Menu
-  void FitEffMassHist(const char* opt=""); //*MENU*
-  void PrintInfo();                            //*MENU*
- protected:
-  TObject* fParent; // parent
-  TList* fLh;       // list of hists
-  //
-  Int_t fAbsId;   // abs cell id 
-  Int_t fSupMod;  // super module number
-  Int_t fModule;  // module number inside SM
-  Int_t fPhi;     // phi number of cell inside module  
-  Int_t fEta;     // eta number of cell inside module  
-  Int_t fPhiCell; // phi number of cell SM  
-  Int_t fEtaCell; // eta number of cell SM  
-  // CC staf
-  Double_t fCcIn;  // input  cc in GeV (from Db or table
-  Double_t fCcOut; // output cc  in GeV (from fit now)
-
-  TF1*   fFun;     //! fitting function - gaus + pol2
-  //
-  TList* BookHists();
-
-  ClassDef(AliEMCALCell,1) // EMCAL cell
-    
-};
-
-#endif // ALIEMCALCELL_H
diff --git a/EMCAL/Calib/AliEMCALCellInfo.cxx b/EMCAL/Calib/AliEMCALCellInfo.cxx
deleted file mode 100644 (file)
index 805d6c1..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-/**************************************************************************
- * Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
- *                                                                        *
- * Author: The ALICE Off-line Project.                                    *
- * Contributors are mentioned in the code where appropriate.              *
- *                                                                        *
- * Permission to use, copy, modify and distribute this software and its   *
- * documentation strictly for non-commercial purposes is hereby granted   *
- * without fee, provided that the above copyright notice appears in all   *
- * copies and that both the copyright notice and this permission notice   *
- * appear in the supporting documentation. The authors make no claims     *
- * about the suitability of this software for any purpose. It is          *
- * provided "as is" without express or implied warranty.                  *
- **************************************************************************/
-
-/* History of cvs commits:
- *
-* $Log$
-* Revision 1.2  2007/10/16 14:36:39  pavlinov
-* fixed code violation (almost)
-*
-* Revision 1.1  2007/09/12 11:19:24  pavlinov
-* added pi0 calibration, linearity, shower profile
-*
-*/
-
-// Aug 1, 2007 - cells information in one place
-#include "AliEMCALCellInfo.h"
-#include "AliEMCALGeometry.h"
-
-#include <TObjArray.h>
-ClassImp(AliEMCALCellIndexes) 
-
-// ------------------------------------------------------------------------------
-AliEMCALCellIndexes::AliEMCALCellIndexes() : fAbsId(-1), fNSupMod(-1), fNModule(-1), fNIphi(-1), 
-fNIeta(-1), fIPhi(-1), fIEta(-1), fIPhim(-1), fIEtam(-1)   
-{
-}
-
-
-ClassImp(AliEMCALCellInfo)
-
-// ------------------------------------------------------------------------------
-AliEMCALCellInfo::AliEMCALCellInfo() : TNamed("",""), fTable(0), fCurrentInd(0)
-{
-  //default constructor
-}
-
-// ------------------------------------------------------------------------------
-AliEMCALCellInfo::AliEMCALCellInfo(const AliEMCALCellInfo& info) 
-  : TNamed(info.GetName(),info.GetTitle()), 
-    fTable(info.fTable), fCurrentInd(info.fCurrentInd)
-{
-  //copy constructor
-}
-
-// ------------------------------------------------------------------------------
-AliEMCALCellInfo::AliEMCALCellInfo(const char* name, const Int_t nrow) : TNamed(name,"table of cell information") , fTable(0), fCurrentInd(0)
-{
-  fTable = new TObjArray(nrow);
-}
-
-// ------------------------------------------------------------------------------
-void AliEMCALCellInfo::AddAt(AliEMCALCellIndexes* r)
-{
-  (*fTable)[fCurrentInd] = new AliEMCALCellIndexes(*r);
-  fCurrentInd++;
-}
-
-// ------------------------------------------------------------------------------
-AliEMCALCellInfo::~AliEMCALCellInfo()
-{
-  if(fTable) {
-    fTable->Delete();
-    delete fTable;
-  }
-}
-
-// ------------------------------------------------------------------------------
-AliEMCALCellIndexes* AliEMCALCellInfo::GetTable(Int_t i) const
-{
-  // Oct 16, 2007
-  return (AliEMCALCellIndexes*)fTable->At(i);
-}
-
-// ------------------------------------------------------------------------------
-void AliEMCALCellInfo::PrintTable(int ind1, int ind2) const
-{
-  // Oct 16, 2007
-  printf(" %s : %s : #rows %i \n", GetName(), GetTitle(), fTable->GetSize());
-  if(ind1==-1 && ind2==-1) return;
-  printf(" fAbsId fNSupMod fNModule fNIphi fNIeta fIPhi fIEta fIPhim fIEtam\n");
-  if(ind1 < 0) ind1 = 0;
-  if(ind2 >= fTable->GetSize()) ind2 = fTable->GetSize();
-  for(int i=ind1; i<ind2; i++) {
-    AliEMCALCellIndexes* r = GetTable(i);
-    if(r==0) break;
-    printf(" %5.5i    %2.2i      %3.3i    %1.1i    %1.1i    %2.2i    %2.2i    %2.2i    %2.2i\n", 
-    r->fAbsId, r->fNSupMod, r->fNModule, r->fNIphi, r->fNIeta, r->fIPhi, r->fIEta, r->fIPhim,r->fIEtam);
-  }
-}
-
-// ------------------------------------------------------------------------------
-AliEMCALCellInfo *AliEMCALCellInfo::GetTableForGeometry(const char* geoName)
-{
-  // Oct 16, 2007
-  if(geoName==0) return 0;
-  AliEMCALGeometry *g=AliEMCALGeometry::GetInstance(geoName);  
-  return GetTableForGeometry(g);
-}
-
-// ------------------------------------------------------------------------------
-AliEMCALCellInfo *AliEMCALCellInfo::GetTableForGeometry(AliEMCALGeometry *g)
-{
-  // Oct 16, 2007
-  if(g==0) return 0;
-  AliEMCALCellInfo *t = new AliEMCALCellInfo("CellInfo",g->GetNCells());
-
-  for(Int_t absid=0; absid<g->GetNCells(); absid++){
-    AliEMCALCellIndexes r;
-    r.fAbsId   = absid;
-
-    g->GetCellIndex(r.fAbsId,  r.fNSupMod, r.fNModule, r.fNIphi, r.fNIeta);
-    g->GetCellPhiEtaIndexInSModule(r.fNSupMod,r.fNModule,r.fNIphi,r.fNIeta, r.fIPhi,r.fIEta);
-    g->GetModulePhiEtaIndexInSModule(r.fNSupMod,r.fNModule, r.fIPhim, r.fIEtam); 
-
-    t->AddAt(&r);
-  }
-  return t;
-}
diff --git a/EMCAL/Calib/AliEMCALCellInfo.h b/EMCAL/Calib/AliEMCALCellInfo.h
deleted file mode 100644 (file)
index a9a76b4..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-#ifndef ALIEMCALCELLINFO_H
-#define ALIEMCALCELLINFO_H
-/* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
- * See cxx source for full Copyright notice     */
-
-/* $Id: AliEMCALCellInfo.h 24500 2008-03-13 23:39:38Z jklay $ */
-
-//_________________________________________________________________________
-// This is a table of emcal indexes.
-// Simplify a work with cell indexes 
-// Initial version was created with TTable staff
-// 
-//*-- Authors: Aleksei Pavlinov (WSU)
-#include <TNamed.h>
-
-// Aug 1, 2007; Corr. Sep 05
-// cellInfo -> AliEMCALCellIndexes - Oct 15, 2007
-
-class AliEMCALCellIndexes : public TObject { 
-  // See AliEMCALGeometry
-  // Indexes information
-  friend class AliEMCALCellInfo;
-  friend class AliEMCALPi0Calibration;
- public:
-  virtual const char* GetName() const {return Form("Ind%5.5i",fAbsId);}
-  AliEMCALCellIndexes();
-  virtual ~AliEMCALCellIndexes() {};
-
- protected:
-  Int_t fAbsId;   // abs id of cell as in Geant
-  // Geant numbering tree - see AliEMCALv2
-  Int_t fNSupMod; // index of super module (SM)
-  Int_t fNModule; // index of module in SM
-  Int_t fNIphi;   // phi index of tower(cell) in module
-  Int_t fNIeta;   // eta index of tower(cell) in module
-  // Inside SM - used in cluster finder
-  Int_t fIPhi;    // phi index of tower(cell) in SM 
-  Int_t fIEta;    // eta index of tower(cell) in SM
-  Int_t fIPhim;   // phi index of module in SM
-  Int_t fIEtam;   // eta index of module in SM
-  // Coordinate information should be include too ??
-  ClassDef(AliEMCALCellIndexes,2) // Cell indexes information
-};
-
-class AliEMCALGeometry;
-class TObjArray;
-
-class AliEMCALCellInfo : public TNamed {
- public:
-  AliEMCALCellInfo(); // default constractor
-  AliEMCALCellInfo(const AliEMCALCellInfo& info); //copy constructor
-  AliEMCALCellInfo(const char* name, const Int_t nrow);
-  virtual ~AliEMCALCellInfo();
-
-  AliEMCALCellInfo & operator = (const AliEMCALCellInfo  & /*rvalue*/) {
-    // assignement operator requested by coding convention but not needed
-    Fatal("operator =", "not implemented");
-    return *this;
-  };
-  // 
-  void AddAt(AliEMCALCellIndexes* r);
-  AliEMCALCellIndexes* GetTable(Int_t i) const;
-
-  void PrintTable(int ind1=-1, int ind2=-1) const;  //*MENU*
-
-  static AliEMCALCellInfo *GetTableForGeometry(const char* geoName);
-  static AliEMCALCellInfo *GetTableForGeometry(AliEMCALGeometry *g);
-  //
- protected:
-  TObjArray *fTable; // Array of  AliEMCALCellIndexes
-  Int_t fCurrentInd; // Current index
-
-  ClassDef(AliEMCALCellInfo,2) // Table of emcal indexes  
-};
-
-#endif // ALIEMCALCELLINFO_H
diff --git a/EMCAL/Calib/AliEMCALFolder.cxx b/EMCAL/Calib/AliEMCALFolder.cxx
deleted file mode 100644 (file)
index cb452ad..0000000
+++ /dev/null
@@ -1,675 +0,0 @@
-/**************************************************************************
- * Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
- *                                                                        *
- * Author: The ALICE Off-line Project.                                    *
- * Contributors are mentioned in the code where appropriate.              *
- *                                                                        *
- * Permission to use, copy, modify and distribute this software and its   *
- * documentation strictly for non-commercial purposes is hereby granted   *
- * without fee, provided that the above copyright notice appears in all   *
- * copies and that both the copyright notice and this permission notice   *
- * appear in the supporting documentation. The authors make no claims     *
- * about the suitability of this software for any purpose. It is          *
- * provided "as is" without express or implied warranty.                  *
- **************************************************************************/
-
-/* $Id: AliEMCALFolder.cxx 24500 2008-03-13 23:39:38Z jklay $ */
-
-//_________________________________________________________________________
-// Top EMCAL folder which will keep all 
-// information about EMCAL itself,
-// super Modules (SM), modules, towers, 
-// set of hists and so on.
-//
-//*-- Author: Aleksei Pavlinov (WSU, Detroit, USA) 
-
-#include "AliEMCALFolder.h"
-#include "AliEMCALHistoUtilities.h"
-#include "AliEMCALGeometry.h"
-#include "AliEMCALSuperModule.h"
-#include "AliEMCALCell.h"
-#include "AliESDCaloCluster.h"
-
-#include "AliRun.h"
-
-#include "AliEMCALCalibData.h"
-#include "AliCDBMetaData.h"
-#include "AliCDBId.h"
-#include "AliCDBEntry.h"
-#include "AliCDBManager.h"
-#include "AliCDBStorage.h"
-
-#include "AliEMCALCalibCoefs.h"
-#include "AliEMCALDigit.h"
-#include "AliEMCALRecPoint.h"
-
-#include "AliEMCALPi0SelectionParam.h"
-
-#include <cassert>
-
-#include <TROOT.h>
-#include <TStyle.h>
-#include <TList.h>
-#include <TH1.h>
-#include <TF1.h>
-#include <TFile.h>
-#include <TCanvas.h>
-#include <TClonesArray.h>
-#include <TKey.h>
-#include <TNtuple.h>
-#include <TLegend.h>
-#include <TLegendEntry.h>
-#include <TLine.h>
-
-  const TString AliEMCALFolder::fgkBaseFolderName("EMCAL");
-  const TString AliEMCALFolder::fgkCCFirstName("CCFIRST");
-  const TString AliEMCALFolder::fgkCCinName("CCIN");
-  const TString AliEMCALFolder::fgkCCoutName("CCOUT");
-  const TString AliEMCALFolder::fgkDirOfRootFiles("$HOME/ALICE/SHISHKEBAB/RF/CALIB/JUL16/");
-
-typedef  AliEMCALHistoUtilities u;
-
-ClassImp(AliEMCALFolder)
-
-//AliEMCALGeometry* AliEMCALFolder::fGeometry = 0;
-
-//_____________________________________________________________
-AliEMCALFolder::AliEMCALFolder() : 
-  TFolder(), 
-  fCounter(0), fGeometry(0), fNumOfCell(0), fLhists(0), fLofCells(0),fPi0SelPar(0),fCalibData(0),
-  fCellNtuple(0),fLobj(0)
-{
-  //default constructor
-}
-
-//_____________________________________________________________
-AliEMCALFolder::AliEMCALFolder(const AliEMCALFolder& folder) : 
-  TFolder(folder.GetName(),folder.GetTitle()), 
-  fCounter(folder.fCounter), 
-  fGeometry(folder.fGeometry), fNumOfCell(folder.fNumOfCell), 
-  fLhists(folder.fLhists), fLofCells(folder.fLofCells),
-  fPi0SelPar(folder.fPi0SelPar),fCalibData(folder.fCalibData),
-  fCellNtuple(folder.fCellNtuple),fLobj(folder.fLobj)
-{
-  //copy constructor
-}
-
-//_____________________________________________________________
-AliEMCALFolder::AliEMCALFolder(const char* name, const char* title, Bool_t putToBrowser) : 
-  TFolder(name,title),
-  fCounter(-1), fGeometry(0), fNumOfCell(0), fLhists(0), fLofCells(0),fPi0SelPar(0),fCalibData(0),
-  fCellNtuple(0),fLobj(0)
-{
-  Init(putToBrowser);
-}
-
-//_____________________________________________________________
-AliEMCALFolder::AliEMCALFolder(const Int_t it, const char* title, Bool_t putToBrowser) : 
-  TFolder(Form("%s_%2.2i", AliEMCALFolder::fgkBaseFolderName.Data(),it),title),
-  fCounter(it), fGeometry(0), fNumOfCell(0), fLhists(0), fLofCells(0),fPi0SelPar(0),fCalibData(0),
-  fCellNtuple(0),fLobj(0)
-{
-  Init(putToBrowser);
-}
-
-//_____________________________________________________________
-AliEMCALFolder::~AliEMCALFolder()
-{
-  // dtor
-}
-
-//_____________________________________________________________
-void AliEMCALFolder::Init(Bool_t putToBrowser)
-{
-  // Initialize all data structure
-  fLobj = new TList;
-  fLobj->SetName("Objects"); // name is good ?
-  this->Add((TObject*)fLobj);
-  //this->AddObject((TObject*)fLobj, kTRUE);
-  // Get default geometry - "SHISH_77_TRD1_2X2_FINAL_110DEG"; May 29, 2007
-  fGeometry = AliEMCALGeometry::GetInstance(); // should be define before 
-  fLobj->Add(fGeometry);
-
-  // Initial cc with decalibration
-  // Jun 13, 2007;
-  // Jul 13 - See ~/macros/ALICE/sim.C  for choice of CDB
-  AliEMCALCalibData *calData[1];
-  // Get from defined arrea;
-  // First table is table which used in rec.points finder.
-  Add(AliEMCALCalibCoefs::GetCalibTableFromDb(fgkCCFirstName.Data(),calData));
-  fCalibData = calData[0];
-  fLobj->Add(fCalibData);
-  if(GetIterationNumber()<=1) {
-    Add(AliEMCALCalibCoefs::GetCalibTableFromDb(fgkCCinName.Data(), calData));
-  }
-
-  // Selection Parameter
-  fPi0SelPar = AliEMCALPi0SelectionParam::Set1();
-  this->Add(fPi0SelPar);
-  //
-  fLhists = BookHists();
-  fLobj->Add(fLhists);
-
-  // dimension should be get from geometry - 4*12*24*11); 
-  fNumOfCell = fGeometry->GetNCells();
-  fLofCells  = new AliEMCALCell*[fNumOfCell];
-  for(int i=0; i<fNumOfCell; i++) fLofCells[i] = 0;
-
-  printf("<I> Create AliEMCALFolder : it %i : name %s\n ", fCounter, GetName());
-
-  if(putToBrowser) gROOT->GetListOfBrowsables()->Add(this); // for testing purpuse
-} 
-
-//_____________________________________________________________
-AliEMCALSuperModule* AliEMCALFolder::GetSuperModule(const Int_t nm)
-{
-  // Oct 15, 2007
-  AliEMCALSuperModule *sm = 0;
-
-  TObject *set = FindObject(Form("SM%2.2i",nm));
-  if(set) sm = (AliEMCALSuperModule*)set;
-
-  return sm;
-}
-
-//_____________________________________________________________
-AliEMCALCell* AliEMCALFolder::GetCell(const Int_t absId)
-{ // May 30, 2007
-  if(absId<0 || absId >= fNumOfCell) return 0;
-  else return fLofCells[absId];
-}  
-
-//_____________________________________________________________
-void  AliEMCALFolder::SetCell(AliEMCALCell *cell, const Int_t absId) 
-{
-  // Oct 15, 2007
-  if(absId>=0 && absId < fNumOfCell) {
-    fLofCells[absId] = cell;
-  }
-}  
-
-//_____________________________________________________________
-AliEMCALPi0SelectionParRec* AliEMCALFolder::GetPi0SelectionParRow(Int_t nrow)
-{
-  // Oct 15, 2007
-  AliEMCALPi0SelectionParRec* r=0;
-  if(fPi0SelPar) {
-    r = fPi0SelPar->GetTable(nrow);
-  }
-  return r;
-}
-
-//_____________________________________________________________
-void AliEMCALFolder::FillPi0Candidate(const Double_t mgg, AliESDCaloCluster* cl1, AliESDCaloCluster* cl2)
-{
-  // Oct 15, 2007
-  static Int_t absIdMax, nm1, nm2;
-
-  u::FillH1(fLhists, 0, 1.);  // number entries 
-  u::FillH1(fLhists, 1, mgg);
-
-  nm1 = GetSMNumber(cl1);
-  nm2 = GetSMNumber(cl2);
-
-  if(nm1==-1 || nm2==-1) assert(0);
-
-  if(nm1 != nm2) return; // Both cluster should be in the same SM
-
-  AliESDCaloCluster* cl = cl1;
-  if(cl1->E() < cl2->E()) cl = cl2; // Get cluster with highest energy
-
-  const Int_t  kNdigits  = cl->GetNumberOfDigits();
-  const Short_t* absId   = cl->GetDigitIndex()->GetArray();
-
-  AliEMCALCalibCoefs *tFirst = GetCCFirst();
-  AliEMCALCalibCoef *rFirst=0;
-
-  int    indMax = 0, id=0;
-  id = Int_t(absId[0]);
-  rFirst = tFirst->GetTable(id);
-  double emax   = 0;//cl->GetTrueDigitEnergy(indMax, rFirst->fCc);
-  if(kNdigits > 1) {
-    for(int i=1; i<kNdigits; i++) {
-      id = Int_t(absId[i]);
-      rFirst = tFirst->GetTable(id);
-      if(emax < 0){//cl->GetTrueDigitEnergy(i, rFirst->fCc)) {
-        indMax = i;
-        emax   = 0;//cl->GetTrueDigitEnergy(i, rFirst->fCc);
-      }
-    }
-  }
-  if(emax/cl->E() > 0.5) { // more than 50% of cluster energy
-    u::FillH1(fLhists, 0, 2.); // number "good" entries 
-    absIdMax = Int_t(absId[indMax]);
-    FillPi0Candidate(mgg, absIdMax, nm1);
-  }
-}
-
-//_____________________________________________________________
-void AliEMCALFolder::FillPi0Candidate(const Double_t mgg, Int_t absIdMax, Int_t nm)
-{
-  // Jun 08
-  static Int_t nSupModMax, nModuleMax, nIphiMax, nIetaMax, iphiCellMax, ietaCellMax;
-  static AliEMCALCell* cell;
-  static TFolder *set; 
-  static AliEMCALSuperModule *sm;
-
-  fGeometry->GetCellIndex(absIdMax, nSupModMax, nModuleMax, nIphiMax, nIetaMax);
-  if(nm != nSupModMax) assert(0);
-
-  fGeometry->GetCellPhiEtaIndexInSModule(nSupModMax, nModuleMax, nIphiMax, nIetaMax, iphiCellMax, ietaCellMax);
-
-  cell = 0;
-  set  = 0;
-  sm   = 0;
-  if(GetCell(absIdMax)==0) {
-    cell = new AliEMCALCell(absIdMax, Form("sm%2.2i:phi%2.2i:eta%2.2i(%4.4i)",nSupModMax,iphiCellMax,ietaCellMax,absIdMax));
-    SetCell(cell, absIdMax);
-    // For browser
-    set  = dynamic_cast<TFolder*>(FindObject(Form("SM%2.2i",nSupModMax)));
-    if(set==0) {
-      sm = new  AliEMCALSuperModule(nSupModMax);
-      Add(sm);
-      sm->SetParent(this);
-      sm->Init();
-    } else {
-      sm = dynamic_cast<AliEMCALSuperModule*>(set);
-    }
-    if(sm) {
-      sm->AddCellToEtaRow(cell, ietaCellMax);
-      cell->SetParent(sm);
-    }
-    // 
-    cell->SetCCfromCCTable(GetCCIn());
-  } else {
-    cell = GetCell(absIdMax);
-    set  = dynamic_cast<TFolder*>(FindObject(Form("SM%2.2i",nm)));
-    if(set) sm = (AliEMCALSuperModule*)set;
-  }
-  if(sm == 0) assert(0);
-  if(nm != sm->GetSMNumber()) assert(0);
-
-  u::FillH1(sm->GetHists(), 0, mgg);
-  cell->FillEffMass(mgg);
-}
-
-//_____________________________________________________________
-void AliEMCALFolder::FitAllSMs()
-{ // Jun 14, 2007
-  // Only first SM now - should be changed in the future 
-   AliEMCALSuperModule *sm0 = GetSuperModule(0);
-   sm0->FitForAllCells();
-   // Get input calibration table
-   AliEMCALCalibCoefs *ccIn = GetCCIn();
-   if(ccIn == 0) {
-     printf("<E> no input cc \n"); 
-     return;
-   }
-   // New calibration table
-   AliEMCALCalibCoefs *ccOut = new AliEMCALCalibCoefs(fgkCCoutName.Data(), ccIn->GetNRows());
-   AliEMCALCalibCoef *rIn=0, rOut;
-   for(Int_t i=0; i<ccIn->GetNRows(); i++){
-     rIn  = ccIn->GetTable(i);
-     rOut = (*rIn);
-     AliEMCALCell* cell = GetCell(rIn->fAbsId);
-     if(cell && cell->GetSupMod() == 0) { // only first module now
-       rOut.fCc = cell->GetCcOut();
-     }
-     ccOut->AddAt(&rOut);
-   }
-   ccOut->Purge();
-   Add(ccOut);
-}
-
-//_____________________________________________________________
-AliEMCALCalibCoefs* AliEMCALFolder::GetCCTable(const char* name) const
-{
-  // Oct 15, 2007
-  TObject *obj = FindObject(name);
-  if(obj) return (AliEMCALCalibCoefs*)obj;
-  else    return 0;
-}
-
-//_____________________________________________________________
-Int_t AliEMCALFolder::GetSMNumber(AliESDCaloCluster* cl)
-{
-  // Oct 15, 2007
-  static Int_t absId, nSupMod, nModule, nIphi, nIeta;
-  nSupMod = -1; // if negative something wrong
-  if(cl) {
-    absId = Int_t(cl->GetDigitIndex()->At(0));
-    fGeometry->GetCellIndex(absId, nSupMod, nModule, nIphi, nIeta);
-  }
-  return nSupMod;
-}
-
-// Recalibration staf - Jun 18,2007
-//_____________________________________________________________
-AliEMCALRecPoint* AliEMCALFolder::GetRecPoint(AliESDCaloCluster *cl, AliEMCALCalibCoefs *tOld,AliEMCALCalibCoefs *tNew,
-TList *l, Double_t deff, Double_t w0, Double_t phiSlope)
-{
-  //
-  // Static function;
-  // Get recalibrated rec.point from ESD cluster
-  // If tNew == 0 -> get ideal calibration with  adcCHANNELEC
-  //
-  static Double_t adcCHANNELEC = 0.0153;  // Update 24 Apr 2007: 250./16/1024 - width of one ADC channel in GeV
-  //static Float_t ECAW0 = 4.5; // hard coded now - see AliEMCALClusterizerv1::InitParameters()
-  static Double_t eCAW0 = 5.5; // Beter case for simulation 
-  Int_t ampDigi=0, indMax=-1;
-  Double_t eDigiNew=0.0, eDigiMax=0.0; 
-  static TArrayD ed;
-
-  if(w0 > 0.5) eCAW0 = w0;
-  AliEMCALRecPoint *rp=0;
-  AliEMCALCalibCoef *rOld=0, *rNew=0;
-  //   printf(" AliEMCALFolder::GetRecPoint() : RECALIBRATION : w0 %f eCAW0 %f \n", w0, eCAW0);
-  if(cl && tOld){
-    // cl->PrintClusterInfo(1);
-    const Int_t kNdg   = cl->GetNumberOfDigits();
-    //    const Int_t nkPrim = cl->GetNumberOfPrimaries();
-
-    const Short_t  kPrim    = cl->GetLabel();
-    const Short_t* dgAbsId = cl->GetDigitIndex()->GetArray();
-    //    const UShort_t* dgAmp   = cl->GetDigitAmplitude(); // This is energy - bad definition
-
-    rp = new AliEMCALRecPoint(""); // opt=""
-    rp->SetClusterType(AliESDCaloCluster::kEMCALClusterv1);
-    AliEMCALDigit* dg=0;
-    TClonesArray digits("AliEMCALDigit", kNdg);
-    Int_t absId = 0;
-    ed.Set(kNdg); // resize array
-    for(Int_t i=0; i<kNdg; i++){
-      // Save just abs id and amplitude of digits which will be used for recalculation of
-      // cluster energy and position
-      absId   = Int_t(dgAbsId[i]);
-      rOld    = tOld->GetTable(absId);
-      //ampDigi = cl->GetTrueDigitAmplitude(i, rOld->fCc); // True amplitude
-
-      new(digits[i]) AliEMCALDigit(Int_t(kPrim),0, absId, ampDigi, 0.0, i, 0.0); 
-      dg     =  (AliEMCALDigit*)digits[i];
-
-      if(tNew) rNew = tNew->GetTable(absId);
-      if(rNew) {
-        rNew  = tNew->GetTable(absId);
-        eDigiNew = Double_t(ampDigi) * rNew->fCc;     // Recalibrate with new cc
-      } else {
-        eDigiNew = Double_t(ampDigi) * adcCHANNELEC; // Ideal calibration
-      }
-      //eDigiNew = Double_t(cl->GetTrueDigitEnergy(i)); // Copy from ESD for checking
-      rp->AddDigit(*dg, Float_t(eDigiNew));
-      ed[i] = eDigiNew;
-      if(eDigiMax<eDigiNew) {
-        eDigiMax = eDigiNew;
-        indMax   = i;
-      }
-      u::FillH1(l, 14, eDigiNew);
-      u::FillH1(l, 15, Double_t(absId));
-      //printf("<I> digit %i amp %i rOld->fCc %6.5f GeV rNew->fCc %6.5f GeV\n", i, ampDigi, rOld->fCc, rNew->fCc);
-    }
-    //printf("<I> recalibration of digits was done ! \n");
-    //    rp->EvalAll(eCAW0, &digits);
-    if(indMax>=0) rp->SetIndMaxDigit(indMax);
-    if(deff > 0.0) { // for fit
-      rp->EvalLocalPositionFit(deff, eCAW0, phiSlope, &digits); // I need just position
-    } else { // get w0 and deff from parametrisation - Sep 4, 2007 
-      rp->EvalLocalPosition2(&digits, ed);
-    }
-    digits.Delete();
-  }
-  //rp->Print("print");
-  return rp;
-}
-
-//_____________________________________________________________
-//void  AliEMCALFolder::Save(const char *fn, const char *opt)
-//{ 
-//  //
-//  // Jun 5, 2007; See TFileIter and StFMC.cxx
-//  // Jul 16 - added fgkDirOfRootFiles
-//  // Sep 7, 2007 - should be changed without TFileIter
-//  /*
-//  TString FN = fgkDirOfRootFiles;
-//  FN += fn;
-//  if(FN.Contains(".root")==0) FN += ".root";
-//  TFileIter f(FN.Data(),opt,"EMCAL object");
-//  UInt_t eventNum  = 0; // just one object
-//  UInt_t runNumber = 0; // 0 now, - may statistics on selector
-//  f.NextEventPut(this, eventNum, runNumber);
-//  printf(" Save %s to file %s\n", GetName(), FN.Data());
-//  */
-//  //if(fn || opt);//For what is this?, commented due to compilation warnings
-//
-//}
-
-//_____________________________________________________________
-AliEMCALFolder* AliEMCALFolder::ReadFolder(const char *fn, const char *opt)
-{ 
-  //
-  // Jun 27, 2007
-  // Jul 16 - added fgkDirOfRootFiles
-  //
-  printf("<I> AliEMCALFolder::ReadFolder(%s,%s)\n",fn,opt); 
-  AliEMCALFolder* emcal = 0;
-  TH1::AddDirectory(0); // this is obligatory
-
-  TString sfn = fgkDirOfRootFiles;
-  sfn += fn;
-  if(sfn.Contains(".root")==0) sfn += ".root";
-
-  TFile f(sfn.Data(),opt);
-  if(f.IsOpen()) {
-    TList *l = f.GetListOfKeys();
-    printf("<I> The total number of the objects: %d \n File %s\n", l->GetSize(), sfn.Data());
-
-    TKey *key = (TKey*)l->At(0);
-    emcal = (AliEMCALFolder*)key->ReadObj();
-    f.Close();
-    if(emcal) emcal->InitAfterRead();
-  }
-  return emcal;
-}
-
-//_____________________________________________________________
-void  AliEMCALFolder::InitAfterRead()
-{ 
-  // Oct 15, 2007
-  fLobj    = (TList*)FindObject("Objects");
-  if(fLobj) {
-    fLhists = (TList*)fLobj->FindObject("HistsOfEmcal");
-  }
-}
-
-//_____________________________________________________________
-void AliEMCALFolder::DrawQA(const int nsm)
-{ 
-  //
-  // Jun 25, 2007
-  //
-
-  AliEMCALSuperModule* sm = GetSuperModule(nsm);
-  if(sm==0) return;
-  TList *l = sm-> GetHists();
-  Int_t nx=2, ny=2, wh=530, ww=750;
-
-  TCanvas *c = new TCanvas(Form("QA_%i",GetIterationNumber()), Form("QA_%i",GetIterationNumber()),
-                          10, 10, ww, wh);
-  c->Divide(nx,ny);
-
-  int ic=1;
-  c->cd(ic++);
-  TH1 *h1 = (TH1*)l->At(0);
-  sm->FitEffMassHist(); 
-  u::DrawHist(h1,2);
-  h1->SetAxisRange(0.03, 0.28);
-
-  c->cd(ic++);
-  sm->DrawCC(0);  
-  TH1 *hccin = (TH1*)l->At(1);
-  hccin->SetAxisRange(14., 20.);
-
-  gStyle->SetOptStat(1111);
-  c->cd(ic++);
-  TH1 *hmass = (TH1*)l->At(3);
-  u::DrawHist(hmass, 2);
-  hmass->SetAxisRange(0.12, 0.16);
-
-  c->cd(ic++);
-  TH1 *hres = (TH1*)l->At(4);
-  u::DrawHist(hres, 2);
-  hres->SetAxisRange(0.05, 0.120);
-
-  if(ic<nx*ny) {
-    c->cd(ic++);
-    u::DrawHist((TH1*)l->At(5), 2);
-
-    c->cd(ic++);
-    u::DrawHist((TH1*)l->At(6), 2);
-  }
-  c->Update();
-}
-
-//_____________________________________________________________
-TList* AliEMCALFolder::BookHists()
-{
-  // Oct 15, 2007
-  gROOT->cd();
-  TH1::AddDirectory(1);  
-
-  new TH1F("00_HStat", "hist of common EMCAL statistics", 100, 0.5, 100.5);
-  new TH1F("01_EffMassAll", "effective mass of #gamma,#gamma(m_{#pi^{0}}=134.9766 MeV) - whole EMCAL", 250,0.0,0.5);
-
-  TList *l = AliEMCALHistoUtilities::MoveHistsToList("HistsOfEmcal", kFALSE);
-
-  TH1::AddDirectory(0);
-  return l;
-}
-
-//_____________________________________________________________
-void AliEMCALFolder::CreateCellNtuple()
-{
-  // Jun 28, 2007
-  if(fCellNtuple) { // Already exist
-    fCellNtuple->Print();
-    return;
-  }
-  // Create ntuple
-  Int_t bsize = int(1.e+5);
-  fCellNtuple = new TNtuple("cells","Cells Ntuple for quick analysis",
-                           "fAbsId:fSupMod:fModule:fPhi:fEta:fPhiCell:fEtaCell:fCcIn:fCcOut", bsize);
-  AliEMCALCell *cell=0;
-  // Fill ntuple
-  AliEMCALSuperModule* sm = GetSuperModule(0);
-  if(sm) printf(" TNtuple was created ! sm0 %s \n", sm->GetName());
-  for(int eta=0; eta<48; eta++) { // eta row
-    TFolder *setEta = dynamic_cast<TFolder*>(sm->FindObject(Form("ETA%2.2i",eta)));
-    if(setEta) {
-      printf(" ***** eta row %s ******\n", setEta->GetName());
-      TList* l = (TList*)setEta->GetListOfFolders();
-      for(int phi=0; phi<l->GetSize(); phi++) { // cycle on cells (phi directions)
-        cell = (AliEMCALCell*)l->At(phi);
-        if(cell) {
-          cell->FillCellNtuple(fCellNtuple);
-          //printf(" fill cell %s : %s \n", cell->GetName(), cell->GetTitle());
-       }
-      }
-    }
-  }
-  fCellNtuple->Print();
-  fLobj->Add(fCellNtuple); 
-}
-
-//_____________________________________________________________
-void AliEMCALFolder::CreateAndFillAdditionalHists()
-{
-  // Oct 15, 2007
-  CreateCellNtuple();
-  TH1::AddDirectory(0);  
-  fLhists->Add(new TH1F("02_CCoutOnEdge", "cc out on edge of calorimeter (in MeV)", 70, 12., 19.));
-  fLhists->Add(new TH1F("03_CCoutInside", "cc out inside  of calorimeter (in MeV)", 70, 12., 19.));
-  fLhists->Add(new TH1F("04_CCoutOnEdge2", "cc out on edge of calorimeter(2) (in MeV)", 70, 12., 19.));
-  // Fill
-  Float_t* args;
-  for(Int_t i=0; i<(Int_t)fCellNtuple->GetEntries(); i++){
-    fCellNtuple->GetEvent(i);
-    args = fCellNtuple->GetArgs();
-    Int_t phi = (Int_t)args[5];
-    Int_t eta = (Int_t)args[6];
-    Double_t cc = (Double_t)args[8]*1000.;
-    if     ((phi==0||phi==23) || (eta==0||eta==47)) u::FillH1(fLhists, 2, cc);
-    else if((phi==1||phi==22) || (eta==1||eta==46)) u::FillH1(fLhists, 4, cc); // next to edge
-    else                                            u::FillH1(fLhists, 3, cc);
-  }
-  // Drawing
-  Int_t wh=530, ww=750;
-  TCanvas *c = new TCanvas("c_edge","CEDGE", 10, 10, ww, wh);
-
-  gStyle->SetOptStat(1100);
-  gStyle->SetOptFit(111);
-  TH1 *h1 = (TH1*)fLhists->At(3);
-  TF1 *g = u::Gausi("ccInside", 14.7, 16.4, h1);
-  g->SetLineColor(kRed);
-  h1->Fit(g,"Q+","", 14.7, 16.4);
-  u::DrawHist(h1,2);
-  h1->SetTitle("CC distribution after #pi^{0} calibration");
-  h1->SetXTitle("  MeV  ");
-  h1->SetYTitle("  N  ");
-  //  TLatex *lat1 = u::Lat(Form("rel.width = %4.2f%%", 
-  //100.*h1->GetRMS()/ h1->GetMean()), 16.5, 100., 12, 0.045);
-  //TLatex *lat2 = u::Lat(Form("rel.width = %4.2f%% (from fit)", 
-  //                100.*g->GetParameter(2)/ g->GetParameter(1)), 16.5, 70., 12, 0.045);
-
-  if(0) {
-    TH1 *h2 = (TH1*)fLhists->At(2);
-    u::DrawHist(h2,2,1,"same",2);
-  }
-
-  TH1F *hccFirst = AliEMCALCalibCoefs::GetHistOfCalibTableFromDb("ccTmp");
-  u::DrawHist(hccFirst,2,1,"same",3);
-
-  
-  // Ideal calibration - Jul 18, 2007
-  Double_t adcCHANNELEC = 0.0153, ccIdeal =  adcCHANNELEC*1.e+3;
-  Double_t ym = h1->GetMaximum();
-  TLine *l = new TLine(ccIdeal,-ym*0.05, ccIdeal,ym*1.05);
-  l->SetLineColor(kBlue);
-  l->Draw(); 
-
-  TLegend *leg = new TLegend(0.1,0.6, 0.45,0.85);
-  leg->AddEntry(hccFirst, "Initial cc ", "L");
-  leg->AddEntry(h1, "Final cc", "L");
-  TLegendEntry *le=0;
-  if(l) {
-    le  = leg->AddEntry(l, "Ideal calibration", "L");
-    le->SetTextColor(l->GetLineColor());
-  }
-
-  TH1 *hCcEdge  = (TH1*)fLhists->At(2);
-  TH1 *hCcEdge2 = (TH1*)fLhists->At(4);
-  if(1) {
-    u::DrawHist(hCcEdge,2,kGreen,"same",1);
-    le = leg->AddEntry(hCcEdge , "Edge cell", "L");
-    le->SetTextColor(hCcEdge->GetLineColor());
-
-    u::DrawHist(hCcEdge2,2, 28,"same",1); // 28 - like brown
-    le = leg->AddEntry(hCcEdge2 , "Edge cell (2)", "L");
-    le->SetTextColor(hCcEdge2->GetLineColor());
-    u::DrawHist(h1,2,1,"same");
-  }
-
-  leg->Draw();
-
-  c->Update();
-}
-
-//_____________________________________________________________
-void AliEMCALFolder::TestSMStruct()
-{
-  // testing May 22, 2007
-  for(int m=0; m<12; m++) {
-    AliEMCALSuperModule *sm = new AliEMCALSuperModule(m);
-    Add(sm);
-    sm->SetParent(this);
-  }
-}
-
diff --git a/EMCAL/Calib/AliEMCALFolder.h b/EMCAL/Calib/AliEMCALFolder.h
deleted file mode 100644 (file)
index 006e860..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-#ifndef ALIEMCALFOLDER_H
-#define ALIEMCALFOLDER_H
-/* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
- * See cxx source for full Copyright notice     */
-
-/* History of cvs commits:
- *
-* $Log$
-* Revision 1.3  2007/10/16 14:36:39  pavlinov
-* fixed code violation (almost)
-*
-* Revision 1.2  2007/09/11 19:38:15  pavlinov
-* added pi0 calibration, linearity, shower profile
-*
-*/
-
-//_________________________________________________________________________
-//  Top EMCAL folder - keep everyrhing for calibration task
-//  Initial version was created with TDataSet staf
-//  TObjectSet -> TFolder; Sep 5, 2007
-//                  
-//*-- Author: Aleksei Pavlinov (WSU, Detroit, USA) 
-
-// --- ROOT system ---
-
-#include <TFolder.h>
-#include <TString.h>
-
-class AliEMCALGeometry;
-class AliEMCALSuperModule;
-class AliEMCALCell;
-class AliESDCaloCluster;
-class AliEMCALPi0SelectionParam;
-class AliEMCALPi0SelectionParRec;
-class AliEMCALCalibData;
-class AliEMCALCalibCoefs;
-class AliEMCALRecPoint;
-
-class TList;
-class TNtuple;
-
-class AliEMCALFolder : public TFolder {
-
- public:
-  
-  AliEMCALFolder(); 
-  AliEMCALFolder(const AliEMCALFolder& folder); //copy constructor
-  AliEMCALFolder(const char* name, const char* title="Top EMCAL folder", Bool_t putToBrowser=kFALSE);
-  AliEMCALFolder(const Int_t it, const char* title="Top EMCAL folder", Bool_t putToBrowser=kFALSE);
-
-  virtual ~AliEMCALFolder();
-
-  AliEMCALFolder & operator = (const AliEMCALFolder  & /*rvalue*/) {
-    // assignement operator requested by coding convention but not
-    // needed                           
-    Fatal("operator =", "not implemented");
-    return *this;
-  };
-
-  void Init(Bool_t putToBrowser=kFALSE);
-  // Get methods
-  Int_t GetIterationNumber() const {return fCounter;}
-  AliEMCALSuperModule* GetSuperModule(const Int_t nm);
-  TList*        GetHists() {return fLhists;}
-  AliEMCALCell** GetListOfCells() {return fLofCells;}
-  AliEMCALCell* GetCell(const Int_t absId);
-  void          SetCell(AliEMCALCell *cell, const Int_t absId); 
-  AliEMCALPi0SelectionParam*  GetPi0SelectionPar() {return fPi0SelPar;}
-  AliEMCALPi0SelectionParRec* GetPi0SelectionParRow(Int_t nrow);
-  void FillPi0Candidate(const Double_t mgg, AliESDCaloCluster* cl1, AliESDCaloCluster* cl2);
-  void FillPi0Candidate(const Double_t mgg, Int_t absIdMax, Int_t nm);
-  // Define CC
-  void FitAllSMs();    // SM0 now
-  // Service routine 
-  AliEMCALCalibCoefs* GetCCTable(const char* name) const;
-  AliEMCALCalibCoefs* GetCCFirst() {return GetCCTable(fgkCCFirstName.Data());}
-  AliEMCALCalibCoefs* GetCCIn() {return GetCCTable(fgkCCinName.Data());}
-  AliEMCALCalibCoefs* GetCCOut(){return GetCCTable(fgkCCoutName.Data());}
-  Int_t GetSMNumber(AliESDCaloCluster* cl);
-  // Recalibration staf - Jun 18,2007
-  static AliEMCALRecPoint *GetRecPoint(AliESDCaloCluster *cl,AliEMCALCalibCoefs *tOld,AliEMCALCalibCoefs *tNew, 
-  TList *l=0, Double_t deff=-1., Double_t w0=-1., Double_t phiSlope=0.0); 
-  // MENU
-  //void   Save(const char *fn = "EMCALFOLDER.root", const char *opt="RECREATE");  // *MENU*
-  static AliEMCALFolder*  ReadFolder(const char *fn = "EMCALFOLDER.root", const char *opt="READ");
-  void   InitAfterRead();                // *MENU*
-  void   DrawQA(const int nsm=0); // *MENU*
-  void   CreateCellNtuple();      // *MENU*
-  void   CreateAndFillAdditionalHists(); // *MENU*
-
-  static const TString GetBaseFolderName() {return fgkBaseFolderName;}
-  static const TString GetCCinName()       {return fgkCCinName;}
- protected:
-  TList* BookHists();
-  Int_t fCounter; // Counter of iteration 
- //
-  AliEMCALGeometry *fGeometry; //! pointer to EMCAL geometry
-  //
-  Int_t     fNumOfCell;     // number of cells as in geometry
-
-  TList*    fLhists;        //! for speed 
-  AliEMCALCell** fLofCells; //! unifrom array of cells for fast access; invisible from browser
-  AliEMCALPi0SelectionParam* fPi0SelPar; // pi0 selection parameters 
-  AliEMCALCalibData *fCalibData; //!
-  // 
-  TNtuple *fCellNtuple;  //! for quick cell anaylsis
-
-  static const TString fgkBaseFolderName;  // base name of EMCAL Folder  
-  static const TString fgkCCFirstName;     // name of first calib.table 
-  static const TString fgkCCinName;        // name of initial calib.coefs. table 
-  static const TString fgkCCoutName;       // name of out calib.coefs. table 
-  static const TString fgkDirOfRootFiles;  // name of directory for saving EMCAL folder
-
-  TList *fLobj; // list of all objects
-
-  void TestSMStruct();  // *MENU*
-
-  ClassDef(AliEMCALFolder,3) // EMCAL folder
-    
-};
-
-#endif // ALIEMCALFOLDER_H
diff --git a/EMCAL/Calib/AliEMCALPi0Calibration.cxx b/EMCAL/Calib/AliEMCALPi0Calibration.cxx
deleted file mode 100644 (file)
index bb05c2d..0000000
+++ /dev/null
@@ -1,1619 +0,0 @@
-/**************************************************************************
- * Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
- *                                                                        *
- * Author: The ALICE Off-line Project.                                    *
- * Contributors are mentioned in the code where appropriate.              *
- *                                                                        *
- * Permission to use, copy, modify and distribute this software and its   *
- * documentation strictly for non-commercial purposes is hereby granted   *
- * without fee, provided that the above copyright notice appears in all   *
- * copies and that both the copyright notice and this permission notice   *
- * appear in the supporting documentation. The authors make no claims     *
- * about the suitability of this software for any purpose. It is          *
- * provided "as is" without express or implied warranty.                  *
- **************************************************************************/
-/* History of svn commits:
- *
- * $Log$
- *
- */
-
-//_________________________________________________________________________
-//    This is analysis task for doing EMCAL pi0 calibration
-//--  Authors: Aleksei Pavlinov (WSU) 
-//--  Feb 17, 2007 - Sep 11, 2007
-//--  Pi0 calibration
-//--  Recalibration, linearity, shower profile
-//--  May 2008 - move to AliAnalysisTaskSE
-//--  You should load next library before running:
-//    root [0] gSystem->Load("libANALYSIS");
-//    root [1] gSystem->Load("libANALYSISalice");
-//    root [2] gSystem->Load("libEMCALcalib");
-//_________________________________________________________________________
-
-#include "AliEMCALPi0Calibration.h"
-#include "AliEMCALFolder.h"
-#include "AliEMCALSuperModule.h"
-#include "AliEMCALCell.h"
-#include "AliEMCALCellInfo.h"
-#include "AliEMCALPi0SelectionParam.h"
-#include "AliEMCALHistoUtilities.h"
-#include "AliEMCALCalibCoefs.h"
-#include "AliEMCALGeometry.h"
-#include "AliLog.h"
-#include "AliESD.h"
-#include "AliEMCALRecPoint.h"
-#include "AliRunLoader.h"
-#include "AliStack.h"
-#include "AliEMCALDigit.h"
-#include "AliESDEvent.h"
-
-#include <iostream>
-#include <iomanip>
-#include <fstream>
-#include <cassert>
-#include <map>
-#include <string>
-
-#include <TROOT.h>
-#include <TStyle.h>
-#include <TSystem.h>
-#include <TCanvas.h>
-#include <TVector3.h>
-#include <TLorentzVector.h>
-#include <TParticle.h>
-#include <TChain.h>
-#include <TFile.h>
-#include <TH1F.h>
-#include <TH1D.h>
-#include <TH2F.h>
-#include <TF1.h>
-#include <TMath.h>
-#include <TBrowser.h>
-#include <TList.h>
-#include <TCanvas.h>
-#include <TLine.h>
-#include <TObjString.h>
-#include <TArrayI.h>
-#include <TGraphErrors.h>
-#include <TLegend.h>
-#include <TLegendEntry.h>
-#include <TNtuple.h>
-
-using namespace std;
-
-typedef  AliEMCALHistoUtilities u;
-
-AliEMCALGeometry* AliEMCALPi0Calibration::fgEmcalGeo=0;
-Int_t             AliEMCALPi0Calibration::fgNmaxCell = 4*12*24*11;
-
-Double_t AliEMCALPi0Calibration::fgDistEff = 3.;
-Double_t AliEMCALPi0Calibration::fgW0      = 4.5;
-Double_t AliEMCALPi0Calibration::fgSlopePhiShift = 0.01; // ?? just guess
-
-AliEMCALFolder* AliEMCALPi0Calibration::fgEMCAL = 0;
-AliEMCALFolder* AliEMCALPi0Calibration::fgEMCALOld = 0;
-
-const Char_t **AliEMCALPi0Calibration::fgAnaOpt=0;
-Int_t AliEMCALPi0Calibration::fgNanaOpt = 0; 
-enum keyOpt{
-  kCORR1,
-  kRECALIB,
-  kIDEAL,
-  kPI0,
-  kGAMMA,
-  kKINE,
-  kPROF,
-  kFIT,
- //-- 
-  kEND
-};
-
-// Enumeration variables
-// enum {kUndefined=-1, kLed=0, kBeam=1};
-// enum {kPatchResponse=0, kClusterResponse=1};
-// enum {kSkip=0,  kSaveToMemory=1};
-
-ClassImp(AliEMCALPi0Calibration)
-
-AliEMCALPi0Calibration::AliEMCALPi0Calibration() :
-  AliAnalysisTaskSE(),
-  fPmom(0),
-  fChain(0),
-  fLofHistsPC(0),
-  fLofHistsRP(0),
-  fLKineVsRP(0),
-  fLShowerProfile(0),
-  fCellsInfo(0),
-  fEmcalPool(0),
-  fRunOpts(0),
-  fArrOpts(0),
-  fKeyOpts(0)
-{ 
-  // Default constructor - for reading 
-}
-
-AliEMCALPi0Calibration::AliEMCALPi0Calibration(const char* name) :
-  AliAnalysisTaskSE(name),
-  fPmom(0),
-  fChain(0),
-  fLofHistsPC(0),
-  fLofHistsRP(0),
-  fLKineVsRP(0),
-  fLShowerProfile(0),
-  fCellsInfo(0),
-  fEmcalPool(0),
-  fRunOpts(0),
-  fArrOpts(0),
-  fKeyOpts(0)
-{
-  //
-  // Constructor. Initialization of pointers
-  //
-  const Char_t *anaOpt[]={
-  "CORR1",   // GetCorrectedEnergyForGamma1(Double_t eRec);
-  "RECALIB",
-  "IDEAL",
-  "PI0",
-  "GAMMA",
-  "KINE",   // reading kine file
-  "PROF",   // Shower profile: phi direction now
-  "FIT"     // define parameters : deff, w0 and phislope
-  };
-  
-  fgNanaOpt = sizeof(anaOpt) / sizeof(Char_t*); 
-  fgAnaOpt = new const Char_t*[fgNanaOpt];
-  for(int i=0; i<fgNanaOpt; i++) fgAnaOpt[i] = anaOpt[i];
-}
-
-//AliEMCALPi0Calibration::AliEMCALPi0Calibration(const AliAnalysisTaskSE& obj) :
-//  AliAnalysisTaskSE(),
-//  fPmom(0),
-//  fChain(0),
-//  fLofHistsPC(0),
-//  fLofHistsRP(0),
-//  fLKineVsRP(0),
-//  fLShowerProfile(0),
-//  fCellsInfo(0),
-//  fEmcalPool(0),
-//  fRunOpts(0),
-//  fArrOpts(0),
-//  fKeyOpts(0)
-//{ 
-//  // Copy constructor - unused
-//}
-//
-//AliEMCALPi0Calibration& AliEMCALPi0Calibration::operator=(const AliAnalysisTaskSE& other)
-//{ 
-//  // Assignment
-// 
-//  return *this;
-//}
-
-AliEMCALPi0Calibration::~AliEMCALPi0Calibration()
-{
-  //
-  // Destructor
-  //
-
-  // histograms are in the output list and deleted when the output
-  // list is deleted by the TSelector dtor
-}
-
-void AliEMCALPi0Calibration::InitStructure(Int_t it)
-{
-  //
-  // Initialize the common structure of selector
-  //
-  fgEmcalGeo = AliEMCALGeometry::GetInstance("EMCAL_COMPLETE"); // initialize geometry just once
-  fCellsInfo = AliEMCALCellInfo::GetTableForGeometry(fgEmcalGeo);
-
-  if(fRunOpts.Length()>0) CheckRunOpts();
-
-  Int_t key = 0;
-  if(GetKeyOptsValue(kGAMMA)) key = 1;
-  fLofHistsRP = DefineHistsOfRP("RP", fPmom, key);
-  fLofHistsPC = DefineHistsOfRP("PseudoCl", fPmom);
-
-  fEmcalPool = new TFolder("PoolOfEMCAL","");
-  if(it <= 1) {
-    fgEMCAL     = new AliEMCALFolder(it); // folder for first itteration   
-    fEmcalPool->Add(fgEMCAL);
-  }
-  //if(it<=0) SetName("GammaSel"); // For convinience
-  //else      SetName("Pi0Sel");
-  if(GetKeyOptsValue(kKINE)) fLKineVsRP = DefineHistsOfKineVsRP("KineVsRP",fPmom, key);
-  if(GetKeyOptsValue(kPROF)) fLShowerProfile = DefineHistsForShowerProfile("ProfY", fPmom);
-}
-
-void AliEMCALPi0Calibration::CheckRunOpts()
-{
-  // Check run options
-  fRunOpts.ToUpper();
-  int nopt = u::ParseString(fRunOpts, fArrOpts);
-  printf("<I> AliEMCALPi0Calibration::CheckRunOpts() analyze %i(%i) options : fgNanaOpt %i\n", 
-         nopt, fArrOpts.GetEntries(), fgNanaOpt);  
-  if(nopt <=0) return;
-
-  fKeyOpts = new TArrayI(fgNanaOpt);
-  for(Int_t i=0; i<fgNanaOpt; i++) (*fKeyOpts)[i] = 0;
-
-  for(Int_t i=0; i<fArrOpts.GetEntries(); i++ ) {
-    TObjString *o = (TObjString*)fArrOpts.At(i); 
-
-    TString runOpt = o->String();
-    Int_t indj=-1;
-
-    for(Int_t j=0; j<fgNanaOpt; j++) {
-      TString opt = fgAnaOpt[j];
-      if(runOpt.Contains(opt,TString::kIgnoreCase)) {
-       indj = j;
-        break;
-      }
-    }
-    if(indj<0) {
-      printf("<E> option |%s| unavailable **\n", 
-      runOpt.Data());
-      assert(0);
-    } else {
-      (*fKeyOpts)[indj] = 1;
-      printf("<I> option |%s| is valid : number %i : |%s| \n", 
-            runOpt.Data(), indj, fgAnaOpt[indj]);
-    }
-  }
-}
-
-Int_t AliEMCALPi0Calibration::GetKeyOptsValue(Int_t key)
-{
-  // Oct 14, 2007
-  static Int_t val=0;
-  val = 0;
-  if(fKeyOpts && key>=0 && key<fKeyOpts->GetSize()) {
-    val = fKeyOpts->At(key);
-  }
-  // printf(" key %i : val %i : opt %s \n", key, val, fgAnaOpt[key]);
-  return val;
-}
-
-void AliEMCALPi0Calibration::UserExec(const Option_t* /* */)
-{
-  AliESDEvent * esd = dynamic_cast<AliESDEvent *>(InputEvent());
-
-  if (!esd)
-  {
-    AliDebug(AliLog::kError, "ESD branch not available");
-    return;
-  }
-  
-  static AliEMCALPi0SelectionParRec* rPar = GetEmcalFolder()->GetPi0SelectionParRow(0);
-
-  static Int_t nEmcalClusters, indOfFirstEmcalRP, nEmcalRP,nEmcalPseudoClusters;
-  nEmcalClusters    = esd->GetNumberOfEMCALClusters();
-  indOfFirstEmcalRP = esd->GetFirstEMCALCluster();
-  u::FillH1(fLofHistsRP, 1, double(indOfFirstEmcalRP));
-
-  static AliRunLoader* rl = 0;
-  static Int_t nev = 0; // Temporary - 0nly for reading one file now !!
-  
-  static AliESDCaloCluster *cl = 0; 
-  nEmcalRP = nEmcalPseudoClusters = 0;
-  TList *l=0;
-  double eDigi=0;   
-
-  TClonesArray lvM1("TLorentzVector", 100);  // for convenience; 100 is enough now 
-  TArrayI      indLv(100);                   // index of RP
-
-  static TLorentzVector v, vcl;
-  int nrp = 0; // # of RP for gg analysis
-  static Double_t erec=0., ecorr=0.0;
-  for(int i=indOfFirstEmcalRP; i<indOfFirstEmcalRP+nEmcalClusters; i++) {
-    cl = esd->GetCaloCluster(i);
-    if(cl->GetClusterType() == AliESDCaloCluster::kEMCALPseudoCluster) {
-      nEmcalPseudoClusters++;
-      l = fLofHistsPC;
-    } else if(cl->GetClusterType() == AliESDCaloCluster::kEMCALClusterv1){
-      nEmcalRP++;
-      if(fgEMCAL->GetIterationNumber()>1||GetKeyOptsValue(kIDEAL)||GetKeyOptsValue(kRECALIB)||GetKeyOptsValue(kFIT)) {
-        AliEMCALRecPoint *rp=0;
-        if(GetKeyOptsValue(kFIT) == kFALSE) fgDistEff = -1.; // No fitting ; Sep 4, 2007
-        if(GetKeyOptsValue(kIDEAL)) {
-          rp = AliEMCALFolder::GetRecPoint(cl, fgEMCAL->GetCCFirst(), 0, fLofHistsRP, fgDistEff, fgW0, fgSlopePhiShift);
-       } else {
-          rp = AliEMCALFolder::GetRecPoint(cl, fgEMCAL->GetCCFirst(), fgEMCAL->GetCCIn(), fLofHistsRP, fgDistEff, fgW0, fgSlopePhiShift);
-       }
-        if(GetKeyOptsValue(kPROF)) {
-          FillHistsForShowerProfile( GetListShowerProfile(), rp, GetCellsInfo());
-       }
-       //if(rp->GetPointEnergy()>=rPar->fEOfRpMin && u::GetLorentzVectorFromRecPoint(v, rp)) {
-        if(u::GetLorentzVectorFromRecPoint(v, rp)) { // comparing with RP
-          if(GetKeyOptsValue(kCORR1)) {
-           erec  = v.Rho();
-            ecorr = u::GetCorrectedEnergyForGamma1(erec);
-            v.SetRho(ecorr);
-            v.SetE(ecorr); // This is gamma
-           //printf("<1> erec %f | ecorr %f \n", erec, ecorr);
-         }
-          new(lvM1[nrp]) TLorentzVector(v);
-          indLv[nrp] = i;
-          nrp++;
-         // Conroling of recalibration
-          u::GetLorentzVectorFromESDCluster(vcl, cl);
-         u::FillH1(fLofHistsRP, 11, vcl.P()-v.P());
-         u::FillH1(fLofHistsRP, 12, TMath::RadToDeg()*(vcl.Theta()-v.Theta()));
-         u::FillH1(fLofHistsRP, 13, TMath::RadToDeg()*(vcl.Phi()-v.Phi()));
-
-         u::FillH1(fLofHistsRP, 16, v.P());
-         u::FillH2(fLofHistsRP, 17, vcl.P(), vcl.P()-v.P());
-          l = 0; // no filling
-          if(GetKeyOptsValue(kIDEAL) || GetKeyOptsValue(kRECALIB)) l = fLofHistsRP;
-        }
-        if(rp) delete rp;
-      } else { // first iteration
-       //        if(cl->E()>=rPar->fEOfRpMin && u::GetLorentzVectorFromESDCluster(v, cl)) {
-        if(u::GetLorentzVectorFromESDCluster(v, cl)) { // comparing with RP
-       // cut 0.4 GeV may be high ! 
-          if(GetKeyOptsValue(kCORR1)) {
-           erec  = v.Rho();
-            ecorr = u::GetCorrectedEnergyForGamma1(erec);
-            v.SetRho(ecorr);
-            v.SetE(ecorr); // This is gamma now
-            // printf("<2> erec %f | ecorr %f \n", erec, ecorr);
-            // printf("    v.Rho()  %f \n", v.Rho());
-         }
-          new(lvM1[nrp]) TLorentzVector(v);
-          indLv[nrp] = i;
-          nrp++;
-          l = fLofHistsRP;
-        }
-      }
-      
-    } else {
-      printf(" wrong cluster type : %i\n", cl->GetClusterType());
-      assert(0);
-    }
-    u::FillH1(l, 2, double(cl->GetClusterType()));
-
-    u::FillH1(l, 3, double(cl->GetNumberOfDigits()));  
-    u::FillH1(l, 4, double(cl->E()));  
-    // Cycle on digits (towers)
-    Short_t *digiAmpl  = cl->GetDigitAmplitude()->GetArray();
-    Short_t *digiTime  = cl->GetDigitTime()->GetArray();
-    Short_t *digiAbsId = cl->GetDigitIndex()->GetArray();
-    for(int id=0; id<cl->GetNumberOfDigits(); id++) {
-      eDigi = double(digiAmpl[id]) / 500.; // See AliEMCALClusterizerv1
-      //      if(eDigi <= 0.0) { // sometimes it is happen
-      //if(eDigi > 10.0 && cl->GetClusterType() == AliESDCaloCluster::kEMCALClusterv1) {
-      // printf(" %i digiAmpl %i : %f \n", id, int(digiAmpl[id]), eDigi);
-      //}
-      u::FillH1(l, 5, eDigi);
-      u::FillH1(l, 6, double(digiTime[id]));
-      u::FillH1(l, 7, double(digiAbsId[id]));
-      if(int(digiAbsId[id]) >= fgNmaxCell) {
-        printf(" id %i :  digiAbsId[id] %i (%i) : %s \n", 
-              id, int(digiAbsId[id]), fgNmaxCell, l->GetName());
-      }
-    }
-  }
-  u::FillH1(fLofHistsRP, 0, double(nEmcalRP));
-  u::FillH1(fLofHistsPC, 0, double(nEmcalPseudoClusters));
-
-  static TLorentzVector *lv1=0, *lv2=0, lgg;
-  for(int i1=0; i1<nrp; i1++){
-    lv1 = (TLorentzVector*)lvM1.At(i1);
-    u::FillH1(fLofHistsRP, 18, lv1->P());
-  }
-  static Double_t mgg, pgg;
-  mgg = pgg = 0.;
-  nrp = lvM1.GetEntriesFast(); 
-  if(nrp >= 2) {
-    // eff.mass analysis
-    for(int i1=0; i1<nrp-1; i1++){
-      lv1 = (TLorentzVector*)lvM1.At(i1);
-      for(int i2=i1+1; i2<nrp; i2++){
-        lv2 = (TLorentzVector*)lvM1.At(i2);
-        lgg = (*lv1) + (*lv2);
-        mgg = lgg.M();  // eff.mass
-        pgg = lgg.P();  // momentum
-        u::FillH1(fLofHistsRP, 8, mgg);
-       if((mgg>=rPar->fMassGGMin && mgg<=rPar->fMassGGMax)) {// pi0 candidates
-         if((pgg>=rPar->fMomPi0Min && pgg>=rPar->fMomPi0Min)) {
-            if(fgEMCAL && fgEMCAL->GetIterationNumber()>=1) {
-              fgEMCAL->FillPi0Candidate(mgg,esd->GetCaloCluster(indLv[i1]),esd->GetCaloCluster(indLv[i2]));
-              u::FillH1(fLofHistsRP, 9, pgg); 
-              u::FillH1(fLofHistsRP,10, lv1->P());
-              u::FillH1(fLofHistsRP,10, lv2->P());
-           }
-         }
-       }
-      }
-    }
-  }
-
-  //  static Int_t fileNumber = 0;
-  static TString curFileName;
-  //  if(GetKeyOptsValue(kKINE) && nev<fChain->GetEntries()) {
-  if(GetKeyOptsValue(kKINE)) {
-  // Get galice.root file in current directory
-    if(nev%1000==0) {
-      printf(" current file |%s|\n", fChain->GetCurrentFile()->GetName());
-      curFileName = fChain->GetCurrentFile()->GetName();
-      curFileName.ReplaceAll("AliESDs.","galice."); 
-    }
-    rl = u::InitKinematics(nev, curFileName.Data());
-  // Compare kineamtics vs EMCal clusters
-    FillHistsOfKineVsRP(fLKineVsRP, rl, lvM1);
-  }
-
-  lvM1.Delete();
-
-  if(nEmcalClusters != (nEmcalRP+nEmcalPseudoClusters))
-    Info("Process","nEmcalClusters %i : RP %i + PC %i ",nEmcalClusters, nEmcalRP, nEmcalPseudoClusters); 
-
-  nev++;
-
-  return;
-}
-
-//
-TList *AliEMCALPi0Calibration::DefineHistsOfRP(const char *name,Double_t p,Int_t keyOpt)
-{
-  //
-  // Define histogramms of rec.points
-  //
-  printf("<I> DefineHistsOfRP :%s : p %f : keyOpt %i \n", name, p, keyOpt);
-  Double_t adcChannelEC = 0.0153; // ~15mev per adc count
-  Double_t xma = p*1.4, xmi=0.0, step=0.0, xmic=xmi, xmac = xma;
-  if(xma<0) xma = 20.;
-  Int_t nmax=1000, scale=4, nmaxc = nmax;
-
-  gROOT->cd();
-  TH1::AddDirectory(1);
-  new TH1F("00_EmcalMultiplicity", "multiplicity of EMCAL  ", 201, -0.5, 200.5); // real and pseudo
-  new TH1F("01_IndexOfFirstEmcal", "index of first emcal rec.points ", 201, -0.5, 200.5);
-
-  new TH1F("02_NumberOf", "number of  ", 6, -0.5, 5.5);
-  new TH1F("03_NumberOfDigitsIn", "number of digits(towers) in rec.points ", 101, -0.5, 100.5);
-
-  if(keyOpt==1 && p>0.1) {
-    if   (p>=100.)  scale=12;
-    else if(p>=50.) scale=10;
-    else if(p>=30.) scale=8;  
-    xma = p + scale*(0.15*TMath::Sqrt(p));
-    xmi = p - scale*(0.15*TMath::Sqrt(p));
-    step = (xma-xmi)/nmax;
-  }
-
-  if(step < 0.0153) {
-    nmax = int((xma-xmi) / adcChannelEC)+1;
-    xma =  xmi + adcChannelEC*nmax;
-  } 
-  new TH1F("04_EnergyOf", "energy of ", nmax, xmi, xma);
-  nmaxc = nmax; xmic=xmi; xmac = xma;
-
-  nmax = 10000;
-  xmi  = adcChannelEC/2.; xma = xmi + adcChannelEC*nmax;
-  // All energy(momentum) unit is GeV if don't notice
-  new TH1F("05_DigitEnergyIn", "digit energy in ", nmaxc, xmic, xmac);
-  new TH1F("06_DigitTimeIn", "digit time in 10ps(0.01ns) ", 1000, 0.0, 3.e+3); // ns/100 = 10 ps
-  new TH1F("07_DigitAbsIdIn", "digit abs id in ", fgNmaxCell, -0.5, double(fgNmaxCell)-0.5);
-  new TH1F("08_EffMass", "effective mass of #gamma,#gamma(m_{#pi^{0}}=134.9766 MeV)", 100, 0.0, 0.5);
-  new TH1F("09_MomOfPi0Candidate", "momentum of #pi^{0} candidates (0.085 <mgg<0.185)", 600, 0.0, 30.0);
-  new TH1F("10_MomOfRpPi0Candidate", "momentum of RP for #pi^{0} candidates (0.085 <mgg<0.185)", 600, 0.0, 30.0);
-  // Recalibration staf
-  Double_t pmax=11., dpmax=0.20;
-  if(p>0.1) {
-    pmax=p*1.2;
-    dpmax *= p;
-  }
-  new TH1F("11_MomClESD-RpRecalib", "difference of momentum cl(ESD) - rp(Recalib)", 100, -.01, dpmax);
-  new TH1F("12_ThetaClESD-RpRecalib", "difference of #theta cl(ESD) - rp(Recalib) in degree", 100, -0.05, +0.05);
-  new TH1F("13_PhiClESD-RpRecalib", "difference of #phi cl(ESD) - rp(Recalib) in degree ", 100, -0.05, +0.05);
-  // Digi
-  new TH1F("14_EDigiRecalib", "energy of digits after recalibration", 2000, 0.0, 20.);
-  //  AliEMCALGeometry* g = AliEMCALGeometry::GetInstance();
-  new TH1F("15_AbsIdRecalib", "abs Id of digits after recalibration", fgEmcalGeo->GetNCells(),-0.5,Double_t(fgEmcalGeo->GetNCells())-0.5);
-  new TH1F("16_EnergyOfRecalibRp_", "energy of recalibrated rec.points", nmaxc, xmic, xmac); // Jul 12, 2007
-  new TH2F("17_ShiftRecalib_", "E(clESD) - E(recalib)", 110,0.0, pmax, 50,0.0,dpmax); // Jul 13, 2007
-  
-  // Corrected staff
-  new TH1F("18_EnergyOfCorrectedLV", "energy of corrected LV", nmaxc, xmic, xmac);
-
-  TString st = Form("ListOfHists%s_P=%5.1f",name,p);
-  st.ReplaceAll(" ","");
-  TList *l = u::MoveHistsToList(st.Data(), kFALSE);
-  st = Form("%s_P=%5.1f",name,p);
-  st.ReplaceAll(" ","");
-  u::AddToNameAndTitleToList(l, st.Data(), st.Data());
-
-  return l;
-}
-
-TList* AliEMCALPi0Calibration::DefineHistsOfKineVsRP(const char *name,  Double_t p, Int_t keyOpt)
-{
-  //
-  // Define histogramms for comparing a initial kinematics with rec.points
-  //
- printf("<I>  DefineHistsOfKineVsRP :%s : p %f : keyOpt %i \n", name, p, keyOpt);
-
-  gROOT->cd();
-  TH1::AddDirectory(1);
-  new TH1F("00_hVx",Form("Vx of primary vertex"), 100, -5., +5.);   // 00
-  new TH1F("01_hVy",Form("Vy of primary vertex"), 100, -5., +5.);   // 01
-  new TH1F("02_hVz",Form("Vz of primary vertex"), 100, -50., +50.); // 02
-
-  //  Double_t adcChannelEC = 0.0153; // ~15mev per adc count
-  Double_t xma = p*1.4, xmi=0.0, sig=0.15*TMath::Sqrt(p);
-  //  Double_t step=0.0, xmic=xmi, xmac = xma;
-  if(xma<0) xma = 20.;
-  //Int_t nmax=1000;
-  // scale=4, nmaxc = nmax;
-
-  new TH1F("03_hGidPrimar", "Geant Id of primary particle ", 101, 0.5, 100.5);   // 03
-  new TH1F("04_hPmomPrim","momentum of primary particle", 100, xmi, xma);        // 04
-  new TH1F("05_hEtaPrim","#eta of primary particle ", 200, -1., 1.);             // 05
-  new TH1F("06_hPhiPrim","#phi of primary particle ", 63*2, 0.0,TMath::Pi()*2.); // 06
-  new TH1F("07_hThetaPrim","#theta of primary particle", 63, 0.0,TMath::Pi());   // 07 
-  new TH1F("08_hPhiPrimInDegree","#phi of primary particle in degree", 120, 75.0, 195.0);  // 08
-  new TH1F("09_hThetaPrimInDegree","#theta of primary particle in degree", 90, 45., 135.); // 09
-
-  // Particle vs cluster
-  new TH1F("10_hE(P)-E(RP)"," E(p) - E(RP) ", 100, -10.*sig, 10.*sig);   // 10
-
-  new TH1F("11_hPvsRpAngleInDegree","angle between P and RP (in degree)", 110, 0.0, 1.0); // 11
-  double dphi=0.5; // for fitting
-  new TH1F("12_hPvsRpDPhiInDegree","dif(#phi) between P and RP (in degree)", 100, -dphi, dphi); // 12
-  new TH1F("13_hPvsRpDThetaInDegree","dif(#theta) between P and RP (in degree)", 100, -0.5, 0.5); // 13
-
-  new TH1F("14_hPvsRpDPhiInDegree","dif(#phi) between P and RP (in degree) right part of SM", 100, -dphi, +dphi); // 14
-  new TH1F("15_hPvsRpDPhiInDegree","dif(#phi) between P and RP (in degree) left part of SM", 100, -dphi, dphi); // 15
-
-  new TH1F("16_hPvsRpDThetaInDegree","dif(#theta) between P and RP (even index)", 100, -0.5, 0.5); // 16
-  new TH1F("17_hPvsRpDThetaInDegree","dif(#theta) between P and RP (odd  index)", 100, -0.5, 0.5); // 17
-
-  TString st = Form("ListOfHists%s_P=%5.1f",name,p);
-  st.ReplaceAll(" ","");
-  TList *l = u::MoveHistsToList(st.Data(), kFALSE);
-  st = Form("%s_P=%5.1f",name,p);
-  st.ReplaceAll(" ","");
-  u::AddToNameAndTitleToList(l, st.Data(), st.Data());
-  return l;
-}
-
-TList *AliEMCALPi0Calibration::DefineHistsForShowerProfile(const char *name, Double_t p)
-{
-  // Aug 1, 2007 - shower profile business as in testbeam analysis
-  //               Phi direction here is Y direction in testbeam 
-  printf("<I> DefineHistsForShowerProfile: %s : p %f \n", 
-  name, p);
-
-  gROOT->cd();
-  TH1::AddDirectory(1);
-
-  // Cell unit
-  new TH1F("00_hPHiMean"," mean in #phi direction ", 24*10, 0.0, 24.);
-  new TH1F("01_hPHiLog"," mean with log in #phi direction ", 24*10, 0.0, 24.);
-  new TH2F("02_XmeanVsXlog", "xmean vs xlog", 240,0.0, 24.,240,0.0, 24.);
-  new TH2F("03_XmeanVsXlog", "xmean vs xlog (system of cell with max energy, first half on #eta)", 
-  50,-0.5,+0.5, 100,-1.,+1.);
-  new TH2F("04_XmeanVsXlog", "xmean vs xlog (system of cell with max energy, second half on #eta)", 
-  50,-0.5,+0.5, 100,-1.,+1.);
-
-  new TH2F("05_PhiShowerProfile", " #phi shower profile - cumulative distribution",
-  6*25,-3.,3., 201, -0.0025, 1.0025);   // 00; x direction in cell unit
-
-  TString st = Form("L%s_P=%5.1f",name,p);
-  st.ReplaceAll(" ","");
-  TList *l = u::MoveHistsToList(st.Data(), kFALSE);
-  st = Form("%s_P=%5.1f",name,p);
-  st.ReplaceAll(" ","");
-  u::AddToNameAndTitleToList(l, st.Data(), st.Data());
-
-  return l;
-}
-
-void AliEMCALPi0Calibration::FillHistsOfKineVsRP(TList *l, AliRunLoader* rl,  TClonesArray &lvM)
-{
-  //
-  // lvM - array of TLorentzVector's which was cretaef from AliESDCaloCluster's
-  //
-
-  if(l==0 || rl==0) return;
-
-  // TNtuple for qucik analysis
-  static TNtuple *nt=0;
-  if(nt==0) {
-    gROOT->cd();
-    Int_t bsize = int(1.e+7);
-    nt = new TNtuple("angle","angle ntuple for quick analysis",
-    "dPhi:dTheta:phiP:thetaP", bsize);
-    gROOT->GetListOfBrowsables()->Add(nt);
-  }
-  static AliStack* st=0;
-  static TParticle *p=0;
-  static Int_t gid=0, ic=0, pdg=0, i=0;
-  gid = ic = pdg = 0;
-
-  st = rl->Stack();
-  if(st == 0) return;
-  // first primary particle
-  p = st->Particle(0);
-  if(p == 0) return;
-
-  u::FillH1(l, ic++, p->Vx());
-  u::FillH1(l, ic++, p->Vy());
-  u::FillH1(l, ic++, p->Vz());
-
-  pdg = p->GetPdgCode();
-  //gid = gMC->IdFromPDG(pdg); // gMc should be defined
-
-  u::FillH1(l, ic++, Double_t(gid));
-  u::FillH1(l, ic++, p->P());
-  u::FillH1(l, ic++, p->Eta());
-  u::FillH1(l, ic++, TVector2::Phi_0_2pi(p->Phi()) );
-  u::FillH1(l, ic++, p->Theta());
-  // In degree
-  u::FillH1(l, ic++, TVector2::Phi_0_2pi(p->Phi())*TMath::RadToDeg());
-  u::FillH1(l, ic++, p->Theta()*TMath::RadToDeg()); // 09
-
-  if(lvM.GetEntriesFast() == 0) return;
-  //
-  // Initial kinematics vs Calo clusters
-  //
-  static TLorentzVector *lv = 0, lvp;
-  lvp.SetPxPyPzE(p->Px(),p->Py(),p->Pz(),p->Energy()); // Particle 
-
-  Double_t angle = 0.0, angleMin = 180.0, eDiff=0.0, dPhi=0., dTheta=0., phiP=0.0, thetaP=0.0;
-  Int_t indMin = 0;
-  phiP   = lvp.Phi() * TMath::RadToDeg();
-  if (phiP<81. || phiP>99.)  return;     // cut phi boundaries
-  thetaP = lvp.Theta() * TMath::RadToDeg();
-  if (thetaP<56. || thetaP>89.)  return; // cut theta boundaries
-
-  for(i=0; i<lvM.GetEntriesFast(); i++) {
-    lv = (TLorentzVector*)lvM.At(i);
-    angle = lv->Angle(lvp.Vect())*TMath::RadToDeg();
-    if(angleMin > angle) {
-      angleMin = angle;
-      indMin   = i;
-    }
-  }
-  lv = (TLorentzVector*)lvM.At(indMin);
-  eDiff   = lvp.E() - lv->E();
-  u::FillH1(l, ic++, eDiff); 
-
-  dPhi    = TVector2::Phi_mpi_pi(lvp.Phi()-lv->Phi())*TMath::RadToDeg();
-  dTheta  = TVector2::Phi_mpi_pi(lvp.Theta()-lv->Theta())*TMath::RadToDeg();
-  u::FillH1(l, ic++, angleMin);
-  u::FillH1(l, ic++, dPhi); 
-  u::FillH1(l, ic++, dTheta); 
-
-  if       (phiP>=81. && phiP<=90.) {
-    u::FillH1(l, 14, dPhi); 
-  } else if(phiP> 90. && phiP<=99.) {
-    u::FillH1(l, 15, dPhi); 
-  }
-  // Unfinished - have to get absid of digit with max energy 
-  u::FillH1(l, 16, dTheta); 
-  u::FillH1(l, 17, dTheta); 
-  if(nt) {
-    nt->Fill(dPhi,dTheta,phiP,thetaP);
-    /*
-     tv__tree = (TTree *) gROOT->FindObject("angle");
-     tv__tree->Draw("dPhi:phiP","abs(dPhi)<0.5","", 9182, 0);
-     tv__tree->Draw("dTheta:thetaP","abs(dTheta)<0.5","", 9182, 0);
-     */
-  }
-}
-
-void AliEMCALPi0Calibration::FillHistsForShowerProfile
-(TList *l, AliEMCALRecPoint *rp, AliEMCALCellInfo * t)
-{
-  // Aug 1, 2007
-  if(l==0 || rp==0 || t==0) return;
-  // --
-  static Double_t xmean=0., xlog=0.;
-  static AliEMCALCellIndexes rMax;
-  static Int_t phiSize;
-
-  if(rp->GetPointEnergy() < 1.0) return;
-  //if(rp->GetPointEnergy() > 8.0) return; // discard merged clusters for pi0 case
-
-  EvalLocalPhiPosition(1.,  rp, t, xmean, phiSize, rMax);
-  if(phiSize == 0) return; // just one row in cell directions
-
-  EvalLocalPhiPosition(5.5, rp, t, xlog, phiSize, rMax);
-  if(rMax.fIPhi>1.5&&rMax.fIPhi<21.5 && rMax.fIEta>1.5&&rMax.fIEta<46.5) { 
-    u::FillH1(l, 0, xmean); 
-    u::FillH1(l, 1, xlog); 
-    u::FillH2(l, 2, xlog, xmean);
-    // Select two central modules
-    if((rMax.fIPhim==5 || rMax.fIPhim==6)){
-    // Transition to system of cell with max energy
-      xmean -= (double(rMax.fIPhi)+0.5);  
-      xlog  -= (double(rMax.fIPhi)+0.5);  
-      if(rMax.fIEtam>=2 && rMax.fIEtam<=12){ // approximatively first half on eta 
-        u::FillH2(l, 3, xlog, xmean);
-      } else {// approximatively second half on eta 
-        u::FillH2(l, 4, xlog, xmean);
-      }
-    }
-  }
-}
-
-void   AliEMCALPi0Calibration::EvalLocalPhiPosition(const Double_t wlog, const AliEMCALRecPoint *rp, const AliEMCALCellInfo* t, Double_t &xcog, Int_t &phiSize, AliEMCALCellIndexes &rMax)
-{
-  // wlog = 1 - usual center of gravity; >1 - with logarithmic weight.
-  // digits - array of digits
-  // t      - 
-  //==
-  // xcog - position of center of gravity in cell unit 
-  if(wlog<1.0 || rp==0 || t==0) return;
-  xcog = 0;
-
-  static Double_t wtot=0., w=0., edigi=0., e=0., edigiMax=0.;
-  static Int_t absid = 0, phiMin=0, phiMax=0;
-  static AliEMCALCellIndexes* r=0;
-
-  e = rp->GetPointEnergy();
-  wtot = 0.0;
-  edigiMax=0.;
-
-  phiMin = 23; phiMax = 0;
-  for(Int_t iDigit=0; iDigit<rp->GetMultiplicity(); iDigit++) {
-    absid = rp->GetAbsId()[iDigit];
-    edigi = rp->GetEnergiesList()[iDigit];
-    if(wlog > 1.0)  w = TMath::Max( 0., wlog + TMath::Log(edigi/e));
-    else            w = edigi; // just energy
-
-    r     = t->GetTable(absid);
-    xcog += w*(Double_t(r->fIPhi) + 0.5);
-    wtot += w;
-    if(edigi > edigiMax) {
-      edigiMax = edigi;
-      rMax = (*r);
-    }
-    if(phiMin > r->fIPhi) phiMin = r->fIPhi; 
-    if(phiMax < r->fIPhi) phiMax = r->fIPhi; 
-  }
-  xcog /= wtot;
-  phiSize = phiMax - phiMin;
-  //  printf("phiSize %i \n", phiSize); 
-}
-/* unused now
-TList *AliEMCALPi0Calibration::DefineHistsOfTowers(const char *name)
-{
-  //
-  // ESD: towers information was saved to pseudo clusters
-  // 
-  gROOT->cd();
-  TH1::AddDirectory(1);
-  new TH1F("00_EmcalMultiplicity", "multiplicity of EMCAL  ", 201, -0.5, 200.5); // number of pseudo RP
-
-  new TH1F("01_EnergyOf", "energy of ", 1000, 0.0, 100.);
-
-  TList *l = u::MoveHistsToList(Form("ListOfHists%s",name, " - ESD"), kFALSE);
-  u::AddToNameAndTitleToList(l, name, name);
-
-  return l;
-}
-*/
-
-void AliEMCALPi0Calibration::FitEffMassHist()
-{
-  TH1* h = (TH1*)fLofHistsRP->At(8);
-  AliEMCALCell::FitHist(h, GetName(), "draw");
-}
-
-void AliEMCALPi0Calibration::PrintInfo()
-{
-  // Service routine
-  printf("\n %i Entrie(s) | Option(s) |%s| \n", GetOptsArray().GetEntries(), fRunOpts.Data());  
-  for(int i=0; i<fgNanaOpt; i++) {
-    if(GetKeyOptsValue(i)) printf(" %i |%s| \n", i, fgAnaOpt[i]);
-  }
-
-  TList *l[2] = {fLofHistsPC, fLofHistsRP};
-  printf("\n");
-  for(int i=0; i<2; i++){
-    TH1F *h = (TH1F*)l[i]->At(2);
-    printf(" %s \t: %i \n", h->GetTitle(), int(h->GetEntries()));
-  }
-  printf(" fgDistEff %f fgW0 %f fgSlopePhiShift %f \n", fgDistEff, fgW0, fgSlopePhiShift);
-}
-
-void  AliEMCALPi0Calibration::SetMomentum(Double_t p) 
-{ // Jul 9, 2007
-  fPmom = p;
-  //  SetName(Form("%s_p_%f5.1", GetName(), p));
-}
-
-
-AliEMCALFolder*  AliEMCALPi0Calibration::CreateEmcalFolder(const Int_t it)
-{
-  //
-  // Create emcal folder for iteration number it
-  //
-  AliEMCALFolder* newFolder = new AliEMCALFolder(it); // folder for iteration #it   
-  if(it>1) {
-    fgEMCALOld = fgEMCAL; 
-    AliEMCALCalibCoefs* tabOldOut = fgEMCALOld->GetCCOut();
-    AliEMCALCalibCoefs* tabNewIn = new AliEMCALCalibCoefs(*tabOldOut);
-    tabNewIn->SetName(AliEMCALFolder::GetCCinName().Data());
-    newFolder->Add(tabNewIn);
-  } 
-  fEmcalPool->Add(newFolder);
-  fgEMCAL = newFolder;
-
-  return fgEMCAL;
-}
-
-AliEMCALFolder* AliEMCALPi0Calibration::GetEmcalOldFolder(const Int_t nsm)
-{
-  // Return emcal folder with number nsm
-  AliEMCALFolder* folder=0;
-  if(fEmcalPool) folder =  (AliEMCALFolder*)fEmcalPool->FindObject(Form("EMCAL_%2.2i",nsm));
-  return folder;
-}
-
-
-void AliEMCALPi0Calibration::SetEmcalFolder(AliEMCALFolder* folder)
-{
-  fgEMCAL = folder;
-  fEmcalPool->Add(fgEMCAL);
-}
-
-void AliEMCALPi0Calibration::SetEmcalOldFolder(AliEMCALFolder* folder)
-{
-  fgEMCALOld = folder;
-  fEmcalPool->Add(fgEMCALOld);
-}
-
-void AliEMCALPi0Calibration::Browse(TBrowser* b)
-{
-  // What we see at browser
-  // if(esd)        b->Add(esd);
-  if(fChain)      b->Add(fChain);
-  if(fEmcalPool)  b->Add(fEmcalPool);
-  if(fgEmcalGeo) b->Add(fgEmcalGeo);
-  if(fCellsInfo)  b->Add(fCellsInfo);
-  //
-  if(fLofHistsPC) b->Add(fLofHistsPC);
-  if(fLofHistsRP) b->Add(fLofHistsRP);
-  if(fLKineVsRP)  b->Add(fLKineVsRP);
-  if(fLShowerProfile) b->Add(fLShowerProfile);
-  //  if(u) b->Add(u);
-}
-
-Bool_t AliEMCALPi0Calibration::IsFolder() const
-{
-  if(fLofHistsRP || fEmcalPool) return kTRUE;
-  return kFALSE;
-}
-
-void AliEMCALPi0Calibration::Save(Int_t ver, const char *optIO)
-{ 
-  // Aug 3, 2007
-  // Save selector to file
-  TString dir("/home/pavlinov/ALICE/SHISHKEBAB/RF/CALIB/"); // Root directory for saving
-  TString nf=dir;
-  if(GetKeyOptsValue(kPROF)) {
-    nf += "PROF/PROFILE_";
-    nf += ver;
-    nf += ".root";
-    TFile f(nf.Data(), optIO);
-    if(f.IsOpen()) {
-      this->Write();
-      f.Close();
-      printf("<I> Save selectort to file |%s| : optIO %s \n",nf.Data(), optIO);
-    } else {
-      printf("<W> File %s exits ! Increase version : ver %i !\n", nf.Data(), ver);
-    }
-  } else {
-    printf("No PROF option -> no saving now !\n");
-  }
-}
-
-AliEMCALPi0Calibration* AliEMCALPi0Calibration::ReadSelector(const char* nf)
-{
-  // Read selector to file
-  AliEMCALPi0Calibration* selector=0;
-
-  TH1::AddDirectory(0);
-  TFile f(nf,"READ");
-  if(f.IsOpen()) {
-    TObject *o = f.Get("AliEMCALPi0Calibration");
-    if(o) selector = dynamic_cast<AliEMCALPi0Calibration *>(o);
-  }
-  // printf("<I> read selector %p : file |%s| \n", selector, nf);
-  return selector;
-}
-
-void AliEMCALPi0Calibration::ReadAllEmcalFolders()
-{
-  // Oct 14, 2007
-  if(fEmcalPool==0) {
-    fEmcalPool = new TFolder("PoolOfEMCAL","");
-    for(Int_t it=1; it<=10; it++){
-      AliEMCALFolder* fold = AliEMCALFolder::ReadFolder(Form("EMCALFOLDER_It%i_fit.root",it), "READ");
-      //      AliEMCALFolder* fold = AliEMCALFolder::Read(Form("EMCALFOLDER_It%i_fit.root",it), "READ");
-      if(fold) fEmcalPool->Add(fold);
-    }
-  }
-}
-
-void AliEMCALPi0Calibration::PictVsIterNumber(const Int_t ind, const Int_t nsm)
-{
-  // Jun 27, 2007 - unfinished; which picture is the best
-  if(ind<0 || ind>5) return;
-  gROOT->cd();
-  TH1::AddDirectory(1);
-
-  Int_t itMax = 10, it=0;
-  map <int, const char*> indName;
-  indName[0] = "eff.mass";
-  indName[3] = "mass of #pi_{0}";
-  indName[4] = "resolution of #pi_{0}";
-  indName[5] = "chi^{2}/ndf";
-
-  TH1F *hout = new TH1F(indName[ind], indName[ind], itMax, 0.5, double(itMax)+0.5); 
-   
-  TH1::AddDirectory(0);
-  Double_t content, error;
-  TList* col = (TList*)fEmcalPool->GetListOfFolders();
-  for(Int_t i=0; i<col->GetSize(); i++) { // cycle on EMCAL folders
-    AliEMCALFolder* folder = static_cast<AliEMCALFolder*>(col->At(i));
-    if(folder==0) continue;
-    it = folder->GetIterationNumber();
-
-    AliEMCALSuperModule* sm = folder->GetSuperModule(nsm);
-    if(sm==0) continue;
-
-    TList* l = sm->GetHists();
-    if(l==0) continue;
-
-    TH1F *hin = (TH1F*)l->At(ind);
-    if(hin==0) continue;
-
-    if(ind !=0 ) {
-      content = hin->GetMean();
-      error   = hin->GetRMS();
-    } else {
-      sm->FitEffMassHist();
-      TF1 *f = (TF1*)hin->GetListOfFunctions()->At(0);
-      content = error = -1.;
-      if(f) {
-       //        content = f->GetParameter(1);
-        //error   = f->GetParameter(2);
-        content = f->GetParameter(2);
-        error   = f->GetParError(2);
-      }
-    }
-
-    if(content > 0.0) {
-      hout->SetBinContent(it, content);
-      hout->SetBinError(it, error);
-      printf(" it %i content %f +/- %f \n", it, content, error);
-    }
-  }
-
-  u::DrawHist(hout,2);
-  hout->SetMinimum(0.0);
-
-}
-
-TH1F* AliEMCALPi0Calibration::FitHistOfRecPointEnergy(const char *opt)
-{
-  // Fit hist of rec.point energy
-  TH1::AddDirectory(0);
-
-  TString sopt(opt);
-  sopt.ToUpper();
-
-  Int_t ind = 4, ind2 = 16;
-  if(GetKeyOptsValue(kIDEAL)) {
-    ind  = 16; // Jul 12, 2007
-    ind2 =  4;
-  } else if(GetKeyOptsValue(kCORR1)) {
-    ind  = 18;
-    ind2 =  4;
-  }
-  TH1F *hold = (TH1F*)fLofHistsRP->At(ind), *h=0;
-  if(hold == 0) return 0;
-  if(hold->GetEntries() <10.) return hold;
-
-  if(sopt.Contains("CLONE")) {
-    TString newName(Form("C_%s",hold->GetName()));
-    h = (TH1F*)hold->Clone(newName.Data());
-    printf(" Clone hist %s -> |%s|%s| \n",hold->GetName(),h->GetName(),h->GetTitle()); 
-  } else {
-    h = hold;
-  }
-  TH1F* h2 = (TH1F*)fLofHistsRP->At(ind2);
-
-  Double_t xmax = h->GetXaxis()->GetXmax(), xmin = 0.4*xmax;;
-  TF1 *g = u::Gausi("fRecPointE", xmin, xmax, h);
-  g->SetLineColor(kRed);
-  gStyle->SetOptFit(111);
-
-  h->Fit(g,"N","", xmin, xmax);
-  printf(" (1) xmin %f : xmax %f \n", xmin, xmax);
-
-  xmin = g->GetParameter(1) - 4.*g->GetParameter(2);
-  xmax = g->GetParameter(1) + 4.*g->GetParameter(2);
-  h->Fit(g,"Q+","", xmin, xmax);
-  u::DrawHist(h2,1, 1, "same",2);
-  printf(" (2) xmin %f : xmax %f \n", xmin, xmax);
-
-  return h;
-}
-
-TCanvas *AliEMCALPi0Calibration::Linearity(TList *l, int ifun)
-{ 
-  // Jul 10, 2007
-  // Draw picture of EMCal linearity 
-  if(l==0) {
-    printf("<E> AliEMCALPi0Calibration::Linearity :TList is zero ! Bye ! \n");
-    return 0;
-  }
-  Double_t p[9]={0.5, 1., 3., 5., 10., 20., 30., 50., 100.}, ep[9];
-  // see macro rHits.C ->defineSampleFraction
-  TH1F* hErecOverEin = new TH1F("hErecOverEin","Ratio E_{rec}/E_{#gamma} vs E_{#gamma}", 101,0.5,101.5);
-  // Fill hist
-  TArrayD invRat(9), eInvRat(9), erec(9),derec(9), residual(9);
-  TArrayD res(9), eres(9); // resolution
-  Int_t np=9;
-  for(Int_t var=0; var<9; var++){
-    TH1F *h = (TH1F*)l->At(var);
-    TF1  *f = (TF1*)h->GetListOfFunctions()->At(0);
-    Double_t  mean = f->GetParameter(1);
-    Double_t emean = f->GetParError(1);
-
-    Int_t bin = hErecOverEin->FindBin(p[var]);
-    hErecOverEin->SetBinContent(bin, mean/p[var]);
-    hErecOverEin->SetBinError(bin,  emean/p[var]); 
-    //
-    invRat[var]  = p[var]/mean;
-    eInvRat[var] = emean/p[var]*invRat[var];
-    erec[var]    = mean;
-    derec[var]   = emean;
-    // Resolution in %
-    res[var]  = 100.*f->GetParameter(2)/p[var];
-    eres[var] = 100.*f->GetParError(2)/p[var];
-    ep[var] = 0.0;
-  }
-
-  TCanvas *c = new TCanvas("Linearity","Linearity", 20,20, 700, 500);
-  gStyle->SetOptStat(0);
-  if(0) { // E(rec) / E(gamma)
-    u::DrawHist(hErecOverEin,2);
-    hErecOverEin->SetMinimum(0.984);
-    hErecOverEin->SetMaximum(1.001);
-  }
-  Int_t markerColor=1;
-  const char *fun="", *optFit="";
-  TF1 *f = 0;
-  if(0) {
-    if(ifun==-5) {
-      fun = "fun5"; optFit="R+";
-      f = new TF1(fun,"([0]*(x-7.5)*(x-7.5))*exp([1]+[2]*x+[3]*x*x)+1.", 0.0, 100.);
-      f->FixParameter(0, 1.95380e-05);
-      //      f->SetParameter(0, 1.95380e-05);
-      //      f->SetParameter(1, 1.0);
-    } else if(ifun==-4) {
-      fun = "fun4"; optFit="R+";
-      f = new TF1(fun,"([0]*(x-7.5)*(x-7.5))*([1]+[2]*abs(x)+[3]*(x-[4])*(x-[4]))+1.", 0.0, 100.);
-      f->FixParameter(0, 1.95380e-05);
-      f->SetParameter(4, 50.);
-      //      f = new TF1(fun,"exp(([0]+[1]*x)*(x-[2])*(x-[3]))", 0.0, 100.);
-      //f = new TF1(fun,"([0]+[1]*x)*(x-[2])*(x-[3])", 0.0, 100.);
-      //f->SetParameter(0, 1.);
-      //f->SetParameter(1, 1.);
-
-      //      f->SetParameter(2, 5.);
-      //f->SetParLimits(2, 3.,8.);
-      //f->SetParameter(3, 10.);
-      //f->SetParLimits(3, 9.,15.);
-      //f->SetParameter(2, 2.e-4);
-    } else if(ifun==-3) {
-      fun = "fun3"; optFit="R+";
-      f = new TF1(fun,"[0]+[1]*x+[2]*x*x+[3]*x*x*x", 0.0, 11.);
-    } else if(ifun==-2) {
-      fun = "fun2"; optFit="R+";
-
-      /*
-      f = new TF1(fun,"[0]*(x-7.5)+[1]*(x-7.5)*(x-7.5)+[2]", 0.0, 10.1); 
-      f->SetParameter(0, 5.98727e-04);
-      f->SetParameter(1, 2.12045e-04);
-      f->SetParameter(2, 1.);
-      */
-      f = new TF1(fun,"[0]+[1]*x+[2]*x*x", 9.0, 100.1); 
-    } else if(ifun==-1) {
-      fun = "fun0"; optFit="R+";
-      f = new TF1(fun,"[0]", 0.0, 100.1); 
-    } else if(ifun>=2) {
-      fun = Form("pol%i",ifun); 
-      optFit="+";
-    }
-    TGraphErrors *gr = u::DrawGraphErrors(np, erec.GetArray(),invRat.GetArray(),derec.GetArray(),eInvRat.GetArray(),
-   //    markerColor,21+markerColor,"AP", " Ratio E_{#gamma}/E_{Rec} ", "E_{Rec}  ","   E_{#gamma}/E_{Rec}",
- markerColor,21+markerColor,"AP", " Ratio E_{#gamma}/E_{Rec}^{corr} ", "E_{Rec}^{corr}  ","   E_{#gamma}/E_{Rec}^{corr}",
-                                         ifun, optFit, fun);
-    gr->GetHistogram()->SetAxisRange(0.0,100.);
-    //    double xmi=0.999, xma=1.017;
-    double xmi=0.995, xma=1.005;
-    gr->GetHistogram()->SetMaximum(xma);
-    gr->GetHistogram()->SetMinimum(xmi);
-    gr->GetHistogram()->SetTitleOffset(1.4,"y");
-    if(ifun==0) {
-      f = new TF1("fres", "AliEMCALHistoUtilities::EnergyCorrectionForGamma1(x)", 0., 101.); 
-      f->Draw("same");
-    }
-  }
-  TLine *line = new TLine(0.0,1.0, 100.,1.0);
-  line->Draw();
-
-  if(0) {
-    c->Clear();
-    for(int i=0; i<9; i++) {
-      residual[i] =  100.*(invRat[i] - u::GetCorrectionCoefficientForGamma1(erec[i])); // in percent
-      printf(" erec %f : residual %5.3f \n", erec[i], residual[i]);
-    }
-    markerColor = 2;
-    TGraphErrors *gr2=u::DrawGraphErrors(np, erec.GetArray(),residual.GetArray(),derec.GetArray(),eInvRat.GetArray(),
-                 markerColor,21+markerColor,"AP"," residual in %, rec.point level", "E_{Rec}  ","  residual in %",
-    -1, "", 0);
-    gr2->GetHistogram()->SetAxisRange(0.0,100.);
-    gr2->GetHistogram()->SetMaximum(0.2);
-    gr2->GetHistogram()->SetMinimum(-0.1);
-    line = new TLine(0.0,0.0, 101.,0.0);
-    line->Draw();
-    //TLatex *lat = 
-       u::Lat("linearity better 0.2% after correction",20., 0.15, 12, 0.06, 1); 
-    //if(lat); //For what is this?, commented due to compilation warnings
-  }
-  if(1) {
-    TString latexName;
-    c->Clear();
-    gStyle->SetOptFit(111);
-    markerColor = 1;
-    ifun        = -11;
-    f = u::GetResolutionFunction("FRES2", latexName);  
-    f->SetNpx(10000);
-    f->SetLineColor(kBlack);
-
-    TGraphErrors *gr3=u::DrawGraphErrors(np, p,res.GetArray(), ep, eres.GetArray(),
-    markerColor,21+markerColor,"AP"," resolution in %, rec.point level","E_{#gamma} "," resolution in %",
-                                        ifun, "+", f->GetName());
-    gr3->GetHistogram()->SetAxisRange(0.0,101.);
-    gr3->GetHistogram()->SetMaximum(14.);
-    gr3->GetHistogram()->SetMinimum(0.0);
-    gr3->SetMarkerSize(1.5);
-
-    //TLatex *lat = 
-       u::Lat(latexName.Data(),82., 11., 12, 0.06, 1);
-    //if(lat); //For what is this?, commented due to compilation warnings
-    // Exp. data
-    TF1 *fexp = new TF1(*f);
-    fexp->SetName("fexp");
-    fexp->SetParameter(0, 2.168);
-    fexp->SetParameter(1, 8.818);
-    fexp->SetLineWidth(1);
-    fexp->SetLineColor(kRed);
-    fexp->SetLineStyle(1);
-    fexp->Draw("same");
-
-    TLegend *leg = new TLegend(0.21,0.36, 0.68,0.82);
-    leg->AddEntry(gr3,  "MC data", "P");
-    leg->AddEntry(f,    "fit of MC data", "L");
-    TLegendEntry *ent3 = leg->AddEntry(fexp, "#splitline{fit of exp.data}{FNAL, Nov 2005}", "L");
-    ent3->SetTextColor(fexp->GetLineColor());
-    leg->Draw();
-  }
-  c->Update();
-
-  return c;
-}
-
-TCanvas *AliEMCALPi0Calibration::DrawKineVsRP(TList *l)
-{ 
-  //Jul 25, 2007
-  if(l==0) {
-    printf("<W> AliEMCALPi0Calibration::DrawKineVsRP : TList is zero ! \n");
-    return 0;
-  }
-  TCanvas *c = new TCanvas("KineVsRP","KineVsRP", 20,20, 700, 500);
-  gStyle->SetOptStat(1110);
-  c->Divide(2,2);
-
-  c->cd(1);
-  TH1F* h1 = (TH1F*)l->At(10);
-  u::DrawHist(h1,2);
-
-  c->cd(2);
-  TH1F* h2 = (TH1F*)l->At(11);
-  u::DrawHist(h2,2);
-
-  c->cd(3);
-  TH1F* h3 = (TH1F*)l->At(12);
-  u::DrawHist(h3,2);
-  u::DrawHist((TH1F*)l->At(14), 1,kRed,"same");
-  u::DrawHist((TH1F*)l->At(15), 1,kGreen,"same");
-
-  c->cd(4);
-  TH1F* h4 = (TH1F*)l->At(13);
-  u::DrawHist(h4, 2);
-  u::DrawHist((TH1F*)l->At(16), 1,kRed,"same");
-  u::DrawHist((TH1F*)l->At(17), 1,kGreen,"same");
-
-  /*
-  TH1F* h2 = (TH1F*)l->At(11);
-  u::DrawHist(h2,2);
-  */
-
-  c->Update();
-  return c;
-}
-
-TCanvas* AliEMCALPi0Calibration::DrawMeanVsLog(TH2F *h2)
-{
-  // h - input histogramm : mean vds log coordinates 
-  if(h2==0) return 0;
-
-  TCanvas *c = new TCanvas("KineVsRP","KineVsRP", 20,20, 700, 500);
-
-  TH1F *hid1 = new TH1F("h1","h1 title ", h2->GetNbinsX(), 
-  h2->GetXaxis()->GetXmin(), h2->GetXaxis()->GetXmax());  
-
-  gROOT->cd();
-  TH1::AddDirectory(1);
-  TString newName;
-  for(int ix=1; ix<=h2->GetNbinsX();ix++) {
-    newName = "hd_"; newName += ix;
-    TH1D *hd = h2->ProjectionY(newName.Data(),ix,ix);
-    if(hd->Integral()>=4.) {
-      //      lhd->Add(hd);
-      hid1->SetBinContent(ix, hd->GetMean());
-      hid1->SetBinError(ix, hd->GetRMS());
-    }
-  }
-  TF1 *f1 = new TF1("fcg", "0.5*TMath::SinH(x/[0])/TMath::SinH(0.5/[0])", -0.5, 0.5);
-  f1->SetParameter(0,0.13);
-  f1->SetLineColor(kRed);
-  f1->SetLineWidth(1);
-
-  gStyle->SetOptStat(0);
-  gStyle->SetOptFit(111);
-  hid1->Fit(f1,"R+");
-
-  u::DrawHist(hid1,2);
-
-//u::DrawHist(h2,2);
-
-  c->Update();
-  return c;
-}
-
-TCanvas* AliEMCALPi0Calibration::DrawPhiEtaAnglesDistribution(const char* gn)
-{ 
-  // Aug 6, 2007
-  // Proper geometry should be defined already 
-  // dTheta distibution has two peaks which coresponding different cells inside module ! 
-
-  TCanvas *c = new TCanvas("Geometry","Geometry", 20,20, 700, 500);
-  c->Divide(2,2);
-
-  if(fgEmcalGeo==0) fgEmcalGeo = AliEMCALGeometry::GetInstance(gn);
-
-  gROOT->cd();
-  TH1::AddDirectory(1);
-  TH1F *hDtheta  = new TH1F("hDtheta","#Delta#theta in one SM", 60, -2.0, +1.0); // in degree
-  TH2F *hDtheta2 = new TH2F("hDtheta2","#Delta#theta vs fIEta of cell", 48, -0.5, 47.5, 60,-2.0,+1.0);
-
-  TH1F *hDphi  = new TH1F("hDphi","#Delta#ph in one SM", 2000, -10.0, +10.0); // in degree
-
-  TVector3 vg3;
-  AliEMCALCellInfo* t = GetCellsInfo();
-  Double_t thetaCell=0., thetaModule=0.;
-  Double_t phiCell=0., dphi=0.;
-
-  for(int absid=0; absid<12*24*4; absid++){
-    AliEMCALCellIndexes *r = t->GetTable(absid);
-    fgEmcalGeo->GetGlobal(absid, vg3);
-
-    thetaCell   = vg3.Theta()*TMath::RadToDeg();
-    thetaModule = 90. - 1.5*r->fIEtam;
-    hDtheta->Fill(thetaCell - thetaModule);
-    hDtheta2->Fill(double(r->fIEta), thetaCell - thetaModule);
-
-    phiCell   = vg3.Phi()*TMath::RadToDeg();
-    dphi      = phiCell - 90.;
-    hDphi->Fill(dphi);
-  }
-
-  c->cd(1);
-  u::DrawHist(hDtheta,2);
-  c->cd(2);
-  u::DrawHist(hDtheta2,2);
-  c->cd(3);
-  u::DrawHist(hDphi,2);
-
-  c->Update();
-  return c;
-}
-
-TCanvas* AliEMCALPi0Calibration::DrawDeffVsEnergy()
-{
-  // Aug 31, 2007 - obsolete
-  Double_t p[]={0.5, 1.0, 3., 5., 10., 20.,30.,50.,100.};
-  Double_t ep[]={0., 0., 0., 0., 0., 0., 0., 0., 0.};
-  // 2 pars
-  Double_t  deff[]={9.07515, 10.0835, 11.2032, 11.4229, 12.3578, 13.0332, 13.3281, 13.7910, 14.3319};
-  Double_t edeff[]={2.69645e-03, 3.52180e-03, 4.19236e-02, 1.21201e-01, 1.58886e-01, 3.96680e-01, 3.29985e-02, 1.17113e-01, 5.22763e-01};
-  //
-  Double_t w0[]={3.44679e+00, 3.82714e+00, 4.15035e+0, 4.36650e+00, 4.51511e+00, 4.65590, 4.63289e+00, 4.66568, 4.68125};
-  Double_t ew0[]={7.58982e-01, 1.26420e-02, 2.36129e-10, 1.21201e-01, 2.12999e-01, 7.95650e-02, 6.15307e-03, 1.88803e-01, 5.18022e-05};
-  int np=sizeof(p)/sizeof(Double_t);
-  printf("<I> AliEMCALPi0Calibration::DrawDeffVsEnergy() | np %i \n", np);
-
-  TCanvas *c = new TCanvas("Deff","Deff", 20,20, 700, 500);
-  c->Divide(2,1);
-
-  Int_t markerColor=1;
-  c->cd(1);
-  //TF1 *fdeff= new TF1("fdeff","[0]+[1]*log(x)",0.4, 100.4);
-  //if(fdeff); //For what is this?, commented due to compilation warnings
-  TGraphErrors *gr = u::DrawGraphErrors(np, p,deff, ep, edeff,
-    markerColor,21+markerColor,"AP"," D_{eff} vs E_{#gamma} ","E_{#gamma}         "," D_{eff} in cm ",
-                                       -1, "", 0);
-  //                                   -1, "+", fdeff->GetName());
-  gr->GetHistogram()->SetMaximum(15.);
-  gPad->SetLogx(1);
-
-  c->cd(2);
-  TGraphErrors *gr2 = u::DrawGraphErrors(np, p,w0, ep, ew0,
-    markerColor,21+markerColor,"AP"," w_{0} vs E_{#gamma} ","E_{#gamma}         "," w_{0}    ",
-    -1, "", 0);
-
-  gr2->GetHistogram()->SetMaximum(5.);
-  gPad->SetLogx(1); 
-
-  c->Update();
-  return c;
-}
-
-TCanvas* AliEMCALPi0Calibration::DrawDeffVsEnergy2(const char *opt)
-{
-  // Aug 28, 2008 - read pars and pars errors from files
-  Double_t p[]={0.5, 1.0, 3., 5., 10., 20.,30.,50.,100.};
-  Double_t ep[]={0., 0., 0., 0., 0., 0., 0., 0., 0.};
-  // 2 pars
-  Double_t deff[9], edeff[9], w0[9], ew0[9]; // max size now 
-  TString sopt(opt);
-
-  int np = sizeof(p)/sizeof(Double_t);
-  printf("<I> AliEMCALPi0Calibration::DrawDeffVsEnergy2() | np %i \n", np);
-  ReadParsDeffAndW0("/data/r22b/ALICE/CALIB/FIT/", deff, edeff, w0, ew0, 1);
-
-  TCanvas *c = new TCanvas("Deff","Deff", 20,20, 700, 500);
-  c->Divide(2,1);
-
-  TF1 *fdeff = 0, *fw0 = 0;
-  TString optFit(""), funName("");
-  if(sopt.Contains("fit1")) {
-    fdeff= new TF1("fdeff","[0]+[1]*log(x)",0.1, 101.);
-    fdeff->SetLineColor(kRed);
-    fdeff->SetLineWidth(1);
-
-    /* good description - "[0]/(1.+exp([1]*x))"
-   1  p0           4.82208e+00   9.93617e-04  -0.00000e+00   7.16648e-06
-   2  p1          -7.79655e-01   4.07500e-03  -0.00000e+00   2.01009e-03
-      better description - "[0]/(1.+exp([1]*(x-[2])))" (like the Woods-Saxon potential)
-   1  p0           4.83713e+00   1.00437e-03  -6.98984e-10   4.90371e-07
-   2  p1          -2.77970e-01   3.35587e-03  -1.79239e-09   2.67312e-07
-   3  p2           4.41116e+00   8.72191e-02   1.82791e-04   1.55643e-05
-     */
-    fw0= new TF1("fw0","[0]/(1.+exp([1]*(x+[2])))",0.1, 101.);
-    fw0->SetLineColor(kRed);
-    fw0->SetLineWidth(1);
-    fw0->SetParameter(0, 4.8);
-    fw0->SetParameter(1, -2.77970e-01);
-    fw0->SetParameter(2,  4.41116);
-    optFit = "+";
-  }
-  if(fdeff) funName =  fdeff->GetName();
-
-  Int_t markerColor=1;
-  c->cd(1);
-  gStyle->SetOptFit(111);
-  TGraphErrors *gr = u::DrawGraphErrors(np, p,deff, ep, edeff,
-    markerColor,21+markerColor,"AP"," D_{eff} vs E_{#gamma} ","E_{#gamma}         "," D_{eff} in cm ",
-                                       -1, optFit.Data(), funName.Data());
-  gr->GetHistogram()->SetMaximum(15.);
-  gPad->SetLogx(1);
-  TLegend *leg1 = new TLegend(0.12,0.76, 0.70,0.90);
-  TLegendEntry *le1 = leg1->AddEntry(fdeff, Form("%s",fdeff->GetTitle()), "lp");
-  //TLegendEntry *le1 = leg1->AddEntry(fdeff, Form("%4.2f+%4.2f*log(E_{#gamma})",
-  //fdeff->GetParameter(0),fdeff->GetParameter(1)), "lp");
-  le1->SetTextColor(fdeff->GetLineColor());
-  leg1->Draw();
-
-  c->cd(2);
-  gStyle->SetOptFit(111);
-  if(fw0) funName =  fw0->GetName();
-  TGraphErrors *gr2 = u::DrawGraphErrors(np, p,w0, ep, ew0,
-    markerColor,21+markerColor,"AP"," w_{0} vs E_{#gamma} ","E_{#gamma}         "," w_{0}    ",
-                                       -1, optFit.Data(), funName.Data());
-
-  gr2->GetHistogram()->SetMaximum(5.);
-
-  TLegend *leg2 = new TLegend(0.17,0.6, 0.99,0.72);
-  TLegendEntry *le2 = leg2->AddEntry(fw0, Form("%s",fw0->GetTitle()), "lp");
-  //TLegendEntry *le2 = leg2->AddEntry(fw0, Form("#frac{%4.2f}{1.+exp(%4.2f*(x+%4.2f)}",
-  //fw0->GetParameter(0),fw0->GetParameter(1),fw0->GetParameter(2)), "lp");
-  le2->SetTextColor(fw0->GetLineColor());
-  leg2->Draw();
-  //gPad->SetLogx(1); 
-
-  c->Update();
-  return c;
-}
-
-void AliEMCALPi0Calibration::ReadParsDeffAndW0
-(const char *dirName, double *deff, double *edeff, double *w0, double *ew0, const Int_t pri)
-{
-  // read pars and W0
-  int strategy = 0, itmp=0;
-  char line[100];
-  for(int var=11; var<=19; var++){
-    int ind = var -11;
-    ifstream fin;
-    TString fname = Form("%s/fitVar%iStrategy%i.txt", dirName, var, strategy);
-    //printf(" open file %s \n", fname.Data());
-    fin.open(fname.Data());
-   
-    for(int i=1; i<=2; i++) { // skip to lines
-      fin.getline(line,100).eof();
-      if(pri>=2) printf("%s \n", line);
-    }
-
-    fin >> itmp >> deff[ind] >> edeff[ind];
-    fin >> itmp >> w0[ind]   >> ew0[ind];
-    if(pri>=1) 
-    printf(" %i def %f+/-%f : def %f+/-%f\n", ind, deff[ind],edeff[ind],w0[ind],ew0[ind]); 
-    fin.getline(line,100).eof(); // skip last line
-    fin.close();
-  }
-}
-
-TCanvas* AliEMCALPi0Calibration::DrawSpaceResolution()
-{
-  // Sep 4, 2007;
-  // Space resolution vs optimised space resolution
-  Double_t p[]={0.5, 1.0, 3., 5., 10., 20.,30.,50.,100.};
-  Double_t ep[]={0., 0., 0., 0., 0., 0., 0., 0., 0.};
-  Double_t  spAng[]={0.1877, 0.1351, 0.08144, 0.06331, 0.05384, 0.04876, 0.04706, 0.04656, 0.04726};
-  Double_t rmsSpAng[]={0.1033, 0.07685, 0.05235, 0.03992, 0.04012, 0.04257, 0.03472, 0.02814, 0.02784};
-  Double_t  spAngOpt[]={0.1733, 0.1311, 0.07961, 0.06401, 0.05347, 0.04618, 0.04288, 0.04, 0.03802};
-  Double_t rmsSpAngOpt[]={0.09476, 0.07472, 0.05011, 0.04242, 0.04075, 0.04304, 0.03545, 0.02744, 0.02593};
-
-  int np=sizeof(p)/sizeof(Double_t);
-  printf("<I> AliEMCALPi0Calibration::DrawSpaceResolution() | np %i \n", np);
-
-  Double_t* eSpAng    = new Double_t[np];
-  Double_t* eSpAngOpt = new Double_t[np];
-  Double_t cc=TMath::Sqrt(8000.), cc2 = 1000.*TMath::DegToRad();
-  for(int i=0; i<np; i++){
-    spAng[i]       *= cc2;
-    rmsSpAng[i]    *= cc2;
-    spAngOpt[i]    *= cc2;
-    rmsSpAngOpt[i] *= cc2;
-
-    eSpAng[i]    = spAng[i]/cc;
-    eSpAngOpt[i] = spAngOpt[i]/cc;
-  }
-
-  TCanvas *c = new TCanvas("Deff","Deff", 20,20, 700, 500);
-  //c->Divide(2,1);
-
-  c->cd(1);
-  gStyle->SetOptFit(111);
-
-  TGraphErrors *gr = u::DrawGraphErrors(np, p,spAng, ep, eSpAng,
-  kBlack, 21,"AP","Angle resolution (mrad) vs E_{#gamma} ","E_{#gamma}       "," anlgle resolution (mrad) ",
-                                       -1, "", 0);
-  gr->GetHistogram()->SetMaximum(4.);
-  gr->GetHistogram()->SetMinimum(0.6);
-  gPad->SetLogx(1);
-  gPad->SetLogy(1);
-
-  TF1 *fang = new TF1("fang","[0]+[1]/sqrt(x)",0.1, 101.);
-  fang->SetLineColor(kRed);
-  fang->SetLineWidth(1);
-
-  TGraphErrors *gr2 = u::DrawGraphErrors(np, p,spAngOpt, ep, eSpAngOpt,
-  kRed,22,"P"," space vs E_{#gamma} ","E_{#gamma}         "," anlgle resolution (mrad) ",
-                                        -1, "+", fang->GetName());
-  TLegend *leg1 = new TLegend(0.40,0.57, 0.92,0.87);
-  TLegendEntry *le1 = leg1->AddEntry(gr, "Initial angle resolution", "p");
-  le1->SetTextColor(gr->GetLineColor());
-
-  TLegendEntry *le2 = leg1->AddEntry(gr2, "Optimized angle resolution", "p");
-  le2->SetTextColor(gr2->GetLineColor());
-
-  TLegendEntry *le3 = leg1->AddEntry(fang, 
-  Form("%3.2f+#frac{%4.2f}{#sqrt{E}}",fang->GetParameter(0),fang->GetParameter(1)), "lp");
-  le3->SetTextColor(fang->GetLineColor());
-
-  leg1->Draw();
-
-  c->Update();
-
-  return c;
-}
-
-void AliEMCALPi0Calibration::ResetAllListOfHists()
-{
-  // Reset all list of hits
-  u::ResetListOfHists(fLofHistsPC);
-  u::ResetListOfHists(fLofHistsRP);
-  u::ResetListOfHists(fLKineVsRP);
-  u::ResetListOfHists(fLShowerProfile);
-}
-
-void AliEMCALPi0Calibration::ReloadChain(Long64_t entry)
-{ 
-  // Oct 14, 2007 - unused now
-  if(fChain) {
-    fChain->LoadTree(entry);
-  }
-}
-
-void AliEMCALPi0Calibration::GetInitialParsForFit(const Int_t var, Double_t &deff, Double_t &w0, Double_t &phislope, const int phiCase)
-{
-  //  int phiCase=0; // 0 or 1
-  phislope = 0.001;
-  if(var==11)         { // stay here
-    deff = 9.07515;
-    w0   = 3.44679;
-  }  else if(var==12) {
-    deff = 1.00835e+01;
-    w0   = 3.82714e+00;
-  }  else if(var==13) {
-    deff = 1.12032e+01;
-    w0   = 4.15035e+00;
-  }  else if(var==14) {
-    deff = 1.14229e+01;
-    w0   = 4.36650;
-  }  else if(var==15) {
-    deff = 1.21361e+01; 
-    w0   = 4.72875;
-  }  else if(var==16) {
-    deff = 1.28096e+01;
-    w0   = 4.81753e+00;
-  }  else if(var==17) {
-    deff = 1.33281e+01; 
-    w0   = 4.63289e+00;
-  }  else if(var==18) {
-    deff = 1.37910e+01; 
-    w0   = 4.66568;
-  }  else if(var==19) {// Aug 15, 2007
-    switch (phiCase) {
-    case 0: // phislope was defined than deff and w0 were fixed
-      deff = 1.43319e+01;
-      w0   = 4.69279;
-      phislope = 2.41419e-04;
-      break;
-    case 1: // all parameters free
-      deff = 1.46327e+01;
-      w0   = 4.68125;
-      phislope = 8.95559e-04;
-      break;
-    }
-  } else { 
-    printf("<E> var % i -> no definition ! \n", var);
-    assert(0);
-  }
-  printf("<I> AliEMCALPi0Calibration::GetInitialParForFit()\n deff %f w0 %f phislope %f \n", 
-        deff,w0, phislope);
-}
diff --git a/EMCAL/Calib/AliEMCALPi0Calibration.h b/EMCAL/Calib/AliEMCALPi0Calibration.h
deleted file mode 100644 (file)
index e5274b5..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-#ifndef ALIEMCALPI0CALIBRATION_H
-#define ALIEMCALPI0CALIBRATION_H
-/* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
- * See cxx source for full Copyright notice     */
-
-/* $Id: AliEMCALPi0Calibration.h 21465 2007-10-16 14:38:13Z pavlinov $ */
-//*--  Authors: Aleksei Pavlinov (WSU)
-//  Pi0 calibration
-//  Tuning parameters of coordinate calculations 
-//  May 2008 - move to AliAnalysisTaskSE
-
-#include "AliAnalysisTaskSE.h"
-
-#include <TObjArray.h>
-
-class AliEMCALGeometry;
-class AliEMCALFolder;
-class AliRunLoader;
-class AliEMCALRecPoint;
-class AliEMCALCellInfo;
-class AliEMCALCellIndexes;
-
-class TList;
-class TCanvas;
-class TH1F;
-class TH2F;
-class TBrowser;
-class TChain;
-class TFolder;
-class TArrayI;
-
-class AliEMCALPi0Calibration :  public AliAnalysisTaskSE {
-  public:
-    AliEMCALPi0Calibration();
-    AliEMCALPi0Calibration(const char* name);
-    //AliEMCALPi0Calibration(const AliAnalysisTaskSE& obj);
-    //AliEMCALPi0Calibration& operator=(const AliAnalysisTaskSE& other);
-
-    virtual ~AliEMCALPi0Calibration();
-
-    virtual void UserExec(const Option_t* opt);
-  //
-  void InitStructure(Int_t it);
-  static TList *DefineHistsOfRP(const char *name="RP",  Double_t p=110.0, Int_t keyOpt=0);
-  static TList *DefineHistsOfKineVsRP(const char *name="KineVsRP",  Double_t p=110.0, Int_t keyOpt=0);
-  static TList *DefineHistsForShowerProfile(const char *name="ProfY", Double_t p=1.);
-  static void   FillHistsOfKineVsRP(TList *l, AliRunLoader* RL, TClonesArray &lvM);
-  static void   FillHistsForShowerProfile(TList *l, AliEMCALRecPoint *rp, AliEMCALCellInfo* t);
-  static void   EvalLocalPhiPosition(const Double_t wlog, const AliEMCALRecPoint *rp, const AliEMCALCellInfo* t, Double_t &xcog, Int_t &phiSize, AliEMCALCellIndexes &rMax); 
-  //
-  TList *GetListKineVsRP()      {return fLKineVsRP;}
-  TList *GetListShowerProfile() {return fLShowerProfile;}
-  //  static TList *DefineHistsOfTowers(const char *name="towers");
-  // 
-  void FitEffMassHist(); // *MENU*  
-  void PrintInfo();      // *MENU*
-  //
-  void    SetChain(TChain *chain)  {fChain = chain;}
-  TChain* GetChain()               {return fChain;}
-  void    SetMomentum(Double_t p);
-  Double_t GetMomentum() const {return fPmom;}
-
-  AliEMCALFolder* CreateEmcalFolder(const Int_t it);
-  void SetEmcalFolder(AliEMCALFolder* folder); 
-  void SetEmcalOldFolder(AliEMCALFolder* folder); 
-  AliEMCALFolder* GetEmcalOldFolder(const Int_t nsm);
-  AliEMCALCellInfo* GetCellsInfo() {return fCellsInfo;}
-  //
-  void      SetStringOfRunOpts(const char *st) {fRunOpts = st;}
-  TObjArray GetOptsArray() const {return fArrOpts;}
-  Int_t     GetKeyOptsValue(Int_t key);  // *MENU*
-  void      CheckRunOpts();
-  //
-  virtual void Browse(TBrowser* b);
-  virtual Bool_t  IsFolder() const;
-  //
-  void    Save(Int_t ver=0, const char *optIO="NEW");   // *MENU*
-  static  AliEMCALPi0Calibration* ReadSelector(const char* nf = "/home/pavlinov/ALICE/SHISHKEBAB/RF/CALIB/PROF/PROFILE_0.root");
-  
-
-  //
-  //// Pictures staf - Jun 26, 2007
-  //
-  void ReadAllEmcalFolders();
-  void PictVsIterNumber(const Int_t ind=0, const Int_t nsm=0);
-  // Gamma
-  TH1F* FitHistOfRecPointEnergy(const char *opt="CLONE");
-  static TCanvas *Linearity(TList *l, Int_t ifun=3);
-  static TCanvas *DrawKineVsRP(TList *l);
-  // Profile
-  static TCanvas *DrawMeanVsLog(TH2F *h2);
-  // Geometry staff
-  TCanvas *DrawPhiEtaAnglesDistribution(const char *gn="SHISH_TRD1_CURRENT_2X2"); // *MENU*
-  // Geometry constants 
-  TCanvas *DrawDeffVsEnergy();  // *MENU*
-  TCanvas *DrawDeffVsEnergy2(const char *opt="fit1"); // *MENU*
-  void     ReadParsDeffAndW0(const char *dirName="/data/r22b/ALICE/CALIB/FIT/",
-          double *deff=0, double *edeff=0, double *w0=0, double *ew0=0, const Int_t pri=0);
-  TCanvas *DrawSpaceResolution();
-  // 
-  static AliEMCALFolder* GetEmcalFolder() {return fgEMCAL;}
-  static AliEMCALFolder* GetEmcalOldFolder() {return fgEMCALOld;}
-  static void SetFitParameters(Double_t deff, Double_t w0, Double_t slope) 
-  {
-    fgDistEff = deff; fgW0 = w0; fgSlopePhiShift = slope;
-  }
-  static void GetFitParameters(Double_t &deff, Double_t &w0, Double_t &slope)
-  {
-    deff = fgDistEff; w0 = fgW0; slope = fgSlopePhiShift;
-  } 
-  void ResetAllListOfHists();
-  void ReloadChain(Long64_t entry=0);
-  void GetInitialParsForFit(const Int_t var, Double_t &deff, Double_t &w0, Double_t &phislope, const int phiCase=0);
-
- protected:
-  static AliEMCALFolder*  fgEMCAL;      // current  EMCAL object
-  static AliEMCALFolder*  fgEMCALOld;   // previous EMCAL object
-  //
-  static Double_t fgDistEff;  // effective depth of electromagnetic shower
-  static Double_t fgW0;       // parameter of log. methods 
-  static Double_t fgSlopePhiShift; // phi shift of cluster = fSlopePhiShift * phi
-
-  Double_t fPmom; // positive if defined
-  //
-  TChain* fChain; //! chain if ESD files
-  TList* fLofHistsPC; // list of histograms of pseudo clusters 
-  TList* fLofHistsRP; // list of histograms of rec.points 
-  TList* fLKineVsRP;  // list of histograms kinematics vs rec.points 
-  TList* fLShowerProfile;  // list of histograms for shower profile business
-  //
-  AliEMCALCellInfo *fCellsInfo; // pointer to current cell
-  TFolder*         fEmcalPool;  // folder of EMCAL objects
-  //
-  // Options - Jul 10, 2007
-  //
-  TString   fRunOpts;        // String of running options
-  TObjArray fArrOpts;        // Array of options 
-  // Options keys
-  TArrayI  *fKeyOpts;        // optins key; 0-disable, 1-enable
-  // Static parameters
- private:
-  AliEMCALPi0Calibration(const AliEMCALPi0Calibration&);
-  AliEMCALPi0Calibration& operator=(const AliEMCALPi0Calibration&);
-  //
-  static AliEMCALGeometry* fgEmcalGeo; //! pointer to EMCAL geometry
-  static Int_t fgNmaxCell;  //! max number of cells
-  static const Char_t **fgAnaOpt; //! aray of options
-  static Int_t fgNanaOpt;   //! number of options
-
-  ClassDef(AliEMCALPi0Calibration, 1);
-};
-#endif
diff --git a/EMCAL/Calib/AliEMCALPi0SelectionParam.cxx b/EMCAL/Calib/AliEMCALPi0SelectionParam.cxx
deleted file mode 100644 (file)
index 0768680..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-/**************************************************************************
- * Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
- *                                                                        *
- * Author: The ALICE Off-line Project.                                    *
- * Contributors are mentioned in the code where appropriate.              *
- *                                                                        *
- * Permission to use, copy, modify and distribute this software and its   *
- * documentation strictly for non-commercial purposes is hereby granted   *
- * without fee, provided that the above copyright notice appears in all   *
- * copies and that both the copyright notice and this permission notice   *
- * appear in the supporting documentation. The authors make no claims     *
- * about the suitability of this software for any purpose. It is          *
- * provided "as is" without express or implied warranty.                  *
- **************************************************************************/
-
-/* History of cvs commits:
-*
-* $Log$
-* Revision 1.3  2007/10/16 14:36:39  pavlinov
-* fixed code violation (almost)
-*
-* Revision 1.2  2007/09/11 19:38:15  pavlinov
-* added pi0 calibration, linearity, shower profile
-* co: warning: `$Log' is obsolescent; use ` * $Log'.
-
-* Revision 1.1  2007/08/08 15:58:01  hristov
-* New calibration classes. They depend on TTable, so libTable.so is added to the list of Root libraries. (Aleksei)
-*/
-
-//_________________________________________________________________________
-//    Set of parameters for pi0 selection 
-//
-//*-- Author: Aleksei Pavlinov (WSU, Detroit, USA) 
-
-#include "AliEMCALPi0SelectionParam.h"
-
-ClassImp(AliEMCALPi0SelectionParRec)
-//_________________________________________________________________________
-AliEMCALPi0SelectionParRec::AliEMCALPi0SelectionParRec() : 
-fEOfRpMin(0.3), fEOfRpMax(30.), fMassGGMin(0.03), fMassGGMax(0.28), fMomPi0Min(1.8), fMomPi0Max(12.)
-{
-  // Default constructor 
-}
-
-
-
-
-ClassImp(AliEMCALPi0SelectionParam)
-//_________________________________________________________________________
-AliEMCALPi0SelectionParam::AliEMCALPi0SelectionParam() : TNamed("",""), fTable(0), fCurrentInd(0)
-{
-  // Default constructor 
-}
-
-//_________________________________________________________________________
-AliEMCALPi0SelectionParam::AliEMCALPi0SelectionParam(const AliEMCALPi0SelectionParam& param) 
-  : TNamed(param), fTable(param.fTable), fCurrentInd(param.fCurrentInd)
-{
-  // Copy constructor 
-}
-
-//_________________________________________________________________________
-AliEMCALPi0SelectionParam::AliEMCALPi0SelectionParam(const char* name, const Int_t nrow) : TNamed(name,"table of cell information") , fTable(0), fCurrentInd(0)
-{
-  // Oct 16, 2007
-  fTable = new TObjArray(nrow);
-}
-
-//_________________________________________________________________________
-void AliEMCALPi0SelectionParam::AddAt(AliEMCALPi0SelectionParRec* r)
-{
-  // Oct 16, 2007
-  (*fTable)[fCurrentInd] = new AliEMCALPi0SelectionParRec(*r);
-  fCurrentInd++;
-}
-
-//_________________________________________________________________________
-AliEMCALPi0SelectionParam::~AliEMCALPi0SelectionParam()
-{
-  // Oct 16, 2007
-  if(fTable) {
-    fTable->Delete();
-    delete fTable;
-  }
-}
-
-//_________________________________________________________________________
-AliEMCALPi0SelectionParRec* AliEMCALPi0SelectionParam::GetTable(Int_t i) const
-{
-  // Oct 16, 2007
-  return (AliEMCALPi0SelectionParRec*)fTable->At(i);
-}
-
-//_________________________________________________________________________
-void AliEMCALPi0SelectionParam::PrintTable()
-{
-  // Oct 16, 2007
-  printf(" Table : %s : nrows %i \n", GetName(), int(GetNRows()));
-  for(int i=0; i<GetNRows(); i++) PrintTable(i);
-}
-
-//_________________________________________________________________________
-void AliEMCALPi0SelectionParam::PrintTable(const Int_t i)
-{
-  // Oct 16, 2007
-  if(i>=GetNRows()) return;
-  printf("row %i \n", i);
-  PrintRec(GetTable(i));
-}
-
-//_________________________________________________________________________
-void AliEMCALPi0SelectionParam::PrintRec(AliEMCALPi0SelectionParRec* r)
-{
-  // Oct 16, 2007
-  if(r==0) return;
-  printf(" cluster  energy  window %7.2f -> %7.2f \n", r->fEOfRpMin, r->fEOfRpMax);
-  printf(" gamma,gamma mass window %7.2f -> %7.2f \n", r->fMassGGMin, r->fMassGGMax);
-  printf(" pi0   momentum   window %7.2f -> %7.2f \n", r->fMomPi0Min, r->fMomPi0Max);
-}
-
-//_________________________________________________________________________
-// Set 1;
-AliEMCALPi0SelectionParam* AliEMCALPi0SelectionParam::Set1()
-{
-  // Initial set of pars of Pi0 selection
-  AliEMCALPi0SelectionParRec r;
-  r.fEOfRpMin  = 0.3; 
-  r.fEOfRpMax  = 30.;
-  r.fMassGGMin = 0.03;  
-  r.fMassGGMax = 0.28; 
-  r.fMomPi0Min = 1.8;
-  r.fMomPi0Max = 12.0;
-  AliEMCALPi0SelectionParam *t = new AliEMCALPi0SelectionParam("Pi0Set1",1);
-  t->AddAt(&r);
-  return t;
-}
diff --git a/EMCAL/Calib/AliEMCALPi0SelectionParam.h b/EMCAL/Calib/AliEMCALPi0SelectionParam.h
deleted file mode 100644 (file)
index fc40518..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-#ifndef ALIEMCALPI0SELECTIONPARAM_H
-#define ALIEMCALPI0SELECTIONPARAM_H
-/* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
- * See cxx source for full Copyright notice     */
-
-/* $Id: AliEMCALPi0SelectionParam.h 24500 2008-03-13 23:39:38Z jklay $ */
-
-//_________________________________________________________________________
-//  Set of parameters for pi0 selection 
-// unit is GeV
-// pi0SelectionParam -> AliEMCALPi0SelectionParRec
-//                  
-//*-- Author: Aleksei Pavlinov (WSU, Detroit, USA) 
-
-// --- ROOT system ---
-#include <TNamed.h>
-#include <TObjArray.h>
-
-// pi0SelectionParam -> AliEMCALPi0SelectionParRec
-
-class  AliEMCALPi0SelectionParRec :  public TObject{
-  friend class AliEMCALPi0SelectionParam;
-  friend class AliEMCALPi0Calibration;
- public:
-  AliEMCALPi0SelectionParRec();
-  virtual ~AliEMCALPi0SelectionParRec() {};
-  virtual const char* GetName() const {return "Pi0Par";}
-
- protected:
-  double fEOfRpMin;   // minimal energy of em.cluster (rec point)
-  double fEOfRpMax;   // maximal energy of em.cluster (rec point)
-  double fMassGGMin;  // minimal mass of gamma,gamma
-  double fMassGGMax;  // maximal mass of gamma,gamma
-  double fMomPi0Min;  // minimal pi0 momentum
-  double fMomPi0Max;  // maximal pi0 momentum
-
-  ClassDef(AliEMCALPi0SelectionParRec,1);
-};
-
-
-class AliEMCALPi0SelectionParam : public TNamed {
- public:
-  AliEMCALPi0SelectionParam(); // default constractor
-  AliEMCALPi0SelectionParam(const AliEMCALPi0SelectionParam& param);
-  AliEMCALPi0SelectionParam(const char* name, const Int_t nrow);
-  virtual ~AliEMCALPi0SelectionParam();
-
-  AliEMCALPi0SelectionParam & operator = (const AliEMCALPi0SelectionParam  & /*rvalue*/) {
-    // assignement operator requested by coding convention but not needed
-    Fatal("operator =", "not implemented");
-    return *this;
-  };
-  // 
-  void AddAt(AliEMCALPi0SelectionParRec* r);
-  AliEMCALPi0SelectionParRec* GetTable(Int_t i) const;
-  Int_t       GetSize()  const {return fTable->GetSize();}
-  Int_t       GetNRows() const {return fCurrentInd;}
-
- // Menu
-  void PrintTable();                 // *MENU*
-  void PrintTable(const Int_t i);    // *MENU*
-  void PrintRec(AliEMCALPi0SelectionParRec *r);
-
-  // Set of parameter(s)
-  static AliEMCALPi0SelectionParam* Set1();
-  //
- protected:
-  TObjArray *fTable; // Table of AliEMCALPi0SelectionParRec
-  Int_t fCurrentInd; // Current index
-
-  ClassDef(AliEMCALPi0SelectionParam, 2) // Set of Parameters For Pi0 Selection     
-};
-
-#endif // ALIEMCALPI0SELECTIONPARAM_H
diff --git a/EMCAL/Calib/AliEMCALSuperModule.cxx b/EMCAL/Calib/AliEMCALSuperModule.cxx
deleted file mode 100644 (file)
index 560d384..0000000
+++ /dev/null
@@ -1,235 +0,0 @@
-/**************************************************************************
- * Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
- *                                                                        *
- * Author: The ALICE Off-line Project.                                    *
- * Contributors are mentioned in the code where appropriate.              *
- *                                                                        *
- * Permission to use, copy, modify and distribute this software and its   *
- * documentation strictly for non-commercial purposes is hereby granted   *
- * without fee, provided that the above copyright notice appears in all   *
- * copies and that both the copyright notice and this permission notice   *
- * appear in the supporting documentation. The authors make no claims     *
- * about the suitability of this software for any purpose. It is          *
- * provided "as is" without express or implied warranty.                  *
- **************************************************************************/
-
-/* 
-$Log$
-Revision 1.3  2007/11/14 15:34:05  gustavo
-Coding violations corrected
-
-Revision 1.2  2007/09/11 19:38:15  pavlinov
-added pi0 calibration, linearity, shower profile
-*/
-
-//_________________________________________________________________________
-// Top EMCAL folder which will keep all information about EMCAL itself,
-// super Modules (SM), modules, towers, set of hists and so on.
-//  TObjectSet -> TFolder; Sep 6, 2007
-//
-//
-//
-//*-- Author: Aleksei Pavlinov (WSU, Detroit, USA) 
-
-#include "AliEMCALSuperModule.h"
-#include "AliEMCALFolder.h"
-#include "AliEMCALCell.h"
-#include "AliEMCALHistoUtilities.h"
-
-#include <TROOT.h>
-#include <TStyle.h>
-#include <TList.h>
-#include <TH1.h>
-#include <TF1.h>
-#include <TCanvas.h>
-#include <TLegend.h>
-#include <TLegendEntry.h>
-
-typedef  AliEMCALHistoUtilities u;
-
-ClassImp(AliEMCALSuperModule)
-
-AliEMCALSuperModule::AliEMCALSuperModule() : TFolder()
-, fParent(0),fLh(0),fSMNumber(0)
-{
-  //default ctor
-}
-
-AliEMCALSuperModule::AliEMCALSuperModule(const Int_t m, const char* title) : 
-TFolder(Form("SM%2.2i",m), title)
-, fParent(0),fLh(0),fSMNumber(m)
-{ 
-  //ctor
-} 
-
-AliEMCALSuperModule::AliEMCALSuperModule(const AliEMCALSuperModule &sm) : 
-TFolder(), fParent(sm.fParent),fLh(sm.fLh),fSMNumber(sm.fSMNumber)
-{ 
-  //copy ctor
-} 
-
-AliEMCALSuperModule & AliEMCALSuperModule::operator =(const AliEMCALSuperModule &sm)
-{ 
-    // assignment operator
-//   if(this == &sm)return *this;
-//   ((TObject *)this)->operator=(sm);
-
-  fParent = sm.fParent; 
-  fLh = sm.fLh;
-  fSMNumber = sm.fSMNumber;
-  return *this;
-} 
-
-AliEMCALSuperModule::~AliEMCALSuperModule()
-{
-  // dtor
-}
-
-void AliEMCALSuperModule::Init()
-{
-  //Initialization method
-
-  if(GetHists()==0) {
-    fLh = BookHists();
-    Add(fLh);
-  }
-}
-
-void  AliEMCALSuperModule::AddCellToEtaRow(AliEMCALCell *cell, const Int_t etaRow)
-{
-  //Adds cells to corresponding Super module Eta Row
-  static TFolder *set;
-  set = dynamic_cast<TFolder*>(FindObject(Form("ETA%2.2i",etaRow))); 
-  if(set==0) {
-    set = new  TFolder(Form("ETA%2.2i",etaRow),"eta row");
-    Add(set);
-  }
-  set->Add(cell);
-}
-
-void AliEMCALSuperModule::FitForAllCells()
-{
-  //Fit histograms of each cell
-
-  Int_t ncells=0;
-  for(int eta=0; eta<48; eta++) { // eta row
-    TFolder *setEta = dynamic_cast<TFolder*>(FindObject(Form("ETA%2.2i",eta)));
-    if(setEta) {
-      TList* l = (TList*)setEta->GetListOfFolders();
-      printf(" eta %i : %s : cells %i \n", eta, setEta->GetName(), l->GetSize());
-      for(int phi=0; phi<l->GetSize(); phi++) { // cycle on cells (phi directions)
-        AliEMCALCell* cell = dynamic_cast<AliEMCALCell*>(l->At(phi));
-        if(cell == 0) continue; 
-
-        cell->FitEffMassHist();
-
-        u::FillH1(GetHists(), 1, cell->GetCcIn()*1.e+3);
-        u::FillH1(GetHists(), 2, cell->GetCcOut()*1.e+3);
-
-        TF1 *f = cell->GetFunction();
-        u::FillH1(GetHists(), 3, f->GetParameter(1));
-        u::FillH1(GetHists(), 4, f->GetParameter(2));
-        u::FillH1(GetHists(), 5, f->GetChisquare()/f->GetNDF());
-        u::FillH1(GetHists(), 6, f->GetParameter(0));
-
-        ncells++;
-      }
-    }
-  }
-  printf(" <I> AliEMCALSuperModule::FitForAllCells() : ncells %i with fit \n", ncells);
-}
-
-void AliEMCALSuperModule::FitEffMassHist()
-{
-  //Fit effective mass histogram
-  TH1* h = (TH1*)GetHists()->At(0);
-  AliEMCALCell::FitHist(h, GetName());
-}
-
-
-void AliEMCALSuperModule::PrintInfo()
-{
-  //Print
-  printf(" Super Module :   %s    :   %i \n", GetName(), fSMNumber);
-  printf(" # of active cells                %i \n", GetNumberOfCells());
-  TH1* h = (TH1*)GetHists()->At(0);
-  printf(" # h->Integral() of eff.mass hist %i \n", int(h->Integral()));
-}
-
-void AliEMCALSuperModule::DrawCC(int iopt)
-{
-  //Draw different cell histograms
-  TCanvas *c=0; 
-  if(iopt==1) c = new TCanvas("ccInOut","ccInOut");
-  gStyle->SetOptStat(0);
-
-  TH1 *hCCIn  = (TH1*)GetHists()->At(1);
-  TH1 *hCCOut = (TH1*)GetHists()->At(2);
-
-  if(hCCIn == 0)              return;
-  if(hCCIn->GetEntries()<10.) return;
-
-  hCCIn->SetStats(kFALSE);
-  hCCOut->SetStats(kFALSE);
-  hCCOut->SetTitle("CC in and out; Iter 1; Jul 26; All Statistics");
-  hCCOut->SetXTitle("cc in MeV");
-  hCCOut->SetYTitle("  N  ");
-
-  u::DrawHist(hCCOut,2);
-  hCCOut->SetAxisRange(10., 24.);
-  u::DrawHist(hCCIn,2, kRed, "same");
-
-  TLegend *leg = new TLegend(0.5,0.36, 0.97,0.80);
-  TLegendEntry *leIn = leg->AddEntry(hCCIn, Form("input cc : %6.2f #pm %6.2f", hCCIn->GetMean(),hCCIn->GetRMS()), "L");
-  leIn->SetTextColor(hCCIn->GetLineColor());
-
-  if(hCCOut->GetEntries()>10.) 
-  leg->AddEntry(hCCOut, Form("output cc : %6.2f #pm %6.2f", hCCOut->GetMean(),hCCOut->GetRMS()), "L");
-
-  leg->Draw();
-
-  if(c) c->Update();
-}
-
-Int_t AliEMCALSuperModule::GetNumberOfCells()
-{
-  //Returns number of cells in SM
-  Int_t ncells=0;
-  TList* l = (TList*)GetListOfFolders();
-  for(int eta=0; eta<l->GetSize(); eta++) { // cycle on eta row
-    TFolder *setEta = dynamic_cast<TFolder*>(l->At(eta));
-    if(setEta==0) continue;
-
-    TList* le = (TList*)setEta->GetListOfFolders();
-    ncells += le->GetSize();
-  }
-  return ncells;
-}
-
-TList* AliEMCALSuperModule::BookHists()
-{
-  //Initializes histograms
-
-  gROOT->cd();
-  TH1::AddDirectory(1);
-
-  AliEMCALFolder* emcal = (AliEMCALFolder*)GetParent(); 
-  Int_t it = emcal->GetIterationNumber();
-
-  new TH1F("00_EffMass",  "effective mass of #gamma,#gamma(m_{#pi^{0}}=134.98 MeV) ", 250,0.0,0.5);
-  new TH1F("01_CCInput",  "input CC dist.(MEV) ", 200, 5., 25.);
-  new TH1F("02_CCOutput", "output CC dist.(MEV) ", 200, 5., 25.);
-  new TH1F("03_MPI0", "mass of #pi_{0} dist. ", 170, 0.05, 0.22);
-  new TH1F("04_RESPI0", "resolution at #pi_{0} dist. ", 50, 0.0, 0.05);
-  new TH1F("05_XI2/NDF", "#chi^{2} / ndf", 50, 0.0, 5.0);
-  new TH1F("06_NPI0", "number of #pi_{0}", 150, 0.0, 1500.);
-
-  TList *l = AliEMCALHistoUtilities::MoveHistsToList(Form("HistsOfSM_%2.2i",fSMNumber), kFALSE);
-  AliEMCALHistoUtilities::AddToNameAndTitleToList(l, Form("_%2.2i_It%i",fSMNumber, it), 
-                                                 Form(" SM %2.2i, Iter %i",fSMNumber, it));
-
-  TH1::AddDirectory(0);
-  return l;
-}
diff --git a/EMCAL/Calib/AliEMCALSuperModule.h b/EMCAL/Calib/AliEMCALSuperModule.h
deleted file mode 100644 (file)
index e1d0733..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-#ifndef ALIEMCALSUPERMODULE_H
-#define ALIEMCALSUPERMODULE_H
-/* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
- * See cxx source for full Copyright notice     */
-
-/* $Id: AliEMCALSuperModule.h 22148 2007-11-14 15:34:05Z gustavo $ */
-
-//_________________________________________________________________________
-//  Emcal Super Module     
-//                  
-//*-- Author: Aleksei Pavlinov (WSU, Detroit, USA)
-//  Super Module folder
-//  Initial version was created with TDataSet staf
-//  TObjectSet -> TFolder; Sep 6, 2007
-//
-//
-
-#include <TFolder.h>
-
-class TList;
-class TStyle ;
-class TROOT;
-
-class AliEMCALCell;
-
-class AliEMCALSuperModule : public TFolder {
-
- public:
-  
-  AliEMCALSuperModule();  // default ctor
-  AliEMCALSuperModule(const Int_t m, const char* title="Emcal Super Module");//ctor
-  AliEMCALSuperModule( const AliEMCALSuperModule & sm);// cpy ctor
-  AliEMCALSuperModule &operator = (const AliEMCALSuperModule & sm);// cpy assignment
-  virtual ~AliEMCALSuperModule();//virtual dtor
-
-  void Init();
-  void   AddCellToEtaRow(AliEMCALCell *cell, const Int_t etaRow);
-  TList*   GetHists()  {return fLh;}
-  TObject* GetParent() {return fParent;}
-  void     SetParent(TObject *parent) {fParent=parent;}
-  // MENU
-  void FitForAllCells(); //*MENU*  
-  void FitEffMassHist(); //*MENU*  
-  void PrintInfo();      //*MENU* 
-  void DrawCC(int iopt=1); //*MENU* 
-  //
-  Int_t GetNumberOfCells();
-  Int_t GetSMNumber() const {return fSMNumber;}
- protected:
-  TList* BookHists();
-  //
-  TObject* fParent; // parent
-  TList*   fLh;     // List of hists
-  Int_t    fSMNumber; //Super Module Number
-
-  ClassDef(AliEMCALSuperModule,2) // EMCAL SuperModule
-    
-};
-
-#endif // ALIEMCALSUPERMODULE_H
diff --git a/EMCAL/EMCALcalibLinkDef.h b/EMCAL/EMCALcalibLinkDef.h
deleted file mode 100644 (file)
index 6e655a9..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifdef __CINT__
-// for libEMCALbase.pkg 
-#pragma link off all globals;
-#pragma link off all classes;
-#pragma link off all functions;
-
-// Tables without TTable
-#pragma link C++ class AliEMCALPi0Calibration+;
-#pragma link C++ class AliEMCALPi0SelectionParam+;
-#pragma link C++ class AliEMCALPi0SelectionParRec+;
-#pragma link C++ class AliEMCALCalibCoefs+;
-#pragma link C++ class AliEMCALCalibCoef+;
-#pragma link C++ class AliEMCALCellInfo+;
-#pragma link C++ class AliEMCALCellIndexes+;
-#pragma link C++ class AliEMCALFolder;
-#pragma link C++ class AliEMCALSuperModule;
-#pragma link C++ class AliEMCALCell;
-
-#endif
diff --git a/EMCAL/libEMCALcalib.pkg b/EMCAL/libEMCALcalib.pkg
deleted file mode 100644 (file)
index f4091bd..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-#-*-Mode: Makefile-*-
-
-SRCS =\
-Calib/AliEMCALPi0Calibration.cxx \
-Calib/AliEMCALPi0SelectionParam.cxx \
-Calib/AliEMCALFolder.cxx \
-Calib/AliEMCALSuperModule.cxx \
-Calib/AliEMCALCalibCoefs.cxx \
-Calib/AliEMCALCellInfo.cxx \
-Calib/AliEMCALCell.cxx
-
-HDRS= $(SRCS:.cxx=.h) 
-
-DHDR:=EMCALcalibLinkDef.h
-
-# have to tune
-EINCLUDE:=EMCAL RAW ANALYSIS
-
-ifeq (win32gcc,$(ALICE_TARGET))
-PACKSOFLAGS:= $(SOFLAGS) -L$(ALICE_ROOT)/lib/tgt_$(ALICE_TARGET) \
-                         -lEMCALbase -lEMCALsim \
-                         -lSTEERBase -lCDB -lSTEER \
-                         -lRAWDatarec -lANALYSIS -lANALYSISalice \
-                         -L$(shell root-config --libdir) -lVMC -lGeom
-endif