Back to home page

Project CMSSW displayed by LXR

 
 

    


Warning, /DataFormats/TrackReco/src/classes_def.xml is written in an unsupported language. File is not indexed.

0001 <lcgdict>
0002 
0003   <class name="reco::TrackBase::AlgoMask"/>
0004   <class name="reco::HitPattern" ClassVersion="13">
0005       <version ClassVersion="13" checksum="2211596316"/>
0006       <version ClassVersion="12" checksum="3922863495"/>
0007       <version ClassVersion="11" checksum="1621684703"/>
0008   </class>
0009   <class name="reco::TrackResiduals" ClassVersion="11">
0010    <version ClassVersion="11" checksum="639174599"/>
0011    <version ClassVersion="10" checksum="2022291691"/>
0012   </class>
0013   <class name="reco::TrackBase" ClassVersion="20">
0014    <version ClassVersion="20" checksum="1589774059"/>
0015    <version ClassVersion="19" checksum="4090229239"/>
0016    <version ClassVersion="18" checksum="1935215297"/>
0017    <version ClassVersion="17" checksum="1774167599"/>
0018    <version ClassVersion="16" checksum="3673246687"/>
0019    <version ClassVersion="15" checksum="1802760569"/>
0020    <version ClassVersion="14" checksum="3929365050"/>
0021    <version ClassVersion="13" checksum="1244921154"/>
0022    <version ClassVersion="12" checksum="2704717983"/>
0023     <field name="vertex_" iotype="ROOT::Math::PositionVector3D<ROOT::Math::Cartesian3D<Double32_t>,ROOT::Math::DefaultCoordinateSystemTag>" /> 
0024     <field name="momentum_" iotype="ROOT::Math::DisplacementVector3D<ROOT::Math::Cartesian3D<Double32_t>,ROOT::Math::DefaultCoordinateSystemTag>" /> 
0025 
0026    <version ClassVersion="10" checksum="3019978065"/>
0027     <field name="vertex_" iotype="ROOT::Math::PositionVector3D<ROOT::Math::Cartesian3D<Double32_t>,ROOT::Math::DefaultCoordinateSystemTag>" /> 
0028     <field name="momentum_" iotype="ROOT::Math::DisplacementVector3D<ROOT::Math::Cartesian3D<Double32_t>,ROOT::Math::DefaultCoordinateSystemTag>" /> 
0029   </class>
0030  <ioread
0031     sourceClass="reco::HitPattern"
0032       source="uint16_t hitPattern[50]; uint8_t hitCount; uint8_t beginTrackHits; uint8_t endTrackHits;uint8_t beginInner; uint8_t endInner; uint8_t beginOuter; uint8_t endOuter;"
0033       targetClass="reco::HitPattern"
0034       target=""
0035       version="[12]"
0036       >
0037    <![CDATA[
0038             (void) reco::HitPattern::fillNewHitPatternWithOldHitPattern_v12(onfile.hitPattern, *onfile.hitCount,
0039                     *onfile.beginTrackHits, *onfile.endTrackHits,
0040                     *onfile.beginInner,  *onfile.endInner,
0041                     *onfile.beginOuter, *onfile.endOuter,
0042                     newObj);
0043       ]]>
0044  </ioread>
0045  <ioread
0046       sourceClass="reco::HitPattern"
0047       source="uint32_t hitPattern_[25]"
0048       targetClass="reco::HitPattern"
0049       target="hitPattern"
0050       version="[-11]"
0051       include="utility,DataFormats/MuonDetId/interface/DTLayerId.h,DataFormats/MuonDetId/interface/CSCDetId.h,DataFormats/MuonDetId/interface/RPCDetId.h"
0052       >
0053       <![CDATA[
0054             using namespace reco;
0055 
0056             const unsigned short HitSize = 11;
0057             const unsigned short PatternSize = 25;
0058             const int MaxHits = (PatternSize * sizeof(uint32_t) * 8) / HitSize;
0059 
0060             auto getHitFromOldHitPattern = [](const uint32_t hitPattern[], const int position) {
0061                 uint16_t bitEndOffset = (position + 1) * HitSize;
0062                 uint8_t secondWord   = (bitEndOffset >> 5);
0063                 uint8_t secondWordBits = bitEndOffset & (32 - 1); // that is, bitEndOffset % 32
0064                 if (secondWordBits >= HitSize) {
0065                     // full block is in this word
0066                     uint8_t lowBitsToTrash = secondWordBits - HitSize;
0067                     return (hitPattern[secondWord] >> lowBitsToTrash) & ((1 << HitSize) - 1);
0068                 } else {
0069                     uint8_t  firstWordBits   = HitSize - secondWordBits;
0070                     uint32_t firstWordBlock  = hitPattern[secondWord - 1] >> (32 - firstWordBits);
0071                     uint32_t secondWordBlock = hitPattern[secondWord] & ((1 << secondWordBits) - 1);
0072                     return firstWordBlock + (secondWordBlock << firstWordBits);
0073                 }
0074             };
0075 
0076             auto appendOldHitPattern = [&](const uint32_t pattern) {
0077                 // value used for those parameters needed by XXXDetId constructors
0078                 // but that we do not care about because they are not stored in the
0079                 // HitPattern.
0080                 const uint8_t DONT_CARE = 1;
0081 
0082                 const static unsigned short HitTypeMask = 0x3;
0083                 const static unsigned short HitTypeOffset = 0;
0084                 
0085                 const static unsigned short SideMask = 0x1;
0086                 const static unsigned short SideOffset = 2;
0087                 
0088                 const static unsigned short LayerMask = 0xF;
0089                 const static unsigned short LayerOffset = 3;
0090 
0091                 const static unsigned short SubstrMask = 0x7;
0092                 const static unsigned short SubstrOffset = 7;
0093 
0094                 const static unsigned short SubDetectorMask = 0x1;
0095                 const static unsigned short SubDetectorOffset = 10;
0096 
0097                 const uint32_t VALID_CONST = (uint32_t) TrackingRecHit::valid;
0098                 const uint32_t MISSING_CONST = (uint32_t) TrackingRecHit::missing;
0099                 const uint32_t INACTIVE_CONST = (uint32_t) TrackingRecHit::inactive;
0100                 const uint32_t BAD_CONST = (uint32_t) TrackingRecHit::bad;
0101 
0102                 uint32_t rawHitType = (pattern >> HitTypeOffset) & HitTypeMask;
0103                 uint32_t layer = (pattern >> LayerOffset) & LayerMask;
0104                 uint32_t subdet = (pattern >> SubstrOffset) & SubstrMask;
0105                 uint32_t detector = (pattern >> SubDetectorOffset) & SubDetectorMask;
0106                 uint32_t stereo = (pattern >> SideOffset) & SideMask;
0107 
0108                 // DetId::Tracker = 1 and DetId::Muon = 2 but
0109                 // in HitPattern Tracker = 1 and Muon = 0 so a conversion is needed:
0110                 if (detector == 0) {
0111                     detector = DetId::Muon;
0112                 }
0113 
0114                 TrackingRecHit::Type hitType = TrackingRecHit::valid;
0115                 switch (rawHitType) {
0116                 case VALID_CONST:
0117                     hitType = TrackingRecHit::valid;
0118                     break;
0119                 case MISSING_CONST:
0120                     hitType = TrackingRecHit::missing;
0121                     break;
0122                 case INACTIVE_CONST:
0123                     hitType = TrackingRecHit::inactive;
0124                     break;
0125                 case BAD_CONST:
0126                     hitType = TrackingRecHit::bad;
0127                     break;
0128                 }
0129 
0130                 DetId detId;
0131                 if (detector == DetId::Tracker) {
0132                     return newObj->appendTrackerHit(subdet, layer, stereo, hitType);
0133                 } else if (detector == DetId::Muon) {
0134                     switch (subdet) {
0135                     case MuonSubdetId::DT: {
0136                         uint32_t station = 1 + ((layer >> 2) & 0x3);
0137                         uint32_t superLayer = (layer & 0x3);
0138                         detId = DTLayerId(DONT_CARE, station, DONT_CARE, superLayer, DONT_CARE);
0139                     }
0140                     break;
0141                     case MuonSubdetId::CSC: {
0142                         uint32_t station = 1 + ((layer >> 2) & 0x3);
0143                         uint32_t ring = 1 + (layer & 0x3);
0144                         detId = CSCDetId(DONT_CARE, station, ring, DONT_CARE, DONT_CARE);
0145                     }
0146                     break;
0147                     case MuonSubdetId::RPC: {
0148                         uint32_t station =  1 + ((layer >> 2) & 0x3);
0149                         uint32_t region  = layer & 0x1;
0150                         uint32_t layer_muon = 1 + ((station <= 2) ? ((layer >> 1) & 0x1) : 0);
0151                         detId = RPCDetId(region, DONT_CARE, station, DONT_CARE, layer_muon, DONT_CARE, DONT_CARE);
0152                     }
0153                     break;
0154                     }
0155                     return newObj->appendMuonHit(detId, hitType);
0156                 }
0157                 return false;
0158             };
0159 
0160             auto fillNewHitPatternWithOldHitPattern = [&](const uint32_t oldHitPattern[]) {
0161                 newObj->clear();
0162                 for (int i = 0; i < MaxHits; i++) {
0163                     uint32_t pattern = getHitFromOldHitPattern(oldHitPattern, i);
0164                     if (pattern == 0) {
0165                         break;
0166                     }
0167                     if(!appendOldHitPattern(pattern)) {
0168                         return false;
0169                     }
0170                 }
0171                 return true;
0172             };
0173 
0174             fillNewHitPatternWithOldHitPattern(onfile.hitPattern_);
0175       ]]>
0176  </ioread>
0177 
0178 <!-- TrackBase to TrackBase conversion rule. Reads and merges the tree into one. --> 
0179 <ioread
0180       sourceClass="reco::TrackBase"
0181       source="reco::HitPattern hitPattern_; reco::HitPattern trackerExpectedHitsInner_; reco::HitPattern trackerExpectedHitsOuter_"
0182       targetClass="reco::TrackBase"
0183       target="hitPattern_" 
0184       version="[-12]"
0185       include="DataFormats/TrackReco/interface/HitPattern.h">
0186       <![CDATA[
0187             using namespace reco;
0188 
0189             auto appendNewHitPattern = [&](const uint16_t pattern, const HitPattern::HitCategory category) {
0190                 // value used for those parameters needed by XXXDetId constructors
0191                 // but that we do not care about.
0192                 const uint8_t DONT_CARE = 1;
0193 
0194                 const uint16_t VALID_CONST = (uint16_t) TrackingRecHit::valid;
0195                 const uint16_t MISSING_CONST = (uint16_t) TrackingRecHit::missing;
0196                 const uint16_t INACTIVE_CONST = (uint16_t) TrackingRecHit::inactive;
0197                 const uint16_t BAD_CONST = (uint16_t) TrackingRecHit::bad;
0198 
0199                 // 3 bits for hit type
0200                 const static unsigned short HitTypeMask = 0x3;
0201                 const static unsigned short HitTypeOffset = 0;
0202 
0203                 // 1 bit for mono/stereo
0204                 const static unsigned short SideMask = 0x1;
0205                 const static unsigned short SideOffset = 2;
0206 
0207                 // 4 bits to identify the layer/disk/wheel within the substructure
0208                 const static unsigned short LayerMask = 0xF;
0209                 const static unsigned short LayerOffset = 3;
0210 
0211                 // 3 bits to identify the tracker/muon detector substructure
0212                 const static unsigned short SubstrMask = 0x7;
0213                 const static unsigned short SubstrOffset = 7;
0214 
0215                 // 1 bit to distinguish tracker and muon subsystems
0216                 const static unsigned short SubDetectorMask = 0x1;
0217                 const static unsigned short SubDetectorOffset = 10;
0218 
0219                 uint16_t rawHitType = (pattern >> HitTypeOffset) & HitTypeMask;
0220                 uint16_t layer = (pattern >> LayerOffset) & LayerMask;
0221                 uint16_t subdet = (pattern >> SubstrOffset) & SubstrMask;
0222                 uint16_t detector = ((pattern >> SubDetectorOffset) & SubDetectorMask);
0223                 uint16_t stereo = (pattern >> SideOffset) & SideMask;
0224                 
0225                 // DetId::Tracker = 1 and DetId::Muon = 2 but
0226                 // in HitPattern Tracker = 1 and Muon = 0 so a conversion is needed:
0227                 if (detector == 0) {
0228                     detector = DetId::Muon;
0229                 }
0230 
0231                 TrackingRecHit::Type hitType = TrackingRecHit::valid;
0232                 switch (rawHitType) {
0233                 case VALID_CONST:
0234                     hitType = TrackingRecHit::valid;
0235                     break;
0236                 case MISSING_CONST:
0237                     hitType = TrackingRecHit::missing;
0238                     break;
0239                 case INACTIVE_CONST:
0240                     hitType = TrackingRecHit::inactive;
0241                     break;
0242                 case BAD_CONST:
0243                     hitType = TrackingRecHit::bad;
0244                     break;
0245                 }
0246 
0247                 if (category == HitPattern::MISSING_INNER_HITS) {
0248                     hitType = TrackingRecHit::missing_inner;
0249                 } else if (category == HitPattern::MISSING_OUTER_HITS) {
0250                     hitType = TrackingRecHit::missing_outer;
0251                 }
0252 
0253                 DetId detId;
0254                 if (detector == DetId::Tracker) {
0255                     return newObj->appendTrackerHitPattern(subdet, layer, stereo, hitType);
0256                 } else if (detector == DetId::Muon) {
0257                     switch (subdet) {
0258                     case MuonSubdetId::DT: {
0259                         uint16_t station = 1 + (layer >> 2);
0260                         uint16_t superLayer = (layer & 0x3);
0261                         detId = DTLayerId(DONT_CARE, station, DONT_CARE, superLayer, DONT_CARE);
0262                     }
0263                     break;
0264                     case MuonSubdetId::CSC: {
0265                         uint16_t station = 1 + (layer >> 2);
0266                         uint16_t ring = 1 + (layer & 0x3);
0267                         detId = CSCDetId(DONT_CARE, station, ring, DONT_CARE, DONT_CARE);
0268                     }
0269                     break;
0270                     case MuonSubdetId::RPC: {
0271                         uint16_t station = 1 + ((layer >> 2) & 0x3);
0272                         uint16_t region  = layer & 0x1;
0273                         uint16_t layer_muon = 1 + ((station <= 2) ? ((layer >> 1) & 0x1) : 0);
0274                         detId = RPCDetId(region, DONT_CARE, station, DONT_CARE, layer_muon, DONT_CARE, DONT_CARE);
0275                     }
0276                     break;
0277                     }
0278                     return newObj->appendMuonHitPattern(detId, hitType);
0279                 }
0280                 return false;
0281             };
0282 
0283             auto fillNewHitPatternFromNewHitPattern = [&](const HitPattern hitPattern, const HitPattern::HitCategory category) {
0284                 uint8_t hitCount = hitPattern.numberOfAllHits(HitPattern::TRACK_HITS);
0285                 for (int i = 0; i < hitCount; i++) {
0286                     uint16_t pattern = hitPattern.getHitPattern(HitPattern::TRACK_HITS, i);
0287                     if(!appendNewHitPattern(pattern, category)) {
0288                         return false;
0289                     }
0290                 }
0291                 return true;
0292             };
0293 
0294             auto mergeNewHitPatternsIntoOneNewHitPattern = [&](void) {
0295                 newObj->resetHitPattern();
0296                 fillNewHitPatternFromNewHitPattern(onfile.hitPattern_, HitPattern::TRACK_HITS);
0297                 fillNewHitPatternFromNewHitPattern(onfile.trackerExpectedHitsInner_, HitPattern::MISSING_INNER_HITS);
0298                 fillNewHitPatternFromNewHitPattern(onfile.trackerExpectedHitsOuter_, HitPattern::MISSING_OUTER_HITS);
0299             };
0300 
0301             mergeNewHitPatternsIntoOneNewHitPattern();
0302       ]]>
0303  </ioread>
0304 
0305   <class name="reco::TrackExtraBase" ClassVersion="12">
0306    <version ClassVersion="10" checksum="3548207838"/>
0307    <version ClassVersion="11" checksum="3450798337"/>
0308    <version ClassVersion="12" checksum="1846152141"/>
0309   </class>
0310   <ioread sourceClass = "reco::TrackExtraBase" version="[-10]" targetClass="reco::TrackExtraBase" source ="TrackingRecHitRefVector recHits_" target="m_hitCollection">
0311     <![CDATA[m_hitCollection=onfile.recHits_.refVector().refCore();]]>
0312   </ioread>
0313   <ioread sourceClass = "reco::TrackExtraBase" version="[-10]" targetClass="reco::TrackExtraBase" source ="TrackingRecHitRefVector recHits_" target="m_firstHit">
0314     <![CDATA[m_firstHit = onfile.recHits_.refVector().keys()[0];]]>
0315   </ioread>
0316   <ioread sourceClass = "reco::TrackExtraBase" version="[-10]" targetClass="reco::TrackExtraBase" source ="TrackingRecHitRefVector recHits_" target="m_nHits">
0317     <![CDATA[m_nHits=onfile.recHits_.size();]]>
0318   </ioread>
0319 
0320 
0321   <class name="reco::TrackExtra" ClassVersion="14">
0322    <version ClassVersion="14" checksum="388593738"/>
0323    <version ClassVersion="13" checksum="2526033150"/>
0324    <version ClassVersion="12" checksum="106004853"/>
0325    <version ClassVersion="11" checksum="2586227274"/>
0326    <version ClassVersion="10" checksum="1613098482"/>
0327     <field name="outerPosition_" iotype="ROOT::Math::PositionVector3D<ROOT::Math::Cartesian3D<Double32_t>,ROOT::Math::DefaultCoordinateSystemTag>" /> 
0328     <field name="outerMomentum_" iotype="ROOT::Math::DisplacementVector3D<ROOT::Math::Cartesian3D<Double32_t>,ROOT::Math::DefaultCoordinateSystemTag>" /> 
0329     <field name="innerPosition_" iotype="ROOT::Math::PositionVector3D<ROOT::Math::Cartesian3D<Double32_t>,ROOT::Math::DefaultCoordinateSystemTag>" /> 
0330     <field name="innerMomentum_" iotype="ROOT::Math::DisplacementVector3D<ROOT::Math::Cartesian3D<Double32_t>,ROOT::Math::DefaultCoordinateSystemTag>" /> 
0331   </class>
0332   <class name="std::vector<reco::TrackExtra>"/>
0333   <class name="edm::Wrapper<std::vector<reco::TrackExtra> >"/>
0334   <class name="edm::RefProd<std::vector<reco::TrackExtra> >"/>
0335   <class name="edm::refhelper::FindUsingAdvance<std::vector<reco::TrackExtra>,reco::TrackExtra>"/>
0336   <class name="edm::Ref<std::vector<reco::TrackExtra>,reco::TrackExtra,edm::refhelper::FindUsingAdvance<std::vector<reco::TrackExtra>,reco::TrackExtra> >"/>
0337   <class name="edm::RefVector<std::vector<reco::TrackExtra>,reco::TrackExtra,edm::refhelper::FindUsingAdvance<std::vector<reco::TrackExtra>,reco::TrackExtra> >"/>
0338 
0339   <class name="reco::Track" ClassVersion="20">
0340    <version ClassVersion="20" checksum="2864582648"/>
0341    <version ClassVersion="19" checksum="362503460"/>
0342    <version ClassVersion="18" checksum="3235158110"/>
0343    <version ClassVersion="17" checksum="3387867292"/>
0344    <version ClassVersion="16" checksum="697987788"/>
0345    <version ClassVersion="15" checksum="3694119510"/>
0346    <version ClassVersion="14" checksum="4228121071"/>
0347    <version ClassVersion="13" checksum="36410295"/>
0348    <version ClassVersion="12" checksum="1190637787"/>
0349    <version ClassVersion="11" checksum="1190637787"/>
0350    <version ClassVersion="10" checksum="1190637787"/>
0351   </class>
0352   <class name="std::vector<reco::Track>"/>
0353   <class name="edm::Wrapper<std::vector<reco::Track> >"/>
0354   <class name="edm::RefProd<std::vector<reco::Track> >"/>
0355   <class name="edm::refhelper::FindUsingAdvance<std::vector<reco::Track>,reco::Track>"/>
0356   <class name="edm::Ref<std::vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<std::vector<reco::Track>,reco::Track> >"/>
0357   <class name="edm::RefVector<std::vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<std::vector<reco::Track>,reco::Track> >"/>
0358   <class name="std::vector<edm::RefVector<std::vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<std::vector<reco::Track>,reco::Track> > >"/>
0359   <class name="edm::Wrapper<edm::RefVector<std::vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<std::vector<reco::Track>,reco::Track> > >"/>
0360   <class name="std::vector<edm::Ref<std::vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<std::vector<reco::Track>,reco::Track> > >"/>
0361   <class name="edm::Ptr<reco::Track>" />
0362   <class name="std::vector<edm::Ptr<reco::Track> >" />
0363   <class name="edm::Association<reco::TrackCollection>"/>
0364   <class name="edm::Wrapper<edm::Association<reco::TrackCollection> >"/>
0365 
0366   <!-- <class pattern="edm::Wrapper<edm::AssociationMap<*>" /> -->
0367   <class name="edm::Wrapper<edm::AssociationMap<edm::OneToMany<vector<reco::Track>,vector<TrajectorySeed>,unsigned int> > >" />
0368   <class name="edm::Wrapper<edm::AssociationMap<edm::OneToOne<vector<reco::Track>,vector<reco::Track>,unsigned int> > >" />
0369   <class name="edm::Wrapper<edm::AssociationMap<edm::OneToValue<vector<reco::Track>,bool,unsigned int> > >" />
0370   <class name="edm::Wrapper<edm::AssociationMap<edm::OneToValue<vector<reco::Track>,double,unsigned int> > >" />
0371   <class name="edm::Wrapper<edm::AssociationMap<edm::OneToValue<vector<reco::Track>,float,unsigned int> > >" />
0372   <class name="edm::Wrapper<edm::AssociationMap<edm::OneToValue<vector<reco::Track>,int,unsigned int> > >" />
0373 
0374   <class name="edm::helpers::Key<edm::RefProd <std::vector <reco::Track> > >" />
0375 
0376   <class name="edm::AssociationMap<edm::OneToValue<std::vector<reco::Track>,double,unsigned int> >">
0377     <field name="transientMap_" transient="true" /> 
0378   </class>
0379 
0380   <class name="edm::AssociationMap<edm::OneToValue<std::vector<reco::Track>,bool,unsigned int> >">
0381     <field name="transientMap_" transient="true" />
0382   </class>
0383 
0384   <class name="edm::AssociationMap<edm::OneToValue<std::vector<reco::Track>,int,unsigned int> >">
0385     <field name="transientMap_" transient="true" />
0386   </class>
0387 
0388   <class name="edm::AssociationMap<edm::OneToValue<std::vector<reco::Track>,float,unsigned int> >">
0389     <field name="transientMap_" transient="true" />
0390   </class>
0391 
0392   <class name="edm::helpers::KeyVal<edm::Ref<std::vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<std::vector<reco::Track>,reco::Track> >,edm::Ref<std::vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<std::vector<reco::Track>,reco::Track> > >" />
0393  
0394   <class name="edm::helpers::KeyVal<edm::RefProd<std::vector<reco::Track> >,edm::RefProd<std::vector<reco::Track> > >" />
0395 
0396   <class name="edm::AssociationMap<edm::OneToOne<std::vector<reco::Track>,std::vector<reco::Track>,unsigned int> >">
0397     <field name="transientMap_" transient="true" />
0398   </class>
0399 
0400 
0401       <class name="reco::DeDxHit"  ClassVersion="12">
0402        <version ClassVersion="11" checksum="2617380234"/>
0403        <version ClassVersion="12" checksum="3747851168"/>       
0404       </class>
0405       <class name="reco::DeDxHitCollection" />
0406 
0407   <!-- <class pattern="edm::AssociationVector<*>">
0408     <field name="transientVector_" transient="true"/>
0409   </class> -->
0410   <class name="edm::AssociationVector<edm::RefProd<std::vector<reco::Track> >,std::vector<bool>,edm::Ref<std::vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<std::vector<reco::Track>,reco::Track> >,unsigned int,edm::helper::AssociationIdenticalKeyReference>" >
0411     <field name="transientVector_" transient="true"/>
0412   </class>
0413   <class name="edm::AssociationVector<edm::RefProd<std::vector<reco::Track> >,std::vector<double>,edm::Ref<std::vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<std::vector<reco::Track>,reco::Track> >,unsigned int,edm::helper::AssociationIdenticalKeyReference>" >
0414     <field name="transientVector_" transient="true"/>
0415   </class>
0416   <class name="edm::AssociationVector<edm::RefProd<std::vector<reco::Track> >,std::vector<float>,edm::Ref<std::vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<std::vector<reco::Track>,reco::Track> >,unsigned int,edm::helper::AssociationIdenticalKeyReference>" >
0417     <field name="transientVector_" transient="true"/>
0418   </class>
0419   <class name="edm::AssociationVector<edm::RefProd<std::vector<reco::Track> >,std::vector<int>,edm::Ref<std::vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<std::vector<reco::Track>,reco::Track> >,unsigned int,edm::helper::AssociationIdenticalKeyReference>" >
0420     <field name="transientVector_" transient="true"/>
0421   </class>
0422   <class name="edm::AssociationVector<edm::RefProd<std::vector<reco::Track> >,std::vector<std::vector<reco::DeDxHit> >,edm::Ref<std::vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<std::vector<reco::Track>,reco::Track> >,unsigned int,edm::helper::AssociationIdenticalKeyReference>" >
0423     <field name="transientVector_" transient="true"/>
0424   </class>
0425      <!--   <class name="reco::DeDxDataCollection"/> -->
0426      <class name="reco::DeDxData" ClassVersion="10">
0427       <version ClassVersion="10" checksum="204721063"/>
0428      </class>
0429      <class name="reco::DeDxDataCollection"/>
0430      <class name="reco::DeDxDataValueMap"/>
0431       
0432      <class name="edm::Wrapper<reco::TrackDeDxHitsCollection>"/>
0433      <class name="edm::Wrapper<reco::DeDxDataValueMap>"/>
0434      <class name="edm::Wrapper<reco::DeDxDataCollection>"/>
0435 
0436 
0437 
0438      <!-- RefToBase<reco::Track> -->
0439      <class name="edm::RefToBase<reco::Track>"/>
0440      <class name="edm::reftobase::IndirectHolder<reco::Track>"/>
0441      <class name="edm::reftobase::BaseHolder<reco::Track>"/>
0442      <class name="edm::reftobase::RefHolder<reco::TrackRef>"/>
0443      <class name="edm::reftobase::RefHolder<edm::Ptr<reco::Track> >"/>
0444      <class name="edm::reftobase::Holder<reco::Track, reco::TrackRef>"/>
0445 
0446      <class name="std::vector<edm::RefToBase<reco::Track> >" />
0447 
0448      <class name="std::pair<edm::RefToBase<reco::Track>,double>" />
0449      <class name="std::vector<std::pair<edm::RefToBase<reco::Track>,double> >" />
0450 
0451      <class name="edm::reftobase::BaseVectorHolder<reco::Track>" />
0452      <class name="reco::TrackBaseRefVector"/>
0453      <class name="edm::Wrapper<reco::TrackBaseRefVector>"/>
0454 
0455      <!-- RefToBaseProd<reco::Track> -->
0456      <class name="edm::RefToBaseProd<reco::Track>" />
0457 
0458      <!-- ValueMap<reco::Track> -->
0459      <class name="edm::ValueMap<reco::TrackRefVector>" />
0460      <class name="edm::Wrapper<edm::ValueMap<reco::TrackRefVector> >" />
0461 
0462 
0463      <class name="edm::helpers::KeyVal<edm::RefProd<std::vector<reco::Track> >,edm::RefProd<std::vector<TrajectorySeed> > >"/>
0464      <class name="edm::AssociationMap<edm::OneToMany<std::vector<reco::Track>,std::vector<TrajectorySeed>,unsigned int> >">
0465        <field name="transientMap_" transient="true"/>
0466      </class>
0467 
0468      <class name="std::vector<std::pair<edm::Ref<std::vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<std::vector<reco::Track>,reco::Track> >,float> >" />
0469      <class name="std::pair<edm::Ref<std::vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<std::vector<reco::Track>,reco::Track> >,float>" />
0470 
0471 
0472      <class name="std::vector<std::pair<edm::Ref<std::vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<std::vector<reco::Track>,reco::Track> >,int> >" />
0473      <class name="std::pair<edm::Ref<std::vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<std::vector<reco::Track>,reco::Track> >,int>" />
0474 
0475 
0476      <class name="std::pair<reco::Track,reco::Track>"/>
0477      <class name="edm::Wrapper<std::pair<reco::Track,reco::Track> >"/>
0478      <class name="std::pair<TrackCandidate,std::pair<reco::Track,reco::Track> >" />
0479      <class name="edm::Wrapper<std::pair<TrackCandidate,std::pair<reco::Track,reco::Track> > >" />
0480      <class name="std::vector<std::pair<TrackCandidate,std::pair<reco::Track,reco::Track> > >"/>
0481      <class name="edm::Wrapper<std::vector<std::pair<TrackCandidate,std::pair<reco::Track,reco::Track> > > >"/>
0482 
0483      <class name="std::pair<edm::Ref<std::vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<std::vector<reco::Track>,reco::Track> >,edm::Ref<std::vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<std::vector<reco::Track>,reco::Track> > >"/>
0484      <class name="edm::Wrapper<std::pair<edm::Ref<std::vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<std::vector<reco::Track>,reco::Track> >,edm::Ref<std::vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<std::vector<reco::Track>,reco::Track> > > >"/>
0485      <class name="std::pair<TrackCandidate,std::pair<edm::Ref<std::vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<std::vector<reco::Track>,reco::Track> >,edm::Ref<std::vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<std::vector<reco::Track>,reco::Track> > > >" />
0486      <class name="edm::Wrapper<std::pair<TrackCandidate,std::pair<edm::Ref<std::vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<std::vector<reco::Track>,reco::Track> >,edm::Ref<std::vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<std::vector<reco::Track>,reco::Track> > > > >" />
0487      <class name="std::vector<std::pair<TrackCandidate,std::pair<edm::Ref<std::vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<std::vector<reco::Track>,reco::Track> >,edm::Ref<std::vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<std::vector<reco::Track>,reco::Track> > > > >"/>
0488      <class name="edm::Wrapper<std::vector<std::pair<TrackCandidate,std::pair<edm::Ref<std::vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<std::vector<reco::Track>,reco::Track> >,edm::Ref<std::vector<reco::Track>,reco::Track,edm::refhelper::FindUsingAdvance<std::vector<reco::Track>,reco::Track> > > > > >"/>
0489 
0490     <class name="edm::Association<std::vector<reco::TrackExtra>>"/>
0491     <class name="edm::Wrapper<edm::Association<std::vector<reco::TrackExtra>>>"/>
0492 
0493    <class name="reco::DeDxHitInfo::DeDxHitInfoContainer" ClassVersion="2">
0494     <version ClassVersion="2" checksum="3964047764"/>
0495    </class>
0496    <class name="reco::DeDxHitInfo::DeDxHitInfoContainerCollection"/>
0497 
0498 
0499    <class name="reco::DeDxHitInfo" ClassVersion="3">
0500     <version ClassVersion="3" checksum="2577777556"/>
0501     <version ClassVersion="2" checksum="3000986250"/>
0502    </class>
0503    <class name="reco::DeDxHitInfoCollection"/>
0504    <class name="reco::DeDxHitInfoRef"/>
0505    <class name="reco::DeDxHitInfoRefProd"/>
0506    <class name="reco::DeDxHitInfoRefVector"/>
0507    <class name="reco::DeDxHitInfoAss"/>
0508    <class name="edm::Wrapper<reco::DeDxHitInfo>"/>
0509    <class name="edm::Wrapper<reco::DeDxHitInfoCollection>"/>
0510    <class name="edm::Wrapper<reco::DeDxHitInfoAss>"/>
0511 
0512    <class name="SeedStopInfo" persistent="false"/>
0513    <class name="std::vector<SeedStopInfo>" persistent="false"/>
0514    <class name="edm::Wrapper<std::vector<SeedStopInfo> >" persistent="false"/>
0515 
0516   </lcgdict>