// This class disabled for now. Will reenable once TOATrack-dependency can be resolved // as a special case for backward compatibility #ifdef UNDEFINED_UNTIL_OATRACK_REENABLED #ifndef TTrackerReconOATrackModule_hxx_seen #define TTrackerReconOATrackModule_hxx_seen #include #include #include #include #include #include #include "IAnalysisReconModuleBase.hxx" namespace COMET { class IReconTrackerTOATrackModule; }; /// This module summarizes the reconstruction information from the Tracker. /// The first version of this package is written in order to use /// this information for CCQE selection: the saved information is therefore /// biased towards this analysis and might need to be changed for other /// analyses. class COMET::IReconTrackerTOATrackModule : public IAnalysisReconModuleBase { public: /// An object to store an FGD cluster. class IFgdCluster : public TObject { public: virtual ~IFgdCluster(); // Deposited charge double TotalCharge; /// The position of the cluster. TLorentzVector Position; /// The position variance; TLorentzVector Variance; ClassDef(IReconTrackerTOATrackModule::IFgdCluster, 1); }; /// An object to describe a reconstructed vertex. class ITrackerVertex : public TObject { public: virtual ~ITrackerVertex(); /// The name of the algorithm that created this object. std::string AlgorithmName; /// The status for the fit. int Status; /// The quality of the fit. double Quality; /// The number of degrees of freedom. int NDOF; /// The position of the vertex. TLorentzVector Position; /// The position variance; TLorentzVector Variance; /// The distance to the outside of the fiducial volume (negative if /// the vertex is outside). double Fiducial; ClassDef(IReconTrackerTOATrackModule::ITrackerVertex, 1); }; /// An object to describe a reconstructed track. class ITrackerTrack : public TObject { public: virtual ~ITrackerTrack(); /// The name of the algorithm that created this object. std::string AlgorithmName; /// The status for the fit. int Status; /// The quality of the fit. double Quality; /// The number of degrees of freedom. int NDOF; /// Direction of track. bool isForwards; /// The number of hits. int NHits; /// TPC dE/dx info double tpc_dedx[3]; /// TPC momentum info double tpc_momentum[3]; double tpc_momentum_error[3]; /// TPC charge info double tpc_charge[3]; /// The deposited charge for the track. double EDeposit; /// The position of the track. TLorentzVector FrontPosition; TLorentzVector BackPosition; /// The position variance; TLorentzVector FrontVariance; TLorentzVector BackVariance; /// The direction of the track. TVector3 FrontDirection; TVector3 BackDirection; /// The length of the track in the Tracker double Length; ClassDef(IReconTrackerTOATrackModule::ITrackerTrack, 1); }; public: /// Default Constructor IReconTrackerTOATrackModule(const char *name = "Tracker", const char *title = "Tracker Recon Module"); virtual ~IReconTrackerTOATrackModule(); virtual Bool_t ProcessFirstEvent(COMET::ICOMETEvent& event); protected: virtual void InitializeModule(); virtual void InitializeBranches(); virtual bool FillTree(COMET::ICOMETEvent&); private: double MedianTrackTime(COMET::IHandle Track); public: ///Tree Entries Int_t fNVertices; //! The number of added vertices TClonesArray *fVertices; //! The TTrackerVertexObject vector of vertices. Int_t fNTracks; //! TClonesArray *fTracks; //! The TTrackerTrackObject vector of tracks. Int_t fNDelayedClusters; //! TClonesArray *fDelayedClusters; //! The TTrackerTrackObject vector of tracks. ///Module data members (are saved in the analysis file in //ReconDir/Modules/Tracker) TVector3 fFGD1ActiveMin; // FGD1 Active Volume Min Corner Position TVector3 fFGD1ActiveMax; // FGD1 Active Volume Max Corner Position TVector3 fFGD2ActiveMin; // FGD2 Active Volume Min Corner Position TVector3 fFGD2ActiveMax; // FGD2 Active Volume Max Corner Position Int_t fUpstreamXFGD1Plane; // Upstream X Layer FGD1 Plane Int_t fUpstreamYFGD1Plane; // Upstream Y Layer FGD1 Plane Int_t fDowstreamXFGD1Plane; // Dowstream X Layer FGD1 Plane Int_t fDowstreamYFGD1Plane; // Dowstream Y Layer FGD1 Plane Int_t fUpstreamXFGD2Plane; // Upstream X Layer FGD2 Plane Int_t fUpstreamYFGD2Plane; // Upstream Y Layer FGD2 Plane Int_t fDowstreamXFGD2Plane; // Dowstream X Layer FGD2 Plane Int_t fDowstreamYFGD2Plane; // Dowstream Y Layer FGD2 Plane private: ClassDef(IReconTrackerTOATrackModule,3); }; #endif #endif // UNDEFINED_UNTIL_OATRACK_REENABLED