TISB Firenze 16 Gennaio 2002 ExclusiveDecayTools Package Nicolò Magini Firenze, 16 Gennaio 2003
TISB Firenze 16 Gennaio 2002 ExclusiveDecayTools Package 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
TISB Firenze 16 Gennaio 2002 ExclusiveDecayTools Package A che serve? 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 lassociazione con la verità MonteCarlo
TISB Firenze 16 Gennaio 2002 ExclusiveDecayTools Package Classi per lutente Particle Builder Channel UserCut
TISB Firenze 16 Gennaio 2002 ExclusiveDecayTools Package Particle RawParticle Particle SimpleLockable In pratica è la classe RawParticle di COBRA, con laggiunta 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 …
TISB Firenze 16 Gennaio 2002 ExclusiveDecayTools Package Builder Classe astratta: deve essere implementata dallutente una classe concreta che eredita da Builder. Prende come input gli oggetti ricostruiti (nel costruttore) Il metodo BuildBasicObj restituisce un vettore di Particle Effettua lassociazione con il MonteCarlo
TISB Firenze 16 Gennaio 2002 ExclusiveDecayTools Package 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 lassociazione con la verità MonteCarlo (TDRTrackAssociatorByHits) Ma ci si potrebbe sbizzarrire a produrre un MuBuilder, un CaloBuilder, ecc …
TISB Firenze 16 Gennaio 2002 ExclusiveDecayTools Package 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 * pari al numero di prodotti di decadimento ricostruisce tutte le possibili combinazioni compatibili con la particella madre
TISB Firenze 16 Gennaio 2002 ExclusiveDecayTools Package UserCut Altra classe astratta -> lutente 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
TISB Firenze 16 Gennaio 2002 ExclusiveDecayTools Package Come si usa il pacchetto? bb μ B s D s π π K + K - 4) Tagli topologici fra B s e μ 3) M inv tra i D s ricostruiti e π 2) Id dei π e M inv con i 1) Id e M inv delle coppie di K Come esempio utilizzerò il canale di Andrei effettuando una banale ricostruzione
TISB Firenze 16 Gennaio 2002 ExclusiveDecayTools Package 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 * TKBasicObj = mytk.BuildBasicObj() In questo caso passiamo anche un vettore di sim tracks perché ci interessa lassociazione con la verità MonteCarlo
TISB Firenze 16 Gennaio 2002 ExclusiveDecayTools Package 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 * Pilist = aPi.Verify(&cutdEdX,TKBasicObj); Channel aK(K+->BasicObj); vector * Klist = aK.Verify(&cutdEdX,TKBasicObj); Channel aMu(mu+->BasicObj); vector * 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 lidea …
TISB Firenze 16 Gennaio 2002 ExclusiveDecayTools Package A questo punto ricostuiamo le combinazioni di massa invariante Channel aPhi (phi->K-,K+,&mysimevt); vector * Philist = aPhi.Verify(cutPhiMass,Klist,Klist); Channel aDs (D_s-->phi,pi-,&mysimevt); vector * Dslist = aDs.Verify(cutDsMass,Philist,Pilist); Channel aBs (B_s0->D-s-,pi+,&mysimevt); vector * 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
TISB Firenze 16 Gennaio 2002 ExclusiveDecayTools Package Se volessimo effettuare dei tagli topologici? Possiamo costruire il Channel con un canale di decadimento virtuale Channel Evchannel(Event->Bs,mu); vector * 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
TISB Firenze 16 Gennaio 2002 ExclusiveDecayTools Package A questo punto ho i miei vettori di particelle ricostruite e posso inserirli nelle ntuple, ecc … for (int i=0; i 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 LANALISI !!!
TISB Firenze 16 Gennaio 2002 ExclusiveDecayTools Package 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 Semplicemente la Particle + il RecObj P Il metodo baseObject() restituisce P
TISB Firenze 16 Gennaio 2002 ExclusiveDecayTools Package Stato del software Disponibile su cvs nella head in bTauAnalysis/ExclusiveDecayTools Testato con ORCA_6_3_0 su lxplus su eventi B 0 π + π - e B s D s π Compila anche su Sun Mancano i commenti alle classi
TISB Firenze 16 Gennaio 2002 ExclusiveDecayTools Package 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 lassociazione con la MC Truth da un lato e i RecObj dallaltro