25
Update on the new reconstruction software F. Noferini E. Fermi center INFN CNAF EEE Analysis Meeting - 14/09/2015 1

Update on the new reconstruction software F. Noferini E. Fermi center INFN CNAF EEE Analysis Meeting - 14/09/20151

Embed Size (px)

Citation preview

EEE Analysis Meeting - 14/09/2015 1

Update on the new reconstruction

softwareF. Noferini

E. Fermi centerINFN CNAF

EEE Analysis Meeting - 14/09/2015 2

Current status for the output formatOLD ANALYZER NEW ANALYZER

Not yet inside Time Over Thresholdadded

It is not clear to me what is the meaning of the Status.I added the id of the GPS event used to compute the time.

EEE Analysis Meeting - 14/09/2015 3

Gps events stored in a separate tree

EEE Analysis Meeting - 14/09/2015 4

Time Over ThresholdSuch variables are not used. However it would be nice to have them to perform some check for future developments.

Typical tot distribution

Correlation left – right side: the TOF are strongly correlated (it could help to match the two signal) Such information may help us

to understand the behavior of the MRPC (tot vs position) also for other applications (ALICE-TOF)

EEE Analysis Meeting - 14/09/2015 5

The new header

Available only for new GPS models

EEE Analysis Meeting - 14/09/2015 6

Some checks (macro committed)noferini@noferini-VirtualBox:~/Soft/EEE_Analyzer/eeeroot$ root -b -q -l compare.C root [0] Processing compare.C...n1 = 48316 -- n2 = 50000Time_1: 265545621 s 11147885 ns (ntrack = 1)Time_2: 265545621 s 11147885 nsv1) -0.274683 -0.180669 0.944409 (local coordinates)v1) -0.003819 -0.328752 0.944409 (global coordinates)v2) -0.015587 -0.352731 0.935595 (global coordinates)Scalar product v1,v2 = 0.999802ChiSquare = 3.206481 vs 3.4087201 bottom XY: 99.134689 40.0000002 bottom XY: 101.207001 40.5250021 middle XY: 82.360046 28.8000012 middle XY: 82.823402 28.7999991 top XY: 72.376282 22.4000002 top XY: 71.594704 22.400000check local coordinates --> -26.758408 : -17.600000 = -0.274683 : -0.180669 (1.520364 = 1.520364)

Time_1: 265545621 s 27075344 ns (ntrack = 1)Time_2: 265545621 s 27075344 nsv1) 0.349200 -0.386074 0.853818 (local coordinates)v1) 0.515340 0.073610 0.853818 (global coordinates)v2) 0.509380 0.061092 0.858370 (global coordinates)Scalar product v1,v2 = 0.999947ChiSquare = 46.678795 vs 46.6936001 bottom XY: 106.639664 76.8000032 bottom XY: 107.527000 76.8000031 middle XY: 64.189903 73.5999982 middle XY: 64.653198 73.5999981 top XY: 144.266342 35.2000012 top XY: 143.485001 35.200001check local coordinates --> 37.626678 : -41.600002 = 0.349200 : -0.386074 (-0.904487 = -0.904489)

1 = NEW2 = OLD

In the new approach GPS events are stored separately, in the old one a GPS event is stored twice

In the new approach currently local coordinates

Calibration applied in a similar way also in the new analyzer

EEE Analysis Meeting - 14/09/2015 7

Histo checksBoth in old calibration scheme

SAVO-01

EEE Analysis Meeting - 14/09/2015 8

Calibration strip by strip (single run)

EEE Analysis Meeting - 14/09/2015 9

Histo checksNew calibrated strip by strip

SAVO-01

10

Typical output during a reconstruction BOLO-01 2015-08-27> eeereco.exe -b -d -r -c BOLO-01-2015-08-27-00001.binrun with -h to get the help listbatch modeInfo in <eeereco.exe>: Calibration step requested (max 50000 events)Info in <EEERawReader::LoadGeometry>: default calibration loaded!Info in <EEERawReader::LoadGeometry>: BOLO-01) FEA types: 3/3 - 3/3 - 3/3Info in <EEERawReader::LoadGeometry>: cable: BL = 700.000000 -- BR = 700.000000Info in <EEERawReader::LoadGeometry>: cable: ML = 700.000000 -- MR = 700.000000Info in <EEERawReader::LoadGeometry>: cable: TL = 700.000000 -- TR = 700.000000Info in <EEERawReader::LoadGeometry>: Time delay = 1.395000e-06 sInfo in <EEERawReader::LoadGeometry>: Geometry loadedInfo in <EEERawReader::ReadEvent>: Weather station info: Tin=29.000000, Tout=27.200001, P=1012.000000…Info in <EEEReconstructor::WriteCalibration>: Calibration for single strip writtenInfo in <eeereco.exe>: calibration step performed (run again to get results)Info in <EEERawReader::OpenFile>: Calibration found!Info in <EEERawReader::LoadGeometry>: BOLO-01) FEA types: 3/3 - 3/3 - 3/3Info in <EEERawReader::LoadGeometry>: cable: BL = 700.000000 -- BR = 700.000000Info in <EEERawReader::LoadGeometry>: cable: ML = 700.000000 -- MR = 700.000000Info in <EEERawReader::LoadGeometry>: cable: TL = 700.000000 -- TR = 700.000000Info in <EEERawReader::LoadGeometry>: Time delay = 1.395000e-06 sInfo in <EEERawReader::LoadGeometry>: Geometry loadedInfo in <EEERawReader::ReadEvent>: Weather station info: Tin=29.000000, Tout=27.200001, P=1012.000000Info in <EEERawReader::ReadEvent>: Number of visible satellites = 14 (gps=1)Info in <EEERawReader::ReadEvent>: Number of visible satellites = 12 (gps=428)Info in <EEERawReader::ReadEvent>: Number of visible satellites = 14 (gps=429)Info in <EEERawReader::ReadEvent>: Number of visible satellites = 12 (gps=434)Info in <EEERawReader::ReadEvent>: Number of visible satellites = 14 (gps=436)Info in <EEERawReader::ReadEvent>: Number of visible satellites = 12 (gps=438)Info in <EEERawReader::ReadEvent>: Number of visible satellites = 14 (gps=444)Info in <EEERawReader::ReadEvent>: Number of visible satellites = 0 (gps=917)Info in <EEERawReader::ReadEvent>: Number of visible satellites = 12 (gps=921)Info in <EEERawReader::ReadEvent>: Number of visible satellites = 14 (gps=922)Info in <EEERawReader::ReadEvent>: Number of visible satellites = 10 (gps=927)Info in <EEERawReader::ReadEvent>: Number of visible satellites = 14 (gps=928)Info in <EEERawReader::ReadEvent>: Number of visible satellites = 12 (gps=973)Info in <EEERawReader::ReadEvent>: Number of visible satellites = 14 (gps=974)Info in <eeereco.exe>: Lat.= 44.500866, Long.= 11.357333, Alt.=38.000000

Calibration step

reconstruction

Wall time 5.795 s

EEE Analysis Meeting - 14/09/2015 11

Future devolpments

• Interface to Corsika root format• Interface to our DB• …

EEE Analysis Meeting - 14/09/2015 12

Backup (old material)

EEE Analysis Meeting - 14/09/2015 13

Requirements

Linux machine• ROOT should be installed (in principle any version is

fine)

Windows• ROOT should be installed (the same version used by

us to compile the code because we will provide directly the executables obtained with Visual Studio 10)

EEE Analysis Meeting - 14/09/2015 14

Software repositoryThe new code will be available under github in the same repository of the current analyzer.https://github.com/centrofermi/EEE_AnalyzerCurrently the version under test is in the «dev» branch:

Windows executable (under bin dir)

EEE Analysis Meeting - 14/09/2015 15

Running under windows 8

The code developed in a linux machine is able to run also on windows (tested with root v5.34.24). The executable will be available in the github repository (compiled with Visual Studio). The only requirement is the root installation (the installer for the proper root version will be provided). Reconstruction can be trigger in windows also as a double click in the .bin file.

EEE Analysis Meeting - 14/09/2015 16

The structure

Basically the new software is organized in c++ classes to have a more modular structure and to benefit of ROOT functionalities.However the output is written via simple ROOT trees (as in the current version of the Analyzer). The main differences in the output is the fact that the number of tracks per event is not limited.

EEE Analysis Meeting - 14/09/2015 17

Event time

The event time will be computed in the same way as before (reported in the documentation).The only difference is that now the total TDC counts are computed in the current second and not in the one before.

)1(

)2(

)0(

)1(

2

1

Icalib

TNS

Icalib

TNSf

Nanoseconds are extracted from here, f x 109, and then corrected for other effects.

TDC counts in the two TDCs for the current event

TDC counts in the two TDCs in between two GPS events

EEE Analysis Meeting - 14/09/2015 18

The Tracker

1. It selects hits in both sides of each chamber and it fills arrays with hit candidates for tracks: strip#[nHit#], deltat#[nHit#], timeAv#[nHit#] where #=,T, M, B (Top, Middle, Bottom chambers). In case two hits are close in space they are clusterized.

2. A pre-selection of candidate tracks is performed applying this cut: a track is interpolated using each top and bottom hits combination opening a window of three strips around the extrapolation in the middle chamber to accept the third hit (in the middle chamber) this introduces a cut on 2 around 25.

3. All the track candidates passing the pre-selection are then 2-ordered4. The final round in the track selection consists in a loop on all the

candidates starting from the best 2. The tracks is accepted if its hits were not used from previous (better) tracks. In this way a hit cannot be used to construct more than one track.

EEE Analysis Meeting - 14/09/2015 19

Tracker Step 1

6 hits 5 clusters in this example

Beforeclusterization

EEE Analysis Meeting - 14/09/2015 20

Tracker Step 1

6 hits 5 clusters in this example

Afterclusterization

EEE Analysis Meeting - 14/09/2015 21

Tracker Step 2

All Top-Bottom combinations are explored and if there is a cluster matchable in the middle chamber the triplet becomes a track candidate (2 candidate in the example).

EEE Analysis Meeting - 14/09/2015 22

Tracker Step 3

Tracks are 2-ordered 21< 2

2

1° candidate

2° candidate

EEE Analysis Meeting - 14/09/2015 23

Tracker Step 4

The first candidate is accepted and its cluster are exlcuded for the other tracks.Then the next candidate is considered…In this case the 2° candidate is excluded because it looses one of its clusters in previous associations its remaining clusters are available to form other tracks (no other candidates in this case).

1° track

2° candidate no track

EEE Analysis Meeting - 14/09/2015 24

Calibration

Calibration is performed in a similar way as before but the possibility to calibrate strip by strip was added (it can help in case one strip has a big noise).

as before

EEE Analysis Meeting - 14/09/2015 25

AnalysisThe way to analysis data will be similar to the previous case (now multi-track info are available).Alternatively the framework will allow to access data in a more elegant way:

EEEEventReader reader("TORI-04-2015-03-27-00001.root");if(reader.Init()) return;EEEHeader *header = reader.GetHeader();header->GetSchool(); header->GetYear(); // header->…Int_t n = reader.GetEntries(); // number of eventsEEERecoEvent *event;EEETrack *trk;for(Int_t i=0;i < n;i++){ // loop over the events event = (EEERecoEvent *) reader.GetEvent(i); event->Seconds(); event->NanoSeconds(); Int_t ntrk = event->GetNTracks(); // number of tracks in the event Int_t ngoodtrk = 0; for(Int_t j=0;j < ntrk;j++){ // loop over the tracks trk = event->GetTrack(j); if(trk->Chi2() < 10) ngoodtrk++; trk->Phi(); trk->PhiLocal(); }}