]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EMCAL/AliEMCALJetFinder.h
Initialize arrays in constructor (Ivana)
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALJetFinder.h
index 810a34020cad6351ae69cf222bdae212cd4cca64..f168282cd961d8b3d74b7f44b5af2e9bb943b612 100644 (file)
@@ -10,6 +10,7 @@
 
 #include <TTask.h>
 #include "AliEMCALJet.h"
+#include <TString.h>
 
 class TClonesArray;
 class TH2F;
@@ -19,16 +20,18 @@ class TList;
 class AliEMCALHadronCorrection;
 
 class AliEMCALJetFinder : public TTask {
+  friend class AliEMCALJetMicroDst; //PH Temporary solution
  public:
     AliEMCALJetFinder();
     AliEMCALJetFinder(const char* name, const char *title);
     virtual ~AliEMCALJetFinder();
     virtual void  Init();
-    virtual void  Find(Int_t ncell, Int_t ncell_tot, Float_t etc[30000], 
+    virtual void  Find(Int_t ncell, Int_t ncelltot, Float_t etc[30000], 
                      Float_t etac[30000], Float_t phic[30000],
-                     Float_t min_move, Float_t max_move, Int_t mode,
-                     Float_t prec_bg, Int_t ierror);
+                     Float_t minmove, Float_t maxmove, Int_t mode,
+                     Float_t precbg, Int_t ierror);
     virtual void  Find();
+    virtual void  FindChargedJet();
     virtual void  FindTracksInJetCone();
     virtual void  Test();
     virtual void  BuildTrackFlagTable();
@@ -44,7 +47,10 @@ class AliEMCALJetFinder : public TTask {
     virtual void SetPtCut(Float_t par = 1.);
     virtual void SetMomentumSmearing(Bool_t flag = kFALSE) {fSmear = flag;}
     virtual void SetEfficiencySim(Bool_t flag = kFALSE)    {fEffic = flag;}
-    virtual void SetSamplingFraction(Float_t par = 12.9) {fSamplingF = par;}
+    virtual void SetSamplingFraction(Float_t par) {fSamplingF = par;}
+    virtual void SetEnergyWeightingFlag(Bool_t flag) {fWeightingMethod = flag;}
+    virtual void SetEMCALWeight(Float_t par) {fEMCALWeight = par;}
+    virtual void SetTrackWeight(Float_t par) {fTrackWeight = par;}
     virtual void SetIncludeK0andN(Bool_t flag = kFALSE) {fK0N = flag;}
     // Correction of hadronic energy
     virtual void SetHadronCorrector(AliEMCALHadronCorrection* corr)
@@ -59,37 +65,42 @@ class AliEMCALJetFinder : public TTask {
     void SetParametersForBgSubtraction
     (Int_t mode=0, Float_t minMove=0.05, Float_t maxMove=0.15, Float_t precBg=0.035);
     //    virtual void Print(Option_t* option="") const;    // *MENU*
-
-    Bool_t GetWriteKey() {return fWrite;}
-    AliEMCALJet* GetJetT() {return fJetT[0];}
+    void  SetRandomBg(Bool_t flag) {fRandomBg = flag;}
+    Bool_t GetWriteKey() const {return fWrite;}
+  //AliEMCALJet* GetJetT() {return fJetT[0];}
+    AliEMCALJet* GetJetT(Int_t n = 0) {return fJetT[n];}
     virtual void DrawHistsForTuning(Int_t mode=0);           // *MENU*
     virtual void PrintParameters(Int_t mode=0);              // *MENU*
-    virtual const Char_t* GetFileNameForParameters(Char_t* dir="RES/");
+    virtual const Char_t* GetFileNameForParameters(const char* dir="RES/");
 
     // Access to Results
-    virtual Int_t   Njets();
-    virtual Float_t JetEnergy(Int_t);
-    virtual Float_t JetPhiL(Int_t);
-    virtual Float_t JetPhiW(Int_t);
-    virtual Float_t JetEtaL(Int_t);  
-    virtual Float_t JetEtaW(Int_t);
-    TH2F*   GetLego()  {return fLego;}
-    TH2F*   GetLegoB() {return fLegoB;}
-    TH2F*   GetLegoEMCAL() {return fhLegoEMCAL;}
-    TH2F*   GethEff() {return fhEff;}
-    TH1F*   GetCellEt() {return fhCellEt;}
-    TH1F*   GetCellEMCALEt() {return fhCellEMCALEt;}
-    TH1F*   GetTrackPt() {return fhTrackPt;}
-    TH1F*   GetTrackPtBcut() {return fhTrackPtBcut;}
-    TList*  GetHistsList() {return fHistsList;}
-    Int_t   GetNChTpc() {return fNChTpc;}
-    void    DrawLego(Char_t *opt="lego");         // *MENU*
-    void    DrawLegoEMCAL(Char_t *opt="lego");    // *MENU*
+    virtual Int_t Njets() const;
+    virtual Float_t JetEnergy (Int_t count) const;
+    virtual Float_t JetPhiL  (Int_t count) const;
+    virtual Float_t JetPhiW  (Int_t count) const ;
+    virtual Float_t JetEtaL (Int_t count) const ;  
+    virtual Float_t JetEtaW (Int_t count) const;
+    TH2F*   GetLego() const {return fLego;}
+    TH2F*   GetLegoB() const {return fLegoB;}
+    TH2F*   GetLegoEMCAL() const {return fhLegoEMCAL;}
+    TH2F*   GetLegoTracks() const {return fhLegoTracks;}
+    TH2F*   GethEff() const {return fhEff;}
+    TH1F*   GetCellEt() const {return fhCellEt;}
+    TH1F*   GetCellEMCALEt() const {return fhCellEMCALEt;}
+    TH1F*   GetTrackPt() const {return fhTrackPt;}
+    TH1F*   GetTrackPtBcut() const {return fhTrackPtBcut;}
+    TList*  GetHistsList() const {return fHistsList;}
+    Int_t   GetNChTpc() const {return fNChTpc;}
+    Bool_t  GetEnergyWeightingFlag() const {return fWeightingMethod ;}
+    Float_t GetEMCALWeight() const {return fEMCALWeight;}
+    Float_t GetTrackWeight() const {return fTrackWeight;}
+    void    DrawLego(const char *opt="lego");         // *MENU*
+    void    DrawLegoEMCAL(const char *opt="lego");    // *MENU*
     void    DrawLegos();                          // *MENU*
+    void    DrawLegoBackground(const char *opt="lego"); // *MENU*
     Bool_t  IsThisPartonsOrDiQuark(Int_t pdg);
-    TString &GetPythiaParticleName(Int_t kf);     
     // I/O
-    virtual void SetOutputFileName(char* name) {fOutFileName = name;}
+    virtual void SetOutputFileName(const char* name) {fOutFileName = name;}
     virtual void FillFromHits(Int_t flag = 0);
     virtual void FillFromHitFlaggedTracks(Int_t flag = 0);
     virtual void FillFromDigits(Int_t flag = 0);
@@ -97,20 +108,27 @@ class AliEMCALJetFinder : public TTask {
     virtual void FillFromParticles();
     virtual void FillFromPartons();
 
-    virtual void SaveBackgroundEvent();
+    virtual void SaveBackgroundEvent(const char *name="");
     virtual void InitFromBackground();
     virtual void AddJet(const AliEMCALJet& jet);
     virtual void WriteJets();
     virtual void ResetJets();
-    virtual TClonesArray* Jets() {return fJets;}
- private:
-    virtual void BookLego();
-    virtual void DumpLego();
-    virtual void ResetMap();
-    virtual Float_t PropagatePhi(Float_t pt, Float_t charge, Bool_t& curls);
-    virtual void RearrangeParticlesMemory(Int_t npart);
+    virtual TClonesArray* Jets() const {return fJets;}
+    const char* GetNameOfVariant();
+
+    virtual Bool_t  IsFolder() const;
+    virtual void Browse(TBrowser* b);
+
+
+
+    
  protected:
+    TString fBGFileName;                               // file name for background
+    Float_t                       fEMCALWeight;        // EMCal energy weighting
+    Float_t                       fTrackWeight;        // Track energy weighting
+    Bool_t                         fRandomBg;        //  Flag for Random Background 
     Bool_t                         fWrite;           // Key for writing
+    Bool_t                         fWeightingMethod; // Key for writing
     TClonesArray*                  fJets;            //! List of Jets
     TH2F*                          fLego;            //! Lego Histo
     TH2F*                          fLegoB;           //! Lego Histo Backg
@@ -123,6 +141,7 @@ class AliEMCALJetFinder : public TTask {
     TH1F*                          fhTrackPt;        //! Pt distr. for charge particles
     TH1F*                          fhTrackPtBcut;    //! Pt distr. for charge particles + cut due to magnetic field
     TH1F*                          fhChPartMultInTpc;//! Ch. part. multiplicity in TPC acceptance
+    TH1F*                          fhSinTheta;       //! sin(theta)
     TCanvas*                       fC1;              //! first canvas for drawing
     TList*                         fHistsList;       //! List of hists - 4-mar-2002
     AliEMCALJet*                   fJetT[10];        //! Jet temporary storage
@@ -177,12 +196,21 @@ class AliEMCALJetFinder : public TTask {
     Float_t                        fPrecBg;          // max value of change for BG (in %)
     Int_t                          fError;           // error variables 
 
-    char*                          fOutFileName;     //! Output file name
+    const char*                    fOutFileName;     //! Output file name
     TFile*                         fOutFile;         //! Output file
     TFile*                         fInFile;          //! Output file
     Int_t                          fEvent;           //! Processed event
+ private:
+    virtual void BookLego();
+    Float_t WeightedJetEnergy(Float_t eta, Float_t phi);
+    Float_t EMCALConeEnergy(Float_t eta, Float_t phi);
+    Float_t TrackConeEnergy(Float_t eta, Float_t phi);
+    virtual void DumpLego();
+    virtual void ResetMap();
+    virtual Float_t PropagatePhi(Float_t pt, Float_t charge, Bool_t& curls);
+    virtual void RearrangeParticlesMemory(Int_t npart);
 
-    ClassDef(AliEMCALJetFinder,2)        // JetFinder for EMCAL
+    ClassDef(AliEMCALJetFinder,5)                    // JetFinder for EMCAL
 }
 ;
 #endif // ALIEMCALJetFinder_H