]> git.uio.no Git - u/mrichter/AliRoot.git/blob - JETAN/AliJet.h
Bug fix. Removed delete statement
[u/mrichter/AliRoot.git] / JETAN / AliJet.h
1 #ifndef ALIJET_H
2 #define ALIJET_H
3  
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6  
7  
8 //---------------------------------------------------------------------
9 // Jet class 
10 // Stores the output of a jet algorithm
11 // Author: jgcn@mda.cinvestav.mx
12 //---------------------------------------------------------------------
13
14 #include <Riostream.h>
15 #include <vector>
16  
17 #include <TObject.h>
18 #include <TArrayI.h>
19 #include <TArrayF.h>
20
21 class TClonesArray;
22 class TLorentzVector;
23  
24 class AliJet : public TObject
25 {
26  public:
27  
28   AliJet();
29   ~AliJet();
30
31   // Getters
32   Int_t         GetNinput() const { return fNInput; }
33   Int_t         GetNJets() const {return fNJets;}
34   TClonesArray* GetJets() const {return fJets;}
35   TArrayI       GetInJet() const {return fInJet;}
36   TArrayI       GetMultiplicities() const {return fMultiplicities;}
37   TArrayI       GetNCells() const {return fNCells;}
38   TArrayF       GetPtFromSignal() const {return fPtFromSignal;}
39   TArrayF       GetEtaIn() const { return fEtaIn; }
40   TArrayF       GetPhiIn() const { return fPhiIn; }
41   TArrayF       GetPtIn() const { return fPtIn; }
42   TArrayF       GetPtChargedPtCutIn() const { return fPtChPtCutIn; }
43   TArrayF       GetEnTotChargedPtCutIn() const {return fEnTotChPtCutIn; }
44   TArrayI       GetVectorSizeIn() const { return fVectorSizeIn;  }
45   vector< vector<Float_t> > GetVectorPxIn() const { return fVPx; }
46   vector< vector<Float_t> > GetVectorPyIn() const { return fVPy; }
47   vector< vector<Float_t> > GetVectorPzIn() const { return fVPz; }
48   TArrayI       GetDetectorFlagIn() const { return fDetIn; } 
49   Double_t      GetEtAvg() const { return fEtAvg; }
50
51   TLorentzVector* GetJet(Int_t i);
52   Int_t    GetMultiplicity(Int_t i) const;
53   Int_t    GetNCell(Int_t i) const;
54   Double_t GetPx(Int_t i);
55   Double_t GetPy(Int_t i);
56   Double_t GetPz(Int_t i);
57   Double_t GetP(Int_t i);
58   Double_t GetE(Int_t i);
59   Double_t GetPt(Int_t i);
60   Double_t GetEta(Int_t i);
61   Double_t GetPhi(Int_t i);
62   Double_t GetTheta(Int_t i);
63   Double_t GetMass(Int_t i);
64    
65   // Setters
66   void SetNinput(Int_t i) {fNInput = i;}
67   void AddJet(Double_t px, Double_t py, Double_t pz, Double_t e);
68   void SetMultiplicities(Int_t* m);
69   void SetNCells(Int_t* n);
70   void SetPtFromSignal(Float_t* p);
71   void SetEtaIn(Float_t* eta);
72   void SetPhiIn(Float_t* phi);
73   void SetPtIn(Float_t* pt);
74   void SetInJet(Int_t* idx);
75   void SetPtChargedPtCutIn(Float_t* pt2T);
76   void SetEnTotChargedPtCutIn(Float_t* en2T);
77   void SetVectorSizeIn(Int_t* vectT);
78   void SetVectorPxIn(vector< vector<Float_t> > pxT);
79   void SetVectorPyIn(vector< vector<Float_t> > pyT);
80   void SetVectorPzIn(vector< vector<Float_t> > pzT);
81   void SetDetectorFlagIn(Int_t* detT);
82   void SetEtAvg(Double_t et) { fEtAvg = et; }
83   // others
84   Bool_t OutOfRange(Int_t i, const char *s) const;
85   void ClearJets(Option_t *option="");
86   void PrintJets();
87
88  protected:
89
90   AliJet(const AliJet& rJet);
91   AliJet& operator = (const AliJet& rhs);
92
93   Int_t    fNInput;               // number of input objects
94   Int_t    fNJets;                // number of jets found
95   Double_t fEtAvg;                // average background et per cell
96
97   TArrayI  fInJet;                // i-input object belongs to k-jet 
98   TArrayI  fMultiplicities;       // Multiplicity of each jet
99   TArrayI  fNCells;               // Number of cells in jet
100   TArrayF  fPtFromSignal;         // percentage of pt from signal
101   TClonesArray* fJets;            // 4-momenta of jets
102
103   TArrayF  fEtaIn;                // Arrays of input particles kine:Eta
104   TArrayF  fPhiIn;                // Arrays of input particles kine:Phi
105   TArrayF  fPtIn;                 // Arrays of input particles kine:Pt
106   TArrayF  fPtChPtCutIn;          // Arrays of input particles kin:Pt Charged with pt cut
107   TArrayF  fEnTotChPtCutIn;       // Arrays of total energy with pt cut on charged + cut min on cell
108   TArrayI  fVectorSizeIn;         // Arrays of number of charged tracks in each unitArray
109   TArrayI  fDetIn;                // Arrays of detector type of each UnitArray
110   vector< vector<Float_t> > fVPx; //||
111   vector< vector<Float_t> > fVPy; //||
112   vector< vector<Float_t> > fVPz; //||
113
114   ClassDef(AliJet,2)
115 };
116  
117 #endif