Line data Source code
1 : #ifndef ALIEMCALAFTERBURNERUF_H
2 : #define ALIEMCALAFTERBURNERUF_H
3 : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 : * See cxx source for full Copyright notice */
5 :
6 : //-------------------------------------------------------------------------
7 : /// After-burner for the EMCAL cluster unfolding algorithm
8 : ///
9 : /// Input: TObjArray *clusArray -- array of AliVClusters;
10 : //// AliVCaloCells *cellsEMCAL -- EMCAL cells.
11 : ///
12 : /// Output is appended to clusArray, the original (unfolded or not) clusters
13 : /// are deleted or moved to another position in clusArray.
14 : ///
15 : /// If you want to use particular geometry, you must initialize it _before_
16 : /// creating AliEMCALAfterBurnerUF instance. Add this or similar line to the
17 : /// initialization section:
18 : ///
19 : /// AliEMCALGeometry::GetInstance("EMCAL_COMPLETE12SMV1_DCAL_8SM");
20 : ///
21 : /// gGeoManager must be initialized for this code to work! Do it yourself or
22 : /// provide geometry.root file in the current directory so that
23 : /// AliEMCALAfterBurnerUF will take it by itself.
24 : /// How to use:
25 : ///
26 : /// // add this lines to the initialization section of your analysis
27 : /// AliEMCALAfterBurnerUF *abuf = new AliEMCALAfterBurnerUF();
28 : /// TObjArray *clusArray = new TObjArray(100);
29 : ///
30 : ///
31 : /// AliVEvent *event = InputEvent();
32 : /// AliVCaloCells *cellsEMCAL = event->GetEMCALCells();
33 : ///
34 : /// for (Int_t i = 0; i < event->GetNumberOfCaloClusters(); i++)
35 : /// {
36 : /// AliVCluster *clus = event->GetCaloCluster(i);
37 : ///
38 : /// clusArray->Add(clus->Clone()); // NOTE _CLONE_ in this line
39 : /// }
40 : ///
41 : /// abuf->UnfoldClusters(clusArray, cellsEMCAL);
42 : ///
43 : /// // do an analysis with clusArray
44 : /// // ....
45 : ///
46 : /// // prevent memory leak
47 : /// clusArray->Delete();
48 : ///
49 : ///
50 : /// \author: Olga Driga (SUBATECH)
51 : //-------------------------------------------------------------------------
52 :
53 : // --- ROOT system ---
54 : class TObjArray;
55 : class TClonesArray;
56 :
57 : // --- AliRoot header files ---
58 : class AliEMCALGeometry;
59 : class AliEMCALUnfolding;
60 : class AliVCaloCells;
61 :
62 : class AliEMCALAfterBurnerUF {
63 :
64 : public:
65 : AliEMCALAfterBurnerUF();
66 : AliEMCALAfterBurnerUF(Float_t logWeight, Float_t locMaxCut, Float_t minEcut);
67 : virtual ~AliEMCALAfterBurnerUF();
68 :
69 : virtual void Clear();
70 : virtual void Init();
71 : virtual void RecPoints2Clusters(TObjArray *clusArray);
72 : virtual void UnfoldClusters(TObjArray *clusArray, AliVCaloCells *cellsEMCAL); // does the job
73 :
74 : // getters and setters
75 0 : virtual AliEMCALUnfolding *GetClusterUnfoldingInstance() { return fClusterUnfolding; }
76 :
77 : protected:
78 : AliEMCALGeometry *fGeom; // EMCAL geometry
79 : Float_t fLogWeight; // used in AliEMCALRecPoint::EvalGlobalPosition()
80 : Float_t fECALocMaxCut; // this amount of energy must distinguish a local maximum from its neighbours
81 : Float_t fMinECut; // minimum energy of cell
82 : TObjArray *fRecPoints; //! cluster <=> recPoint
83 : TClonesArray *fDigitsArr; //-> cell <=> digit
84 :
85 : AliEMCALUnfolding *fClusterUnfolding; // unfolding class instance
86 :
87 : private:
88 : AliEMCALAfterBurnerUF(const AliEMCALAfterBurnerUF & uf) ; // cpy ctor not needed, put here to avoid compilation warning
89 : AliEMCALAfterBurnerUF & operator = (const AliEMCALAfterBurnerUF & uf) ;//cpy assignment, put here to avoid compilation warning
90 :
91 :
92 :
93 42 : ClassDef(AliEMCALAfterBurnerUF,2)
94 : } ;
95 :
96 : #endif // AliEMCALAFTERBURNERUF_H
|