BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
makeAlignFile.C
Go to the documentation of this file.
1#include <Rtypes.h>
2#include <TChain.h>
3#include <TClonesArray.h>
4#include <TFile.h>
5#include <TString.h>
6#include <TTree.h>
7#include <TVector3.h>
8R__ADD_INCLUDE_PATH($VMCWORKDIR)
9#include "macro/run/bmnloadlibs.C"
10R__LOAD_LIBRARY(libBmnAlignment.so)
11
12void makeAlignFile(TString out = "",
13 TString siConf = "SiliconRunSpring2018.xml",
14 TString gemConf = "GemRunSpring2018.xml")
15{
16 bmnloadlibs(); // load BmnRoot libraries
17
18 TString gPathGemConfig = gSystem->Getenv("VMCWORKDIR");
19
20 BmnGemStripStationSet* StationSetGem =
21 new BmnGemStripStationSet(gPathGemConfig + "/parameters/gem/XMLConfigs/" + gemConf);
22 const Int_t nStatGem = StationSetGem->GetNStations();
23
24 BmnSiliconStationSet* StationSetSi =
25 new BmnSiliconStationSet(gPathGemConfig + "/parameters/silicon/XMLConfigs/" + siConf);
26 const Int_t nStatSi = StationSetSi->GetNStations();
27
28 // Prepare output tree
29 TFile* outFile = new TFile(out.Data(), "recreate");
30 TTree* outTree = new TTree("cbmsim", "cbmsim");
31 TClonesArray* outClassGem = new TClonesArray("BmnGemAlignCorrections");
32 TClonesArray* outClassSi = new TClonesArray("BmnSiliconAlignCorrections");
33 outTree->Branch("BmnGemAlignCorrections", &outClassGem);
34 outTree->Branch("BmnSiliconAlignCorrections", &outClassSi);
35
36 // GEMs
37 for (Int_t iStat = 0; iStat < StationSetGem->GetNStations(); iStat++)
38 for (Int_t iMod = 0; iMod < StationSetGem->GetGemStation(iStat)->GetNModules(); iMod++) {
40 new ((*outClassGem)[outClassGem->GetEntriesFast()]) BmnGemAlignCorrections();
41 corrs->SetStation(iStat);
42 corrs->SetModule(iMod);
43 corrs->SetCorrections(0., 0., 0.);
44 }
45
46 // Silicons
47 for (Int_t iStat = 0; iStat < StationSetSi->GetNStations(); iStat++)
48 for (Int_t iMod = 0; iMod < StationSetSi->GetSiliconStation(iStat)->GetNModules(); iMod++) {
50 new ((*outClassSi)[outClassSi->GetEntriesFast()]) BmnSiliconAlignCorrections();
51 corrs->SetStation(iStat);
52 corrs->SetModule(iMod);
53 corrs->SetCorrections(0., 0., 0.);
54 }
55
56 outTree->Fill();
57 outTree->Write();
58 outFile->Close();
59}
int Int_t
#define R__LOAD_LIBRARY(LIBRARY)
#define R__ADD_INCLUDE_PATH(PATH)
R__EXTERN TSystem * gSystem
void SetCorrections(Double_t x, Double_t y, Double_t z)
BmnGemStripStation * GetGemStation(Int_t station_num)
BmnSiliconStation * GetSiliconStation(Int_t station_num)
void Close(Option_t *option="") override
Int_t GetEntriesFast() const
virtual Int_t Fill()
Int_t Write(const char *name=nullptr, Int_t option=0, Int_t bufsize=0) const override
virtual Int_t Branch(const char *folder, Int_t bufsize=32000, Int_t splitlevel=99)
void makeAlignFile(TString out="", TString siConf="SiliconRunSpring2018.xml", TString gemConf="GemRunSpring2018.xml")