Skip to content

Commit

Permalink
Merge pull request #7 from kdlong/WmassNanoProd_106X_trackfits
Browse files Browse the repository at this point in the history
Add params needed for muon corrections
  • Loading branch information
kdlong authored Nov 16, 2021
2 parents 324f591 + 222c06c commit 0b76634
Show file tree
Hide file tree
Showing 49 changed files with 30,874 additions and 64 deletions.
35 changes: 35 additions & 0 deletions Analysis/HitAnalyzer/BuildFile.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<use name="FWCore/Framework"/>
<use name="FWCore/PluginManager"/>
<use name="FWCore/ParameterSet"/>
<use name="DataFormats/TrackReco"/>
<use name="DataFormats/SiStripDetId"/>
<use name="DataFormats/HepMCCandidate"/>
<use name="DataFormats/MuonReco"/>
<use name="TrackingTools/PatternTools"/>
<use name="Geometry/CommonDetUnit"/>
<use name="Geometry/Records"/>
<use name="Geometry/CommonTopologies"/>
<use name="TrackingTools/GeomPropagators"/>
<use name="eigen"/>
<use name="DataFormats/Math"/>
<use name="TrackingTools/MaterialEffects"/>
<use name="TrackingTools/GsfTools"/>
<use name="DataFormats/Common"/>
<use name="DataFormats/GsfTrackReco"/>
<use name="DataFormats/SiPixelDetId"/>
<use name="DataFormats/TrackingRecHit"/>
<use name="DataFormats/TrajectorySeed"/>
<use name="DataFormats/TrackerCommon"/>
<use name="Geometry/TrackerGeometryBuilder"/>
<use name="RecoTracker/MeasurementDet"/>
<use name="TrackingTools/Records"/>
<use name="RecoTracker/TransientTrackingRecHit"/>
<use name="TrackingTools/TrackFitters"/>
<use name="TrackingTools/TrajectoryState"/>
<use name="TrackingTools/KalmanUpdators"/>
<use name="Utilities/General"/>
<use name="TrackPropagation/RungeKutta"/>

<export>
<lib name="1"/>
</export>
1 change: 1 addition & 0 deletions Analysis/HitAnalyzer/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# HitAnalyzer
26 changes: 26 additions & 0 deletions Analysis/HitAnalyzer/interface/OffsetMagneticField.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#ifndef HitAnalyzer_OffsetMagneticField_h
#define HitAnalyzer_OffsetMagneticField_h

#include "MagneticField/Engine/interface/MagneticField.h"

class OffsetMagneticField : public MagneticField {

public:
OffsetMagneticField() {};
OffsetMagneticField(const MagneticField* nominal, GlobalVector const& offset) :
field_(nominal), offset_(offset) {}

virtual ~OffsetMagneticField() {}

GlobalVector const& offset() const { return offset_; }
void setOffset(GlobalVector const& offset) { offset_ = offset; }

virtual GlobalVector inTesla(const GlobalPoint& gp) const { return field_->inTesla(gp) + offset_; }
virtual GlobalVector inTeslaUnchecked(const GlobalPoint& gp) const { return field_->inTeslaUnchecked(gp) + offset_; }

private:
const MagneticField* field_;
GlobalVector offset_;

};
#endif
47 changes: 47 additions & 0 deletions Analysis/HitAnalyzer/plugins/BuildFile.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
<Flags CXXFLAGS="-g"/>
<use name="FWCore/Framework"/>
<use name="FWCore/PluginManager"/>
<use name="FWCore/ParameterSet"/>
<use name="DataFormats/TrackReco"/>
<use name="DataFormats/SiStripDetId"/>
<use name="DataFormats/HepMCCandidate"/>
<use name="DataFormats/MuonReco"/>
<use name="DataFormats/PatCandidates"/>
<use name="TrackingTools/PatternTools"/>
<use name="Geometry/CommonDetUnit"/>
<use name="Geometry/Records"/>
<use name="Geometry/CommonTopologies"/>
<use name="TrackingTools/GeomPropagators"/>
<use name="eigen"/>
<use name="DataFormats/Math"/>
<use name="TrackingTools/MaterialEffects"/>
<use name="TrackingTools/GsfTools"/>
<use name="DataFormats/Common"/>
<use name="DataFormats/GsfTrackReco"/>
<use name="DataFormats/SiPixelDetId"/>
<use name="DataFormats/TrackingRecHit"/>
<use name="DataFormats/TrajectorySeed"/>
<use name="DataFormats/TrackerCommon"/>
<use name="Geometry/TrackerGeometryBuilder"/>
<use name="RecoTracker/MeasurementDet"/>
<use name="TrackingTools/Records"/>
<use name="RecoTracker/TransientTrackingRecHit"/>
<use name="TrackingTools/TrackFitters"/>
<use name="TrackingTools/TrajectoryState"/>
<use name="TrackingTools/KalmanUpdators"/>
<use name="Utilities/General"/>
<use name="TrackPropagation/RungeKutta"/>
<use name="CommonTools/UtilAlgos"/>
<use name="RecoLocalTracker/SiStripClusterizer"/>
<use name="TrackingTools/TransientTrack"/>
<use name="RecoVertex/LinearizationPointFinders"/>
<use name="RecoVertex/KinematicFitPrimitives"/>
<use name="RecoVertex/KinematicFit"/>
<use name="Alignment/CommonAlignment"/>
<use name="TrackPropagation/Geant4e"/>

<!-- <use name="geant4"/> -->

<export>
<lib name="1"/>
</export>
18 changes: 18 additions & 0 deletions Analysis/HitAnalyzer/plugins/MagneticFieldOffset.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#include "MagneticFieldOffset.h"

MagneticField* MagneticFieldOffset::clone() const {
return new MagneticFieldOffset(*this);
}

GlobalVector MagneticFieldOffset::inTesla (const GlobalPoint& gp) const {
GlobalVector fieldval = field_->inTesla(gp);
const float mag = fieldval.mag();
return mag > 0. ? (mag + offset_)/mag*fieldval : fieldval;
}

GlobalVector MagneticFieldOffset::inTeslaUnchecked(const GlobalPoint& gp) const{
//same as above, but do not check range
GlobalVector fieldval = field_->inTeslaUnchecked(gp);
const float mag = fieldval.mag();
return mag > 0. ? (mag + offset_)/mag*fieldval : fieldval;
}
46 changes: 46 additions & 0 deletions Analysis/HitAnalyzer/plugins/MagneticFieldOffset.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
#ifndef HitAnalyzer_MagneticFieldOffset_h
#define HitAnalyzer_MagneticFieldOffset_h

/** \class MagneticFieldOffset
*
* Field engine providing interpolation within the full CMS region.
*
* \author N. Amapane - CERN
*/

#include "MagneticField/Engine/interface/MagneticField.h"
#include "MagneticField/VolumeBasedEngine/interface/MagGeometry.h"

// Class for testing MagneticFieldOffset
class testMagneticField;
class testMagGeometryAnalyzer;

class MagneticFieldOffset : public MagneticField {

public:
MagneticFieldOffset(const MagneticField *field) : field_(field), offset_(0.) {}
// ~MagneticFieldOffset() override;

/// Copy constructor implement a shallow copy (ie no ownership of actual engines)
// MagneticFieldOffset(const MagneticFieldOffset& vbf);

/// Returns a shallow copy.
MagneticField* clone() const override;

GlobalVector inTesla ( const GlobalPoint& g) const override;

GlobalVector inTeslaUnchecked ( const GlobalPoint& g) const override;

bool isDefined(const GlobalPoint& gp) const override { return field_->isDefined(gp); }

void setOffset(float offset) { offset_ = offset; }

// bool isZSymmetric() const;


private:
const MagneticField* field_;
float offset_;
};

#endif
Loading

0 comments on commit 0b76634

Please sign in to comment.