#include <writeESD.h>
Inheritance diagram for XANAEsdBuilder:
Public Member Functions | |
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< bool > | hZZVertexReconstructor_ |
SimpleConfigurable< std::string > | gsfForwardFit_ |
SimpleConfigurable< std::string > | electronTrackSeeding_ |
SimpleConfigurable< float > | eCandidateEtaCut_ |
SimpleConfigurable< float > | eCandidatePhiCut_ |
SimpleConfigurable< float > | eCandidateEOverPMin_ |
SimpleConfigurable< float > | eCandidateEOverPMax_ |
SimpleConfigurable< bool > | jetsFromTrueInformation_ |
SimpleConfigurable< bool > | metsFromTrueInformation_ |
SimpleConfigurable< std::string > | l1Menu_ |
SimpleConfigurable< std::string > | hltMenu_ |
Protected Types | |
typedef RecCollection< TTrack > | Collection |
Protected Member Functions | |
virtual void | upDate (G3EventProxy *) |
void | upDate (G3SetUp *) |
void | setHeader (G3EventProxy *) |
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 | setPhotons (G3EventProxy *) |
void | setElectronsGSF (G3EventProxy *) |
void | setElectronsGSFPixelMatch (G3EventProxy *) |
void | setElectronsZZVertex (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< PhotonCandidate > * | photons |
RecCollection< ConcreteRecTrack > * | 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_ |
int | nbPhotons_ |
map< CellID, XANACaloRecHit, less< CellID > > | allCaloRecHits_ |
map< CellID, XANACaloRecHit, less< CellID > > | clusterizedCaloRecHits_ |
vector< CellID > | allCells_ |
vector< CellID > | clusterizedCells_ |
vector< RecTrack > | electronTracks |
RegionalTrackFinder * | theRegionalTrackFinder |
VertexTrackCompatibilityEstimator * | theVertexTrackCompatibilityEstimator |
|
Definition at line 110 of file writeESD.h. |
|
Definition at line 112 of file writeESD.cpp. References XANAGeantEvent::addEsdEvent(), XANAGeantEvent::addGeneratorEvent(), autosave_, bufferSize_, ciso_, clusterizerName_, clusters, compressionLevel_, electronReconstructorName_, electrons, electronTrackSeeding_, endcapSuperClusterizerName_, fileName_, gsfForwardFit_, hcalClusterizerName_, hltMenu_, hZZVertexReconstructor_, jetsFromTrueInformation_, l1Menu_, memlog_, metsFromTrueInformation_, muonReconstructorName_, muons, xana::out(), splitMode_, superClusterizerName_, superClusters, trackReconstructorName_, tracks, treeName_, vertexReconstructorName_, vertices, writeAllTrackHits_, writeCaloRecHits_, writeEleTrackHits_, writeTrackHits_, writeTree_, xanaEsdEvent_, xanaEsdEventBranch_, xanaEsdFile_, xanaEsdTree_, xanaGeantEvent_, xanaGeantEventBranch_, xanaGenEvent_, xanaGenEventBranch_, and xanamemlog_.
00112 : clusters(0), superClusters(0), endcapSuperClusters(0), towers(0), tracks(0), vertices(0), 00113 muons(0), electrons(0), photons(0), eltracks(0), jets(0), mets(0), hlt(0), xanaEsdTree_(0), xanaEsdEventBranch_(0), xanaEsdFile_(0), 00114 xanaEsdEvent_(0), xanaGenEventBranch_(0), xanaGenEvent_(0), xanaGeantEventBranch_(0), 00115 xanaGeantEvent_(0), ciso_(0), xanamemlog_(0), nbClusters_(0), nbTracks_(0), nbElectrons_(0) 00116 00117 { 00118 00119 // initialize observer 00120 xana::out(1) << "Constructing an XANAEsdBuilder" << endl ; 00121 Observer<G3EventProxy *>::init() ; 00122 Observer<G3SetUp *>::init() ; 00123 00124 // algos configuration 00125 clusterizerName_ = 00126 SimpleConfigurable<std::string>("EGBCluster","XANADOO:Clusterizer"); 00127 superClusterizerName_ = 00128 SimpleConfigurable<std::string>("EGSCluster","XANADOO:SuperClusterizer"); 00129 endcapSuperClusterizerName_ = 00130 SimpleConfigurable<std::string>("EGECluster","XANADOO:EndcapSuperClusterizer"); 00131 hcalClusterizerName_ = 00132 SimpleConfigurable<std::string>("TowerBuilder","XANADOO:HcalClusterizer"); 00133 trackReconstructorName_= 00134 SimpleConfigurable<std::string>("TransientCombinatorialTrackFinder","XANADOO:TrackReconstructor"); 00135 vertexReconstructorName_= 00136 SimpleConfigurable<std::string>("PrincipalVertexFinder","XANADOO:VertexReconstructor"); 00137 muonReconstructorName_= 00138 SimpleConfigurable<std::string>("GlobalMuonReconstructor","XANADOO:MuonReconstructor"); 00139 electronReconstructorName_= 00140 SimpleConfigurable<std::string>("GSF","XANADOO:ElectronReconstructor"); 00141 gsfForwardFit_= 00142 SimpleConfigurable<std::string>("GSF","XANADOO:gsfForwardFit"); 00143 electronTrackSeeding_= 00144 SimpleConfigurable<std::string>("PixelMatch","XANADOO:ElectronTrackSeeding"); 00145 hZZVertexReconstructor_= 00146 SimpleConfigurable<bool>(false,"XANADOO:hZZVertexReconstructor"); 00147 jetsFromTrueInformation_ = 00148 SimpleConfigurable<bool>(false,"XANADOO:jetsFromTrueInformation"); 00149 metsFromTrueInformation_ = 00150 SimpleConfigurable<bool>(false,"XANADOO:metsFromTrueInformation"); 00151 // get L1 trigger config from Data/TriggerData/L1GlobalTrigger/$lumichoice/trigger_menu.dat 00152 l1Menu_ = 00153 SimpleConfigurable<std::string>("lumi2x1033","L1Globaltrigger:TriggerMenu"); 00154 // set HLT trigger config from xml file 00155 hltMenu_ = 00156 SimpleConfigurable<std::string>("2x1033HLT.xml","HighLevelTriggerXML:XMLfile"); 00157 00158 00159 // xanadoo steering 00160 writeTree_ = SimpleConfigurable<bool>(false,"XANADOO:writeEsd"); 00161 writeCaloRecHits_ = SimpleConfigurable<bool>(false,"XANADOO:EsdWithCaloRecHits"); 00162 writeTrackHits_ = SimpleConfigurable<bool>(false,"XANADOO:EsdWithTrackHits"); writeAllTrackHits_ = SimpleConfigurable<bool>(false,"XANADOO:EsdWithAllTrackHits"); 00163 writeEleTrackHits_ = SimpleConfigurable<bool>(false,"XANADOO:EsdWithEleTrackHits"); 00164 00165 // memory log 00166 memlog_ = SimpleConfigurable<bool>(false,"XANADOO:memlog"); 00167 if (memlog_) xanamemlog_=new XANAMemLog(); 00168 00169 // creates output file 00170 fileName_ = SimpleConfigurable<std::string>("single_eminus_pt100.root","XANADOO:FileName"); 00171 xanaEsdFile_ = new TFile(fileName_.value().c_str(),"RECREATE"); 00172 compressionLevel_ = SimpleConfigurable<int>(1,"XANADOO:CompressionLevel"); 00173 xanaEsdFile_->SetCompressionLevel(compressionLevel_); 00174 00175 // create TTree 00176 autosave_ = SimpleConfigurable<int>(1000000000,"XANADOO:AutoSaveSize"); 00177 bufferSize_ = SimpleConfigurable<int>(256000,"XANADOO:BufferSize"); 00178 splitMode_ = SimpleConfigurable<int>(99,"XANADOO:SplitMode"); 00179 xana::out(1) << "creating xanaEsdTree .."<<endl; 00180 treeName_ = SimpleConfigurable<std::string>("XANAESD","XANADOO:TreeName"); 00181 xanaEsdTree_ = new TTree(treeName_.value().c_str(),"test XANADOO ESD tree"); 00182 xanaEsdTree_->SetAutoSave(autosave_); 00183 int bufferSizeValue = bufferSize_.value(); 00184 if (splitMode_.value()) bufferSizeValue /= 4; //from ROOT example 00185 00186 // initialize event and create branches 00187 xanaEsdEvent_ = new XANAEsdEvent(); 00188 xana::out(1) << "creating xanaEsdEventBranch .."<<endl; 00189 xanaEsdEventBranch_ = 00190 xanaEsdTree_->Branch("Event.","XANAEsdEvent",&xanaEsdEvent_,bufferSizeValue,splitMode_.value()); 00191 xana::out(1) << "xanaEsdEventBranch branch created .."<<endl; 00192 00193 xanaGenEvent_ = new XANAGeneratorEvent(); 00194 xana::out(1) << "creating xanaGeneratorEventBranch .."<<endl; 00195 xanaGenEventBranch_ = 00196 xanaEsdTree_->Branch("GeneratorEvent.","XANAGeneratorEvent",&xanaGenEvent_,bufferSizeValue,splitMode_.value()); 00197 xana::out(1) << "xanaGeneratorEventBranch branch created .."<<endl; 00198 00199 xanaGeantEvent_ = new XANAGeantEvent(); 00200 xana::out(1) << "creating xanaGeantEventBranch .."<<endl; 00201 xanaGeantEventBranch_ = 00202 xanaEsdTree_->Branch("GeantEvent.","XANAGeantEvent",&xanaGeantEvent_,bufferSizeValue,splitMode_.value()); 00203 xana::out(1) << "xanaGeantEventBranch branch created .."<<endl; 00204 00205 // create links between generator-geant event and ESD-geant Event 00206 xanaGeantEvent_->addGeneratorEvent(xanaGenEvent_); 00207 xanaGeantEvent_->addEsdEvent(xanaEsdEvent_); 00208 00209 //CC is this still needed? 00210 ciso_ = Singleton<IsoCalculator>::instance(); 00211 00212 } |
|
Definition at line 215 of file writeESD.cpp. References memlog_, xana::out(), XANAMemLog::writeHistogram(), xanaEsdFile_, xanaEsdTree_, and xanamemlog_.
00216 { 00217 00218 xana::out(1) << "Deleting XANAEsdBuilder" << std::endl; 00219 xanaEsdFile_->Write(); 00220 xanaEsdTree_->Print(); 00221 delete xanaEsdFile_; 00222 if (memlog_) xanamemlog_->writeHistogram(); 00223 00224 } |
|
Definition at line 422 of file writeESD.cpp. Referenced by setEmClusters().
00422 { 00423 00424 if (algo==1) return std::string("EgammaBasicIsland"); 00425 else if (algo>=100) return std::string("EgammaBasicHybrid"); 00426 else return std::string(""); 00427 00428 } |
|
Referenced by upDate(). |
|
Referenced by upDate(). |
|
Definition at line 502 of file writeESDForFAMOS.cpp. References XANAEsdEvent::addElectronCandidate(), XANAEsdEvent::addElectronSeed(), XANAEsdEvent::addElectronSuperCluster(), ciso_, electrons, 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().
00503 { 00504 00505 xana::out(2) << "[update] electrons " << std::endl; 00506 00507 RecCollection<ElectronCandidate> electrons(RecQuery("EGFElectron","1.0")); 00508 RecCollection<ElectronCandidate>::const_iterator electron; 00509 xana::out(5) << "[update] "<<electrons.size()<<" EGFElectron found " << std::endl; 00510 XANAElectronCandidate *xElectron; 00511 nbElectrons_=0; 00512 for (electron=electrons.begin(); electron!=electrons.end(); electron++) { 00513 nbElectrons_++ ; 00514 xana::out(1)<<"[OVAL] new electron "<<std::endl ; 00515 xElectron = new XANAElectronCandidate(); 00516 00517 // printing electron quantities from ElectronCandidate 00518 xana::out(8)<<"[OVAL] electron super cluster energy "<<electron->SCE()<<std::endl ; 00519 xana::out(8)<<"[OVAL] electron track px "<<electron->TRPx()<<std::endl ; 00520 xana::out(8)<<"[OVAL] electron track py "<<electron->TRPy()<<std::endl ; 00521 xana::out(8)<<"[OVAL] electron track pz "<<electron->TRPz()<<std::endl ; 00522 xana::out(8)<<"[OVAL] electron super cluster Et "<<electron->SCEt()<<std::endl ; 00523 xana::out(8)<<"[OVAL] electron super cluster eta "<<electron->SCEta()<<std::endl ; 00524 xana::out(8)<<"[OVAL] electron super cluster phi "<<electron->SCPhi()<<std::endl ; 00525 xana::out(8)<<"[OVAL] electron track eta "<<electron->TREta()<<std::endl ; 00526 xana::out(8)<<"[OVAL] electron track phi "<<electron->TRPhi()<<std::endl ; 00527 xana::out(8)<<"[OVAL] electron e/p "<<electron->ele_EoP()<<std::endl ; 00528 xana::out(8)<<"[OVAL] electron delta eta "<<electron->DeltaEta()<<std::endl ; 00529 00530 const TTrack * eltrack=electron->GetTRElectron(); 00531 const EgammaVSuperCluster *sc=electron->GetEGCandidate()->data(); 00532 // calculate from sc and track 00533 HepPoint3D superClusterPosition; 00534 if (sc) { 00535 const EgammaCluster *seed = sc->seed(); 00536 00537 float superClusterEnergy = sc->energy();; 00538 xana::out(8)<<"[OVAL] written electron super cluster energy "<<superClusterEnergy<<std::endl ; 00539 xElectron->setSuperClusterEnergy(superClusterEnergy); 00540 float theta = sc->theta(); 00541 float x = sc->radius()*sin(theta)*cos(sc->phi()); 00542 float y = sc->radius()*sin(theta)*sin(sc->phi()); 00543 float z = sc->radius()*cos(theta); 00544 superClusterPosition=HepPoint3D(x,y,z); 00545 xana::out(8)<<"[OVAL] written electron super cluster position "<<superClusterPosition<<std::endl ; 00546 xElectron->setSuperClusterPosition(superClusterPosition); 00547 HepLorentzVector momentum; 00548 momentum.setPx(eltrack->momentumAtVertex().x()); 00549 momentum.setPy(eltrack->momentumAtVertex().y()); 00550 momentum.setPz(eltrack->momentumAtVertex().z()); 00551 momentum *= electron->SCE() / eltrack->momentumAtVertex().mag(); 00552 momentum.setE(superClusterEnergy); 00553 xana::out(8)<<"[OVAL] written electron momentum at vertex "<<momentum<<std::endl ; 00554 xElectron->setMomentumAtVertex(momentum); 00555 00556 // extrapolations from last track point 00557 TrajectoryStateOnSurface last = eltrack->outermostState(); 00558 if (!last.isValid()) 00559 throw Genexception("[writeESDForFamos::update], invalid tsos") ; 00560 // use 3D impactPointExtrapolator 00561 ImpactPointExtrapolator theExtrapolator ; 00562 // and an analytical (helix) propagator with material effect 00563 const MultipleScatteringUpdator aElectronMaterialEffectUpdator(0.000511); 00564 AnalyticalPropagator *ap = new AnalyticalPropagator(alongMomentum); 00565 PropagatorWithMaterial *thePropagator = new PropagatorWithMaterial(*(ap),aElectronMaterialEffectUpdator); 00566 delete ap; 00567 00568 // extrapolation to super cluster 00569 GlobalPoint pos(x, y, z) ; 00570 TrajectoryStateOnSurface tssuper = 00571 theExtrapolator.extrapolate(*last.freeTrajectoryState(), pos, *thePropagator) ; 00572 if (!tssuper.isValid()) tssuper=last; 00573 HepLorentzVector *trackMomentumAtCalo=new HepLorentzVector(tssuper.globalMomentum().x(),tssuper.globalMomentum().y(),tssuper.globalMomentum().z(),tssuper.globalMomentum().mag()); 00574 xana::out(8)<<"[OVAL] written track momentum at super cluster "<<*trackMomentumAtCalo<<std::endl ; 00575 xElectron->setTrackMomentumAtCalo(*trackMomentumAtCalo); 00576 HepPoint3D *trackPositionAtCalo=new HepPoint3D(tssuper.globalPosition().x(),tssuper.globalPosition().y(),tssuper.globalPosition().z()); 00577 xana::out(8)<<"[OVAL] written track position at super cluster "<<*trackPositionAtCalo<<std::endl ; 00578 xElectron->setTrackPositionAtCalo(*trackPositionAtCalo); 00579 00580 float eSuperClusterOverP = -1.; 00581 if (trackMomentumAtCalo->e()>0.) eSuperClusterOverP = superClusterEnergy / trackMomentumAtCalo->e(); 00582 xana::out(8)<<"[OVAL] written E super cluster / p "<<eSuperClusterOverP<<std::endl ; 00583 xElectron->setESuperClusterOverP(eSuperClusterOverP); 00584 delete trackMomentumAtCalo; 00585 00586 float deta = superClusterPosition.pseudoRapidity() - trackPositionAtCalo->pseudoRapidity(); 00587 xana::out(8)<<"[OVAL] written deta (super - track) "<<deta<<std::endl ; 00588 xElectron->setDeltaEtaSuperClusterAtCalo(deta); 00589 float dphi=superClusterPosition.phi()-trackPositionAtCalo->phi(); 00590 if (fabs(dphi) > pi) dphi = dphi < 0 ? 2.*pi + dphi : dphi - 2.*pi ; 00591 xana::out(8)<<"[OVAL] written dphi (super - track) "<<dphi<<std::endl ; 00592 xElectron->setDeltaPhiSuperClusterAtCalo(dphi); 00593 delete trackPositionAtCalo; 00594 00595 // extrapolation to seed cluster 00596 Float_t thetas=2.0*atan(exp(-1*seed->Eta())); 00597 Float_t seedx=seed->Radius()*cos(seed->Phi())*sin(thetas); 00598 Float_t seedy=seed->Radius()*sin(seed->Phi())*sin(thetas); 00599 Float_t seedz=seed->Radius()*cos(thetas); 00600 GlobalPoint seedpos(seedx, seedy, seedz) ; 00601 TrajectoryStateOnSurface tsseed = 00602 theExtrapolator.extrapolate(*last.freeTrajectoryState(), seedpos, *thePropagator) ; 00603 delete thePropagator; 00604 if (!tsseed.isValid()) tsseed=last; 00605 HepPoint3D *trackPositionAtSeed=new HepPoint3D(tsseed.globalPosition().x(),tsseed.globalPosition().y(),tsseed.globalPosition().z()); 00606 00607 float eSeedClusterOverP= -1. ; 00608 float thetaseed = 2.*atan(exp(-seed->Eta())); 00609 float seedEnergy = 0.; 00610 if (thetaseed != 0.) seedEnergy = seed->Et() / sin(thetaseed) ; 00611 if( tsseed.globalMomentum().mag() > 0.) eSeedClusterOverP = seedEnergy / tsseed.globalMomentum().mag(); 00612 xana::out(8)<<"[OVAL] written E seed cluster / p "<<eSeedClusterOverP<<std::endl ; 00613 xElectron->setESeedClusterOverP(eSeedClusterOverP); 00614 00615 deta = seed->Eta() - trackPositionAtSeed->pseudoRapidity(); 00616 xana::out(8)<<"[OVAL] written deta (seed - track) "<<deta<<std::endl ; 00617 xElectron->setDeltaEtaSeedClusterAtCalo(deta); 00618 dphi=seed->Phi()-trackPositionAtSeed->phi(); 00619 if (fabs(dphi) > pi) dphi = dphi < 0 ? 2.*pi + dphi : dphi - 2.*pi ; 00620 xana::out(8)<<"[OVAL] written dphi (seed - track) "<<dphi<<std::endl ; 00621 xElectron->setDeltaPhiSeedClusterAtCalo(dphi); 00622 delete trackPositionAtSeed; 00623 00624 // super cluster momentum, assuming perfect helix and vertex at origin 00625 GlobalPoint assumedVertex(0.,0.,0.); 00626 GlobalPoint measuredPoint(superClusterPosition.x(), superClusterPosition.y(), superClusterPosition.z()) ; 00627 FTSFromVertexToPointFactory ftsFactory; 00628 FreeTrajectoryState ftsAtCalo = 00629 ftsFactory(measuredPoint,assumedVertex,superClusterEnergy,eltrack->charge()); 00630 HepLorentzVector superClusterMomentum; 00631 superClusterMomentum.setPx(ftsAtCalo.momentum().x()); 00632 superClusterMomentum.setPy(ftsAtCalo.momentum().y()); 00633 superClusterMomentum.setPz(ftsAtCalo.momentum().z()); 00634 superClusterMomentum.setE(superClusterEnergy); 00635 xana::out(8)<<"[OVAL] written super cluster momentum "<<superClusterMomentum<<std::endl ; 00636 xElectron->setSuperClusterMomentum(superClusterMomentum); 00637 00638 float caloIsolation = ciso_->getIso(sc->eta(),sc->phi()); 00639 xElectron->setCaloIsolation(caloIsolation); 00640 } 00641 int isTrackIsolated = electron->TRisISO(); 00642 xElectron->setTrackIsolation(isTrackIsolated); 00643 float hadronicOverEm = electron->ele_HoE(); 00644 xElectron->setHadronicOverEm(hadronicOverEm); 00645 00646 xElectron->setAlgoName("EgammaCandidate"); 00647 00648 xana::out(2) << "[update] adding electron candidate No " << nbElectrons_ << std::endl; 00649 xanaEsdEvent_->addElectronCandidate(xElectron); 00650 00651 if (sc) { 00652 XANASuperCluster *xscluster=new XANASuperCluster(); 00653 xscluster->setEnergy(sc->energy()); 00654 xscluster->setPosition(sc->position()); 00655 xscluster->setSum1(sc->seed()->getS1()); 00656 xscluster->setSum4(sc->seed()->getS4()); 00657 xscluster->setSum9(sc->seed()->getS9()); 00658 xscluster->setSum25(sc->seed()->getS25()); 00659 xscluster->setHadronicOverEm(sc->seed()->getHoe()); 00660 // iso not available from endcap super clusters 00661 // compute from IsoCalculator 00662 float iso = ciso_->getIso(sc->eta(),sc->phi()); 00663 xscluster->setCaloIsolation(iso); 00664 xscluster->setDisc1(sc->seed()->getDisc1()); 00665 xscluster->setDisc2(sc->seed()->getDisc2()); 00666 xscluster->setDisc3(sc->seed()->getDisc3()); 00667 HepSymMatrix cov(2); 00668 cov(1,1) = sc->seed()->getCovEE(); 00669 cov(1,2) = sc->seed()->getCovEP(); 00670 cov(2,2) = sc->seed()->getCovPP(); 00671 xscluster->setPositionCovarianceMatrix(cov); 00672 xscluster->setEnergyScaleFactor(sc->energy()/sc->energyUncorrected()); 00673 if ( fabs(sc->seed()->Eta())<1.4791 ) xscluster->setAlgoName(superClusterizerName_.value()); 00674 else xscluster->setAlgoName(endcapSuperClusterizerName_.value()); 00675 xanaEsdEvent_->addElectronSuperCluster(xscluster,xElectron); 00676 delete xscluster; 00677 } 00678 00679 00680 // electron seed 00681 XANAElectronSeed *xelseed= new XANAElectronSeed(); 00682 const EPHLTElectronSeed * trseed = dynamic_cast<const EPHLTElectronSeed *>(&eltrack->seed().basicSeed()); 00683 Short_t dir = 1; 00684 if (trseed->direction() == "oppositeToMomentum") dir = -1; 00685 xelseed->setDirection(dir); 00686 xelseed->setNumberOfHits(trseed->measurements().size()); 00687 TrajectoryStateOnSurface tsseedfirst = 00688 trseed->measurements()[0].updatedState(); 00689 HepPoint3D seedPositionAtFirst(tsseedfirst.globalPosition().x(),tsseedfirst.globalPosition().y(), 00690 tsseedfirst.globalPosition().z()); 00691 HepVector3D seedMomentumAtFirst(tsseedfirst.globalMomentum().x(),tsseedfirst.globalMomentum().y(), 00692 tsseedfirst.globalMomentum().z()); 00693 xelseed->setMomentumAtFirstPoint(seedMomentumAtFirst); 00694 xelseed->setPositionAtFirstPoint(seedPositionAtFirst); 00695 TrajectoryStateOnSurface tsseedlast = 00696 trseed->measurements()[trseed->measurements().size()-1].updatedState(); 00697 HepPoint3D seedPositionAtLast(tsseedlast.globalPosition().x(),tsseedlast.globalPosition().y(), 00698 tsseedlast.globalPosition().z()); 00699 HepVector3D seedMomentumAtLast(tsseedlast.globalMomentum().x(),tsseedlast.globalMomentum().y(), 00700 tsseedlast.globalMomentum().z()); 00701 xelseed->setMomentumAtLastPoint(seedMomentumAtLast); 00702 xelseed->setPositionAtLastPoint(seedPositionAtLast); 00703 xelseed->setAlgoName("Egammadefault"); 00704 00705 // we need an electron track just filled to make operator== work 00706 XANAElectronTrack *xTrack=new XANAElectronTrack; 00707 TrajectoryStateOnSurface tsi = eltrack->innermostState() ; 00708 TrajectoryStateOnSurface tso = eltrack->outermostState() ; 00709 HepPoint3D firstHit(tsi.globalPosition().x(),tsi.globalPosition().y(), 00710 tsi.globalPosition().z()); 00711 HepPoint3D lastHit(tso.globalPosition().x(),tso.globalPosition().y(), 00712 tso.globalPosition().z()); 00713 xTrack->setPositionAtFirstPoint(firstHit); 00714 xTrack->setPositionAtLastPoint(lastHit); 00715 00716 float detavtx = superClusterPosition.pseudoRapidity() - XANAElectronTools::etaTransformation(xTrack->getMomentumAtFirstPoint().pseudoRapidity(), 00717 xTrack->getPositionAtFirstPoint().z(),xTrack->getPositionAtFirstPoint().perp()); 00718 xElectron->setDeltaEtaSuperClusterAtVtx(detavtx); 00719 float dphivtx=superClusterPosition.phi()-XANAElectronTools::phiTransformation(xTrack->getMomentumAtFirstPoint().perp(),xTrack->getMomentumAtFirstPoint().pseudoRapidity(), 00720 xTrack->getMomentumAtFirstPoint().phi(), xTrack->getCharge(),xTrack->getPositionAtFirstPoint().perp()); 00721 if (fabs(dphivtx) > pi) dphivtx = dphivtx < 0 ? 2.*pi + dphivtx : dphivtx - 2.*pi ; 00722 xElectron->setDeltaPhiSuperClusterAtVtx(dphivtx); 00723 00724 xanaEsdEvent_->addElectronSeed(xelseed,xTrack); 00725 xanaEsdEvent_->setElectronTrack(xTrack,xElectron); 00726 delete xelseed; 00727 delete xTrack; 00728 00729 delete xElectron; 00730 } 00731 } |
|
Referenced by upDate(). |
|
Referenced by upDate(). |
|
Referenced by upDate(). |
|
Definition at line 943 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, tracks, writeEleTrackHits_, and xanaEsdEvent_. Referenced by XANAEsdBuilderForFAMOS::upDate(), and upDate().
00944 {// fill electron track container for normal electron tracks 00945 // RecCollection<TTrack> tracks( RecQuery("EPTracks","1.0")); 00946 RecCollection<TTrack> tracks( RecQuery("EPFTracks","1.0")); 00947 RecCollection<TTrack>::const_iterator eltrack; 00948 xana::out(5) << "[update] "<<tracks.size()<<" electron tracks found " << std::endl; 00949 for (eltrack=tracks.begin(); eltrack!=tracks.end(); eltrack++) { 00950 XANAElectronTrack *xTrack = new XANAElectronTrack; 00951 TrajectoryStateOnSurface tsi = eltrack->innermostState() ; 00952 TrajectoryStateOnSurface tso = eltrack->outermostState() ; 00953 HepVector3D momentumAtVertex(eltrack->momentumAtVertex().x(), 00954 eltrack->momentumAtVertex().y(),eltrack->momentumAtVertex().z()); 00955 HepPoint3D firstHit(tsi.globalPosition().x(),tsi.globalPosition().y(), 00956 tsi.globalPosition().z()); 00957 HepVector3D momentumAtFirst(tsi.globalMomentum().x(),tsi.globalMomentum().y(), 00958 tsi.globalMomentum().z()); 00959 HepPoint3D lastHit(tso.globalPosition().x(),tso.globalPosition().y(), 00960 tso.globalPosition().z()); 00961 HepVector3D momentumAtLast(tso.globalMomentum().x(),tso.globalMomentum().y(), 00962 tso.globalMomentum().z()); 00963 xTrack->setCharge(eltrack->charge()); 00964 xTrack->setChi2OverDof(eltrack->normalisedChiSquared()); 00965 xTrack->setNumberOfHits(eltrack->foundHits()); 00966 xTrack->setNumberOfLostHits(eltrack->lostHits()); 00967 xTrack->setImpactParameter(eltrack->impactParameter3D().value()); 00968 xTrack->setLongImpactParameter(eltrack->zImpactParameter().value()); 00969 xTrack->setTransImpactParameter(eltrack->transverseImpactParameter().value()); 00970 xTrack->setMomentumAtVertex(momentumAtVertex); 00971 xTrack->setPositionAtFirstPoint(firstHit); 00972 xTrack->setMomentumAtFirstPoint(momentumAtFirst); 00973 xTrack->setPositionAtLastPoint(lastHit); 00974 xTrack->setMomentumAtLastPoint(momentumAtLast); 00975 xTrack->setAlgoName("EPFTrack"); 00976 // xanaEsdEvent_->addElectronTrack(xTrack,xElectron); 00977 xanaEsdEvent_->addElectronTrack(xTrack); 00978 00979 // hits (if requested) 00980 // must be done after having added electron track! 00981 if (writeEleTrackHits_) { 00982 std::vector<TrajectoryMeasurement> MyEleTrMeas = eltrack->measurements(); 00983 setEleTrackHits(MyEleTrMeas,xTrack); 00984 } 00985 delete xTrack; 00986 } 00987 } |
|
Definition at line 340 of file writeESD.cpp. References XANAEsdEvent::addEleTrackHit(), xana::out(), XANATrackHit::setIsBarrel(), XANATrackHit::setIsStereo(), and xanaEsdEvent_. Referenced by setElectronTracks().
00341 { 00342 // add electron track hits for this track, if asked for 00343 00344 // std::vector<TrajectoryMeasurement> MyEleTrMeas = eltrack->measurements(); 00345 std::vector<TrajectoryMeasurement>::const_iterator IterEleTrMeas; 00346 00347 xana::out(2) << "[update] adding electronic track hits " << std::endl; 00348 xana::out(2) << "[update] number of measurements " <<MyEleTrMeas.size() << std::endl; 00349 // xana::out(2) << "[update] number of valid hits "<<eltrack->foundHits()<< std::endl; 00350 00351 XANATrackHit *elethit=0; 00352 int nbhits=0; 00353 for (IterEleTrMeas=MyEleTrMeas.begin(); IterEleTrMeas!=MyEleTrMeas.end(); IterEleTrMeas++) 00354 { 00355 // taking the rec hit 00356 RecHit IterEleRecHit = IterEleTrMeas->recHit(); 00357 // checking if it is valid or not 00358 if( !(IterEleRecHit.isValid()) ){xana::out(2) << "[update] non valid hit" << std::endl;} 00359 00360 // taking the updated state 00361 TrajectoryStateOnSurface IterEleTSN = IterEleTrMeas->updatedState(); 00362 // checking if it is valid or not 00363 if( !(IterEleTSN.isValid()) ){xana::out(2) << "[update] non valid updated state" << std::endl;} 00364 00365 00366 // analysis only if both are valid 00367 if (!(IterEleRecHit.isValid()) && (IterEleTSN.isValid())){xana::out(2)<<"[update] non valid hit but valid updated state"<< std::endl;} 00368 if ((IterEleRecHit.isValid()) && !(IterEleTSN.isValid())){xana::out(2)<<"[update] non valid updated state but valid hit"<< std::endl;} 00369 if( IterEleRecHit.isValid() && IterEleTSN.isValid() ) 00370 { 00371 HepPoint3D elehitposition( (IterEleRecHit).globalPosition().x(), 00372 (IterEleRecHit).globalPosition().y(), 00373 (IterEleRecHit).globalPosition().z()); 00374 00375 HepPoint3D eleupdposition( (IterEleTSN).globalPosition().x(), 00376 (IterEleTSN).globalPosition().y(), 00377 (IterEleTSN).globalPosition().z()); 00378 00379 HepVector3D eleupdmomentum( (IterEleTSN).globalMomentum().x(), 00380 (IterEleTSN).globalMomentum().y(), 00381 (IterEleTSN).globalMomentum().z()); 00382 00383 elethit = new XANATrackHit( elehitposition, eleupdposition, eleupdmomentum ); 00384 elethit->setIsStereo((IterEleRecHit).det().detUnits().front()->type().isStereo()); 00385 Bool_t isBarrel = (((IterEleRecHit).det().detUnits().front()->type().part() == barrel) ? true : false); 00386 elethit->setIsBarrel(isBarrel); 00387 00388 xana::out(1) << "[update] ELE - NEW STEP" << std::endl; 00389 xana::out(1) << "[update] new hit" << std::endl; 00390 xana::out(1) << (IterEleRecHit).globalPosition().x() << std::endl; 00391 xana::out(1) << (IterEleRecHit).globalPosition().y() << std::endl; 00392 xana::out(1) << (IterEleRecHit).globalPosition().z() << std::endl; 00393 xana::out(1) << "[update] new updated state: position" << std::endl; 00394 xana::out(1) << (IterEleTSN).globalPosition().x() << std::endl; 00395 xana::out(1) << (IterEleTSN).globalPosition().y() << std::endl; 00396 xana::out(1) << (IterEleTSN).globalPosition().z() << std::endl; 00397 xana::out(1) << "[update] new updated state: momentum" << std::endl; 00398 xana::out(1) << (IterEleTSN).globalMomentum().x() << std::endl; 00399 xana::out(1) << (IterEleTSN).globalMomentum().y() << std::endl; 00400 xana::out(1) << (IterEleTSN).globalMomentum().z() << std::endl; 00401 00402 xanaEsdEvent_->addEleTrackHit(elethit, xTrack); 00403 ++nbhits; 00404 delete elethit; 00405 00406 } // valid hit and upd state 00407 } // loop on measurements 00408 xana::out(2) << "[update] number of hits that were added "<<nbhits<< std::endl; 00409 } |
|
Definition at line 251 of file writeESDForFAMOS.cpp. References XANAEsdEvent::addEmCluster(), XANAEsdEvent::addEmClusterHit(), clusterizedCaloRecHits_, clusterizedCells_, clusterizerName_, clusters, clusters, getAlgoName(), xana::out(), and xanaEsdEvent_. Referenced by XANAEsdBuilderForFAMOS::upDate(), and upDate().
00252 { 00253 xana::out(2) << "[update] em clusters " << std::endl; 00254 00255 RecCollection<EgammaBasicCluster> clusters (RecQuery("EGBFCluster","1.0")); 00256 RecCollection<EgammaBasicCluster> ::const_iterator cluster ; 00257 xana::out(5) << "[update] " << clusters.size() << " " << clusterizerName_.value() <<" clusters found." << std::endl; 00258 XANAEmCluster *xcluster; 00259 clusterizedCaloRecHits_.clear(); 00260 xana::out(2) << "[update] before cluster loop " << std::endl; 00261 for (cluster=clusters.begin(); cluster!=clusters.end(); cluster++) { 00262 // hybrid is algo>=100 00263 // ORIGINAL 00264 if ( (cluster->whichAlgo()>99 && fabs(cluster->eta())>1.4791) || 00265 (cluster->whichAlgo()<99 && fabs(cluster->eta())<1.4791) ) continue; 00266 // MODIF CARO : ISLAND Partout 00267 // if ( (cluster->whichAlgo()>99 && fabs(cluster->eta())>1.4791) || 00268 // (cluster->whichAlgo()>99 && fabs(cluster->eta())<1.4791) ) continue; 00269 xana::out(2) << "[update] creating new xanacluster "<< std::endl; 00270 xana::out(2) << "[update] cluster algoName is "<< clusterizerName_.value() << " " << getAlgoName(cluster->whichAlgo())<<std::endl; 00271 HepPoint3D uncorrectedPositionAtFrontFace(0.,0.,0.); 00272 float esum=0; 00273 std::vector<const CaloRecHit *> rhits=cluster->rHits(); 00274 for (std::vector<const CaloRecHit *>::const_iterator 00275 it=rhits.begin(); it != rhits.end(); it++) { 00276 esum += (*it)->energy(); 00277 uncorrectedPositionAtFrontFace += (*it)->energy() * (*it)->getMyCell().position(); 00278 } 00279 if (esum != 0.) uncorrectedPositionAtFrontFace /= esum ; 00280 xcluster = new XANAEmCluster(cluster->energy(), cluster->position(), 00281 uncorrectedPositionAtFrontFace, 00282 cluster->chi2(),clusterizerName_.value()); 00283 xana::out(2) << "[update] adding cluster " << std::endl; 00284 xanaEsdEvent_->addEmCluster(xcluster); 00285 for (std::vector<const CaloRecHit *>::const_iterator 00286 it=rhits.begin(); it != rhits.end(); it++) { 00287 XANACaloRecHit *xhit = new XANACaloRecHit((*it)->energy(), (*it)->time(), 00288 (*it)->chi2(), XANACellID((*it)->getMyCell().position())); 00289 xanaEsdEvent_->addEmClusterHit(xhit, xcluster); 00290 clusterizedCaloRecHits_.insert(pair<CellID,XANACaloRecHit>((*it)->getMyCell(),*xhit)); 00291 clusterizedCells_.push_back((*it)->getMyCell()); 00292 delete xhit; 00293 } 00294 delete xcluster; 00295 } 00296 00297 } |
|
Definition at line 398 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().
00399 { 00400 00401 xana::out(2) << "[update] endcap superclusters " << std::endl; 00402 00403 XANASuperCluster *xscluster; 00404 RecCollection<EgammaEndcapCluster> endcapSuperClusters(RecQuery("EGEFCluster","1.0")); 00405 RecCollection<EgammaEndcapCluster>::const_iterator endcapSuperCluster ; 00406 xana::out(5) << "[update] " << endcapSuperClusters.size() << endcapSuperClusterizerName_.value() << " endcapSuperClusters found." << std::endl; 00407 for (endcapSuperCluster=endcapSuperClusters.begin(); endcapSuperCluster!=endcapSuperClusters.end(); endcapSuperCluster++) { 00408 // nbClusters_++; 00409 xana::out(2) << "[update] constructing new supercluster from algo " << endcapSuperCluster->seed()->WhichAlgo() 00410 << " at eta " << endcapSuperCluster->eta() << " with energy " << 00411 endcapSuperCluster->energy() << std::endl; 00412 xscluster = new XANASuperCluster; 00413 xscluster->setEnergy(endcapSuperCluster->energy()); 00414 xscluster->setPosition(endcapSuperCluster->position()); 00415 xscluster->setSum1(endcapSuperCluster->seed()->getS1()); 00416 xscluster->setSum4(endcapSuperCluster->seed()->getS4()); 00417 xscluster->setSum9(endcapSuperCluster->seed()->getS9()); 00418 xscluster->setSum25(endcapSuperCluster->seed()->getS25()); 00419 xscluster->setHadronicOverEm(endcapSuperCluster->seed()->getHoe()); 00420 // iso not available from endcap super clusters 00421 // compute from IsoCalculator 00422 float iso = ciso_->getIso(endcapSuperCluster->eta(),endcapSuperCluster->phi()); 00423 xscluster->setCaloIsolation(iso); 00424 xscluster->setDisc1(endcapSuperCluster->seed()->getDisc1()); 00425 xscluster->setDisc2(endcapSuperCluster->seed()->getDisc2()); 00426 xscluster->setDisc3(endcapSuperCluster->seed()->getDisc3()); 00427 HepSymMatrix cov(2); 00428 cov(1,1) = endcapSuperCluster->seed()->getCovEE(); 00429 cov(1,2) = endcapSuperCluster->seed()->getCovEP(); 00430 cov(2,2) = endcapSuperCluster->seed()->getCovPP(); 00431 xscluster->setPositionCovarianceMatrix(cov); 00432 xscluster->setEnergyScaleFactor(endcapSuperCluster->energy()/endcapSuperCluster->energyUncorrected()); 00433 xana::out(2) << "[update] supercluster algoName is " << endcapSuperClusterizerName_.value() << std::endl; 00434 xscluster->setAlgoName(endcapSuperClusterizerName_.value()); 00435 xana::out(2) << "[update] adding super cluster " << std::endl; 00436 xanaEsdEvent_->addSuperCluster(xscluster); 00437 00438 // add seed basic cluster 00439 // the seed is the first in BasicClusters list 00440 EgammaVSuperCluster::const_iterator icf = endcapSuperCluster->basicClusters().first; 00441 HepPoint3D uncorrectedPositionAtFrontFace(0.,0.,0.); 00442 float esum=0; 00443 std::vector<const CaloRecHit *> rhits=(*icf)->rHits(); 00444 for (std::vector<const CaloRecHit *>::const_iterator 00445 it=rhits.begin(); it != rhits.end(); it++) { 00446 esum += (*it)->energy(); 00447 uncorrectedPositionAtFrontFace += (*it)->energy() * (*it)->getMyCell().position(); 00448 } 00449 if (esum != 0.) uncorrectedPositionAtFrontFace /= esum ; 00450 XANAEmCluster *seed 00451 = new XANAEmCluster((*icf)->energy(), 00452 (*icf)->position(), 00453 uncorrectedPositionAtFrontFace, 00454 (*icf)->chi2(), 00455 clusterizerName_.value()); 00456 xana::out(2) << "[update] adding seed " << std::endl; 00457 xanaEsdEvent_->addSeedCluster(seed, xscluster); 00458 delete seed; 00459 00460 // // now add brems clusters 00461 xana::out(2) << "[update] adding brems " << std::endl; 00462 XANAEmCluster *brem = 0; 00463 // beware, the endcapSuperCluster::vector<EgammaBasicCluster> list includes the seed cluster 00464 EgammaVSuperCluster::const_iterator ic = endcapSuperCluster->basicClusters().first+1; 00465 for (;ic != endcapSuperCluster->basicClusters().second; ic++) { 00466 HepPoint3D uncorrectedPositionAtFrontFace(0.,0.,0.); 00467 esum=0; 00468 rhits=(*ic)->rHits(); 00469 for (std::vector<const CaloRecHit *>::const_iterator 00470 it=rhits.begin(); it != rhits.end(); it++) { 00471 esum += (*it)->energy(); 00472 uncorrectedPositionAtFrontFace += (*it)->energy() * (*it)->getMyCell().position(); 00473 } 00474 if (esum != 0.) uncorrectedPositionAtFrontFace /= esum ; 00475 brem = new XANAEmCluster((*ic)->energy(), 00476 (*ic)->position(), 00477 uncorrectedPositionAtFrontFace, 00478 (*ic)->chi2(), 00479 clusterizerName_.value()); 00480 xana::out(2) << "[upDate] brem energy " << brem->getEnergy() << std::endl; 00481 xanaEsdEvent_->addBremCluster(brem, xscluster); 00482 delete brem; 00483 } 00484 // finally add preshower info when relevant (endcap) 00485 xana::out(2) << "[update] adding presh info " << std::endl; 00486 // XANAPreshowerInfo *preshowerInfo = 0; 00487 // FIXME: currently not stored 00488 // if (endcapSuperCluster->energy_P1()+endcapSuperCluster->energy_P2() != 0. ) { 00489 // cout << "[update] constructing a XANAPreshowerInfo" << std::endl; 00490 // preshowerInfo = new XANAPreshowerInfo(endcapSuperCluster->energy_P1(), 00491 // endcapSuperCluster->energy_P2(), endcapSuperCluster->position_P1(), 00492 // endcapSuperCluster->position_P2(), endcapSuperCluster->calibP1(), endcapSuperCluster->calibP2(), 00493 // endcapSuperCluster->calibSC()); 00494 // xanaEsdEvent_->addPreshCluster(preshowerInfo, xscluster); 00495 // } 00496 delete xscluster; 00497 } 00498 00499 } |
|
Referenced by upDate(). |
|
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 940 of file writeESDForFAMOS.cpp. Referenced by upDate().
00941 { } |
|
Referenced by upDate(). |
|
Referenced by upDate(). |
|
Referenced by upDate(). |
|
Definition at line 300 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, superClusters, and xanaEsdEvent_. Referenced by XANAEsdBuilderForFAMOS::upDate(), and upDate().
00301 { 00302 00303 xana::out(2) << "[update] superclusters " << std::endl; 00304 00305 // Barrel superclusters (Hybrid clustering algo chosen for the moment) 00306 RecQuery q1 = FastBasicReco::fastSCConfig(); 00307 RecCollection<EgammaSuperCluster> superClusters(q1); 00308 RecCollection<EgammaSuperCluster>::const_iterator superCluster ; 00309 xana::out(5) << "[update] " << superClusters.size() << superClusterizerName_.value() << " superclusters found." << std::endl; 00310 XANASuperCluster *xscluster; 00311 00312 for (superCluster=superClusters.begin(); superCluster!=superClusters.end(); superCluster++) { 00313 // ORIGINAL 00314 if ( (fabs(superCluster->eta())>1.4791) || 00315 (superCluster->seed()->getBasicCluster()->whichAlgo()<99 && 00316 fabs(superCluster->eta())<1.4791) ) continue; 00317 // MODIF CARO : ISLAND Partout! 00318 // if ( (fabs(superCluster->eta())>1.4791) || 00319 // (superCluster->seed()->getBasicCluster()->whichAlgo()>99 && 00320 // fabs(superCluster->eta())<1.4791) ) continue; 00321 xana::out(2) << "[update] constructing new supercluster from algo " << superCluster->seed()->WhichAlgo() 00322 << " at eta " << superCluster->eta() << " with energy " <<superCluster->energy() << std::endl; 00323 xscluster = new XANASuperCluster; 00324 xscluster->setEnergy(superCluster->energy()); 00325 xscluster->setPosition(superCluster->position()); 00326 xscluster->setSum1(superCluster->seed()->getS1()); 00327 xscluster->setSum4(superCluster->seed()->getS4()); 00328 xscluster->setSum9(superCluster->seed()->getS9()); 00329 xscluster->setSum25(superCluster->seed()->getS25()); 00330 xscluster->setHadronicOverEm(superCluster->seed()->getHoe()); 00331 xscluster->setCaloIsolation(superCluster->iso()); 00332 xscluster->setDisc1(superCluster->seed()->getDisc1()); 00333 xscluster->setDisc2(superCluster->seed()->getDisc2()); 00334 xscluster->setDisc3(superCluster->seed()->getDisc3()); 00335 HepSymMatrix cov(2); 00336 cov(1,1) = superCluster->seed()->getCovEE(); 00337 cov(1,2) = superCluster->seed()->getCovEP(); 00338 cov(2,2) = superCluster->seed()->getCovPP(); 00339 xscluster->setPositionCovarianceMatrix(cov); 00340 xscluster->setEnergyScaleFactor(superCluster->energy()/superCluster->energyUncorrected()); 00341 xana::out(2) << "[update] supercluster algoName is " << superClusterizerName_.value() << std::endl; 00342 xscluster->setAlgoName(superClusterizerName_.value()); 00343 xana::out(2) << "[update] adding super cluster " << std::endl; 00344 xanaEsdEvent_->addSuperCluster(xscluster); 00345 00346 // add seed basic cluster 00347 // the seed is the first in BasicClusters list 00348 EgammaVSuperCluster::const_iterator icf = superCluster->basicClusters().first; 00349 HepPoint3D uncorrectedPositionAtFrontFace(0.,0.,0.); 00350 float esum=0; 00351 std::vector<const CaloRecHit *> rhits=(*icf)->rHits(); 00352 for (std::vector<const CaloRecHit *>::const_iterator 00353 it=rhits.begin(); it != rhits.end(); it++) { 00354 esum += (*it)->energy(); 00355 uncorrectedPositionAtFrontFace += (*it)->energy() * (*it)->getMyCell().position(); 00356 } 00357 if (esum != 0.) uncorrectedPositionAtFrontFace /= esum ; 00358 XANAEmCluster *seed 00359 = new XANAEmCluster((*icf)->energy(), 00360 (*icf)->position(), 00361 uncorrectedPositionAtFrontFace, 00362 (*icf)->chi2(), 00363 clusterizerName_.value()); 00364 xana::out(2) << "[update] adding seed " << std::endl; 00365 xanaEsdEvent_->addSeedCluster(seed, xscluster); 00366 delete seed; 00367 00368 // now add brems clusters 00369 xana::out(2) << "[update] adding brems " << std::endl; 00370 XANAEmCluster *brem = 0; 00371 // beware, the superCluster::vector<EgammaBasicCluster> list includes the seed cluster 00372 EgammaVSuperCluster::const_iterator ic = superCluster->basicClusters().first+1; 00373 for (;ic != superCluster->basicClusters().second; ic++) { 00374 HepPoint3D uncorrectedPositionAtFrontFace(0.,0.,0.); 00375 esum=0; 00376 rhits=(*ic)->rHits(); 00377 for (std::vector<const CaloRecHit *>::const_iterator 00378 it=rhits.begin(); it != rhits.end(); it++) { 00379 esum += (*it)->energy(); 00380 uncorrectedPositionAtFrontFace += (*it)->energy() * (*it)->getMyCell().position(); 00381 } 00382 if (esum != 0.) uncorrectedPositionAtFrontFace /= esum ; 00383 brem = new XANAEmCluster((*ic)->energy(), 00384 (*ic)->position(), 00385 uncorrectedPositionAtFrontFace, 00386 (*ic)->chi2(), 00387 clusterizerName_.value()); 00388 xana::out(2) << "[upDate] brem energy " << brem->getEnergy() << std::endl; 00389 xanaEsdEvent_->addBremCluster(brem, xscluster); 00390 delete brem; 00391 } 00392 delete xscluster; 00393 } 00394 00395 } |
|
Referenced by upDate(). |
|
Referenced by upDate(). |
|
Referenced by upDate(). |
|
Definition at line 278 of file writeESD.cpp. References electronReconstructorName_, gsfForwardFit_, xana::out(), theRegionalTrackFinder, and theVertexTrackCompatibilityEstimator.
00279 { 00280 00281 xana::out(5) << "Starting initSetUp==================================" << std::endl; 00282 theVertexTrackCompatibilityEstimator = new KalmanVertexTrackCompatibilityEstimator(); 00283 if (strcmp(electronReconstructorName_.value().c_str(),"GSF")) return; 00284 00285 // new from Wolfgang 00286 00287 // RecQuery for regional tracks 00288 RecQuery regionalQuery("RegionalCombinatorialTrackFinder"); 00289 00290 // Building: 00291 RecQuery builderQuery("CombinatorialTrajectoryBuilder"); 00292 builderQuery.setParameter("chiSquarCut",100000.); 00293 builderQuery.setParameter("mass",0.000511); 00294 builderQuery.setParameter("maxCand",2); 00295 builderQuery.setParameter("maxLostHit",1); 00296 builderQuery.setParameter("maxConsecLostHit",1); 00297 builderQuery.setParameter("lostHitPenalty",50.); 00298 builderQuery.setParameter("intermediateCleaning",true); 00299 builderQuery.setParameter("minimumNumberOfHits",5); 00300 builderQuery.setParameter("ptCut", 3.); 00301 builderQuery.setParameter("alwaysUseInvalidHits",true); 00302 00303 // Fit & smooth part 00304 RecQuery fitQuery("KFFittingSmoother"); 00305 fitQuery.setParameter("mass",0.000511); 00306 00307 // to fit forward with the gsf: 00308 if (!strcmp(gsfForwardFit_.value().c_str(),"GSF") ) 00309 { 00310 RecQuery fwdQuery("GsfElectronFitter"); 00311 fwdQuery.setParameter("mass",0.000511); 00312 fitQuery.setComponent("Fitter",fwdQuery); 00313 } 00314 00315 // to fit forward with the kf: 00316 if (!strcmp(gsfForwardFit_.value().c_str(),"KF") ) 00317 { 00318 RecQuery fwdQuery("KFTrajectoryFitter"); 00319 fwdQuery.setParameter("mass",0.000511); 00320 fitQuery.setComponent("Fitter",fwdQuery); 00321 } 00322 00323 // Smoother 00324 RecQuery bwdQuery("GsfElectronSmoother"); 00325 fitQuery.setComponent("Smoother",bwdQuery); 00326 00327 // Complete query for regional tracks 00328 regionalQuery.setParameter("mass",0.000511); 00329 regionalQuery.setParameter("createPersistableTracks",false); 00330 regionalQuery.setComponent("TrajectoryBuilder",builderQuery); 00331 regionalQuery.setComponent("Smoother",fitQuery); 00332 00333 // Create ConfigAlgorithm 00334 theRegionalTrackFinder = createAlgo<RegionalTrackFinder>(regionalQuery); 00335 // end new from Wolfgang 00336 00337 } |
|
|
Definition at line 412 of file writeESD.cpp. References xana::out(), and xanaEsdTree_. Referenced by XANAEsdBuilderForFAMOS::upDate(), and upDate().
00413 { 00414 00415 xana::out(2) << "[update] writing event " << std::endl; 00416 00417 xanaEsdTree_->Fill(); //fill the tree 00418 00419 } |
|
Definition at line 144 of file writeESD.h. |
|
Definition at line 146 of file writeESD.h. |
|
Definition at line 70 of file writeESD.h. Referenced by XANAEsdBuilder(). |
|
Definition at line 73 of file writeESD.h. Referenced by XANAEsdBuilder(). |
|
Definition at line 138 of file writeESD.h. Referenced by setElectrons(), setEndcapClusters(), and XANAEsdBuilder(). |
|
Definition at line 145 of file writeESD.h. Referenced by setEmClusters(). |
|
Definition at line 147 of file writeESD.h. Referenced by setEmClusters(). |
|
Definition at line 80 of file writeESD.h. Referenced by setEmClusters(), setEndcapClusters(), setSuperClusters(), and XANAEsdBuilder(). |
|
Definition at line 114 of file writeESD.h. Referenced by setEmClusters(). |
|
Definition at line 72 of file writeESD.h. Referenced by XANAEsdBuilder(). |
|
Definition at line 98 of file writeESD.h. |
|
Definition at line 97 of file writeESD.h. |
|
Definition at line 95 of file writeESD.h. |
|
Definition at line 96 of file writeESD.h. |
|
Definition at line 87 of file writeESD.h. Referenced by upDate(), and XANAEsdBuilder(). |
|
Definition at line 121 of file writeESD.h. Referenced by setElectrons(). |
|
Definition at line 149 of file writeESD.h. |
|
Definition at line 92 of file writeESD.h. Referenced by upDate(), and XANAEsdBuilder(). |
|
Definition at line 123 of file writeESD.h. |
|
Definition at line 82 of file writeESD.h. Referenced by setElectrons(), setEndcapClusters(), and XANAEsdBuilder(). |
|
Definition at line 116 of file writeESD.h. Referenced by setEndcapClusters(). |
|
Definition at line 68 of file writeESD.h. Referenced by XANAEsdBuilder(). |
|
Definition at line 91 of file writeESD.h. Referenced by upDate(), and XANAEsdBuilder(). |
|
Definition at line 83 of file writeESD.h. Referenced by XANAEsdBuilder(). |
|
Definition at line 126 of file writeESD.h. |
|
Definition at line 106 of file writeESD.h. Referenced by XANAEsdBuilder(). |
|
Definition at line 88 of file writeESD.h. Referenced by upDate(), and XANAEsdBuilder(). |
|
Definition at line 124 of file writeESD.h. |
|
Definition at line 101 of file writeESD.h. Referenced by XANAEsdBuilder(). |
|
Definition at line 105 of file writeESD.h. Referenced by XANAEsdBuilder(). |
|
Definition at line 67 of file writeESD.h. Referenced by upDate(), XANAEsdBuilder(), and ~XANAEsdBuilder(). |
|
Definition at line 125 of file writeESD.h. |
|
Definition at line 102 of file writeESD.h. Referenced by XANAEsdBuilder(). |
|
Definition at line 86 of file writeESD.h. Referenced by XANAEsdBuilder(). |
|
Definition at line 120 of file writeESD.h. |
|
Definition at line 142 of file writeESD.h. |
|
Definition at line 142 of file writeESD.h. Referenced by setElectrons(). |
|
Definition at line 142 of file writeESD.h. |
|
Definition at line 142 of file writeESD.h. |
|
Definition at line 122 of file writeESD.h. |
|
Definition at line 74 of file writeESD.h. Referenced by XANAEsdBuilder(). |
|
Definition at line 81 of file writeESD.h. Referenced by setElectrons(), setSuperClusters(), and XANAEsdBuilder(). |
|
Definition at line 115 of file writeESD.h. Referenced by setSuperClusters(). |
|
Definition at line 112 of file writeESD.h. |
|
Definition at line 151 of file writeESD.h. Referenced by upDate(). |
|
Definition at line 154 of file writeESD.h. Referenced by upDate(). |
|
Definition at line 117 of file writeESD.h. |
|
Definition at line 84 of file writeESD.h. Referenced by XANAEsdBuilder(). |
|
Definition at line 118 of file writeESD.h. Referenced by setElectronTracks(). |
|
Definition at line 69 of file writeESD.h. Referenced by XANAEsdBuilder(). |
|
Definition at line 85 of file writeESD.h. Referenced by XANAEsdBuilder(). |
|
Definition at line 119 of file writeESD.h. |
|
Definition at line 76 of file writeESD.h. Referenced by upDate(), and XANAEsdBuilder(). |
|
Definition at line 71 of file writeESD.h. Referenced by upDate(), and XANAEsdBuilder(). |
|
Definition at line 77 of file writeESD.h. Referenced by setElectronTracks(), and XANAEsdBuilder(). |
|
Definition at line 75 of file writeESD.h. Referenced by XANAEsdBuilder(). |
|
Definition at line 66 of file writeESD.h. Referenced by upDate(), and XANAEsdBuilder(). |
|
Definition at line 131 of file writeESD.h. Referenced by setElectrons(), setElectronTracks(), setEleTrackHits(), setEmClusters(), setEndcapClusters(), setSuperClusters(), upDate(), and XANAEsdBuilder(). |
|
Definition at line 129 of file writeESD.h. Referenced by XANAEsdBuilder(). |
|
Definition at line 130 of file writeESD.h. Referenced by XANAEsdBuilder(), and ~XANAEsdBuilder(). |
|
Definition at line 128 of file writeESD.h. Referenced by writeTree(), XANAEsdBuilder(), and ~XANAEsdBuilder(). |
|
Definition at line 136 of file writeESD.h. Referenced by upDate(), and XANAEsdBuilder(). |
|
Definition at line 135 of file writeESD.h. Referenced by XANAEsdBuilder(). |
|
Definition at line 134 of file writeESD.h. Referenced by upDate(), and XANAEsdBuilder(). |
|
Definition at line 133 of file writeESD.h. Referenced by XANAEsdBuilder(). |
|
Definition at line 140 of file writeESD.h. Referenced by upDate(), XANAEsdBuilder(), and ~XANAEsdBuilder(). |