Go to the documentation of this file.00001 #ifndef TkNavigation_CosmicNavigationSchool_H
00002 #define TkNavigation_CosmicNavigationSchool_H
00003
00004 #include "RecoTracker/TkNavigation/interface/SimpleNavigationSchool.h"
00005 #include "RecoTracker/TkDetLayers/interface/GeometricSearchTracker.h"
00006
00007 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00008
00009 #include <vector>
00010
00011
00012
00013
00017 class CosmicNavigationSchool : public SimpleNavigationSchool {
00018 public:
00019 CosmicNavigationSchool(const GeometricSearchTracker* theTracker,
00020 const MagneticField* field);
00021 ~CosmicNavigationSchool(){ cleanMemory();}
00022
00023 class CosmicNavigationSchoolConfiguration{
00024 public:
00025 CosmicNavigationSchoolConfiguration() : noPXB(false), noPXF(false), noTOB(false), noTIB(false), noTEC(false), noTID(false) , self(false), allSelf(false) {}
00026 CosmicNavigationSchoolConfiguration(const edm::ParameterSet conf);
00027 bool noPXB;
00028 bool noPXF;
00029 bool noTOB;
00030 bool noTIB;
00031 bool noTEC;
00032 bool noTID;
00033
00034 bool self;
00035 bool allSelf;
00036 };
00037
00038 void build(const GeometricSearchTracker* theTracker,
00039 const MagneticField* field,
00040 const CosmicNavigationSchoolConfiguration conf);
00041
00042 protected:
00043 CosmicNavigationSchool(){}
00044 private:
00045
00046
00047 void linkBarrelLayers( SymmetricLayerFinder& symFinder);
00048
00049 void establishInverseRelations( SymmetricLayerFinder& symFinder );
00050 void buildAdditionalBarrelLinks();
00051 void buildAdditionalForwardLinks(SymmetricLayerFinder& symFinder);
00052 };
00053
00054 #endif // CosmicNavigationSchool_H