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

Comparing UserCode/MitAna/DataTree/interface/Electron.h (file contents):
Revision 1.49 by paus, Wed Mar 28 12:15:34 2012 UTC vs.
Revision 1.60 by sixie, Sat Sep 1 11:37:40 2012 UTC

# Line 5 | Line 5
5   //
6   // This class holds information about reconstructed electrons from CMSSW.
7   //
8 < // Authors: C.Loizides, J.Bendavid, S.Xie
8 > // Authors: C.Paus, G.Ceballos, C.Loizides, J.Bendavid, S.Xie
9   //--------------------------------------------------------------------------------------------------
10  
11   #ifndef MITANA_DATATREE_ELECTRON_H
# Line 48 | Line 48 | namespace mithep
48          fConvFlag(0), fIsEnergyScaleCorrected(0), fIsMomentumCorrected(0),
49          fClassification(0), fIsEB(), fIsEE(0), fIsEBEEGap(0), fIsEBEtaGap(0),
50          fIsEBPhiGap(0), fIsEEDeeGap(0), fIsEERingGap(0),
51 <        fIsEcalDriven(0), fIsTrackerDriven(0), fMatchesVertexConversion(0) {}
51 >        fIsEcalDriven(0), fIsTrackerDriven(0), fMatchesVertexConversion(0),
52 >        fHadOverEmTow(0), fHCalIsoTowDr03(0), fHCalIsoTowDr04(0),
53 >        fEcalEnergy(0), fEcalEnergyError(0), fTrackMomentumError(0) {}
54  
55        const Track         *BestTrk()                     const;
56        Double_t             D0PV()                        const { return fD0PV; }
# Line 120 | Line 122 | namespace mithep
122        Double_t             E55()                            const { return fE55; }
123        Double_t             ESuperClusterOverP()             const { return fESuperClusterOverP; }
124        Double_t             ESeedClusterOverPout()           const { return fESeedClusterOverPout; }
125 +      Double_t             EEleClusterOverPout()            const { return fEEleClusterOverPout; }
126        Double_t             ESeedClusterOverPIn()            const;
127        Double_t             FBrem()                          const { return fFBrem; }
128        Double_t             FBremOld()                       const { return (PIn() - POut())/PIn(); }
# Line 152 | Line 155 | namespace mithep
155        Double_t             PIn()                            const { return fPIn; }
156        Double_t             POut()                           const { return fPOut; }
157        const SuperCluster  *SCluster()                       const { return fSuperClusterRef.Obj(); }
158 +      const SuperCluster  *PFSCluster()                     const { return fPFSuperClusterRef.Obj(); }      
159        Double_t             ScPixCharge()                    const { return fScPixCharge; }
160                                                              
161        Double_t             EcalRecHitIsoDr04()              const { return fEcalJurassicIsolation; }
# Line 172 | Line 176 | namespace mithep
176        UInt_t               NAmbiguousGsfTracks()            const { return fAmbiguousGsfTracks.Entries(); }
177        Bool_t               HasAmbiguousGsfTrack(const Track *t) const { return fAmbiguousGsfTracks.HasObject(t); }
178        const Track         *AmbiguousGsfTrack(UInt_t i)      const { return fAmbiguousGsfTracks.At(i); }
179 <      
179 >      Int_t                CTFTrkNLayersWithMeasurement()   const { return fCTFTrkNLayersWithMeasurement; }
180 >      Double_t             HadOverEmTow()                   const { return fHadOverEmTow;       }
181 >      Double_t             HcalIsoTowDr03()                 const { return fHCalIsoTowDr03;    }
182 >      Double_t             HcalIsoTowDr04()                 const { return fHCalIsoTowDr04;    }
183 >      Double_t             EcalEnergy()                     const { return fEcalEnergy;      }
184 >      Double_t             EcalEnergyError()                const { return fEcalEnergyError; }
185 >      Double_t             TrackMomentumError()             const { return fTrackMomentumError; }
186 >
187        void                 AddAmbiguousGsfTrack(const Track *t)          { fAmbiguousGsfTracks.Add(t); }
188        void                 SetCharge(Char_t x)                           { fCharge = x; ClearCharge(); }
189        void                 SetScPixCharge(Char_t x)                      { fScPixCharge = x; }
# Line 231 | Line 242 | namespace mithep
242        void                 SetE25Max(Double_t x)                  { fE25Max = x; }
243        void                 SetE55(Double_t x)                     { fE55 = x; }
244        void                 SetESeedClusterOverPout(Double_t x)    { fESeedClusterOverPout = x; }
245 +      void                 SetEEleClusterOverPout(Double_t x)     { fEEleClusterOverPout = x; }
246        void                 SetESuperClusterOverP(Double_t x)      { fESuperClusterOverP = x; }
247        void                 SetFBrem(Double_t x)                   { fFBrem = x; }
248        void                 SetFracSharedHits(Double_t x)          { fFracSharedHits = x; }
# Line 250 | Line 262 | namespace mithep
262        void                 SetPtEtaPhi(Double_t pt, Double_t eta, Double_t phi);
263        void                 SetSuperCluster(const SuperCluster* sc)
264                               { fSuperClusterRef = sc; }
265 +      void                 SetPFSuperCluster(const SuperCluster* sc)
266 +                             { fPFSuperClusterRef = sc; }                            
267        void                 SetTrackerTrk(const Track* t)                
268                               { fTrackerTrackRef = t; ClearCharge(); }
269        void                 SetConvPartnerTrk(const Track *t)
# Line 279 | Line 293 | namespace mithep
293        void                 SetMatchesVertexConversion(Bool_t b)    { fMatchesVertexConversion = b; }
294        void                 SetConversionXYZ(Double_t x, Double_t y, Double_t z)
295                                    { fConvPosition.SetXYZ(x,y,z); }
296 <      
296 >      void                 SetCTFTrkNLayersWithMeasurement(Int_t x){ fCTFTrkNLayersWithMeasurement = x; }
297 >      void                 SetHadOverEmTow(Double_t x)             { fHadOverEmTow = x; }
298 >      void                 SetHCalIsoTowDr03(Double_t x)           { fHCalIsoTowDr03 = x; }
299 >      void                 SetHCalIsoTowDr04(Double_t x)           { fHCalIsoTowDr04 = x; }
300 >      void                 SetEcalEnergy(Double_t e)               { fEcalEnergy = e; }
301 >      void                 SetEcalEnergyError(Double_t e)          { fEcalEnergyError = e; }
302 >      void                 SetTrackMomentumError(Double_t e)       { fTrackMomentumError = e; }
303      
304        const Track         *TrackerTrk()            const { return fTrackerTrackRef.Obj(); }
305        const Track         *Trk()                   const { return BestTrk(); }
306        const Track         *ConvPartnerTrk()        const { return fConvPartnerTrackRef.Obj(); }
307  
308        // Some structural tools
309 <      void                 Mark()                  const;
309 >      void                 Mark(UInt_t i=1)        const;
310  
311      protected:
312        Double_t             GetCharge()             const;
# Line 342 | Line 362 | namespace mithep
362        Double32_t           fD0PVBSErr;                 //[0,0,14]transverse impact parameter uncertainty to signal PV w/ bs constraint (gsf track)
363        Double32_t           fIp3dPVBS;                  //[0,0,14]3d impact parameter to signal PV w/ bs constraint (gsf track)
364        Double32_t           fIp3dPVBSErr;               //[0,0,14]3d impact parameter uncertainty to signal PV w/ bs constraint (gsf track)
365 <      Double32_t           fD0PVCkf;                      //[0,0,14]transverse impact parameter to signal PV (ckf track)
366 <      Double32_t           fD0PVCkfErr;                   //[0,0,14]transverse impact parameter uncertainty to signal PV (ckf track)
367 <      Double32_t           fIp3dPVCkf;                    //[0,0,14]3d impact parameter to signal PV (ckf track)
368 <      Double32_t           fIp3dPVCkfErr;                 //[0,0,14]3d impact parameter uncertainty to signal PV (ckf track)
369 <      Double32_t           fD0PVBSCkf;                    //[0,0,14]transverse impact parameter to signal PV w/ bs constraint (ckf track)
370 <      Double32_t           fD0PVBSCkfErr;                 //[0,0,14]transverse impact parameter uncertainty to signal PV w/ bs constraint (ckf track)
371 <      Double32_t           fIp3dPVBSCkf;                  //[0,0,14]3d impact parameter to signal PV w/ bs constraint (ckf track)
372 <      Double32_t           fIp3dPVBSCkfErr;               //[0,0,14]3d impact parameter uncertainty to signal PV w/ bs constraint (ckf track)
373 <      Double32_t           fD0PVUB;                      //[0,0,14]transverse impact parameter to signal PVUB (gsf track)
374 <      Double32_t           fD0PVUBErr;                   //[0,0,14]transverse impact parameter uncertainty to signal PVUB (gsf track)
375 <      Double32_t           fIp3dPVUB;                    //[0,0,14]3d impact parameter to signal PVUB (gsf track)
376 <      Double32_t           fIp3dPVUBErr;                 //[0,0,14]3d impact parameter uncertainty to signal PVUB (gsf track)
377 <      Double32_t           fD0PVUBBS;                    //[0,0,14]transverse impact parameter to signal PVUB w/ bs constraint (gsf track)
378 <      Double32_t           fD0PVUBBSErr;                 //[0,0,14]transverse impact parameter uncertainty to signal PVUB w/ bs constraint (gsf track)
379 <      Double32_t           fIp3dPVUBBS;                  //[0,0,14]3d impact parameter to signal PVUB w/ bs constraint (gsf track)
380 <      Double32_t           fIp3dPVUBBSErr;               //[0,0,14]3d impact parameter uncertainty to signal PVUB w/ bs constraint (gsf track)
381 <      Double32_t           fD0PVUBCkf;                      //[0,0,14]transverse impact parameter to signal PVUB (ckf track)
382 <      Double32_t           fD0PVUBCkfErr;                   //[0,0,14]transverse impact parameter uncertainty to signal PVUB (ckf track)
383 <      Double32_t           fIp3dPVUBCkf;                    //[0,0,14]3d impact parameter to signal PVUB (ckf track)
384 <      Double32_t           fIp3dPVUBCkfErr;                 //[0,0,14]3d impact parameter uncertainty to signal PVUB (ckf track)
385 <      Double32_t           fD0PVUBBSCkf;                    //[0,0,14]transverse impact parameter to signal PVUB w/ bs constraint (ckf track)
386 <      Double32_t           fD0PVUBBSCkfErr;                 //[0,0,14]transverse impact parameter uncertainty to signal PVUB w/ bs constraint (ckf track)
387 <      Double32_t           fIp3dPVUBBSCkf;                  //[0,0,14]3d impact parameter to signal PVUB w/ bs constraint (ckf track)
388 <      Double32_t           fIp3dPVUBBSCkfErr;               //[0,0,14]3d impact parameter uncertainty to signal PVUB w/ bs constraint (ckf track)
365 >      Double32_t           fD0PVCkf;                   //[0,0,14]transverse impact parameter to signal PV (ckf track)
366 >      Double32_t           fD0PVCkfErr;                //[0,0,14]transverse impact parameter uncertainty to signal PV (ckf track)
367 >      Double32_t           fIp3dPVCkf;                 //[0,0,14]3d impact parameter to signal PV (ckf track)
368 >      Double32_t           fIp3dPVCkfErr;              //[0,0,14]3d impact parameter uncertainty to signal PV (ckf track)
369 >      Double32_t           fD0PVBSCkf;                 //[0,0,14]transverse impact parameter to signal PV w/ bs constraint (ckf track)
370 >      Double32_t           fD0PVBSCkfErr;              //[0,0,14]transverse impact parameter uncertainty to signal PV w/ bs constraint (ckf track)
371 >      Double32_t           fIp3dPVBSCkf;               //[0,0,14]3d impact parameter to signal PV w/ bs constraint (ckf track)
372 >      Double32_t           fIp3dPVBSCkfErr;            //[0,0,14]3d impact parameter uncertainty to signal PV w/ bs constraint (ckf track)
373 >      Double32_t           fD0PVUB;                    //[0,0,14]transverse impact parameter to signal PVUB (gsf track)
374 >      Double32_t           fD0PVUBErr;                 //[0,0,14]transverse impact parameter uncertainty to signal PVUB (gsf track)
375 >      Double32_t           fIp3dPVUB;                  //[0,0,14]3d impact parameter to signal PVUB (gsf track)
376 >      Double32_t           fIp3dPVUBErr;               //[0,0,14]3d impact parameter uncertainty to signal PVUB (gsf track)
377 >      Double32_t           fD0PVUBBS;                  //[0,0,14]transverse impact parameter to signal PVUB w/ bs constraint (gsf track)
378 >      Double32_t           fD0PVUBBSErr;               //[0,0,14]transverse impact parameter uncertainty to signal PVUB w/ bs constraint (gsf track)
379 >      Double32_t           fIp3dPVUBBS;                //[0,0,14]3d impact parameter to signal PVUB w/ bs constraint (gsf track)
380 >      Double32_t           fIp3dPVUBBSErr;             //[0,0,14]3d impact parameter uncertainty to signal PVUB w/ bs constraint (gsf track)
381 >      Double32_t           fD0PVUBCkf;                 //[0,0,14]transverse impact parameter to signal PVUB (ckf track)
382 >      Double32_t           fD0PVUBCkfErr;              //[0,0,14]transverse impact parameter uncertainty to signal PVUB (ckf track)
383 >      Double32_t           fIp3dPVUBCkf;               //[0,0,14]3d impact parameter to signal PVUB (ckf track)
384 >      Double32_t           fIp3dPVUBCkfErr;            //[0,0,14]3d impact parameter uncertainty to signal PVUB (ckf track)
385 >      Double32_t           fD0PVUBBSCkf;               //[0,0,14]transverse impact parameter to signal PVUB w/ bs constraint (ckf track)
386 >      Double32_t           fD0PVUBBSCkfErr;            //[0,0,14]transverse impact parameter uncertainty to signal PVUB w/ bs constraint (ckf track)
387 >      Double32_t           fIp3dPVUBBSCkf;             //[0,0,14]3d impact parameter to signal PVUB w/ bs constraint (ckf track)
388 >      Double32_t           fIp3dPVUBBSCkfErr;          //[0,0,14]3d impact parameter uncertainty to signal PVUB w/ bs constraint (ckf track)
389        Double32_t           fGsfPVCompatibility;        //[0,0,14]gsf compatibility with signal PV
390        Double32_t           fGsfPVBSCompatibility;      //[0,0,14]gsf compatibility with signal PV w/ bs constraint
391        Double32_t           fGsfPVCompatibilityMatched; //[0,0,14]gsf compatibility with signal PV (matching ckf track excluded from vertex)
# Line 392 | Line 412 | namespace mithep
412        Bool_t               fIsTrackerDriven;           //is pflow track-seeded electron
413        Bool_t               fMatchesVertexConversion;
414        RefArray<Track>      fAmbiguousGsfTracks;        //ambiguous gsf tracks for this electron
415 +      Double_t             fEEleClusterOverPout;       //energy of the electron cluster
416 +      Int_t                fCTFTrkNLayersWithMeasurement; //number of tracker layers from associated ctf trk
417 +      Double32_t           fHadOverEmTow;              //[0,0,14]per-tower definition of hadronic/em energy fraction
418 +      Double32_t           fHCalIsoTowDr03;            //[0,0,14]hcal isolation matched to per tower h/e definition
419 +      Double32_t           fHCalIsoTowDr04;            //[0,0,14]hcal isolation matched to per tower h/e definition
420 +      Double32_t           fEcalEnergy;                //[0,0,14]corrected Ecal energy
421 +      Double32_t           fEcalEnergyError;           //[0,0,14]corrected Ecal energy error
422 +      Double32_t           fTrackMomentumError;        //track momentum error
423 +      Ref<SuperCluster>    fPFSuperClusterRef;         //reference to Particle Flow SuperCluster
424  
425 <    ClassDef(Electron, 12) // Electron class
425 >    ClassDef(Electron, 15)                             // Electron class
426    };
427   }
428  
429   //--------------------------------------------------------------------------------------------------
430 < inline void mithep::Electron::Mark() const
430 > inline void mithep::Electron::Mark(UInt_t ib) const
431   {
432    // mark myself
433 <  mithep::DataObject::Mark();
433 >  mithep::DataObject::Mark(ib);
434    // mark my dependencies if they are there
435 <  if (HasSuperCluster())
436 <    SCluster()->Mark();
437 <  if (HasGsfTrk())
438 <    GsfTrk()->Mark();
439 <  if (HasTrackerTrk())
440 <    TrackerTrk()->Mark();
435 >  if (fSuperClusterRef.IsValid())
436 >    fSuperClusterRef.Obj()->Mark(ib);
437 >  if (fGsfTrackRef.IsValid())
438 >    fGsfTrackRef.Obj()->Mark(ib);
439 >  if (fTrackerTrackRef.IsValid())
440 >    fTrackerTrackRef.Obj()->Mark(ib);
441    if (fConvPartnerTrackRef.IsValid())
442 <    ConvPartnerTrk()->Mark();
443 <  for (UInt_t i=0; i<NAmbiguousGsfTracks(); i++)
415 <    fAmbiguousGsfTracks.At(i)->Mark();
442 >    fConvPartnerTrackRef.Obj()->Mark(ib);
443 >  fAmbiguousGsfTracks.Mark(ib);
444   }
445    
446   //--------------------------------------------------------------------------------------------------

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines