Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

First integration of Pixel Alignment of large structures in PCL (74X) #10452

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
e2554b5
added new PromptCalibProdSiPixelAli alca reco
vanbesien Jan 23, 2015
2fd457d
Added path for SiPixelAli
vanbesien Jan 26, 2015
74f5eef
Fixed problem with failing cmsDriver for SiPixelAli
vanbesien Jan 26, 2015
234941c
Added all necessary ingredients to ALCARECOPromptCalibProdSiPixelAli_…
vanbesien Feb 25, 2015
45e38c3
Minor bugfix for creation of TrackRefitter
vanbesien Mar 2, 2015
ed205b5
Bringing ALCARECOPromptCalibProdSiPixelAli_cff.py up to date
vanbesien Mar 25, 2015
196104d
commenting away the MillePedeFileConverter, since it doesn't exist yet
vanbesien Mar 25, 2015
434d4d4
remove the dependency from IdealGeometry when not running the muon al…
cerminar May 7, 2015
0e317a9
migrate the PEDE step to the Tier0 PCL infrastructure (AlCaHarvesting)
cerminar May 21, 2015
b6a9084
implemented new AlignmentProducer running on PCL
DirtyDan88 May 22, 2015
a14f62e
added test-config for TrackerAlignmentProducerForPCL in Alignment/Com…
DirtyDan88 May 22, 2015
98adff4
migrate to AlignmentErrorsExtended
cerminar Jun 2, 2015
ddbb7e4
move to the EDAnalyzer for the alignment producer
cerminar Jun 15, 2015
d909140
implemented new AlignmentProducer running on PCL
DirtyDan88 Jun 12, 2015
c497981
in 74X we keep using TrackerAlignmentProducerForPCL
cerminar Jun 25, 2015
b35d188
hack to use RelVals for tests
cerminar Jun 25, 2015
4668e6d
from TrackerAlignmentErrorRcd to TrackerAlignmentErrorExtendedRcd
cerminar Jun 25, 2015
dba76e5
Adding minimal set of necessary files that could make something work
vanbesien Jun 2, 2015
f925b9f
Resolving issues in classes_def.xml caused by inbetween updates of ot…
vanbesien Jun 2, 2015
ad46449
add the file handling module to the sequence and to the output of the…
cerminar Jun 25, 2015
f93d7e3
test on files from step2
cerminar Jun 25, 2015
a5c425d
move to the new EDAnalyzer for the alignment producer
cerminar Jun 25, 2015
0638b03
move DB writing to endRun and initializtion fromn analyze to beginRun
cerminar Jun 25, 2015
730b53b
move to the new file extractor to handle the binary files
cerminar Jun 25, 2015
3edce1b
remove the placeholder for the file converter since we now have the a…
cerminar Jun 25, 2015
eb6372d
Moved FileConverter and Extractor to MillePedeAlignmentAlgorithm folder
vanbesien Jul 6, 2015
c84caea
Introduced FileBlobCollection, implemented merge
vanbesien Jul 6, 2015
4fa54c4
Cleaning FileBlobCollection.cc
vanbesien Jul 6, 2015
6ca4903
Updated MillePedeFileExtracter for FileBlobCollection
vanbesien Jul 6, 2015
1b415eb
Cleaned and finalized the Converter and Extractor
vanbesien Jul 11, 2015
47e8312
Cleaning the configs of Convertor and Extractor
vanbesien Jul 11, 2015
079a92c
Updating MillePedeAlignmntAlgo to expand filenames
vanbesien Jul 11, 2015
c4cdd28
Gluing configs for extractor and pede together
vanbesien Jul 11, 2015
a21a9e7
cleanup
cerminar Jun 25, 2015
22e72e4
ConfiBuilder is now in a different location
cerminar Jul 13, 2015
f660953
implement latest sequence for 3.8T provided by Chris Martin
cerminar Jul 14, 2015
c033f44
new Tracker-AlignmentProducer running on PCL
DirtyDan88 Jun 25, 2015
be6c24c
changed ErrorRcds -> ExtendedErrorRcds
DirtyDan88 Jun 25, 2015
0e2aefd
added global typedef for Alignables
DirtyDan88 Jun 25, 2015
db8f519
removed CommonAlignmentAlignmentProcuderPlugin (AlignmentProducer.cc)…
DirtyDan88 Jun 25, 2015
7b18461
fixed include of AlignmentErrorsExtended
DirtyDan88 Jun 25, 2015
279a611
implemented changed AlignmentAlgorithm interface
DirtyDan88 Jun 25, 2015
674e092
rebuild interface for offline alignment producer
DirtyDan88 Jun 30, 2015
89d1eeb
changed logging system
DirtyDan88 Jun 30, 2015
94c4429
fixed bug in MillePedeAlignmentAlgorithm (function terminate causes a…
DirtyDan88 Jul 1, 2015
0dcc08e
fixed bug: algo->terminate not called in pede mode
DirtyDan88 Jul 3, 2015
be7991f
fix an obvious mistake in the merge
cerminar Jul 14, 2015
83a0dd7
Modify to include latest Chris' configuration for 3.8T
cerminar Jul 15, 2015
7500e51
Modify to be able to initialize the algorithm even without processing…
cerminar Jul 15, 2015
4f4ef54
add a filter to discard first n LS (default is 20) in the mille step
cerminar Jul 27, 2015
2f1847d
add SiPixelAli to PCL workflows tested by relval 1001.0
cerminar Jul 27, 2015
f12536d
moved algo initialization to beginRun, removed debug-logging, added d…
DirtyDan88 Jul 16, 2015
13c6f96
reorganized includes/typedefs, added doxygen
DirtyDan88 Jul 16, 2015
3626752
fixed typo in readInSurveyRcds()
DirtyDan88 Jul 16, 2015
f0fb482
added global typedef 'vector<AlignmentMonitor> AlignmentMonitors'
DirtyDan88 Jul 27, 2015
23a44e9
added ESWatcher for IdealGeometryRecord and GlobalPositionRcd
DirtyDan88 Jul 27, 2015
296938c
revert to official .gitignore
cerminar Jul 28, 2015
1f417d2
remove obsolete class
cerminar Jul 28, 2015
e0d10af
added methods for PCLAlignmentProducer and some typedefs
DirtyDan88 Jul 28, 2015
6ee01e7
Minor fixes to finalize the check of the new workflow in in the relva…
cerminar Jul 28, 2015
56d3713
revert all changes to the AlignmentProducer EDLooper since we now hav…
cerminar Jul 28, 2015
97367de
address conflicts with the trackrefitter cff
cerminar Jul 29, 2015
0d1d97c
add flushing of the mille file in endRun protecting it against runnin…
cerminar Sep 8, 2015
7acb2fb
add SiPixel alignment workflow to the mapping of ALCAPROMPT and harve…
cerminar Sep 9, 2015
23f0057
change the logic used to create the IOV so that the smaller processed…
cerminar Sep 9, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 2 additions & 0 deletions Alignment/CommonAlignment/interface/Alignable.h
Expand Up @@ -243,4 +243,6 @@ class Alignable

};

typedef std::vector<Alignable*> Alignables;

#endif
Expand Up @@ -2,11 +2,21 @@
#ifndef Alignment_CommonAlignmentAlgorithm_AlignmentAlgorithmBase_h
#define Alignment_CommonAlignmentAlgorithm_AlignmentAlgorithmBase_h

///
/// Base class for the alignment algorithm
///
/// Any algorithm should derive from this class
///
/**
* @package Alignment/CommonAlignmentAlgorithm
* @file AlignmentAlgorithmBase.h
*
* @author ???
*
* Last update:
* @author Max Stark (max.stark@cern.ch)
* @date 2015/07/16
*
* @brief Interface/Base class for alignment algorithms, each alignment
* algorithm has to be derived from this class
*/



#include <vector>
#include <utility>
Expand All @@ -32,11 +42,27 @@ class Trajectory;
namespace edm { class EventSetup; class ParameterSet; }
namespace reco { class Track; class BeamSpot; }

/*** Global typedefs part I (see EOF for part II) ***/
typedef std::pair<const Trajectory*, const reco::Track*> ConstTrajTrackPair;
typedef std::vector< ConstTrajTrackPair > ConstTrajTrackPairs;

typedef std::vector<IntegratedCalibrationBase*> Calibrations;

typedef cond::RealTimeType<cond::runnumber>::type RunNumber;
typedef std::pair<RunNumber,RunNumber> RunRange;
typedef std::vector<RunRange> RunRanges;



class AlignmentAlgorithmBase
{

public:

// TODO: DEPRECATED: For not breaking the interface, used in serveral files.
// If possible use the global typedefs above.
// With global typedefs one does not have to typedef again like
// 'typedef AlignmentAlgorithmBase::ConstTrajTrackPair ConstTrajTrackPair;'
// in other files.
typedef std::pair<const Trajectory*, const reco::Track*> ConstTrajTrackPair;
typedef std::vector< ConstTrajTrackPair > ConstTrajTrackPairCollection;
typedef cond::RealTimeType<cond::runnumber>::type RunNumber;
Expand Down Expand Up @@ -83,7 +109,7 @@ class AlignmentAlgorithmBase
};

/// Constructor
AlignmentAlgorithmBase(const edm::ParameterSet& cfg);
AlignmentAlgorithmBase(const edm::ParameterSet&) {};

/// Destructor
virtual ~AlignmentAlgorithmBase() {};
Expand All @@ -94,18 +120,27 @@ class AlignmentAlgorithmBase
AlignableMuon* muon,
AlignableExtras* extras,
AlignmentParameterStore* store ) = 0;
/// Pass integrated calibrations to algorithm, to be called after initialize(..).
/// (Calibrations' ownership is NOT passed to algorithm.)
/// Return whether feature is supported by algorithm,
/// default implementation returns false.
virtual bool addCalibrations(const std::vector<IntegratedCalibrationBase*> &iCals){return false;}

/// Call at start of loop
/// Default implementation is dummy for non-iterative algorithms
/// Returns whether calibrations is supported by algorithm,
/// default implementation returns false.
virtual bool supportsCalibrations() { return false; }
/// Pass integrated calibrations to algorithm, to be called after initialize()
/// Calibrations' ownership is NOT passed to algorithm
virtual bool addCalibrations(const Calibrations&) { return false; }

/// Returns whether algorithm proccesses events in current configuration
virtual bool processesEvents() { return true; }

// TODO: DEPRECATED: Actually, there are no iterative algorithms, use
// initialze() and terminate()
/// Called at start of loop, default implementation is dummy for
/// non-iterative algorithms
virtual void startNewLoop() {}

/// Call at end of each loop (must be implemented in derived class)
virtual void terminate(const edm::EventSetup& iSetup) = 0;
/// Called at end of job (must be implemented in derived class)
virtual void terminate() {}

/// Run the algorithm (must be implemented in derived class)
virtual void run( const edm::EventSetup &setup, const EventInfo &eventInfo) = 0;
Expand All @@ -127,4 +162,8 @@ class AlignmentAlgorithmBase
virtual bool setParametersForRunRange(const RunRange& rr) { return false; };
};

/*** Global typedefs part II ***/
typedef AlignmentAlgorithmBase::EventInfo EventInfo;
typedef AlignmentAlgorithmBase::EndRunInfo EndRunInfo;

#endif

This file was deleted.

Expand Up @@ -110,5 +110,7 @@ class AlignmentMonitorBase
std::map<std::vector<std::string>, TFileDirectory*> m_baseDirMap, m_iterDirMap;
};

/*** Global typedefs ***/
typedef std::vector<AlignmentMonitorBase*> AlignmentMonitors;

#endif
17 changes: 17 additions & 0 deletions Alignment/CommonAlignmentProducer/plugins/BuildFile.xml
Expand Up @@ -6,6 +6,20 @@
<use name="CondFormats/AlignmentRecord"/>
</library>
<library name="AlignmentCommonAlignmentProducerPlugin" file="AlignmentProducer.cc">
<use name="Alignment/CommonAlignment"/>
<use name="Alignment/CommonAlignmentAlgorithm"/>
<use name="Alignment/CommonAlignmentMonitor"/>
<use name="Alignment/CommonAlignmentParametrization"/>
<use name="Alignment/MuonAlignment"/>
<use name="Alignment/TrackerAlignment"/>
<use name="CondCore/DBOutputService"/>
<use name="CondFormats/Alignment"/>
<use name="CondFormats/AlignmentRecord"/>
<use name="CondFormats/GeometryObjects"/>
<use name="FWCore/ServiceRegistry"/>
<use name="boost"/>
</library>
<library name="AlignmentPCLTrackerAlignmentProducerPlugin" file="PCLTrackerAlProducer.cc">
<use name="Alignment/CommonAlignment"/>
<use name="Alignment/CommonAlignmentAlgorithm"/>
<use name="Alignment/CommonAlignmentMonitor"/>
Expand Down Expand Up @@ -58,3 +72,6 @@
<use name="DataFormats/DTRecHit"/>
<use name="DataFormats/RPCRecHit"/>
</library>
<library file="LSNumberFilter.cc" name="AlignmentCommonAlignmentProducerFilter">
<flags EDM_PLUGIN="1"/>
</library>
76 changes: 76 additions & 0 deletions Alignment/CommonAlignmentProducer/plugins/LSNumberFilter.cc
@@ -0,0 +1,76 @@
//#include "FWCore/Framework/interface/Frameworkfwd.h"
#include "FWCore/Framework/interface/EDFilter.h"

#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/Run.h"
#include "FWCore/Framework/interface/MakerMacros.h"
#include "FWCore/Framework/interface/EventSetup.h"
#include "FWCore/Framework/interface/ESHandle.h"

#include "FWCore/MessageLogger/interface/MessageLogger.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"



//
// class declaration
//



class LSNumberFilter : public edm::EDFilter {
public:
explicit LSNumberFilter(const edm::ParameterSet&);
~LSNumberFilter();

private:

virtual void beginJob() override ;
virtual bool filter(edm::Event&, const edm::EventSetup&) override;
virtual void endJob() override ;

unsigned int minLS;
};



LSNumberFilter::LSNumberFilter(const edm::ParameterSet& iConfig):
minLS(iConfig.getUntrackedParameter<unsigned>("minLS",21))
{}


LSNumberFilter::~LSNumberFilter()
{

// do anything here that needs to be done at desctruction time
// (e.g. close files, deallocate resources etc.)

}


//
// member functions
//

// ------------ method called on each new Event ------------
bool LSNumberFilter::filter(edm::Event& iEvent,
const edm::EventSetup& iSetup) {

if(iEvent.luminosityBlock() < minLS) return false;

return true;

}

// ------------ method called once each job just before starting event loop ------------
void
LSNumberFilter::beginJob()
{}

// ------------ method called once each job just after ending the event loop ------------
void
LSNumberFilter::endJob() {
}

//define this as a plug-in
DEFINE_FWK_MODULE(LSNumberFilter);