ExclusiveDecayTools Package

18
ExclusiveDecayTools ExclusiveDecayTools Package Package Nicolò Magini Firenze, 16 Gennaio 2003

description

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 - PowerPoint PPT Presentation

Transcript of ExclusiveDecayTools Package

Page 1: ExclusiveDecayTools Package

ExclusiveDecayTools ExclusiveDecayTools PackagePackage

Nicolò Magini

Firenze, 16 Gennaio 2003

Page 2: ExclusiveDecayTools Package

Un po’ di storiaUn 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

Page 3: ExclusiveDecayTools Package

A che serve?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 l’associazione con la verità MonteCarlo

Page 4: ExclusiveDecayTools Package

Classi per l’utenteClassi per l’utente

Particle Builder Channel UserCut

Page 5: ExclusiveDecayTools Package

ParticleParticle

RawParticleRawParticle

ParticlParticlee

SimpleLockableSimpleLockable

In pratica è la classe RawParticle di In pratica è la classe RawParticle di COBRA, con l’aggiunta di alcune COBRA, con l’aggiunta di alcune funzionalità utili o necessarie per il funzionalità utili o necessarie per il pacchettopacchetto

P.S. Immagino che per una eventuale release ufficiale mi P.S. Immagino che per una eventuale release ufficiale mi verrà chiesto di cambiare il nome della classe …verrà chiesto di cambiare il nome della classe …

Page 6: ExclusiveDecayTools Package

BuilderBuilder

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

Page 7: ExclusiveDecayTools Package

Esempio concreto: Esempio concreto: TkBuilderTkBuilder

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 …

Page 8: ExclusiveDecayTools Package

ChannelChannel 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

Page 9: ExclusiveDecayTools Package

UserCutUserCut

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

Page 10: ExclusiveDecayTools Package

Come si usa il Come si usa il pacchetto?pacchetto?

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

Come esempio utilizzerò il canale di Andrei effettuando una banale ricostruzione

Page 11: ExclusiveDecayTools Package

Si parte passando al Si parte passando al Builder i normali Builder i normali

oggetti ricostruiti di oggetti ricostruiti di ORCAORCA

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

Page 12: ExclusiveDecayTools Package

Poi si effettua la prima Poi si effettua la prima identificazione delle identificazione delle

particelleparticelleSi 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 …

Page 13: ExclusiveDecayTools Package

A questo punto A questo punto ricostuiamo le ricostuiamo le

combinazioni di massa combinazioni di massa invarianteinvariante

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

Page 14: ExclusiveDecayTools Package

Se volessimo effettuare Se volessimo effettuare dei tagli topologici?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

Page 15: ExclusiveDecayTools Package

A questo punto ho i miei vettori A questo punto ho i miei vettori di particelle ricostruite e posso di particelle ricostruite e posso

inserirli nelle ntuple, ecc …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 …ecc. ecc. ecc …

E BUON DIVERTIMENTO CON E BUON DIVERTIMENTO CON L’ANALISI !!!L’ANALISI !!!

Page 16: ExclusiveDecayTools Package

E se mi facesse comodo E se mi facesse comodo accedere ai RecObj originali che accedere ai RecObj originali che

hanno originato una certa hanno originato una certa Particle?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

Page 17: ExclusiveDecayTools Package

Stato del softwareStato 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

Page 18: ExclusiveDecayTools Package

ToDoListToDoList

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