#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. |