44 edm::LogWarning(
"DeDxDiscriminatorLearner") <<
"Pixel Hits AND Strip Hits will not be used to estimate dEdx --> BUG, Please Update the config file";
75 Charge_Vs_Path =
new TH3F (
"Charge_Vs_Path" ,
"Charge_Vs_Path" ,
P_NBins,
P_Min,
P_Max,
Path_NBins,
Path_Min,
Path_Max,
Charge_NBins,
Charge_Min,
Charge_Max);
82 auto const &
Det = tkGeom->dets();
83 for(
unsigned int i=0;
i<
Det.size();
i++){
94 unsigned int NAPV = Topo.
nstrips()/128;
96 double Eta = DetUnit->position().basicVector().eta();
97 double R = DetUnit->position().basicVector().transverse();
98 double Thick = DetUnit->surface().bounds().thickness();
118 if( strcmp(
algoMode.c_str(),
"MultiJob")==0){
123 }
else if( strcmp(
algoMode.c_str(),
"WriteOnDB")==0){
125 Charge_Vs_Path = (TH3F*)(Input->FindObjectAny(
"Charge_Vs_Path"))->Clone();
146 unsigned track_index = 0;
149 const Track track = *it->val;
156 vector<TrajectoryMeasurement> measurements = traj.
measurements();
157 for(vector<TrajectoryMeasurement>::const_iterator measurement_it = measurements.begin(); measurement_it!=measurements.end(); measurement_it++)
160 if( !trajState.
isValid() )
continue;
163 const SiStripRecHit2D* sistripsimplehit =
dynamic_cast<const SiStripRecHit2D*
>(hit);
164 const SiStripMatchedRecHit2D* sistripmatchedhit =
dynamic_cast<const SiStripMatchedRecHit2D*
>(hit);
165 const SiStripRecHit1D* sistripsimple1dhit =
dynamic_cast<const SiStripRecHit1D*
>(hit);
167 if(sistripsimplehit){
168 Learn((sistripsimplehit->cluster()).
get(), trajState);
169 }
else if(sistripmatchedhit){
170 Learn(&sistripmatchedhit->monoCluster(),trajState);
171 Learn(&sistripmatchedhit->stereoCluster(),trajState);
172 }
else if(sistripsimple1dhit){
173 Learn((sistripsimple1dhit->cluster()).
get(), trajState);
187 double cosine = trackDirection.
z()/trackDirection.
mag();
188 const vector<uint8_t>& ampls = cluster->
amplitudes();
double p() const
momentum vector magnitude
T getParameter(std::string const &) const
virtual int nstrips() const =0
T getUntrackedParameter(std::string const &, T const &) const
friend struct const_iterator
const_iterator end() const
last iterator over the map (read only)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
#define DEFINE_FWK_MODULE(type)
LocalVector localDirection() const
const TrackerGeometry * m_tracker
uint16_t firstStrip() const
void Learn(const SiStripCluster *cluster, TrajectoryStateOnSurface trajState)
uint32_t rawId() const
get the raw id
LocalVector localMomentum() const
DataContainer const & measurements() const
double eta() const
pseudorapidity of momentum vector
virtual void algoBeginJob(const edm::EventSetup &)
tuple path
else: Piece not in the list, fine.
unsigned int MinTrackHits
virtual void algoAnalyze(const edm::Event &, const edm::EventSetup &)
int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
virtual void algoEndJob()
__gnu_cxx::hash_map< unsigned int, stModInfo *, __gnu_cxx::hash< unsigned int >, isEqual > MODsColl
T const * product() const
T const * product() const
virtual const GeomDetUnit * idToDetUnit(DetId) const
Return the pointer to the GeomDetUnit corresponding to a given DetId.
~DeDxDiscriminatorLearner()
unsigned short found() const
Number of valid hits on track.
edm::EDGetTokenT< TrajTrackAssociationCollection > m_trajTrackAssociationTag
const_iterator begin() const
first iterator over the map (read only)
edm::EDGetTokenT< reco::TrackCollection > m_tracksTag
const std::vector< uint8_t > & amplitudes() const
PhysicsTools::Calibration::HistogramD3D * getNewObject()
DeDxDiscriminatorLearner(const edm::ParameterSet &)