# 30/08/23 B → τν updates
* Fit alla molteplicità <12, perchè non <=
* Purezza del Dstarellnu
* Contare anche le sistematiche nel calcolo della significatività
# 21/08/23 B → τν updates
* Aggiornare la nota con sistematiche
* Sistematiche sul singolo canale
* Correlazioni Slope/Intercept
# 22/05/23 B → τν meeting
* Correzione del pi0 (acceso/spento) ci dice la sistematica del pi0 OK
* Prolungare la correzione della molteplicità OK
* Tabularli OK
* Nelle sistematiche si può variare il risultato del fit per vedere l'errore
# 15/05/23 B → τν meeting
* Il fattore di scala dei BB va ridotto di un fattore legato alla luminosità dei dati.
* Controllare off resonance versus MCqq con Eextra corretto (splitoff)
* Vedere missingMassofEvent come in [questa nota](https://docs.belle2.org/record/3426/files/BELLE2-NOTE-PH-2023-010.pdf)
* Fare l'ottimizzazione dei tagli a 362 fb
* Come cambia la composizione dei fotoni extra al variare della molteplicità
# 11/05/23 B → τν meeting
* Controllo: Selezionare prima la traccia di segnale e poi BCS
* Si possono salvare più punti di lavoro del pid (09,095,099)
* si può salvare pi0eff40 , pi0eff50 etc
*
# 27/04/23 B → τν meeting
* fotoni per regione
* fotoni che vengono dal pi0 guardando i fotoni extra
* energia cluster vs numero cluster
* aggiungere ncluster per regione
* wc e doubletag
* scanner chi2
* massa pi0 massa rho, vedere effetto shift
* invece che shif a tutti i fotoni, si può lavorare sul threshold
* cambiando la molteplicità vedere come cambia eextra (ripesamento)
* vedere come cambia eextra prima e dopo il taglio sulla fakePhotonSuppression e vedere come cambia lo shift
* vedere per valori <0.1 della fakePhotonSuppression che tipi di fotoni sono
* vedere la molteplicità per tipo di fotoni
* eID, muID e piID prima e dopo la track isolation
* scan della soglia minima dei fotoni extra tra 55 e 100 MeV con toy MC e vari plots come molteplicità ecc
* cluster energy minore di 100MeV zoom
# 18/04/23 B → τν meeting
Nuovi Dataset confronto con vecchi
```
_ = ma.calculateTrackIsolation(f"e{sign}:corrected",
mypath,
*["CDC", "TOP", "ARICH", "ECL", "KLM"],
reference_list_name=f"pi{sign}:ref")
_ = ma.calculateTrackIsolation(f"mu{sign}:presel",
mypath,
*["CDC", "TOP", "ARICH", "ECL", "KLM"],
root [29] file_conTrackIsolation->cd()
(bool) true
root [30] BTagBtaunu->GetEntries("d1_d0_dmID == 3")
(long long) 18217
root [31] BTagBtaunu->GetEntries("d1_d0_dmID == 4")
(long long) 5399
root [32] BTagBtaunu->GetEntries("d1_d0_dmID == 5")
(long long) 146935
root [33] BTagBtaunu->GetEntries("d1_d0_dmID == 6")
(long long) 122574
root [34] file_senzaTrackIsolation->cd()
(bool) true
root [35] BTagBtaunu->GetEntries("d1_d0_dmID == 3")
(long long) 109931
root [36] BTagBtaunu->GetEntries("d1_d0_dmID == 4")
(long long) 96375
root [37] BTagBtaunu->GetEntries("d1_d0_dmID == 5")
(long long) 146935
root [38] BTagBtaunu->GetEntries("d1_d0_dmID == 6")
(long long) 122574
```
# 14/04/23 B → τν meeting
Provare diverse definizioni di E extra:
* Sottrarre gli splitoff facendo lo shift così da eliminare quelli che non passano la selezione dopo la modifica
* Fare la stessa cosa con tutti i fotoni e non solo con gli splitoff
* Modificare i pesi degli eventi in base a cosa ci dice il rapporto di eventi bin per bin della molteplicità di fotoni extra
* plottare la massa invariante di tutte le coppie di fotoni
# 11/04/23 B → τν meeting
* fotoni per regione
* fotoni che vengono dal pi0 guardando i fotoni extra
* energia cluster vs numero cluster
* aggiungere ncluster per regione
* wc e doubletag
* scanner chi2
# 24/03/23 B → τν meeting
Michele ha mostrato la separazione dei fotoni extra nei tre gruppi:
* hadronic splitoff
* beambackground
* true
tramite la variabile mcPDG e la variabile clusterMCMatchWeight/clusterE e in tutti i canali la separazione è visibile come mostrato dall'analisi R(D).
In queste nuove n-ple, è stato necessario aggiungere nelle variabili di input della BDT di reweight E_ECL.
Possiamo considerare di studiare la misID della particle ID, per poter usare diverse scelte di Working Point
Inoltre potrebbe essere utile vedere Theta vs p per capire il picco a 1 GeV degli elettroni a cosa è dovuto.
Vedere Eextra con l'energia frazionaria.
Cambio in percentuale dell'energia degli split off.
Aggiungere al plot di split off supp i valori minori di 0.1 e plottare anche beam bkg supp.
# 17/03/23 B → τν meeting
### TO DO LIST
1. controllare che il workflow su GitLab sia corretto e completo
2. Aggiungere l'analisi offline al workflow su gitlab (selezione + continuo MC correzione+ contiuno sopressione + correzioni MC + fit)
3. Applicare correzione Nagoya a MC E_Extra per controllare data MC agreement
3.1 a E_extra del MC finale e contronto su E_Extra sideband
3.2 a E_extra double tags
3.3 a E_extra wrong charge
c'è un problema con la correzione del beam background della ricetta Nagoya, che usa il run dependent MC, assumendo che l'unica differenza rd/ri sia il beam background.
> opzione a: Potremmo usare direttamente il loro risultato? (c'è una matrice di "trasferimento" che indica probabilità di migrazione dei bin. Chiediamo a loro)
> opzione b: Si potrebbe trovare una correzione per entrambe le componenti (split-off e beam bkg) attraverso un fit che trovi un valore (o percentuale o energia fissa) per entrambe le distribuzioni usando i campioni double tags.
# 15/03/23 Analysis workflow
### Ricostruzione
Steering file unico per MC, Data e Data-OffRes, da terminale si può selezionare il tipo, ma anche se applicare TopoAna o no.
Lo script si trova nella cartella *reconstruction_new/BtoTauNu*.
Un esempio di comando gbasf2 può essere:
```
gbasf2 rec_Btag_BtoTauNu.py --basf2opt="--arg --dataType "DATA" --arg --TopoAna "false"" -s light-2212-foldex -d DESY-TMP-SE -p BTauNu_1103_data -i /belle/collection/test/11180500_proc13prompt_noEcl --cputime 600 --force > output_data.txt &
gbasf2 rec_Btag_BtoTauNu.py --basf2opt="--arg --dataType "MC" --arg --TopoAna "true"" -s light-2212-foldex -d DESY-TMP-SE -p BTauNu_1103_MC --input_dslist collection_MC15ri.txt --cputime 600 --force > output_MC.txt &
```
Solo per i Dati, applichiamo le correzioni Energy Bias ai fotoni.
Si definisce la good track, il taglio sul momento, il taglio sui fotoni e l'efficenza dei fotoni del pi0:
```
trackcuts= 'dr < 0.5 and abs(dz) < 2 and thetaInCDCAcceptance and nCDCHits > 20 and pt > 0.1 and E < 5.5'
momentum_cut = 'pt > 0.1 and E < 5.5'
photoncuts= '[[clusterReg==1 and E>0.080] or [clusterReg==2 and E>0.030] or [clusterReg==3 and E>0.060]] and minC2TDist>25 and beamBackgroundSuppression>0.5'
pi0_eff40 = '[clusterNHits>1.5] and thetaInECLAcceptance and [[clusterReg==1 and E>0.080] or [clusterReg==2 and E>0.030] or [clusterReg==3 and E>0.060]] and abs(clusterTiming) < 200 and abs(clusterTiming/clusterErrorTiming) < 2.0'
```
Si ricostruisce il B di tag a partire dalla lista preskimmata: `B+:feiHadronic`.
Si salva solo il candidato best `rank == 1`.
Si crea il resto dell'evento rispetto al tag e si aggiungono le variabili di Continuum Suppression `d0_cosTBTO, d0_KSFWVariables_hso00 etc.`
Si crea la lista di elettroni e muoni a partire dagli `stdLep` e la lista di pioni con `pionID_noSVD > 0.6 + momentum_cut`. Per gli elettroni usiamo la PID creata con la BDT e per i muoni quella creata con la likelihood come consigliato dal gruppo delle perfomance [qui](https://confluence.desy.de/display/BI/Recommendations+for+Lepton+ID+-+release+6).
Applichiamo la global tag per farci salvare nel ntupla i pesi ottenuti dagli studi su Data/MC e i rispettivi errori statistici e sistematici.
Per il canale ρ ricostruiamo il τ a partire dalla traccia π e dal π0 richiedendo la massa invariante attorno alla massa nominale della ρ in una finestra di 300 MeV. Tra tutti i candidati ρ, si sceglie quello con la massa più vicina a quella nominale.
Si ricostruisce infine la Υ(4S) a partire dai due B.
#### Rest of Event
Si costruisce il resto dell'evento a partire dalla Υ(4S) e si creano 4 diverse maschere per fotoni nel calorimetro e tre diverse maschere per le tracce.
```
energy_cut = 'E > 0.055 and clusterNHits > 1.5'
split_off_cut_v1 = 'hadronicSplitOffSuppression>0.1'
split_off_cut_v2 = 'minC2TDist>25'
background_cut_v1 = 'beamBackgroundSuppression>0.5'
background_cut_v2 = 'abs(clusterTiming) < 200 and abs(clusterTiming/clusterErrorTiming) < 2.0'
ROEClusters_v1_v1 = ('ROEClusters_v1_v1','',energy_cut + ' and ' + split_off_cut_v1 + ' and ' + background_cut_v1)
ROEClusters_v1_v2 = ('ROEClusters_v1_v2','',energy_cut + ' and ' + split_off_cut_v1 + ' and ' + background_cut_v2)
ROEClusters_v2_v1 = ('ROEClusters_v2_v1','',energy_cut + ' and ' + split_off_cut_v2 + ' and ' + background_cut_v1)
ROEClusters_v2_v2 = ('ROEClusters_v2_v2','',energy_cut + ' and ' + split_off_cut_v2 + ' and ' + background_cut_v2)
```
in più richiediamo 0 extra tracce dure nel'evento (per vedere le extra tracce anche offline), successivamente si richiederà 0 extra tracce dall'ID:
```
ROETracksL = ('ROETracksL', trackcuts,'')
ROETracksT = ('ROETracksT', trackcuts + ' and pt > 0.1', '')
variables.addAlias('nAllROETracksLoose','nROE_Tracks(ROETracksL)')
variables.addAlias('nAllROETracksTight','nROE_Tracks(ROETracksT)')
applyCuts('Upsilon(4S):Btaunu','nAllROETracksTight==0',path=mypath)
```
Si costruisce:
1. Event kinematics
2. Event Shape
3. Energia totale nel calorimetro (per la FEI)
#### Tree Resto dell'Evento
Per le informazioni sui fotoni extra, creiamo un altro tree.
```
cut='isInRestOfEvent==1 and E > 0.055 and thetaInECLAcceptance'
```
solo negli eventi che soddisfano
```
selection='d0_sigProb>0.001 and d0_cosTBTO<0.8 and foxWolframR2<0.6',
```
# 14/03/23 B → τν meeting
- [ ] Si scriverà un readme su gitlab in cui ci sarà il workflow dell'analisi in maniera semplice così da unificare l'analisi in maniera simile.
- [ ] Va debuggato il codice per far convergere il TOY MC.
## Giovanni
Double Tag:
- [ ] Per vedere una cosa pura senza qqbar facendo un taglio a costheta a 0.5
# 10/03/23 B → τν meeting
I jobs stanno girando e stiamo aspettando che finiscano.
Bisogna applicare i pesi dal MCrd per i Beam Background.
Come identificare gli splitoff
| Ricette per fotoni ||
| -------- | -------- |
| True γ | mcPDG == 22 |
| Split-off showers | mcPDG !=22 |
| Split-off showers | nan mcPDG & clusterTotalMCMatchWeight/clusterE ≥ 0.4 |
| Beam BG clusters | nan mcPDG & clusterTotalMCMatchWeight/clusterE < 0.4 |
Script correzione gamma Beam Background:
### Beam background: apply correction with fake photon
```
_EeclBB = _row[_EeclBBVarExpr]
_iBinXBB = _histBB.GetXaxis().FindBin(_EeclBB)
if (_iBinXBB > 0) and (_iBinXBB < _histBB.GetNbinsX() + 1):
_rand = np.random.rand()
_pdf = 0.0
for _iBinYBB in range(1, _histBB.GetNbinsY() + 1):
_corrVal = _histBB.GetBinContent(_iBinXBB, _iBinYBB)
_pdf += _corrVal
if _rand <= _pdf:
df.iloc[_iEntry, _iColumnBB] = _iBinYBB / _iBinXBB
df.iloc[_iEntry, _iColumnBB] *= _EeclBB
break
```
# 03/03/23 B → τν meeting
[Indico Page](https://agenda.infn.it/event/34838/)
## General
Uno studio da parte di Kojima spiega come dividere i sample di fotoni extra
* True γ
* Split Off
* Beam Background
Vedere slide di Kojima messe su indico.
I job stanno girando per il Double Tag, a breve manderemo i job anche del τν.
## Michele
Michele ha provato a separare i fotoni split-off con hadronicsplitoffsuppression (dato che non abbiamo le variabili adatte) e ha abbassato l'energia di questi fotoni ma non è così soddisfacente nel nostro caso.
Quando saranno disponibili le nuove n-tuple vedremo le variabili di extra fotoni negli adroni e nei diversi canali (anche con tagli sulla continuum suppression).
## Giovanni
Appena saranno finiti i Job, Giovanni farà lo spettro dei fotoni dei dati vs lo spettro del MC in cui si dividano fotoni veri, splitoff e beam background.
# 28/02/23 WG1 meeting
Si è parlato di una ricetta da aggiungere ai nostri cluster trovata da Kojima [qui](http://localhost:8125/lab?token=1e231b3b9f9255ab105ffcee9f8e2e6f26929f02131cbd35) per far sì che lo shift sia aggiusato:
* Rimuovere 15 MeV dai fotoni Hadronic Split Off (attraverso una variabile che non ho capito)
* Aggiungere i pesi del MCrd ai fotoni di Beam Background
Peter ha chiesto di studiare bene i fotoni extra del double tag dato che saranno per la maggior parte provenienti dal split off adronici per capire che ha davvero senso che l'energia andrebbe shifata di 15 MeV.
# 23/02/23 B → τν meeting
[Indico Page](https://agenda.infn.it/event/34833/)
## General
Si potrebbe presentare martedì una delle cose che stiamo mostrando.
Presenta Giovanni sui control sample e poi in futuro Michele presenterà la correzione allo shift sui control sample e sui normal sample.
## Michele
Aggiungere CS al double tag.
Si può modificare il range del fit in bin di E_extra per vedere se migliora la linearità.
Lo stesso procedimento può essere fatto per il wrongcharge control sample a partire da E_ECL che parte da 0.
## Giovanni
- [ ] Controllare le tabelle dei fattori di calibrazione per vedere se sono corretti.
- [ ] Ampliare asse x per missing quantities cinematiche.
- [ ] Impulso della traccia nel sistema della B.
- [ ] Ottimizzare il taglio su sigProb tra 10^-3 e 10^-2.
- [ ] Aggiungere extra variables anche nel double tag.
- [ ] Dividere E ecl in barrel, forward, backward.
- [ ] clusterNHits da tenere sotto controllo.
- [ ] minC2 aumentare l'asse x.
- [ ] Aggiungere i cluster extra ai dataset del double tag e aggiustare le variabili di event shape.
# 08/02/23 B → τν meeting
## General
Si può calcolare il fattore di correzione nel control sample di Wrong Charge.
Vedere come cambiano i fattori di calibrazione usando questi nuovi dataset usando tutto lo spettro di Eextra.
## Michele
Nuove n-tuple con i B+B- coi Branching Ratio corretti
## Giovanni
Nuove n-tuple con il control sample doubletag (hadronic or semileptonic)
# 06/02/23 PreB2GM meeting
Ci sono stati vari commenti sulla definizione di sideband e di come l'efficienza del MC possa essere diversa dall'efficienza dei dati. E_ECL > 0.5 GeV potrebbe creare un disagreement tra dati e MC, si potrebbe controllare aumentando di una percentuale piccola la presenza di eventi con KL per vedere se cambiano sostanzialmente i fattori di scala.
# 01/02/23 B → τν meeting
## General
Michele sta facendo runnare i jobs con le nuove maschere per le variabili di event shape e stiamo aspettando che i jobs finiscano.
## Michele
## Giovanni
Si può ottimizzare il fit simultaneo invece delle singole componenti
Plottare le energie dei cluster data/MC come Kojima per eliminare le regioni con più disagreement
Aggiungere Klong veto nell'energia extra.
# 25/01/23 B → τν meeting
## General
Da indicazione di Peter, si potrebbe controllare quanti eventi passano la selezione del tautau con i due fotoni.
Michele ha trovato un errore nel dataset della generazione delle n-tuple. Il file txt dei dati ha delle righe in più. Proverò a capire quali sono i doppioni presenti nella n-tupla
Bisogna fare il control sample B→Dstar lnu nel canale più pulito possibile (Dstar→D(→Kπ)γ/π0) per vedere E_ECL se è ben ricostruito e ha un buon agreement.
Approfondire l'embedding [qui](https://software.belle2.org/sphinx/light-2212-foldex/analysis/doc/embedding.html)
## Michele
Guardando la presentazione di Michele, si potrebbe rimuovere R2 dalla lista delle input variables e vedere se i risultati sono simili e se R2 si modifica nella direzione giusta.
Lo shift in E_extra è rimasto perché la nuova BDT non modifica molto la shape.
Si può plottare l'onresonance in funzione dell'esperimento le diverse distribuzioni.
## Giovanni
Cerchiamo di capire il miglior fit possibile, è meglio avere una situazione con tagli più tight.
Allargare la x per quantità mancanti.
Aggiungere variabili mancanti cinematiche allo steering, nel sistema del laboratorio e nel CMS.
Plottare E_ECL con diversi tagli nel missing M2.
# 24/01/23 WG1 meeting
[Sito per Off resonance reweighting](https://publish.etp.kit.edu/record/22016)
[Repository per off res reweight](https://github.com/b2-hive/CONTRE)
# 19/01/23 B → τν meeting
## Generale
* Eextra per elettroni e muoni sembra essere scavata dopo il taglio a missM2
* miss modelling per leptoni, forse con la nuova BDT si aggiusta?
* Per pioni e rho si vede una correlazione tra eextra e p che potrebbe essere sfruttata
## Michele
* aggiustare errori sottrazione
* Controllare dati offres rispetto al periodo
* Plottare le variabili BDT sottraendo continuo solo riscalato
## Giovanni
* Tagli in missM2 progressivi e plot di Eextra
* Segnale sopra negli stacked quando è visibile