1 / 18

ExclusiveDecayTools Package

ExclusiveDecayTools Package. Nicolò Magini Firenze, 16 Gennaio 2003. Un po’ di storia. Sviluppato originariamente a Pisa da Zhen Xie Modificato successivamente da V. Ciulli, R. Ranieri e N. Magini Utilizzato per la mia tesi di laurea e per gli studi di B-Physics nel DAQ-TDR

uriel
Download Presentation

ExclusiveDecayTools Package

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ExclusiveDecayTools Package NicolòMagini Firenze, 16 Gennaio 2003 ExclusiveDecayTools Package

  2. Un po’ di storia • Sviluppato originariamente a Pisa da Zhen Xie • Modificato successivamente da V. Ciulli, R. Ranieri e N. Magini • Utilizzato per la mia tesi di laurea e per gli studi di B-Physics nel DAQ-TDR • Adesso disponibile come pacchetto in bTauAnalysis ExclusiveDecayTools Package

  3. Utilizzando come input oggetti ricostruiti con il consueto codice di ORCA, consente di ricostruire catene di decadimenti esclusivi Nel caso di eventi MonteCarlo in formato HEPEVT effettua automaticamente l’associazione con la verità MonteCarlo A che serve? ExclusiveDecayTools Package

  4. Classi per l’utente • Particle • Builder • Channel • UserCut ExclusiveDecayTools Package

  5. Particle RawParticle SimpleLockable Particle In pratica è la classe RawParticle di COBRA, con l’aggiunta di alcune funzionalità utili o necessarie per il pacchetto P.S. Immagino che per una eventuale release ufficiale mi verrà chiesto di cambiare il nome della classe … ExclusiveDecayTools Package

  6. Builder • Classe astratta: deve essere implementata dall’utente una classe concreta che eredita da Builder. Prende come input gli oggetti ricostruiti (nel costruttore) • Il metodo BuildBasicObj restituisce un vettore di Particle • Effettua l’associazione con il MonteCarlo ExclusiveDecayTools Package

  7. Esempio concreto: TkBuilder • Costruita con un qualsiasi vettore di RecTrack (ad es. da CombinatorialTrackFinder, PixelLine, o come più vi aggrada) • Se passiamo nel costruttore anche un vettore di SimTrack viene effettuata l’associazione con la verità MonteCarlo (TDRTrackAssociatorByHits) • Ma ci si potrebbe sbizzarrire a produrre un MuBuilder, un CaloBuilder, ecc … ExclusiveDecayTools Package

  8. Channel • Si costruisce a partire da una stringa di testo con i nomi PDG della particella madre e dei prodotti di decadimento (fino a 6) • Esempio: Channel bdchannel("B0->pi+,pi-") • Il metodo Verify passando come argomento uno UserCut e un numero di vector<Particle*>* pari al numero di prodotti di decadimento ricostruisce tutte le possibili combinazioni compatibili con la particella madre ExclusiveDecayTools Package

  9. UserCut • Altra classe astratta -> l’utente deve implementare le classi derivate con i tagli utili alla sua analisi nel metodo Cut Ad esempio è implementata la classe CutMass che ritorna true se la massa ricostruita è entro una opportuna finestra intorno alla massa vera ExclusiveDecayTools Package

  10. Come si usa il pacchetto? Come esempio utilizzerò il canale di Andrei effettuando una banale ricostruzione bb  μ Bs Ds π  π K+ K- 4) Tagli topologici fra Bs e μ 3) Minv tra i Ds ricostruiti e π 2) Id dei π e Minv con i  1) Id e Minv delle coppie di K ExclusiveDecayTools Package

  11. Si parte passando al Builder i normali oggetti ricostruiti di ORCA • In questo caso, avendo effettuato una ricostruzione nel Tracker, si tratta di un vettore di RecTrack: TkBuilder mytk(“BasicObj”, &GoodRecTracks, &GoodSimTracks) vector<Particle*>* TKBasicObj = mytk.BuildBasicObj() In questo caso passiamo anche un vettore di sim tracks perché ci interessa l’associazione con la verità MonteCarlo ExclusiveDecayTools Package

  12. Poi si effettua la prima identificazione delle particelle Si può fare con la classe Channel se chiamiamo il costruttore con un canale di decadimento “ad un corpo” CutdEdX cutdEdx; Channel aPi(“pi+->BasicObj”); vector<Particle*>* Pilist = aPi.Verify(&cutdEdX,TKBasicObj); Channel aK(“K+->BasicObj”); vector<Particle*>* Klist = aK.Verify(&cutdEdX,TKBasicObj); Channel aMu(“mu+->BasicObj”); vector<Particle*>* Mulist = aMu.Verify(&cutdEdX,TKBasicObj); P.S. Qualora qualcuno se lo stia chiedendo, il taglio di dE/dx attualmente non fa assolutamente niente (return true), quindi si ottengono le stesse particelle in tutti e tre i casi, ma era solo per dare l’idea … ExclusiveDecayTools Package

  13. A questo punto ricostuiamo le combinazioni di massa invariante Channel aPhi (“phi->K-,K+”,&mysimevt); vector<Particle*>* Philist = aPhi.Verify(cutPhiMass,Klist,Klist); Channel aDs (“D_s-->phi,pi-”,&mysimevt); vector<Particle*>* Dslist = aDs.Verify(cutDsMass,Philist,Pilist); Channel aBs (“B_s0->D-s-,pi+”,&mysimevt); vector<Particle*>* Bslist = aBs.Verify(cutBsMass,Dslist,Klist); 1) Ad ogni step viene verificato che non ci sia sovrapposizione fra i prodotti di decadimento 2) Channel ricostruisce automaticamente anche il canale ottenuto per coniugazione di C 3) In questo caso si passa nel costruttore anche il puntatore al RawHepEvent simulato per propagare la verità di MonteCarlo dai prodotti di decadimento alla madre ExclusiveDecayTools Package

  14. Se volessimo effettuare dei tagli topologici? Possiamo costruire il Channel con un canale di decadimento “virtuale” Channel Evchannel(“Event->Bs,mu”); vector<Particle*>* Eventlist = Evchannel.Verify(&cut,Bslist,Mulist); Poiché Event non è un nome di particella nelle tabelle PDG, Channel si limita a trovare le combinazioni dei prodotti senza assegnare proprietà fisiche alla madre ExclusiveDecayTools Package

  15. A questo punto ho i miei vettori di particelle ricostruite e posso inserirli nelle ntuple, ecc … for (int i=0; i<Bslist->size(); i++){ Particle * bs = (*Bslist)[i]; cout « “Bs pt = “ « bs->perp() « endl; Particle * ds = (*Bslist)[i]->getChild(0); Particle * pi1 = (*Bslist)[i]->getChild(1); ecc. ecc. ecc … E BUON DIVERTIMENTO CON L’ANALISI !!! ExclusiveDecayTools Package

  16. E se mi facesse comodo accedere ai RecObj originali che hanno originato una certa Particle? • Nel nostro esempio, mi servono le RecTrack dei due K per ottenere le informazioni sul vertice di decadimento della  template class ParticleBase<P> Semplicemente la Particle + il RecObj P Il metodo baseObject() restituisce P ExclusiveDecayTools Package

  17. Stato del software • Disponibile su cvs nella head in bTauAnalysis/ExclusiveDecayTools • Testato con ORCA_6_3_0 su lxplus su eventi B0  π+π- e Bs Ds π • Compila anche su Sun • Mancano i commenti alle classi ExclusiveDecayTools Package

  18. ToDoList • Risistemare e ottimizzare il codice • Aggiornare la documentazione (attualmente disponibile solo una CMS/IN DRAFT obsoleta sulla vecchia versione di Zhen) • Implementare altri Builder semplici (ad esempio L3MuBuilder come richiesto da Andrei) • Eventualmente in seguito, riorganizzare l’associazione con la MC Truth da un lato e i RecObj dall’altro ExclusiveDecayTools Package

More Related