#include <writeESD.h>
Inheritance diagram for XANAEsdBuilder:


Public Methods | |
| XANAEsdBuilder () | |
| ~XANAEsdBuilder () | |
Public Attributes | |
| SimpleConfigurable< bool > | writeTree_ |
| SimpleConfigurable< bool > | memlog_ |
| SimpleConfigurable< std::string > | fileName_ |
| SimpleConfigurable< std::string > | treeName_ |
| SimpleConfigurable< int > | autosave_ |
| SimpleConfigurable< bool > | writeCaloRecHits_ |
| SimpleConfigurable< int > | compressionLevel_ |
| SimpleConfigurable< int > | bufferSize_ |
| SimpleConfigurable< int > | splitMode_ |
| SimpleConfigurable< bool > | writeTrackHits_ |
| SimpleConfigurable< bool > | writeAllTrackHits_ |
| SimpleConfigurable< bool > | writeEleTrackHits_ |
| SimpleConfigurable< std::string > | clusterizerName_ |
| SimpleConfigurable< std::string > | superClusterizerName_ |
| SimpleConfigurable< std::string > | endcapSuperClusterizerName_ |
| SimpleConfigurable< std::string > | hcalClusterizerName_ |
| SimpleConfigurable< std::string > | trackReconstructorName_ |
| SimpleConfigurable< std::string > | vertexReconstructorName_ |
| SimpleConfigurable< std::string > | muonReconstructorName_ |
| SimpleConfigurable< std::string > | electronReconstructorName_ |
| SimpleConfigurable< std::string > | gsfForwardFit_ |
| SimpleConfigurable< bool > | jetsFromTrueInformation_ |
| SimpleConfigurable< bool > | metsFromTrueInformation_ |
| SimpleConfigurable< std::string > | l1Menu_ |
| SimpleConfigurable< std::string > | hltMenu_ |
Protected Types | |
| typedef RecCollection< TTrack > | Collection |
Protected Methods | |
| virtual void | upDate (G3EventProxy *) |
| void | upDate (G3SetUp *) |
| void | setHeader (G3EventProxy *) |
| used for initialisation (e.g. if the tracker geometry must have been initialised before). More... | |
| void | setCaloRecHits (G3EventProxy *) |
| void | setEmClusters (G3EventProxy *) |
| void | setSuperClusters (G3EventProxy *) |
| void | setEndcapClusters (G3EventProxy *) |
| void | setHadClusters (G3EventProxy *) |
| void | setTracks (G3EventProxy *) |
| void | setVertices (G3EventProxy *) |
| void | setJets (G3EventProxy *) |
| void | setMet (G3EventProxy *) |
| void | setMuons (G3EventProxy *) |
| void | setElectrons (G3EventProxy *) |
| void | setElectronsGSF (G3EventProxy *) |
| virtual void | setMcTruth (G3EventProxy *) |
| void | setTriggerInfo (G3EventProxy *) |
| void | setAllTrackHits (G3EventProxy *) |
| void | setElectronTracks (G3EventProxy *) |
| void | setEleTrackHits (std::vector< TrajectoryMeasurement >, XANAElectronTrack *) |
| void | writeTree () |
| std::string | getAlgoName (int) |
Protected Attributes | |
| Collection * | theCollection |
| RecCollection< EgammaBasicCluster > * | clusters |
| RecCollection< EgammaSuperCluster > * | superClusters |
| RecCollection< EgammaEndcapCluster > * | endcapSuperClusters |
| RecCollection< EcalPlusHcalTower > * | towers |
| RecCollection< TTrack > * | tracks |
| RecCollection< RecoVertex > * | vertices |
| RecCollection< RecMuon > * | muons |
| RecCollection< ElectronCandidate > * | electrons |
| RecCollection< TTrack > * | eltracks |
| RecCollection< RecJet > * | jets |
| RecCollection< RecMET > * | mets |
| RecCollection< HighLevelTriggerResult > * | hlt |
| TTree * | xanaEsdTree_ |
| TBranch * | xanaEsdEventBranch_ |
| TFile * | xanaEsdFile_ |
| XANAEsdEvent * | xanaEsdEvent_ |
| TBranch * | xanaGenEventBranch_ |
| XANAGeneratorEvent * | xanaGenEvent_ |
| TBranch * | xanaGeantEventBranch_ |
| XANAGeantEvent * | xanaGeantEvent_ |
| IsoCalculator * | ciso_ |
| XANAMemLog * | xanamemlog_ |
| int | nbClusters_ |
| int | nbTracks_ |
| int | nbElectrons_ |
| map< CellID, XANACaloRecHit, less< CellID > > | allCaloRecHits_ |
| map< CellID, XANACaloRecHit, less< CellID > > | clusterizedCaloRecHits_ |
| vector< CellID > | allCells_ |
| vector< CellID > | clusterizedCells_ |
| RegionalTrackFinder * | theRegionalTrackFinder |
|
|
Definition at line 98 of file writeESD.h. |
|
|
Definition at line 108 of file writeESD.cpp. References XANAGeantEvent::addEsdEvent, XANAGeantEvent::addGeneratorEvent, autosave_, bufferSize_, ciso_, clusterizerName_, compressionLevel_, electronReconstructorName_, endcapSuperClusterizerName_, fileName_, gsfForwardFit_, hcalClusterizerName_, hltMenu_, jetsFromTrueInformation_, l1Menu_, memlog_, metsFromTrueInformation_, muonReconstructorName_, xana::out, splitMode_, superClusterizerName_, trackReconstructorName_, treeName_, vertexReconstructorName_, writeAllTrackHits_, writeCaloRecHits_, writeEleTrackHits_, writeTrackHits_, writeTree_, xanaEsdEvent_, xanaEsdEventBranch_, xanaEsdFile_, xanaEsdTree_, xanaGeantEvent_, xanaGeantEventBranch_, xanaGenEvent_, xanaGenEventBranch_, and xanamemlog_.
00108 : clusters(0), superClusters(0), endcapSuperClusters(0), towers(0), tracks(0), vertices(0), 00109 muons(0), electrons(0), eltracks(0), jets(0), mets(0), hlt(0), xanaEsdTree_(0), xanaEsdEventBranch_(0), xanaEsdFile_(0), 00110 xanaEsdEvent_(0), xanaGenEventBranch_(0), xanaGenEvent_(0), xanaGeantEventBranch_(0), 00111 xanaGeantEvent_(0), ciso_(0), xanamemlog_(0), nbClusters_(0), nbTracks_(0), nbElectrons_(0) 00112 00113 { 00114 00115 // initialize observer 00116 xana::out(1) << "Constructing an XANAEsdBuilder" << endl ; 00117 Observer<G3EventProxy *>::init() ; 00118 Observer<G3SetUp *>::init() ; 00119 00120 // algos configuration 00121 clusterizerName_ = 00122 SimpleConfigurable<std::string>("EGBCluster","XANADOO:Clusterizer"); 00123 superClusterizerName_ = 00124 SimpleConfigurable<std::string>("EGSCluster","XANADOO:SuperClusterizer"); 00125 endcapSuperClusterizerName_ = 00126 SimpleConfigurable<std::string>("EGECluster","XANADOO:EndcapSuperClusterizer"); 00127 hcalClusterizerName_ = 00128 SimpleConfigurable<std::string>("TowerBuilder","XANADOO:HcalClusterizer"); 00129 trackReconstructorName_= 00130 SimpleConfigurable<std::string>("TransientCombinatorialTrackFinder","XANADOO:TrackReconstructor"); 00131 vertexReconstructorName_= 00132 SimpleConfigurable<std::string>("PrincipalVertexFinder","XANADOO:VertexReconstructor"); 00133 muonReconstructorName_= 00134 SimpleConfigurable<std::string>("GlobalMuonReconstructor","XANADOO:MuonReconstructor"); 00135 electronReconstructorName_= 00136 SimpleConfigurable<std::string>("GSF","XANADOO:ElectronReconstructor"); 00137 gsfForwardFit_= 00138 SimpleConfigurable<std::string>("GSF","XANADOO:gsfForwardFit"); 00139 jetsFromTrueInformation_ = 00140 SimpleConfigurable<bool>(false,"XANADOO:jetsFromTrueInformation"); 00141 metsFromTrueInformation_ = 00142 SimpleConfigurable<bool>(false,"XANADOO:metsFromTrueInformation"); 00143 // get L1 trigger config from Data/TriggerData/L1GlobalTrigger/$lumichoice/trigger_menu.dat 00144 l1Menu_ = 00145 SimpleConfigurable<std::string>("lumi2x1033","L1Globaltrigger:TriggerMenu"); 00146 // set HLT trigger config from xml file 00147 hltMenu_ = 00148 SimpleConfigurable<std::string>("2x1033HLT.xml","HighLevelTriggerXML:XMLfile"); 00149 00150 00151 // xanadoo steering 00152 writeTree_ = SimpleConfigurable<bool>(false,"XANADOO:writeEsd"); 00153 writeCaloRecHits_ = SimpleConfigurable<bool>(false,"XANADOO:EsdWithCaloRecHits"); 00154 writeTrackHits_ = SimpleConfigurable<bool>(false,"XANADOO:EsdWithTrackHits"); writeAllTrackHits_ = SimpleConfigurable<bool>(false,"XANADOO:EsdWithAllTrackHits"); 00155 writeEleTrackHits_ = SimpleConfigurable<bool>(false,"XANADOO:EsdWithEleTrackHits"); 00156 00157 // memory log 00158 memlog_ = SimpleConfigurable<bool>(false,"XANADOO:memlog"); 00159 if (memlog_) xanamemlog_=new XANAMemLog(); 00160 00161 // creates output file 00162 fileName_ = SimpleConfigurable<std::string>("single_eminus_pt100.root","XANADOO:FileName"); 00163 xanaEsdFile_ = new TFile(fileName_.value().c_str(),"RECREATE"); 00164 compressionLevel_ = SimpleConfigurable<int>(1,"XANADOO:CompressionLevel"); 00165 xanaEsdFile_->SetCompressionLevel(compressionLevel_); 00166 00167 // create TTree 00168 autosave_ = SimpleConfigurable<int>(1000000000,"XANADOO:AutoSaveSize"); 00169 bufferSize_ = SimpleConfigurable<int>(256000,"XANADOO:BufferSize"); 00170 splitMode_ = SimpleConfigurable<int>(99,"XANADOO:SplitMode"); 00171 xana::out(1) << "creating xanaEsdTree .."<<endl; 00172 treeName_ = SimpleConfigurable<std::string>("XANAESD","XANADOO:TreeName"); 00173 xanaEsdTree_ = new TTree(treeName_.value().c_str(),"test XANADOO ESD tree"); 00174 xanaEsdTree_->SetAutoSave(autosave_); 00175 int bufferSizeValue = bufferSize_.value(); 00176 if (splitMode_.value()) bufferSizeValue /= 4; //from ROOT example 00177 00178 // initialize event and create branches 00179 xanaEsdEvent_ = new XANAEsdEvent(); 00180 xana::out(1) << "creating xanaEsdEventBranch .."<<endl; 00181 xanaEsdEventBranch_ = 00182 xanaEsdTree_->Branch("Event.","XANAEsdEvent",&xanaEsdEvent_,bufferSizeValue,splitMode_.value()); 00183 xana::out(1) << "xanaEsdEventBranch branch created .."<<endl; 00184 00185 xanaGenEvent_ = new XANAGeneratorEvent(); 00186 xana::out(1) << "creating xanaGeneratorEventBranch .."<<endl; 00187 xanaGenEventBranch_ = 00188 xanaEsdTree_->Branch("GeneratorEvent.","XANAGeneratorEvent",&xanaGenEvent_,bufferSizeValue,splitMode_.value()); 00189 xana::out(1) << "xanaGeneratorEventBranch branch created .."<<endl; 00190 00191 xanaGeantEvent_ = new XANAGeantEvent(); 00192 xana::out(1) << "creating xanaGeantEventBranch .."<<endl; 00193 xanaGeantEventBranch_ = 00194 xanaEsdTree_->Branch("GeantEvent.","XANAGeantEvent",&xanaGeantEvent_,bufferSizeValue,splitMode_.value()); 00195 xana::out(1) << "xanaGeantEventBranch branch created .."<<endl; 00196 00197 // create links between generator-geant event and ESD-geant Event 00198 xanaGeantEvent_->addGeneratorEvent(xanaGenEvent_); 00199 xanaGeantEvent_->addEsdEvent(xanaEsdEvent_); 00200 00201 //CC is this still needed? 00202 ciso_ = Singleton<IsoCalculator>::instance(); 00203 00204 } |
|
|
Definition at line 207 of file writeESD.cpp. References xana::out, XANAMemLog::writeHistogram, xanaEsdFile_, xanaEsdTree_, and xanamemlog_.
00208 {
00209
00210 xana::out(1) << "Deleting XANAEsdBuilder" << std::endl;
00211 xanaEsdFile_->Write();
00212 xanaEsdTree_->Print();
00213 delete xanaEsdFile_;
00214 if (memlog_) xanamemlog_->writeHistogram();
00215
00216 }
|
|
|
Definition at line 404 of file writeESD.cpp. Referenced by setEmClusters.
00404 {
00405
00406 if (algo==1) return std::string("EgammaBasicIsland");
00407 else if (algo>=100) return std::string("EgammaBasicHybrid");
00408 else return std::string("");
00409
00410 }
|
|
|
Referenced by upDate. |
|
|
Referenced by upDate. |
|
|
Definition at line 454 of file writeESDForFAMOS.cpp. References XANAEsdEvent::addElectronCandidate, XANAEsdEvent::addElectronSeed, XANAEsdEvent::addElectronSuperCluster, ciso_, electrons, endcapSuperClusterizerName_, XANAElectronTools::etaTransformation, XANATrack::getCharge, XANATrack::getMomentumAtFirstPoint, XANATrack::getPositionAtFirstPoint, nbElectrons_, xana::out, XANAElectronTools::phiTransformation, XANAElectronSeed::setAlgoName, XANASuperCluster::setAlgoName, XANAElectronCandidate::setAlgoName, XANASuperCluster::setCaloIsolation, XANAElectronCandidate::setCaloIsolation, XANAElectronCandidate::setDeltaEtaSeedClusterAtCalo, XANAElectronCandidate::setDeltaEtaSuperClusterAtCalo, XANAElectronCandidate::setDeltaEtaSuperClusterAtVtx, XANAElectronCandidate::setDeltaPhiSeedClusterAtCalo, XANAElectronCandidate::setDeltaPhiSuperClusterAtCalo, XANAElectronCandidate::setDeltaPhiSuperClusterAtVtx, XANAElectronSeed::setDirection, XANASuperCluster::setDisc1, XANASuperCluster::setDisc2, XANASuperCluster::setDisc3, XANAEsdEvent::setElectronTrack, XANASuperCluster::setEnergy, XANASuperCluster::setEnergyScaleFactor, XANAElectronCandidate::setESeedClusterOverP, XANAElectronCandidate::setESuperClusterOverP, XANASuperCluster::setHadronicOverEm, XANAElectronCandidate::setHadronicOverEm, XANAElectronSeed::setMomentumAtFirstPoint, XANAElectronSeed::setMomentumAtLastPoint, XANAElectronCandidate::setMomentumAtVertex, XANAElectronSeed::setNumberOfHits, XANASuperCluster::setPosition, XANATrack::setPositionAtFirstPoint, XANAElectronSeed::setPositionAtFirstPoint, XANATrack::setPositionAtLastPoint, XANAElectronSeed::setPositionAtLastPoint, XANASuperCluster::setPositionCovarianceMatrix, XANASuperCluster::setSum1, XANASuperCluster::setSum25, XANASuperCluster::setSum4, XANASuperCluster::setSum9, XANAElectronCandidate::setSuperClusterEnergy, XANAElectronCandidate::setSuperClusterMomentum, XANAElectronCandidate::setSuperClusterPosition, XANAElectronCandidate::setTrackIsolation, XANAElectronCandidate::setTrackMomentumAtCalo, XANAElectronCandidate::setTrackPositionAtCalo, superClusterizerName_, and xanaEsdEvent_. Referenced by XANAEsdBuilderForFAMOS::upDate, and upDate.
00455 {
00456
00457 xana::out(2) << "[update] electrons " << std::endl;
00458
00459 RecCollection<ElectronCandidate> electrons(RecQuery("EGFElectron","1.0"));
00460 RecCollection<ElectronCandidate>::const_iterator electron;
00461 xana::out(5) << "[update] "<<electrons.size()<<" EGFElectron found " << std::endl;
00462 XANAElectronCandidate *xElectron;
00463 nbElectrons_=0;
00464 for (electron=electrons.begin(); electron!=electrons.end(); electron++) {
00465 nbElectrons_++ ;
00466 xana::out(1)<<"[OVAL] new electron "<<std::endl ;
00467 xElectron = new XANAElectronCandidate();
00468
00469 // printing electron quantities from ElectronCandidate
00470 xana::out(8)<<"[OVAL] electron super cluster energy "<<electron->SCE()<<std::endl ;
00471 xana::out(8)<<"[OVAL] electron track px "<<electron->TRPx()<<std::endl ;
00472 xana::out(8)<<"[OVAL] electron track py "<<electron->TRPy()<<std::endl ;
00473 xana::out(8)<<"[OVAL] electron track pz "<<electron->TRPz()<<std::endl ;
00474 xana::out(8)<<"[OVAL] electron super cluster Et "<<electron->SCEt()<<std::endl ;
00475 xana::out(8)<<"[OVAL] electron super cluster eta "<<electron->SCEta()<<std::endl ;
00476 xana::out(8)<<"[OVAL] electron super cluster phi "<<electron->SCPhi()<<std::endl ;
00477 xana::out(8)<<"[OVAL] electron track eta "<<electron->TREta()<<std::endl ;
00478 xana::out(8)<<"[OVAL] electron track phi "<<electron->TRPhi()<<std::endl ;
00479 xana::out(8)<<"[OVAL] electron e/p "<<electron->ele_EoP()<<std::endl ;
00480 xana::out(8)<<"[OVAL] electron delta eta "<<electron->DeltaEta()<<std::endl ;
00481
00482 const TTrack * eltrack=electron->GetTRElectron();
00483 const EgammaVSuperCluster *sc=electron->GetEGCandidate()->data();
00484 // calculate from sc and track
00485 HepPoint3D superClusterPosition;
00486 if (sc) {
00487 const EgammaCluster *seed = sc->seed();
00488
00489 float superClusterEnergy = sc->energy();;
00490 xana::out(8)<<"[OVAL] written electron super cluster energy "<<superClusterEnergy<<std::endl ;
00491 xElectron->setSuperClusterEnergy(superClusterEnergy);
00492 float theta = sc->theta();
00493 float x = sc->radius()*sin(theta)*cos(sc->phi());
00494 float y = sc->radius()*sin(theta)*sin(sc->phi());
00495 float z = sc->radius()*cos(theta);
00496 superClusterPosition=HepPoint3D(x,y,z);
00497 xana::out(8)<<"[OVAL] written electron super cluster position "<<superClusterPosition<<std::endl ;
00498 xElectron->setSuperClusterPosition(superClusterPosition);
00499 HepLorentzVector momentum;
00500 momentum.setPx(eltrack->momentumAtVertex().x());
00501 momentum.setPy(eltrack->momentumAtVertex().y());
00502 momentum.setPz(eltrack->momentumAtVertex().z());
00503 momentum *= electron->SCE() / eltrack->momentumAtVertex().mag();
00504 momentum.setE(superClusterEnergy);
00505 xana::out(8)<<"[OVAL] written electron momentum at vertex "<<momentum<<std::endl ;
00506 xElectron->setMomentumAtVertex(momentum);
00507
00508 // extrapolations from last track point
00509 TrajectoryStateOnSurface last = eltrack->outermostState();
00510 if (!last.isValid())
00511 throw Genexception("[writeESDForFamos::update], invalid tsos") ;
00512 // use 3D impactPointExtrapolator
00513 ImpactPointExtrapolator theExtrapolator ;
00514 // and an analytical (helix) propagator with material effect
00515 const MultipleScatteringUpdator aElectronMaterialEffectUpdator(0.000511);
00516 AnalyticalPropagator *ap = new AnalyticalPropagator(alongMomentum);
00517 PropagatorWithMaterial *thePropagator = new PropagatorWithMaterial(*(ap),aElectronMaterialEffectUpdator);
00518 delete ap;
00519
00520 // extrapolation to super cluster
00521 GlobalPoint pos(x, y, z) ;
00522 TrajectoryStateOnSurface tssuper =
00523 theExtrapolator.extrapolate(*last.freeTrajectoryState(), pos, *thePropagator) ;
00524 if (!tssuper.isValid()) tssuper=last;
00525 HepLorentzVector *trackMomentumAtCalo=new HepLorentzVector(tssuper.globalMomentum().x(),tssuper.globalMomentum().y(),tssuper.globalMomentum().z(),tssuper.globalMomentum().mag());
00526 xana::out(8)<<"[OVAL] written track momentum at super cluster "<<*trackMomentumAtCalo<<std::endl ;
00527 xElectron->setTrackMomentumAtCalo(*trackMomentumAtCalo);
00528 HepPoint3D *trackPositionAtCalo=new HepPoint3D(tssuper.globalPosition().x(),tssuper.globalPosition().y(),tssuper.globalPosition().z());
00529 xana::out(8)<<"[OVAL] written track position at super cluster "<<*trackPositionAtCalo<<std::endl ;
00530 xElectron->setTrackPositionAtCalo(*trackPositionAtCalo);
00531
00532 float eSuperClusterOverP = -1.;
00533 if (trackMomentumAtCalo->e()>0.) eSuperClusterOverP = superClusterEnergy / trackMomentumAtCalo->e();
00534 xana::out(8)<<"[OVAL] written E super cluster / p "<<eSuperClusterOverP<<std::endl ;
00535 xElectron->setESuperClusterOverP(eSuperClusterOverP);
00536 delete trackMomentumAtCalo;
00537
00538 float deta = superClusterPosition.pseudoRapidity() - trackPositionAtCalo->pseudoRapidity();
00539 xana::out(8)<<"[OVAL] written deta (super - track) "<<deta<<std::endl ;
00540 xElectron->setDeltaEtaSuperClusterAtCalo(deta);
00541 float dphi=superClusterPosition.phi()-trackPositionAtCalo->phi();
00542 if (fabs(dphi) > pi) dphi = dphi < 0 ? 2.*pi + dphi : dphi - 2.*pi ;
00543 xana::out(8)<<"[OVAL] written dphi (super - track) "<<dphi<<std::endl ;
00544 xElectron->setDeltaPhiSuperClusterAtCalo(dphi);
00545 delete trackPositionAtCalo;
00546
00547 // extrapolation to seed cluster
00548 Float_t thetas=2.0*atan(exp(-1*seed->Eta()));
00549 Float_t seedx=seed->Radius()*cos(seed->Phi())*sin(thetas);
00550 Float_t seedy=seed->Radius()*sin(seed->Phi())*sin(thetas);
00551 Float_t seedz=seed->Radius()*cos(thetas);
00552 GlobalPoint seedpos(seedx, seedy, seedz) ;
00553 TrajectoryStateOnSurface tsseed =
00554 theExtrapolator.extrapolate(*last.freeTrajectoryState(), seedpos, *thePropagator) ;
00555 delete thePropagator;
00556 if (!tsseed.isValid()) tsseed=last;
00557 HepPoint3D *trackPositionAtSeed=new HepPoint3D(tsseed.globalPosition().x(),tsseed.globalPosition().y(),tsseed.globalPosition().z());
00558
00559 float eSeedClusterOverP= -1. ;
00560 float thetaseed = 2.*atan(exp(-seed->Eta()));
00561 float seedEnergy = 0.;
00562 if (thetaseed != 0.) seedEnergy = seed->Et() / sin(thetaseed) ;
00563 if( tsseed.globalMomentum().mag() > 0.) eSeedClusterOverP = seedEnergy / tsseed.globalMomentum().mag();
00564 xana::out(8)<<"[OVAL] written E seed cluster / p "<<eSeedClusterOverP<<std::endl ;
00565 xElectron->setESeedClusterOverP(eSeedClusterOverP);
00566
00567 deta = seed->Eta() - trackPositionAtSeed->pseudoRapidity();
00568 xana::out(8)<<"[OVAL] written deta (seed - track) "<<deta<<std::endl ;
00569 xElectron->setDeltaEtaSeedClusterAtCalo(deta);
00570 dphi=seed->Phi()-trackPositionAtSeed->phi();
00571 if (fabs(dphi) > pi) dphi = dphi < 0 ? 2.*pi + dphi : dphi - 2.*pi ;
00572 xana::out(8)<<"[OVAL] written dphi (seed - track) "<<dphi<<std::endl ;
00573 xElectron->setDeltaPhiSeedClusterAtCalo(dphi);
00574 delete trackPositionAtSeed;
00575
00576 // super cluster momentum, assuming perfect helix and vertex at origin
00577 GlobalPoint assumedVertex(0.,0.,0.);
00578 GlobalPoint measuredPoint(superClusterPosition.x(), superClusterPosition.y(), superClusterPosition.z()) ;
00579 FTSFromVertexToPointFactory ftsFactory;
00580 FreeTrajectoryState ftsAtCalo =
00581 ftsFactory(measuredPoint,assumedVertex,superClusterEnergy,eltrack->charge());
00582 HepLorentzVector superClusterMomentum;
00583 superClusterMomentum.setPx(ftsAtCalo.momentum().x());
00584 superClusterMomentum.setPy(ftsAtCalo.momentum().y());
00585 superClusterMomentum.setPz(ftsAtCalo.momentum().z());
00586 superClusterMomentum.setE(superClusterEnergy);
00587 xana::out(8)<<"[OVAL] written super cluster momentum "<<superClusterMomentum<<std::endl ;
00588 xElectron->setSuperClusterMomentum(superClusterMomentum);
00589
00590 float caloIsolation = ciso_->getIso(sc->eta(),sc->phi());
00591 xElectron->setCaloIsolation(caloIsolation);
00592 }
00593 int isTrackIsolated = electron->TRisISO();
00594 xElectron->setTrackIsolation(isTrackIsolated);
00595 float hadronicOverEm = electron->ele_HoE();
00596 xElectron->setHadronicOverEm(hadronicOverEm);
00597
00598 xElectron->setAlgoName("EgammaCandidate");
00599
00600 xana::out(2) << "[update] adding electron candidate No " << nbElectrons_ << std::endl;
00601 xanaEsdEvent_->addElectronCandidate(xElectron);
00602
00603 if (sc) {
00604 XANASuperCluster *xscluster=new XANASuperCluster();
00605 xscluster->setEnergy(sc->energy());
00606 xscluster->setPosition(sc->position());
00607 xscluster->setSum1(sc->seed()->getS1());
00608 xscluster->setSum4(sc->seed()->getS4());
00609 xscluster->setSum9(sc->seed()->getS9());
00610 xscluster->setSum25(sc->seed()->getS25());
00611 xscluster->setHadronicOverEm(sc->seed()->getHoe());
00612 // iso not available from endcap super clusters
00613 // compute from IsoCalculator
00614 float iso = ciso_->getIso(sc->eta(),sc->phi());
00615 xscluster->setCaloIsolation(iso);
00616 xscluster->setDisc1(sc->seed()->getDisc1());
00617 xscluster->setDisc2(sc->seed()->getDisc2());
00618 xscluster->setDisc3(sc->seed()->getDisc3());
00619 HepSymMatrix cov(2);
00620 cov(1,1) = sc->seed()->getCovEE();
00621 cov(1,2) = sc->seed()->getCovEP();
00622 cov(2,2) = sc->seed()->getCovPP();
00623 xscluster->setPositionCovarianceMatrix(cov);
00624 xscluster->setEnergyScaleFactor(sc->energy()/sc->energyUncorrected());
00625 if ( fabs(sc->seed()->Eta())<1.4791 ) xscluster->setAlgoName(superClusterizerName_.value());
00626 else xscluster->setAlgoName(endcapSuperClusterizerName_.value());
00627 xanaEsdEvent_->addElectronSuperCluster(xscluster,xElectron);
00628 delete xscluster;
00629 }
00630
00631
00632 // electron seed
00633 XANAElectronSeed *xelseed= new XANAElectronSeed();
00634 const EPHLTElectronSeed * trseed = dynamic_cast<const EPHLTElectronSeed *>(&eltrack->seed().basicSeed());
00635 Short_t dir = 1;
00636 if (trseed->direction() == "oppositeToMomentum") dir = -1;
00637 xelseed->setDirection(dir);
00638 xelseed->setNumberOfHits(trseed->measurements().size());
00639 TrajectoryStateOnSurface tsseedfirst =
00640 trseed->measurements()[0].updatedState();
00641 HepPoint3D seedPositionAtFirst(tsseedfirst.globalPosition().x(),tsseedfirst.globalPosition().y(),
00642 tsseedfirst.globalPosition().z());
00643 HepVector3D seedMomentumAtFirst(tsseedfirst.globalMomentum().x(),tsseedfirst.globalMomentum().y(),
00644 tsseedfirst.globalMomentum().z());
00645 xelseed->setMomentumAtFirstPoint(seedMomentumAtFirst);
00646 xelseed->setPositionAtFirstPoint(seedPositionAtFirst);
00647 TrajectoryStateOnSurface tsseedlast =
00648 trseed->measurements()[trseed->measurements().size()-1].updatedState();
00649 HepPoint3D seedPositionAtLast(tsseedlast.globalPosition().x(),tsseedlast.globalPosition().y(),
00650 tsseedlast.globalPosition().z());
00651 HepVector3D seedMomentumAtLast(tsseedlast.globalMomentum().x(),tsseedlast.globalMomentum().y(),
00652 tsseedlast.globalMomentum().z());
00653 xelseed->setMomentumAtLastPoint(seedMomentumAtLast);
00654 xelseed->setPositionAtLastPoint(seedPositionAtLast);
00655 xelseed->setAlgoName("Egammadefault");
00656
00657 // we need an electron track just filled to make operator== work
00658 XANAElectronTrack *xTrack=new XANAElectronTrack;
00659 TrajectoryStateOnSurface tsi = eltrack->innermostState() ;
00660 TrajectoryStateOnSurface tso = eltrack->outermostState() ;
00661 HepPoint3D firstHit(tsi.globalPosition().x(),tsi.globalPosition().y(),
00662 tsi.globalPosition().z());
00663 HepPoint3D lastHit(tso.globalPosition().x(),tso.globalPosition().y(),
00664 tso.globalPosition().z());
00665 xTrack->setPositionAtFirstPoint(firstHit);
00666 xTrack->setPositionAtLastPoint(lastHit);
00667
00668 float detavtx = superClusterPosition.pseudoRapidity() - XANAElectronTools::etaTransformation(xTrack->getMomentumAtFirstPoint().pseudoRapidity(),
00669 xTrack->getPositionAtFirstPoint().z(),xTrack->getPositionAtFirstPoint().perp());
00670 xElectron->setDeltaEtaSuperClusterAtVtx(detavtx);
00671 float dphivtx=superClusterPosition.phi()-XANAElectronTools::phiTransformation(xTrack->getMomentumAtFirstPoint().perp(),xTrack->getMomentumAtFirstPoint().pseudoRapidity(),
00672 xTrack->getMomentumAtFirstPoint().phi(), xTrack->getCharge(),xTrack->getPositionAtFirstPoint().perp());
00673 if (fabs(dphivtx) > pi) dphivtx = dphivtx < 0 ? 2.*pi + dphivtx : dphivtx - 2.*pi ;
00674 xElectron->setDeltaPhiSuperClusterAtVtx(dphivtx);
00675
00676 xanaEsdEvent_->addElectronSeed(xelseed,xTrack);
00677 xanaEsdEvent_->setElectronTrack(xTrack,xElectron);
00678 delete xelseed;
00679 delete xTrack;
00680
00681 delete xElectron;
00682 }
00683 }
|
|
|
Referenced by upDate. |
|
|
Definition at line 895 of file writeESDForFAMOS.cpp. References XANAEsdEvent::addElectronTrack, xana::out, XANATrack::setAlgoName, XANATrack::setCharge, XANATrack::setChi2OverDof, setEleTrackHits, XANATrack::setImpactParameter, XANATrack::setLongImpactParameter, XANATrack::setMomentumAtFirstPoint, XANATrack::setMomentumAtLastPoint, XANATrack::setMomentumAtVertex, XANATrack::setNumberOfHits, XANATrack::setNumberOfLostHits, XANATrack::setPositionAtFirstPoint, XANATrack::setPositionAtLastPoint, XANATrack::setTransImpactParameter, tracks, and xanaEsdEvent_. Referenced by XANAEsdBuilderForFAMOS::upDate, and upDate.
00896 {// fill electron track container for normal electron tracks
00897 // RecCollection<TTrack> tracks( RecQuery("EPTracks","1.0"));
00898 RecCollection<TTrack> tracks( RecQuery("EPFTracks","1.0"));
00899 RecCollection<TTrack>::const_iterator eltrack;
00900 xana::out(5) << "[update] "<<tracks.size()<<" electron tracks found " << std::endl;
00901 for (eltrack=tracks.begin(); eltrack!=tracks.end(); eltrack++) {
00902 XANAElectronTrack *xTrack = new XANAElectronTrack;
00903 TrajectoryStateOnSurface tsi = eltrack->innermostState() ;
00904 TrajectoryStateOnSurface tso = eltrack->outermostState() ;
00905 HepVector3D momentumAtVertex(eltrack->momentumAtVertex().x(),
00906 eltrack->momentumAtVertex().y(),eltrack->momentumAtVertex().z());
00907 HepPoint3D firstHit(tsi.globalPosition().x(),tsi.globalPosition().y(),
00908 tsi.globalPosition().z());
00909 HepVector3D momentumAtFirst(tsi.globalMomentum().x(),tsi.globalMomentum().y(),
00910 tsi.globalMomentum().z());
00911 HepPoint3D lastHit(tso.globalPosition().x(),tso.globalPosition().y(),
00912 tso.globalPosition().z());
00913 HepVector3D momentumAtLast(tso.globalMomentum().x(),tso.globalMomentum().y(),
00914 tso.globalMomentum().z());
00915 xTrack->setCharge(eltrack->charge());
00916 xTrack->setChi2OverDof(eltrack->normalisedChiSquared());
00917 xTrack->setNumberOfHits(eltrack->foundHits());
00918 xTrack->setNumberOfLostHits(eltrack->lostHits());
00919 xTrack->setImpactParameter(eltrack->impactParameter3D().value());
00920 xTrack->setLongImpactParameter(eltrack->zImpactParameter().value());
00921 xTrack->setTransImpactParameter(eltrack->transverseImpactParameter().value());
00922 xTrack->setMomentumAtVertex(momentumAtVertex);
00923 xTrack->setPositionAtFirstPoint(firstHit);
00924 xTrack->setMomentumAtFirstPoint(momentumAtFirst);
00925 xTrack->setPositionAtLastPoint(lastHit);
00926 xTrack->setMomentumAtLastPoint(momentumAtLast);
00927 xTrack->setAlgoName("EPFTrack");
00928 // xanaEsdEvent_->addElectronTrack(xTrack,xElectron);
00929 xanaEsdEvent_->addElectronTrack(xTrack);
00930
00931 // hits (if requested)
00932 // must be done after having added electron track!
00933 if (writeEleTrackHits_) {
00934 std::vector<TrajectoryMeasurement> MyEleTrMeas = eltrack->measurements();
00935 setEleTrackHits(MyEleTrMeas,xTrack);
00936 }
00937 delete xTrack;
00938 }
00939 }
|
|
||||||||||||
|
Definition at line 322 of file writeESD.cpp. References XANAEsdEvent::addEleTrackHit, xana::out, XANATrackHit::setIsBarrel, XANATrackHit::setIsStereo, and xanaEsdEvent_. Referenced by setElectronTracks.
00323 {
00324 // add electron track hits for this track, if asked for
00325
00326 // std::vector<TrajectoryMeasurement> MyEleTrMeas = eltrack->measurements();
00327 std::vector<TrajectoryMeasurement>::const_iterator IterEleTrMeas;
00328
00329 xana::out(2) << "[update] adding electronic track hits " << std::endl;
00330 xana::out(2) << "[update] number of measurements " <<MyEleTrMeas.size() << std::endl;
00331 // xana::out(2) << "[update] number of valid hits "<<eltrack->foundHits()<< std::endl;
00332
00333 XANATrackHit *elethit=0;
00334 int nbhits=0;
00335 for (IterEleTrMeas=MyEleTrMeas.begin(); IterEleTrMeas!=MyEleTrMeas.end(); IterEleTrMeas++)
00336 {
00337 // taking the rec hit
00338 RecHit IterEleRecHit = IterEleTrMeas->recHit();
00339 // checking if it is valid or not
00340 if( !(IterEleRecHit.isValid()) ){xana::out(2) << "[update] non valid hit" << std::endl;}
00341
00342 // taking the updated state
00343 TrajectoryStateOnSurface IterEleTSN = IterEleTrMeas->updatedState();
00344 // checking if it is valid or not
00345 if( !(IterEleTSN.isValid()) ){xana::out(2) << "[update] non valid updated state" << std::endl;}
00346
00347
00348 // analysis only if both are valid
00349 if (!(IterEleRecHit.isValid()) && (IterEleTSN.isValid())){xana::out(2)<<"[update] non valid hit but valid updated state"<< std::endl;}
00350 if ((IterEleRecHit.isValid()) && !(IterEleTSN.isValid())){xana::out(2)<<"[update] non valid updated state but valid hit"<< std::endl;}
00351 if( IterEleRecHit.isValid() && IterEleTSN.isValid() )
00352 {
00353 HepPoint3D elehitposition( (IterEleRecHit).globalPosition().x(),
00354 (IterEleRecHit).globalPosition().y(),
00355 (IterEleRecHit).globalPosition().z());
00356
00357 HepPoint3D eleupdposition( (IterEleTSN).globalPosition().x(),
00358 (IterEleTSN).globalPosition().y(),
00359 (IterEleTSN).globalPosition().z());
00360
00361 HepVector3D eleupdmomentum( (IterEleTSN).globalMomentum().x(),
00362 (IterEleTSN).globalMomentum().y(),
00363 (IterEleTSN).globalMomentum().z());
00364
00365 elethit = new XANATrackHit( elehitposition, eleupdposition, eleupdmomentum );
00366 elethit->setIsStereo((IterEleRecHit).det().detUnits().front()->type().isStereo());
00367 Bool_t isBarrel = (((IterEleRecHit).det().detUnits().front()->type().part() == barrel) ? true : false);
00368 elethit->setIsBarrel(isBarrel);
00369
00370 xana::out(1) << "[update] ELE - NEW STEP" << std::endl;
00371 xana::out(1) << "[update] new hit" << std::endl;
00372 xana::out(1) << (IterEleRecHit).globalPosition().x() << std::endl;
00373 xana::out(1) << (IterEleRecHit).globalPosition().y() << std::endl;
00374 xana::out(1) << (IterEleRecHit).globalPosition().z() << std::endl;
00375 xana::out(1) << "[update] new updated state: position" << std::endl;
00376 xana::out(1) << (IterEleTSN).globalPosition().x() << std::endl;
00377 xana::out(1) << (IterEleTSN).globalPosition().y() << std::endl;
00378 xana::out(1) << (IterEleTSN).globalPosition().z() << std::endl;
00379 xana::out(1) << "[update] new updated state: momentum" << std::endl;
00380 xana::out(1) << (IterEleTSN).globalMomentum().x() << std::endl;
00381 xana::out(1) << (IterEleTSN).globalMomentum().y() << std::endl;
00382 xana::out(1) << (IterEleTSN).globalMomentum().z() << std::endl;
00383
00384 xanaEsdEvent_->addEleTrackHit(elethit, xTrack);
00385 ++nbhits;
00386 delete elethit;
00387
00388 } // valid hit and upd state
00389 } // loop on measurements
00390 xana::out(2) << "[update] number of hits that were added "<<nbhits<< std::endl;
00391 }
|
|
|
Definition at line 251 of file writeESDForFAMOS.cpp. References XANAEsdEvent::addEmCluster, XANAEsdEvent::addEmClusterHit, clusterizedCaloRecHits_, clusterizedCells_, clusterizerName_, clusters, getAlgoName, xana::out, and xanaEsdEvent_. Referenced by XANAEsdBuilderForFAMOS::upDate, and upDate.
00252 {
00253 cout << "in setEmClusters " << endl;
00254 xana::out(2) << "[update] em clusters " << std::endl;
00255
00256 RecCollection<EgammaBasicCluster> clusters (RecQuery("EGBFCluster","1.0"));
00257 RecCollection<EgammaBasicCluster> ::const_iterator cluster ;
00258 xana::out(5) << "[update] " << clusters.size() << " " << clusterizerName_.value() <<" clusters found." << std::endl;
00259 XANAEmCluster *xcluster;
00260 clusterizedCaloRecHits_.clear();
00261 xana::out(2) << "[update] before cluster loop " << std::endl;
00262 for (cluster=clusters.begin(); cluster!=clusters.end(); cluster++) {
00263 // hybrid is algo>=100
00264 // ORIGINAL
00265 if ( (cluster->whichAlgo()>99 && fabs(cluster->eta())>1.4791) ||
00266 (cluster->whichAlgo()<99 && fabs(cluster->eta())<1.4791) ) continue;
00267 // MODIF CARO : ISLAND Partout
00268 // if ( (cluster->whichAlgo()>99 && fabs(cluster->eta())>1.4791) ||
00269 // (cluster->whichAlgo()>99 && fabs(cluster->eta())<1.4791) ) continue;
00270 xana::out(2) << "[update] creating new xanacluster "<< std::endl;
00271 xana::out(2) << "[update] cluster algoName is "<< clusterizerName_.value() << " " << getAlgoName(cluster->whichAlgo())<<std::endl;
00272 xcluster = new XANAEmCluster(cluster->energy(), cluster->position(),
00273 cluster->chi2(),clusterizerName_.value());
00274 xana::out(2) << "[update] adding cluster " << std::endl;
00275 xanaEsdEvent_->addEmCluster(xcluster);
00276 std::vector<const CaloRecHit *> rhits=cluster->rHits();
00277 for (std::vector<const CaloRecHit *>::const_iterator
00278 it=rhits.begin(); it != rhits.end(); it++) {
00279 XANACaloRecHit *xhit = new XANACaloRecHit((*it)->energy(), (*it)->time(),
00280 (*it)->chi2(), XANACellID((*it)->getMyCell().position()));
00281 xanaEsdEvent_->addEmClusterHit(xhit, xcluster);
00282 clusterizedCaloRecHits_.insert(pair<CellID,XANACaloRecHit>((*it)->getMyCell(),*xhit));
00283 clusterizedCells_.push_back((*it)->getMyCell());
00284 delete xhit;
00285 }
00286 delete xcluster;
00287 }
00288
00289 }
|
|
|
Definition at line 370 of file writeESDForFAMOS.cpp. References XANAEsdEvent::addBremCluster, XANAEsdEvent::addSeedCluster, XANAEsdEvent::addSuperCluster, ciso_, clusterizerName_, endcapSuperClusterizerName_, endcapSuperClusters, XANACluster::getEnergy, xana::out, XANASuperCluster::setAlgoName, XANASuperCluster::setCaloIsolation, XANASuperCluster::setDisc1, XANASuperCluster::setDisc2, XANASuperCluster::setDisc3, XANASuperCluster::setEnergy, XANASuperCluster::setEnergyScaleFactor, XANASuperCluster::setHadronicOverEm, XANASuperCluster::setPosition, XANASuperCluster::setPositionCovarianceMatrix, XANASuperCluster::setSum1, XANASuperCluster::setSum25, XANASuperCluster::setSum4, XANASuperCluster::setSum9, and xanaEsdEvent_. Referenced by XANAEsdBuilderForFAMOS::upDate, and upDate.
00371 {
00372
00373 xana::out(2) << "[update] endcap superclusters " << std::endl;
00374
00375 XANASuperCluster *xscluster;
00376 RecCollection<EgammaEndcapCluster> endcapSuperClusters(RecQuery("EGEFCluster","1.0"));
00377 RecCollection<EgammaEndcapCluster>::const_iterator endcapSuperCluster ;
00378 xana::out(5) << "[update] " << endcapSuperClusters.size() << endcapSuperClusterizerName_.value() << " endcapSuperClusters found." << std::endl;
00379 for (endcapSuperCluster=endcapSuperClusters.begin(); endcapSuperCluster!=endcapSuperClusters.end(); endcapSuperCluster++) {
00380 // nbClusters_++;
00381 xana::out(2) << "[update] constructing new supercluster from algo " << endcapSuperCluster->seed()->WhichAlgo()
00382 << " at eta " << endcapSuperCluster->eta() << " with energy " <<
00383 endcapSuperCluster->energy() << std::endl;
00384 xscluster = new XANASuperCluster;
00385 xscluster->setEnergy(endcapSuperCluster->energy());
00386 xscluster->setPosition(endcapSuperCluster->position());
00387 xscluster->setSum1(endcapSuperCluster->seed()->getS1());
00388 xscluster->setSum4(endcapSuperCluster->seed()->getS4());
00389 xscluster->setSum9(endcapSuperCluster->seed()->getS9());
00390 xscluster->setSum25(endcapSuperCluster->seed()->getS25());
00391 xscluster->setHadronicOverEm(endcapSuperCluster->seed()->getHoe());
00392 // iso not available from endcap super clusters
00393 // compute from IsoCalculator
00394 float iso = ciso_->getIso(endcapSuperCluster->eta(),endcapSuperCluster->phi());
00395 xscluster->setCaloIsolation(iso);
00396 xscluster->setDisc1(endcapSuperCluster->seed()->getDisc1());
00397 xscluster->setDisc2(endcapSuperCluster->seed()->getDisc2());
00398 xscluster->setDisc3(endcapSuperCluster->seed()->getDisc3());
00399 HepSymMatrix cov(2);
00400 cov(1,1) = endcapSuperCluster->seed()->getCovEE();
00401 cov(1,2) = endcapSuperCluster->seed()->getCovEP();
00402 cov(2,2) = endcapSuperCluster->seed()->getCovPP();
00403 xscluster->setPositionCovarianceMatrix(cov);
00404 xscluster->setEnergyScaleFactor(endcapSuperCluster->energy()/endcapSuperCluster->energyUncorrected());
00405 xana::out(2) << "[update] supercluster algoName is " << endcapSuperClusterizerName_.value() << std::endl;
00406 xscluster->setAlgoName(endcapSuperClusterizerName_.value());
00407 xana::out(2) << "[update] adding super cluster " << std::endl;
00408 xanaEsdEvent_->addSuperCluster(xscluster);
00409
00410 // add seed basic cluster
00411 // the seed is the first in BasicClusters list
00412 EgammaVSuperCluster::const_iterator icf = endcapSuperCluster->basicClusters().first;
00413 XANAEmCluster *seed
00414 = new XANAEmCluster((*icf)->energy(),
00415 (*icf)->position(),
00416 (*icf)->chi2(),
00417 clusterizerName_.value());
00418 xana::out(2) << "[update] adding seed " << std::endl;
00419 xanaEsdEvent_->addSeedCluster(seed, xscluster);
00420 delete seed;
00421
00422 // // now add brems clusters
00423 xana::out(2) << "[update] adding brems " << std::endl;
00424 XANAEmCluster *brem = 0;
00425 // beware, the endcapSuperCluster::vector<EgammaBasicCluster> list includes the seed cluster
00426 EgammaVSuperCluster::const_iterator ic = endcapSuperCluster->basicClusters().first+1;
00427 for (;ic != endcapSuperCluster->basicClusters().second; ic++) {
00428 brem = new XANAEmCluster((*ic)->energy(),
00429 (*ic)->position(),
00430 (*ic)->chi2(),
00431 clusterizerName_.value());
00432 xana::out(2) << "[upDate] brem energy " << brem->getEnergy() << std::endl;
00433 xanaEsdEvent_->addBremCluster(brem, xscluster);
00434 delete brem;
00435 }
00436 // finally add preshower info when relevant (endcap)
00437 xana::out(2) << "[update] adding presh info " << std::endl;
00438 // XANAPreshowerInfo *preshowerInfo = 0;
00439 // FIXME: currently not stored
00440 // if (endcapSuperCluster->energy_P1()+endcapSuperCluster->energy_P2() != 0. ) {
00441 // cout << "[update] constructing a XANAPreshowerInfo" << std::endl;
00442 // preshowerInfo = new XANAPreshowerInfo(endcapSuperCluster->energy_P1(),
00443 // endcapSuperCluster->energy_P2(), endcapSuperCluster->position_P1(),
00444 // endcapSuperCluster->position_P2(), endcapSuperCluster->calibP1(), endcapSuperCluster->calibP2(),
00445 // endcapSuperCluster->calibSC());
00446 // xanaEsdEvent_->addPreshCluster(preshowerInfo, xscluster);
00447 // }
00448 delete xscluster;
00449 }
00450
00451 }
|
|
|
Referenced by upDate. |
|
|
used for initialisation (e.g. if the tracker geometry must have been initialised before).
Definition at line 240 of file writeESDForFAMOS.cpp. Referenced by XANAEsdBuilderForFAMOS::upDate, and upDate.
00241 {
00242 /*
00243 xana::out(8) << "[update] ============================ " << std::endl;
00244 xana::out(8) << "[update] Run #" << ev->simSignal()->id().runNumber() << "; ";
00245 xana::out(8) << " Event #" << ev->simSignal()->id().eventInRun() << std::endl;
00246 xana::out(8) << "[update] ============================ " << std::endl;
00247 xanaEsdEvent_->setHeader(ev->simSignal()->id().runNumber(),ev->simSignal()->id().eventInRun());
00248 */
00249 }
|
|
|
Referenced by upDate. |
|
|
Reimplemented in XANAEsdBuilderForFAMOS. Definition at line 892 of file writeESDForFAMOS.cpp. Referenced by upDate.
00893 { }
|
|
|
Referenced by upDate. |
|
|
Referenced by upDate. |
|
|
Definition at line 292 of file writeESDForFAMOS.cpp. References XANAEsdEvent::addBremCluster, XANAEsdEvent::addSeedCluster, XANAEsdEvent::addSuperCluster, clusterizerName_, XANACluster::getEnergy, xana::out, XANASuperCluster::setAlgoName, XANASuperCluster::setCaloIsolation, XANASuperCluster::setDisc1, XANASuperCluster::setDisc2, XANASuperCluster::setDisc3, XANASuperCluster::setEnergy, XANASuperCluster::setEnergyScaleFactor, XANASuperCluster::setHadronicOverEm, XANASuperCluster::setPosition, XANASuperCluster::setPositionCovarianceMatrix, XANASuperCluster::setSum1, XANASuperCluster::setSum25, XANASuperCluster::setSum4, XANASuperCluster::setSum9, superClusterizerName_, superClusters, and xanaEsdEvent_. Referenced by XANAEsdBuilderForFAMOS::upDate, and upDate.
00293 {
00294
00295 xana::out(2) << "[update] superclusters " << std::endl;
00296
00297 // Barrel superclusters (Hybrid clustering algo chosen for the moment)
00298 RecQuery q1 = FastBasicReco::fastSCConfig();
00299 RecCollection<EgammaSuperCluster> superClusters(q1);
00300 RecCollection<EgammaSuperCluster>::const_iterator superCluster ;
00301 xana::out(5) << "[update] " << superClusters.size() << superClusterizerName_.value() << " superclusters found." << std::endl;
00302 XANASuperCluster *xscluster;
00303
00304 for (superCluster=superClusters.begin(); superCluster!=superClusters.end(); superCluster++) {
00305 // ORIGINAL
00306 if ( (fabs(superCluster->eta())>1.4791) ||
00307 (superCluster->seed()->getBasicCluster()->whichAlgo()<99 &&
00308 fabs(superCluster->eta())<1.4791) ) continue;
00309 // MODIF CARO : ISLAND Partout!
00310 // if ( (fabs(superCluster->eta())>1.4791) ||
00311 // (superCluster->seed()->getBasicCluster()->whichAlgo()>99 &&
00312 // fabs(superCluster->eta())<1.4791) ) continue;
00313 xana::out(2) << "[update] constructing new supercluster from algo " << superCluster->seed()->WhichAlgo()
00314 << " at eta " << superCluster->eta() << " with energy " <<superCluster->energy() << std::endl;
00315 xscluster = new XANASuperCluster;
00316 xscluster->setEnergy(superCluster->energy());
00317 xscluster->setPosition(superCluster->position());
00318 xscluster->setSum1(superCluster->seed()->getS1());
00319 xscluster->setSum4(superCluster->seed()->getS4());
00320 xscluster->setSum9(superCluster->seed()->getS9());
00321 xscluster->setSum25(superCluster->seed()->getS25());
00322 xscluster->setHadronicOverEm(superCluster->seed()->getHoe());
00323 xscluster->setCaloIsolation(superCluster->iso());
00324 xscluster->setDisc1(superCluster->seed()->getDisc1());
00325 xscluster->setDisc2(superCluster->seed()->getDisc2());
00326 xscluster->setDisc3(superCluster->seed()->getDisc3());
00327 HepSymMatrix cov(2);
00328 cov(1,1) = superCluster->seed()->getCovEE();
00329 cov(1,2) = superCluster->seed()->getCovEP();
00330 cov(2,2) = superCluster->seed()->getCovPP();
00331 xscluster->setPositionCovarianceMatrix(cov);
00332 xscluster->setEnergyScaleFactor(superCluster->energy()/superCluster->energyUncorrected());
00333 xana::out(2) << "[update] supercluster algoName is " << superClusterizerName_.value() << std::endl;
00334 xscluster->setAlgoName(superClusterizerName_.value());
00335 xana::out(2) << "[update] adding super cluster " << std::endl;
00336 xanaEsdEvent_->addSuperCluster(xscluster);
00337
00338 // add seed basic cluster
00339 // the seed is the first in BasicClusters list
00340 EgammaVSuperCluster::const_iterator icf = superCluster->basicClusters().first;
00341 XANAEmCluster *seed
00342 = new XANAEmCluster((*icf)->energy(),
00343 (*icf)->position(),
00344 (*icf)->chi2(),
00345 clusterizerName_.value());
00346 xana::out(2) << "[update] adding seed " << std::endl;
00347 xanaEsdEvent_->addSeedCluster(seed, xscluster);
00348 delete seed;
00349
00350 // now add brems clusters
00351 xana::out(2) << "[update] adding brems " << std::endl;
00352 XANAEmCluster *brem = 0;
00353 // beware, the superCluster::vector<EgammaBasicCluster> list includes the seed cluster
00354 EgammaVSuperCluster::const_iterator ic = superCluster->basicClusters().first+1;
00355 for (;ic != superCluster->basicClusters().second; ic++) {
00356 brem = new XANAEmCluster((*ic)->energy(),
00357 (*ic)->position(),
00358 (*ic)->chi2(),
00359 clusterizerName_.value());
00360 xana::out(2) << "[upDate] brem energy " << brem->getEnergy() << std::endl;
00361 xanaEsdEvent_->addBremCluster(brem, xscluster);
00362 delete brem;
00363 }
00364 delete xscluster;
00365 }
00366
00367 }
|
|
|
Referenced by upDate. |
|
|
Referenced by upDate. |
|
|
Referenced by upDate. |
|
|
Definition at line 262 of file writeESD.cpp. References electronReconstructorName_, gsfForwardFit_, xana::out, and theRegionalTrackFinder.
00263 {
00264
00265 xana::out(5) << "Starting initSetUp==================================" << std::endl;
00266 if (strcmp(electronReconstructorName_.value().c_str(),"GSF")) return;
00267
00268 // new from Wolfgang
00269
00270 // RecQuery for regional tracks
00271 RecQuery regionalQuery("RegionalCombinatorialTrackFinder");
00272
00273 // Building:
00274 RecQuery builderQuery("CombinatorialTrajectoryBuilder");
00275 builderQuery.setParameter("chiSquarCut",100000.);
00276 builderQuery.setParameter("mass",0.000511);
00277 builderQuery.setParameter("maxCand",2);
00278 builderQuery.setParameter("maxLostHit",1);
00279 builderQuery.setParameter("maxConsecLostHit",1);
00280 builderQuery.setParameter("lostHitPenalty",50.);
00281 builderQuery.setParameter("intermediateCleaning",true);
00282 builderQuery.setParameter("minimumNumberOfHits",5);
00283 builderQuery.setParameter("ptCut", 3.);
00284 builderQuery.setParameter("alwaysUseInvalidHits",true);
00285
00286 // Fit & smooth part
00287 RecQuery fitQuery("KFFittingSmoother");
00288 fitQuery.setParameter("mass",0.000511);
00289
00290 // to fit forward with the gsf:
00291 if (!strcmp(gsfForwardFit_.value().c_str(),"GSF") )
00292 {
00293 RecQuery fwdQuery("GsfElectronFitter");
00294 fwdQuery.setParameter("mass",0.000511);
00295 fitQuery.setComponent("Fitter",fwdQuery);
00296 }
00297
00298 // to fit forward with the kf:
00299 if (!strcmp(gsfForwardFit_.value().c_str(),"KF") )
00300 {
00301 RecQuery fwdQuery("KFTrajectoryFitter");
00302 fwdQuery.setParameter("mass",0.000511);
00303 fitQuery.setComponent("Fitter",fwdQuery);
00304 }
00305
00306 // Smoother
00307 RecQuery bwdQuery("GsfElectronSmoother");
00308 fitQuery.setComponent("Smoother",bwdQuery);
00309
00310 // Complete query for regional tracks
00311 regionalQuery.setParameter("mass",0.000511);
00312 regionalQuery.setComponent("TrajectoryBuilder",builderQuery);
00313 regionalQuery.setComponent("Smoother",fitQuery);
00314
00315 // Create ConfigAlgorithm
00316 theRegionalTrackFinder = createAlgo<RegionalTrackFinder>(regionalQuery);
00317 // end new from Wolfgang
00318
00319 }
|
|
|
Reimplemented in XANAEsdBuilderForFAMOS. Definition at line 219 of file writeESD.cpp. References XANAGeantEvent::clear, XANAGeneratorEvent::clear, XANAEsdEvent::clear, electronReconstructorName_, XANAMemLog::fill, xana::out, setAllTrackHits, setCaloRecHits, setElectrons, setElectronsGSF, setElectronTracks, setEmClusters, setEndcapClusters, setHadClusters, setHeader, setJets, setMcTruth, setMet, setMuons, setSuperClusters, setTracks, setTriggerInfo, setVertices, writeTree, xanaEsdEvent_, xanaGeantEvent_, xanaGenEvent_, and xanamemlog_.
00220 {
00221
00222 xana::out(1) << "[update] updating XANAEsdBuilder for event " << std::endl;
00223 if (!ev) return ;
00224
00225 // UInt_t saveNumber=TProcessID::GetObjectCount();
00226
00227 setHeader(ev);
00228 if (writeCaloRecHits_) setCaloRecHits(ev);
00229 setEmClusters(ev);
00230 setSuperClusters(ev);
00231 setEndcapClusters(ev);
00232 setHadClusters(ev);
00233 setTracks(ev);
00234 if (writeAllTrackHits_) setAllTrackHits(ev);
00235 setVertices(ev);
00236 setMuons(ev);
00237 if (!strcmp(electronReconstructorName_.value().c_str(),"GSF")) {
00238 setElectronsGSF(ev);
00239 }
00240 else {
00241 setElectronTracks(ev);
00242 setElectrons(ev);
00243 }
00244 setJets(ev);
00245 setMet(ev);
00246 setMcTruth(ev);
00247 setTriggerInfo(ev);
00248
00249 if (writeTree_) writeTree();
00250
00251 if (memlog_) xanamemlog_->fill();
00252
00253 xanaEsdEvent_->clear();
00254 xanaGenEvent_->clear();
00255 xanaGeantEvent_->clear();
00256
00257 // TProcessID::SetObjectCount(saveNumber);
00258
00259 }
|
|
|
Definition at line 394 of file writeESD.cpp. References xana::out, and xanaEsdTree_. Referenced by XANAEsdBuilderForFAMOS::upDate, and upDate.
00395 {
00396
00397 xana::out(2) << "[update] writing event " << std::endl;
00398
00399 xanaEsdTree_->Fill(); //fill the tree
00400
00401 }
|
|
|
Definition at line 132 of file writeESD.h. |
|
|
Definition at line 134 of file writeESD.h. |
|
|
Definition at line 66 of file writeESD.h. Referenced by XANAEsdBuilder. |
|
|
Definition at line 69 of file writeESD.h. Referenced by XANAEsdBuilder. |
|
|
Definition at line 126 of file writeESD.h. Referenced by setElectrons, setEndcapClusters, and XANAEsdBuilder. |
|
|
Definition at line 133 of file writeESD.h. Referenced by setEmClusters. |
|
|
Definition at line 135 of file writeESD.h. Referenced by setEmClusters. |
|
|
Definition at line 76 of file writeESD.h. Referenced by setEmClusters, setEndcapClusters, setSuperClusters, and XANAEsdBuilder. |
|
|
Definition at line 102 of file writeESD.h. Referenced by setEmClusters. |
|
|
Definition at line 68 of file writeESD.h. Referenced by XANAEsdBuilder. |
|
|
Definition at line 83 of file writeESD.h. Referenced by upDate, and XANAEsdBuilder. |
|
|
Definition at line 109 of file writeESD.h. Referenced by setElectrons. |
|
|
Definition at line 111 of file writeESD.h. |
|
|
Definition at line 78 of file writeESD.h. Referenced by setElectrons, setEndcapClusters, and XANAEsdBuilder. |
|
|
Definition at line 104 of file writeESD.h. Referenced by setEndcapClusters. |
|
|
Definition at line 64 of file writeESD.h. Referenced by XANAEsdBuilder. |
|
|
Definition at line 86 of file writeESD.h. Referenced by upDate, and XANAEsdBuilder. |
|
|
Definition at line 79 of file writeESD.h. Referenced by XANAEsdBuilder. |
|
|
Definition at line 114 of file writeESD.h. |
|
|
Definition at line 94 of file writeESD.h. Referenced by XANAEsdBuilder. |
|
|
Definition at line 112 of file writeESD.h. |
|
|
Definition at line 89 of file writeESD.h. Referenced by XANAEsdBuilder. |
|
|
Definition at line 93 of file writeESD.h. Referenced by XANAEsdBuilder. |
|
|
Definition at line 63 of file writeESD.h. Referenced by XANAEsdBuilder. |
|
|
Definition at line 113 of file writeESD.h. |
|
|
Definition at line 90 of file writeESD.h. Referenced by XANAEsdBuilder. |
|
|
Definition at line 82 of file writeESD.h. Referenced by XANAEsdBuilder. |
|
|
Definition at line 108 of file writeESD.h. |
|
|
Definition at line 130 of file writeESD.h. |
|
|
Definition at line 130 of file writeESD.h. Referenced by setElectrons. |
|
|
Definition at line 130 of file writeESD.h. |
|
|
Definition at line 70 of file writeESD.h. Referenced by XANAEsdBuilder. |
|
|
Definition at line 77 of file writeESD.h. Referenced by setElectrons, setSuperClusters, and XANAEsdBuilder. |
|
|
Definition at line 103 of file writeESD.h. Referenced by setSuperClusters. |
|
|
Definition at line 100 of file writeESD.h. |
|
|
Definition at line 138 of file writeESD.h. Referenced by upDate. |
|
|
Definition at line 105 of file writeESD.h. |
|
|
Definition at line 80 of file writeESD.h. Referenced by XANAEsdBuilder. |
|
|
Definition at line 106 of file writeESD.h. Referenced by setElectronTracks. |
|
|
Definition at line 65 of file writeESD.h. Referenced by XANAEsdBuilder. |
|
|
Definition at line 81 of file writeESD.h. Referenced by XANAEsdBuilder. |
|
|
Definition at line 107 of file writeESD.h. |
|
|
Definition at line 72 of file writeESD.h. Referenced by XANAEsdBuilder. |
|
|
Definition at line 67 of file writeESD.h. Referenced by XANAEsdBuilder. |
|
|
Definition at line 73 of file writeESD.h. Referenced by XANAEsdBuilder. |
|
|
Definition at line 71 of file writeESD.h. Referenced by XANAEsdBuilder. |
|
|
Definition at line 62 of file writeESD.h. Referenced by XANAEsdBuilder. |
|
|
Definition at line 119 of file writeESD.h. Referenced by setElectrons, setElectronTracks, setEleTrackHits, setEmClusters, setEndcapClusters, setSuperClusters, XANAEsdBuilderForFAMOS::upDate, upDate, and XANAEsdBuilder. |
|
|
Definition at line 117 of file writeESD.h. Referenced by XANAEsdBuilder. |
|
|
Definition at line 118 of file writeESD.h. Referenced by XANAEsdBuilder, and ~XANAEsdBuilder. |
|
|
Definition at line 116 of file writeESD.h. Referenced by writeTree, XANAEsdBuilder, and ~XANAEsdBuilder. |
|
|
Definition at line 124 of file writeESD.h. Referenced by XANAEsdBuilderForFAMOS::upDate, upDate, and XANAEsdBuilder. |
|
|
Definition at line 123 of file writeESD.h. Referenced by XANAEsdBuilder. |
|
|
Definition at line 122 of file writeESD.h. Referenced by XANAEsdBuilderForFAMOS::setMcTruth, XANAEsdBuilderForFAMOS::upDate, upDate, and XANAEsdBuilder. |
|
|
Definition at line 121 of file writeESD.h. Referenced by XANAEsdBuilder. |
|
|
Definition at line 128 of file writeESD.h. Referenced by XANAEsdBuilderForFAMOS::upDate, upDate, XANAEsdBuilder, and ~XANAEsdBuilder. |
1.2.14 written by Dimitri van Heesch,
© 1997-2002