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.42 by loizides, Mon Jul 13 11:00:32 2009 UTC vs.
Revision 1.46 by bendavid, Thu Jan 7 11:03:41 2010 UTC

# Line 134 | Line 134 | namespace mithep
134          TEC9S
135        };
136  
137 <      Track() : fQOverP(0), fQOverPErr(0), fLambda(0), fLambdaErr(0),
138 <                fPhi0(0), fPhi0Err(0), fDxy(0), fDxyErr(0), fDsz(0), fDszErr(0),
139 <                fChi2(0), fNdof(0), fEtaEcal(0), fPhiEcal(0) {}
137 >      enum ETrackAlgorithm { //taken from DataFormats/TrackReco/interface/TrackBase.h
138 >        undefAlgorithm=0,
139 >        ctf=1,
140 >        rs=2,
141 >        cosmics=3,
142 >        iter0=4,
143 >        iter1=5,
144 >        iter2=6,
145 >        iter3=7,
146 >        iter4=8,
147 >        iter5=9,
148 >        iter6=10,
149 >        iter7=11,
150 >        iter8=12,
151 >        iter9=13,
152 >        iter10=14,
153 >        outInEcalSeededConv=15,
154 >        inOutEcalSeededConv=16,
155 >        nuclInter=17,
156 >        standAloneMuon=18,
157 >        globalMuon=19,
158 >        cosmicStandAloneMuon=20,
159 >        cosmicGlobalMuon=21,
160 >        iter1LargeD0=22,
161 >        iter2LargeD0=23,
162 >        iter3LargeD0=24,
163 >        iter4LargeD0=25,
164 >        iter5LargeD0=26,
165 >        bTagGhostTracks=27,
166 >        beamhalo=28,
167 >        algoSize=29
168 >      };
169 >
170 >
171 >      Track() : fAlgo(undefAlgorithm), fIsGsf(0), fQOverP(0), fQOverPErr(0),
172 >                fLambda(0), fLambdaErr(0), fPhi0(0), fPhi0Err(0),
173 >                fDxy(0), fDxyErr(0), fDsz(0), fDszErr(0), fChi2(0),
174 >                fNdof(0), fEtaEcal(0), fPhiEcal(0) {}
175        Track(Double_t qOverP, Double_t lambda, Double_t phi0, Double_t dxy, Double_t dsz) :
176 <                fQOverP(qOverP), fQOverPErr(0), fLambda(lambda), fLambdaErr(0),
177 <                fPhi0(phi0), fPhi0Err(0), fDxy(dxy), fDxyErr(0), fDsz(dsz), fDszErr(0),
178 <                fChi2(0), fNdof(0), fEtaEcal(0), fPhiEcal(0) {}
176 >                fAlgo(undefAlgorithm), fIsGsf(0), fQOverP(qOverP), fQOverPErr(0),
177 >                fLambda(lambda), fLambdaErr(0), fPhi0(phi0), fPhi0Err(0),
178 >                fDxy(dxy), fDxyErr(0), fDsz(dsz), fDszErr(0), fChi2(0),
179 >                fNdof(0), fEtaEcal(0), fPhiEcal(0) {}
180        ~Track() {}
181  
182 +      ETrackAlgorithm      Algo()           const { return fAlgo;                 }
183        Int_t                Charge()         const { return (fQOverP>0) ? 1 : -1;  }
184        Double_t             Chi2()           const { return fChi2;                 }
185        void                 ClearHit(EHitLayer l)  { fHits.ClearBit(l);            }
# Line 159 | Line 196 | namespace mithep
196        Double_t             EtaEcal()        const { return fEtaEcal;              }
197        Bool_t               Hit(EHitLayer l) const { return fHits.TestBit(l);      }
198        const BitMask48     &Hits()           const { return fHits;                 }
199 +      Bool_t               IsGsf()          const { return fIsGsf;                }
200        Double_t             Lambda()         const { return fLambda;               }
201        Double_t             LambdaErr()      const { return fLambdaErr;            }
202        const MCParticle    *MCPart()         const { return fMCParticleRef.Obj();  }
# Line 167 | Line 205 | namespace mithep
205        UShort_t             Ndof()           const { return fNdof;                              }
206        UInt_t               NHits()          const { return fHits.NBitsSet();                   }
207        UInt_t               NStereoHits()    const { return StereoHits().NBitsSet();            }
208 +      UInt_t               NPixelHits()     const { return PixelHits().NBitsSet();             }
209        EObjType             ObjType()        const { return kTrack;                             }    
210        Double_t             P2()             const { return 1./fQOverP/fQOverP;                 }
211        Double_t             P()              const { return TMath::Abs(1./fQOverP);             }
# Line 184 | Line 223 | namespace mithep
223        Double_t             RChi2()          const { return fChi2/(Double_t)fNdof; }
224        Double_t             Theta()          const { return (TMath::PiOver2() - fLambda);       }
225        const SuperCluster  *SCluster()       const { return fSuperClusterRef.Obj();             }
226 +      const BitMask48      PixelHits()      const { return (fHits & PixelLayers());            }
227        const BitMask48      StereoHits()     const { return (fHits & StereoLayers());           }
228 +      void                 SetAlgo(ETrackAlgorithm e)          { fAlgo = e;                    }
229        void                 SetChi2(Double_t chi2)              { fChi2 = chi2;                 }
230        void                 SetErrors(Double_t qOverPErr, Double_t lambdaErr, Double_t phi0Err,
231                                       Double_t dXyErr, Double_t dSzErr);
# Line 193 | Line 234 | namespace mithep
234                                       Double_t dXy, Double_t dSz);
235        void                 SetHit(EHitLayer l)                 { fHits.SetBit(l);              }
236        void                 SetHits(const BitMask48 &hits)      { fHits = hits;                 }
237 +      void                 SetIsGsf(Bool_t b)                  { fIsGsf = b;                   }
238        void                 SetNdof(UShort_t dof)               { fNdof = dof;                  }
239        void                 SetMCPart(const MCParticle *p)      { fMCParticleRef = p;           }
240        void                 SetPhiEcal(Double_t phi)            { fPhiEcal = phi;               }
241        void                 SetSCluster(const SuperCluster* sc) { fSuperClusterRef = sc;        }
242        Double_t             Z0()             const { return fDsz/TMath::Cos(fLambda);           }
243  
244 <      static
245 <      const BitMask48      StereoLayers();
244 >      
245 >      static const BitMask48      StereoLayers();
246 >      static const BitMask48      PixelLayers();
247  
248      protected:
249        void                 ClearMom()    const { fCacheMomFlag.ClearCache(); }
250        void                 GetMom()      const;
251  
252        BitMask48            fHits;                //storage for mostly hit information
253 +      ETrackAlgorithm      fAlgo;                //track algorithm
254 +      Bool_t               fIsGsf;               //flag to identify gsf tracks
255        Double32_t           fQOverP;              //[0,0,14]signed inverse of momentum [1/GeV]
256        Double32_t           fQOverPErr;           //[0,0,14]error of q/p
257        Double32_t           fLambda;              //[0,0,14]pi/2 - polar angle at the reference point
# Line 226 | Line 271 | namespace mithep
271        mutable CacheFlag    fCacheMomFlag;        //||cache validity flag for momentum
272        mutable ThreeVectorC fCachedMom;           //!cached momentum vector
273                
274 <    ClassDef(Track, 1) // Track class
274 >    ClassDef(Track, 2) // Track class
275    };
276   }
277  
# Line 267 | Line 312 | inline Double_t mithep::Track::D0Correct
312   }
313  
314   //--------------------------------------------------------------------------------------------------
315 < inline
316 < void mithep::Track::SetHelix(Double_t qOverP, Double_t lambda, Double_t phi0,
272 <                             Double_t dxy, Double_t dsz)
315 > inline void mithep::Track::SetHelix(Double_t qOverP, Double_t lambda, Double_t phi0,
316 >                                    Double_t dxy, Double_t dsz)
317   {
318    // Set helix parameters.
319  
# Line 282 | Line 326 | void mithep::Track::SetHelix(Double_t qO
326   }
327  
328   //--------------------------------------------------------------------------------------------------
329 < inline
330 < void mithep::Track::SetErrors(Double_t qOverPErr, Double_t lambdaErr, Double_t phi0Err,
287 <                              Double_t dxyErr, Double_t dszErr)
329 > inline void mithep::Track::SetErrors(Double_t qOverPErr, Double_t lambdaErr, Double_t phi0Err,
330 >                                     Double_t dxyErr, Double_t dszErr)
331   {
332    // Set helix errors.
333  
# Line 296 | Line 339 | void mithep::Track::SetErrors(Double_t q
339   }
340  
341   //--------------------------------------------------------------------------------------------------
342 < inline
300 < const mithep::BitMask48 mithep::Track::StereoLayers()
342 > inline const mithep::BitMask48 mithep::Track::StereoLayers()
343   {
344    // Build and return BitMask of stereo layers.
345  
# Line 320 | Line 362 | const mithep::BitMask48 mithep::Track::S
362    stereoLayers.SetBit(mithep::Track::TEC9S);
363    return stereoLayers;
364   }
365 +
366 + //--------------------------------------------------------------------------------------------------
367 + inline const mithep::BitMask48 mithep::Track::PixelLayers()
368 + {
369 +  // Build and return BitMask of stereo layers.
370 +
371 +  mithep::BitMask48 pixelLayers;
372 +  pixelLayers.SetBit(mithep::Track::PXB1);
373 +  pixelLayers.SetBit(mithep::Track::PXB2);
374 +  pixelLayers.SetBit(mithep::Track::PXB3);
375 +  pixelLayers.SetBit(mithep::Track::PXF1);
376 +  pixelLayers.SetBit(mithep::Track::PXF2);
377 +  return pixelLayers;
378 + }
379   #endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines