ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitAna/DataTree/interface/Track.h
(Generate patch)

Comparing UserCode/MitAna/DataTree/interface/Track.h (file contents):
Revision 1.16 by loizides, Fri Aug 29 01:51:01 2008 UTC vs.
Revision 1.17 by loizides, Wed Sep 10 03:33:27 2008 UTC

# Line 66 | Line 66
66   // Authors: C.Loizides, J.Bendavid, C.Paus
67   //--------------------------------------------------------------------------------------------------
68  
69 < #ifndef DATATREE_TRACK_H
70 < #define DATATREE_TRACK_H
69 > #ifndef MITANA_DATATREE_TRACK_H
70 > #define MITANA_DATATREE_TRACK_H
71  
72   #include "MitAna/DataTree/interface/DataObject.h"
73   #include "MitAna/DataTree/interface/MCParticle.h"
# Line 126 | Line 126 | namespace mithep
126                  fChi2(0), fNdof(0) {}
127        ~Track() {}
128  
129 <      Double_t           QOverP()       const { return fQOverP; }
130 <      Double_t           QOverPErr()    const { return fQOverPErr; }
131 <      Double_t           Lambda()       const { return fLambda; }
132 <      Double_t           LambdaErr()    const { return fLambdaErr; }
133 <      Double_t           Phi0()         const { return fPhi0; }
134 <      Double_t           Phi0Err()      const { return fPhi0Err; }
135 <      Double_t           Dxy()          const { return fDxy; }
136 <      Double_t           DxyErr()       const { return fDxyErr; }
137 <      Double_t           Dsz()          const { return fDsz; }
138 <      Double_t           DszErr()       const { return fDszErr; }
139 <      
140 <
141 <
142 <      Int_t              Charge()       const { return (fQOverP>0) ? 1 : -1; }
143 <      Double_t           Chi2()         const { return fChi2; }
144 <      void               ClearHit(HitLayer l) { fHits.ClearBit(l); }
145 <      Double_t           D0()           const { return -fDxy; }
146 <      Double_t           D0Err()        const { return fDxyErr; }
129 >      Double_t           QOverP()        const { return fQOverP; }
130 >      Double_t           QOverPErr()     const { return fQOverPErr; }
131 >      Double_t           Lambda()        const { return fLambda; }
132 >      Double_t           LambdaErr()     const { return fLambdaErr; }
133 >      Double_t           Phi0()          const { return fPhi0; }
134 >      Double_t           Phi0Err()       const { return fPhi0Err; }
135 >      Double_t           Dxy()           const { return fDxy; }
136 >      Double_t           DxyErr()        const { return fDxyErr; }
137 >      Double_t           Dsz()           const { return fDsz; }
138 >      Double_t           DszErr()        const { return fDszErr; }
139 >      Int_t              Charge()        const { return (fQOverP>0) ? 1 : -1; }
140 >      Double_t           Chi2()          const { return fChi2; }
141 >      void               ClearHit(HitLayer l)  { fHits.ClearBit(l); }
142 >      Double_t           D0()            const { return -fDxy; }
143 >      Double_t           D0Err()         const { return fDxyErr; }
144        Bool_t             Hit(HitLayer l) const { return fHits.TestBit(l); }
145 <      BitMask64         &Hits()               { return fHits; }
146 <      const BitMask64   &Hits()         const { return fHits; }
147 <      ULong64_t          HitMask()      const { return fHits.Bits(); }
148 <      ThreeVector        Mom()          const { return ThreeVector(Px(),Py(),Pz()); }
149 <      UInt_t             Ndof()         const { return fNdof; }
150 <      Double_t           P2()           const { return P()*P(); }
151 <      Double_t           P()            const { return TMath::Abs(1./fQOverP); }
152 <      Double_t           Px()           const { return Pt()*TMath::Cos(fPhi0); }      
153 <      Double_t           Py()           const { return Pt()*TMath::Sin(fPhi0); }
154 <      Double_t           Pz()           const { return P()*TMath::Sin(fLambda); }
155 <      Double_t           Phi()          const { return fPhi0; }
156 <      Double_t           Pt()           const { return TMath::Abs(TMath::Cos(fLambda)/fQOverP); }
157 <      //Double_t           PtErr()        const { return fPtErr; }
158 <      void               SetChi2(Double_t chi2) { fChi2 = chi2; }
159 <      void               SetHit(HitLayer l)     { fHits.SetBit(l); }
160 <      void               SetHits(BitMask64 hits)  { fHits = hits; }
161 <      void               SetHits(ULong64_t hitMask)  { fHits.SetBits(hitMask); }
162 <      void               SetNdof(UInt_t dof)      { fNdof = dof; }
163 <      void               SetStat(BitMask32 stat)  { fStat = stat; }
164 <      void               SetStat(UInt_t statBits) { fStat.SetBits(statBits); }
165 <      BitMask32         &Stat()               { return fStat; }
166 <      const BitMask32   &Stat()         const { return fStat; }
167 <      UInt_t             StatBits()     const { return fStat.Bits(); }
168 <      Double_t           Theta()        const { return (TMath::PiOver2() - fLambda); }
169 <      Double_t           Z0()           const { return fDsz/TMath::Cos(fLambda); }
170 <      //Double_t           Z0Err()        const { return fZ0Err; }
171 <      
172 <      FourVector         Mom4(Double_t m) const { return FourVector(Px(),Py(),Pz(),E(m)); }
176 <      Double_t           E2(Double_t m)   const { return P2()+m*m; }
177 <      Double_t           E(Double_t m)    const { return TMath::Sqrt(E2(m)); }
178 <      UInt_t             NHits()          const { return fHits.NBitsSet(); }
145 >      BitMask64         &Hits()                { return fHits; }
146 >      const BitMask64   &Hits()          const { return fHits; }
147 >      ULong64_t          HitMask()       const { return fHits.Bits(); }
148 >      ThreeVector        Mom()           const { return ThreeVector(Px(),Py(),Pz()); }
149 >      UInt_t             Ndof()          const { return fNdof; }
150 >      Double_t           P2()            const { return P()*P(); }
151 >      Double_t           P()             const { return TMath::Abs(1./fQOverP); }
152 >      Double_t           Px()            const { return Pt()*TMath::Cos(fPhi0); }      
153 >      Double_t           Py()            const { return Pt()*TMath::Sin(fPhi0); }
154 >      Double_t           Pz()            const { return P()*TMath::Sin(fLambda); }
155 >      Double_t           Phi()           const { return fPhi0; }
156 >      Double_t           Pt()            const { return TMath::Abs(TMath::Cos(fLambda)/fQOverP); }
157 >      void               SetChi2(Double_t chi2)     { fChi2 = chi2; }
158 >      void               SetHit(HitLayer l)         { fHits.SetBit(l); }
159 >      void               SetHits(BitMask64 hits)    { fHits = hits; }
160 >      void               SetHits(ULong64_t hitMask) { fHits.SetBits(hitMask); }
161 >      void               SetNdof(UInt_t dof)        { fNdof = dof; }
162 >      void               SetStat(BitMask32 stat)    { fStat = stat; }
163 >      void               SetStat(UInt_t statBits)   { fStat.SetBits(statBits); }
164 >      BitMask32         &Stat()                     { return fStat; }
165 >      const BitMask32   &Stat()               const { return fStat; }
166 >      UInt_t             StatBits()           const { return fStat.Bits(); }
167 >      Double_t           Theta()              const { return (TMath::PiOver2() - fLambda); }
168 >      Double_t           Z0()                 const { return fDsz/TMath::Cos(fLambda); }
169 >      FourVector         Mom4(Double_t m)     const { return FourVector(Px(),Py(),Pz(),E(m)); }
170 >      Double_t           E2(Double_t m)       const { return P2()+m*m; }
171 >      Double_t           E(Double_t m)        const { return TMath::Sqrt(E2(m)); }
172 >      UInt_t             NHits()              const { return fHits.NBitsSet(); }
173  
174        void               SetHelix (Double_t qOverP, Double_t lambda, Double_t phi0,
175                                     Double_t dXy, Double_t dSz);
176        void               SetErrors(Double_t qOverPErr, Double_t lambdaErr, Double_t phi0Err,
177                                     Double_t dXyErr, Double_t dSzErr);
178        
179 <      const MCParticle  *MCPart()      const;
180 <      void               SetMCPart(MCParticle *p) { fMCParticleRef = p; }
179 >      const MCParticle  *MCPart()             const;
180 >      void               SetMCPart(MCParticle *p)   { fMCParticleRef = p; }
181        
182      protected:
183 <          // Constant which is store in the file
184 <      BitMask64          fHits;                // Mostly Hit informations
185 <      BitMask32          fStat;                // Storage for various interesting things
186 <      Double_t           fQOverP, fQOverPErr;
187 <      Double_t           fLambda, fLambdaErr;
188 <      Double_t           fPhi0,fPhi0Err;       // Follow track parameters/uncertainties
189 <      Double_t           fDxy,  fDxyErr;
190 <      Double_t           fDsz,  fDszErr;
191 <      
192 <      Double_t           fChi2; //chi squared of track fit
193 <      UInt_t             fNdof; //number of dof of track fit
194 <      
195 <      TRef               fMCParticleRef; //reference to sim particle (for monte carlo)
183 >      BitMask64          fHits;                //storage for mostly hit information
184 >      BitMask32          fStat;                //storage for various interesting things
185 >      Double_t           fQOverP;              //track parameters/uncertainties
186 >      Double_t           fQOverPErr;           //
187 >      Double_t           fLambda;              //
188 >      Double_t           fLambdaErr;           //
189 >      Double_t           fPhi0;                //
190 >      Double_t           fPhi0Err;             //
191 >      Double_t           fDxy;                 //
192 >      Double_t           fDxyErr;              //
193 >      Double_t           fDsz;                 //
194 >      Double_t           fDszErr;              //
195 >      Double_t           fChi2;                //chi squared of track fit
196 >      UInt_t             fNdof;                //number of dof of track fit
197 >      TRef               fMCParticleRef;       //reference to sim particle (for monte carlo)
198                
199      ClassDef(Track, 1) // Track class
200    };

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines