#include "AliEMCALSDigitizer.h"
#include "AliEMCALGeometry.h"
#include "AliEMCALTick.h"
-#include "AliEMCALJetMicroDst.h"
+#include "AliEMCALHistoUtilities.h"
ClassImp(AliEMCALDigitizer)
digits->Expand(ndigits) ;
//Set indexes in list of digits and fill hists.
- sv::FillH1(fHists, 0, Double_t(ndigits));
+ AliEMCALHistoUtilities::FillH1(fHists, 0, Double_t(ndigits));
Float_t energy=0., esum=0.;
for (i = 0 ; i < ndigits ; i++) {
digit = dynamic_cast<AliEMCALDigit *>( digits->At(i) ) ;
energy = sDigitizer->Calibrate(digit->GetAmp()) ;
esum += energy;
digit->SetAmp(DigitizeEnergy(energy) ) ; // for what ??
- sv::FillH1(fHists, 2, double(digit->GetAmp()));
- sv::FillH1(fHists, 3, double(energy));
- sv::FillH1(fHists, 4, double(digit->GetId()));
+ AliEMCALHistoUtilities::FillH1(fHists, 2, double(digit->GetAmp()));
+ AliEMCALHistoUtilities::FillH1(fHists, 3, double(energy));
+ AliEMCALHistoUtilities::FillH1(fHists, 4, double(digit->GetId()));
}
- sv::FillH1(fHists, 1, esum);
+ AliEMCALHistoUtilities::FillH1(fHists, 1, esum);
}
//____________________________________________________________________________
new TH1F("hDigiAbsId","EMCAL absId cells with fAmp > fDigitThreshold ",
geom->GetNCells(), 0.5, Double_t(geom->GetNCells())+0.5);
}
- fHists = sv::MoveHistsToList("EmcalDigiControlHists", kFALSE);
+ fHists = AliEMCALHistoUtilities::MoveHistsToList("EmcalDigiControlHists", kFALSE);
fHists = 0;
return fHists;
}
void AliEMCALDigitizer::SaveHists(const char* name, Bool_t kSingleKey, const char* opt)
{
- sv::SaveListOfHists(fHists, name, kSingleKey, opt);
+ AliEMCALHistoUtilities::SaveListOfHists(fHists, name, kSingleKey, opt);
}
--- /dev/null
+/**************************************************************************
+ * Copyright(c) 1998-2002, 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$
+*/
+
+//*-- Authors: J.L. Klay (LLNL) & Aleksei Pavlinov (WSU)
+
+//*
+
+#include <TBrowser.h>
+#include <TFile.h>
+#include <TList.h>
+#include <TH1.h>
+#include <TH2.h>
+#include <TROOT.h>
+#include <TString.h>
+
+#include "AliEMCALHistoUtilities.h"
+
+ClassImp(AliEMCALHistoUtilities)
+
+AliEMCALHistoUtilities::AliEMCALHistoUtilities(const char *name, const char *tit) : TNamed(name,tit)
+{
+ //constructor
+ fDebug = 0;
+ gROOT->cd();
+ fListHist = MoveHistsToList("Hist For AliEMCALHistoUtilities", kFALSE);
+}
+
+AliEMCALHistoUtilities::~AliEMCALHistoUtilities()
+{
+ //destructor
+}
+
+void AliEMCALHistoUtilities::Browse(TBrowser* b) const
+{
+ // Browse
+ if(fListHist) b->Add((TObject*)fListHist);
+ // TObject::Browse(b);
+}
+
+Bool_t AliEMCALHistoUtilities::IsFolder() const
+{
+ // Is folder
+ if(fListHist) return kTRUE;
+ else return kFALSE;
+}
+
+TList* AliEMCALHistoUtilities::MoveHistsToList(const char* name, Bool_t putToBrowser)
+{
+ // Move HIST to list
+ gROOT->cd();
+ TIter nextHist(gDirectory->GetList());
+ TList *list = new TList;
+ list->SetName(name);
+ TObject *objHist;
+ while((objHist=nextHist())){
+ if (!objHist->InheritsFrom("TH1")) continue;
+ ((TH1*)objHist)->SetDirectory(0); // Remove from gROOT
+ list->Add(objHist);
+ }
+ if(putToBrowser) gROOT->GetListOfBrowsables()->Add((TObject*)list);
+ return list;
+}
+
+void AliEMCALHistoUtilities::FillH1(TList *l, Int_t ind, Double_t x, Double_t w)
+{
+ static TH1* hid=0;
+ if(l == 0) return;
+ if(ind < l->GetSize()){
+ hid = (TH1*)l->At(ind);
+ hid->Fill(x,w);
+ }
+}
+
+void AliEMCALHistoUtilities::FillH2(TList *l, Int_t ind, Double_t x, Double_t y, Double_t w)
+{
+ static TH2* hid=0;
+ if(l == 0) return;
+ if(ind < l->GetSize()){
+ hid = (TH2*)l->At(ind);
+ hid->Fill(x,y,w);
+ }
+}
+
+int AliEMCALHistoUtilities::SaveListOfHists(TList *list,const char* name,Bool_t kSingleKey,const char* opt)
+{
+ printf(" Name of out file |%s|\n", name);
+ int save = 0;
+ if(list && list->GetSize() && strlen(name)){
+ TString nf(name);
+ if(nf.Contains(".root") == kFALSE) nf += ".root";
+ TFile file(nf.Data(),opt);
+ TIter nextHist(list);
+ TObject* objHist=0;
+ int nh=0;
+ if(kSingleKey) {
+ file.cd();
+ list->Write(list->GetName(),TObject::kSingleKey);
+ list->ls();
+ save = 1;
+ } else {
+ while((objHist=nextHist())) { // loop over list
+ if(objHist->InheritsFrom("TH1")) {
+ TH1* hid = (TH1*)objHist;
+ file.cd();
+ hid->Write();
+ nh++;
+ printf("Save hist. %s \n",hid ->GetName());
+ }
+ }
+ printf("%i hists. save to file -> %s\n", nh,file.GetName());
+ if(nh>0) save = 1;
+ }
+ file.Close();
+ } else {
+ printf("AliEMCALHistoUtilities::SaveListOfHists : N O S A V I N G \n");
+ if(list==0) printf("List of object 0 : %p \n", list);
+ else printf("Size of list %i \n", list->GetSize());
+ }
+ return save;
+}
--- /dev/null
+#ifndef AliEMCALHistoUtilities_H
+#define AliEMCALHistoUtilities_H
+/* Copyright(c) 1998-2002, ALICE Experiment at CERN, All rights reserved. *
+ * See cxx source for full Copyright notice */
+
+/* $Id$ */
+
+//_________________________________________________________________________
+//
+//*-- Authors: J.L. Klay (LLNL) & Aleksei Pavlinov (WSU)
+
+#include <TNamed.h>
+class TList;
+class TBrowser;
+
+class AliEMCALHistoUtilities: public TNamed {
+ public:
+ AliEMCALHistoUtilities(const char *name="emcalHistoUtilities",
+ const char *tit="Histogram Utilities methods for EMCAL");
+ AliEMCALHistoUtilities(const AliEMCALHistoUtilities &) : TNamed("", ""){
+ Fatal("cpy ctor", "not implemented") ; }
+ virtual ~AliEMCALHistoUtilities();
+
+ void SetDebug(Int_t flag) {fDebug = flag;}
+ Float_t GetDebug() const {return fDebug;}
+ virtual Bool_t IsFolder() const;
+ virtual void Browse(TBrowser* b) const ;
+
+ // service routine
+ static TList *MoveHistsToList(const char* name="ListOfHists", Bool_t putToBrowser=kTRUE);
+ static void FillH1(TList *l=0, Int_t ind=0, Double_t x=-99999., Double_t w=1.);
+ static void FillH2(TList *l=0, Int_t ind=0, Double_t x=-99999., Double_t y=-99999., Double_t w=1.);
+ static int SaveListOfHists(TList *list=0, const char* name="test", Bool_t kSingleKey=kFALSE,
+ const char* opt="RECREATE");
+
+ AliEMCALHistoUtilities & operator = (const AliEMCALHistoUtilities &) {
+ Fatal("operator =", "not implemented") ; return *this ; }
+
+ private:
+ Int_t fDebug; // debug flag
+ TList* fListHist; //!
+
+ ClassDef(AliEMCALHistoUtilities,1) // EMCAL Histogram service routines
+};
+
+#endif // AliEMCALHistoUtilities_H
#include "AliEMCALHit.h"
#include "AliEMCALSDigitizer.h"
#include "AliEMCALGeometry.h"
-#include "AliEMCALJetMicroDst.h"
+#include "AliEMCALHistoUtilities.h"
ClassImp(AliEMCALSDigitizer)
Int_t nPrimarymax = -1 ;
Int_t i ;
Double_t e=0.,esum=0.;
- sv::FillH1(fHists, 0, double(sdigits->GetEntriesFast()));
+ AliEMCALHistoUtilities::FillH1(fHists, 0, double(sdigits->GetEntriesFast()));
for (i = 0 ; i < sdigits->GetEntriesFast() ; i++) {
AliEMCALDigit * sdigit = dynamic_cast<AliEMCALDigit *>(sdigits->At(i)) ;
sdigit->SetIndexInList(i) ;
- sv::FillH1(fHists, 2, double(sdigit->GetAmp()));
+ AliEMCALHistoUtilities::FillH1(fHists, 2, double(sdigit->GetAmp()));
e = double(Calibrate(sdigit->GetAmp()));
esum += e;
- sv::FillH1(fHists, 3, e);
- sv::FillH1(fHists, 4, double(sdigit->GetId()));
+ AliEMCALHistoUtilities::FillH1(fHists, 3, e);
+ AliEMCALHistoUtilities::FillH1(fHists, 4, double(sdigit->GetId()));
}
- if(esum>0.) sv::FillH1(fHists, 1, esum);
+ if(esum>0.) AliEMCALHistoUtilities::FillH1(fHists, 1, esum);
for (i = 0 ; i < sdigits->GetEntriesFast() ; i++) { // for what
if (((dynamic_cast<AliEMCALDigit *>(sdigits->At(i)))->GetNprimary()) > nPrimarymax)
new TH1F("HSDigiAbsId","EMCAL absID for sdigits",
geom->GetNCells(), 0.5, Double_t(geom->GetNCells())+0.5);
}
- fHists = sv::MoveHistsToList("EmcalSDigiControlHists", kFALSE);
+ fHists = AliEMCALHistoUtilities::MoveHistsToList("EmcalSDigiControlHists", kFALSE);
fHists = 0;
return fHists;
}
void AliEMCALSDigitizer::SaveHists(const char* name, Bool_t kSingleKey, const char* opt)
{
- sv::SaveListOfHists(fHists, name, kSingleKey, opt);
+ AliEMCALHistoUtilities::SaveListOfHists(fHists, name, kSingleKey, opt);
}
#pragma link C++ class AliEMCALv2+;
#pragma link C++ class AliEMCALHit+;
#pragma link C++ class AliEMCALLoader+;
-#pragma link C++ class AliEMCALGeneratorFactory+;
#pragma link C++ class AliEMCALShishKebabModule+;
#pragma link C++ class AliEMCALShishKebabTrd1Module+;
#pragma link C++ class AliEMCALGeometryOfflineTrd1+;
#pragma link C++ class AliEMCALWsuCosmicRaySetUp+;
-#pragma link C++ class AliEMCALJet+;
-#pragma link C++ class AliEMCALParton+;
#pragma link C++ class AliEMCALRecPoint+;
#pragma link C++ class AliEMCALRawStream+;
#pragma link C++ class AliEMCALClusterizer+;
+#pragma link C++ class AliEMCALHistoUtilities+;
#pragma link C++ class AliEMCALSDigitizer+;
#pragma link C++ class AliEMCALDigitizer+;
#pragma link C++ class AliEMCALDigit+;
#pragma link C++ class AliEMCALCalibData+;
#pragma link C++ class AliEMCALAlignData+;
+
#endif
#pragma link off all classes;
#pragma link off all functions;
-#pragma link C++ enum AliEMCALJetFinderAlgoBGCalcType_t;
-#pragma link C++ enum AliEMCALJetFinderResetType_t;
-#pragma link C++ enum AliEMCALJetFinderTrackType_t;
-#pragma link C++ enum AliEMCALJetFinderSmearingType_t;
-#pragma link C++ enum AliEMCALJetFinderEMCALType_t;
-#pragma link C++ enum AliEMCALJetFinderFileType_t;
-#pragma link C++ enum AliEMCALJetFinderAlgoUA1UnitFlagType_t;
-#pragma link C++ enum AliEMCALJetFinderAlgoUA1FillUnitFlagType_t;
-// -
#pragma link C++ class AliEMCALReconstructor+;
#pragma link C++ class AliEMCALClusterizerv1+;
-#pragma link C++ class AliEMCALJetFinder+;
-#pragma link C++ class AliEMCALJetFinderInput+;
-#pragma link C++ class AliEMCALJetFinderInputPrep+;
-#pragma link C++ class AliEMCALJetFinderInputSimPrep+;
-#pragma link C++ class AliEMCALJetFinderOutput+;
-#pragma link C++ class AliEMCALJetFinderAlgo+;
-#pragma link C++ class AliEMCALJetFinderAlgoOmni+;
-#pragma link C++ class AliEMCALJetFinderAlgoUA1Unit+;
-#pragma link C++ class AliEMCALJetFinderPlots+;
-#pragma link C++ class AliEMCALJetMicroDst+;
-#pragma link C++ class AliEMCALHadronCorrection+;
-#pragma link C++ class AliEMCALHadronCorrectionv0+;
-#pragma link C++ class AliEMCALHadronCorrectionv1+;
#endif
#pragma link off all functions;
#pragma link C++ class AliEMCALTick+;
-#pragma link C++ class AliEMCALFast+;
#pragma link C++ class AliEMCALTrigger+;
-FSRCS = sgpdge.F
-
SRCS = \
AliEMCAL.cxx \
AliEMCALGeometry.cxx \
AliEMCALv2.cxx \
AliEMCALHit.cxx \
AliEMCALLoader.cxx \
-AliEMCALGeneratorFactory.cxx \
AliEMCALShishKebabModule.cxx \
AliEMCALShishKebabTrd1Module.cxx \
AliEMCALGeometryOfflineTrd1.cxx \
AliEMCALWsuCosmicRaySetUp.cxx \
-AliEMCALJet.cxx \
-AliEMCALParton.cxx \
AliEMCALRecPoint.cxx \
AliEMCALRawStream.cxx \
AliEMCALClusterizer.cxx \
+AliEMCALHistoUtilities.cxx \
AliEMCALSDigitizer.cxx \
AliEMCALDigitizer.cxx \
AliEMCALDigit.cxx \
# 19-Aug-05 - split from libEMCAL.pkg
-FSRCS = jet_finder_ua1.F
-
SRCS =\
AliEMCALReconstructor.cxx \
AliEMCALClusterizerv1.cxx \
-AliEMCALJetFinder.cxx \
-AliEMCALJetFinderInput.cxx \
-AliEMCALJetFinderInputSimPrep.cxx \
-AliEMCALJetFinderInputPrep.cxx \
-AliEMCALJetFinderOutput.cxx \
-AliEMCALJetFinderAlgo.cxx \
-AliEMCALJetFinderAlgoOmni.cxx \
-AliEMCALJetFinderAlgoUA1Unit.cxx \
-AliEMCALJetFinderPlots.cxx \
-AliEMCALJetMicroDst.cxx \
-AliEMCALHadronCorrection.cxx \
-AliEMCALHadronCorrectionv0.cxx \
-AliEMCALHadronCorrectionv1.cxx
HDRS= $(SRCS:.cxx=.h)
SRCS =\
AliEMCALTick.cxx \
-AliEMCALFast.cxx \
AliEMCALTrigger.cxx
HDRS= $(SRCS:.cxx=.h)