Skip to content
Snippets Groups Projects
Commit c3c2fda5 authored by alberica.toia@cern.ch's avatar alberica.toia@cern.ch Committed by Pierre-Alain Loizeau
Browse files

Adding reco macro and geo par

parent 86c29954
No related branches found
No related tags found
1 merge request!295Cosy2019 geometry par fixed
...@@ -8,13 +8,13 @@ ...@@ -8,13 +8,13 @@
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
void cosy2019_process( void cosy2019_process() {
Int_t nTimeslices = -1,
UInt_t uRunId = 0, Int_t nTimeslices = -1;
TString outDir = "data", TString inFile = "unp_cosy_0025.root";
TString dataSet = "data/cosy2019", // Data set for file names TString parFile = "unp_cosy_params_0025.root";
Bool_t eventMode = kFALSE // Event-by-event mode TString outFile = "0025.rec.root";
) { TString geoFile = "sts_hodo_v19a_cosy_geo.root";
// --- Logger settings ---------------------------------------------------- // --- Logger settings ----------------------------------------------------
...@@ -30,12 +30,12 @@ void cosy2019_process( ...@@ -30,12 +30,12 @@ void cosy2019_process(
// ----- In- and output file names ------------------------------------ // ----- In- and output file names ------------------------------------
TString runId = TString::Format("%04u", uRunId); //TString runId = TString::Format("%04u", uRunId);
TString inFile = outDir + "/unp_cosy_" + runId + ".root"; //TString inFile = outDir + "/unp_cosy_" + runId + ".root";
if (eventMode) inFile = dataSet + ".event.raw.root"; //if (eventMode) inFile = dataSet + ".event.raw.root";
TString parFile = outDir + "/unp_cosy_params_" + runId + "_sts.root"; //TString parFile = outDir + "/unp_cosy_params_" + runId + "_sts.root";
TString outFile = dataSet + "_" + runId + ".rec.root"; //TString outFile = dataSet + "_" + runId + ".rec.root";
TString geoFile = dataSet + ".geo.root"; // to be created by a simulation run //TString geoFile = dataSet + ".geo.root"; // to be created by a simulation run
// ------------------------------------------------------------------------ // ------------------------------------------------------------------------
...@@ -52,7 +52,6 @@ void cosy2019_process( ...@@ -52,7 +52,6 @@ void cosy2019_process(
// ----- FairRunAna --------------------------------------------------- // ----- FairRunAna ---------------------------------------------------
FairRunAna* run = new FairRunAna(); FairRunAna* run = new FairRunAna();
CbmStsFindHits* hit = new CbmStsFindHits();
FairFileSource* inputSource = new FairFileSource(inFile); FairFileSource* inputSource = new FairFileSource(inFile);
run->SetSource(inputSource); run->SetSource(inputSource);
...@@ -76,20 +75,67 @@ void cosy2019_process( ...@@ -76,20 +75,67 @@ void cosy2019_process(
// ----- Local reconstruction in STS ---------------------------------- // ----- Local reconstruction in STS ----------------------------------
CbmStsReco* stsReco = new CbmStsReco(); CbmRecoSts* recoSts = new CbmRecoSts();
// --- The parameter file for the STS Setup sensors needs to be explicitely set as recoSts->SetTimeCutDigisAbs(20); // cluster finder: time cut in ns
// --- 1) By default the CbmStsSetup creates only Stereo sensors with a 58 um pitch recoSts->SetTimeCutClustersAbs(20.); // hit finder: time cut in ns
// --- 2) The only place where this can be set is in the init of the CbmStsReco
// ---- Here we define the sensor parameters since they are not available
// ----- Geometry Tags -------------------------------------------------- // ----- from the runtimeDb.(#hateRuntimeDb)
TString sStsHodoGeoPar = "sts_hodo_v19a_cosy.par";
// ------------------------------------------------------------------------ // ---- Hodoscope "sensor"
stsReco->SetSensorsParFile(sStsHodoGeoPar); CbmStsParSensor hodoSensPar(CbmStsSensorClass::kDssdOrtho);
stsReco->SetTimeCutDigisInNs(20); // cluster finder: time cut in ns hodoSensPar.SetPar(0, 6.5); // extension in x
stsReco->SetTimeCutClustersInNs(20.); // hit finder: time cut in ns hodoSensPar.SetPar(1, 6.5); // extension in y
hodoSensPar.SetPar(2, 0.4); // extension in z
run->AddTask(stsReco); hodoSensPar.SetPar(3, 6.4); // active size in y
std::cout << "-I- : Added task " << stsReco->GetName() << std::endl; hodoSensPar.SetPar(4, 64); // number of strips front side
hodoSensPar.SetPar(5, 64); // number of strips back side
hodoSensPar.SetPar(6, 0.1); // strip pitch front side
hodoSensPar.SetPar(7, 0.1); // strip pitch back side
// ---- STS sensor (DUT)
CbmStsParSensor stsSensPar(CbmStsSensorClass::kDssdStereo);
stsSensPar.SetPar(0, 6.2092); // extension in x
stsSensPar.SetPar(1, 6.2000); // extension in y
stsSensPar.SetPar(2, 0.0300); // extension in z
stsSensPar.SetPar(3, 5.9600); // active size in y
stsSensPar.SetPar(4, 1024); // number of strips front side
stsSensPar.SetPar(5, 1024); // number of strips back side
stsSensPar.SetPar(6, 0.0058); // strip pitch front side
stsSensPar.SetPar(7, 0.0058); // strip pitch back side
stsSensPar.SetPar(8, -7.5); // strip pitch front side
stsSensPar.SetPar(9, 0.0); // strip pitch back side
// --- Addresses for sensors
// --- They are defined in each station as sensor 1, module 1, halfladderD (2), ladder 1
Int_t hodo1Address = CbmStsAddress::GetAddress(0, 0, 1, 0, 0); // station 1
Int_t stsAddress = CbmStsAddress::GetAddress(1, 0, 1, 0, 0); // station 2
Int_t hodo2Address = CbmStsAddress::GetAddress(2, 0, 1, 0, 0); // station 3
std::cout << "Hodo 1 address " << std::dec << hodo1Address << " " << std::hex << hodo1Address << std::endl;
std::cout << "STS address " << std::dec << stsAddress << " " << std::hex << stsAddress << std::endl;
std::cout << "Hodo 2 address " << std::dec << hodo2Address << " " << std::hex << hodo2Address << std::endl;
// --- Now we can define the sensor parameter set and tell recoSts to use it
auto sensorParSet = new CbmStsParSetSensor("CbmStsParSetSensor",
"STS sensor parameters" "cosy2019");
sensorParSet->SetParSensor(hodo1Address, hodoSensPar);
sensorParSet->SetParSensor(stsAddress, stsSensPar);
sensorParSet->SetParSensor(hodo2Address, hodoSensPar);
recoSts->UseSensorParSet(sensorParSet);
// --- Next we define the module and ASIC parameters. The same can be used for all sensors.
CbmStsParAsic asicPar(32, 75000., 3000., 5., 800., 1000., 3.9789e-3);
auto modulePar = new CbmStsParModule(2048, 128);
modulePar->SetAllAsics(asicPar);
recoSts->UseModulePar(modulePar);
// --- We also need the sensor conditions, although they are of no relevance here
// --- without magnetic field (they are used to determine the Lorentz shift).
auto sensorCond = new CbmStsParSensorCond(70., 140., 268., 17.5, 1.);
recoSts->UseSensorCond(sensorCond);
run->AddTask(recoSts);
std::cout << "-I- : Added task " << recoSts->GetName() << std::endl;
// ------------------------------------------------------------------------ // ------------------------------------------------------------------------
......
File added
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment