CMS 3D CMS Logo

SeedGeneratorForCRack Class Reference

#include <RecoTracker/SpecialSeedGenerators/interface/SeedGeneratorForCRack.h>

List of all members.

Public Types

typedef TrajectoryStateOnSurface TSOS

Public Member Functions

void init (const SiStripRecHit2DCollection &collstereo, const SiStripRecHit2DCollection &collrphi, const SiStripMatchedRecHit2DCollection &collmatched, const edm::EventSetup &c)
void run (TrajectorySeedCollection &, const edm::EventSetup &c)
 SeedGeneratorForCRack (const edm::ParameterSet &conf)
void seeds (TrajectorySeedCollection &output, const edm::EventSetup &c, const TrackingRegion &region)
virtual ~SeedGeneratorForCRack ()

Private Attributes

std::string builderName
edm::ParameterSet conf_
std::string geometry
OrderedHitPairs HitPairs
edm::ESHandle< MagneticFieldmagfield
float multipleScatteringFactor
GlobalTrackingRegion region
double seedMomentum
float seedpt
CosmicHitPairGeneratorthePairGenerator
PropagatorWithMaterialthePropagatorAl
PropagatorWithMaterialthePropagatorOp
KFUpdatortheUpdator
edm::ESHandle< TrackerGeometrytracker
TrajectoryStateTransform transformer
const
TransientTrackingRecHitBuilder
TTTRHBuilder


Detailed Description

Definition at line 21 of file SeedGeneratorForCRack.h.


Member Typedef Documentation

typedef TrajectoryStateOnSurface SeedGeneratorForCRack::TSOS

Definition at line 23 of file SeedGeneratorForCRack.h.


Constructor & Destructor Documentation

SeedGeneratorForCRack::SeedGeneratorForCRack ( const edm::ParameterSet conf  ) 

Definition at line 37 of file SeedGeneratorForCRack.cc.

References builderName, conf_, geometry, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), multipleScatteringFactor, ptmin, region, seedMomentum, and seedpt.

00037                                                                        :
00038   conf_(conf)
00039 {  
00040   float ptmin=conf_.getParameter<double>("ptMin");
00041   float originradius=conf_.getParameter<double>("originRadius");
00042   float halflength=conf_.getParameter<double>("originHalfLength");
00043   float originz=conf_.getParameter<double>("originZPosition");
00044   seedpt = conf_.getParameter<double>("SeedPt");
00045 
00046   builderName = conf_.getParameter<std::string>("TTRHBuilder");   
00047   geometry=conf_.getUntrackedParameter<std::string>("GeometricStructure","STANDARD");
00048   region=GlobalTrackingRegion(ptmin,originradius,
00049                               halflength,originz);
00050   multipleScatteringFactor=conf_.getUntrackedParameter<double>("multipleScatteringFactor", 1.0);
00051   seedMomentum =conf_.getUntrackedParameter<double>("SeedMomentum",1);
00052   edm::LogInfo("SeedGeneratorForCRack")<<" PtMin of track is "<<ptmin<< 
00053     " The Radius of the cylinder for seeds is "<<originradius <<"cm"  << " The set Seed Momentum" <<  seedpt;
00054 }

virtual SeedGeneratorForCRack::~SeedGeneratorForCRack (  )  [inline, virtual]

Definition at line 25 of file SeedGeneratorForCRack.h.

00025 {};


Member Function Documentation

void SeedGeneratorForCRack::init ( const SiStripRecHit2DCollection collstereo,
const SiStripRecHit2DCollection collrphi,
const SiStripMatchedRecHit2DCollection collmatched,
const edm::EventSetup c 
)

Definition at line 12 of file SeedGeneratorForCRack.cc.

References alongMomentum, builderName, lat::endl(), geometry, edm::EventSetup::get(), CosmicHitPairGenerator::hitPairs(), HitPairs, CosmicLayerPairs::init(), LogDebug, magfield, oppositeToMomentum, edm::ESHandle< T >::product(), region, OrderedHitPairs::size(), thePairGenerator, thePropagatorAl, thePropagatorOp, theUpdator, tracker, and TTTRHBuilder.

Referenced by CRackSeedGenerator::produce().

00016 {
00017   iSetup.get<IdealMagneticFieldRecord>().get(magfield);
00018   iSetup.get<TrackerDigiGeometryRecord>().get(tracker);
00019   thePropagatorAl=    new PropagatorWithMaterial(alongMomentum,0.1057,&(*magfield) );
00020   thePropagatorOp=    new PropagatorWithMaterial(oppositeToMomentum,0.1057,&(*magfield) );
00021   theUpdator=         new KFUpdator();
00022   
00023   // get the transient builder
00024 
00025   edm::ESHandle<TransientTrackingRecHitBuilder> theBuilder;
00026 
00027   iSetup.get<TransientRecHitRecord>().get(builderName,theBuilder);
00028   TTTRHBuilder = theBuilder.product();
00029   CosmicLayerPairs cosmiclayers(geometry);
00030   cosmiclayers.init(collstereo,collrphi,collmatched,iSetup);
00031   thePairGenerator=new CosmicHitPairGenerator(cosmiclayers,iSetup);
00032   HitPairs.clear();
00033   thePairGenerator->hitPairs(region,HitPairs,iSetup);
00034   LogDebug("CosmicSeedFinder") <<"Initialized with " << HitPairs.size() << " hit pairs" << std::endl;
00035 }

void SeedGeneratorForCRack::run ( TrajectorySeedCollection output,
const edm::EventSetup c 
)

Definition at line 56 of file SeedGeneratorForCRack.cc.

References region, seeds(), thePairGenerator, thePropagatorAl, thePropagatorOp, and theUpdator.

Referenced by CRackSeedGenerator::produce().

00056                                                                                            {
00057   seeds(output,iSetup,region);
00058   delete thePairGenerator;
00059   delete thePropagatorAl;
00060   delete thePropagatorOp;
00061   delete theUpdator; 
00062 }

void SeedGeneratorForCRack::seeds ( TrajectorySeedCollection output,
const edm::EventSetup c,
const TrackingRegion region 
)

Definition at line 64 of file SeedGeneratorForCRack.cc.

References alongMomentum, TransientTrackingRecHitBuilder::build(), clone(), HitPairs, i, SurfaceOrientation::inner, TrajectoryStateOnSurface::isValid(), LogDebug, magfield, multipleScatteringFactor, oppositeToMomentum, SurfaceOrientation::outer, TrajectoryStateTransform::persistentState(), PropagatorWithMaterial::propagate(), edm::OwnVector< T, P >::push_back(), TrajectoryStateOnSurface::rescaleError(), seedMomentum, OrderedHitPairs::size(), thePropagatorOp, theUpdator, tracker, transformer, TTTRHBuilder, Vector3DBase< T, FrameTag >::unit(), KFUpdator::update(), and PV3DBase< T, PVType, FrameType >::y().

Referenced by run().

00066                                                                  {
00067   for(uint is=0;is<HitPairs.size();is++){
00068 
00069     GlobalPoint inner = tracker->idToDet((*(HitPairs[is].inner())).geographicalId())->surface().toGlobal((*(HitPairs[is].inner())).localPosition());
00070     GlobalPoint outer = tracker->idToDet((*(HitPairs[is].outer())).geographicalId())->surface().toGlobal((*(HitPairs[is].outer())).localPosition());
00071     
00072     LogDebug("CosmicSeedFinder") <<"inner point of the seed "<<inner <<" outer point of the seed "<<outer; 
00073     TransientTrackingRecHit::ConstRecHitPointer inrhit=TTTRHBuilder->build(HitPairs[is].inner());
00074     TransientTrackingRecHit::ConstRecHitPointer outrhit = TTTRHBuilder->build((HitPairs[is].outer()));
00075 
00076     edm::OwnVector<TrackingRecHit> hits;
00077     hits.push_back((*(HitPairs[is].outer())).clone());
00078 
00079     for (int i=0;i<2;i++){
00080       //FIRST STATE IS CALCULATED CONSIDERING THAT THE CHARGE CAN BE POSITIVE OR NEGATIVE
00081       int predsign=(2*i)-1;
00082       if((outer.y()-inner.y())>0){
00083         GlobalVector momentum = GlobalVector(inner-outer);
00084         momentum = momentum.unit()*seedMomentum;
00085         GlobalTrajectoryParameters Gtp(inner,
00086                                        momentum,
00087                                        predsign, 
00088                                        &(*magfield));
00089         AlgebraicSymMatrix errMatrix = AlgebraicSymMatrix(5,1);
00090         TSOS innerState = TSOS(Gtp, CurvilinearTrajectoryError(errMatrix), tracker->idToDet(((const TrackingRecHit *)HitPairs[is].inner())->geographicalId())->surface());
00091         const TSOS innerUpdated = theUpdator->update(innerState, *inrhit);
00092         //Cosmic Seed update inner...
00093         LogDebug("CosmicSeedFinder") << " FirstTSOS " << innerUpdated;
00094         
00095         //First propagation
00096         const TSOS outerState =
00097           thePropagatorOp->propagate(innerUpdated,
00098                                      tracker->idToDet((*(HitPairs[is].outer())).geographicalId())->surface());
00099         if ( outerState.isValid()) {
00100           LogDebug("CosmicSeedFinder") <<"outerState "<<outerState;
00101           TSOS outerUpdated= theUpdator->update( outerState,*outrhit);
00102           //fudge factor for multiple scattering
00103           outerUpdated.rescaleError( multipleScatteringFactor);
00104           if ( outerUpdated.isValid()) {
00105             LogDebug("CosmicSeedFinder") <<"outerUpdated "<<outerUpdated;
00106             
00107             PTrajectoryStateOnDet *PTraj=  
00108               transformer.persistentState(outerUpdated, (*(HitPairs[is].outer())).geographicalId().rawId());
00109             output.push_back(TrajectorySeed(*PTraj,hits,alongMomentum));
00110             delete PTraj;
00111             
00112           }else      edm::LogWarning("CosmicSeedFinder") << " SeedForCosmics first update failed ";
00113         }else      edm::LogWarning("CosmicSeedFinder") << " SeedForCosmics first propagation failed ";
00114       
00115       
00116       }
00117       else{
00118         GlobalVector momentum= GlobalVector(outer-inner);
00119         momentum=momentum.unit()*seedMomentum;
00120         GlobalTrajectoryParameters Gtp(inner,
00121                                        momentum,
00122                                        predsign, 
00123                                        &(*magfield));
00124         AlgebraicSymMatrix errMatrix = AlgebraicSymMatrix(5,1);
00125         TSOS innerState = TSOS(Gtp, CurvilinearTrajectoryError(errMatrix), tracker->idToDet(((const TrackingRecHit *)HitPairs[is].inner())->geographicalId())->surface());
00126         const TSOS innerUpdated = theUpdator->update(innerState, *inrhit);
00127         LogDebug("CosmicSeedFinder") << " FirstTSOS "<< innerState;
00128         
00129         //First propagation
00130         const TSOS outerState =
00131           thePropagatorOp->propagate(innerUpdated,
00132                                      tracker->idToDet((*(HitPairs[is].outer())).geographicalId())->surface());
00133         if ( outerState.isValid()) {
00134           
00135           LogDebug("CosmicSeedFinder") <<"outerState "<<outerState;
00136           TSOS outerUpdated = theUpdator->update( outerState,*outrhit);
00137           //fudge factor for multiple scattering
00138           outerUpdated.rescaleError( multipleScatteringFactor);
00139           if ( outerUpdated.isValid()) {
00140           LogDebug("CosmicSeedFinder") <<"outerUpdated "<<outerUpdated;
00141           PTrajectoryStateOnDet *PTraj=  
00142             transformer.persistentState(outerUpdated,(*(HitPairs[is].outer())).geographicalId().rawId());
00143           output.push_back(TrajectorySeed(*PTraj,hits,oppositeToMomentum));
00144           delete PTraj;
00145         
00146           }else      edm::LogWarning("CosmicSeedFinder") << " SeedForCosmics first update failed ";
00147         }else      edm::LogWarning("CosmicSeedFinder") << " SeedForCosmics first propagation failed ";
00148       }
00149     }
00150   }
00151 }


Member Data Documentation

std::string SeedGeneratorForCRack::builderName [private]

Definition at line 49 of file SeedGeneratorForCRack.h.

Referenced by init(), and SeedGeneratorForCRack().

edm::ParameterSet SeedGeneratorForCRack::conf_ [private]

Definition at line 39 of file SeedGeneratorForCRack.h.

Referenced by SeedGeneratorForCRack().

std::string SeedGeneratorForCRack::geometry [private]

Definition at line 50 of file SeedGeneratorForCRack.h.

Referenced by init(), and SeedGeneratorForCRack().

OrderedHitPairs SeedGeneratorForCRack::HitPairs [private]

Definition at line 52 of file SeedGeneratorForCRack.h.

Referenced by init(), and seeds().

edm::ESHandle<MagneticField> SeedGeneratorForCRack::magfield [private]

Definition at line 42 of file SeedGeneratorForCRack.h.

Referenced by init(), and seeds().

float SeedGeneratorForCRack::multipleScatteringFactor [private]

Definition at line 53 of file SeedGeneratorForCRack.h.

Referenced by SeedGeneratorForCRack(), and seeds().

GlobalTrackingRegion SeedGeneratorForCRack::region [private]

Definition at line 40 of file SeedGeneratorForCRack.h.

Referenced by init(), run(), and SeedGeneratorForCRack().

double SeedGeneratorForCRack::seedMomentum [private]

Definition at line 54 of file SeedGeneratorForCRack.h.

Referenced by SeedGeneratorForCRack(), and seeds().

float SeedGeneratorForCRack::seedpt [private]

Definition at line 51 of file SeedGeneratorForCRack.h.

Referenced by SeedGeneratorForCRack().

CosmicHitPairGenerator* SeedGeneratorForCRack::thePairGenerator [private]

Definition at line 41 of file SeedGeneratorForCRack.h.

Referenced by init(), and run().

PropagatorWithMaterial* SeedGeneratorForCRack::thePropagatorAl [private]

Definition at line 46 of file SeedGeneratorForCRack.h.

Referenced by init(), and run().

PropagatorWithMaterial* SeedGeneratorForCRack::thePropagatorOp [private]

Definition at line 47 of file SeedGeneratorForCRack.h.

Referenced by init(), run(), and seeds().

KFUpdator* SeedGeneratorForCRack::theUpdator [private]

Definition at line 45 of file SeedGeneratorForCRack.h.

Referenced by init(), run(), and seeds().

edm::ESHandle<TrackerGeometry> SeedGeneratorForCRack::tracker [private]

Definition at line 43 of file SeedGeneratorForCRack.h.

Referenced by init(), and seeds().

TrajectoryStateTransform SeedGeneratorForCRack::transformer [private]

Definition at line 44 of file SeedGeneratorForCRack.h.

Referenced by seeds().

const TransientTrackingRecHitBuilder* SeedGeneratorForCRack::TTTRHBuilder [private]

Definition at line 48 of file SeedGeneratorForCRack.h.

Referenced by init(), and seeds().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:31:16 2009 for CMSSW by  doxygen 1.5.4