BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
BmnToCbmHitConverter.h
Go to the documentation of this file.
1#ifndef BMNTOCBMHITCONVERTER_H
2#define BMNTOCBMHITCONVERTER_H 1
3
4#include "BmnGemStripHit.h"
5#include "BmnGemStripStationSet.h"
6#include "BmnSiliconHit.h"
7#include "BmnSiliconStationSet.h"
8#include "BmnTask.h"
9#include "BmnVSPStationSet.h"
10#include "CbmStsHit.h"
11#include "FairMCPoint.h"
12
13#include <TClonesArray.h>
14#include <TH2.h>
15#include <TSystem.h>
16#include <iostream>
17
19{
20 public:
22 // BmnToCbmHitConverter(Int_t iVerbose);
23 BmnToCbmHitConverter(Int_t iVerbose, Bool_t isExp = kTRUE);
24
25 virtual ~BmnToCbmHitConverter();
26
27 virtual InitStatus Init();
28
29 virtual void Exec(Option_t* opt);
30
31 virtual void Finish();
32
35 void SetVspConfigFile(TString file) { fVspConfigFile = file; } // AZ-070625
36
37 void SetFixedErrors(Float_t dXgem = 0.015, Float_t dYgem = 0.058, Float_t dXsil = 0.003, Float_t dYsil = 0.021);
38 void ApplyAlignment(CbmStsHit* hit);
39 void ApplyAlignment9(CbmStsHit* hit); // AZ-250726
40 void FillLorentzHistos(int irun); // AZ-260726
41 void ApplyLorentzCorr(CbmStsHit* hit); // AZ-260726
42
43 // to disable alignment (used by default), call EnableAlignment(kFALSE)
44 void EnableAlignment(Bool_t is_align_enabled = kTRUE) { fAlignmentEnabled = is_align_enabled; }
45
46 void ReadCorrections(int irun,
47 int igem,
48 std::map<int, std::vector<Double_t>>* locCorX,
49 std::map<int, std::vector<Double_t>>* locCorY,
50 int& nx,
51 int& ny);
52 // AZ-300526 Bool_t CorrectEffic(CbmStsHit* hit, int iq); // AZ-211223
54 int iq,
55 Double_t tx = 0,
56 Double_t ty = 0,
57 Double_t pmom = 0,
58 int ikill = 0); // AZ-180626
59 void CorrectHitMC(CbmStsHit* hit, Double_t pmom, int iq); // AZ-270824
60 void AddVspHits(); // AZ-060625
61 void KillHits(set<int>* hitSet, set<int>* killedSet); // AZ-280526
62 void SetMCcorr(Bool_t mccorr = kTRUE) { fMCcorr = mccorr; } // AZ-100625
63 void SetEffCorr(Bool_t effcorr = kTRUE) { fEffCorr = effcorr; } // AZ-100625
64 void SetEffFile(TString effFile, int ifile = 0) { fEffFile[ifile] = effFile; } // AZ-180626
65
66 virtual void OnlineWrite(const std::unique_ptr<TTree>& resultTree);
67
68 private:
73 TString fEffFile[2]; // AZ-180626
74
75 /** Input array of BNM GEM Hits **/
80
81 /** Input array of BNM Silicon Hits **/
86
87 /** AZ-060625 Input array of VSP Silicon Hits **/
92
94
95 /** Output array of CBM Hits **/
97
101
102 BmnGemStripStationSet* GemStationSet; //! Entire GEM detector
103 BmnSiliconStationSet* SilStationSet; //! Entire SILICON detector
104 BmnVSPStationSet* fVspStationSet; //! Entire VSP detector
105
112 Bool_t fMCcorr; // AZ-100625
113 Bool_t fEffCorr; // AZ-100625
115 // whether alignment enabled
117 int fPeriod; // AZ-250726
118 // TH2D *fhLorCorX[2][17], *fhLorCorY[2][17]; // AZ-260726
119 std::map<int, TH2D*> fhLorCorX[17], fhLorCorY[17]; // AZ-220826
120
122};
123
124#endif
bool Bool_t
int Int_t
float Float_t
double Double_t
constexpr Bool_t kTRUE
const char Option_t
#define ClassDef(name, id)
BmnTask()
Default constructor.
Definition BmnTask.cxx:3
virtual InitStatus Init()
BmnSiliconStationSet * SilStationSet
Entire GEM detector.
BmnGemStripStationSet * GemStationSet
void ApplyAlignment9(CbmStsHit *hit)
TClonesArray * fBmnGemUpperClusters
TClonesArray * fBmnGemLowerClusters
void EnableAlignment(Bool_t is_align_enabled=kTRUE)
void SetFixedErrors(Float_t dXgem=0.015, Float_t dYgem=0.058, Float_t dXsil=0.003, Float_t dYsil=0.021)
TClonesArray * fBmnGemHitsArray
Input array of BNM GEM Hits.
TClonesArray * fBmnVspUpperClusters
TClonesArray * fBmnSilHitsArray
Input array of BNM Silicon Hits.
std::map< int, TH2D * > fhLorCorY[17]
std::map< int, TH2D * > fhLorCorX[17]
void SetEffCorr(Bool_t effcorr=kTRUE)
Bool_t fUseFixedErrors
Entire VSP detector.
TClonesArray * fBmnVspHitsArray
AZ-060625 Input array of VSP Silicon Hits.
void SetMCcorr(Bool_t mccorr=kTRUE)
BmnVSPStationSet * fVspStationSet
Entire SILICON detector.
void SetGemConfigFile(TString file)
Bool_t CorrectEffic(CbmStsHit *hit, int iq, Double_t tx=0, Double_t ty=0, Double_t pmom=0, int ikill=0)
virtual void OnlineWrite(const std::unique_ptr< TTree > &resultTree)
Write task resul to tree.
void KillHits(set< int > *hitSet, set< int > *killedSet)
void CorrectHitMC(CbmStsHit *hit, Double_t pmom, int iq)
void SetVspConfigFile(TString file)
virtual void Exec(Option_t *opt)
void SetSilConfigFile(TString file)
TClonesArray * fBmnVspLowerClusters
TClonesArray * fCbmHitsArray
Output array of CBM Hits.
TClonesArray * fBmnSilUpperClusters
void ApplyLorentzCorr(CbmStsHit *hit)
void SetEffFile(TString effFile, int ifile=0)
void ReadCorrections(int irun, int igem, std::map< int, std::vector< Double_t > > *locCorX, std::map< int, std::vector< Double_t > > *locCorY, int &nx, int &ny)
TClonesArray * fBmnSilLowerClusters