]> git.uio.no Git - u/mrichter/AliRoot.git/blob - JETAN/DEV/AliJetCalTrk.h
coverity fixes
[u/mrichter/AliRoot.git] / JETAN / DEV / AliJetCalTrk.h
1 #ifndef ALIJETCALTRK_H
2 #define ALIJETCALTRK_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  *  *  * See cxx source for full Copyright notice     */
6
7 /* $Id$ */
8
9 //------------------------------------------------------
10 // CalTrk is used to sore Tracks and CaloCells information
11 //                    
12 // Author: alexandre.shabetai@cern.ch & magali.estienne@subatech.in2p3.fr 
13 //------------------------------------------------------
14
15 #include <Riostream.h> 
16 #include <TObject.h>
17 #include <TRef.h>
18 #include <TClonesArray.h>
19
20 #include "AliVParticle.h"
21 #include "AliVTrack.h" 
22
23 class AliVCaloCells;
24
25 class AliJetCalTrkTrack : public TObject
26 {
27  public:
28   AliJetCalTrkTrack();
29   AliJetCalTrkTrack(AliVParticle* track, Bool_t CutFlag, Bool_t SignalFlag, Float_t PtCorr = 1.);
30   AliJetCalTrkTrack(AliVTrack* track, Bool_t CutFlag, Bool_t SignalFlag, Float_t PtCorr = 1.);
31   virtual  ~AliJetCalTrkTrack() {;}
32   
33   // Setter
34   void            SetCutFlag(Bool_t cutFlag)       {fCalTrkCutFlag = cutFlag;}
35   void            SetSignalFlag(Bool_t signalFlag) {fCalTrkSignalFlag = signalFlag;}
36   void            SetPtCorr(Float_t ptcorr)        {fCalTrkPtCorr = ptcorr;}
37
38   // Getter
39   AliVParticle*   GetParticle() const    {return ((AliVParticle*)fCalTrkTrackRef.GetObject());}
40   AliVTrack*      GetTrack() const       {return ((AliVTrack*)fCalTrkTrackRef.GetObject());}
41   TRef            GetTrackRef() const    {return fCalTrkTrackRef;}
42   TObject*        GetTrackObject() const {return fCalTrkTrackRef.GetObject();}
43   Bool_t          GetCutFlag() const     {return fCalTrkCutFlag;}
44   Bool_t          GetSignalFlag() const  {return fCalTrkSignalFlag;}
45   Float_t         GetPtCorr() const      {return fCalTrkPtCorr;}
46   Float_t         GetEta() const         {return GetParticle()->Eta();}
47   Float_t         GetPhi() const         {return GetParticle()->Phi();}
48   virtual Float_t GetE()                 {return GetParticle()->E();}
49   virtual Float_t GetPt()                {return GetParticle()->Pt();}
50   virtual Float_t GetPx()                {return GetParticle()->Px();}
51   virtual Float_t GetPy()                {return GetParticle()->Py();}
52   virtual Float_t GetPz()                {return GetParticle()->Pz();}
53   virtual Float_t GetP()                 {return GetParticle()->P();}
54   Int_t           GetID() const          {return GetTrack()->GetID();}
55   Float_t         GetM() const           {return GetParticle()->M();}
56   using           TObject::Print;
57   void            Print(const Option_t* option);
58
59   virtual void    Clear(Option_t* /*option = ""*/);
60
61  private:
62   AliJetCalTrkTrack(const AliJetCalTrkTrack& rCalTrk);
63   AliJetCalTrkTrack& operator = (const AliJetCalTrkTrack& rhs);
64  
65   TRef            fCalTrkTrackRef;     //! Reference to a track
66   Bool_t          fCalTrkCutFlag;      //  Cut flag of the track in the tpc
67   Bool_t          fCalTrkSignalFlag;   //  Signal flag of the track
68   Float_t         fCalTrkPtCorr;       //  Correction factor
69
70   ClassDef(AliJetCalTrkTrack,1) // Implementation of AliJetCalTrkTrack
71
72 };
73
74 //-------------------------------------------------------------
75 class AliJetCalTrkTrackKine : public AliJetCalTrkTrack
76 {
77  public:
78   AliJetCalTrkTrackKine();
79   AliJetCalTrkTrackKine(AliVParticle* track, Bool_t CutFlag, Bool_t SignalFlag, Float_t ptReso);
80   virtual  ~AliJetCalTrkTrackKine() {;}
81
82   Float_t        GetPtReso() const {return fCalTrkPtReso;}
83   Float_t        GetE();
84   Float_t        GetPt();
85   Float_t        GetPx() {return GetPtReso()*GetParticle()->Px();}
86   Float_t        GetPy() {return GetPtReso()*GetParticle()->Py();}
87   Float_t        GetPz() {return GetPtReso()*GetParticle()->Pz();}
88   Float_t        GetP();
89   void           Clear(Option_t* option = "");
90
91  private:
92   Float_t        fCalTrkPtReso;       // Pt resolution rescaling (AliJetFillCalTrkTrackKine::FillKine())
93   Float_t        fCalTrkTrackE;       // Particle energy
94   Float_t        fCalTrkTrackPt;      // Particle Pt
95   Float_t        fCalTrkTrackP;       // Particle P
96
97   ClassDef(AliJetCalTrkTrackKine,1) // Implementation of AliJetCalTrkTrackKine
98 };
99
100 //-------------------------------------------------------------
101 class AliJetCalTrkEvent : public TObject
102 {  
103  public:
104   AliJetCalTrkEvent();                        //default constructor
105   AliJetCalTrkEvent(Short_t opt,Bool_t kine,Bool_t kIsHighMult=kFALSE); // constructor 2
106   virtual                ~AliJetCalTrkEvent();
107   AliJetCalTrkEvent(const AliJetCalTrkEvent& rCalTrkEvent);
108   AliJetCalTrkTrack*     AddCalTrkTrack(AliVTrack* track, Bool_t cutFlag, Bool_t signalFlag, Float_t ptCorr = 1.);
109   AliJetCalTrkTrack*     AddCalTrkTrack(AliVParticle* track, Bool_t cutFlag, Bool_t signalFlag, Float_t ptCorr = 1.);
110   AliJetCalTrkTrackKine* AddCalTrkTrackKine(AliVParticle* track, Bool_t cutFlag, Bool_t signalFlag, Float_t ptReso = 1.);
111
112   AliJetCalTrkTrack*     GetCalTrkTrack(Int_t i);
113   Int_t                  GetNCalTrkTracks() const {return fNJetCalTrkTrack;}
114
115   void                   Clear(Option_t* option = ""); 
116   void                   Print(const Option_t* = "") const;
117   
118  private:
119   AliJetCalTrkEvent& operator = (const AliJetCalTrkEvent& rhs);
120   TClonesArray*          fJetCalTrkTrack;  //! Array of Tracks
121   TClonesArray*          fJetCalTrkCell;   //! Array of Cells
122   Int_t                  fNJetCalTrkTrack; //  Number of tracks 
123
124   ClassDef(AliJetCalTrkEvent,1) // Implementation of AliJetCalTrkEvent
125
126 };
127
128 #endif
129