10 #include "TClonesArray.h"
15 #include "FairRootManager.h"
17 #include "FairRunAna.h"
18 #include "FairRuntimeDb.h"
23 #include "FairTrackParH.h"
24 #include "FairTrackParP.h"
26 #include "TDatabasePDG.h"
35 histo =
new TH1F(
"h1",
"h1",3000,0,20);
49 FairRootManager* ioman = FairRootManager::Instance();
51 std::cout <<
"-E- PndHypMSAnaTask::Init: "<<
"RootManager not instantiated!" << std::endl;
56 fMCTracks = (TClonesArray*) ioman->GetObject(
"MCTrack");
58 std::cout <<
"-W- PndHypMSAnaTask::Init: "<<
"No MCTrack" <<
" array!" << std::endl;
62 fMCHits = (TClonesArray*) ioman->GetObject(
"HypPoint");
64 std::cout <<
"-W- PndHypMSAnaTask::Init: "<<
"No MVDPoint"<<
" array!" << std::endl;
104 std::cout <<
"------------Event " <<
fEventNr <<
"-------------" << std::endl;
106 std::cout<<
" size map "<<
mcHitMap.size()<<std::endl;
108 for (
std::map<
int, std::vector<int> >::const_iterator it =
mcHitMap.begin();
113 std::vector<int> MChits = it->second;
126 if (MChits.size() >=3){
129 std::cout<<
" hits "<<MChits.size()<<(it->first)<<std::endl;
134 std::cout<<
" pid "<<startPoint->GetTrackID()<<
" "<<it->first<<std::endl;
138 if (MotherId==-1)Motherpdg = myTrack->
GetPdgCode();
143 if((myTrack->
GetPdgCode()==-211)&&( Motherpdg>1010000000&&
144 Motherpdg<1020050130) )
146 std::cout<<
" hits "<<MChits.size()<<
" "<<Motherpdg<<std::endl;
148 histo->Fill(MChits.size());
234 std::map<int, std::vector<int> > result;
235 for (
int i = 0;
i <
fMCHits->GetEntriesFast();
i++){
239 myPoint->Momentum(mom);
246 result[myPoint->GetTrackID()].push_back(
i);
255 TFile*
file = FairRootManager::Instance()->GetOutFile();
257 file->mkdir(
"Dedx_detid");
258 file->cd(
"Dedx_detid");
virtual void Exec(Option_t *opt)
std::map< int, std::vector< int > > AssignHitsToTracks()
virtual void SetParContainers()
Class to access the naming information of the MVD.
virtual InitStatus Init()
TGeoManager * gGeoManager
PndHypGeoHandling * fGeoH
ClassImp(PndHypMSAnaTask)
std::map< int, std::vector< int > > mcHitMap
Int_t GetMotherID() const